@profoundlogic/coderflow-server 0.8.8 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/base-image/coder-git-credential-helper +4 -1
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -1
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -1
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/cleanup-users.js +1 -1
  21. package/dist/lib/cli/config-command.js +1 -1
  22. package/dist/lib/cli/config.js +1 -1
  23. package/dist/lib/cli/create-user.js +1 -1
  24. package/dist/lib/cli/grant-admin.js +1 -1
  25. package/dist/lib/cli/init.js +1 -1
  26. package/dist/lib/cli/jira.js +1 -1
  27. package/dist/lib/cli/license.js +1 -1
  28. package/dist/lib/cli/list-roles.js +1 -1
  29. package/dist/lib/cli/list-users.js +1 -1
  30. package/dist/lib/cli/server-manager.js +1 -1
  31. package/dist/lib/cli/set-password.js +1 -1
  32. package/dist/lib/compression-filter.js +1 -1
  33. package/dist/lib/config-migration.js +1 -1
  34. package/dist/lib/container-credential-sync.js +1 -1
  35. package/dist/lib/container-tokens.js +1 -1
  36. package/dist/lib/data-dir.js +1 -1
  37. package/dist/lib/deployment-history.js +1 -1
  38. package/dist/lib/deployment-service.js +1 -1
  39. package/dist/lib/docker-utils.js +1 -1
  40. package/dist/lib/email.js +1 -1
  41. package/dist/lib/emailTemplates.js +1 -1
  42. package/dist/lib/entitlement.js +1 -1
  43. package/dist/lib/external-connections.js +1 -1
  44. package/dist/lib/fetch-utils.js +1 -1
  45. package/dist/lib/git-commit-details-route.js +1 -1
  46. package/dist/lib/git-history-diff-guardrails.js +1 -1
  47. package/dist/lib/git-provider-service.js +1 -1
  48. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  49. package/dist/lib/git-provider-setup/index.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  51. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  52. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  53. package/dist/lib/git-providers/github-app-provider.js +1 -1
  54. package/dist/lib/git-providers/index.js +1 -1
  55. package/dist/lib/git-providers/provider-factory.js +1 -1
  56. package/dist/lib/git-providers/provider-interface.js +1 -1
  57. package/dist/lib/github-urls.js +1 -1
  58. package/dist/lib/group-objective-linking.js +1 -1
  59. package/dist/lib/ibmi-sync.js +1 -1
  60. package/dist/lib/jira-client.js +1 -1
  61. package/dist/lib/judge-blinding.js +1 -1
  62. package/dist/lib/logger.js +1 -1
  63. package/dist/lib/memory-utils.js +1 -1
  64. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  65. package/dist/lib/model-fetcher.js +1 -1
  66. package/dist/lib/notifications.js +1 -1
  67. package/dist/lib/objective-context.js +1 -1
  68. package/dist/lib/oidc-auth.js +1 -1
  69. package/dist/lib/oidc-device-flow.js +1 -1
  70. package/dist/lib/passwordTokens.js +1 -1
  71. package/dist/lib/permission-resolver.js +1 -1
  72. package/dist/lib/pin-cascade.js +1 -1
  73. package/dist/lib/provider-accounts.js +1 -1
  74. package/dist/lib/provider-oauth.js +1 -1
  75. package/dist/lib/provider-profile.js +1 -1
  76. package/dist/lib/provider-token-refresh.js +1 -1
  77. package/dist/lib/rbac-user-state.js +1 -1
  78. package/dist/lib/request-url.js +1 -1
  79. package/dist/lib/rewind.js +1 -1
  80. package/dist/lib/role-definitions.js +1 -1
  81. package/dist/lib/roles.js +1 -1
  82. package/dist/lib/secrets.js +1 -1
  83. package/dist/lib/setup-repo-git-auth.js +1 -1
  84. package/dist/lib/slack-service.js +1 -1
  85. package/dist/lib/state-capture.js +1 -1
  86. package/dist/lib/static-files.js +1 -1
  87. package/dist/lib/task-aliases.js +1 -1
  88. package/dist/lib/task-container-init.js +1 -1
  89. package/dist/lib/task-context-usage.js +1 -1
  90. package/dist/lib/task-git-auth-errors.js +1 -0
  91. package/dist/lib/task-name-format.js +1 -1
  92. package/dist/lib/task-name-generator.js +1 -1
  93. package/dist/lib/task-source-metadata.js +1 -1
  94. package/dist/lib/teams.js +1 -1
  95. package/dist/lib/user-git-oauth.js +1 -1
  96. package/dist/lib/user-git-tokens.js +1 -1
  97. package/dist/lib/users.js +1 -1
  98. package/dist/middleware/requireAuth.js +1 -1
  99. package/dist/middleware/requireInit.js +1 -1
  100. package/dist/middleware/requirePermission.js +1 -1
  101. package/dist/package.json +1 -1
  102. package/dist/playwright.config.js +1 -1
  103. package/dist/playwright.task-terminal.config.js +1 -1
  104. package/dist/routes/apiKeys.js +1 -1
  105. package/dist/routes/auth-oidc.js +1 -1
  106. package/dist/routes/auth.js +1 -1
  107. package/dist/routes/automations.js +1 -1
  108. package/dist/routes/bindings.js +1 -1
  109. package/dist/routes/build.js +1 -1
  110. package/dist/routes/containers.js +1 -1
  111. package/dist/routes/deploy-task.js +1 -1
  112. package/dist/routes/environment-management.js +1 -1
  113. package/dist/routes/environments.js +1 -1
  114. package/dist/routes/external-skills.js +1 -1
  115. package/dist/routes/git-credentials.js +1 -1
  116. package/dist/routes/git-oauth.js +1 -1
  117. package/dist/routes/git-provider-setup.js +1 -1
  118. package/dist/routes/health.js +1 -1
  119. package/dist/routes/jira.js +1 -1
  120. package/dist/routes/logs.js +1 -1
  121. package/dist/routes/objective-management.js +1 -1
  122. package/dist/routes/password.js +1 -1
  123. package/dist/routes/prompt.js +1 -1
  124. package/dist/routes/provider-auth.js +1 -1
  125. package/dist/routes/qa.js +1 -1
  126. package/dist/routes/roles.js +1 -1
  127. package/dist/routes/settings.js +1 -1
  128. package/dist/routes/skill-management.js +1 -1
  129. package/dist/routes/skills.js +1 -1
  130. package/dist/routes/slack.js +1 -1
  131. package/dist/routes/stats.js +1 -1
  132. package/dist/routes/tasks.js +1 -1
  133. package/dist/routes/teams.js +1 -1
  134. package/dist/routes/templates.js +1 -1
  135. package/dist/routes/test-task.js +1 -1
  136. package/dist/routes/test.js +1 -1
  137. package/dist/routes/users.js +1 -1
  138. package/dist/routes/visualizations.js +1 -1
  139. package/dist/scripts/create-user.js +1 -1
  140. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  141. package/dist/start.js +1 -1
  142. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  143. package/dist/web-ui/public/activity-feed.js +1 -1
  144. package/dist/web-ui/public/activity-formatters.js +1 -1
  145. package/dist/web-ui/public/admin.js +1 -1
  146. package/dist/web-ui/public/agent-event-parser.js +1 -1
  147. package/dist/web-ui/public/app.js +1 -1
  148. package/dist/web-ui/public/approve-dialog.js +1 -1
  149. package/dist/web-ui/public/automation-links.js +1 -1
  150. package/dist/web-ui/public/automation-schedule.js +1 -1
  151. package/dist/web-ui/public/comments-widget.js +1 -1
  152. package/dist/web-ui/public/diff-utils.js +1 -1
  153. package/dist/web-ui/public/docs/admin/automations.md +8 -7
  154. package/dist/web-ui/public/docs/code/files-and-editing.md +11 -0
  155. package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
  156. package/dist/web-ui/public/environments.html +19 -7
  157. package/dist/web-ui/public/environments.js +1 -1
  158. package/dist/web-ui/public/feedback-widget.css +59 -2
  159. package/dist/web-ui/public/feedback-widget.js +1 -1
  160. package/dist/web-ui/public/file-selection-tree.js +1 -1
  161. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  162. package/dist/web-ui/public/git-history.js +1 -1
  163. package/dist/web-ui/public/git-status.js +1 -1
  164. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  165. package/dist/web-ui/public/index.js +1 -1
  166. package/dist/web-ui/public/login.js +1 -1
  167. package/dist/web-ui/public/markdown-editor.js +1 -1
  168. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  169. package/dist/web-ui/public/modal-maximize.js +1 -1
  170. package/dist/web-ui/public/notifications.js +1 -1
  171. package/dist/web-ui/public/permissions.js +1 -1
  172. package/dist/web-ui/public/pr-dialog.js +1 -1
  173. package/dist/web-ui/public/roles.js +1 -1
  174. package/dist/web-ui/public/settings.js +1 -1
  175. package/dist/web-ui/public/setup-password.js +1 -1
  176. package/dist/web-ui/public/skills.js +1 -1
  177. package/dist/web-ui/public/sse-client.js +1 -1
  178. package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
  179. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  180. package/dist/web-ui/public/styles.css +20 -0
  181. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  182. package/dist/web-ui/public/task.js +1 -1
  183. package/dist/web-ui/public/teams.js +1 -1
  184. package/dist/web-ui/public/terminal.js +1 -1
  185. package/dist/web-ui/public/theme.js +1 -1
  186. package/dist/web-ui/public/users.js +1 -1
  187. package/dist/web-ui/public/variant-grouping.js +1 -1
  188. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x3cf725=window['location']['pathname'],_0x599206=_0x3cf725['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x599206)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x599206[0x1]),_0x599206[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2a78fa={}){const _0x26d2f9=new URLSearchParams();_0x2a78fa['userId']&&_0x26d2f9['set']('userId',String(_0x2a78fa['userId']));_0x2a78fa['automation']&&_0x26d2f9['set']('automation',String(_0x2a78fa['automation']));const _0x40dae6=API_BASE+'/tasks/stats'+(_0x26d2f9['toString']()?'?'+_0x26d2f9['toString']():''),_0x5e164b=await fetch(_0x40dae6);if(!_0x5e164b['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5e164b['statusText']);return await _0x5e164b['json']();},async 'getTasks'(_0x493bf7={}){const _0x230107=new URLSearchParams();_0x493bf7['status']&&_0x230107['set']('status',String(_0x493bf7['status']));_0x493bf7['environment']&&_0x230107['set']('environment',String(_0x493bf7['environment']));_0x493bf7['automation']&&_0x230107['set']('automation',String(_0x493bf7['automation']));if(_0x493bf7['include']){const _0xa7bc56=Array['isArray'](_0x493bf7['include'])?_0x493bf7['include']['join'](','):String(_0x493bf7['include']);_0xa7bc56&&_0x230107['set']('include',_0xa7bc56);}_0x493bf7['filter']&&_0x230107['set']('filter',String(_0x493bf7['filter']));_0x493bf7['page']&&_0x230107['set']('page',String(_0x493bf7['page']));_0x493bf7['limit']&&_0x230107['set']('limit',String(_0x493bf7['limit']));_0x493bf7['userId']&&_0x230107['set']('userId',String(_0x493bf7['userId']));_0x493bf7['search']&&_0x230107['set']('search',String(_0x493bf7['search']));_0x493bf7['includeChildTasks']&&_0x230107['set']('includeChildTasks','true');const _0x52be0c=API_BASE+'/tasks'+(_0x230107['toString']()?'?'+_0x230107['toString']():''),_0x117401=await fetch(_0x52be0c);if(!_0x117401['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x117401['statusText']);return await _0x117401['json']();},async 'getAutomations'(_0x9ec220={}){const _0x40887c=new URLSearchParams();_0x9ec220['environment']&&_0x40887c['set']('environment',String(_0x9ec220['environment']));const _0x35a2fe=await fetch(API_BASE+'/api/automations'+(_0x40887c['toString']()?'?'+_0x40887c['toString']():''));if(!_0x35a2fe['ok']){const _0x4b3391=await _0x35a2fe['json']()['catch'](()=>({}));throw new Error(_0x4b3391['message']||_0x4b3391['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x35a2fe['statusText']);}return await _0x35a2fe['json']();},async 'getAutomation'(_0x28f51a){const _0x3ddc6e=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x28f51a));if(!_0x3ddc6e['ok']){const _0x390084=await _0x3ddc6e['json']()['catch'](()=>({}));throw new Error(_0x390084['message']||_0x390084['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x3ddc6e['statusText']);}return await _0x3ddc6e['json']();},async 'createAutomation'(_0x18ce27){const _0x3c6425=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x18ce27||{})});if(!_0x3c6425['ok']){const _0x3c430e=await _0x3c6425['json']()['catch'](()=>({}));throw new Error(_0x3c430e['message']||_0x3c430e['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3c6425['statusText']);}return await _0x3c6425['json']();},async 'updateAutomation'(_0x7fa90e,_0x3dc0c4){const _0x185ff4=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x7fa90e),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3dc0c4||{})});if(!_0x185ff4['ok']){const _0x123008=await _0x185ff4['json']()['catch'](()=>({}));throw new Error(_0x123008['message']||_0x123008['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x185ff4['statusText']);}return await _0x185ff4['json']();},async 'deleteAutomation'(_0x11212e){const _0x331cfb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x11212e),{'method':'DELETE'});if(!_0x331cfb['ok']){const _0x3e9eae=await _0x331cfb['json']()['catch'](()=>({}));throw new Error(_0x3e9eae['message']||_0x3e9eae['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x331cfb['statusText']);}return await _0x331cfb['json']();},async 'triggerAutomation'(_0x1f69ed){const _0x3ef438=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1f69ed)+'/trigger',{'method':'POST'});if(!_0x3ef438['ok']){const _0x2ac5ac=await _0x3ef438['json']()['catch'](()=>({}));throw new Error(_0x2ac5ac['message']||_0x2ac5ac['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3ef438['statusText']);}return await _0x3ef438['json']();},async 'setAutomationEnabled'(_0x1d31c2,_0x4a6ea4){const _0x6d3f59=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1d31c2)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x4a6ea4})});if(!_0x6d3f59['ok']){const _0x1bb971=await _0x6d3f59['json']()['catch'](()=>({}));throw new Error(_0x1bb971['message']||_0x1bb971['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x6d3f59['statusText']);}return await _0x6d3f59['json']();},async 'getAutomationHistory'(_0x330678,_0x209182=0x32){const _0x2f3d60=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x330678)+'/history?limit='+encodeURIComponent(String(_0x209182)));if(!_0x2f3d60['ok']){const _0x12be40=await _0x2f3d60['json']()['catch'](()=>({}));throw new Error(_0x12be40['message']||_0x12be40['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x2f3d60['statusText']);}return await _0x2f3d60['json']();},async 'getTask'(_0x5b874e,_0x590c14={}){const _0x1c1efd=new URLSearchParams();if(_0x590c14['include']){const _0x2522f3=Array['isArray'](_0x590c14['include'])?_0x590c14['include']['join'](','):String(_0x590c14['include']);if(_0x2522f3)_0x1c1efd['set']('include',_0x2522f3);}const _0x1b9965=await fetch(API_BASE+'/tasks/'+_0x5b874e+(_0x1c1efd['toString']()?'?'+_0x1c1efd['toString']():''));if(!_0x1b9965['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x1b9965['statusText']);return await _0x1b9965['json']();},async 'getTaskResults'(_0x2483e5){const _0x1a66d0=await fetch(API_BASE+'/tasks/'+_0x2483e5+'/results');if(!_0x1a66d0['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x1a66d0['statusText']);return await _0x1a66d0['json']();},async 'getTaskPatches'(_0x5c4a0c){const _0x48e501=await fetch(API_BASE+'/tasks/'+_0x5c4a0c+'/patches');if(!_0x48e501['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x48e501['statusText']);return await _0x48e501['json']();},async 'getTaskAttachments'(_0x5723d8){const _0x1e9a8d=await fetch(API_BASE+'/tasks/'+_0x5723d8+'/attachments');if(!_0x1e9a8d['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x1e9a8d['statusText']);return await _0x1e9a8d['json']();},async 'uploadAttachments'(_0x120561,_0x1b9c13){const _0x11ac9b=new FormData();for(const _0x4ff65e of _0x1b9c13){_0x11ac9b['append']('attachments',_0x4ff65e);}const _0x33af24=await fetch(API_BASE+'/tasks/'+_0x120561+'/attachments',{'method':'POST','body':_0x11ac9b});if(!_0x33af24['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x33af24['statusText']);return await _0x33af24['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2ccd00=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2ccd00['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2ccd00['json']();}catch(_0x3fac95){return{'available':![],'reason':_0x3fac95['message']};}},async 'generateTaskName'(_0x588016){try{const _0x40354b=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x588016})});return await _0x40354b['json']();}catch(_0x3deb32){return{'success':![],'error':_0x3deb32['message']};}},async 'createTask'(_0x55b290){let _0x46a36d,_0x146983={};if(_0x55b290['files']&&_0x55b290['files']['length']>0x0){const _0x393182=new FormData();for(const [_0x50e4a2,_0x11259c]of Object['entries'](_0x55b290)){if(_0x50e4a2!=='files'){if(_0x11259c==null)continue;typeof _0x11259c==='object'?_0x393182['append'](_0x50e4a2,JSON['stringify'](_0x11259c)):_0x393182['append'](_0x50e4a2,String(_0x11259c));}}for(const _0x59c05d of _0x55b290['files']){_0x393182['append']('attachments',_0x59c05d);}_0x46a36d=_0x393182;}else _0x146983['Content-Type']='application/json',_0x46a36d=JSON['stringify'](_0x55b290);const _0x3af45b=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x146983,'body':_0x46a36d});if(!_0x3af45b['ok']){const _0x50dcfc=await _0x3af45b['json'](),_0x204262=new Error(_0x50dcfc['error']||'Failed\x20to\x20create\x20task:\x20'+_0x3af45b['statusText']),{message:_0x3e646c,..._0x1a578d}=_0x50dcfc;Object['assign'](_0x204262,_0x1a578d);throw _0x204262;}return await _0x3af45b['json']();},async 'createTestTask'(_0x44bc25){const _0x3c922f=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x44bc25)});if(!_0x3c922f['ok']){const _0x59c3f0=await _0x3c922f['json']();throw new Error(_0x59c3f0['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x3c922f['statusText']);}return await _0x3c922f['json']();},async 'createEphemeralTest'(_0x551218){const _0x3a14a6=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x551218)});if(!_0x3a14a6['ok']){const _0x56db92=await _0x3a14a6['json']();throw new Error(_0x56db92['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x3a14a6['statusText']);}return await _0x3a14a6['json']();},async 'createDeployTask'(_0x46ce22){const _0x3801fe=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46ce22)});if(!_0x3801fe['ok']){const _0x3fadae=await _0x3801fe['json']();throw new Error(_0x3fadae['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3801fe['statusText']);}return await _0x3801fe['json']();},async 'getEnvironments'(){const _0x3c78a9=await fetch(API_BASE+'/environments');if(!_0x3c78a9['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x3c78a9['statusText']);return await _0x3c78a9['json']();},async 'getEnvironment'(_0x5a7e48){const _0x14b3c2=await fetch(API_BASE+'/environments/'+_0x5a7e48);if(!_0x14b3c2['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x14b3c2['statusText']);return await _0x14b3c2['json']();},async 'getEnvironmentRepoHistory'(_0x1bf872,_0x199d40,_0xa369d4={}){if(!_0x1bf872||!_0x199d40)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0xae5151=new URLSearchParams();if(_0xa369d4['limit'])_0xae5151['set']('limit',String(_0xa369d4['limit']));if(_0xa369d4['offset'])_0xae5151['set']('offset',String(_0xa369d4['offset']));if(_0xa369d4['search'])_0xae5151['set']('search',String(_0xa369d4['search']));if(_0xa369d4['branch'])_0xae5151['set']('branch',String(_0xa369d4['branch']));const _0xb04b65=API_BASE+'/environments/'+encodeURIComponent(_0x1bf872)+'/repos/'+encodeURIComponent(_0x199d40)+'/git/history',_0x245574=await fetch(''+_0xb04b65+(_0xae5151['toString']()?'?'+_0xae5151['toString']():''));if(!_0x245574['ok']){const _0x5830bb=await _0x245574['json']()['catch'](()=>({}));throw new Error(_0x5830bb['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x245574['statusText']);}return await _0x245574['json']();},async 'getEnvironmentRepoCommit'(_0x134eb1,_0x23d998,_0x325271){if(!_0x134eb1||!_0x23d998||!_0x325271)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x21976c=API_BASE+'/environments/'+encodeURIComponent(_0x134eb1)+'/repos/'+encodeURIComponent(_0x23d998)+'/git/commits/'+encodeURIComponent(_0x325271),_0x32a18d=await fetch(_0x21976c);if(!_0x32a18d['ok']){const _0x259f71=await _0x32a18d['json']()['catch'](()=>({}));throw new Error(_0x259f71['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x32a18d['statusText']);}return await _0x32a18d['json']();},async 'getEnvironmentRepoBranches'(_0x18b54a,_0x54ab38){if(!_0x18b54a||!_0x54ab38)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x130ecb=API_BASE+'/environments/'+encodeURIComponent(_0x18b54a)+'/repos/'+encodeURIComponent(_0x54ab38)+'/git/branches',_0x801dc7=await fetch(_0x130ecb);if(!_0x801dc7['ok']){const _0x5bf7c8=await _0x801dc7['json']()['catch'](()=>({}));throw new Error(_0x5bf7c8['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x801dc7['statusText']);}return await _0x801dc7['json']();},async 'revertEnvironmentRepoCommit'(_0x4d28cb,_0x2a89d0,_0x5945be,_0x5b286e={}){if(!_0x4d28cb||!_0x2a89d0||!_0x5945be)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x49557a=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x4d28cb)+'/repos/'+encodeURIComponent(_0x2a89d0)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x5945be,..._0x5b286e})});if(!_0x49557a['ok']){const _0x50fa24=await _0x49557a['json']()['catch'](()=>({}));throw new Error(_0x50fa24['message']||_0x50fa24['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x49557a['statusText']);}return await _0x49557a['json']();},async 'getTemplates'(_0x222585={}){const _0x429c07=new URLSearchParams();if(_0x222585['include']){const _0xa31d26=Array['isArray'](_0x222585['include'])?_0x222585['include']['join'](','):String(_0x222585['include']);if(_0xa31d26)_0x429c07['set']('include',_0xa31d26);}const _0x31541e=await fetch(API_BASE+'/templates'+(_0x429c07['toString']()?'?'+_0x429c07['toString']():''));if(!_0x31541e['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x31541e['statusText']);return await _0x31541e['json']();},async 'getTemplatesForEnvironment'(_0x558e51,_0x1e2782={}){if(!_0x558e51)throw new Error('Environment\x20name\x20is\x20required');const _0x1b0afa=new URLSearchParams();if(_0x1e2782['include']){const _0x244f8c=Array['isArray'](_0x1e2782['include'])?_0x1e2782['include']['join'](','):String(_0x1e2782['include']);if(_0x244f8c)_0x1b0afa['set']('include',_0x244f8c);}const _0x2b361d=await fetch(API_BASE+'/templates/'+_0x558e51+(_0x1b0afa['toString']()?'?'+_0x1b0afa['toString']():''));if(!_0x2b361d['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x558e51+':\x20'+_0x2b361d['statusText']);return await _0x2b361d['json']();},async 'getTemplate'(_0x497071,_0x1e4941,_0x52e211={}){if(!_0x497071||!_0x1e4941)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x550665=new URLSearchParams();if(_0x52e211['include']){const _0x7d9676=Array['isArray'](_0x52e211['include'])?_0x52e211['include']['join'](','):String(_0x52e211['include']);if(_0x7d9676)_0x550665['set']('include',_0x7d9676);}const _0x2f5831=await fetch(API_BASE+'/templates/'+_0x497071+'/'+_0x1e4941+(_0x550665['toString']()?'?'+_0x550665['toString']():''));if(!_0x2f5831['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x2f5831['statusText']);return await _0x2f5831['json']();},async 'getTaskLogs'(_0x4c2d77,_0x338116={}){if(!_0x4c2d77)throw new Error('Task\x20ID\x20is\x20required');const _0x2edefd=new URLSearchParams();_0x338116['tail']&&_0x2edefd['set']('tail',String(_0x338116['tail']));const _0x781017=await fetch(API_BASE+'/tasks/'+_0x4c2d77+'/logs'+(_0x2edefd['toString']()?'?'+_0x2edefd['toString']():''));if(!_0x781017['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x781017['statusText']);return await _0x781017['text']();},async 'getContainers'(){const _0x1deb60=await fetch(API_BASE+'/containers');if(!_0x1deb60['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x1deb60['statusText']);return await _0x1deb60['json']();},async 'getContainer'(_0x426ebf){const _0x1f7056=await fetch(API_BASE+'/containers/'+_0x426ebf);if(!_0x1f7056['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x1f7056['statusText']);return await _0x1f7056['json']();},async 'startInteractiveContainer'(_0x13b626){const _0x185077=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13b626)});if(!_0x185077['ok']){const _0x21ef38=await _0x185077['json']()['catch'](()=>({}));throw new Error(_0x21ef38['message']||'Failed\x20to\x20start\x20container:\x20'+_0x185077['statusText']);}return await _0x185077['json']();},async 'startContainerCodeServer'(_0x2573dc,_0x232318={}){if(!_0x2573dc)throw new Error('Container\x20ID\x20is\x20required');const _0x5cc505=new URLSearchParams();_0x232318['theme']&&_0x5cc505['set']('theme',_0x232318['theme']);const _0xaf622a=await fetch(API_BASE+'/containers/'+_0x2573dc+'/code-server'+(_0x5cc505['toString']()?'?'+_0x5cc505['toString']():'')),_0x43f654=await _0xaf622a['json']()['catch'](()=>({}));if(!_0xaf622a['ok'])throw new Error(_0x43f654['message']||_0x43f654['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0xaf622a['statusText']);return _0x43f654;},async 'stopContainer'(_0x286d5f){const _0x55477c=await fetch(API_BASE+'/containers/'+_0x286d5f,{'method':'DELETE'});if(!_0x55477c['ok']){const _0x20937f=await _0x55477c['json']()['catch'](()=>({}));throw new Error(_0x20937f['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x55477c['statusText']);}return await _0x55477c['json']();},async 'stopTask'(_0x32cad8){if(!_0x32cad8)throw new Error('Task\x20ID\x20is\x20required');const _0x204c5c=await fetch(API_BASE+'/tasks/'+_0x32cad8+'/stop',{'method':'POST'});if(!_0x204c5c['ok']){const _0x50782e=await _0x204c5c['json']()['catch'](()=>({}));throw new Error(_0x50782e['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x204c5c['statusText']);}return await _0x204c5c['json']();},async 'interruptTask'(_0x27e2eb){if(!_0x27e2eb)throw new Error('Task\x20ID\x20is\x20required');const _0x50c14a=await fetch(API_BASE+'/tasks/'+_0x27e2eb+'/interrupt',{'method':'POST'});if(!_0x50c14a['ok']){const _0x4fc022=await _0x50c14a['json']()['catch'](()=>({}));throw new Error(_0x4fc022['error']||_0x4fc022['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x50c14a['statusText']);}return await _0x50c14a['json']();},async 'startTask'(_0x3d8360){if(!_0x3d8360)throw new Error('Task\x20ID\x20is\x20required');const _0x431129=await fetch(API_BASE+'/tasks/'+_0x3d8360+'/start',{'method':'POST'});if(!_0x431129['ok']){const _0x4321cc=await _0x431129['json']()['catch'](()=>({}));throw new Error(_0x4321cc['error']||'Failed\x20to\x20start\x20task:\x20'+_0x431129['statusText']);}return await _0x431129['json']();},async 'deleteTask'(_0x11af7f){if(!_0x11af7f)throw new Error('Task\x20ID\x20is\x20required');const _0x113253=await fetch(API_BASE+'/tasks/'+_0x11af7f,{'method':'DELETE'});if(!_0x113253['ok']){const _0x212e89=await _0x113253['json']()['catch'](()=>({}));throw new Error(_0x212e89['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x113253['statusText']);}return await _0x113253['json']();},async 'refreshTasksFromDisk'(){const _0x550980=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x550980['ok']){const _0xe7c612=await _0x550980['json']()['catch'](()=>({}));throw new Error(_0xe7c612['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x550980['statusText']);}return await _0x550980['json']();},async 'approveTask'(_0x20e537,_0x48347c={}){if(!_0x20e537)throw new Error('Task\x20ID\x20is\x20required');const _0x458e56={'commit_message':_0x48347c['commit_message']||'','pull':_0x48347c['pull']??![],'push':_0x48347c['push']??![],'conflict_strategy':_0x48347c['conflict_strategy']||'rebase'};_0x48347c['new_branch']&&(_0x458e56['new_branch']=_0x48347c['new_branch']);const _0x296163=await fetch(API_BASE+'/tasks/'+_0x20e537+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x458e56)});if(!_0x296163['ok']){const _0x21c1bc=await _0x296163['json']()['catch'](()=>({}));let _0x2c76a5=_0x21c1bc['error']||_0x21c1bc['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x296163['statusText'];if(_0x21c1bc['results']&&Array['isArray'](_0x21c1bc['results'])){const _0xc6d83a=_0x21c1bc['results']['filter'](_0x32a9e0=>!_0x32a9e0['success']&&_0x32a9e0['error']);_0xc6d83a['length']>0x0&&(_0x2c76a5=_0xc6d83a[0x0]['error']);}const _0x13978e=new Error(_0x2c76a5);_0x13978e['hasConflicts']=_0x21c1bc['results']?.['some'](_0x27a9d5=>_0x27a9d5['conflict'])||![];throw _0x13978e;}return await _0x296163['json']();},async 'getPullRequestInfo'(_0x380435){if(!_0x380435)throw new Error('Task\x20ID\x20is\x20required');const _0x4d78bb=await fetch(API_BASE+'/tasks/'+_0x380435+'/pull-request-info');if(!_0x4d78bb['ok']){const _0x49f6a0=await _0x4d78bb['json']()['catch'](()=>({}));throw new Error(_0x49f6a0['error']||_0x49f6a0['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4d78bb['statusText']);}return await _0x4d78bb['json']();},async 'createPullRequests'(_0x399535,_0x308a46){if(!_0x399535)throw new Error('Task\x20ID\x20is\x20required');if(!_0x308a46||!Array['isArray'](_0x308a46))throw new Error('repos\x20array\x20is\x20required');const _0x5c88b4=await fetch(API_BASE+'/tasks/'+_0x399535+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x308a46})});if(!_0x5c88b4['ok']){const _0x390e15=await _0x5c88b4['json']()['catch'](()=>({}));let _0x5c9ca6=_0x390e15['error']||_0x390e15['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x5c88b4['statusText'];if(_0x390e15['results']&&Array['isArray'](_0x390e15['results'])){const _0x396d42=_0x390e15['results']['filter'](_0x849e4=>!_0x849e4['success']&&_0x849e4['error']);_0x396d42['length']>0x0&&(_0x5c9ca6=_0x396d42[0x0]['error']);}throw new Error(_0x5c9ca6);}return await _0x5c88b4['json']();},async 'syncRepos'(_0x197422){if(!_0x197422)throw new Error('Task\x20ID\x20is\x20required');const _0x56b347=await fetch(API_BASE+'/tasks/'+_0x197422+'/sync-repos',{'method':'POST'});if(!_0x56b347['ok']){const _0x3a191f=await _0x56b347['json']()['catch'](()=>({}));throw new Error(_0x3a191f['error']||_0x3a191f['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x56b347['statusText']);}return await _0x56b347['json']();},async 'getIbmiSyncInfo'(_0x32a851){if(!_0x32a851)throw new Error('Task\x20ID\x20is\x20required');const _0x10f6a0=await fetch(API_BASE+'/tasks/'+_0x32a851+'/ibmi-sync-info');if(!_0x10f6a0['ok']){const _0x24e72d=await _0x10f6a0['json']()['catch'](()=>({}));throw new Error(_0x24e72d['error']||_0x24e72d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x10f6a0['json']();},async 'getSyncFiles'(_0x3eb3ba){if(!_0x3eb3ba)throw new Error('Task\x20ID\x20is\x20required');const _0x48371f=await fetch(API_BASE+'/tasks/'+_0x3eb3ba+'/sync-to-ibmi/files');if(!_0x48371f['ok']){const _0x5251f9=await _0x48371f['json']()['catch'](()=>({}));throw new Error(_0x5251f9['error']||_0x5251f9['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x48371f['json']();},async 'syncToIbmi'(_0x45001c,_0x3351db,_0x16dfd7=null,_0x3d123c=null,_0x12234b=null){if(!_0x45001c)throw new Error('Task\x20ID\x20is\x20required');const _0x2e5299={'library':_0x3351db};if(_0x16dfd7)_0x2e5299['user']=_0x16dfd7;if(_0x3d123c)_0x2e5299['password']=_0x3d123c;if(_0x12234b)_0x2e5299['files']=_0x12234b;const _0x3aff33=await fetch(API_BASE+'/tasks/'+_0x45001c+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e5299)});if(!_0x3aff33['ok']){const _0x51f489=await _0x3aff33['json']()['catch'](()=>({}));throw new Error(_0x51f489['error']||_0x51f489['message']||'Sync\x20failed');}return await _0x3aff33['json']();},async 'getIbmiSyncLog'(_0x537e1c){if(!_0x537e1c)throw new Error('Task\x20ID\x20is\x20required');const _0x12ff54=await fetch(API_BASE+'/tasks/'+_0x537e1c+'/ibmi-sync-log');if(!_0x12ff54['ok']){const _0x5ac2fb=await _0x12ff54['json']()['catch'](()=>({}));throw new Error(_0x5ac2fb['error']||_0x5ac2fb['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x12ff54['json']();},async 'pullChanges'(_0x1a0b22){if(!_0x1a0b22)throw new Error('Task\x20ID\x20is\x20required');const _0x4d03cd=await fetch(API_BASE+'/tasks/'+_0x1a0b22+'/pull-changes',{'method':'POST'});if(!_0x4d03cd['ok']){const _0x25b1f0=await _0x4d03cd['json']()['catch'](()=>({}));throw new Error(_0x25b1f0['error']||_0x25b1f0['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x4d03cd['statusText']);}return await _0x4d03cd['json']();},async 'readFile'(_0x136eb7,_0x28672f){if(!_0x136eb7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28672f)throw new Error('File\x20path\x20is\x20required');const _0x2eed69=await fetch(API_BASE+'/tasks/'+_0x136eb7+'/files?path='+encodeURIComponent(_0x28672f));if(!_0x2eed69['ok']){const _0x13f526=await _0x2eed69['json']()['catch'](()=>({}));throw new Error(_0x13f526['error']||_0x13f526['message']||'Failed\x20to\x20read\x20file:\x20'+_0x2eed69['statusText']);}return await _0x2eed69['json']();},'getTaskFileDownloadUrl'(_0x242727,_0x5f1413){if(!_0x242727)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5f1413)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242727+'/files/download?path='+encodeURIComponent(_0x5f1413);},async 'writeFile'(_0x369780,_0x1c6c1d,_0x1392a5){if(!_0x369780)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c6c1d)throw new Error('File\x20path\x20is\x20required');if(_0x1392a5===undefined)throw new Error('Content\x20is\x20required');const _0x5790d6=await fetch(API_BASE+'/tasks/'+_0x369780+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1c6c1d,'content':_0x1392a5})});if(!_0x5790d6['ok']){const _0x805679=await _0x5790d6['json']()['catch'](()=>({}));throw new Error(_0x805679['error']||_0x805679['message']||'Failed\x20to\x20write\x20file:\x20'+_0x5790d6['statusText']);}return await _0x5790d6['json']();},async 'uploadTaskFiles'(_0x490017,_0xe39deb,_0x589741){if(!_0x490017)throw new Error('Task\x20ID\x20is\x20required');if(!_0xe39deb)throw new Error('Target\x20directory\x20is\x20required');if(!_0x589741||_0x589741['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x356912=new FormData();_0x356912['append']('targetDir',_0xe39deb);for(const _0x98d20a of _0x589741){_0x356912['append']('files',_0x98d20a,_0x98d20a['name']);}const _0x1f7e23=await fetch(API_BASE+'/tasks/'+_0x490017+'/files/upload',{'method':'POST','body':_0x356912});if(!_0x1f7e23['ok']){const _0x36a3b3=await _0x1f7e23['json']()['catch'](()=>({}));throw new Error(_0x36a3b3['error']||_0x36a3b3['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x1f7e23['statusText']);}return await _0x1f7e23['json']();},async 'createDirectory'(_0x370bff,_0x50a012){if(!_0x370bff)throw new Error('Task\x20ID\x20is\x20required');if(!_0x50a012)throw new Error('Directory\x20path\x20is\x20required');const _0x7927d0=await fetch(API_BASE+'/tasks/'+_0x370bff+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x50a012})});if(!_0x7927d0['ok']){const _0x2d0c9f=await _0x7927d0['json']()['catch'](()=>({}));throw new Error(_0x2d0c9f['error']||_0x2d0c9f['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x7927d0['statusText']);}return await _0x7927d0['json']();},async 'renamePath'(_0x21af16,_0xe56c,_0x516436){if(!_0x21af16)throw new Error('Task\x20ID\x20is\x20required');if(!_0xe56c)throw new Error('Source\x20path\x20is\x20required');if(!_0x516436)throw new Error('Destination\x20path\x20is\x20required');const _0x10e18a=await fetch(API_BASE+'/tasks/'+_0x21af16+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0xe56c,'newPath':_0x516436})});if(!_0x10e18a['ok']){const _0x558424=await _0x10e18a['json']()['catch'](()=>({}));throw new Error(_0x558424['error']||_0x558424['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x10e18a['statusText']);}return await _0x10e18a['json']();},async 'deleteFile'(_0x2207b6,_0x5ac070){if(!_0x2207b6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ac070)throw new Error('File\x20path\x20is\x20required');const _0x93f415=await fetch(API_BASE+'/tasks/'+_0x2207b6+'/files?path='+encodeURIComponent(_0x5ac070),{'method':'DELETE'});if(!_0x93f415['ok']){const _0x19ad17=await _0x93f415['json']()['catch'](()=>({}));throw new Error(_0x19ad17['error']||_0x19ad17['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x93f415['statusText']);}return await _0x93f415['json']();},async 'deleteDirectory'(_0x595d93,_0x23d0b5){if(!_0x595d93)throw new Error('Task\x20ID\x20is\x20required');if(!_0x23d0b5)throw new Error('Directory\x20path\x20is\x20required');const _0x4d3523=await fetch(API_BASE+'/tasks/'+_0x595d93+'/files/directory?path='+encodeURIComponent(_0x23d0b5),{'method':'DELETE'});if(!_0x4d3523['ok']){const _0x1d59be=await _0x4d3523['json']()['catch'](()=>({}));throw new Error(_0x1d59be['error']||_0x1d59be['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x4d3523['statusText']);}return await _0x4d3523['json']();},async 'discardFile'(_0x51e38f,_0x545875,_0x52d636){if(!_0x51e38f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x545875)throw new Error('File\x20path\x20is\x20required');if(!_0x52d636)throw new Error('Repository\x20path\x20is\x20required');const _0x12ee6e=await fetch(API_BASE+'/tasks/'+_0x51e38f+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x545875,'repoPath':_0x52d636})});if(!_0x12ee6e['ok']){const _0x3699d4=await _0x12ee6e['json']()['catch'](()=>({}));throw new Error(_0x3699d4['error']||_0x3699d4['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x12ee6e['statusText']);}return await _0x12ee6e['json']();},async 'followUpTask'(_0xc67766,_0x288a92={}){if(!_0xc67766)throw new Error('Task\x20ID\x20is\x20required');if(!_0x288a92['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x352351,_0xb06d1b={};if(_0x288a92['files']&&_0x288a92['files']['length']>0x0){const _0x4a1448=new FormData();_0x4a1448['append']('instructions',_0x288a92['instructions']);for(const _0x3e4a16 of _0x288a92['files']){_0x4a1448['append']('attachments',_0x3e4a16);}_0x352351=_0x4a1448;}else _0xb06d1b['Content-Type']='application/json',_0x352351=JSON['stringify']({'instructions':_0x288a92['instructions']});const _0x29e94c=await fetch(API_BASE+'/tasks/'+_0xc67766+'/follow-up',{'method':'POST','headers':_0xb06d1b,'body':_0x352351});if(!_0x29e94c['ok']){const _0x25e3b8=await _0x29e94c['json']()['catch'](()=>({}));throw new Error(_0x25e3b8['error']||_0x25e3b8['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x29e94c['statusText']);}return await _0x29e94c['json']();},async 'getTaskRewindPoints'(_0x411d38){if(!_0x411d38)throw new Error('Task\x20ID\x20is\x20required');const _0x1b07ee=await fetch(API_BASE+'/tasks/'+_0x411d38+'/rewind-points');if(!_0x1b07ee['ok']){const _0x264c5a=await _0x1b07ee['json']()['catch'](()=>({}));throw new Error(_0x264c5a['error']||_0x264c5a['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x1b07ee['statusText']);}return await _0x1b07ee['json']();},async 'rewindTask'(_0x1d36f7,_0x166ab8={}){if(!_0x1d36f7)throw new Error('Task\x20ID\x20is\x20required');const _0x3064d8=Number['isInteger'](_0x166ab8['targetFollowUpCount'])?_0x166ab8['targetFollowUpCount']:0x0,_0x3d02ed={'targetFollowUpCount':_0x3064d8};typeof _0x166ab8['instructions']==='string'&&_0x166ab8['instructions']['trim']()&&(_0x3d02ed['instructions']=_0x166ab8['instructions']['trim']());typeof _0x166ab8['rewindFiles']==='boolean'&&(_0x3d02ed['rewindFiles']=_0x166ab8['rewindFiles']);const _0x365313=await fetch(API_BASE+'/tasks/'+_0x1d36f7+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3d02ed)});if(!_0x365313['ok']){const _0x183a02=await _0x365313['json']()['catch'](()=>({}));throw new Error(_0x183a02['error']||_0x183a02['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x365313['statusText']);}return await _0x365313['json']();},async 'login'(_0x4a458f,_0x5c0aeb){const _0x46c011=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4a458f,'password':_0x5c0aeb})});if(!_0x46c011['ok']){const _0x1ed7da=await _0x46c011['json']();throw new Error(_0x1ed7da['message']||'Login\x20failed');}return await _0x46c011['json']();},async 'logout'(){const _0x4f759b=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4f759b['ok']){const _0x1946d1=await _0x4f759b['json']();throw new Error(_0x1946d1['message']||'Logout\x20failed');}return await _0x4f759b['json']();},async 'getCurrentUser'(){const _0x574475=await fetch(API_BASE+'/auth/me');if(!_0x574475['ok'])throw new Error('Not\x20authenticated');const _0x565aa0=await _0x574475['json']();return _0x565aa0['user'];},async 'getRolesInfo'(){const _0x5889e7=await fetch(API_BASE+'/users/roles');if(!_0x5889e7['ok']){const _0x145c93=await _0x5889e7['json']();throw new Error(_0x145c93['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x5889e7['json']();},async 'getUsers'(){const _0x38c4cc=await fetch(API_BASE+'/users');if(!_0x38c4cc['ok']){const _0x3b108c=await _0x38c4cc['json']();throw new Error(_0x3b108c['message']||'Failed\x20to\x20get\x20users');}return await _0x38c4cc['json']();},async 'getUser'(_0x352e9d){const _0x454440=await fetch(API_BASE+'/users/'+_0x352e9d);if(!_0x454440['ok']){const _0x21598b=await _0x454440['json']();throw new Error(_0x21598b['message']||'Failed\x20to\x20get\x20user');}return await _0x454440['json']();},async 'createUser'(_0x21ea58){const _0x51aebc=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21ea58)});if(!_0x51aebc['ok']){const _0x1f69bd=await _0x51aebc['json']();throw new Error(_0x1f69bd['message']||'Failed\x20to\x20create\x20user');}return await _0x51aebc['json']();},async 'updateUser'(_0x539c97,_0x13e896){const _0x57942c=await fetch(API_BASE+'/users/'+_0x539c97,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13e896)});if(!_0x57942c['ok']){const _0x4049bf=await _0x57942c['json']();throw new Error(_0x4049bf['message']||'Failed\x20to\x20update\x20user');}return await _0x57942c['json']();},async 'deleteUser'(_0x1aa5b2){const _0x17c764=await fetch(API_BASE+'/users/'+_0x1aa5b2,{'method':'DELETE'});if(!_0x17c764['ok']){const _0x6fa0e8=await _0x17c764['json']();throw new Error(_0x6fa0e8['message']||'Failed\x20to\x20delete\x20user');}return await _0x17c764['json']();},async 'stopAllContainers'(){const _0x4ef704=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x2eaed6=await _0x4ef704['json']()['catch'](()=>({}));if(!_0x4ef704['ok'])throw new Error(_0x2eaed6['message']||_0x2eaed6['error']||'Failed\x20to\x20stop\x20containers');return _0x2eaed6;},async 'removeStoppedContainers'(){const _0xd8c465=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x62293f=await _0xd8c465['json']()['catch'](()=>({}));if(!_0xd8c465['ok'])throw new Error(_0x62293f['message']||_0x62293f['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x62293f;},async 'pruneDockerResources'(){const _0x1e0488=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x486af1=await _0x1e0488['json']()['catch'](()=>({}));if(!_0x1e0488['ok'])throw new Error(_0x486af1['message']||_0x486af1['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x486af1;},async 'getUpdateSettings'(){const _0x554259=await fetch(API_BASE+'/health/update-settings'),_0x2c693e=await _0x554259['json']()['catch'](()=>({}));if(!_0x554259['ok'])throw new Error(_0x2c693e['message']||_0x2c693e['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x2c693e;},async 'applyServerUpdate'(_0x3b5294){const _0x121ed4=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x3b5294})}),_0x5750f1=await _0x121ed4['json']()['catch'](()=>({}));if(!_0x121ed4['ok']){const _0x4f0ee1=new Error(_0x5750f1['message']||_0x5750f1['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x5750f1['output']!==undefined)_0x4f0ee1['output']=_0x5750f1['output'];if(_0x5750f1['error']!==undefined)_0x4f0ee1['commandError']=_0x5750f1['error'];throw _0x4f0ee1;}return _0x5750f1;},async 'restartServer'(){const _0xd62c14=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0xece1c4=await _0xd62c14['json']()['catch'](()=>({}));if(!_0xd62c14['ok'])throw new Error(_0xece1c4['message']||_0xece1c4['error']||'Failed\x20to\x20restart\x20server');return _0xece1c4;},async 'getDockerContainers'(){const _0x2c7dc9=await fetch(API_BASE+'/health/containers'),_0x27d5ed=await _0x2c7dc9['json']()['catch'](()=>({}));if(!_0x2c7dc9['ok'])throw new Error(_0x27d5ed['message']||_0x27d5ed['error']||'Failed\x20to\x20load\x20containers');return _0x27d5ed;},async 'getDockerImages'(){const _0x1be16d=await fetch(API_BASE+'/health/docker/images'),_0xae16a1=await _0x1be16d['json']()['catch'](()=>({}));if(!_0x1be16d['ok'])throw new Error(_0xae16a1['message']||_0xae16a1['error']||'Failed\x20to\x20load\x20images');return _0xae16a1;},async 'getDockerVolumes'(){const _0x154fc8=await fetch(API_BASE+'/health/docker/volumes'),_0x1209c4=await _0x154fc8['json']()['catch'](()=>({}));if(!_0x154fc8['ok'])throw new Error(_0x1209c4['message']||_0x1209c4['error']||'Failed\x20to\x20load\x20volumes');return _0x1209c4;},async 'getActiveSessions'(){const _0x5e6319=await fetch(API_BASE+'/health/sessions'),_0x40489b=await _0x5e6319['json']()['catch'](()=>({}));if(!_0x5e6319['ok'])throw new Error(_0x40489b['message']||_0x40489b['error']||'Failed\x20to\x20load\x20sessions');return _0x40489b;},async 'getSystemInfo'(){const _0x4bb39d=await fetch(API_BASE+'/health/system'),_0x26e506=await _0x4bb39d['json']()['catch'](()=>({}));if(!_0x4bb39d['ok'])throw new Error(_0x26e506['message']||_0x26e506['error']||'Failed\x20to\x20load\x20system\x20info');return _0x26e506;},async 'stopDockerContainer'(_0x4aa583){const _0x42cd0a=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x4aa583)+'/stop',{'method':'POST'}),_0x1f6a58=await _0x42cd0a['json']()['catch'](()=>({}));if(!_0x42cd0a['ok'])throw new Error(_0x1f6a58['message']||_0x1f6a58['error']||'Failed\x20to\x20stop\x20container');return _0x1f6a58;},async 'removeDockerContainer'(_0x4adf1){const _0x5f5b4a=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x4adf1),{'method':'DELETE'}),_0x108d5d=await _0x5f5b4a['json']()['catch'](()=>({}));if(!_0x5f5b4a['ok'])throw new Error(_0x108d5d['message']||_0x108d5d['error']||'Failed\x20to\x20remove\x20container');return _0x108d5d;},async 'createPasswordToken'(_0x29d4ca,_0x68e4c0='setup',_0x93732d=![]){const _0x51843c=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x29d4ca,'type':_0x68e4c0,'sendEmail':_0x93732d})});if(!_0x51843c['ok']){const _0x474dca=await _0x51843c['json']();throw new Error(_0x474dca['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x51843c['json']();},async 'getEmailConfig'(){const _0x2729e0=await fetch(API_BASE+'/password/email-config');if(!_0x2729e0['ok']){const _0xb7cf76=await _0x2729e0['json']();throw new Error(_0xb7cf76['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x2729e0['json']();},async 'updateTaskName'(_0x31ed69,_0x4b6dab){const _0x3c90a2=await fetch(API_BASE+'/tasks/'+_0x31ed69,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4b6dab})});if(!_0x3c90a2['ok']){const _0x50094a=await _0x3c90a2['json']();throw new Error(_0x50094a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x3c90a2['json']();},async 'pinTask'(_0x22186b,_0x153c93,_0x5013d7=null){if(!_0x22186b)throw new Error('Task\x20ID\x20is\x20required');const _0x16b9a5={'pinned':_0x153c93};_0x5013d7&&_0x5013d7['length']>0x0&&(_0x16b9a5['additionalTaskIds']=_0x5013d7);const _0x413481=await fetch(API_BASE+'/tasks/'+_0x22186b+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x16b9a5)});if(!_0x413481['ok']){const _0x39afe8=await _0x413481['json']();throw new Error(_0x39afe8['error']||'Failed\x20to\x20pin\x20task');}return await _0x413481['json']();},async 'setTaskWinner'(_0x17638f,_0x27d8de,_0x13b4b4=[]){if(!_0x17638f)throw new Error('Task\x20ID\x20is\x20required');const _0x11b193=await fetch(API_BASE+'/tasks/'+_0x17638f+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x27d8de,'siblings':_0x13b4b4})});if(!_0x11b193['ok']){const _0x5b7aee=await _0x11b193['json']();throw new Error(_0x5b7aee['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x11b193['json']();},async 'setTaskLoser'(_0x5399f5,_0x18fa65){if(!_0x5399f5)throw new Error('Task\x20ID\x20is\x20required');const _0x4ec4ce=await fetch(API_BASE+'/tasks/'+_0x5399f5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x18fa65})});if(!_0x4ec4ce['ok']){const _0x142630=await _0x4ec4ce['json']();throw new Error(_0x142630['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x4ec4ce['json']();},async 'createTaskGroup'(_0x25c38f){const _0x5ed3c6=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25c38f)});if(!_0x5ed3c6['ok']){const _0x3f26df=await _0x5ed3c6['json']();throw new Error(_0x3f26df['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x5ed3c6['json']();},async 'getTaskGroups'(_0x5a7d27={}){const _0x5d1731=new URLSearchParams();if(_0x5a7d27['userId'])_0x5d1731['set']('userId',String(_0x5a7d27['userId']));if(_0x5a7d27['status'])_0x5d1731['set']('status',String(_0x5a7d27['status']));if(_0x5a7d27['limit'])_0x5d1731['set']('limit',String(_0x5a7d27['limit']));const _0x4b741a=API_BASE+'/tasks/groups'+(_0x5d1731['toString']()?'?'+_0x5d1731['toString']():''),_0x557c20=await fetch(_0x4b741a);if(!_0x557c20['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x557c20['json']();},async 'getTaskGroup'(_0x1d16cf){const _0x2db40c=await fetch(API_BASE+'/tasks/groups/'+_0x1d16cf);if(!_0x2db40c['ok']){const _0x5b6b89=await _0x2db40c['json']();throw new Error(_0x5b6b89['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x2db40c['json']();},async 'updateTaskGroup'(_0x1729d7,_0x50a379,_0x24ff3f){const _0x41afb9=await fetch(API_BASE+'/tasks/'+_0x1729d7+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x50a379,'groupIndex':_0x24ff3f})});if(!_0x41afb9['ok']){const _0x41e1fa=await _0x41afb9['json']();throw new Error(_0x41e1fa['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x41afb9['json']();},async 'removeTaskFromGroup'(_0x1c3243){return this['updateTaskGroup'](_0x1c3243,null,null);},async 'deleteTaskGroup'(_0x21ce27,_0x5b07a6=![]){const _0x637b66=_0x5b07a6?'?deleteTasks=true':'',_0x54aa7c=await fetch(API_BASE+'/tasks/groups/'+_0x21ce27+_0x637b66,{'method':'DELETE'});if(!_0x54aa7c['ok']){const _0x46ba7d=await _0x54aa7c['json']();throw new Error(_0x46ba7d['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3dbc2d,_0x30ea32){const _0xb844d7=await fetch(API_BASE+'/tasks/groups/'+_0x3dbc2d+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x30ea32})});if(!_0xb844d7['ok']){const _0x3d2cc9=await _0xb844d7['json']();throw new Error(_0x3d2cc9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0xb844d7['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4fea0b){if(!_0x4fea0b)throw new Error('Task\x20ID\x20is\x20required');const _0x13859a=await fetch(API_BASE+'/tasks/'+_0x4fea0b+'/comments');if(!_0x13859a['ok']){const _0xc43a17=await _0x13859a['json']()['catch'](()=>({}));throw new Error(_0xc43a17['error']||'Failed\x20to\x20get\x20comments');}return await _0x13859a['json']();},async 'addComment'(_0x53907e,_0x322f32){if(!_0x53907e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x322f32)throw new Error('Comment\x20content\x20is\x20required');const _0x34fcda=await fetch(API_BASE+'/tasks/'+_0x53907e+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x322f32})});if(!_0x34fcda['ok']){const _0x4f5203=await _0x34fcda['json']()['catch'](()=>({}));throw new Error(_0x4f5203['error']||'Failed\x20to\x20add\x20comment');}return await _0x34fcda['json']();},async 'updateComment'(_0x47fbeb,_0x3593a5,_0x56f05f){if(!_0x47fbeb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3593a5)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x56f05f)throw new Error('Comment\x20content\x20is\x20required');const _0x3fdc95=await fetch(API_BASE+'/tasks/'+_0x47fbeb+'/comments/'+_0x3593a5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x56f05f})});if(!_0x3fdc95['ok']){const _0x5a572c=await _0x3fdc95['json']()['catch'](()=>({}));throw new Error(_0x5a572c['error']||'Failed\x20to\x20update\x20comment');}return await _0x3fdc95['json']();},async 'deleteComment'(_0x6354ef,_0x3990e9){if(!_0x6354ef)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3990e9)throw new Error('Comment\x20ID\x20is\x20required');const _0x15fa1c=await fetch(API_BASE+'/tasks/'+_0x6354ef+'/comments/'+_0x3990e9,{'method':'DELETE'});if(!_0x15fa1c['ok']){const _0x3a752e=await _0x15fa1c['json']()['catch'](()=>({}));throw new Error(_0x3a752e['error']||'Failed\x20to\x20delete\x20comment');}return await _0x15fa1c['json']();},async 'createObjective'(_0x5331b8){const _0xcee002={'objective':!![],'name':_0x5331b8['name']||'','environment':_0x5331b8['environment']||null,'agents':_0x5331b8['agents']||[],'branches':_0x5331b8['branches']||{},'isPinned':_0x5331b8['isPinned']||![],'parentObjectiveId':_0x5331b8['parentObjectiveId']||null,'env_vars':_0x5331b8['envVars']||{},'parameters':{'instructions':_0x5331b8['instructions']||''},'files':_0x5331b8['files']||[],'jira':_0x5331b8['jira']||null};return this['createTask'](_0xcee002);},async 'updateObjective'(_0x5e267d,_0x547ddc,_0x20c3db=[],_0x8f16cb=[]){let _0xc991df,_0x424a57={};const _0x3f258d={..._0x547ddc};_0x8f16cb&&_0x8f16cb['length']>0x0&&(_0x3f258d['removeAttachments']=_0x8f16cb);if(_0x20c3db&&_0x20c3db['length']>0x0){const _0x3a23be=new FormData();for(const [_0x83df65,_0x1c3e0e]of Object['entries'](_0x3f258d)){if(_0x1c3e0e==null)continue;typeof _0x1c3e0e==='object'?_0x3a23be['append'](_0x83df65,JSON['stringify'](_0x1c3e0e)):_0x3a23be['append'](_0x83df65,String(_0x1c3e0e));}for(const _0x3b6c4c of _0x20c3db){_0x3a23be['append']('attachments',_0x3b6c4c);}_0xc991df=_0x3a23be;}else _0x424a57['Content-Type']='application/json',_0xc991df=JSON['stringify'](_0x3f258d);const _0x489c76=await fetch(API_BASE+'/tasks/'+_0x5e267d,{'method':'PATCH','headers':_0x424a57,'body':_0xc991df});if(!_0x489c76['ok']){const _0x31c317=await _0x489c76['json']();throw new Error(_0x31c317['error']||'Failed\x20to\x20update\x20objective');}return await _0x489c76['json']();},async 'deleteObjective'(_0x5cd79b){return this['deleteTask'](_0x5cd79b);},async 'launchObjective'(_0x1937c2,_0xf03a95={}){const _0x1caea4=await fetch(API_BASE+'/tasks/'+_0x1937c2+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xf03a95)});if(!_0x1caea4['ok']){const _0x215510=await _0x1caea4['json']();throw new Error(_0x215510['error']||'Failed\x20to\x20launch\x20objective');}return await _0x1caea4['json']();},async 'getObjectiveAttachments'(_0x36e603){return this['getTaskAttachments'](_0x36e603);},async 'createJudgeTask'({environment:_0xea5b65,judgeAgent:_0x374856,groupId:_0x58b6ea,taskIds:_0x23d907,judgeCustomInstructions:_0x5c2108,isPinned:_0x10933f}){const _0x5cc159=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0xea5b65,'judgeAgent':_0x374856,'groupId':_0x58b6ea,'taskIds':_0x23d907,'judgeCustomInstructions':_0x5c2108,'isPinned':_0x10933f})});if(!_0x5cc159['ok']){const _0x27e0f1=await _0x5cc159['json']();throw new Error(_0x27e0f1['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x5cc159['json']();},async 'getJudgeTasks'(_0x5b6339){const _0x39646d=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5b6339));if(!_0x39646d['ok']){const _0x3dcf52=await _0x39646d['json']();throw new Error(_0x3dcf52['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39646d['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x21cbff,_0xca326a,_0x564b49=''){const _0x5a7853=await fetch(API_BASE+'/tasks/'+_0x21cbff+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0xca326a,'customPreamble':_0x564b49})});if(!_0x5a7853['ok']){const _0x34493a=await _0x5a7853['json']();throw new Error(_0x34493a['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x5a7853['json']();},async 'getJiraConfig'(){const _0x7480c4=await fetch(API_BASE+'/jira/config');if(!_0x7480c4['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x7480c4['json']();},async 'getJiraIssue'(_0x452e26){const _0x559e65=await fetch(API_BASE+'/jira/issues/'+_0x452e26);if(!_0x559e65['ok']){const _0x269ad6=await _0x559e65['json']()['catch'](()=>({}));throw new Error(_0x269ad6['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x559e65['statusText']);}return await _0x559e65['json']();},async 'searchJiraIssues'(_0xea36b6,_0x543283=0x14){const _0x268327=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0xea36b6,'maxResults':_0x543283})});if(!_0x268327['ok']){const _0x2f3972=await _0x268327['json']()['catch'](()=>({}));throw new Error(_0x2f3972['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x268327['statusText']);}return await _0x268327['json']();},async 'postJiraComment'(_0x220953,_0x34d2a){const _0x59c499=await fetch(API_BASE+'/jira/issues/'+_0x220953+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x34d2a})});if(!_0x59c499['ok']){const _0x51e48b=await _0x59c499['json']()['catch'](()=>({}));throw new Error(_0x51e48b['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x59c499['statusText']);}return await _0x59c499['json']();},async 'getJiraComments'(_0x4ced11){const _0x251029=await fetch(API_BASE+'/jira/issues/'+_0x4ced11+'/comments');if(!_0x251029['ok']){const _0x541071=await _0x251029['json']()['catch'](()=>({}));throw new Error(_0x541071['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x251029['statusText']);}return await _0x251029['json']();},async 'promptParameter'({environment:_0x2975e4,command:_0x5b9c95,parser:parser='json'}){const _0x3b3bc9=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2975e4,'command':_0x5b9c95,'parser':parser})});if(!_0x3b3bc9['ok']){const _0x33ff81=await _0x3b3bc9['json']()['catch'](()=>({}));throw new Error(_0x33ff81['message']||_0x33ff81['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x3b3bc9['statusText']);}return await _0x3b3bc9['json']();},async 'promptParameterStream'(_0x45beb3,_0x71c05f){const _0x4a5951=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x45beb3)});if(!_0x4a5951['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x4a5951['statusText']);const _0x1280c6=_0x4a5951['body']['getReader'](),_0x46506a=new TextDecoder();let _0x3f7ff3='';return new Promise((_0x1bc2e1,_0x26758d)=>{const _0x3743e0=async()=>{try{const {done:_0x2f8c43,value:_0x4cda78}=await _0x1280c6['read']();if(_0x2f8c43)return;_0x3f7ff3+=_0x46506a['decode'](_0x4cda78,{'stream':!![]});const _0x101182=_0x3f7ff3['split']('\x0a\x0a');_0x3f7ff3=_0x101182['pop']()||'';for(const _0x116a9f of _0x101182){if(!_0x116a9f['trim']())continue;const _0x4dcfbd=_0x116a9f['split']('\x0a');let _0x470902='message',_0x4c7b6c='';for(const _0x3e81ee of _0x4dcfbd){if(_0x3e81ee['startsWith']('event:'))_0x470902=_0x3e81ee['substring'](0x6)['trim']();else _0x3e81ee['startsWith']('data:')&&(_0x4c7b6c=_0x3e81ee['substring'](0x5)['trim']());}if(!_0x4c7b6c)continue;try{const _0x58577e=JSON['parse'](_0x4c7b6c);if(_0x470902==='progress'&&_0x71c05f)_0x71c05f(_0x58577e['stage'],_0x58577e['message']);else{if(_0x470902==='result'){_0x1bc2e1(_0x58577e);return;}else{if(_0x470902==='error'){let _0x185322=_0x58577e['message']||_0x58577e['error']||'Prompt\x20command\x20failed';_0x58577e['rawOutput']&&(_0x185322+='\x0a\x0aRaw\x20output:\x0a'+_0x58577e['rawOutput']);_0x26758d(new Error(_0x185322));return;}}}}catch(_0x379cc5){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x379cc5),console['error']('Event\x20type:',_0x470902),console['error']('Event\x20data:',_0x4c7b6c),console['error']('First\x20200\x20chars:',_0x4c7b6c['substring'](0x0,0xc8)),_0x26758d(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x379cc5['message']+'\x0a\x0aData:\x20'+_0x4c7b6c['substring'](0x0,0x1f4)));return;}}_0x3743e0();}catch(_0xd4f26d){_0x26758d(_0xd4f26d);}};_0x3743e0();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x4ef7d6){const _0xd37f44=await fetch(''+API_BASE+_0x4ef7d6);if(!_0xd37f44['ok']){const _0x146193=await _0xd37f44['json']()['catch'](()=>({'error':_0xd37f44['statusText']})),_0x1ba4ce=new Error(_0x146193['error']||_0x146193['message']||_0xd37f44['statusText']);if(_0x146193['detail']!==undefined)_0x1ba4ce['detail']=_0x146193['detail'];throw _0x1ba4ce;}return await _0xd37f44['json']();},async 'post'(_0x141149,_0x55352e){const _0x713bc8=await fetch(''+API_BASE+_0x141149,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x55352e)});if(!_0x713bc8['ok']){const _0xbd888c=await _0x713bc8['json']()['catch'](()=>({'error':_0x713bc8['statusText']})),_0x2e0e50=new Error(_0xbd888c['error']||_0xbd888c['message']||_0x713bc8['statusText']);if(_0xbd888c['detail']!==undefined)_0x2e0e50['detail']=_0xbd888c['detail'];throw _0x2e0e50;}return await _0x713bc8['json']();},async 'put'(_0x2a27d4,_0x424e57){const _0x3c7312=await fetch(''+API_BASE+_0x2a27d4,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x424e57)});if(!_0x3c7312['ok']){const _0x1d1ced=await _0x3c7312['json']()['catch'](()=>({'error':_0x3c7312['statusText']})),_0x31fe0d=new Error(_0x1d1ced['error']||_0x1d1ced['message']||_0x3c7312['statusText']);if(_0x1d1ced['detail']!==undefined)_0x31fe0d['detail']=_0x1d1ced['detail'];throw _0x31fe0d;}return await _0x3c7312['json']();},async 'delete'(_0x1a8bde,_0x495dfe){const _0x283cc2={'method':'DELETE'};_0x495dfe&&(_0x283cc2['headers']={'Content-Type':'application/json'},_0x283cc2['body']=JSON['stringify'](_0x495dfe));const _0x1a9b67=await fetch(''+API_BASE+_0x1a8bde,_0x283cc2);if(!_0x1a9b67['ok']){const _0x34ecfe=await _0x1a9b67['json']()['catch'](()=>({'error':_0x1a9b67['statusText']})),_0x4929b6=new Error(_0x34ecfe['error']||_0x34ecfe['message']||_0x1a9b67['statusText']);if(_0x34ecfe['detail']!==undefined)_0x4929b6['detail']=_0x34ecfe['detail'];throw _0x4929b6;}return await _0x1a9b67['json']();},async 'getSkills'(){const _0x4dc163=await fetch(API_BASE+'/skills');if(!_0x4dc163['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x4dc163['statusText']);return await _0x4dc163['json']();},async 'getSkill'(_0x3ee9ec){const _0x3294c5=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3ee9ec));if(!_0x3294c5['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x3294c5['statusText']);return await _0x3294c5['json']();},async 'createSkill'(_0xf09839){const _0x25d9f6=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xf09839)});if(!_0x25d9f6['ok']){const _0x402cfb=await _0x25d9f6['json']()['catch'](()=>({'error':_0x25d9f6['statusText']})),_0x4cf438=new Error(_0x402cfb['error']||_0x402cfb['message']||_0x25d9f6['statusText']);if(_0x402cfb['detail']!==undefined)_0x4cf438['detail']=_0x402cfb['detail'];throw _0x4cf438;}return await _0x25d9f6['json']();},async 'updateSkill'(_0x187771,_0x1b14a0){const _0x32c325=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x187771),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b14a0)});if(!_0x32c325['ok']){const _0x23c3b9=await _0x32c325['json']()['catch'](()=>({'error':_0x32c325['statusText']})),_0x2fbddf=new Error(_0x23c3b9['error']||_0x23c3b9['message']||_0x32c325['statusText']);if(_0x23c3b9['detail']!==undefined)_0x2fbddf['detail']=_0x23c3b9['detail'];throw _0x2fbddf;}return await _0x32c325['json']();},async 'deleteSkill'(_0x350878){const _0x4ebc30=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x350878),{'method':'DELETE'});if(!_0x4ebc30['ok']){const _0x317838=await _0x4ebc30['json']()['catch'](()=>({'error':_0x4ebc30['statusText']})),_0x2cd3ef=new Error(_0x317838['error']||_0x317838['message']||_0x4ebc30['statusText']);if(_0x317838['detail']!==undefined)_0x2cd3ef['detail']=_0x317838['detail'];throw _0x2cd3ef;}return await _0x4ebc30['json']();},async 'getSkillFile'(_0x542969,_0x3ff4e0){const _0x55dfa6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x542969)+'/files/'+_0x3ff4e0);if(!_0x55dfa6['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x55dfa6['statusText']);return await _0x55dfa6['json']();},async 'saveSkillFile'(_0x21bd5e,_0x4120d6,_0x4038f9){const _0x1f9bb6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x21bd5e)+'/files/'+_0x4120d6,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4038f9})});if(!_0x1f9bb6['ok']){const _0x223601=await _0x1f9bb6['json']()['catch'](()=>({'error':_0x1f9bb6['statusText']})),_0x42e9ce=new Error(_0x223601['error']||_0x223601['message']||_0x1f9bb6['statusText']);if(_0x223601['detail']!==undefined)_0x42e9ce['detail']=_0x223601['detail'];throw _0x42e9ce;}return await _0x1f9bb6['json']();},async 'deleteSkillFile'(_0x11fdd5,_0x2681e9){const _0xfe9504=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x11fdd5)+'/files/'+_0x2681e9,{'method':'DELETE'});if(!_0xfe9504['ok']){const _0x3d647f=await _0xfe9504['json']()['catch'](()=>({'error':_0xfe9504['statusText']})),_0x2f7d22=new Error(_0x3d647f['error']||_0x3d647f['message']||_0xfe9504['statusText']);if(_0x3d647f['detail']!==undefined)_0x2f7d22['detail']=_0x3d647f['detail'];throw _0x2f7d22;}return await _0xfe9504['json']();},async 'pullSkills'(){const _0x638b3e=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x638b3e['ok']){const _0x52da7b=await _0x638b3e['json']()['catch'](()=>({'error':_0x638b3e['statusText']})),_0xc7f352=new Error(_0x52da7b['error']||_0x52da7b['message']||_0x638b3e['statusText']);if(_0x52da7b['detail']!==undefined)_0xc7f352['detail']=_0x52da7b['detail'];throw _0xc7f352;}return await _0x638b3e['json']();},async 'commitSkills'(_0x1787af,_0x70aa0a={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x70aa0a,_0x2c1449=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x1787af,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x2c1449['ok']){const _0x3b7827=await _0x2c1449['json']()['catch'](()=>({'error':_0x2c1449['statusText']})),_0x3f2c32=new Error(_0x3b7827['error']||_0x3b7827['message']||_0x2c1449['statusText']);if(_0x3b7827['detail']!==undefined)_0x3f2c32['detail']=_0x3b7827['detail'];throw _0x3f2c32;}return await _0x2c1449['json']();},async 'discardSkillsChanges'(){const _0x29851f=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x29851f['ok']){const _0x45eaa0=await _0x29851f['json']()['catch'](()=>({'error':_0x29851f['statusText']})),_0x3065fa=new Error(_0x45eaa0['error']||_0x45eaa0['message']||_0x29851f['statusText']);if(_0x45eaa0['detail']!==undefined)_0x3065fa['detail']=_0x45eaa0['detail'];throw _0x3065fa;}return await _0x29851f['json']();},async 'getSkillCatalog'(){const _0x38577e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x38577e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x38577e['statusText']);return await _0x38577e['json']();},async 'getImportedSkillsRegistry'(){const _0x159435=await fetch(API_BASE+'/external-skills/registry');if(!_0x159435['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x159435['statusText']);return await _0x159435['json']();},async 'importCatalogSkill'(_0x2565e2){const _0x179a1a=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x2565e2})});if(!_0x179a1a['ok']){const _0x679ad9=await _0x179a1a['json']()['catch'](()=>({'error':_0x179a1a['statusText']})),_0x3e019b=new Error(_0x679ad9['error']||_0x679ad9['message']||_0x179a1a['statusText']);if(_0x679ad9['detail']!==undefined)_0x3e019b['detail']=_0x679ad9['detail'];throw _0x3e019b;}return await _0x179a1a['json']();},async 'importSkillFromGit'(_0x9113e7,_0x49a4e2,_0x3ca854='main',_0x1143fc=null){const _0x2e87ba=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x9113e7,'skillPath':_0x49a4e2,'branch':_0x3ca854,'skillId':_0x1143fc})});if(!_0x2e87ba['ok']){const _0x4f5f16=await _0x2e87ba['json']()['catch'](()=>({'error':_0x2e87ba['statusText']})),_0x2c07cf=new Error(_0x4f5f16['error']||_0x4f5f16['message']||_0x2e87ba['statusText']);if(_0x4f5f16['detail']!==undefined)_0x2c07cf['detail']=_0x4f5f16['detail'];throw _0x2c07cf;}return await _0x2e87ba['json']();},async 'probeMarketplace'(_0x4a2eca,_0x2fd74f='main'){const _0x4c33db=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4a2eca,'branch':_0x2fd74f})});if(!_0x4c33db['ok']){const _0x1b2e4a=await _0x4c33db['json']()['catch'](()=>({'error':_0x4c33db['statusText']})),_0x11d345=new Error(_0x1b2e4a['error']||_0x1b2e4a['message']||_0x4c33db['statusText']);if(_0x1b2e4a['detail']!==undefined)_0x11d345['detail']=_0x1b2e4a['detail'];throw _0x11d345;}return await _0x4c33db['json']();},async 'importMarketplaceBundle'(_0x4236a1,_0x3e5483,_0x2b2f81,_0x57eebe=null){const _0x32884e=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4236a1,'branch':_0x3e5483,'bundleId':_0x2b2f81,'selectedSkills':_0x57eebe})});if(!_0x32884e['ok']){const _0x33f0e2=await _0x32884e['json']()['catch'](()=>({'error':_0x32884e['statusText']})),_0xafd107=new Error(_0x33f0e2['error']||_0x33f0e2['message']||_0x32884e['statusText']);if(_0x33f0e2['detail']!==undefined)_0xafd107['detail']=_0x33f0e2['detail'];throw _0xafd107;}return await _0x32884e['json']();},async 'importSkillFromFolder'(_0x27df54,_0x8f2a9d=null){const _0x5e1307=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x27df54,'skillId':_0x8f2a9d})});if(!_0x5e1307['ok']){const _0x3c0bc8=await _0x5e1307['json']()['catch'](()=>({'error':_0x5e1307['statusText']})),_0xb8e210=new Error(_0x3c0bc8['error']||_0x3c0bc8['message']||_0x5e1307['statusText']);if(_0x3c0bc8['detail']!==undefined)_0xb8e210['detail']=_0x3c0bc8['detail'];throw _0xb8e210;}return await _0x5e1307['json']();},async 'importSkillFromNpm'(_0x46e23f,_0x415673='latest',_0x268bf5=null,_0x567afe=null){const _0x1d488f=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x46e23f,'version':_0x415673,'skillId':_0x268bf5,'registry':_0x567afe})});if(!_0x1d488f['ok']){const _0x32670e=await _0x1d488f['json']()['catch'](()=>({'error':_0x1d488f['statusText']})),_0x50145a=new Error(_0x32670e['error']||_0x32670e['message']||_0x1d488f['statusText']);if(_0x32670e['detail']!==undefined)_0x50145a['detail']=_0x32670e['detail'];throw _0x50145a;}return await _0x1d488f['json']();},async 'checkSkillUpdates'(_0x463560){const _0x15d7f7=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x463560)+'/check-updates',{'method':'POST'});if(!_0x15d7f7['ok']){const _0x372ae1=await _0x15d7f7['json']()['catch'](()=>({'error':_0x15d7f7['statusText']})),_0x1a9101=new Error(_0x372ae1['error']||_0x372ae1['message']||_0x15d7f7['statusText']);if(_0x372ae1['detail']!==undefined)_0x1a9101['detail']=_0x372ae1['detail'];throw _0x1a9101;}return await _0x15d7f7['json']();},async 'updateExternalSkill'(_0x1ebeb9){const _0x1dd271=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1ebeb9)+'/update',{'method':'POST'});if(!_0x1dd271['ok']){const _0x509179=await _0x1dd271['json']()['catch'](()=>({'error':_0x1dd271['statusText']})),_0x4f814c=new Error(_0x509179['error']||_0x509179['message']||_0x1dd271['statusText']);if(_0x509179['detail']!==undefined)_0x4f814c['detail']=_0x509179['detail'];throw _0x4f814c;}return await _0x1dd271['json']();},async 'updateSkillFlags'(_0x30ee67,_0x39eb5d){const _0x1baccf=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x30ee67)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x39eb5d})});if(!_0x1baccf['ok']){const _0x2b96d7=await _0x1baccf['json']()['catch'](()=>({'error':_0x1baccf['statusText']})),_0x2dfb1c=new Error(_0x2b96d7['error']||_0x2b96d7['message']||_0x1baccf['statusText']);if(_0x2b96d7['detail']!==undefined)_0x2dfb1c['detail']=_0x2b96d7['detail'];throw _0x2dfb1c;}return await _0x1baccf['json']();},async 'removeFromImportedRegistry'(_0x14a78d){const _0x2f8fa5=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x14a78d)+'/registry',{'method':'DELETE'});if(!_0x2f8fa5['ok']){const _0x1ce37e=await _0x2f8fa5['json']()['catch'](()=>({'error':_0x2f8fa5['statusText']})),_0x271a7f=new Error(_0x1ce37e['error']||_0x1ce37e['message']||_0x2f8fa5['statusText']);if(_0x1ce37e['detail']!==undefined)_0x271a7f['detail']=_0x1ce37e['detail'];throw _0x271a7f;}return await _0x2f8fa5['json']();},async 'getTeams'(){const _0x2193bc=await fetch(API_BASE+'/teams');if(!_0x2193bc['ok']){const _0x4de4f2=await _0x2193bc['json']()['catch'](()=>({'message':_0x2193bc['statusText']}));throw new Error(_0x4de4f2['message']||'Failed\x20to\x20get\x20teams');}return await _0x2193bc['json']();},async 'getTeam'(_0x11201b){const _0x54bb10=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x11201b));if(!_0x54bb10['ok']){const _0x860e4a=await _0x54bb10['json']()['catch'](()=>({'message':_0x54bb10['statusText']}));throw new Error(_0x860e4a['message']||'Failed\x20to\x20get\x20team');}return await _0x54bb10['json']();},async 'createTeam'(_0x43a9e0){const _0x264f1d=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43a9e0)});if(!_0x264f1d['ok']){const _0x31f21b=await _0x264f1d['json']()['catch'](()=>({'message':_0x264f1d['statusText']}));throw new Error(_0x31f21b['message']||'Failed\x20to\x20create\x20team');}return await _0x264f1d['json']();},async 'updateTeam'(_0x242cf5,_0x4e8a1e){const _0x453062=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x242cf5),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e8a1e)});if(!_0x453062['ok']){const _0x589f6f=await _0x453062['json']()['catch'](()=>({'message':_0x453062['statusText']}));throw new Error(_0x589f6f['message']||'Failed\x20to\x20update\x20team');}return await _0x453062['json']();},async 'deleteTeam'(_0x41ac21){const _0x4fafb2=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x41ac21),{'method':'DELETE'});if(!_0x4fafb2['ok']){const _0x9ec391=await _0x4fafb2['json']()['catch'](()=>({'message':_0x4fafb2['statusText']}));throw new Error(_0x9ec391['message']||'Failed\x20to\x20delete\x20team');}return await _0x4fafb2['json']();},async 'addTeamMember'(_0x386bad,_0x35e9eb){const _0x69922c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x386bad)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x35e9eb})});if(!_0x69922c['ok']){const _0x24db7c=await _0x69922c['json']()['catch'](()=>({'message':_0x69922c['statusText']}));throw new Error(_0x24db7c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x69922c['json']();},async 'removeTeamMember'(_0x452cb1,_0x11890c){const _0x1b8eff=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x452cb1)+'/members/'+encodeURIComponent(_0x11890c),{'method':'DELETE'});if(!_0x1b8eff['ok']){const _0x4760cc=await _0x1b8eff['json']()['catch'](()=>({'message':_0x1b8eff['statusText']}));throw new Error(_0x4760cc['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1b8eff['json']();},async 'getBindings'(_0x2436cb={}){const _0x172817=new URLSearchParams();if(_0x2436cb['resource_type'])_0x172817['set']('resource_type',_0x2436cb['resource_type']);if(_0x2436cb['resource_id'])_0x172817['set']('resource_id',_0x2436cb['resource_id']);if(_0x2436cb['subject_type'])_0x172817['set']('subject_type',_0x2436cb['subject_type']);if(_0x2436cb['subject_id'])_0x172817['set']('subject_id',_0x2436cb['subject_id']);const _0xbcdbdd=_0x172817['toString'](),_0xf10d9b=await fetch(API_BASE+'/bindings'+(_0xbcdbdd?'?'+_0xbcdbdd:''));if(!_0xf10d9b['ok']){const _0x2e0367=await _0xf10d9b['json']()['catch'](()=>({'message':_0xf10d9b['statusText']}));throw new Error(_0x2e0367['message']||'Failed\x20to\x20get\x20bindings');}return await _0xf10d9b['json']();},async 'createBinding'(_0x34a7e6){const _0x596011=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x34a7e6)});if(!_0x596011['ok']){const _0x34fbe2=await _0x596011['json']()['catch'](()=>({'message':_0x596011['statusText']}));throw new Error(_0x34fbe2['message']||'Failed\x20to\x20create\x20binding');}return await _0x596011['json']();},async 'updateBinding'(_0x3ab504,_0x4e94c9){const _0xb10721=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3ab504),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e94c9)});if(!_0xb10721['ok']){const _0x13c4c1=await _0xb10721['json']()['catch'](()=>({'message':_0xb10721['statusText']}));throw new Error(_0x13c4c1['message']||'Failed\x20to\x20update\x20binding');}return await _0xb10721['json']();},async 'deleteBinding'(_0x37c3d4){const _0x34f5f0=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x37c3d4),{'method':'DELETE'});if(!_0x34f5f0['ok']){const _0x445a4f=await _0x34f5f0['json']()['catch'](()=>({'message':_0x34f5f0['statusText']}));throw new Error(_0x445a4f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x34f5f0['json']();},async 'getRoleDefinitions'(){const _0x314386=await fetch(API_BASE+'/roles');if(!_0x314386['ok']){const _0x47e5ef=await _0x314386['json']()['catch'](()=>({'message':_0x314386['statusText']}));throw new Error(_0x47e5ef['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x314386['json']();},async 'getRoleDefinition'(_0x556a08){const _0x2b6a9a=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x556a08));if(!_0x2b6a9a['ok']){const _0x1ef5dc=await _0x2b6a9a['json']()['catch'](()=>({'message':_0x2b6a9a['statusText']}));throw new Error(_0x1ef5dc['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x2b6a9a['json']();},async 'createRoleDefinition'(_0x480eeb){const _0x153f87=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x480eeb)});if(!_0x153f87['ok']){const _0x19611a=await _0x153f87['json']()['catch'](()=>({'message':_0x153f87['statusText']}));throw new Error(_0x19611a['message']||_0x19611a['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x153f87['json']();},async 'updateRoleDefinition'(_0x55d661,_0x5e09ae){const _0x58612c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x55d661),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e09ae)});if(!_0x58612c['ok']){const _0x29b42b=await _0x58612c['json']()['catch'](()=>({'message':_0x58612c['statusText']}));throw new Error(_0x29b42b['message']||_0x29b42b['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x58612c['json']();},async 'deleteRoleDefinition'(_0x1967dd){const _0x42705d=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x1967dd),{'method':'DELETE'});if(!_0x42705d['ok']){const _0x13a6d3=await _0x42705d['json']()['catch'](()=>({'message':_0x42705d['statusText']}));throw new Error(_0x13a6d3['message']||_0x13a6d3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x42705d['json']();},async 'getAvailablePermissions'(){const _0x3808ca=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3808ca['ok']){const _0x2f5573=await _0x3808ca['json']()['catch'](()=>({'message':_0x3808ca['statusText']}));throw new Error(_0x2f5573['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3808ca['json']();},async 'getGitProviderAllowedTeams'(_0xce2592){const _0x21545c=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0xce2592)+'/allowed-teams');if(!_0x21545c['ok']){const _0x98b765=await _0x21545c['json']()['catch'](()=>({'message':_0x21545c['statusText']}));throw new Error(_0x98b765['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x21545c['json']();},async 'setGitProviderAllowedTeams'(_0x4e1459,_0x47c855){const _0x133986=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x4e1459)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x47c855})});if(!_0x133986['ok']){const _0x132c60=await _0x133986['json']()['catch'](()=>({'message':_0x133986['statusText']}));throw new Error(_0x132c60['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x133986['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x5d39d6=toastState['baseBottom'];toastState['toasts']['forEach'](_0x225632=>{_0x225632['el']['style']['bottom']=_0x5d39d6+'px';const _0x32da7f=_0x225632['el']['offsetHeight']||toastState['defaultHeight'];_0x5d39d6+=_0x32da7f+toastState['gap'];});});}function removeToastById(_0x38b45e){const _0x3e29cc=toastState['toasts']['findIndex'](_0x1843d6=>_0x1843d6['id']===_0x38b45e);if(_0x3e29cc===-0x1)return;const _0x3fec47=toastState['toasts'][_0x3e29cc];if(_0x3fec47['timeoutId'])clearTimeout(_0x3fec47['timeoutId']);_0x3fec47['el']['classList']['remove']('show'),setTimeout(()=>_0x3fec47['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3e29cc,0x1),repositionAllToasts();}function registerToast(_0x1d33ab){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x1d33ab),repositionAllToasts(),_0x1d33ab['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x56716e){if(_0x56716e===null||_0x56716e===undefined)return'';return String(_0x56716e)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0xb16861,_0x79f445){if(_0xb16861&&typeof _0xb16861==='object'&&!Array['isArray'](_0xb16861))return{'code':typeof _0xb16861['text']==='string'?_0xb16861['text']:'','language':typeof _0xb16861['lang']==='string'?_0xb16861['lang']:''};return{'code':typeof _0xb16861==='string'?_0xb16861:'','language':typeof _0x79f445==='string'?_0x79f445:''};}function buildMermaidBlock(_0x4eb9c8){const _0x1f05c1=String(_0x4eb9c8||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x1f05c1))+'\x22>'+escapeHtmlValue(_0x1f05c1)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x590ccd=new marked['Renderer'](),_0x339b65=_0x590ccd['code']['bind'](_0x590ccd);return _0x590ccd['code']=function(_0x3bf0f2,_0x42b5e4,..._0x36f52e){const {code:_0x2ff360,language:_0xd72810}=getMarkdownCodeBlockPayload(_0x3bf0f2,_0x42b5e4),_0x1a2fe9=String(_0xd72810||'')['trim']()['toLowerCase']();if(_0x1a2fe9==='mermaid')return buildMermaidBlock(_0x2ff360);const _0x2f54e2=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x2f54e2&&_0x1a2fe9)try{const _0x507bd7=_0x2f54e2['getLanguage'](_0x1a2fe9)?_0x1a2fe9:'plaintext',_0x57f623=_0x2f54e2['highlight'](_0x2ff360,{'language':_0x507bd7})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1a2fe9)+'\x22>'+_0x57f623+'</code></pre>';}catch(_0x3a2e3d){console['error']('Syntax\x20highlighting\x20error:',_0x3a2e3d);}return _0x339b65(_0x3bf0f2,_0x42b5e4,..._0x36f52e);},sharedMarkedRenderer=_0x590ccd,_0x590ccd;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x2b2d0b=window['mermaid'];if(!_0x2b2d0b||typeof _0x2b2d0b['initialize']!=='function')return _0x2b2d0b||null;return _0x2b2d0b['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x2b2d0b;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x294f1a,_0x544bbf)=>{const _0x41460f=()=>_0x294f1a(configureMermaidInstance()),_0x38ba76=()=>{mermaidLoadPromise=null,_0x544bbf(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x18ae27=document['getElementById'](MERMAID_SCRIPT_ID);!_0x18ae27&&(_0x18ae27=document['createElement']('script'),_0x18ae27['id']=MERMAID_SCRIPT_ID,_0x18ae27['src']=MERMAID_SCRIPT_SRC,_0x18ae27['async']=!![],document['head']['appendChild'](_0x18ae27));if(window['mermaid']){_0x41460f();return;}_0x18ae27['addEventListener']('load',_0x41460f,{'once':!![]}),_0x18ae27['addEventListener']('error',_0x38ba76,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x4968d1){const _0x2ae8e2=_0x4968d1['getAttribute']('data-mermaid-source');if(!_0x2ae8e2)return null;let _0x3a6cf8=_0x2ae8e2;try{_0x3a6cf8=decodeURIComponent(_0x2ae8e2);}catch{}return _0x4968d1['textContent']=_0x3a6cf8,_0x4968d1['removeAttribute']('data-processed'),_0x4968d1['removeAttribute']('aria-roledescription'),_0x4968d1['removeAttribute']('role'),_0x4968d1['removeAttribute']('aria-label'),_0x3a6cf8;}function collectMermaidNodes(_0x211d37,_0x51d721){if(!(_0x211d37 instanceof Element))return;_0x211d37['matches']('.mermaid[data-mermaid-source]')&&_0x51d721['add'](_0x211d37),_0x211d37['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5a732f=>{_0x51d721['add'](_0x5a732f);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x135f33=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xf3a95b=>setTimeout(_0xf3a95b,0x0);_0x135f33(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x29059e=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x29059e);});});}function queueMermaidRender(_0x3f8fd5){const _0x413d6b=new Set();_0x3f8fd5 instanceof Document||_0x3f8fd5 instanceof DocumentFragment?_0x3f8fd5['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5503f1=>_0x413d6b['add'](_0x5503f1)):collectMermaidNodes(_0x3f8fd5,_0x413d6b);if(_0x413d6b['size']===0x0)return;_0x413d6b['forEach'](_0x1874c1=>pendingMermaidNodes['add'](_0x1874c1)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x1d3f0b=Array['from'](pendingMermaidNodes)['filter'](_0xf80245=>_0xf80245['isConnected']);pendingMermaidNodes['clear']();if(_0x1d3f0b['length']===0x0)return;const _0x40718c=await loadMermaid();if(!_0x40718c)return;configureMermaidInstance();const _0x46334f=getMermaidTheme();for(const _0x58cd14 of _0x1d3f0b){const _0x1db774=_0x58cd14['getAttribute']('data-mermaid-source');if(!_0x1db774)continue;const _0x370118=_0x58cd14['getAttribute']('data-processed')==='true';if(_0x370118&&_0x58cd14['dataset']['mermaidTheme']===_0x46334f)continue;restoreMermaidSource(_0x58cd14);try{if(typeof _0x40718c['run']==='function')await _0x40718c['run']({'nodes':[_0x58cd14]});else typeof _0x40718c['init']==='function'&&_0x40718c['init'](undefined,[_0x58cd14]);_0x58cd14['dataset']['mermaidTheme']=_0x46334f,delete _0x58cd14['dataset']['mermaidError'];}catch(_0xc17683){console['error']('Mermaid\x20render\x20failed:',_0xc17683),restoreMermaidSource(_0x58cd14),_0x58cd14['dataset']['mermaidError']='true',delete _0x58cd14['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x2c9648=>{_0x2c9648['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x2c9648);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x15748b=>{_0x15748b['forEach'](_0x3fa856=>{_0x3fa856['addedNodes']['forEach'](_0x37d166=>{_0x37d166['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x37d166);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x3273bb){const _0x293896=new Date(_0x3273bb),_0x39dd0c=new Date(),_0x148f8d=_0x39dd0c-_0x293896,_0x31b583=Math['floor'](_0x148f8d/0x3e8),_0x197319=Math['floor'](_0x31b583/0x3c),_0x43fc38=Math['floor'](_0x197319/0x3c),_0x5686b8=Math['floor'](_0x43fc38/0x18);if(_0x31b583<0x3c)return'now';if(_0x197319<0x3c)return _0x197319+'m\x20ago';if(_0x43fc38<0x18)return _0x43fc38+'h\x20ago';return _0x5686b8+'d\x20ago';},'getStatusIcon'(_0x38e401){switch(_0x38e401){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1c4668){switch(_0x1c4668){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x3042fa,_0x57377b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x29f711={};_0x29f711['text/plain']=new Blob([_0x3042fa],{'type':'text/plain'});_0x57377b&&(_0x29f711['text/html']=new Blob([_0x57377b],{'type':'text/html'}));const _0x5c5c74=new ClipboardItem(_0x29f711);return await navigator['clipboard']['write']([_0x5c5c74]),!![];}catch(_0x4214ec){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x4214ec);}try{const _0x272a06=_0x5a1e6d=>{_0x5a1e6d['preventDefault'](),_0x5a1e6d['clipboardData']['setData']('text/plain',_0x3042fa),_0x57377b&&_0x5a1e6d['clipboardData']['setData']('text/html',_0x57377b);};document['addEventListener']('copy',_0x272a06);const _0xb6f765=document['execCommand']('copy');document['removeEventListener']('copy',_0x272a06);if(_0xb6f765)return!![];}catch(_0x499498){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x499498);}try{const _0x16da3f=document['createElement']('textarea');_0x16da3f['value']=_0x3042fa,_0x16da3f['style']['position']='fixed',_0x16da3f['style']['opacity']='0',_0x16da3f['style']['pointerEvents']='none',document['body']['appendChild'](_0x16da3f),_0x16da3f['select']();const _0xb8752c=document['execCommand']('copy');return document['body']['removeChild'](_0x16da3f),_0xb8752c;}catch(_0x1d1955){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x1d1955),![];}},'showToast'(_0x38ed37,_0x47266c='info'){const _0x5a3ab2=getNextToastId(),_0x47395b=document['createElement']('div');_0x47395b['className']='toast\x20toast-'+_0x47266c,_0x47395b['textContent']=_0x38ed37,_0x47395b['dataset']['toastId']=_0x5a3ab2,document['body']['appendChild'](_0x47395b);const _0x1f437b=_0x47266c==='error'?0x2710:0xbb8,_0x50f98a=setTimeout(()=>{removeToastById(_0x5a3ab2);},_0x1f437b),_0xa17abf={'id':_0x5a3ab2,'el':_0x47395b,'timeoutId':_0x50f98a};return registerToast(_0xa17abf),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x47395b['classList']['add']('show');});}),_0x5a3ab2;},'showError'(_0x558c11){console['error'](_0x558c11);const _0x47cd15=typeof _0x558c11==='string'?_0x558c11:_0x558c11['message']||'An\x20error\x20occurred';this['showToast'](_0x47cd15,'error');},'showSuccess'(_0x3d3010){this['showToast'](_0x3d3010,'success');},'capitalize'(_0x434c2e){if(!_0x434c2e)return'';return _0x434c2e['charAt'](0x0)['toUpperCase']()+_0x434c2e['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x381c03){return escapeHtmlValue(_0x381c03);},'ansiToHtml'(_0x31853b){if(_0x31853b===null||_0x31853b===undefined)return'';let _0x185bf9=this['escapeHtml'](_0x31853b);const _0x1d7e3b={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2cfb14={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x3cede1=0x0;return _0x185bf9=_0x185bf9['replace'](/\x1b\[([0-9;]*)m/g,(_0xad35a9,_0x5ae529)=>{if(!_0x5ae529||_0x5ae529==='0'){const _0x5f4a09='</span>'['repeat'](_0x3cede1);return _0x3cede1=0x0,_0x5f4a09;}const _0x599cfe=_0x5ae529['split'](';'),_0x23f814=[];for(const _0x1975e5 of _0x599cfe){if(_0x1975e5==='1')_0x23f814['push']('font-weight:bold');else{if(_0x1975e5==='2')_0x23f814['push']('opacity:0.7');else{if(_0x1975e5==='3')_0x23f814['push']('font-style:italic');else{if(_0x1975e5==='4')_0x23f814['push']('text-decoration:underline');else{if(_0x1975e5==='9')_0x23f814['push']('text-decoration:line-through');else{if(_0x1d7e3b[_0x1975e5])_0x23f814['push']('color:'+_0x1d7e3b[_0x1975e5]);else{if(_0x2cfb14[_0x1975e5])_0x23f814['push']('background-color:'+_0x2cfb14[_0x1975e5]);}}}}}}}if(_0x23f814['length']>0x0)return _0x3cede1++,'<span\x20style=\x22'+_0x23f814['join'](';')+'\x22>';return'';}),_0x185bf9+='</span>'['repeat'](_0x3cede1),_0x185bf9=_0x185bf9['replace'](/\\u001b\[([0-9;]*)m/g,(_0x4f7c98,_0x205ab5)=>{if(!_0x205ab5||_0x205ab5==='0')return'';const _0x2d007e=_0x205ab5['split'](';'),_0x4bb12a=[];for(const _0x59ce87 of _0x2d007e){if(_0x59ce87==='1')_0x4bb12a['push']('font-weight:bold');else{if(_0x1d7e3b[_0x59ce87])_0x4bb12a['push']('color:'+_0x1d7e3b[_0x59ce87]);else{if(_0x2cfb14[_0x59ce87])_0x4bb12a['push']('background-color:'+_0x2cfb14[_0x59ce87]);}}}if(_0x4bb12a['length']>0x0)return'<span\x20style=\x22'+_0x4bb12a['join'](';')+'\x22>';return'';}),_0x185bf9;},'showModal'({title:_0x5ab56b,content:_0x5e17e5,buttons:buttons=[]}){const _0x1f70aa='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x5ab56b)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x5e17e5+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x2a4c0d,_0x3079dd)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x2a4c0d['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3079dd+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x2a4c0d['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x4f31a2=document['createElement']('div');_0x4f31a2['id']='utils-modal',_0x4f31a2['className']='modal',_0x4f31a2['innerHTML']=_0x1f70aa,document['body']['appendChild'](_0x4f31a2);const _0x12aad4=document['getElementById']('utils-modal-close');_0x12aad4&&_0x12aad4['addEventListener']('click',()=>this['hideModal']());const _0x3dfd41=_0x4f31a2['querySelectorAll']('[data-btn-index]');_0x3dfd41['forEach'](_0x51faa3=>{const _0x10305f=parseInt(_0x51faa3['dataset']['btnIndex']);buttons[_0x10305f]?.['onClick']&&_0x51faa3['addEventListener']('click',buttons[_0x10305f]['onClick']);});const _0xb79a9c=document['getElementById']('utils-modal-overlay');_0xb79a9c&&_0xb79a9c['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x231b73=document['getElementById']('utils-modal');_0x231b73&&_0x231b73['remove']();},'parseKeyValuePairs'(_0x484cbd){const _0x3ab1eb={};if(!_0x484cbd)return _0x3ab1eb;return _0x484cbd['split'](/\r?\n/)['map'](_0x3a113f=>_0x3a113f['trim']())['filter'](Boolean)['forEach'](_0x282b0b=>{const _0x4aee4c=_0x282b0b['indexOf']('=');if(_0x4aee4c>0x0){const _0x1893be=_0x282b0b['slice'](0x0,_0x4aee4c)['trim'](),_0xee9959=_0x282b0b['slice'](_0x4aee4c+0x1)['trim']();if(_0x1893be)_0x3ab1eb[_0x1893be]=_0xee9959;}}),_0x3ab1eb;},'debounce'(_0x20b6c1,_0x5034e8=0xfa){let _0x170d13=null;return(..._0x3bb20a)=>{clearTimeout(_0x170d13),_0x170d13=setTimeout(()=>_0x20b6c1['apply'](this,_0x3bb20a),_0x5034e8);};},'formatTimestamp'(_0x420b59){if(!_0x420b59)return'N/A';const _0x473962=new Date(_0x420b59);return _0x473962['toLocaleDateString']()+'\x20'+_0x473962['toLocaleTimeString']();},'getQueryParams'(){const _0x425104=new URLSearchParams(window['location']['search']),_0x5bfbfc={};for(const [_0x58c873,_0x5d9109]of _0x425104){_0x5bfbfc[_0x58c873]=_0x5d9109;}return _0x5bfbfc;},'formatDuration'(_0x172c10,_0xb4178b){if(!_0x172c10)return'N/A';const _0x7a1bad=new Date(_0x172c10),_0x42314e=_0xb4178b?new Date(_0xb4178b):new Date(),_0xf11ba5=_0x42314e-_0x7a1bad;if(_0xf11ba5<0x0)return'0s';const _0x1aa1ea=Math['floor'](_0xf11ba5/0x3e8),_0x32762f=Math['floor'](_0x1aa1ea/0x3c),_0x3572ab=Math['floor'](_0x32762f/0x3c),_0x242677=Math['floor'](_0x3572ab/0x18);if(_0x1aa1ea<0x3c)return _0x1aa1ea+'s';if(_0x32762f<0x3c)return _0x32762f+'m\x20'+_0x1aa1ea%0x3c+'s';if(_0x3572ab<0x18)return _0x3572ab+'h\x20'+_0x32762f%0x3c+'m\x20'+_0x1aa1ea%0x3c+'s';return _0x242677+'d\x20'+_0x3572ab%0x18+'h\x20'+_0x32762f%0x3c+'m';},'renderMarkdown'(_0x41d044,_0x33a489={}){if(!_0x41d044)return'';_0x41d044=this['rewriteAttachmentLinks'](_0x41d044,_0x33a489),_0x41d044=this['rewriteColorSyntax'](_0x41d044);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x41d044,_0x33a489);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x41d044);}catch(_0x148902){return console['error']('Markdown\x20parsing\x20error:',_0x148902),this['renderMarkdownFallback'](_0x41d044,_0x33a489);}},'rewriteAttachmentLinks'(_0x23f313,_0x18dccb={}){const _0x44faf2=typeof _0x18dccb['resolveAttachmentUrl']==='function'?_0x18dccb['resolveAttachmentUrl']:_0x18dccb['taskId']?_0x808619=>API_BASE+'/tasks/'+_0x18dccb['taskId']+'/attachments/'+encodeURIComponent(_0x808619):null;if(!_0x44faf2)return _0x23f313;return String(_0x23f313)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x4718c5,_0x36626e)=>{const _0x4c63db=String(_0x36626e||'')['trim']();if(!_0x4c63db)return _0x4718c5;let _0x54c2cd=_0x4c63db;try{_0x54c2cd=decodeURIComponent(_0x4c63db);}catch{}const _0x5abe6e=_0x44faf2(_0x54c2cd);if(!_0x5abe6e)return _0x4718c5;return']('+_0x5abe6e+')';});},'rewriteColorSyntax'(_0xb33ac8){if(!_0xb33ac8)return _0xb33ac8;return String(_0xb33ac8)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x20fbc9,_0x18012a,_0x46054a)=>{const _0x42e987=this['rewriteColorSyntax'](_0x46054a);return'<span\x20style=\x22color:\x20'+_0x18012a+'\x22>'+_0x42e987+'</span>';});},'renderMarkdownFallback'(_0x2cd6f7,_0x26ec44={}){if(!_0x2cd6f7)return'';_0x2cd6f7=_0x2cd6f7['replace'](/\r\n/g,'\x0a'),_0x2cd6f7=_0x2cd6f7['replace'](/\r/g,'\x0a'),_0x2cd6f7=this['rewriteAttachmentLinks'](_0x2cd6f7,_0x26ec44);let _0x3bc40e=this['escapeHtml'](_0x2cd6f7);return _0x3bc40e=_0x3bc40e['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3bc40e=_0x3bc40e['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3bc40e=_0x3bc40e['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3bc40e=_0x3bc40e['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3bc40e=_0x3bc40e['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3bc40e=_0x3bc40e['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3bc40e=_0x3bc40e['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3bc40e=_0x3bc40e['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3bc40e=_0x3bc40e['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3bc40e=_0x3bc40e['replace'](/\n\n/g,'</p><p>'),_0x3bc40e=_0x3bc40e['replace'](/\n/g,'<br>'),'<p>'+_0x3bc40e+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x581a27=new Uint8Array(0x10);crypto['getRandomValues'](_0x581a27),_0x581a27[0x6]=_0x581a27[0x6]&0xf|0x40,_0x581a27[0x8]=_0x581a27[0x8]&0x3f|0x80;const _0x34b9d5=Array['from'](_0x581a27,_0x1171dc=>_0x1171dc['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x34b9d5['slice'](0x0,0x8)+'-'+_0x34b9d5['slice'](0x8,0xc)+'-'+_0x34b9d5['slice'](0xc,0x10)+'-'+_0x34b9d5['slice'](0x10,0x14)+'-'+_0x34b9d5['slice'](0x14);}};export class CustomSelect{constructor(_0x5e9448,_0x2d4424={}){this['nativeSelect']=_0x5e9448,this['options']=_0x2d4424,this['isOpen']=![],this['selectedValue']=_0x5e9448['value']||'',this['searchable']=_0x2d4424['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x209b02=document['createElement']('div');_0x209b02['className']='custom-select';const _0x11cde0=document['createElement']('div');_0x11cde0['className']='custom-select-trigger',_0x11cde0['setAttribute']('tabindex','0'),_0x11cde0['setAttribute']('role','button'),_0x11cde0['setAttribute']('aria-haspopup','listbox');const _0xca7ca5=document['createElement']('span');_0xca7ca5['className']='custom-select-trigger-text';const _0x2f6386=document['createElement']('span');_0x2f6386['className']='custom-select-arrow',_0x2f6386['textContent']='▼',_0x11cde0['appendChild'](_0xca7ca5),_0x11cde0['appendChild'](_0x2f6386);const _0x1c6644=document['createElement']('div');_0x1c6644['className']='custom-select-dropdown',_0x1c6644['setAttribute']('role','listbox');if(this['searchable']){const _0x79cd69=document['createElement']('div');_0x79cd69['className']='custom-select-search';const _0xbe426a=document['createElement']('input');_0xbe426a['type']='text',_0xbe426a['className']='custom-select-search-input',_0xbe426a['placeholder']='Type\x20to\x20search...',_0xbe426a['setAttribute']('aria-label','Search\x20options'),_0xbe426a['addEventListener']('input',_0x529fd2=>{this['searchQuery']=_0x529fd2['target']['value']['toLowerCase'](),this['filterOptions']();}),_0xbe426a['addEventListener']('keydown',_0x3ca657=>{if(_0x3ca657['key']==='Escape')_0x3ca657['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x3ca657['key']==='Enter'){_0x3ca657['preventDefault'](),_0x3ca657['stopPropagation']();const _0x4d121a=_0x1c6644['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x4d121a){const _0x4181ea=_0x4d121a['getAttribute']('data-value');this['select'](_0x4181ea);}}}}),_0x79cd69['appendChild'](_0xbe426a),_0x1c6644['appendChild'](_0x79cd69),this['searchInput']=_0xbe426a;}const _0xb20478=document['createElement']('div');_0xb20478['className']='custom-select-options',_0x1c6644['appendChild'](_0xb20478),_0x209b02['appendChild'](_0x11cde0),_0x209b02['appendChild'](_0x1c6644),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x209b02,this['nativeSelect']),this['wrapper']=_0x209b02,this['trigger']=_0x11cde0,this['triggerText']=_0xca7ca5,this['dropdown']=_0x1c6644,this['optionsContainer']=_0xb20478,_0x11cde0['addEventListener']('click',()=>this['toggle']()),_0x11cde0['addEventListener']('keydown',_0x258ea1=>this['handleKeydown'](_0x258ea1)),document['addEventListener']('click',_0x15cb04=>{!_0x209b02['contains'](_0x15cb04['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x31b28b=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x31b28b['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x3bd89e=new MutationObserver(()=>{this['updateDisabledState']();});_0x3bd89e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x14aace=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x14aace['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x4052f9=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x4052f9),this['trigger']['setAttribute']('aria-disabled',_0x4052f9?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x4052f9?'-1':'0'),_0x4052f9&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x2c49c9=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x8aab76=_0x2c49c9['filter'](_0x2926e7=>!_0x2926e7['disabled']&&!_0x2926e7['hidden']);_0x2c49c9['forEach']((_0x5ba3f5,_0x435eee)=>{const _0x5eeda=document['createElement']('div');_0x5eeda['className']='custom-select-option',_0x5eeda['textContent']=_0x5ba3f5['textContent'],_0x5eeda['setAttribute']('data-value',_0x5ba3f5['value']),_0x5eeda['setAttribute']('data-index',_0x435eee),_0x5eeda['setAttribute']('role','option'),_0x5ba3f5['disabled']?_0x5eeda['classList']['add']('disabled'):_0x5eeda['addEventListener']('click',()=>this['select'](_0x5ba3f5['value'])),_0x5ba3f5['value']===this['selectedValue']&&_0x5eeda['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x5eeda),this['allOptions']['push']({'element':_0x5eeda,'text':_0x5ba3f5['textContent']['toLowerCase'](),'value':_0x5ba3f5['value'],'disabled':_0x5ba3f5['disabled']});});if(this['searchable']&&this['searchInput']){const _0x26e770=this['searchInput']['parentElement'];_0x8aab76['length']>0x3?_0x26e770['style']['display']='':_0x26e770['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2196c6=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x49c949=>{if(!_0x2196c6||_0x49c949['disabled'])_0x49c949['element']['style']['display']='';else{const _0x2fa928=_0x49c949['text']['includes'](_0x2196c6);_0x49c949['element']['style']['display']=_0x2fa928?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x10d04d){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x10d04d,this['nativeSelect']['value']=_0x10d04d;const _0x51cbd1=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x51cbd1),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x1cae12=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x1cae12&&(this['triggerText']['textContent']=_0x1cae12['textContent'],_0x1cae12['disabled']||_0x1cae12['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x44257b=>{_0x44257b['getAttribute']('data-value')===this['selectedValue']?_0x44257b['classList']['add']('selected'):_0x44257b['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x468bcf=window['getComputedStyle'](this['dropdown']);if(_0x468bcf['position']==='fixed'){const _0x48f4d4=this['trigger']['getBoundingClientRect'](),_0xe7985c=parseInt(_0x468bcf['maxHeight'])||0xc8,_0x285797=window['innerHeight'],_0x2d8892=_0x285797-_0x48f4d4['bottom'],_0x3928e6=_0x48f4d4['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x4aeeb2;_0x2d8892<_0xe7985c&&_0x3928e6>_0x2d8892?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x285797-_0x48f4d4['top']+'px',_0x4aeeb2=Math['min'](_0xe7985c,_0x3928e6-0xa),this['dropdown']['style']['maxHeight']=_0x4aeeb2+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x48f4d4['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x4aeeb2=Math['min'](_0xe7985c,_0x2d8892-0xa),this['dropdown']['style']['maxHeight']=_0x4aeeb2+'px');if(this['optionsContainer']){let _0x1330ab=_0x4aeeb2;if(this['searchInput']){const _0x3cfb72=this['searchInput']['parentElement'];_0x3cfb72&&(_0x1330ab-=_0x3cfb72['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x1330ab)+'px';}this['dropdown']['style']['left']=_0x48f4d4['left']+'px',this['dropdown']['style']['width']=_0x48f4d4['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x41f907=this['searchInput']['parentElement'];_0x41f907&&_0x41f907['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x137652){if(this['nativeSelect']['disabled'])return;if(_0x137652['key']==='Enter'||_0x137652['key']==='\x20')_0x137652['preventDefault'](),this['toggle']();else _0x137652['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x45e1eb='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x45e1eb),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x2030bb=document['getElementById']('confirm-dialog-close'),_0x487eef=document['getElementById']('confirm-dialog-cancel'),_0x54b182=document['getElementById']('confirm-dialog-confirm'),_0x1d5170=this['_modal']['querySelector']('.modal-overlay');_0x2030bb['addEventListener']('click',()=>this['_resolve'](![])),_0x487eef['addEventListener']('click',()=>this['_resolve'](![])),_0x54b182['addEventListener']('click',()=>this['_resolve'](!![])),_0x1d5170['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x2c215d=>{if(_0x2c215d['key']==='Escape')_0x2c215d['preventDefault'](),this['_resolve'](![]);else _0x2c215d['key']==='Enter'&&(_0x2c215d['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x39b14a,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x1ec886=>{this['_resolvePromise']=_0x1ec886,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x39b14a;const _0x502249=document['getElementById']('confirm-dialog-cancel'),_0x33e062=document['getElementById']('confirm-dialog-confirm');_0x502249['textContent']=cancelText,_0x33e062['textContent']=confirmText,_0x33e062['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x33e062['focus']();});},'_resolve'(_0x55b2d9){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x55b2d9),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x57586a,_0xe49423={}){this['container']=_0x57586a,this['options']={'placeholder':_0xe49423['placeholder']||'Type\x20to\x20search...','maxItems':_0xe49423['maxItems']||0x64,'loadItems':_0xe49423['loadItems']||(async()=>[]),'renderItem':_0xe49423['renderItem']||(_0x37494a=>({'primary':String(_0x37494a),'secondary':''})),'onSelect':_0xe49423['onSelect']||(()=>{}),'filterItems':_0xe49423['filterItems']||null,'getItemValue':_0xe49423['getItemValue']||(_0x1c2b21=>_0x1c2b21),'sortItems':_0xe49423['sortItems']||null,'debounceMs':_0xe49423['debounceMs']||0xc8,'minCharsForSearch':_0xe49423['minCharsForSearch']||0x0,'emptyMessage':_0xe49423['emptyMessage']||'No\x20results\x20found','loadingMessage':_0xe49423['loadingMessage']||'Loading...','preload':_0xe49423['preload']!==![],'searchMode':_0xe49423['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x3a2502=>this['onBlur'](_0x3a2502)),this['input']['addEventListener']('input',_0x39a7ee=>this['onInput'](_0x39a7ee)),this['input']['addEventListener']('keydown',_0x3af13b=>this['onKeydown'](_0x3af13b)),this['clearBtn']['addEventListener']('mousedown',_0x4cbd5f=>{_0x4cbd5f['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x33d35a=>{_0x33d35a['preventDefault']();}),document['addEventListener']('click',_0x462927=>{!this['wrapper']['contains'](_0x462927['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x1aad50){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x1aad50);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5cea1e){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0xdf1254){const _0x5cc36b=_0xdf1254['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x5cc36b);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x5cc36b):this['loadAndShow'](_0x5cc36b);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x8fcafa){switch(_0x8fcafa['key']){case'ArrowDown':_0x8fcafa['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x8fcafa['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x8fcafa['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x8fcafa['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x53b854){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x272314=this['selectedIndex']+_0x53b854;if(_0x272314>=0x0&&_0x272314<this['filteredItems']['length']){this['selectedIndex']=_0x272314,this['updateSelectionHighlight']();const _0x5959df=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x5959df[this['selectedIndex']]&&_0x5959df[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x3e60ed=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x3e60ed['forEach']((_0x22ebeb,_0x495d0a)=>{_0x22ebeb['classList']['toggle']('keyboard-selected',_0x495d0a===this['selectedIndex']);});}async['loadAndShow'](_0x268e65){this['showLoading']();try{const _0x2f26ff=await this['options']['loadItems'](_0x268e65);if(this['options']['searchMode']==='server'){let _0x57b75e=_0x2f26ff;this['options']['sortItems']&&(_0x57b75e=this['options']['sortItems']([..._0x2f26ff]));this['filteredItems']=_0x57b75e;const _0x78becf=this['filteredItems']['length']>=this['options']['maxItems'];_0x78becf&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x78becf),this['open']();}else this['allItems']=_0x2f26ff,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x268e65);}catch(_0x29e758){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x29e758),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x594f2b){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x594f2b):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x3f69f5=this['filteredItems']['length']>=this['options']['maxItems'];_0x3f69f5&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x3f69f5),this['open']();}['renderItems'](_0x393b29){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0xa7520,_0x341f3d)=>{const _0x288623=document['createElement']('div');_0x288623['className']='autocomplete-select-item',_0x288623['setAttribute']('role','option'),_0x288623['setAttribute']('data-index',_0x341f3d);const _0x4bd251=this['options']['renderItem'](_0xa7520);let _0x59bb12='';_0x4bd251['icon']&&(_0x59bb12='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x4bd251['iconClass']||'')+'\x22>'+_0x4bd251['icon']+'</span>'),_0x288623['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x59bb12+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x4bd251['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4bd251['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x4bd251['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x288623['addEventListener']('click',()=>{this['selectItem'](_0xa7520);}),_0x288623['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x341f3d,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x288623);}),_0x393b29?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x48fee8){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x48fee8)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x13f102){this['selectedItem']=_0x13f102;const _0x1603b7=this['options']['renderItem'](_0x13f102);this['input']['value']=_0x1603b7['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x13f102);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x202f9f){if(_0x202f9f){this['selectedItem']=_0x202f9f;const _0x117c62=this['options']['renderItem'](_0x202f9f);this['input']['value']=_0x117c62['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x46ffc0){this['allItems']=_0x46ffc0,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x4be099){this['input']['placeholder']=_0x4be099;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x1dbad0=null){const _0x30987c=document['getElementById']('admin-menu-container'),_0xd7d096=document['getElementById']('admin-menu-btn'),_0x4d7c67=document['getElementById']('admin-menu');if(!_0x30987c||!_0xd7d096||!_0x4d7c67)return;try{!_0x1dbad0&&(_0x1dbad0=await API['getCurrentUser']());if(_0x1dbad0){const _0x21f637=window['Permissions'],_0x23c497=_0x21f637['hasServerPermission'](_0x1dbad0,'*')||_0x21f637['hasEnvPermission'](_0x1dbad0,'environments:manage')||_0x21f637['hasServerPermission'](_0x1dbad0,'users:create')||_0x21f637['hasTeamPermission'](_0x1dbad0,'teams:manage')||_0x21f637['hasEnvPermission'](_0x1dbad0,'environments:view_details');if(!_0x23c497)return;_0x30987c['hidden']=![];if(!_0x21f637['hasServerPermission'](_0x1dbad0,'*')){const _0x163aa5=_0x4d7c67['querySelectorAll']('.admin-menu-item');_0x163aa5['forEach'](_0x5dad9d=>{const _0x5c39cc=_0x5dad9d['querySelector']('.option-text')?.['textContent']?.['trim']();_0x5c39cc==='Users'&&!_0x21f637['hasServerPermission'](_0x1dbad0,'users:create')&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Skills'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Server\x20Settings'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Server\x20Administration'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Git\x20History'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Roles'&&(_0x5dad9d['hidden']=!![]);});}_0xd7d096['addEventListener']('click',_0x2b668e=>{_0x2b668e['stopPropagation']();const _0x48f144=document['getElementById']('actions-menu');if(_0x48f144)_0x48f144['hidden']=!![];_0x4d7c67['hidden']=!_0x4d7c67['hidden'];}),document['addEventListener']('click',_0x5cb311=>{!_0x4d7c67['hidden']&&!_0xd7d096['contains'](_0x5cb311['target'])&&!_0x4d7c67['contains'](_0x5cb311['target'])&&(_0x4d7c67['hidden']=!![]);}),document['addEventListener']('keydown',_0x229c88=>{_0x229c88['key']==='Escape'&&!_0x4d7c67['hidden']&&(_0x4d7c67['hidden']=!![]);});}}catch(_0x452782){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x452782['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
1
+ function detectApiBase(){const _0x462b5b=window['location']['pathname'],_0x1d3428=_0x462b5b['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x1d3428)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x1d3428[0x1]),_0x1d3428[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x54b4ce={}){const _0x22204d=new URLSearchParams();_0x54b4ce['userId']&&_0x22204d['set']('userId',String(_0x54b4ce['userId']));_0x54b4ce['automation']&&_0x22204d['set']('automation',String(_0x54b4ce['automation']));const _0x21f5a2=API_BASE+'/tasks/stats'+(_0x22204d['toString']()?'?'+_0x22204d['toString']():''),_0x37fe84=await fetch(_0x21f5a2);if(!_0x37fe84['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x37fe84['statusText']);return await _0x37fe84['json']();},async 'getTasks'(_0x2fc1a3={}){const _0x2ff1d8=new URLSearchParams();_0x2fc1a3['status']&&_0x2ff1d8['set']('status',String(_0x2fc1a3['status']));_0x2fc1a3['environment']&&_0x2ff1d8['set']('environment',String(_0x2fc1a3['environment']));_0x2fc1a3['automation']&&_0x2ff1d8['set']('automation',String(_0x2fc1a3['automation']));if(_0x2fc1a3['include']){const _0x48b3ea=Array['isArray'](_0x2fc1a3['include'])?_0x2fc1a3['include']['join'](','):String(_0x2fc1a3['include']);_0x48b3ea&&_0x2ff1d8['set']('include',_0x48b3ea);}_0x2fc1a3['filter']&&_0x2ff1d8['set']('filter',String(_0x2fc1a3['filter']));_0x2fc1a3['page']&&_0x2ff1d8['set']('page',String(_0x2fc1a3['page']));_0x2fc1a3['limit']&&_0x2ff1d8['set']('limit',String(_0x2fc1a3['limit']));_0x2fc1a3['userId']&&_0x2ff1d8['set']('userId',String(_0x2fc1a3['userId']));_0x2fc1a3['search']&&_0x2ff1d8['set']('search',String(_0x2fc1a3['search']));_0x2fc1a3['includeChildTasks']&&_0x2ff1d8['set']('includeChildTasks','true');const _0x11667d=API_BASE+'/tasks'+(_0x2ff1d8['toString']()?'?'+_0x2ff1d8['toString']():''),_0x465f92=await fetch(_0x11667d);if(!_0x465f92['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x465f92['statusText']);return await _0x465f92['json']();},async 'getAutomations'(_0x14ad2a={}){const _0x4d4171=new URLSearchParams();_0x14ad2a['environment']&&_0x4d4171['set']('environment',String(_0x14ad2a['environment']));const _0x34d594=await fetch(API_BASE+'/api/automations'+(_0x4d4171['toString']()?'?'+_0x4d4171['toString']():''));if(!_0x34d594['ok']){const _0x26cfcd=await _0x34d594['json']()['catch'](()=>({}));throw new Error(_0x26cfcd['message']||_0x26cfcd['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x34d594['statusText']);}return await _0x34d594['json']();},async 'getAutomation'(_0x1aeeb7){const _0x27e844=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1aeeb7));if(!_0x27e844['ok']){const _0x176831=await _0x27e844['json']()['catch'](()=>({}));throw new Error(_0x176831['message']||_0x176831['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x27e844['statusText']);}return await _0x27e844['json']();},async 'createAutomation'(_0x4c1a07){const _0x3e7f1d=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c1a07||{})});if(!_0x3e7f1d['ok']){const _0xcd0855=await _0x3e7f1d['json']()['catch'](()=>({}));throw new Error(_0xcd0855['message']||_0xcd0855['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3e7f1d['statusText']);}return await _0x3e7f1d['json']();},async 'updateAutomation'(_0xb20c4f,_0x5e80d2){const _0x5536d2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xb20c4f),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e80d2||{})});if(!_0x5536d2['ok']){const _0x5a6d25=await _0x5536d2['json']()['catch'](()=>({}));throw new Error(_0x5a6d25['message']||_0x5a6d25['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5536d2['statusText']);}return await _0x5536d2['json']();},async 'deleteAutomation'(_0x588198){const _0xcf5335=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x588198),{'method':'DELETE'});if(!_0xcf5335['ok']){const _0x5c1dc7=await _0xcf5335['json']()['catch'](()=>({}));throw new Error(_0x5c1dc7['message']||_0x5c1dc7['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xcf5335['statusText']);}return await _0xcf5335['json']();},async 'triggerAutomation'(_0x4dd50f){const _0x3f7088=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4dd50f)+'/trigger',{'method':'POST'});if(!_0x3f7088['ok']){const _0x2acd60=await _0x3f7088['json']()['catch'](()=>({}));throw new Error(_0x2acd60['message']||_0x2acd60['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3f7088['statusText']);}return await _0x3f7088['json']();},async 'setAutomationEnabled'(_0xc2ce79,_0x3622df){const _0x2fbdda=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc2ce79)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3622df})});if(!_0x2fbdda['ok']){const _0x363c4e=await _0x2fbdda['json']()['catch'](()=>({}));throw new Error(_0x363c4e['message']||_0x363c4e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2fbdda['statusText']);}return await _0x2fbdda['json']();},async 'getAutomationHistory'(_0x38127b,_0x1b5eec=0x32){const _0x497193=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x38127b)+'/history?limit='+encodeURIComponent(String(_0x1b5eec)));if(!_0x497193['ok']){const _0x17cb71=await _0x497193['json']()['catch'](()=>({}));throw new Error(_0x17cb71['message']||_0x17cb71['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x497193['statusText']);}return await _0x497193['json']();},async 'getTask'(_0x5551d7,_0x43a4b8={}){const _0x263628=new URLSearchParams();if(_0x43a4b8['include']){const _0x31c33d=Array['isArray'](_0x43a4b8['include'])?_0x43a4b8['include']['join'](','):String(_0x43a4b8['include']);if(_0x31c33d)_0x263628['set']('include',_0x31c33d);}const _0x5eaf62=await fetch(API_BASE+'/tasks/'+_0x5551d7+(_0x263628['toString']()?'?'+_0x263628['toString']():''));if(!_0x5eaf62['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5eaf62['statusText']);return await _0x5eaf62['json']();},async 'getTaskResults'(_0xcc9986){const _0x46b81e=await fetch(API_BASE+'/tasks/'+_0xcc9986+'/results');if(!_0x46b81e['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x46b81e['statusText']);return await _0x46b81e['json']();},async 'getTaskPatches'(_0xed2e97){const _0x43d7f7=await fetch(API_BASE+'/tasks/'+_0xed2e97+'/patches');if(!_0x43d7f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x43d7f7['statusText']);return await _0x43d7f7['json']();},async 'getTaskAttachments'(_0x22acd3){const _0x501c16=await fetch(API_BASE+'/tasks/'+_0x22acd3+'/attachments');if(!_0x501c16['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x501c16['statusText']);return await _0x501c16['json']();},async 'uploadAttachments'(_0x37bb58,_0x123f03){const _0x2d2053=new FormData();for(const _0x189d6d of _0x123f03){_0x2d2053['append']('attachments',_0x189d6d);}const _0xf2eef6=await fetch(API_BASE+'/tasks/'+_0x37bb58+'/attachments',{'method':'POST','body':_0x2d2053});if(!_0xf2eef6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0xf2eef6['statusText']);return await _0xf2eef6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11228d=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11228d['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11228d['json']();}catch(_0xca9e82){return{'available':![],'reason':_0xca9e82['message']};}},async 'generateTaskName'(_0x2b725c){try{const _0x28cef5=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x2b725c})});return await _0x28cef5['json']();}catch(_0x471b43){return{'success':![],'error':_0x471b43['message']};}},async 'createTask'(_0x2ea6b2){let _0x2ff1d0,_0xe5ff50={};if(_0x2ea6b2['files']&&_0x2ea6b2['files']['length']>0x0){const _0x230da2=new FormData();for(const [_0x3c9b3b,_0x327279]of Object['entries'](_0x2ea6b2)){if(_0x3c9b3b!=='files'){if(_0x327279==null)continue;typeof _0x327279==='object'?_0x230da2['append'](_0x3c9b3b,JSON['stringify'](_0x327279)):_0x230da2['append'](_0x3c9b3b,String(_0x327279));}}for(const _0xfc72d0 of _0x2ea6b2['files']){_0x230da2['append']('attachments',_0xfc72d0);}_0x2ff1d0=_0x230da2;}else _0xe5ff50['Content-Type']='application/json',_0x2ff1d0=JSON['stringify'](_0x2ea6b2);const _0x392022=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0xe5ff50,'body':_0x2ff1d0});if(!_0x392022['ok']){const _0x37836e=await _0x392022['json'](),_0x36a9ce=new Error(_0x37836e['error']||'Failed\x20to\x20create\x20task:\x20'+_0x392022['statusText']),{message:_0x42c6b5,..._0x20db15}=_0x37836e;Object['assign'](_0x36a9ce,_0x20db15);throw _0x36a9ce;}return await _0x392022['json']();},async 'createTestTask'(_0xb4b94){const _0xeaa10e=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xb4b94)});if(!_0xeaa10e['ok']){const _0x3f24d9=await _0xeaa10e['json']();throw new Error(_0x3f24d9['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xeaa10e['statusText']);}return await _0xeaa10e['json']();},async 'createEphemeralTest'(_0x5d0f6b){const _0x509338=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5d0f6b)});if(!_0x509338['ok']){const _0x1cfcbf=await _0x509338['json']();throw new Error(_0x1cfcbf['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x509338['statusText']);}return await _0x509338['json']();},async 'createDeployTask'(_0x2079af){const _0x3a6d5a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2079af)});if(!_0x3a6d5a['ok']){const _0x302b74=await _0x3a6d5a['json']();throw new Error(_0x302b74['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3a6d5a['statusText']);}return await _0x3a6d5a['json']();},async 'getEnvironments'(){const _0x358aa7=await fetch(API_BASE+'/environments');if(!_0x358aa7['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x358aa7['statusText']);return await _0x358aa7['json']();},async 'getEnvironment'(_0x38da71){const _0x546c2f=await fetch(API_BASE+'/environments/'+_0x38da71);if(!_0x546c2f['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x546c2f['statusText']);return await _0x546c2f['json']();},async 'getEnvironmentRepoHistory'(_0xb0bb17,_0x3f113,_0x57ff90={}){if(!_0xb0bb17||!_0x3f113)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3f932d=new URLSearchParams();if(_0x57ff90['limit'])_0x3f932d['set']('limit',String(_0x57ff90['limit']));if(_0x57ff90['offset'])_0x3f932d['set']('offset',String(_0x57ff90['offset']));if(_0x57ff90['search'])_0x3f932d['set']('search',String(_0x57ff90['search']));if(_0x57ff90['branch'])_0x3f932d['set']('branch',String(_0x57ff90['branch']));const _0x1907e7=API_BASE+'/environments/'+encodeURIComponent(_0xb0bb17)+'/repos/'+encodeURIComponent(_0x3f113)+'/git/history',_0x45234b=await fetch(''+_0x1907e7+(_0x3f932d['toString']()?'?'+_0x3f932d['toString']():''));if(!_0x45234b['ok']){const _0x28aa1c=await _0x45234b['json']()['catch'](()=>({}));throw new Error(_0x28aa1c['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45234b['statusText']);}return await _0x45234b['json']();},async 'getEnvironmentRepoCommit'(_0x2fcea5,_0xa6b767,_0x21c21b){if(!_0x2fcea5||!_0xa6b767||!_0x21c21b)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x50b2f4=API_BASE+'/environments/'+encodeURIComponent(_0x2fcea5)+'/repos/'+encodeURIComponent(_0xa6b767)+'/git/commits/'+encodeURIComponent(_0x21c21b),_0x4c6f74=await fetch(_0x50b2f4);if(!_0x4c6f74['ok']){const _0x543fb3=await _0x4c6f74['json']()['catch'](()=>({}));throw new Error(_0x543fb3['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x4c6f74['statusText']);}return await _0x4c6f74['json']();},async 'getEnvironmentRepoBranches'(_0x3c53f2,_0x49917e){if(!_0x3c53f2||!_0x49917e)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5f521b=API_BASE+'/environments/'+encodeURIComponent(_0x3c53f2)+'/repos/'+encodeURIComponent(_0x49917e)+'/git/branches',_0x273bd9=await fetch(_0x5f521b);if(!_0x273bd9['ok']){const _0x630b09=await _0x273bd9['json']()['catch'](()=>({}));throw new Error(_0x630b09['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x273bd9['statusText']);}return await _0x273bd9['json']();},async 'revertEnvironmentRepoCommit'(_0x14d765,_0x43c36f,_0x1ea393,_0x4459b4={}){if(!_0x14d765||!_0x43c36f||!_0x1ea393)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x377715=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x14d765)+'/repos/'+encodeURIComponent(_0x43c36f)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x1ea393,..._0x4459b4})});if(!_0x377715['ok']){const _0x38995c=await _0x377715['json']()['catch'](()=>({}));throw new Error(_0x38995c['message']||_0x38995c['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x377715['statusText']);}return await _0x377715['json']();},async 'getTemplates'(_0x1966d8={}){const _0x11f9ee=new URLSearchParams();if(_0x1966d8['include']){const _0xe01e55=Array['isArray'](_0x1966d8['include'])?_0x1966d8['include']['join'](','):String(_0x1966d8['include']);if(_0xe01e55)_0x11f9ee['set']('include',_0xe01e55);}const _0x20cbfb=await fetch(API_BASE+'/templates'+(_0x11f9ee['toString']()?'?'+_0x11f9ee['toString']():''));if(!_0x20cbfb['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x20cbfb['statusText']);return await _0x20cbfb['json']();},async 'getTemplatesForEnvironment'(_0x268615,_0x3005b9={}){if(!_0x268615)throw new Error('Environment\x20name\x20is\x20required');const _0x286f56=new URLSearchParams();if(_0x3005b9['include']){const _0x8138fb=Array['isArray'](_0x3005b9['include'])?_0x3005b9['include']['join'](','):String(_0x3005b9['include']);if(_0x8138fb)_0x286f56['set']('include',_0x8138fb);}const _0x263337=await fetch(API_BASE+'/templates/'+_0x268615+(_0x286f56['toString']()?'?'+_0x286f56['toString']():''));if(!_0x263337['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x268615+':\x20'+_0x263337['statusText']);return await _0x263337['json']();},async 'getTemplate'(_0x122a01,_0x2314a6,_0xff7399={}){if(!_0x122a01||!_0x2314a6)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x47a26f=new URLSearchParams();if(_0xff7399['include']){const _0x709fed=Array['isArray'](_0xff7399['include'])?_0xff7399['include']['join'](','):String(_0xff7399['include']);if(_0x709fed)_0x47a26f['set']('include',_0x709fed);}const _0x3dd675=await fetch(API_BASE+'/templates/'+_0x122a01+'/'+_0x2314a6+(_0x47a26f['toString']()?'?'+_0x47a26f['toString']():''));if(!_0x3dd675['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dd675['statusText']);return await _0x3dd675['json']();},async 'getTaskLogs'(_0x145f1a,_0x4f8412={}){if(!_0x145f1a)throw new Error('Task\x20ID\x20is\x20required');const _0x5dc25c=new URLSearchParams();_0x4f8412['tail']&&_0x5dc25c['set']('tail',String(_0x4f8412['tail']));const _0x415383=await fetch(API_BASE+'/tasks/'+_0x145f1a+'/logs'+(_0x5dc25c['toString']()?'?'+_0x5dc25c['toString']():''));if(!_0x415383['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x415383['statusText']);return await _0x415383['text']();},async 'getContainers'(){const _0x3798f7=await fetch(API_BASE+'/containers');if(!_0x3798f7['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x3798f7['statusText']);return await _0x3798f7['json']();},async 'getContainer'(_0x57f1e1){const _0xb01543=await fetch(API_BASE+'/containers/'+_0x57f1e1);if(!_0xb01543['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xb01543['statusText']);return await _0xb01543['json']();},async 'startInteractiveContainer'(_0x2b9161){const _0x1568e7=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2b9161)});if(!_0x1568e7['ok']){const _0x11d532=await _0x1568e7['json']()['catch'](()=>({}));throw new Error(_0x11d532['message']||'Failed\x20to\x20start\x20container:\x20'+_0x1568e7['statusText']);}return await _0x1568e7['json']();},async 'startContainerCodeServer'(_0x273a65,_0x54d450={}){if(!_0x273a65)throw new Error('Container\x20ID\x20is\x20required');const _0x218216=new URLSearchParams();_0x54d450['theme']&&_0x218216['set']('theme',_0x54d450['theme']);const _0x426f40=await fetch(API_BASE+'/containers/'+_0x273a65+'/code-server'+(_0x218216['toString']()?'?'+_0x218216['toString']():'')),_0x297b0c=await _0x426f40['json']()['catch'](()=>({}));if(!_0x426f40['ok'])throw new Error(_0x297b0c['message']||_0x297b0c['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x426f40['statusText']);return _0x297b0c;},async 'stopContainer'(_0x3f6c36){const _0x546453=await fetch(API_BASE+'/containers/'+_0x3f6c36,{'method':'DELETE'});if(!_0x546453['ok']){const _0xc83c58=await _0x546453['json']()['catch'](()=>({}));throw new Error(_0xc83c58['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x546453['statusText']);}return await _0x546453['json']();},async 'stopTask'(_0x342d81){if(!_0x342d81)throw new Error('Task\x20ID\x20is\x20required');const _0x348680=await fetch(API_BASE+'/tasks/'+_0x342d81+'/stop',{'method':'POST'});if(!_0x348680['ok']){const _0x20c107=await _0x348680['json']()['catch'](()=>({}));throw new Error(_0x20c107['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x348680['statusText']);}return await _0x348680['json']();},async 'interruptTask'(_0x445fb7){if(!_0x445fb7)throw new Error('Task\x20ID\x20is\x20required');const _0xa22ff1=await fetch(API_BASE+'/tasks/'+_0x445fb7+'/interrupt',{'method':'POST'});if(!_0xa22ff1['ok']){const _0x53312a=await _0xa22ff1['json']()['catch'](()=>({}));throw new Error(_0x53312a['error']||_0x53312a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0xa22ff1['statusText']);}return await _0xa22ff1['json']();},async 'startTask'(_0x1660c2){if(!_0x1660c2)throw new Error('Task\x20ID\x20is\x20required');const _0x4e5ff1=await fetch(API_BASE+'/tasks/'+_0x1660c2+'/start',{'method':'POST'});if(!_0x4e5ff1['ok']){const _0x5e2986=await _0x4e5ff1['json']()['catch'](()=>({}));throw new Error(_0x5e2986['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4e5ff1['statusText']);}return await _0x4e5ff1['json']();},async 'deleteTask'(_0x122547){if(!_0x122547)throw new Error('Task\x20ID\x20is\x20required');const _0x9b9b4=await fetch(API_BASE+'/tasks/'+_0x122547,{'method':'DELETE'});if(!_0x9b9b4['ok']){const _0x369e8e=await _0x9b9b4['json']()['catch'](()=>({}));throw new Error(_0x369e8e['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x9b9b4['statusText']);}return await _0x9b9b4['json']();},async 'refreshTasksFromDisk'(){const _0x46a907=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x46a907['ok']){const _0x315f35=await _0x46a907['json']()['catch'](()=>({}));throw new Error(_0x315f35['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x46a907['statusText']);}return await _0x46a907['json']();},async 'approveTask'(_0x4a3695,_0x5117f3={}){if(!_0x4a3695)throw new Error('Task\x20ID\x20is\x20required');const _0x443b16={'commit_message':_0x5117f3['commit_message']||'','pull':_0x5117f3['pull']??![],'push':_0x5117f3['push']??![],'conflict_strategy':_0x5117f3['conflict_strategy']||'rebase'};_0x5117f3['new_branch']&&(_0x443b16['new_branch']=_0x5117f3['new_branch']);const _0x1ac458=await fetch(API_BASE+'/tasks/'+_0x4a3695+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x443b16)});if(!_0x1ac458['ok']){const _0x3a3865=await _0x1ac458['json']()['catch'](()=>({})),_0x1229a6=Array['isArray'](_0x3a3865['results'])?_0x3a3865['results']['filter'](_0xb6d06=>!_0xb6d06['success']&&(_0xb6d06['error']||_0xb6d06['error_code'])):[],_0xf99089=_0x1229a6[0x0]||null;let _0x36c223=_0x3a3865['error']||_0x3a3865['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1ac458['statusText'];if(_0xf99089?.['error'])_0x36c223=_0xf99089['error'];else _0x3a3865['message']&&(_0x36c223=_0x3a3865['message']);const _0x50104e=new Error(_0x36c223);_0x50104e['code']=_0xf99089?.['error_code']||_0x3a3865['error_code']||null,_0x50104e['details']=_0xf99089?.['details']||_0x3a3865['details']||null,_0x50104e['tokenExpiryDays']=_0xf99089?.['token_expiry_days']||_0x3a3865['token_expiry_days']||null,_0x50104e['hasConflicts']=_0x3a3865['results']?.['some'](_0x4df1b7=>_0x4df1b7['conflict'])||![];throw _0x50104e;}return await _0x1ac458['json']();},async 'getPullRequestInfo'(_0xfb4f8){if(!_0xfb4f8)throw new Error('Task\x20ID\x20is\x20required');const _0x9a47b3=await fetch(API_BASE+'/tasks/'+_0xfb4f8+'/pull-request-info');if(!_0x9a47b3['ok']){const _0x143845=await _0x9a47b3['json']()['catch'](()=>({}));throw new Error(_0x143845['error']||_0x143845['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x9a47b3['statusText']);}return await _0x9a47b3['json']();},async 'createPullRequests'(_0x1263e6,_0x3fef14){if(!_0x1263e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3fef14||!Array['isArray'](_0x3fef14))throw new Error('repos\x20array\x20is\x20required');const _0x14d881=await fetch(API_BASE+'/tasks/'+_0x1263e6+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3fef14})});if(!_0x14d881['ok']){const _0x21b1b9=await _0x14d881['json']()['catch'](()=>({}));let _0x357e48=_0x21b1b9['error']||_0x21b1b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x14d881['statusText'];if(_0x21b1b9['results']&&Array['isArray'](_0x21b1b9['results'])){const _0x57296f=_0x21b1b9['results']['filter'](_0x5917fe=>!_0x5917fe['success']&&_0x5917fe['error']);_0x57296f['length']>0x0&&(_0x357e48=_0x57296f[0x0]['error']);}throw new Error(_0x357e48);}return await _0x14d881['json']();},async 'syncRepos'(_0x3d4d9c){if(!_0x3d4d9c)throw new Error('Task\x20ID\x20is\x20required');const _0x591bd9=await fetch(API_BASE+'/tasks/'+_0x3d4d9c+'/sync-repos',{'method':'POST'});if(!_0x591bd9['ok']){const _0xb68bec=await _0x591bd9['json']()['catch'](()=>({}));throw new Error(_0xb68bec['error']||_0xb68bec['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x591bd9['statusText']);}return await _0x591bd9['json']();},async 'getIbmiSyncInfo'(_0x3224a0){if(!_0x3224a0)throw new Error('Task\x20ID\x20is\x20required');const _0x422fcc=await fetch(API_BASE+'/tasks/'+_0x3224a0+'/ibmi-sync-info');if(!_0x422fcc['ok']){const _0x3ab76d=await _0x422fcc['json']()['catch'](()=>({}));throw new Error(_0x3ab76d['error']||_0x3ab76d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x422fcc['json']();},async 'getSyncFiles'(_0x2bbe29){if(!_0x2bbe29)throw new Error('Task\x20ID\x20is\x20required');const _0x2a934a=await fetch(API_BASE+'/tasks/'+_0x2bbe29+'/sync-to-ibmi/files');if(!_0x2a934a['ok']){const _0x201223=await _0x2a934a['json']()['catch'](()=>({}));throw new Error(_0x201223['error']||_0x201223['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x2a934a['json']();},async 'syncToIbmi'(_0x49db33,_0x29ff7d,_0x4037bf=null,_0x45fcaa=null,_0x5196df=null){if(!_0x49db33)throw new Error('Task\x20ID\x20is\x20required');const _0x375095={'library':_0x29ff7d};if(_0x4037bf)_0x375095['user']=_0x4037bf;if(_0x45fcaa)_0x375095['password']=_0x45fcaa;if(_0x5196df)_0x375095['files']=_0x5196df;const _0x32d5d5=await fetch(API_BASE+'/tasks/'+_0x49db33+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x375095)});if(!_0x32d5d5['ok']){const _0x2b076d=await _0x32d5d5['json']()['catch'](()=>({}));throw new Error(_0x2b076d['error']||_0x2b076d['message']||'Sync\x20failed');}return await _0x32d5d5['json']();},async 'getIbmiSyncLog'(_0x53ac96){if(!_0x53ac96)throw new Error('Task\x20ID\x20is\x20required');const _0x52a419=await fetch(API_BASE+'/tasks/'+_0x53ac96+'/ibmi-sync-log');if(!_0x52a419['ok']){const _0x38fcf8=await _0x52a419['json']()['catch'](()=>({}));throw new Error(_0x38fcf8['error']||_0x38fcf8['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x52a419['json']();},async 'pullChanges'(_0x5dc4bc){if(!_0x5dc4bc)throw new Error('Task\x20ID\x20is\x20required');const _0x523a31=await fetch(API_BASE+'/tasks/'+_0x5dc4bc+'/pull-changes',{'method':'POST'});if(!_0x523a31['ok']){const _0x4f2311=await _0x523a31['json']()['catch'](()=>({})),_0x57a8c9=new Error(_0x4f2311['message']||_0x4f2311['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x523a31['statusText']);_0x57a8c9['code']=_0x4f2311['error_code']||null,_0x57a8c9['details']=_0x4f2311['details']||null,_0x57a8c9['tokenExpiryDays']=_0x4f2311['token_expiry_days']||null;throw _0x57a8c9;}return await _0x523a31['json']();},async 'readFile'(_0x251e3c,_0x278bdc){if(!_0x251e3c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x278bdc)throw new Error('File\x20path\x20is\x20required');const _0x5915b8=await fetch(API_BASE+'/tasks/'+_0x251e3c+'/files?path='+encodeURIComponent(_0x278bdc));if(!_0x5915b8['ok']){const _0x4178ee=await _0x5915b8['json']()['catch'](()=>({}));throw new Error(_0x4178ee['error']||_0x4178ee['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5915b8['statusText']);}return await _0x5915b8['json']();},'getTaskFileDownloadUrl'(_0x242161,_0x3c662c){if(!_0x242161)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3c662c)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242161+'/files/download?path='+encodeURIComponent(_0x3c662c);},async 'writeFile'(_0x2c854f,_0x1d0999,_0x432ecd){if(!_0x2c854f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d0999)throw new Error('File\x20path\x20is\x20required');if(_0x432ecd===undefined)throw new Error('Content\x20is\x20required');const _0x52118e=await fetch(API_BASE+'/tasks/'+_0x2c854f+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1d0999,'content':_0x432ecd})});if(!_0x52118e['ok']){const _0x3c88f0=await _0x52118e['json']()['catch'](()=>({}));throw new Error(_0x3c88f0['error']||_0x3c88f0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x52118e['statusText']);}return await _0x52118e['json']();},async 'uploadTaskFiles'(_0x38c033,_0x5dc0b4,_0x3e8ada){if(!_0x38c033)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5dc0b4)throw new Error('Target\x20directory\x20is\x20required');if(!_0x3e8ada||_0x3e8ada['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x76371d=new FormData();_0x76371d['append']('targetDir',_0x5dc0b4);for(const _0x59a448 of _0x3e8ada){_0x76371d['append']('files',_0x59a448,_0x59a448['name']);}const _0x3d4f2b=await fetch(API_BASE+'/tasks/'+_0x38c033+'/files/upload',{'method':'POST','body':_0x76371d});if(!_0x3d4f2b['ok']){const _0x5b8182=await _0x3d4f2b['json']()['catch'](()=>({}));throw new Error(_0x5b8182['error']||_0x5b8182['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3d4f2b['statusText']);}return await _0x3d4f2b['json']();},async 'createDirectory'(_0x1662c7,_0x58bbae){if(!_0x1662c7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58bbae)throw new Error('Directory\x20path\x20is\x20required');const _0x3d92b7=await fetch(API_BASE+'/tasks/'+_0x1662c7+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x58bbae})});if(!_0x3d92b7['ok']){const _0x9924b6=await _0x3d92b7['json']()['catch'](()=>({}));throw new Error(_0x9924b6['error']||_0x9924b6['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3d92b7['statusText']);}return await _0x3d92b7['json']();},async 'renamePath'(_0x14192a,_0x592d6c,_0x86dba6){if(!_0x14192a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x592d6c)throw new Error('Source\x20path\x20is\x20required');if(!_0x86dba6)throw new Error('Destination\x20path\x20is\x20required');const _0x33fcb5=await fetch(API_BASE+'/tasks/'+_0x14192a+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x592d6c,'newPath':_0x86dba6})});if(!_0x33fcb5['ok']){const _0x59c00b=await _0x33fcb5['json']()['catch'](()=>({}));throw new Error(_0x59c00b['error']||_0x59c00b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x33fcb5['statusText']);}return await _0x33fcb5['json']();},async 'deleteFile'(_0x1b1028,_0x53cfd1){if(!_0x1b1028)throw new Error('Task\x20ID\x20is\x20required');if(!_0x53cfd1)throw new Error('File\x20path\x20is\x20required');const _0x5906f3=await fetch(API_BASE+'/tasks/'+_0x1b1028+'/files?path='+encodeURIComponent(_0x53cfd1),{'method':'DELETE'});if(!_0x5906f3['ok']){const _0x35ad05=await _0x5906f3['json']()['catch'](()=>({}));throw new Error(_0x35ad05['error']||_0x35ad05['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5906f3['statusText']);}return await _0x5906f3['json']();},async 'deleteDirectory'(_0x1453c2,_0x3e37b6){if(!_0x1453c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e37b6)throw new Error('Directory\x20path\x20is\x20required');const _0x23ecac=await fetch(API_BASE+'/tasks/'+_0x1453c2+'/files/directory?path='+encodeURIComponent(_0x3e37b6),{'method':'DELETE'});if(!_0x23ecac['ok']){const _0x221543=await _0x23ecac['json']()['catch'](()=>({}));throw new Error(_0x221543['error']||_0x221543['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x23ecac['statusText']);}return await _0x23ecac['json']();},async 'discardFile'(_0x8bf9a7,_0x57e57a,_0x352fcf){if(!_0x8bf9a7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57e57a)throw new Error('File\x20path\x20is\x20required');if(!_0x352fcf)throw new Error('Repository\x20path\x20is\x20required');const _0x466686=await fetch(API_BASE+'/tasks/'+_0x8bf9a7+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x57e57a,'repoPath':_0x352fcf})});if(!_0x466686['ok']){const _0x3dc0ef=await _0x466686['json']()['catch'](()=>({}));throw new Error(_0x3dc0ef['error']||_0x3dc0ef['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x466686['statusText']);}return await _0x466686['json']();},async 'followUpTask'(_0x18ab66,_0x48ea5a={}){if(!_0x18ab66)throw new Error('Task\x20ID\x20is\x20required');if(!_0x48ea5a['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2621b8,_0x3a37ab={};if(_0x48ea5a['files']&&_0x48ea5a['files']['length']>0x0){const _0x2f1206=new FormData();_0x2f1206['append']('instructions',_0x48ea5a['instructions']);for(const _0xc3a5ee of _0x48ea5a['files']){_0x2f1206['append']('attachments',_0xc3a5ee);}_0x2621b8=_0x2f1206;}else _0x3a37ab['Content-Type']='application/json',_0x2621b8=JSON['stringify']({'instructions':_0x48ea5a['instructions']});const _0x32698f=await fetch(API_BASE+'/tasks/'+_0x18ab66+'/follow-up',{'method':'POST','headers':_0x3a37ab,'body':_0x2621b8});if(!_0x32698f['ok']){const _0x46899d=await _0x32698f['json']()['catch'](()=>({}));throw new Error(_0x46899d['error']||_0x46899d['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x32698f['statusText']);}return await _0x32698f['json']();},async 'getTaskRewindPoints'(_0x487538){if(!_0x487538)throw new Error('Task\x20ID\x20is\x20required');const _0x34cbe5=await fetch(API_BASE+'/tasks/'+_0x487538+'/rewind-points');if(!_0x34cbe5['ok']){const _0x1538d6=await _0x34cbe5['json']()['catch'](()=>({}));throw new Error(_0x1538d6['error']||_0x1538d6['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x34cbe5['statusText']);}return await _0x34cbe5['json']();},async 'rewindTask'(_0x8a782f,_0x2efa57={}){if(!_0x8a782f)throw new Error('Task\x20ID\x20is\x20required');const _0x45c2e1=Number['isInteger'](_0x2efa57['targetFollowUpCount'])?_0x2efa57['targetFollowUpCount']:0x0,_0x522029={'targetFollowUpCount':_0x45c2e1};typeof _0x2efa57['instructions']==='string'&&_0x2efa57['instructions']['trim']()&&(_0x522029['instructions']=_0x2efa57['instructions']['trim']());typeof _0x2efa57['rewindFiles']==='boolean'&&(_0x522029['rewindFiles']=_0x2efa57['rewindFiles']);const _0x290e67=await fetch(API_BASE+'/tasks/'+_0x8a782f+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x522029)});if(!_0x290e67['ok']){const _0x3a244e=await _0x290e67['json']()['catch'](()=>({}));throw new Error(_0x3a244e['error']||_0x3a244e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x290e67['statusText']);}return await _0x290e67['json']();},async 'login'(_0x3c9230,_0x16f8d8){const _0xa2b900=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3c9230,'password':_0x16f8d8})});if(!_0xa2b900['ok']){const _0x27c257=await _0xa2b900['json']();throw new Error(_0x27c257['message']||'Login\x20failed');}return await _0xa2b900['json']();},async 'logout'(){const _0xd4489=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0xd4489['ok']){const _0x395a9f=await _0xd4489['json']();throw new Error(_0x395a9f['message']||'Logout\x20failed');}return await _0xd4489['json']();},async 'getCurrentUser'(){const _0x22a174=await fetch(API_BASE+'/auth/me');if(!_0x22a174['ok'])throw new Error('Not\x20authenticated');const _0x5805ba=await _0x22a174['json']();return _0x5805ba['user'];},async 'getRolesInfo'(){const _0x2b908=await fetch(API_BASE+'/users/roles');if(!_0x2b908['ok']){const _0x3c7f29=await _0x2b908['json']();throw new Error(_0x3c7f29['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2b908['json']();},async 'getUsers'(){const _0x3a271d=await fetch(API_BASE+'/users');if(!_0x3a271d['ok']){const _0x1612fc=await _0x3a271d['json']();throw new Error(_0x1612fc['message']||'Failed\x20to\x20get\x20users');}return await _0x3a271d['json']();},async 'getUser'(_0x50ed7b){const _0xc9e253=await fetch(API_BASE+'/users/'+_0x50ed7b);if(!_0xc9e253['ok']){const _0x379e6e=await _0xc9e253['json']();throw new Error(_0x379e6e['message']||'Failed\x20to\x20get\x20user');}return await _0xc9e253['json']();},async 'createUser'(_0x150cb4){const _0x4a357e=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x150cb4)});if(!_0x4a357e['ok']){const _0x19b4e3=await _0x4a357e['json']();throw new Error(_0x19b4e3['message']||'Failed\x20to\x20create\x20user');}return await _0x4a357e['json']();},async 'updateUser'(_0x3b2135,_0x518f03){const _0x3e09bb=await fetch(API_BASE+'/users/'+_0x3b2135,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x518f03)});if(!_0x3e09bb['ok']){const _0x8c6cbc=await _0x3e09bb['json']();throw new Error(_0x8c6cbc['message']||'Failed\x20to\x20update\x20user');}return await _0x3e09bb['json']();},async 'deleteUser'(_0x22b3d3){const _0x1ed06f=await fetch(API_BASE+'/users/'+_0x22b3d3,{'method':'DELETE'});if(!_0x1ed06f['ok']){const _0x583886=await _0x1ed06f['json']();throw new Error(_0x583886['message']||'Failed\x20to\x20delete\x20user');}return await _0x1ed06f['json']();},async 'stopAllContainers'(){const _0x192ddc=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x42a06d=await _0x192ddc['json']()['catch'](()=>({}));if(!_0x192ddc['ok'])throw new Error(_0x42a06d['message']||_0x42a06d['error']||'Failed\x20to\x20stop\x20containers');return _0x42a06d;},async 'removeStoppedContainers'(){const _0x25c492=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x43dc93=await _0x25c492['json']()['catch'](()=>({}));if(!_0x25c492['ok'])throw new Error(_0x43dc93['message']||_0x43dc93['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x43dc93;},async 'pruneDockerResources'(){const _0x3f6515=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x589f5c=await _0x3f6515['json']()['catch'](()=>({}));if(!_0x3f6515['ok'])throw new Error(_0x589f5c['message']||_0x589f5c['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x589f5c;},async 'getUpdateSettings'(){const _0x56438a=await fetch(API_BASE+'/health/update-settings'),_0x46938c=await _0x56438a['json']()['catch'](()=>({}));if(!_0x56438a['ok'])throw new Error(_0x46938c['message']||_0x46938c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x46938c;},async 'applyServerUpdate'(_0x34d991){const _0x52b85f=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x34d991})}),_0x4c193a=await _0x52b85f['json']()['catch'](()=>({}));if(!_0x52b85f['ok']){const _0x196e6d=new Error(_0x4c193a['message']||_0x4c193a['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x4c193a['output']!==undefined)_0x196e6d['output']=_0x4c193a['output'];if(_0x4c193a['error']!==undefined)_0x196e6d['commandError']=_0x4c193a['error'];throw _0x196e6d;}return _0x4c193a;},async 'restartServer'(){const _0x231206=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x16bd84=await _0x231206['json']()['catch'](()=>({}));if(!_0x231206['ok'])throw new Error(_0x16bd84['message']||_0x16bd84['error']||'Failed\x20to\x20restart\x20server');return _0x16bd84;},async 'getDockerContainers'(){const _0x570009=await fetch(API_BASE+'/health/containers'),_0x2e68d8=await _0x570009['json']()['catch'](()=>({}));if(!_0x570009['ok'])throw new Error(_0x2e68d8['message']||_0x2e68d8['error']||'Failed\x20to\x20load\x20containers');return _0x2e68d8;},async 'getDockerImages'(){const _0x155535=await fetch(API_BASE+'/health/docker/images'),_0x59c3d1=await _0x155535['json']()['catch'](()=>({}));if(!_0x155535['ok'])throw new Error(_0x59c3d1['message']||_0x59c3d1['error']||'Failed\x20to\x20load\x20images');return _0x59c3d1;},async 'getDockerVolumes'(){const _0x1ec1dd=await fetch(API_BASE+'/health/docker/volumes'),_0x43c469=await _0x1ec1dd['json']()['catch'](()=>({}));if(!_0x1ec1dd['ok'])throw new Error(_0x43c469['message']||_0x43c469['error']||'Failed\x20to\x20load\x20volumes');return _0x43c469;},async 'getActiveSessions'(){const _0x513839=await fetch(API_BASE+'/health/sessions'),_0x1d2b67=await _0x513839['json']()['catch'](()=>({}));if(!_0x513839['ok'])throw new Error(_0x1d2b67['message']||_0x1d2b67['error']||'Failed\x20to\x20load\x20sessions');return _0x1d2b67;},async 'getSystemInfo'(){const _0x412270=await fetch(API_BASE+'/health/system'),_0x962ba0=await _0x412270['json']()['catch'](()=>({}));if(!_0x412270['ok'])throw new Error(_0x962ba0['message']||_0x962ba0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x962ba0;},async 'stopDockerContainer'(_0x5b8f2a){const _0x48533f=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x5b8f2a)+'/stop',{'method':'POST'}),_0x39edfe=await _0x48533f['json']()['catch'](()=>({}));if(!_0x48533f['ok'])throw new Error(_0x39edfe['message']||_0x39edfe['error']||'Failed\x20to\x20stop\x20container');return _0x39edfe;},async 'removeDockerContainer'(_0xda02fb){const _0x10b66c=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0xda02fb),{'method':'DELETE'}),_0x349030=await _0x10b66c['json']()['catch'](()=>({}));if(!_0x10b66c['ok'])throw new Error(_0x349030['message']||_0x349030['error']||'Failed\x20to\x20remove\x20container');return _0x349030;},async 'createPasswordToken'(_0x5c00b2,_0x3dc312='setup',_0x382fb5=![]){const _0x5120a5=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5c00b2,'type':_0x3dc312,'sendEmail':_0x382fb5})});if(!_0x5120a5['ok']){const _0x34d267=await _0x5120a5['json']();throw new Error(_0x34d267['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x5120a5['json']();},async 'getEmailConfig'(){const _0x692f02=await fetch(API_BASE+'/password/email-config');if(!_0x692f02['ok']){const _0xc08817=await _0x692f02['json']();throw new Error(_0xc08817['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x692f02['json']();},async 'updateTaskName'(_0xbf1bb3,_0x4d4aa6){const _0x4736dd=await fetch(API_BASE+'/tasks/'+_0xbf1bb3,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4d4aa6})});if(!_0x4736dd['ok']){const _0x812c57=await _0x4736dd['json']();throw new Error(_0x812c57['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4736dd['json']();},async 'pinTask'(_0x5eb475,_0x159974,_0x2f727b=null){if(!_0x5eb475)throw new Error('Task\x20ID\x20is\x20required');const _0xdbf53c={'pinned':_0x159974};_0x2f727b&&_0x2f727b['length']>0x0&&(_0xdbf53c['additionalTaskIds']=_0x2f727b);const _0x1260d9=await fetch(API_BASE+'/tasks/'+_0x5eb475+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xdbf53c)});if(!_0x1260d9['ok']){const _0xf7eb6c=await _0x1260d9['json']();throw new Error(_0xf7eb6c['error']||'Failed\x20to\x20pin\x20task');}return await _0x1260d9['json']();},async 'setTaskWinner'(_0x180cae,_0x459ac4,_0x38ddc9=[]){if(!_0x180cae)throw new Error('Task\x20ID\x20is\x20required');const _0x58b27b=await fetch(API_BASE+'/tasks/'+_0x180cae+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x459ac4,'siblings':_0x38ddc9})});if(!_0x58b27b['ok']){const _0x384eb1=await _0x58b27b['json']();throw new Error(_0x384eb1['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x58b27b['json']();},async 'setTaskLoser'(_0x275412,_0x23b696){if(!_0x275412)throw new Error('Task\x20ID\x20is\x20required');const _0x49a895=await fetch(API_BASE+'/tasks/'+_0x275412+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x23b696})});if(!_0x49a895['ok']){const _0xb43988=await _0x49a895['json']();throw new Error(_0xb43988['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x49a895['json']();},async 'createTaskGroup'(_0x1e8d73){const _0xa98131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e8d73)});if(!_0xa98131['ok']){const _0x1c9d36=await _0xa98131['json']();throw new Error(_0x1c9d36['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0xa98131['json']();},async 'getTaskGroups'(_0x54afa8={}){const _0x182a43=new URLSearchParams();if(_0x54afa8['userId'])_0x182a43['set']('userId',String(_0x54afa8['userId']));if(_0x54afa8['status'])_0x182a43['set']('status',String(_0x54afa8['status']));if(_0x54afa8['limit'])_0x182a43['set']('limit',String(_0x54afa8['limit']));const _0x979967=API_BASE+'/tasks/groups'+(_0x182a43['toString']()?'?'+_0x182a43['toString']():''),_0xdd490f=await fetch(_0x979967);if(!_0xdd490f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdd490f['json']();},async 'getTaskGroup'(_0x264563){const _0x419a98=await fetch(API_BASE+'/tasks/groups/'+_0x264563);if(!_0x419a98['ok']){const _0x5c61c3=await _0x419a98['json']();throw new Error(_0x5c61c3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x419a98['json']();},async 'updateTaskGroup'(_0x4b5012,_0x2d71c0,_0x441145){const _0x4c13f1=await fetch(API_BASE+'/tasks/'+_0x4b5012+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2d71c0,'groupIndex':_0x441145})});if(!_0x4c13f1['ok']){const _0x5f2b5c=await _0x4c13f1['json']();throw new Error(_0x5f2b5c['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4c13f1['json']();},async 'removeTaskFromGroup'(_0x2099bf){return this['updateTaskGroup'](_0x2099bf,null,null);},async 'deleteTaskGroup'(_0x5ce0d2,_0x5f1e34=![]){const _0xd104ee=_0x5f1e34?'?deleteTasks=true':'',_0xf31432=await fetch(API_BASE+'/tasks/groups/'+_0x5ce0d2+_0xd104ee,{'method':'DELETE'});if(!_0xf31432['ok']){const _0x1623f9=await _0xf31432['json']();throw new Error(_0x1623f9['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x521891,_0x2b4d05){const _0x5e4ed8=await fetch(API_BASE+'/tasks/groups/'+_0x521891+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x2b4d05})});if(!_0x5e4ed8['ok']){const _0x2f61e9=await _0x5e4ed8['json']();throw new Error(_0x2f61e9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5e4ed8['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4827bd){if(!_0x4827bd)throw new Error('Task\x20ID\x20is\x20required');const _0x1baf17=await fetch(API_BASE+'/tasks/'+_0x4827bd+'/comments');if(!_0x1baf17['ok']){const _0xf35610=await _0x1baf17['json']()['catch'](()=>({}));throw new Error(_0xf35610['error']||'Failed\x20to\x20get\x20comments');}return await _0x1baf17['json']();},async 'addComment'(_0x5d0ef9,_0x17aac3){if(!_0x5d0ef9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17aac3)throw new Error('Comment\x20content\x20is\x20required');const _0x1af11e=await fetch(API_BASE+'/tasks/'+_0x5d0ef9+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17aac3})});if(!_0x1af11e['ok']){const _0x257150=await _0x1af11e['json']()['catch'](()=>({}));throw new Error(_0x257150['error']||'Failed\x20to\x20add\x20comment');}return await _0x1af11e['json']();},async 'updateComment'(_0x31ff8c,_0x59185f,_0x17cf98){if(!_0x31ff8c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x59185f)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x17cf98)throw new Error('Comment\x20content\x20is\x20required');const _0x20ed5f=await fetch(API_BASE+'/tasks/'+_0x31ff8c+'/comments/'+_0x59185f,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17cf98})});if(!_0x20ed5f['ok']){const _0x103ff5=await _0x20ed5f['json']()['catch'](()=>({}));throw new Error(_0x103ff5['error']||'Failed\x20to\x20update\x20comment');}return await _0x20ed5f['json']();},async 'deleteComment'(_0x25263d,_0x25b7d4){if(!_0x25263d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x25b7d4)throw new Error('Comment\x20ID\x20is\x20required');const _0xb2f2d4=await fetch(API_BASE+'/tasks/'+_0x25263d+'/comments/'+_0x25b7d4,{'method':'DELETE'});if(!_0xb2f2d4['ok']){const _0x262cce=await _0xb2f2d4['json']()['catch'](()=>({}));throw new Error(_0x262cce['error']||'Failed\x20to\x20delete\x20comment');}return await _0xb2f2d4['json']();},async 'createObjective'(_0x5dc368){const _0x528643={'objective':!![],'name':_0x5dc368['name']||'','environment':_0x5dc368['environment']||null,'agents':_0x5dc368['agents']||[],'branches':_0x5dc368['branches']||{},'isPinned':_0x5dc368['isPinned']||![],'parentObjectiveId':_0x5dc368['parentObjectiveId']||null,'env_vars':_0x5dc368['envVars']||{},'parameters':{'instructions':_0x5dc368['instructions']||''},'files':_0x5dc368['files']||[],'jira':_0x5dc368['jira']||null};return this['createTask'](_0x528643);},async 'updateObjective'(_0x1d20da,_0x577464,_0x89de2b=[],_0x549f3e=[]){let _0x181bb2,_0x548ace={};const _0x1183a8={..._0x577464};_0x549f3e&&_0x549f3e['length']>0x0&&(_0x1183a8['removeAttachments']=_0x549f3e);if(_0x89de2b&&_0x89de2b['length']>0x0){const _0x57a81d=new FormData();for(const [_0x4b9932,_0x35f821]of Object['entries'](_0x1183a8)){if(_0x35f821==null)continue;typeof _0x35f821==='object'?_0x57a81d['append'](_0x4b9932,JSON['stringify'](_0x35f821)):_0x57a81d['append'](_0x4b9932,String(_0x35f821));}for(const _0x5b658c of _0x89de2b){_0x57a81d['append']('attachments',_0x5b658c);}_0x181bb2=_0x57a81d;}else _0x548ace['Content-Type']='application/json',_0x181bb2=JSON['stringify'](_0x1183a8);const _0x503e83=await fetch(API_BASE+'/tasks/'+_0x1d20da,{'method':'PATCH','headers':_0x548ace,'body':_0x181bb2});if(!_0x503e83['ok']){const _0x3a2e4e=await _0x503e83['json']();throw new Error(_0x3a2e4e['error']||'Failed\x20to\x20update\x20objective');}return await _0x503e83['json']();},async 'deleteObjective'(_0xa0789f){return this['deleteTask'](_0xa0789f);},async 'launchObjective'(_0x1f8f12,_0x603e97={}){const _0x316ec5=await fetch(API_BASE+'/tasks/'+_0x1f8f12+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x603e97)});if(!_0x316ec5['ok']){const _0x540c5a=await _0x316ec5['json']();throw new Error(_0x540c5a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x316ec5['json']();},async 'getObjectiveAttachments'(_0x118371){return this['getTaskAttachments'](_0x118371);},async 'createJudgeTask'({environment:_0x20e579,judgeAgent:_0x15058f,groupId:_0x15e4e3,taskIds:_0x4e3a26,judgeCustomInstructions:_0x2324bf,isPinned:_0x4eb87b}){const _0x559c92=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x20e579,'judgeAgent':_0x15058f,'groupId':_0x15e4e3,'taskIds':_0x4e3a26,'judgeCustomInstructions':_0x2324bf,'isPinned':_0x4eb87b})});if(!_0x559c92['ok']){const _0x20671f=await _0x559c92['json']();throw new Error(_0x20671f['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x559c92['json']();},async 'getJudgeTasks'(_0x30acac){const _0x39c545=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x30acac));if(!_0x39c545['ok']){const _0x1ed5db=await _0x39c545['json']();throw new Error(_0x1ed5db['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39c545['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4c6a6b,_0x29c4fd,_0x443a7a=''){const _0x25c61f=await fetch(API_BASE+'/tasks/'+_0x4c6a6b+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x29c4fd,'customPreamble':_0x443a7a})});if(!_0x25c61f['ok']){const _0x1b2d46=await _0x25c61f['json']();throw new Error(_0x1b2d46['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x25c61f['json']();},async 'getJiraConfig'(){const _0x37b20d=await fetch(API_BASE+'/jira/config');if(!_0x37b20d['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x37b20d['json']();},async 'getJiraIssue'(_0x113124){const _0xc8d72c=await fetch(API_BASE+'/jira/issues/'+_0x113124);if(!_0xc8d72c['ok']){const _0x5a3e3c=await _0xc8d72c['json']()['catch'](()=>({}));throw new Error(_0x5a3e3c['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0xc8d72c['statusText']);}return await _0xc8d72c['json']();},async 'searchJiraIssues'(_0x4f16da,_0x46d5ae=0x14){const _0x598a72=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4f16da,'maxResults':_0x46d5ae})});if(!_0x598a72['ok']){const _0x55f00f=await _0x598a72['json']()['catch'](()=>({}));throw new Error(_0x55f00f['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x598a72['statusText']);}return await _0x598a72['json']();},async 'postJiraComment'(_0xdc6282,_0x10009f){const _0x305394=await fetch(API_BASE+'/jira/issues/'+_0xdc6282+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x10009f})});if(!_0x305394['ok']){const _0x1572d8=await _0x305394['json']()['catch'](()=>({}));throw new Error(_0x1572d8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x305394['statusText']);}return await _0x305394['json']();},async 'getJiraComments'(_0x2424ec){const _0x153cf3=await fetch(API_BASE+'/jira/issues/'+_0x2424ec+'/comments');if(!_0x153cf3['ok']){const _0x343525=await _0x153cf3['json']()['catch'](()=>({}));throw new Error(_0x343525['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x153cf3['statusText']);}return await _0x153cf3['json']();},async 'promptParameter'({environment:_0x42303e,command:_0x51c6a2,parser:parser='json'}){const _0x572256=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x42303e,'command':_0x51c6a2,'parser':parser})});if(!_0x572256['ok']){const _0x2804db=await _0x572256['json']()['catch'](()=>({}));throw new Error(_0x2804db['message']||_0x2804db['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x572256['statusText']);}return await _0x572256['json']();},async 'promptParameterStream'(_0x558e39,_0x8b7ba2){const _0x2efc36=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558e39)});if(!_0x2efc36['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x2efc36['statusText']);const _0x13d8de=_0x2efc36['body']['getReader'](),_0x340f12=new TextDecoder();let _0x227185='';return new Promise((_0x756eda,_0x6a40ca)=>{const _0x4ac77e=async()=>{try{const {done:_0x2ccec2,value:_0x2baca5}=await _0x13d8de['read']();if(_0x2ccec2)return;_0x227185+=_0x340f12['decode'](_0x2baca5,{'stream':!![]});const _0x4308f7=_0x227185['split']('\x0a\x0a');_0x227185=_0x4308f7['pop']()||'';for(const _0x420d29 of _0x4308f7){if(!_0x420d29['trim']())continue;const _0x128e64=_0x420d29['split']('\x0a');let _0x20a200='message',_0x26cbfa='';for(const _0x241392 of _0x128e64){if(_0x241392['startsWith']('event:'))_0x20a200=_0x241392['substring'](0x6)['trim']();else _0x241392['startsWith']('data:')&&(_0x26cbfa=_0x241392['substring'](0x5)['trim']());}if(!_0x26cbfa)continue;try{const _0x2e04e3=JSON['parse'](_0x26cbfa);if(_0x20a200==='progress'&&_0x8b7ba2)_0x8b7ba2(_0x2e04e3['stage'],_0x2e04e3['message']);else{if(_0x20a200==='result'){_0x756eda(_0x2e04e3);return;}else{if(_0x20a200==='error'){let _0x1db43f=_0x2e04e3['message']||_0x2e04e3['error']||'Prompt\x20command\x20failed';_0x2e04e3['rawOutput']&&(_0x1db43f+='\x0a\x0aRaw\x20output:\x0a'+_0x2e04e3['rawOutput']);_0x6a40ca(new Error(_0x1db43f));return;}}}}catch(_0x283dab){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x283dab),console['error']('Event\x20type:',_0x20a200),console['error']('Event\x20data:',_0x26cbfa),console['error']('First\x20200\x20chars:',_0x26cbfa['substring'](0x0,0xc8)),_0x6a40ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x283dab['message']+'\x0a\x0aData:\x20'+_0x26cbfa['substring'](0x0,0x1f4)));return;}}_0x4ac77e();}catch(_0x26abd9){_0x6a40ca(_0x26abd9);}};_0x4ac77e();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3e652d){const _0x384fab=await fetch(''+API_BASE+_0x3e652d);if(!_0x384fab['ok']){const _0x2380a6=await _0x384fab['json']()['catch'](()=>({'error':_0x384fab['statusText']})),_0xffcad4=new Error(_0x2380a6['error']||_0x2380a6['message']||_0x384fab['statusText']);if(_0x2380a6['detail']!==undefined)_0xffcad4['detail']=_0x2380a6['detail'];throw _0xffcad4;}return await _0x384fab['json']();},async 'post'(_0xaf8132,_0x4308da){const _0x3a93d3=await fetch(''+API_BASE+_0xaf8132,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4308da)});if(!_0x3a93d3['ok']){const _0x6b4744=await _0x3a93d3['json']()['catch'](()=>({'error':_0x3a93d3['statusText']})),_0x11e28d=new Error(_0x6b4744['error']||_0x6b4744['message']||_0x3a93d3['statusText']);if(_0x6b4744['detail']!==undefined)_0x11e28d['detail']=_0x6b4744['detail'];throw _0x11e28d;}return await _0x3a93d3['json']();},async 'put'(_0x2e5fe6,_0x239cc6){const _0x575730=await fetch(''+API_BASE+_0x2e5fe6,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239cc6)});if(!_0x575730['ok']){const _0x1c9477=await _0x575730['json']()['catch'](()=>({'error':_0x575730['statusText']})),_0x23aab0=new Error(_0x1c9477['error']||_0x1c9477['message']||_0x575730['statusText']);if(_0x1c9477['detail']!==undefined)_0x23aab0['detail']=_0x1c9477['detail'];throw _0x23aab0;}return await _0x575730['json']();},async 'delete'(_0x50ccbb,_0x4051e2){const _0x3d3b1b={'method':'DELETE'};_0x4051e2&&(_0x3d3b1b['headers']={'Content-Type':'application/json'},_0x3d3b1b['body']=JSON['stringify'](_0x4051e2));const _0x342548=await fetch(''+API_BASE+_0x50ccbb,_0x3d3b1b);if(!_0x342548['ok']){const _0x5214fd=await _0x342548['json']()['catch'](()=>({'error':_0x342548['statusText']})),_0x24b2c0=new Error(_0x5214fd['error']||_0x5214fd['message']||_0x342548['statusText']);if(_0x5214fd['detail']!==undefined)_0x24b2c0['detail']=_0x5214fd['detail'];throw _0x24b2c0;}return await _0x342548['json']();},async 'getSkills'(){const _0x31c7cd=await fetch(API_BASE+'/skills');if(!_0x31c7cd['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x31c7cd['statusText']);return await _0x31c7cd['json']();},async 'getSkill'(_0x49eb5f){const _0x55e637=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49eb5f));if(!_0x55e637['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x55e637['statusText']);return await _0x55e637['json']();},async 'createSkill'(_0x415a91){const _0x244ddb=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x415a91)});if(!_0x244ddb['ok']){const _0x56fd74=await _0x244ddb['json']()['catch'](()=>({'error':_0x244ddb['statusText']})),_0x25a024=new Error(_0x56fd74['error']||_0x56fd74['message']||_0x244ddb['statusText']);if(_0x56fd74['detail']!==undefined)_0x25a024['detail']=_0x56fd74['detail'];throw _0x25a024;}return await _0x244ddb['json']();},async 'updateSkill'(_0x14bf1e,_0x1b96ed){const _0xf09a79=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x14bf1e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b96ed)});if(!_0xf09a79['ok']){const _0x31e849=await _0xf09a79['json']()['catch'](()=>({'error':_0xf09a79['statusText']})),_0x377cda=new Error(_0x31e849['error']||_0x31e849['message']||_0xf09a79['statusText']);if(_0x31e849['detail']!==undefined)_0x377cda['detail']=_0x31e849['detail'];throw _0x377cda;}return await _0xf09a79['json']();},async 'deleteSkill'(_0x2ce235){const _0x4bce38=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ce235),{'method':'DELETE'});if(!_0x4bce38['ok']){const _0x3f39fb=await _0x4bce38['json']()['catch'](()=>({'error':_0x4bce38['statusText']})),_0x51ba36=new Error(_0x3f39fb['error']||_0x3f39fb['message']||_0x4bce38['statusText']);if(_0x3f39fb['detail']!==undefined)_0x51ba36['detail']=_0x3f39fb['detail'];throw _0x51ba36;}return await _0x4bce38['json']();},async 'getSkillFile'(_0x3e4b75,_0x368590){const _0xa07a9d=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3e4b75)+'/files/'+_0x368590);if(!_0xa07a9d['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xa07a9d['statusText']);return await _0xa07a9d['json']();},async 'saveSkillFile'(_0x577070,_0x4e95cd,_0x19f7cc){const _0x596f6a=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x577070)+'/files/'+_0x4e95cd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x19f7cc})});if(!_0x596f6a['ok']){const _0xed9c18=await _0x596f6a['json']()['catch'](()=>({'error':_0x596f6a['statusText']})),_0x22de43=new Error(_0xed9c18['error']||_0xed9c18['message']||_0x596f6a['statusText']);if(_0xed9c18['detail']!==undefined)_0x22de43['detail']=_0xed9c18['detail'];throw _0x22de43;}return await _0x596f6a['json']();},async 'deleteSkillFile'(_0x26539c,_0x5e2d6b){const _0xe4f4e9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x26539c)+'/files/'+_0x5e2d6b,{'method':'DELETE'});if(!_0xe4f4e9['ok']){const _0x3d1dff=await _0xe4f4e9['json']()['catch'](()=>({'error':_0xe4f4e9['statusText']})),_0x3d51e9=new Error(_0x3d1dff['error']||_0x3d1dff['message']||_0xe4f4e9['statusText']);if(_0x3d1dff['detail']!==undefined)_0x3d51e9['detail']=_0x3d1dff['detail'];throw _0x3d51e9;}return await _0xe4f4e9['json']();},async 'pullSkills'(){const _0x200a7c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x200a7c['ok']){const _0x3c04c5=await _0x200a7c['json']()['catch'](()=>({'error':_0x200a7c['statusText']})),_0x13ad7b=new Error(_0x3c04c5['error']||_0x3c04c5['message']||_0x200a7c['statusText']);if(_0x3c04c5['detail']!==undefined)_0x13ad7b['detail']=_0x3c04c5['detail'];throw _0x13ad7b;}return await _0x200a7c['json']();},async 'commitSkills'(_0x5d1764,_0x28b744={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x28b744,_0x9a229b=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x5d1764,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x9a229b['ok']){const _0x4974b7=await _0x9a229b['json']()['catch'](()=>({'error':_0x9a229b['statusText']})),_0x1ea460=new Error(_0x4974b7['error']||_0x4974b7['message']||_0x9a229b['statusText']);if(_0x4974b7['detail']!==undefined)_0x1ea460['detail']=_0x4974b7['detail'];throw _0x1ea460;}return await _0x9a229b['json']();},async 'discardSkillsChanges'(){const _0x1bc21b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1bc21b['ok']){const _0x3a15d8=await _0x1bc21b['json']()['catch'](()=>({'error':_0x1bc21b['statusText']})),_0x4a6b7d=new Error(_0x3a15d8['error']||_0x3a15d8['message']||_0x1bc21b['statusText']);if(_0x3a15d8['detail']!==undefined)_0x4a6b7d['detail']=_0x3a15d8['detail'];throw _0x4a6b7d;}return await _0x1bc21b['json']();},async 'getSkillCatalog'(){const _0x47722e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x47722e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x47722e['statusText']);return await _0x47722e['json']();},async 'getImportedSkillsRegistry'(){const _0x65633e=await fetch(API_BASE+'/external-skills/registry');if(!_0x65633e['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x65633e['statusText']);return await _0x65633e['json']();},async 'importCatalogSkill'(_0x56805f){const _0x319afc=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x56805f})});if(!_0x319afc['ok']){const _0x385faa=await _0x319afc['json']()['catch'](()=>({'error':_0x319afc['statusText']})),_0x24ceee=new Error(_0x385faa['error']||_0x385faa['message']||_0x319afc['statusText']);if(_0x385faa['detail']!==undefined)_0x24ceee['detail']=_0x385faa['detail'];throw _0x24ceee;}return await _0x319afc['json']();},async 'importSkillFromGit'(_0x590d0a,_0x48a982,_0x39fa69='main',_0x3f6fb2=null){const _0x114c8e=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x590d0a,'skillPath':_0x48a982,'branch':_0x39fa69,'skillId':_0x3f6fb2})});if(!_0x114c8e['ok']){const _0x398fd=await _0x114c8e['json']()['catch'](()=>({'error':_0x114c8e['statusText']})),_0x3fdc3d=new Error(_0x398fd['error']||_0x398fd['message']||_0x114c8e['statusText']);if(_0x398fd['detail']!==undefined)_0x3fdc3d['detail']=_0x398fd['detail'];throw _0x3fdc3d;}return await _0x114c8e['json']();},async 'probeMarketplace'(_0x566352,_0x28d9ee='main'){const _0x10d082=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x566352,'branch':_0x28d9ee})});if(!_0x10d082['ok']){const _0x12d5f1=await _0x10d082['json']()['catch'](()=>({'error':_0x10d082['statusText']})),_0x1fd582=new Error(_0x12d5f1['error']||_0x12d5f1['message']||_0x10d082['statusText']);if(_0x12d5f1['detail']!==undefined)_0x1fd582['detail']=_0x12d5f1['detail'];throw _0x1fd582;}return await _0x10d082['json']();},async 'importMarketplaceBundle'(_0x4f5d05,_0xfcdd63,_0x5323c6,_0x5b575c=null){const _0x7325a6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f5d05,'branch':_0xfcdd63,'bundleId':_0x5323c6,'selectedSkills':_0x5b575c})});if(!_0x7325a6['ok']){const _0x54878b=await _0x7325a6['json']()['catch'](()=>({'error':_0x7325a6['statusText']})),_0x409798=new Error(_0x54878b['error']||_0x54878b['message']||_0x7325a6['statusText']);if(_0x54878b['detail']!==undefined)_0x409798['detail']=_0x54878b['detail'];throw _0x409798;}return await _0x7325a6['json']();},async 'importSkillFromFolder'(_0x4d827f,_0x32e2c9=null){const _0x3c21c1=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4d827f,'skillId':_0x32e2c9})});if(!_0x3c21c1['ok']){const _0x3502cc=await _0x3c21c1['json']()['catch'](()=>({'error':_0x3c21c1['statusText']})),_0x313346=new Error(_0x3502cc['error']||_0x3502cc['message']||_0x3c21c1['statusText']);if(_0x3502cc['detail']!==undefined)_0x313346['detail']=_0x3502cc['detail'];throw _0x313346;}return await _0x3c21c1['json']();},async 'importSkillFromNpm'(_0x4f1218,_0x4dde69='latest',_0x41e664=null,_0x84b2e7=null){const _0x44f74e=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x4f1218,'version':_0x4dde69,'skillId':_0x41e664,'registry':_0x84b2e7})});if(!_0x44f74e['ok']){const _0x4ee51f=await _0x44f74e['json']()['catch'](()=>({'error':_0x44f74e['statusText']})),_0x6aa5c6=new Error(_0x4ee51f['error']||_0x4ee51f['message']||_0x44f74e['statusText']);if(_0x4ee51f['detail']!==undefined)_0x6aa5c6['detail']=_0x4ee51f['detail'];throw _0x6aa5c6;}return await _0x44f74e['json']();},async 'checkSkillUpdates'(_0x395c7c){const _0x485184=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x395c7c)+'/check-updates',{'method':'POST'});if(!_0x485184['ok']){const _0x144807=await _0x485184['json']()['catch'](()=>({'error':_0x485184['statusText']})),_0x420bed=new Error(_0x144807['error']||_0x144807['message']||_0x485184['statusText']);if(_0x144807['detail']!==undefined)_0x420bed['detail']=_0x144807['detail'];throw _0x420bed;}return await _0x485184['json']();},async 'updateExternalSkill'(_0x256368){const _0x1a6a22=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x256368)+'/update',{'method':'POST'});if(!_0x1a6a22['ok']){const _0x552bc4=await _0x1a6a22['json']()['catch'](()=>({'error':_0x1a6a22['statusText']})),_0x4960f8=new Error(_0x552bc4['error']||_0x552bc4['message']||_0x1a6a22['statusText']);if(_0x552bc4['detail']!==undefined)_0x4960f8['detail']=_0x552bc4['detail'];throw _0x4960f8;}return await _0x1a6a22['json']();},async 'updateSkillFlags'(_0x26ae6a,_0x256bf9){const _0x55d61b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x26ae6a)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x256bf9})});if(!_0x55d61b['ok']){const _0x2ce8c1=await _0x55d61b['json']()['catch'](()=>({'error':_0x55d61b['statusText']})),_0x5eb6f2=new Error(_0x2ce8c1['error']||_0x2ce8c1['message']||_0x55d61b['statusText']);if(_0x2ce8c1['detail']!==undefined)_0x5eb6f2['detail']=_0x2ce8c1['detail'];throw _0x5eb6f2;}return await _0x55d61b['json']();},async 'removeFromImportedRegistry'(_0x486683){const _0x281773=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x486683)+'/registry',{'method':'DELETE'});if(!_0x281773['ok']){const _0x590f75=await _0x281773['json']()['catch'](()=>({'error':_0x281773['statusText']})),_0x2e6d3d=new Error(_0x590f75['error']||_0x590f75['message']||_0x281773['statusText']);if(_0x590f75['detail']!==undefined)_0x2e6d3d['detail']=_0x590f75['detail'];throw _0x2e6d3d;}return await _0x281773['json']();},async 'getTeams'(){const _0x569bd8=await fetch(API_BASE+'/teams');if(!_0x569bd8['ok']){const _0x37e714=await _0x569bd8['json']()['catch'](()=>({'message':_0x569bd8['statusText']}));throw new Error(_0x37e714['message']||'Failed\x20to\x20get\x20teams');}return await _0x569bd8['json']();},async 'getTeam'(_0x372614){const _0x3773d4=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x372614));if(!_0x3773d4['ok']){const _0x6df004=await _0x3773d4['json']()['catch'](()=>({'message':_0x3773d4['statusText']}));throw new Error(_0x6df004['message']||'Failed\x20to\x20get\x20team');}return await _0x3773d4['json']();},async 'createTeam'(_0x527de8){const _0x55608b=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x527de8)});if(!_0x55608b['ok']){const _0xce21fc=await _0x55608b['json']()['catch'](()=>({'message':_0x55608b['statusText']}));throw new Error(_0xce21fc['message']||'Failed\x20to\x20create\x20team');}return await _0x55608b['json']();},async 'updateTeam'(_0x1aeb6c,_0x332458){const _0x425dce=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1aeb6c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x332458)});if(!_0x425dce['ok']){const _0x5f046c=await _0x425dce['json']()['catch'](()=>({'message':_0x425dce['statusText']}));throw new Error(_0x5f046c['message']||'Failed\x20to\x20update\x20team');}return await _0x425dce['json']();},async 'deleteTeam'(_0x125e88){const _0x59db85=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x125e88),{'method':'DELETE'});if(!_0x59db85['ok']){const _0x2f6d20=await _0x59db85['json']()['catch'](()=>({'message':_0x59db85['statusText']}));throw new Error(_0x2f6d20['message']||'Failed\x20to\x20delete\x20team');}return await _0x59db85['json']();},async 'addTeamMember'(_0x173f8a,_0x5bfe61){const _0x20017e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x173f8a)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5bfe61})});if(!_0x20017e['ok']){const _0x4f091d=await _0x20017e['json']()['catch'](()=>({'message':_0x20017e['statusText']}));throw new Error(_0x4f091d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x20017e['json']();},async 'removeTeamMember'(_0x116e2c,_0x1bd98c){const _0x3af8e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x116e2c)+'/members/'+encodeURIComponent(_0x1bd98c),{'method':'DELETE'});if(!_0x3af8e8['ok']){const _0x180bfb=await _0x3af8e8['json']()['catch'](()=>({'message':_0x3af8e8['statusText']}));throw new Error(_0x180bfb['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x3af8e8['json']();},async 'getBindings'(_0x52c738={}){const _0x5310ec=new URLSearchParams();if(_0x52c738['resource_type'])_0x5310ec['set']('resource_type',_0x52c738['resource_type']);if(_0x52c738['resource_id'])_0x5310ec['set']('resource_id',_0x52c738['resource_id']);if(_0x52c738['subject_type'])_0x5310ec['set']('subject_type',_0x52c738['subject_type']);if(_0x52c738['subject_id'])_0x5310ec['set']('subject_id',_0x52c738['subject_id']);const _0x385a52=_0x5310ec['toString'](),_0x2d6274=await fetch(API_BASE+'/bindings'+(_0x385a52?'?'+_0x385a52:''));if(!_0x2d6274['ok']){const _0x5edfcb=await _0x2d6274['json']()['catch'](()=>({'message':_0x2d6274['statusText']}));throw new Error(_0x5edfcb['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2d6274['json']();},async 'createBinding'(_0x826fa0){const _0x4fed28=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x826fa0)});if(!_0x4fed28['ok']){const _0x3df509=await _0x4fed28['json']()['catch'](()=>({'message':_0x4fed28['statusText']}));throw new Error(_0x3df509['message']||'Failed\x20to\x20create\x20binding');}return await _0x4fed28['json']();},async 'updateBinding'(_0x2fa754,_0x35a649){const _0xcb4f79=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2fa754),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35a649)});if(!_0xcb4f79['ok']){const _0x48bc0d=await _0xcb4f79['json']()['catch'](()=>({'message':_0xcb4f79['statusText']}));throw new Error(_0x48bc0d['message']||'Failed\x20to\x20update\x20binding');}return await _0xcb4f79['json']();},async 'deleteBinding'(_0x4f83dc){const _0x4c2efc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4f83dc),{'method':'DELETE'});if(!_0x4c2efc['ok']){const _0x5d8a2f=await _0x4c2efc['json']()['catch'](()=>({'message':_0x4c2efc['statusText']}));throw new Error(_0x5d8a2f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4c2efc['json']();},async 'getRoleDefinitions'(){const _0x45c2b2=await fetch(API_BASE+'/roles');if(!_0x45c2b2['ok']){const _0x53ed29=await _0x45c2b2['json']()['catch'](()=>({'message':_0x45c2b2['statusText']}));throw new Error(_0x53ed29['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x45c2b2['json']();},async 'getRoleDefinition'(_0x5f2f6e){const _0x60365b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5f2f6e));if(!_0x60365b['ok']){const _0x51fa9c=await _0x60365b['json']()['catch'](()=>({'message':_0x60365b['statusText']}));throw new Error(_0x51fa9c['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x60365b['json']();},async 'createRoleDefinition'(_0x3f46e7){const _0x3bb1ee=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f46e7)});if(!_0x3bb1ee['ok']){const _0x5bbeb6=await _0x3bb1ee['json']()['catch'](()=>({'message':_0x3bb1ee['statusText']}));throw new Error(_0x5bbeb6['message']||_0x5bbeb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3bb1ee['json']();},async 'updateRoleDefinition'(_0x197124,_0x455fea){const _0x54cc45=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x197124),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x455fea)});if(!_0x54cc45['ok']){const _0x38f830=await _0x54cc45['json']()['catch'](()=>({'message':_0x54cc45['statusText']}));throw new Error(_0x38f830['message']||_0x38f830['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x54cc45['json']();},async 'deleteRoleDefinition'(_0x476c26){const _0x31650e=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x476c26),{'method':'DELETE'});if(!_0x31650e['ok']){const _0x21c23f=await _0x31650e['json']()['catch'](()=>({'message':_0x31650e['statusText']}));throw new Error(_0x21c23f['message']||_0x21c23f['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x31650e['json']();},async 'getAvailablePermissions'(){const _0x30d705=await fetch(API_BASE+'/roles/available-permissions');if(!_0x30d705['ok']){const _0x70fb18=await _0x30d705['json']()['catch'](()=>({'message':_0x30d705['statusText']}));throw new Error(_0x70fb18['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x30d705['json']();},async 'getGitProviderAllowedTeams'(_0x3d1f4b){const _0x372000=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3d1f4b)+'/allowed-teams');if(!_0x372000['ok']){const _0x4a17ef=await _0x372000['json']()['catch'](()=>({'message':_0x372000['statusText']}));throw new Error(_0x4a17ef['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x372000['json']();},async 'setGitProviderAllowedTeams'(_0x3b718b,_0x65876f){const _0x30d766=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3b718b)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x65876f})});if(!_0x30d766['ok']){const _0x1dfd35=await _0x30d766['json']()['catch'](()=>({'message':_0x30d766['statusText']}));throw new Error(_0x1dfd35['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x30d766['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x41a54f=toastState['baseBottom'];toastState['toasts']['forEach'](_0x4f6049=>{_0x4f6049['el']['style']['bottom']=_0x41a54f+'px';const _0x2842ec=_0x4f6049['el']['offsetHeight']||toastState['defaultHeight'];_0x41a54f+=_0x2842ec+toastState['gap'];});});}function removeToastById(_0xb6cc44){const _0x3c0e5b=toastState['toasts']['findIndex'](_0x1835c3=>_0x1835c3['id']===_0xb6cc44);if(_0x3c0e5b===-0x1)return;const _0x1f6a79=toastState['toasts'][_0x3c0e5b];if(_0x1f6a79['timeoutId'])clearTimeout(_0x1f6a79['timeoutId']);_0x1f6a79['el']['classList']['remove']('show'),setTimeout(()=>_0x1f6a79['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3c0e5b,0x1),repositionAllToasts();}function registerToast(_0x17eba2){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x17eba2),repositionAllToasts(),_0x17eba2['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x1c43bb){if(_0x1c43bb===null||_0x1c43bb===undefined)return'';return String(_0x1c43bb)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x59df75,_0x361732){if(_0x59df75&&typeof _0x59df75==='object'&&!Array['isArray'](_0x59df75))return{'code':typeof _0x59df75['text']==='string'?_0x59df75['text']:'','language':typeof _0x59df75['lang']==='string'?_0x59df75['lang']:''};return{'code':typeof _0x59df75==='string'?_0x59df75:'','language':typeof _0x361732==='string'?_0x361732:''};}function buildMermaidBlock(_0x3c8d40){const _0x2094c6=String(_0x3c8d40||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2094c6))+'\x22>'+escapeHtmlValue(_0x2094c6)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1a1bab=new marked['Renderer'](),_0x21a019=_0x1a1bab['code']['bind'](_0x1a1bab);return _0x1a1bab['code']=function(_0x3e2aa2,_0x229cdb,..._0x56fe8a){const {code:_0x288fbe,language:_0x3c0ace}=getMarkdownCodeBlockPayload(_0x3e2aa2,_0x229cdb),_0x5dda8c=String(_0x3c0ace||'')['trim']()['toLowerCase']();if(_0x5dda8c==='mermaid')return buildMermaidBlock(_0x288fbe);const _0x15f7a3=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x15f7a3&&_0x5dda8c)try{const _0x3461b5=_0x15f7a3['getLanguage'](_0x5dda8c)?_0x5dda8c:'plaintext',_0x3d7b93=_0x15f7a3['highlight'](_0x288fbe,{'language':_0x3461b5})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dda8c)+'\x22>'+_0x3d7b93+'</code></pre>';}catch(_0x497f23){console['error']('Syntax\x20highlighting\x20error:',_0x497f23);}return _0x21a019(_0x3e2aa2,_0x229cdb,..._0x56fe8a);},sharedMarkedRenderer=_0x1a1bab,_0x1a1bab;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x351e00=window['mermaid'];if(!_0x351e00||typeof _0x351e00['initialize']!=='function')return _0x351e00||null;return _0x351e00['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x351e00;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1e7d55,_0xf63295)=>{const _0x2d1156=()=>_0x1e7d55(configureMermaidInstance()),_0x35b6dc=()=>{mermaidLoadPromise=null,_0xf63295(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x3064a9=document['getElementById'](MERMAID_SCRIPT_ID);!_0x3064a9&&(_0x3064a9=document['createElement']('script'),_0x3064a9['id']=MERMAID_SCRIPT_ID,_0x3064a9['src']=MERMAID_SCRIPT_SRC,_0x3064a9['async']=!![],document['head']['appendChild'](_0x3064a9));if(window['mermaid']){_0x2d1156();return;}_0x3064a9['addEventListener']('load',_0x2d1156,{'once':!![]}),_0x3064a9['addEventListener']('error',_0x35b6dc,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x17ea46){const _0x3b3843=_0x17ea46['getAttribute']('data-mermaid-source');if(!_0x3b3843)return null;let _0x1d183f=_0x3b3843;try{_0x1d183f=decodeURIComponent(_0x3b3843);}catch{}return _0x17ea46['textContent']=_0x1d183f,_0x17ea46['removeAttribute']('data-processed'),_0x17ea46['removeAttribute']('aria-roledescription'),_0x17ea46['removeAttribute']('role'),_0x17ea46['removeAttribute']('aria-label'),_0x1d183f;}function collectMermaidNodes(_0x32bc3a,_0x3b98bf){if(!(_0x32bc3a instanceof Element))return;_0x32bc3a['matches']('.mermaid[data-mermaid-source]')&&_0x3b98bf['add'](_0x32bc3a),_0x32bc3a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3704a7=>{_0x3b98bf['add'](_0x3704a7);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x210577=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xb87dd0=>setTimeout(_0xb87dd0,0x0);_0x210577(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1827ca=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1827ca);});});}function queueMermaidRender(_0x3d3581){const _0xec21a3=new Set();_0x3d3581 instanceof Document||_0x3d3581 instanceof DocumentFragment?_0x3d3581['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xfc4ff=>_0xec21a3['add'](_0xfc4ff)):collectMermaidNodes(_0x3d3581,_0xec21a3);if(_0xec21a3['size']===0x0)return;_0xec21a3['forEach'](_0x4bf564=>pendingMermaidNodes['add'](_0x4bf564)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x4e98b9=Array['from'](pendingMermaidNodes)['filter'](_0x22c3ef=>_0x22c3ef['isConnected']);pendingMermaidNodes['clear']();if(_0x4e98b9['length']===0x0)return;const _0x3428dc=await loadMermaid();if(!_0x3428dc)return;configureMermaidInstance();const _0x339d3e=getMermaidTheme();for(const _0x418cdc of _0x4e98b9){const _0x663a35=_0x418cdc['getAttribute']('data-mermaid-source');if(!_0x663a35)continue;const _0x260c5d=_0x418cdc['getAttribute']('data-processed')==='true';if(_0x260c5d&&_0x418cdc['dataset']['mermaidTheme']===_0x339d3e)continue;restoreMermaidSource(_0x418cdc);try{if(typeof _0x3428dc['run']==='function')await _0x3428dc['run']({'nodes':[_0x418cdc]});else typeof _0x3428dc['init']==='function'&&_0x3428dc['init'](undefined,[_0x418cdc]);_0x418cdc['dataset']['mermaidTheme']=_0x339d3e,delete _0x418cdc['dataset']['mermaidError'];}catch(_0x4062f5){console['error']('Mermaid\x20render\x20failed:',_0x4062f5),restoreMermaidSource(_0x418cdc),_0x418cdc['dataset']['mermaidError']='true',delete _0x418cdc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5d2670=>{_0x5d2670['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5d2670);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x554fe3=>{_0x554fe3['forEach'](_0x2911db=>{_0x2911db['addedNodes']['forEach'](_0x3f5697=>{_0x3f5697['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3f5697);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x551a7f){const _0x28016f=new Date(_0x551a7f),_0x172c99=new Date(),_0x5ea65f=_0x172c99-_0x28016f,_0x2acc42=Math['floor'](_0x5ea65f/0x3e8),_0x2cc7d9=Math['floor'](_0x2acc42/0x3c),_0x3208a6=Math['floor'](_0x2cc7d9/0x3c),_0x303aaf=Math['floor'](_0x3208a6/0x18);if(_0x2acc42<0x3c)return'now';if(_0x2cc7d9<0x3c)return _0x2cc7d9+'m\x20ago';if(_0x3208a6<0x18)return _0x3208a6+'h\x20ago';return _0x303aaf+'d\x20ago';},'getStatusIcon'(_0x48ee09){switch(_0x48ee09){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1d506d){switch(_0x1d506d){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x18bb31,_0x287000=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x1c68ae={};_0x1c68ae['text/plain']=new Blob([_0x18bb31],{'type':'text/plain'});_0x287000&&(_0x1c68ae['text/html']=new Blob([_0x287000],{'type':'text/html'}));const _0x26aef9=new ClipboardItem(_0x1c68ae);return await navigator['clipboard']['write']([_0x26aef9]),!![];}catch(_0x1b21ef){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x1b21ef);}try{const _0x14f0a3=_0xdf898c=>{_0xdf898c['preventDefault'](),_0xdf898c['clipboardData']['setData']('text/plain',_0x18bb31),_0x287000&&_0xdf898c['clipboardData']['setData']('text/html',_0x287000);};document['addEventListener']('copy',_0x14f0a3);const _0x1ae596=document['execCommand']('copy');document['removeEventListener']('copy',_0x14f0a3);if(_0x1ae596)return!![];}catch(_0x96a24){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x96a24);}try{const _0x19ba72=document['createElement']('textarea');_0x19ba72['value']=_0x18bb31,_0x19ba72['style']['position']='fixed',_0x19ba72['style']['opacity']='0',_0x19ba72['style']['pointerEvents']='none',document['body']['appendChild'](_0x19ba72),_0x19ba72['select']();const _0x3eca1c=document['execCommand']('copy');return document['body']['removeChild'](_0x19ba72),_0x3eca1c;}catch(_0x49b70a){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x49b70a),![];}},'showToast'(_0x179eec,_0x88fcdb='info'){const _0x1905dd=getNextToastId(),_0x5d10fd=document['createElement']('div');_0x5d10fd['className']='toast\x20toast-'+_0x88fcdb,_0x5d10fd['textContent']=_0x179eec,_0x5d10fd['dataset']['toastId']=_0x1905dd,document['body']['appendChild'](_0x5d10fd);const _0x490704=_0x88fcdb==='error'?0x2710:0xbb8,_0x4645c0=setTimeout(()=>{removeToastById(_0x1905dd);},_0x490704),_0x590e35={'id':_0x1905dd,'el':_0x5d10fd,'timeoutId':_0x4645c0};return registerToast(_0x590e35),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5d10fd['classList']['add']('show');});}),_0x1905dd;},'showError'(_0x12da99){console['error'](_0x12da99);const _0x2c1e71=typeof _0x12da99==='string'?_0x12da99:_0x12da99['message']||'An\x20error\x20occurred';this['showToast'](_0x2c1e71,'error');},'showSuccess'(_0x3690c4){this['showToast'](_0x3690c4,'success');},'capitalize'(_0x221af9){if(!_0x221af9)return'';return _0x221af9['charAt'](0x0)['toUpperCase']()+_0x221af9['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3ca005){return escapeHtmlValue(_0x3ca005);},'ansiToHtml'(_0x10094f){if(_0x10094f===null||_0x10094f===undefined)return'';let _0x43a2d8=this['escapeHtml'](_0x10094f);const _0x1c267d={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2c3d3e={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x1f27c9=0x0;return _0x43a2d8=_0x43a2d8['replace'](/\x1b\[([0-9;]*)m/g,(_0x47f662,_0x27a6e9)=>{if(!_0x27a6e9||_0x27a6e9==='0'){const _0x15b7da='</span>'['repeat'](_0x1f27c9);return _0x1f27c9=0x0,_0x15b7da;}const _0x559be9=_0x27a6e9['split'](';'),_0x39e261=[];for(const _0x45dfc0 of _0x559be9){if(_0x45dfc0==='1')_0x39e261['push']('font-weight:bold');else{if(_0x45dfc0==='2')_0x39e261['push']('opacity:0.7');else{if(_0x45dfc0==='3')_0x39e261['push']('font-style:italic');else{if(_0x45dfc0==='4')_0x39e261['push']('text-decoration:underline');else{if(_0x45dfc0==='9')_0x39e261['push']('text-decoration:line-through');else{if(_0x1c267d[_0x45dfc0])_0x39e261['push']('color:'+_0x1c267d[_0x45dfc0]);else{if(_0x2c3d3e[_0x45dfc0])_0x39e261['push']('background-color:'+_0x2c3d3e[_0x45dfc0]);}}}}}}}if(_0x39e261['length']>0x0)return _0x1f27c9++,'<span\x20style=\x22'+_0x39e261['join'](';')+'\x22>';return'';}),_0x43a2d8+='</span>'['repeat'](_0x1f27c9),_0x43a2d8=_0x43a2d8['replace'](/\\u001b\[([0-9;]*)m/g,(_0x453a9f,_0x4fb797)=>{if(!_0x4fb797||_0x4fb797==='0')return'';const _0x31f8be=_0x4fb797['split'](';'),_0x19737a=[];for(const _0x394e4c of _0x31f8be){if(_0x394e4c==='1')_0x19737a['push']('font-weight:bold');else{if(_0x1c267d[_0x394e4c])_0x19737a['push']('color:'+_0x1c267d[_0x394e4c]);else{if(_0x2c3d3e[_0x394e4c])_0x19737a['push']('background-color:'+_0x2c3d3e[_0x394e4c]);}}}if(_0x19737a['length']>0x0)return'<span\x20style=\x22'+_0x19737a['join'](';')+'\x22>';return'';}),_0x43a2d8;},'showModal'({title:_0x205aa4,content:_0x198bcd,buttons:buttons=[]}){const _0x542e07='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x205aa4)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x198bcd+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x5a7b82,_0x3b078e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x5a7b82['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3b078e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x5a7b82['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x259342=document['createElement']('div');_0x259342['id']='utils-modal',_0x259342['className']='modal',_0x259342['innerHTML']=_0x542e07,document['body']['appendChild'](_0x259342);const _0x252dcd=document['getElementById']('utils-modal-close');_0x252dcd&&_0x252dcd['addEventListener']('click',()=>this['hideModal']());const _0xf0d880=_0x259342['querySelectorAll']('[data-btn-index]');_0xf0d880['forEach'](_0x57be92=>{const _0x274d69=parseInt(_0x57be92['dataset']['btnIndex']);buttons[_0x274d69]?.['onClick']&&_0x57be92['addEventListener']('click',buttons[_0x274d69]['onClick']);});const _0x556eeb=document['getElementById']('utils-modal-overlay');_0x556eeb&&_0x556eeb['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x40007e=document['getElementById']('utils-modal');_0x40007e&&_0x40007e['remove']();},'parseKeyValuePairs'(_0x42ec47){const _0x4ce900={};if(!_0x42ec47)return _0x4ce900;return _0x42ec47['split'](/\r?\n/)['map'](_0x2c0150=>_0x2c0150['trim']())['filter'](Boolean)['forEach'](_0xef59fc=>{const _0x56aa0b=_0xef59fc['indexOf']('=');if(_0x56aa0b>0x0){const _0x4073c6=_0xef59fc['slice'](0x0,_0x56aa0b)['trim'](),_0xac2162=_0xef59fc['slice'](_0x56aa0b+0x1)['trim']();if(_0x4073c6)_0x4ce900[_0x4073c6]=_0xac2162;}}),_0x4ce900;},'debounce'(_0x180351,_0x975276=0xfa){let _0x4f1371=null;return(..._0x187e98)=>{clearTimeout(_0x4f1371),_0x4f1371=setTimeout(()=>_0x180351['apply'](this,_0x187e98),_0x975276);};},'formatTimestamp'(_0x1ca4a1){if(!_0x1ca4a1)return'N/A';const _0x1d238d=new Date(_0x1ca4a1);return _0x1d238d['toLocaleDateString']()+'\x20'+_0x1d238d['toLocaleTimeString']();},'getQueryParams'(){const _0x5ef3fa=new URLSearchParams(window['location']['search']),_0xf0ba24={};for(const [_0x319097,_0xae80a7]of _0x5ef3fa){_0xf0ba24[_0x319097]=_0xae80a7;}return _0xf0ba24;},'formatDuration'(_0x10ba81,_0x378176){if(!_0x10ba81)return'N/A';const _0xe7f9ed=new Date(_0x10ba81),_0x28dcd3=_0x378176?new Date(_0x378176):new Date(),_0x2bfbc6=_0x28dcd3-_0xe7f9ed;if(_0x2bfbc6<0x0)return'0s';const _0x56903f=Math['floor'](_0x2bfbc6/0x3e8),_0x331624=Math['floor'](_0x56903f/0x3c),_0x2910b9=Math['floor'](_0x331624/0x3c),_0x1775e2=Math['floor'](_0x2910b9/0x18);if(_0x56903f<0x3c)return _0x56903f+'s';if(_0x331624<0x3c)return _0x331624+'m\x20'+_0x56903f%0x3c+'s';if(_0x2910b9<0x18)return _0x2910b9+'h\x20'+_0x331624%0x3c+'m\x20'+_0x56903f%0x3c+'s';return _0x1775e2+'d\x20'+_0x2910b9%0x18+'h\x20'+_0x331624%0x3c+'m';},'renderMarkdown'(_0x52c577,_0x2b3858={}){if(!_0x52c577)return'';_0x52c577=this['rewriteAttachmentLinks'](_0x52c577,_0x2b3858),_0x52c577=this['rewriteColorSyntax'](_0x52c577);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x52c577);}catch(_0x82ddd9){return console['error']('Markdown\x20parsing\x20error:',_0x82ddd9),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);}},'rewriteAttachmentLinks'(_0x2e860d,_0x529353={}){const _0x2d523a=typeof _0x529353['resolveAttachmentUrl']==='function'?_0x529353['resolveAttachmentUrl']:_0x529353['taskId']?_0x4b513c=>API_BASE+'/tasks/'+_0x529353['taskId']+'/attachments/'+encodeURIComponent(_0x4b513c):null;if(!_0x2d523a)return _0x2e860d;return String(_0x2e860d)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x2cd23d,_0x2f94da)=>{const _0x67ce56=String(_0x2f94da||'')['trim']();if(!_0x67ce56)return _0x2cd23d;let _0x454627=_0x67ce56;try{_0x454627=decodeURIComponent(_0x67ce56);}catch{}const _0x3c96ea=_0x2d523a(_0x454627);if(!_0x3c96ea)return _0x2cd23d;return']('+_0x3c96ea+')';});},'rewriteColorSyntax'(_0x50daef){if(!_0x50daef)return _0x50daef;return String(_0x50daef)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x329a26,_0x453618,_0x454585)=>{const _0x41c7db=this['rewriteColorSyntax'](_0x454585);return'<span\x20style=\x22color:\x20'+_0x453618+'\x22>'+_0x41c7db+'</span>';});},'renderMarkdownFallback'(_0x33b976,_0x1a9dcd={}){if(!_0x33b976)return'';_0x33b976=_0x33b976['replace'](/\r\n/g,'\x0a'),_0x33b976=_0x33b976['replace'](/\r/g,'\x0a'),_0x33b976=this['rewriteAttachmentLinks'](_0x33b976,_0x1a9dcd);let _0xe28d96=this['escapeHtml'](_0x33b976);return _0xe28d96=_0xe28d96['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0xe28d96=_0xe28d96['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0xe28d96=_0xe28d96['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0xe28d96=_0xe28d96['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0xe28d96=_0xe28d96['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0xe28d96=_0xe28d96['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0xe28d96=_0xe28d96['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0xe28d96=_0xe28d96['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0xe28d96=_0xe28d96['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0xe28d96=_0xe28d96['replace'](/\n\n/g,'</p><p>'),_0xe28d96=_0xe28d96['replace'](/\n/g,'<br>'),'<p>'+_0xe28d96+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8b70=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8b70),_0x1a8b70[0x6]=_0x1a8b70[0x6]&0xf|0x40,_0x1a8b70[0x8]=_0x1a8b70[0x8]&0x3f|0x80;const _0x5f3113=Array['from'](_0x1a8b70,_0x3d78fa=>_0x3d78fa['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5f3113['slice'](0x0,0x8)+'-'+_0x5f3113['slice'](0x8,0xc)+'-'+_0x5f3113['slice'](0xc,0x10)+'-'+_0x5f3113['slice'](0x10,0x14)+'-'+_0x5f3113['slice'](0x14);}};export class CustomSelect{constructor(_0xed9135,_0x25e107={}){this['nativeSelect']=_0xed9135,this['options']=_0x25e107,this['isOpen']=![],this['selectedValue']=_0xed9135['value']||'',this['searchable']=_0x25e107['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x586047=document['createElement']('div');_0x586047['className']='custom-select';const _0xef80e8=document['createElement']('div');_0xef80e8['className']='custom-select-trigger',_0xef80e8['setAttribute']('tabindex','0'),_0xef80e8['setAttribute']('role','button'),_0xef80e8['setAttribute']('aria-haspopup','listbox');const _0x602e0e=document['createElement']('span');_0x602e0e['className']='custom-select-trigger-text';const _0x6ef88a=document['createElement']('span');_0x6ef88a['className']='custom-select-arrow',_0x6ef88a['textContent']='▼',_0xef80e8['appendChild'](_0x602e0e),_0xef80e8['appendChild'](_0x6ef88a);const _0x1db61b=document['createElement']('div');_0x1db61b['className']='custom-select-dropdown',_0x1db61b['setAttribute']('role','listbox');if(this['searchable']){const _0x521a55=document['createElement']('div');_0x521a55['className']='custom-select-search';const _0x458e34=document['createElement']('input');_0x458e34['type']='text',_0x458e34['className']='custom-select-search-input',_0x458e34['placeholder']='Type\x20to\x20search...',_0x458e34['setAttribute']('aria-label','Search\x20options'),_0x458e34['addEventListener']('input',_0x30bf8c=>{this['searchQuery']=_0x30bf8c['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x458e34['addEventListener']('keydown',_0x55e031=>{if(_0x55e031['key']==='Escape')_0x55e031['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x55e031['key']==='Enter'){_0x55e031['preventDefault'](),_0x55e031['stopPropagation']();const _0x217481=_0x1db61b['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x217481){const _0x3fc79e=_0x217481['getAttribute']('data-value');this['select'](_0x3fc79e);}}}}),_0x521a55['appendChild'](_0x458e34),_0x1db61b['appendChild'](_0x521a55),this['searchInput']=_0x458e34;}const _0x2df9ba=document['createElement']('div');_0x2df9ba['className']='custom-select-options',_0x1db61b['appendChild'](_0x2df9ba),_0x586047['appendChild'](_0xef80e8),_0x586047['appendChild'](_0x1db61b),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x586047,this['nativeSelect']),this['wrapper']=_0x586047,this['trigger']=_0xef80e8,this['triggerText']=_0x602e0e,this['dropdown']=_0x1db61b,this['optionsContainer']=_0x2df9ba,_0xef80e8['addEventListener']('click',()=>this['toggle']()),_0xef80e8['addEventListener']('keydown',_0x395930=>this['handleKeydown'](_0x395930)),document['addEventListener']('click',_0x17c6b4=>{!_0x586047['contains'](_0x17c6b4['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4464f5=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4464f5['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x57acee=new MutationObserver(()=>{this['updateDisabledState']();});_0x57acee['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xf1fe60=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xf1fe60['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x37df9c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x37df9c),this['trigger']['setAttribute']('aria-disabled',_0x37df9c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x37df9c?'-1':'0'),_0x37df9c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x1c6756=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x377ca8=_0x1c6756['filter'](_0x27b679=>!_0x27b679['disabled']&&!_0x27b679['hidden']);_0x1c6756['forEach']((_0x3a245a,_0x31e76c)=>{const _0x35182f=document['createElement']('div');_0x35182f['className']='custom-select-option',_0x35182f['textContent']=_0x3a245a['textContent'],_0x35182f['setAttribute']('data-value',_0x3a245a['value']),_0x35182f['setAttribute']('data-index',_0x31e76c),_0x35182f['setAttribute']('role','option'),_0x3a245a['disabled']?_0x35182f['classList']['add']('disabled'):_0x35182f['addEventListener']('click',()=>this['select'](_0x3a245a['value'])),_0x3a245a['value']===this['selectedValue']&&_0x35182f['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x35182f),this['allOptions']['push']({'element':_0x35182f,'text':_0x3a245a['textContent']['toLowerCase'](),'value':_0x3a245a['value'],'disabled':_0x3a245a['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3b9207=this['searchInput']['parentElement'];_0x377ca8['length']>0x3?_0x3b9207['style']['display']='':_0x3b9207['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2951b9=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x2cf616=>{if(!_0x2951b9||_0x2cf616['disabled'])_0x2cf616['element']['style']['display']='';else{const _0x467e26=_0x2cf616['text']['includes'](_0x2951b9);_0x2cf616['element']['style']['display']=_0x467e26?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x4f2c00){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x4f2c00,this['nativeSelect']['value']=_0x4f2c00;const _0x20901f=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x20901f),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x505cd3=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x505cd3&&(this['triggerText']['textContent']=_0x505cd3['textContent'],_0x505cd3['disabled']||_0x505cd3['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x285275=>{_0x285275['getAttribute']('data-value')===this['selectedValue']?_0x285275['classList']['add']('selected'):_0x285275['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x4af203=window['getComputedStyle'](this['dropdown']);if(_0x4af203['position']==='fixed'){const _0x40868e=this['trigger']['getBoundingClientRect'](),_0x3d1226=parseInt(_0x4af203['maxHeight'])||0xc8,_0x362012=window['innerHeight'],_0x3f636e=_0x362012-_0x40868e['bottom'],_0x147212=_0x40868e['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x729355;_0x3f636e<_0x3d1226&&_0x147212>_0x3f636e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x362012-_0x40868e['top']+'px',_0x729355=Math['min'](_0x3d1226,_0x147212-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x40868e['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x729355=Math['min'](_0x3d1226,_0x3f636e-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px');if(this['optionsContainer']){let _0x4596fa=_0x729355;if(this['searchInput']){const _0x2c1595=this['searchInput']['parentElement'];_0x2c1595&&(_0x4596fa-=_0x2c1595['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4596fa)+'px';}this['dropdown']['style']['left']=_0x40868e['left']+'px',this['dropdown']['style']['width']=_0x40868e['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x3b47ea=this['searchInput']['parentElement'];_0x3b47ea&&_0x3b47ea['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x309c77){if(this['nativeSelect']['disabled'])return;if(_0x309c77['key']==='Enter'||_0x309c77['key']==='\x20')_0x309c77['preventDefault'](),this['toggle']();else _0x309c77['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x114369='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x114369),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fa50e=document['getElementById']('confirm-dialog-close'),_0x49200f=document['getElementById']('confirm-dialog-cancel'),_0x22f265=document['getElementById']('confirm-dialog-confirm'),_0x48433a=this['_modal']['querySelector']('.modal-overlay');_0x1fa50e['addEventListener']('click',()=>this['_resolve'](![])),_0x49200f['addEventListener']('click',()=>this['_resolve'](![])),_0x22f265['addEventListener']('click',()=>this['_resolve'](!![])),_0x48433a['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x463151=>{if(_0x463151['key']==='Escape')_0x463151['preventDefault'](),this['_resolve'](![]);else _0x463151['key']==='Enter'&&(_0x463151['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x4ee99b,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5120c9=>{this['_resolvePromise']=_0x5120c9,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x4ee99b;const _0x1245c0=document['getElementById']('confirm-dialog-cancel'),_0x410791=document['getElementById']('confirm-dialog-confirm');_0x1245c0['textContent']=cancelText,_0x410791['textContent']=confirmText,_0x410791['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x410791['focus']();});},'_resolve'(_0x40e725){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40e725),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x30e6f9,_0x56589d={}){this['container']=_0x30e6f9,this['options']={'placeholder':_0x56589d['placeholder']||'Type\x20to\x20search...','maxItems':_0x56589d['maxItems']||0x64,'loadItems':_0x56589d['loadItems']||(async()=>[]),'renderItem':_0x56589d['renderItem']||(_0x34174d=>({'primary':String(_0x34174d),'secondary':''})),'onSelect':_0x56589d['onSelect']||(()=>{}),'filterItems':_0x56589d['filterItems']||null,'getItemValue':_0x56589d['getItemValue']||(_0x4932ad=>_0x4932ad),'sortItems':_0x56589d['sortItems']||null,'debounceMs':_0x56589d['debounceMs']||0xc8,'minCharsForSearch':_0x56589d['minCharsForSearch']||0x0,'emptyMessage':_0x56589d['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x56589d['loadingMessage']||'Loading...','preload':_0x56589d['preload']!==![],'searchMode':_0x56589d['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x42eac9=>this['onBlur'](_0x42eac9)),this['input']['addEventListener']('input',_0x2d0072=>this['onInput'](_0x2d0072)),this['input']['addEventListener']('keydown',_0x2b4541=>this['onKeydown'](_0x2b4541)),this['clearBtn']['addEventListener']('mousedown',_0x52b4be=>{_0x52b4be['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x2ef3b1=>{_0x2ef3b1['preventDefault']();}),document['addEventListener']('click',_0x5c5a26=>{!this['wrapper']['contains'](_0x5c5a26['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x2aaefa){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x2aaefa);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x1191e8){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x21e2ba){const _0x4f8664=_0x21e2ba['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4f8664);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4f8664):this['loadAndShow'](_0x4f8664);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x24f7c0){switch(_0x24f7c0['key']){case'ArrowDown':_0x24f7c0['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x24f7c0['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x24f7c0['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x24f7c0['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2f71c3){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3500=this['selectedIndex']+_0x2f71c3;if(_0x1a3500>=0x0&&_0x1a3500<this['filteredItems']['length']){this['selectedIndex']=_0x1a3500,this['updateSelectionHighlight']();const _0x25c747=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x25c747[this['selectedIndex']]&&_0x25c747[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1353a5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1353a5['forEach']((_0x319289,_0x365bb0)=>{_0x319289['classList']['toggle']('keyboard-selected',_0x365bb0===this['selectedIndex']);});}async['loadAndShow'](_0x3e4cb0){this['showLoading']();try{const _0x32ed23=await this['options']['loadItems'](_0x3e4cb0);if(this['options']['searchMode']==='server'){let _0x2cd123=_0x32ed23;this['options']['sortItems']&&(_0x2cd123=this['options']['sortItems']([..._0x32ed23]));this['filteredItems']=_0x2cd123;const _0x52ccad=this['filteredItems']['length']>=this['options']['maxItems'];_0x52ccad&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x52ccad),this['open']();}else this['allItems']=_0x32ed23,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x3e4cb0);}catch(_0x62ebd1){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x62ebd1),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x5ca140){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x5ca140):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x24b99b=this['filteredItems']['length']>=this['options']['maxItems'];_0x24b99b&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x24b99b),this['open']();}['renderItems'](_0xb21a23){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x4039ba,_0x534c5c)=>{const _0x492e31=document['createElement']('div');_0x492e31['className']='autocomplete-select-item',_0x492e31['setAttribute']('role','option'),_0x492e31['setAttribute']('data-index',_0x534c5c);const _0x311b19=this['options']['renderItem'](_0x4039ba);let _0x18aefc='';_0x311b19['icon']&&(_0x18aefc='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x311b19['iconClass']||'')+'\x22>'+_0x311b19['icon']+'</span>'),_0x492e31['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x18aefc+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x311b19['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x311b19['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x311b19['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x492e31['addEventListener']('click',()=>{this['selectItem'](_0x4039ba);}),_0x492e31['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x534c5c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x492e31);}),_0xb21a23?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x3cb7a4){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x3cb7a4)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2e1095){this['selectedItem']=_0x2e1095;const _0x4d3636=this['options']['renderItem'](_0x2e1095);this['input']['value']=_0x4d3636['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2e1095);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x2831d9){if(_0x2831d9){this['selectedItem']=_0x2831d9;const _0x550b7a=this['options']['renderItem'](_0x2831d9);this['input']['value']=_0x550b7a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x68c1ba){this['allItems']=_0x68c1ba,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x57ccc1){this['input']['placeholder']=_0x57ccc1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4c2eef=null){const _0x46cc7a=document['getElementById']('admin-menu-container'),_0x5d0cdb=document['getElementById']('admin-menu-btn'),_0x4f3c51=document['getElementById']('admin-menu');if(!_0x46cc7a||!_0x5d0cdb||!_0x4f3c51)return;try{!_0x4c2eef&&(_0x4c2eef=await API['getCurrentUser']());if(_0x4c2eef){const _0x47a494=window['Permissions'],_0x3e87ca=_0x47a494['hasServerPermission'](_0x4c2eef,'*')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:manage')||_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')||_0x47a494['hasTeamPermission'](_0x4c2eef,'teams:manage')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:view_details');if(!_0x3e87ca)return;_0x46cc7a['hidden']=![];if(!_0x47a494['hasServerPermission'](_0x4c2eef,'*')){const _0x261545=_0x4f3c51['querySelectorAll']('.admin-menu-item');_0x261545['forEach'](_0x30dfc4=>{const _0x4759e1=_0x30dfc4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x4759e1==='Users'&&!_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Skills'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Settings'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Administration'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Git\x20History'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Roles'&&(_0x30dfc4['hidden']=!![]);});}_0x5d0cdb['addEventListener']('click',_0x2a3816=>{_0x2a3816['stopPropagation']();const _0x5290cc=document['getElementById']('actions-menu');if(_0x5290cc)_0x5290cc['hidden']=!![];_0x4f3c51['hidden']=!_0x4f3c51['hidden'];}),document['addEventListener']('click',_0x363a39=>{!_0x4f3c51['hidden']&&!_0x5d0cdb['contains'](_0x363a39['target'])&&!_0x4f3c51['contains'](_0x363a39['target'])&&(_0x4f3c51['hidden']=!![]);}),document['addEventListener']('keydown',_0x22c2aa=>{_0x22c2aa['key']==='Escape'&&!_0x4f3c51['hidden']&&(_0x4f3c51['hidden']=!![]);});}}catch(_0x460654){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x460654['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};