@profoundlogic/coderflow-server 0.8.2 → 0.8.3

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 (179) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.js +1 -1
  142. package/dist/web-ui/public/agent-event-parser.js +1 -1
  143. package/dist/web-ui/public/app.js +1 -1
  144. package/dist/web-ui/public/approve-dialog.js +1 -1
  145. package/dist/web-ui/public/automation-links.js +1 -1
  146. package/dist/web-ui/public/automation-schedule.js +1 -1
  147. package/dist/web-ui/public/comments-widget.js +1 -1
  148. package/dist/web-ui/public/diff-utils.js +1 -1
  149. package/dist/web-ui/public/environments.html +19 -0
  150. package/dist/web-ui/public/environments.js +1 -1
  151. package/dist/web-ui/public/feedback-widget.js +1 -1
  152. package/dist/web-ui/public/file-selection-tree.js +1 -1
  153. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  154. package/dist/web-ui/public/git-history.js +1 -1
  155. package/dist/web-ui/public/git-status.js +1 -1
  156. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  157. package/dist/web-ui/public/index.js +1 -1
  158. package/dist/web-ui/public/login.js +1 -1
  159. package/dist/web-ui/public/markdown-editor.js +1 -1
  160. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  161. package/dist/web-ui/public/modal-maximize.js +1 -1
  162. package/dist/web-ui/public/notifications.js +1 -1
  163. package/dist/web-ui/public/permissions.js +1 -1
  164. package/dist/web-ui/public/pr-dialog.js +1 -1
  165. package/dist/web-ui/public/roles.js +1 -1
  166. package/dist/web-ui/public/settings.js +1 -1
  167. package/dist/web-ui/public/setup-password.js +1 -1
  168. package/dist/web-ui/public/skills.js +1 -1
  169. package/dist/web-ui/public/sse-client.js +1 -1
  170. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  171. package/dist/web-ui/public/styles.css +10 -0
  172. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  173. package/dist/web-ui/public/task.js +1 -1
  174. package/dist/web-ui/public/teams.js +1 -1
  175. package/dist/web-ui/public/terminal.js +1 -1
  176. package/dist/web-ui/public/theme.js +1 -1
  177. package/dist/web-ui/public/users.js +1 -1
  178. package/dist/web-ui/public/variant-grouping.js +1 -1
  179. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0xe60347=window['location']['pathname'],_0x4e5baf=_0xe60347['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x4e5baf)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x4e5baf[0x1]),_0x4e5baf[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xf02f52={}){const _0x5c72d5=new URLSearchParams();_0xf02f52['userId']&&_0x5c72d5['set']('userId',String(_0xf02f52['userId']));_0xf02f52['automation']&&_0x5c72d5['set']('automation',String(_0xf02f52['automation']));const _0x2d024f=API_BASE+'/tasks/stats'+(_0x5c72d5['toString']()?'?'+_0x5c72d5['toString']():''),_0x102d61=await fetch(_0x2d024f);if(!_0x102d61['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x102d61['statusText']);return await _0x102d61['json']();},async 'getTasks'(_0x1d0cc3={}){const _0x433a40=new URLSearchParams();_0x1d0cc3['status']&&_0x433a40['set']('status',String(_0x1d0cc3['status']));_0x1d0cc3['environment']&&_0x433a40['set']('environment',String(_0x1d0cc3['environment']));_0x1d0cc3['automation']&&_0x433a40['set']('automation',String(_0x1d0cc3['automation']));if(_0x1d0cc3['include']){const _0x1c4525=Array['isArray'](_0x1d0cc3['include'])?_0x1d0cc3['include']['join'](','):String(_0x1d0cc3['include']);_0x1c4525&&_0x433a40['set']('include',_0x1c4525);}_0x1d0cc3['filter']&&_0x433a40['set']('filter',String(_0x1d0cc3['filter']));_0x1d0cc3['page']&&_0x433a40['set']('page',String(_0x1d0cc3['page']));_0x1d0cc3['limit']&&_0x433a40['set']('limit',String(_0x1d0cc3['limit']));_0x1d0cc3['userId']&&_0x433a40['set']('userId',String(_0x1d0cc3['userId']));_0x1d0cc3['search']&&_0x433a40['set']('search',String(_0x1d0cc3['search']));_0x1d0cc3['includeChildTasks']&&_0x433a40['set']('includeChildTasks','true');const _0x51ffb5=API_BASE+'/tasks'+(_0x433a40['toString']()?'?'+_0x433a40['toString']():''),_0x555d2c=await fetch(_0x51ffb5);if(!_0x555d2c['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x555d2c['statusText']);return await _0x555d2c['json']();},async 'getAutomations'(_0x47be7c={}){const _0x2912b1=new URLSearchParams();_0x47be7c['environment']&&_0x2912b1['set']('environment',String(_0x47be7c['environment']));const _0xc3bf79=await fetch(API_BASE+'/api/automations'+(_0x2912b1['toString']()?'?'+_0x2912b1['toString']():''));if(!_0xc3bf79['ok']){const _0x56fb5f=await _0xc3bf79['json']()['catch'](()=>({}));throw new Error(_0x56fb5f['message']||_0x56fb5f['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0xc3bf79['statusText']);}return await _0xc3bf79['json']();},async 'getAutomation'(_0x15ba31){const _0x4c1b89=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x15ba31));if(!_0x4c1b89['ok']){const _0x4077e2=await _0x4c1b89['json']()['catch'](()=>({}));throw new Error(_0x4077e2['message']||_0x4077e2['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x4c1b89['statusText']);}return await _0x4c1b89['json']();},async 'createAutomation'(_0x233012){const _0x54489c=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x233012||{})});if(!_0x54489c['ok']){const _0x266bb8=await _0x54489c['json']()['catch'](()=>({}));throw new Error(_0x266bb8['message']||_0x266bb8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x54489c['statusText']);}return await _0x54489c['json']();},async 'updateAutomation'(_0x1fc2b7,_0xeb4ab6){const _0x5b3518=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1fc2b7),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xeb4ab6||{})});if(!_0x5b3518['ok']){const _0x25fddc=await _0x5b3518['json']()['catch'](()=>({}));throw new Error(_0x25fddc['message']||_0x25fddc['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5b3518['statusText']);}return await _0x5b3518['json']();},async 'deleteAutomation'(_0x54d9e1){const _0x38a4eb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x54d9e1),{'method':'DELETE'});if(!_0x38a4eb['ok']){const _0x563176=await _0x38a4eb['json']()['catch'](()=>({}));throw new Error(_0x563176['message']||_0x563176['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x38a4eb['statusText']);}return await _0x38a4eb['json']();},async 'triggerAutomation'(_0x4d2170){const _0x44b585=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4d2170)+'/trigger',{'method':'POST'});if(!_0x44b585['ok']){const _0x66d305=await _0x44b585['json']()['catch'](()=>({}));throw new Error(_0x66d305['message']||_0x66d305['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x44b585['statusText']);}return await _0x44b585['json']();},async 'setAutomationEnabled'(_0x4307a9,_0x585d90){const _0x245e26=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4307a9)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x585d90})});if(!_0x245e26['ok']){const _0x2ff61f=await _0x245e26['json']()['catch'](()=>({}));throw new Error(_0x2ff61f['message']||_0x2ff61f['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x245e26['statusText']);}return await _0x245e26['json']();},async 'getAutomationHistory'(_0x57b199,_0x24f577=0x32){const _0x466c5d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x57b199)+'/history?limit='+encodeURIComponent(String(_0x24f577)));if(!_0x466c5d['ok']){const _0x2f99cb=await _0x466c5d['json']()['catch'](()=>({}));throw new Error(_0x2f99cb['message']||_0x2f99cb['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x466c5d['statusText']);}return await _0x466c5d['json']();},async 'getTask'(_0x274f40,_0x53cedc={}){const _0x4bbf29=new URLSearchParams();if(_0x53cedc['include']){const _0x51a3bb=Array['isArray'](_0x53cedc['include'])?_0x53cedc['include']['join'](','):String(_0x53cedc['include']);if(_0x51a3bb)_0x4bbf29['set']('include',_0x51a3bb);}const _0x2d2559=await fetch(API_BASE+'/tasks/'+_0x274f40+(_0x4bbf29['toString']()?'?'+_0x4bbf29['toString']():''));if(!_0x2d2559['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x2d2559['statusText']);return await _0x2d2559['json']();},async 'getTaskResults'(_0x229952){const _0x596e39=await fetch(API_BASE+'/tasks/'+_0x229952+'/results');if(!_0x596e39['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x596e39['statusText']);return await _0x596e39['json']();},async 'getTaskPatches'(_0xd10ccc){const _0x1e2222=await fetch(API_BASE+'/tasks/'+_0xd10ccc+'/patches');if(!_0x1e2222['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x1e2222['statusText']);return await _0x1e2222['json']();},async 'getTaskAttachments'(_0x1dfae2){const _0x9640e0=await fetch(API_BASE+'/tasks/'+_0x1dfae2+'/attachments');if(!_0x9640e0['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x9640e0['statusText']);return await _0x9640e0['json']();},async 'uploadAttachments'(_0x236a68,_0x38ed5c){const _0xc063c9=new FormData();for(const _0xedbffe of _0x38ed5c){_0xc063c9['append']('attachments',_0xedbffe);}const _0x38b68d=await fetch(API_BASE+'/tasks/'+_0x236a68+'/attachments',{'method':'POST','body':_0xc063c9});if(!_0x38b68d['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x38b68d['statusText']);return await _0x38b68d['json']();},async 'isAINameGenerationAvailable'(){try{const _0x230e59=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x230e59['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x230e59['json']();}catch(_0x2fd878){return{'available':![],'reason':_0x2fd878['message']};}},async 'generateTaskName'(_0x42111a){try{const _0x2cd5fa=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x42111a})});return await _0x2cd5fa['json']();}catch(_0x570470){return{'success':![],'error':_0x570470['message']};}},async 'createTask'(_0x2b3e05){let _0x38d0b5,_0x318008={};if(_0x2b3e05['files']&&_0x2b3e05['files']['length']>0x0){const _0x560528=new FormData();for(const [_0x3d728b,_0x1cea81]of Object['entries'](_0x2b3e05)){if(_0x3d728b!=='files'){if(_0x1cea81==null)continue;typeof _0x1cea81==='object'?_0x560528['append'](_0x3d728b,JSON['stringify'](_0x1cea81)):_0x560528['append'](_0x3d728b,String(_0x1cea81));}}for(const _0x1711ac of _0x2b3e05['files']){_0x560528['append']('attachments',_0x1711ac);}_0x38d0b5=_0x560528;}else _0x318008['Content-Type']='application/json',_0x38d0b5=JSON['stringify'](_0x2b3e05);const _0x411659=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x318008,'body':_0x38d0b5});if(!_0x411659['ok']){const _0x201ab2=await _0x411659['json'](),_0x2879b5=new Error(_0x201ab2['error']||'Failed\x20to\x20create\x20task:\x20'+_0x411659['statusText']),{message:_0x43e583,..._0x142bdb}=_0x201ab2;Object['assign'](_0x2879b5,_0x142bdb);throw _0x2879b5;}return await _0x411659['json']();},async 'createTestTask'(_0x230595){const _0x2f3096=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x230595)});if(!_0x2f3096['ok']){const _0x23463c=await _0x2f3096['json']();throw new Error(_0x23463c['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x2f3096['statusText']);}return await _0x2f3096['json']();},async 'createEphemeralTest'(_0x4baeae){const _0x493ee9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4baeae)});if(!_0x493ee9['ok']){const _0x502a31=await _0x493ee9['json']();throw new Error(_0x502a31['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x493ee9['statusText']);}return await _0x493ee9['json']();},async 'createDeployTask'(_0x1af497){const _0x41d025=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1af497)});if(!_0x41d025['ok']){const _0x504d14=await _0x41d025['json']();throw new Error(_0x504d14['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x41d025['statusText']);}return await _0x41d025['json']();},async 'getEnvironments'(){const _0x335945=await fetch(API_BASE+'/environments');if(!_0x335945['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x335945['statusText']);return await _0x335945['json']();},async 'getEnvironment'(_0x1a034e){const _0xad6ee8=await fetch(API_BASE+'/environments/'+_0x1a034e);if(!_0xad6ee8['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0xad6ee8['statusText']);return await _0xad6ee8['json']();},async 'getEnvironmentRepoHistory'(_0x1d291f,_0x22a130,_0x294906={}){if(!_0x1d291f||!_0x22a130)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x29b9ba=new URLSearchParams();if(_0x294906['limit'])_0x29b9ba['set']('limit',String(_0x294906['limit']));if(_0x294906['offset'])_0x29b9ba['set']('offset',String(_0x294906['offset']));if(_0x294906['search'])_0x29b9ba['set']('search',String(_0x294906['search']));if(_0x294906['branch'])_0x29b9ba['set']('branch',String(_0x294906['branch']));const _0xccc3ed=API_BASE+'/environments/'+encodeURIComponent(_0x1d291f)+'/repos/'+encodeURIComponent(_0x22a130)+'/git/history',_0x293aa3=await fetch(''+_0xccc3ed+(_0x29b9ba['toString']()?'?'+_0x29b9ba['toString']():''));if(!_0x293aa3['ok']){const _0x22e588=await _0x293aa3['json']()['catch'](()=>({}));throw new Error(_0x22e588['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x293aa3['statusText']);}return await _0x293aa3['json']();},async 'getEnvironmentRepoCommit'(_0x4a425e,_0x17b3ab,_0x473e59){if(!_0x4a425e||!_0x17b3ab||!_0x473e59)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xf7c7f2=API_BASE+'/environments/'+encodeURIComponent(_0x4a425e)+'/repos/'+encodeURIComponent(_0x17b3ab)+'/git/commits/'+encodeURIComponent(_0x473e59),_0x1da249=await fetch(_0xf7c7f2);if(!_0x1da249['ok']){const _0x22c492=await _0x1da249['json']()['catch'](()=>({}));throw new Error(_0x22c492['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1da249['statusText']);}return await _0x1da249['json']();},async 'getEnvironmentRepoBranches'(_0x26e52f,_0x251e53){if(!_0x26e52f||!_0x251e53)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5200d4=API_BASE+'/environments/'+encodeURIComponent(_0x26e52f)+'/repos/'+encodeURIComponent(_0x251e53)+'/git/branches',_0x588c46=await fetch(_0x5200d4);if(!_0x588c46['ok']){const _0x32159f=await _0x588c46['json']()['catch'](()=>({}));throw new Error(_0x32159f['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x588c46['statusText']);}return await _0x588c46['json']();},async 'revertEnvironmentRepoCommit'(_0x3dfb12,_0x4dcbc5,_0x2cadd7,_0x445dba={}){if(!_0x3dfb12||!_0x4dcbc5||!_0x2cadd7)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5c6e2a=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x3dfb12)+'/repos/'+encodeURIComponent(_0x4dcbc5)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2cadd7,..._0x445dba})});if(!_0x5c6e2a['ok']){const _0x534552=await _0x5c6e2a['json']()['catch'](()=>({}));throw new Error(_0x534552['message']||_0x534552['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5c6e2a['statusText']);}return await _0x5c6e2a['json']();},async 'getTemplates'(_0x5a1c93={}){const _0x16314c=new URLSearchParams();if(_0x5a1c93['include']){const _0x14cc65=Array['isArray'](_0x5a1c93['include'])?_0x5a1c93['include']['join'](','):String(_0x5a1c93['include']);if(_0x14cc65)_0x16314c['set']('include',_0x14cc65);}const _0x4c4383=await fetch(API_BASE+'/templates'+(_0x16314c['toString']()?'?'+_0x16314c['toString']():''));if(!_0x4c4383['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x4c4383['statusText']);return await _0x4c4383['json']();},async 'getTemplatesForEnvironment'(_0x23dded,_0xdf387d={}){if(!_0x23dded)throw new Error('Environment\x20name\x20is\x20required');const _0x299d74=new URLSearchParams();if(_0xdf387d['include']){const _0x5ab807=Array['isArray'](_0xdf387d['include'])?_0xdf387d['include']['join'](','):String(_0xdf387d['include']);if(_0x5ab807)_0x299d74['set']('include',_0x5ab807);}const _0x6fde66=await fetch(API_BASE+'/templates/'+_0x23dded+(_0x299d74['toString']()?'?'+_0x299d74['toString']():''));if(!_0x6fde66['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x23dded+':\x20'+_0x6fde66['statusText']);return await _0x6fde66['json']();},async 'getTemplate'(_0x64e7aa,_0x281825,_0x157ca0={}){if(!_0x64e7aa||!_0x281825)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x574145=new URLSearchParams();if(_0x157ca0['include']){const _0x5b213d=Array['isArray'](_0x157ca0['include'])?_0x157ca0['include']['join'](','):String(_0x157ca0['include']);if(_0x5b213d)_0x574145['set']('include',_0x5b213d);}const _0x39378e=await fetch(API_BASE+'/templates/'+_0x64e7aa+'/'+_0x281825+(_0x574145['toString']()?'?'+_0x574145['toString']():''));if(!_0x39378e['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x39378e['statusText']);return await _0x39378e['json']();},async 'getTaskLogs'(_0x1d42fd,_0x523e4d={}){if(!_0x1d42fd)throw new Error('Task\x20ID\x20is\x20required');const _0x288b53=new URLSearchParams();_0x523e4d['tail']&&_0x288b53['set']('tail',String(_0x523e4d['tail']));const _0x319a8f=await fetch(API_BASE+'/tasks/'+_0x1d42fd+'/logs'+(_0x288b53['toString']()?'?'+_0x288b53['toString']():''));if(!_0x319a8f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x319a8f['statusText']);return await _0x319a8f['text']();},async 'getContainers'(){const _0x505882=await fetch(API_BASE+'/containers');if(!_0x505882['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x505882['statusText']);return await _0x505882['json']();},async 'getContainer'(_0x248763){const _0x47bf2a=await fetch(API_BASE+'/containers/'+_0x248763);if(!_0x47bf2a['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x47bf2a['statusText']);return await _0x47bf2a['json']();},async 'startInteractiveContainer'(_0x4c3bdb){const _0x3caf78=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c3bdb)});if(!_0x3caf78['ok']){const _0x1d7e1c=await _0x3caf78['json']()['catch'](()=>({}));throw new Error(_0x1d7e1c['message']||'Failed\x20to\x20start\x20container:\x20'+_0x3caf78['statusText']);}return await _0x3caf78['json']();},async 'startContainerCodeServer'(_0x404c8e,_0xe9e765={}){if(!_0x404c8e)throw new Error('Container\x20ID\x20is\x20required');const _0x5c6b49=new URLSearchParams();_0xe9e765['theme']&&_0x5c6b49['set']('theme',_0xe9e765['theme']);const _0x2da24a=await fetch(API_BASE+'/containers/'+_0x404c8e+'/code-server'+(_0x5c6b49['toString']()?'?'+_0x5c6b49['toString']():'')),_0x3977d=await _0x2da24a['json']()['catch'](()=>({}));if(!_0x2da24a['ok'])throw new Error(_0x3977d['message']||_0x3977d['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x2da24a['statusText']);return _0x3977d;},async 'stopContainer'(_0x33beb6){const _0x4daece=await fetch(API_BASE+'/containers/'+_0x33beb6,{'method':'DELETE'});if(!_0x4daece['ok']){const _0x9d2880=await _0x4daece['json']()['catch'](()=>({}));throw new Error(_0x9d2880['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x4daece['statusText']);}return await _0x4daece['json']();},async 'stopTask'(_0x5ea0d1){if(!_0x5ea0d1)throw new Error('Task\x20ID\x20is\x20required');const _0x1c2a10=await fetch(API_BASE+'/tasks/'+_0x5ea0d1+'/stop',{'method':'POST'});if(!_0x1c2a10['ok']){const _0x15939c=await _0x1c2a10['json']()['catch'](()=>({}));throw new Error(_0x15939c['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x1c2a10['statusText']);}return await _0x1c2a10['json']();},async 'interruptTask'(_0x3ce681){if(!_0x3ce681)throw new Error('Task\x20ID\x20is\x20required');const _0x11630b=await fetch(API_BASE+'/tasks/'+_0x3ce681+'/interrupt',{'method':'POST'});if(!_0x11630b['ok']){const _0xc8b39d=await _0x11630b['json']()['catch'](()=>({}));throw new Error(_0xc8b39d['error']||_0xc8b39d['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x11630b['statusText']);}return await _0x11630b['json']();},async 'startTask'(_0x55e832){if(!_0x55e832)throw new Error('Task\x20ID\x20is\x20required');const _0x1889e4=await fetch(API_BASE+'/tasks/'+_0x55e832+'/start',{'method':'POST'});if(!_0x1889e4['ok']){const _0x1e9a9e=await _0x1889e4['json']()['catch'](()=>({}));throw new Error(_0x1e9a9e['error']||'Failed\x20to\x20start\x20task:\x20'+_0x1889e4['statusText']);}return await _0x1889e4['json']();},async 'deleteTask'(_0x393e53){if(!_0x393e53)throw new Error('Task\x20ID\x20is\x20required');const _0x219ce1=await fetch(API_BASE+'/tasks/'+_0x393e53,{'method':'DELETE'});if(!_0x219ce1['ok']){const _0x4d52e7=await _0x219ce1['json']()['catch'](()=>({}));throw new Error(_0x4d52e7['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x219ce1['statusText']);}return await _0x219ce1['json']();},async 'refreshTasksFromDisk'(){const _0x841006=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x841006['ok']){const _0x33a43d=await _0x841006['json']()['catch'](()=>({}));throw new Error(_0x33a43d['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x841006['statusText']);}return await _0x841006['json']();},async 'approveTask'(_0x5472d7,_0x4e1c84={}){if(!_0x5472d7)throw new Error('Task\x20ID\x20is\x20required');const _0x283c61={'commit_message':_0x4e1c84['commit_message']||'','pull':_0x4e1c84['pull']??![],'push':_0x4e1c84['push']??![],'conflict_strategy':_0x4e1c84['conflict_strategy']||'rebase'};_0x4e1c84['new_branch']&&(_0x283c61['new_branch']=_0x4e1c84['new_branch']);const _0x36a44e=await fetch(API_BASE+'/tasks/'+_0x5472d7+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x283c61)});if(!_0x36a44e['ok']){const _0x2d37d6=await _0x36a44e['json']()['catch'](()=>({}));let _0x188019=_0x2d37d6['error']||_0x2d37d6['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x36a44e['statusText'];if(_0x2d37d6['results']&&Array['isArray'](_0x2d37d6['results'])){const _0x3f906b=_0x2d37d6['results']['filter'](_0x41dffa=>!_0x41dffa['success']&&_0x41dffa['error']);_0x3f906b['length']>0x0&&(_0x188019=_0x3f906b[0x0]['error']);}const _0x563bac=new Error(_0x188019);_0x563bac['hasConflicts']=_0x2d37d6['results']?.['some'](_0x40326e=>_0x40326e['conflict'])||![];throw _0x563bac;}return await _0x36a44e['json']();},async 'getPullRequestInfo'(_0x42c683){if(!_0x42c683)throw new Error('Task\x20ID\x20is\x20required');const _0x4780bd=await fetch(API_BASE+'/tasks/'+_0x42c683+'/pull-request-info');if(!_0x4780bd['ok']){const _0x58d83e=await _0x4780bd['json']()['catch'](()=>({}));throw new Error(_0x58d83e['error']||_0x58d83e['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4780bd['statusText']);}return await _0x4780bd['json']();},async 'createPullRequests'(_0xb710de,_0x562872){if(!_0xb710de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x562872||!Array['isArray'](_0x562872))throw new Error('repos\x20array\x20is\x20required');const _0x1e24eb=await fetch(API_BASE+'/tasks/'+_0xb710de+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x562872})});if(!_0x1e24eb['ok']){const _0xc7fe26=await _0x1e24eb['json']()['catch'](()=>({}));let _0x3ca286=_0xc7fe26['error']||_0xc7fe26['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x1e24eb['statusText'];if(_0xc7fe26['results']&&Array['isArray'](_0xc7fe26['results'])){const _0x320855=_0xc7fe26['results']['filter'](_0x594b13=>!_0x594b13['success']&&_0x594b13['error']);_0x320855['length']>0x0&&(_0x3ca286=_0x320855[0x0]['error']);}throw new Error(_0x3ca286);}return await _0x1e24eb['json']();},async 'syncRepos'(_0x1b129c){if(!_0x1b129c)throw new Error('Task\x20ID\x20is\x20required');const _0x5a8a24=await fetch(API_BASE+'/tasks/'+_0x1b129c+'/sync-repos',{'method':'POST'});if(!_0x5a8a24['ok']){const _0x445bb7=await _0x5a8a24['json']()['catch'](()=>({}));throw new Error(_0x445bb7['error']||_0x445bb7['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5a8a24['statusText']);}return await _0x5a8a24['json']();},async 'getIbmiSyncInfo'(_0xe6470d){if(!_0xe6470d)throw new Error('Task\x20ID\x20is\x20required');const _0x5360e9=await fetch(API_BASE+'/tasks/'+_0xe6470d+'/ibmi-sync-info');if(!_0x5360e9['ok']){const _0x27bd5f=await _0x5360e9['json']()['catch'](()=>({}));throw new Error(_0x27bd5f['error']||_0x27bd5f['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x5360e9['json']();},async 'getSyncFiles'(_0x465e64){if(!_0x465e64)throw new Error('Task\x20ID\x20is\x20required');const _0x159e36=await fetch(API_BASE+'/tasks/'+_0x465e64+'/sync-to-ibmi/files');if(!_0x159e36['ok']){const _0x1ca8d2=await _0x159e36['json']()['catch'](()=>({}));throw new Error(_0x1ca8d2['error']||_0x1ca8d2['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x159e36['json']();},async 'syncToIbmi'(_0xadd8a2,_0x36fdd5,_0x3339b4=null,_0x1d749a=null,_0x462cd1=null){if(!_0xadd8a2)throw new Error('Task\x20ID\x20is\x20required');const _0x21ad94={'library':_0x36fdd5};if(_0x3339b4)_0x21ad94['user']=_0x3339b4;if(_0x1d749a)_0x21ad94['password']=_0x1d749a;if(_0x462cd1)_0x21ad94['files']=_0x462cd1;const _0x848c81=await fetch(API_BASE+'/tasks/'+_0xadd8a2+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21ad94)});if(!_0x848c81['ok']){const _0x59d121=await _0x848c81['json']()['catch'](()=>({}));throw new Error(_0x59d121['error']||_0x59d121['message']||'Sync\x20failed');}return await _0x848c81['json']();},async 'getIbmiSyncLog'(_0x53d411){if(!_0x53d411)throw new Error('Task\x20ID\x20is\x20required');const _0x1fc7a5=await fetch(API_BASE+'/tasks/'+_0x53d411+'/ibmi-sync-log');if(!_0x1fc7a5['ok']){const _0x2dcc52=await _0x1fc7a5['json']()['catch'](()=>({}));throw new Error(_0x2dcc52['error']||_0x2dcc52['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x1fc7a5['json']();},async 'pullChanges'(_0x4ebc20){if(!_0x4ebc20)throw new Error('Task\x20ID\x20is\x20required');const _0x843ff6=await fetch(API_BASE+'/tasks/'+_0x4ebc20+'/pull-changes',{'method':'POST'});if(!_0x843ff6['ok']){const _0x246f7d=await _0x843ff6['json']()['catch'](()=>({}));throw new Error(_0x246f7d['error']||_0x246f7d['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x843ff6['statusText']);}return await _0x843ff6['json']();},async 'readFile'(_0x3c16b9,_0x1872c3){if(!_0x3c16b9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1872c3)throw new Error('File\x20path\x20is\x20required');const _0xce9d50=await fetch(API_BASE+'/tasks/'+_0x3c16b9+'/files?path='+encodeURIComponent(_0x1872c3));if(!_0xce9d50['ok']){const _0xc5487c=await _0xce9d50['json']()['catch'](()=>({}));throw new Error(_0xc5487c['error']||_0xc5487c['message']||'Failed\x20to\x20read\x20file:\x20'+_0xce9d50['statusText']);}return await _0xce9d50['json']();},'getTaskFileDownloadUrl'(_0x1bcdd2,_0x18bdc4){if(!_0x1bcdd2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x18bdc4)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x1bcdd2+'/files/download?path='+encodeURIComponent(_0x18bdc4);},async 'writeFile'(_0x30c4cd,_0x6d7248,_0x300292){if(!_0x30c4cd)throw new Error('Task\x20ID\x20is\x20required');if(!_0x6d7248)throw new Error('File\x20path\x20is\x20required');if(_0x300292===undefined)throw new Error('Content\x20is\x20required');const _0x58ddf4=await fetch(API_BASE+'/tasks/'+_0x30c4cd+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x6d7248,'content':_0x300292})});if(!_0x58ddf4['ok']){const _0x1b1a92=await _0x58ddf4['json']()['catch'](()=>({}));throw new Error(_0x1b1a92['error']||_0x1b1a92['message']||'Failed\x20to\x20write\x20file:\x20'+_0x58ddf4['statusText']);}return await _0x58ddf4['json']();},async 'uploadTaskFiles'(_0x5b3f3b,_0x51163c,_0x563d54){if(!_0x5b3f3b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x51163c)throw new Error('Target\x20directory\x20is\x20required');if(!_0x563d54||_0x563d54['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x198ba0=new FormData();_0x198ba0['append']('targetDir',_0x51163c);for(const _0x414403 of _0x563d54){_0x198ba0['append']('files',_0x414403,_0x414403['name']);}const _0x5b7a33=await fetch(API_BASE+'/tasks/'+_0x5b3f3b+'/files/upload',{'method':'POST','body':_0x198ba0});if(!_0x5b7a33['ok']){const _0x73b3c1=await _0x5b7a33['json']()['catch'](()=>({}));throw new Error(_0x73b3c1['error']||_0x73b3c1['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x5b7a33['statusText']);}return await _0x5b7a33['json']();},async 'createDirectory'(_0x4c3399,_0x8835df){if(!_0x4c3399)throw new Error('Task\x20ID\x20is\x20required');if(!_0x8835df)throw new Error('Directory\x20path\x20is\x20required');const _0x36edd1=await fetch(API_BASE+'/tasks/'+_0x4c3399+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x8835df})});if(!_0x36edd1['ok']){const _0x186895=await _0x36edd1['json']()['catch'](()=>({}));throw new Error(_0x186895['error']||_0x186895['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x36edd1['statusText']);}return await _0x36edd1['json']();},async 'renamePath'(_0x4fe701,_0x12352e,_0x2cbffd){if(!_0x4fe701)throw new Error('Task\x20ID\x20is\x20required');if(!_0x12352e)throw new Error('Source\x20path\x20is\x20required');if(!_0x2cbffd)throw new Error('Destination\x20path\x20is\x20required');const _0x27ffae=await fetch(API_BASE+'/tasks/'+_0x4fe701+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x12352e,'newPath':_0x2cbffd})});if(!_0x27ffae['ok']){const _0x4f98fb=await _0x27ffae['json']()['catch'](()=>({}));throw new Error(_0x4f98fb['error']||_0x4f98fb['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x27ffae['statusText']);}return await _0x27ffae['json']();},async 'deleteFile'(_0x54b99e,_0x5b18cb){if(!_0x54b99e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5b18cb)throw new Error('File\x20path\x20is\x20required');const _0x4f880a=await fetch(API_BASE+'/tasks/'+_0x54b99e+'/files?path='+encodeURIComponent(_0x5b18cb),{'method':'DELETE'});if(!_0x4f880a['ok']){const _0x1d304b=await _0x4f880a['json']()['catch'](()=>({}));throw new Error(_0x1d304b['error']||_0x1d304b['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x4f880a['statusText']);}return await _0x4f880a['json']();},async 'deleteDirectory'(_0x4f4aa6,_0x8ca208){if(!_0x4f4aa6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x8ca208)throw new Error('Directory\x20path\x20is\x20required');const _0x45450d=await fetch(API_BASE+'/tasks/'+_0x4f4aa6+'/files/directory?path='+encodeURIComponent(_0x8ca208),{'method':'DELETE'});if(!_0x45450d['ok']){const _0x12f881=await _0x45450d['json']()['catch'](()=>({}));throw new Error(_0x12f881['error']||_0x12f881['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x45450d['statusText']);}return await _0x45450d['json']();},async 'discardFile'(_0xf24f5d,_0x95e69f,_0x4be490){if(!_0xf24f5d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x95e69f)throw new Error('File\x20path\x20is\x20required');if(!_0x4be490)throw new Error('Repository\x20path\x20is\x20required');const _0x51acc9=await fetch(API_BASE+'/tasks/'+_0xf24f5d+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x95e69f,'repoPath':_0x4be490})});if(!_0x51acc9['ok']){const _0x20c901=await _0x51acc9['json']()['catch'](()=>({}));throw new Error(_0x20c901['error']||_0x20c901['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x51acc9['statusText']);}return await _0x51acc9['json']();},async 'followUpTask'(_0x356e17,_0x178c7e={}){if(!_0x356e17)throw new Error('Task\x20ID\x20is\x20required');if(!_0x178c7e['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x58f8f1,_0x3a2ff7={};if(_0x178c7e['files']&&_0x178c7e['files']['length']>0x0){const _0x2fa21a=new FormData();_0x2fa21a['append']('instructions',_0x178c7e['instructions']);for(const _0x1a2a9b of _0x178c7e['files']){_0x2fa21a['append']('attachments',_0x1a2a9b);}_0x58f8f1=_0x2fa21a;}else _0x3a2ff7['Content-Type']='application/json',_0x58f8f1=JSON['stringify']({'instructions':_0x178c7e['instructions']});const _0x23887c=await fetch(API_BASE+'/tasks/'+_0x356e17+'/follow-up',{'method':'POST','headers':_0x3a2ff7,'body':_0x58f8f1});if(!_0x23887c['ok']){const _0x530acf=await _0x23887c['json']()['catch'](()=>({}));throw new Error(_0x530acf['error']||_0x530acf['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x23887c['statusText']);}return await _0x23887c['json']();},async 'getTaskRewindPoints'(_0x5a9976){if(!_0x5a9976)throw new Error('Task\x20ID\x20is\x20required');const _0xd3b6e1=await fetch(API_BASE+'/tasks/'+_0x5a9976+'/rewind-points');if(!_0xd3b6e1['ok']){const _0x2cd473=await _0xd3b6e1['json']()['catch'](()=>({}));throw new Error(_0x2cd473['error']||_0x2cd473['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0xd3b6e1['statusText']);}return await _0xd3b6e1['json']();},async 'rewindTask'(_0x4d77dc,_0x19b9b1={}){if(!_0x4d77dc)throw new Error('Task\x20ID\x20is\x20required');const _0x47581d=Number['isInteger'](_0x19b9b1['targetFollowUpCount'])?_0x19b9b1['targetFollowUpCount']:0x0,_0x598373={'targetFollowUpCount':_0x47581d};typeof _0x19b9b1['instructions']==='string'&&_0x19b9b1['instructions']['trim']()&&(_0x598373['instructions']=_0x19b9b1['instructions']['trim']());typeof _0x19b9b1['rewindFiles']==='boolean'&&(_0x598373['rewindFiles']=_0x19b9b1['rewindFiles']);const _0x202aa6=await fetch(API_BASE+'/tasks/'+_0x4d77dc+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x598373)});if(!_0x202aa6['ok']){const _0x180998=await _0x202aa6['json']()['catch'](()=>({}));throw new Error(_0x180998['error']||_0x180998['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x202aa6['statusText']);}return await _0x202aa6['json']();},async 'login'(_0x4ba872,_0xb928fe){const _0x4cb64f=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4ba872,'password':_0xb928fe})});if(!_0x4cb64f['ok']){const _0x39ea49=await _0x4cb64f['json']();throw new Error(_0x39ea49['message']||'Login\x20failed');}return await _0x4cb64f['json']();},async 'logout'(){const _0x596fb9=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x596fb9['ok']){const _0x56ea3d=await _0x596fb9['json']();throw new Error(_0x56ea3d['message']||'Logout\x20failed');}return await _0x596fb9['json']();},async 'getCurrentUser'(){const _0x4e139e=await fetch(API_BASE+'/auth/me');if(!_0x4e139e['ok'])throw new Error('Not\x20authenticated');const _0x70336=await _0x4e139e['json']();return _0x70336['user'];},async 'getRolesInfo'(){const _0x1bbe09=await fetch(API_BASE+'/users/roles');if(!_0x1bbe09['ok']){const _0xc1bfc7=await _0x1bbe09['json']();throw new Error(_0xc1bfc7['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1bbe09['json']();},async 'getUsers'(){const _0x39b275=await fetch(API_BASE+'/users');if(!_0x39b275['ok']){const _0x4a852f=await _0x39b275['json']();throw new Error(_0x4a852f['message']||'Failed\x20to\x20get\x20users');}return await _0x39b275['json']();},async 'getUser'(_0x5e5db3){const _0x3536d9=await fetch(API_BASE+'/users/'+_0x5e5db3);if(!_0x3536d9['ok']){const _0x37ec14=await _0x3536d9['json']();throw new Error(_0x37ec14['message']||'Failed\x20to\x20get\x20user');}return await _0x3536d9['json']();},async 'createUser'(_0x3471f3){const _0x4cedc5=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3471f3)});if(!_0x4cedc5['ok']){const _0x240719=await _0x4cedc5['json']();throw new Error(_0x240719['message']||'Failed\x20to\x20create\x20user');}return await _0x4cedc5['json']();},async 'updateUser'(_0x1823a8,_0x2ca81f){const _0x3f52bd=await fetch(API_BASE+'/users/'+_0x1823a8,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2ca81f)});if(!_0x3f52bd['ok']){const _0x1efe40=await _0x3f52bd['json']();throw new Error(_0x1efe40['message']||'Failed\x20to\x20update\x20user');}return await _0x3f52bd['json']();},async 'deleteUser'(_0x38b093){const _0x573371=await fetch(API_BASE+'/users/'+_0x38b093,{'method':'DELETE'});if(!_0x573371['ok']){const _0x40c283=await _0x573371['json']();throw new Error(_0x40c283['message']||'Failed\x20to\x20delete\x20user');}return await _0x573371['json']();},async 'stopAllContainers'(){const _0x5c885c=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x199df4=await _0x5c885c['json']()['catch'](()=>({}));if(!_0x5c885c['ok'])throw new Error(_0x199df4['message']||_0x199df4['error']||'Failed\x20to\x20stop\x20containers');return _0x199df4;},async 'removeStoppedContainers'(){const _0x33e60f=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x63eeb6=await _0x33e60f['json']()['catch'](()=>({}));if(!_0x33e60f['ok'])throw new Error(_0x63eeb6['message']||_0x63eeb6['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x63eeb6;},async 'pruneDockerResources'(){const _0x54ffda=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x55bc8d=await _0x54ffda['json']()['catch'](()=>({}));if(!_0x54ffda['ok'])throw new Error(_0x55bc8d['message']||_0x55bc8d['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x55bc8d;},async 'getUpdateSettings'(){const _0x496803=await fetch(API_BASE+'/health/update-settings'),_0xb0b01e=await _0x496803['json']()['catch'](()=>({}));if(!_0x496803['ok'])throw new Error(_0xb0b01e['message']||_0xb0b01e['error']||'Failed\x20to\x20load\x20update\x20settings');return _0xb0b01e;},async 'applyServerUpdate'(_0x38634b){const _0x51add4=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x38634b})}),_0x2bbc81=await _0x51add4['json']()['catch'](()=>({}));if(!_0x51add4['ok']){const _0x1dad91=new Error(_0x2bbc81['message']||_0x2bbc81['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x2bbc81['output']!==undefined)_0x1dad91['output']=_0x2bbc81['output'];if(_0x2bbc81['error']!==undefined)_0x1dad91['commandError']=_0x2bbc81['error'];throw _0x1dad91;}return _0x2bbc81;},async 'restartServer'(){const _0x2e319a=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x29f716=await _0x2e319a['json']()['catch'](()=>({}));if(!_0x2e319a['ok'])throw new Error(_0x29f716['message']||_0x29f716['error']||'Failed\x20to\x20restart\x20server');return _0x29f716;},async 'createPasswordToken'(_0x3cb2bb,_0x2dfdb7='setup',_0x2a1941=![]){const _0x255cac=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x3cb2bb,'type':_0x2dfdb7,'sendEmail':_0x2a1941})});if(!_0x255cac['ok']){const _0x492e71=await _0x255cac['json']();throw new Error(_0x492e71['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x255cac['json']();},async 'getEmailConfig'(){const _0x59418e=await fetch(API_BASE+'/password/email-config');if(!_0x59418e['ok']){const _0xc4502=await _0x59418e['json']();throw new Error(_0xc4502['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x59418e['json']();},async 'updateTaskName'(_0x37b2f5,_0x381cdb){const _0x19c7c2=await fetch(API_BASE+'/tasks/'+_0x37b2f5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x381cdb})});if(!_0x19c7c2['ok']){const _0x2ef825=await _0x19c7c2['json']();throw new Error(_0x2ef825['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x19c7c2['json']();},async 'pinTask'(_0x308461,_0x161583,_0x10fa81=null){if(!_0x308461)throw new Error('Task\x20ID\x20is\x20required');const _0x10c7a7={'pinned':_0x161583};_0x10fa81&&_0x10fa81['length']>0x0&&(_0x10c7a7['additionalTaskIds']=_0x10fa81);const _0x3f23b8=await fetch(API_BASE+'/tasks/'+_0x308461+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10c7a7)});if(!_0x3f23b8['ok']){const _0x20b350=await _0x3f23b8['json']();throw new Error(_0x20b350['error']||'Failed\x20to\x20pin\x20task');}return await _0x3f23b8['json']();},async 'setTaskWinner'(_0x13bdd8,_0x3cda45,_0x182ae1=[]){if(!_0x13bdd8)throw new Error('Task\x20ID\x20is\x20required');const _0x57edb8=await fetch(API_BASE+'/tasks/'+_0x13bdd8+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x3cda45,'siblings':_0x182ae1})});if(!_0x57edb8['ok']){const _0x2e11cd=await _0x57edb8['json']();throw new Error(_0x2e11cd['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x57edb8['json']();},async 'setTaskLoser'(_0x18a8c5,_0xf455ba){if(!_0x18a8c5)throw new Error('Task\x20ID\x20is\x20required');const _0x29290e=await fetch(API_BASE+'/tasks/'+_0x18a8c5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0xf455ba})});if(!_0x29290e['ok']){const _0x14ee10=await _0x29290e['json']();throw new Error(_0x14ee10['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x29290e['json']();},async 'createTaskGroup'(_0x33e727){const _0x43e1d1=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x33e727)});if(!_0x43e1d1['ok']){const _0x1237ae=await _0x43e1d1['json']();throw new Error(_0x1237ae['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x43e1d1['json']();},async 'getTaskGroups'(_0x591c9f={}){const _0x532bf2=new URLSearchParams();if(_0x591c9f['userId'])_0x532bf2['set']('userId',String(_0x591c9f['userId']));if(_0x591c9f['status'])_0x532bf2['set']('status',String(_0x591c9f['status']));if(_0x591c9f['limit'])_0x532bf2['set']('limit',String(_0x591c9f['limit']));const _0x95572a=API_BASE+'/tasks/groups'+(_0x532bf2['toString']()?'?'+_0x532bf2['toString']():''),_0x55e2db=await fetch(_0x95572a);if(!_0x55e2db['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x55e2db['json']();},async 'getTaskGroup'(_0x5e716d){const _0x218b49=await fetch(API_BASE+'/tasks/groups/'+_0x5e716d);if(!_0x218b49['ok']){const _0x38adf3=await _0x218b49['json']();throw new Error(_0x38adf3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x218b49['json']();},async 'updateTaskGroup'(_0x8b9ce6,_0x3aa176,_0x40d49e){const _0x4938e8=await fetch(API_BASE+'/tasks/'+_0x8b9ce6+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x3aa176,'groupIndex':_0x40d49e})});if(!_0x4938e8['ok']){const _0x478298=await _0x4938e8['json']();throw new Error(_0x478298['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4938e8['json']();},async 'removeTaskFromGroup'(_0x5e2192){return this['updateTaskGroup'](_0x5e2192,null,null);},async 'deleteTaskGroup'(_0x55fe0b,_0x162db0=![]){const _0x4fba52=_0x162db0?'?deleteTasks=true':'',_0x55faba=await fetch(API_BASE+'/tasks/groups/'+_0x55fe0b+_0x4fba52,{'method':'DELETE'});if(!_0x55faba['ok']){const _0x5d27bb=await _0x55faba['json']();throw new Error(_0x5d27bb['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x55f0f1,_0x40cafa){const _0x2d6134=await fetch(API_BASE+'/tasks/groups/'+_0x55f0f1+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x40cafa})});if(!_0x2d6134['ok']){const _0x1736ad=await _0x2d6134['json']();throw new Error(_0x1736ad['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x2d6134['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x48c7f6){if(!_0x48c7f6)throw new Error('Task\x20ID\x20is\x20required');const _0x468a96=await fetch(API_BASE+'/tasks/'+_0x48c7f6+'/comments');if(!_0x468a96['ok']){const _0x204ec9=await _0x468a96['json']()['catch'](()=>({}));throw new Error(_0x204ec9['error']||'Failed\x20to\x20get\x20comments');}return await _0x468a96['json']();},async 'addComment'(_0xfb2efb,_0x2ab3e3){if(!_0xfb2efb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2ab3e3)throw new Error('Comment\x20content\x20is\x20required');const _0x5cba18=await fetch(API_BASE+'/tasks/'+_0xfb2efb+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2ab3e3})});if(!_0x5cba18['ok']){const _0x30640e=await _0x5cba18['json']()['catch'](()=>({}));throw new Error(_0x30640e['error']||'Failed\x20to\x20add\x20comment');}return await _0x5cba18['json']();},async 'updateComment'(_0x271f38,_0x17cd17,_0x34b17e){if(!_0x271f38)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17cd17)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x34b17e)throw new Error('Comment\x20content\x20is\x20required');const _0x2a502e=await fetch(API_BASE+'/tasks/'+_0x271f38+'/comments/'+_0x17cd17,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x34b17e})});if(!_0x2a502e['ok']){const _0x3b2f7a=await _0x2a502e['json']()['catch'](()=>({}));throw new Error(_0x3b2f7a['error']||'Failed\x20to\x20update\x20comment');}return await _0x2a502e['json']();},async 'deleteComment'(_0x3ae2de,_0x13015a){if(!_0x3ae2de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x13015a)throw new Error('Comment\x20ID\x20is\x20required');const _0x4db171=await fetch(API_BASE+'/tasks/'+_0x3ae2de+'/comments/'+_0x13015a,{'method':'DELETE'});if(!_0x4db171['ok']){const _0x54aa12=await _0x4db171['json']()['catch'](()=>({}));throw new Error(_0x54aa12['error']||'Failed\x20to\x20delete\x20comment');}return await _0x4db171['json']();},async 'createObjective'(_0x4de298){const _0x2182ba={'objective':!![],'name':_0x4de298['name']||'','environment':_0x4de298['environment']||null,'agents':_0x4de298['agents']||[],'branches':_0x4de298['branches']||{},'isPinned':_0x4de298['isPinned']||![],'parentObjectiveId':_0x4de298['parentObjectiveId']||null,'env_vars':_0x4de298['envVars']||{},'parameters':{'instructions':_0x4de298['instructions']||''},'files':_0x4de298['files']||[],'jira':_0x4de298['jira']||null};return this['createTask'](_0x2182ba);},async 'updateObjective'(_0x2d4b8d,_0x2ced43,_0x23f6dd=[],_0xf7ec09=[]){let _0x17f486,_0x251f79={};const _0x9ccfb9={..._0x2ced43};_0xf7ec09&&_0xf7ec09['length']>0x0&&(_0x9ccfb9['removeAttachments']=_0xf7ec09);if(_0x23f6dd&&_0x23f6dd['length']>0x0){const _0x5a3c53=new FormData();for(const [_0x4098bd,_0x4660a3]of Object['entries'](_0x9ccfb9)){if(_0x4660a3==null)continue;typeof _0x4660a3==='object'?_0x5a3c53['append'](_0x4098bd,JSON['stringify'](_0x4660a3)):_0x5a3c53['append'](_0x4098bd,String(_0x4660a3));}for(const _0x103282 of _0x23f6dd){_0x5a3c53['append']('attachments',_0x103282);}_0x17f486=_0x5a3c53;}else _0x251f79['Content-Type']='application/json',_0x17f486=JSON['stringify'](_0x9ccfb9);const _0xb2cb68=await fetch(API_BASE+'/tasks/'+_0x2d4b8d,{'method':'PATCH','headers':_0x251f79,'body':_0x17f486});if(!_0xb2cb68['ok']){const _0x2bb427=await _0xb2cb68['json']();throw new Error(_0x2bb427['error']||'Failed\x20to\x20update\x20objective');}return await _0xb2cb68['json']();},async 'deleteObjective'(_0xddcfd3){return this['deleteTask'](_0xddcfd3);},async 'launchObjective'(_0x13e5da,_0x41b8db={}){const _0x4c5ccd=await fetch(API_BASE+'/tasks/'+_0x13e5da+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41b8db)});if(!_0x4c5ccd['ok']){const _0x36ea0c=await _0x4c5ccd['json']();throw new Error(_0x36ea0c['error']||'Failed\x20to\x20launch\x20objective');}return await _0x4c5ccd['json']();},async 'getObjectiveAttachments'(_0x4a6c0b){return this['getTaskAttachments'](_0x4a6c0b);},async 'createJudgeTask'({environment:_0x405bfc,judgeAgent:_0x513ecf,groupId:_0x1ae8e9,taskIds:_0x534072,judgeCustomInstructions:_0x27ee72,isPinned:_0x3dcddf}){const _0x1bb0e3=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x405bfc,'judgeAgent':_0x513ecf,'groupId':_0x1ae8e9,'taskIds':_0x534072,'judgeCustomInstructions':_0x27ee72,'isPinned':_0x3dcddf})});if(!_0x1bb0e3['ok']){const _0x22f063=await _0x1bb0e3['json']();throw new Error(_0x22f063['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x1bb0e3['json']();},async 'getJudgeTasks'(_0x249db7){const _0x59e1aa=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x249db7));if(!_0x59e1aa['ok']){const _0x5e8bc9=await _0x59e1aa['json']();throw new Error(_0x5e8bc9['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x59e1aa['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x3ab438,_0x14e20b,_0x345cdd=''){const _0x407cc1=await fetch(API_BASE+'/tasks/'+_0x3ab438+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x14e20b,'customPreamble':_0x345cdd})});if(!_0x407cc1['ok']){const _0xdb0d17=await _0x407cc1['json']();throw new Error(_0xdb0d17['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x407cc1['json']();},async 'getJiraConfig'(){const _0x1a5808=await fetch(API_BASE+'/jira/config');if(!_0x1a5808['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x1a5808['json']();},async 'getJiraIssue'(_0x265a68){const _0x2b8581=await fetch(API_BASE+'/jira/issues/'+_0x265a68);if(!_0x2b8581['ok']){const _0x310c2f=await _0x2b8581['json']()['catch'](()=>({}));throw new Error(_0x310c2f['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2b8581['statusText']);}return await _0x2b8581['json']();},async 'searchJiraIssues'(_0x5e3a07,_0x38fa51=0x14){const _0x5d5836=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x5e3a07,'maxResults':_0x38fa51})});if(!_0x5d5836['ok']){const _0x50fb5a=await _0x5d5836['json']()['catch'](()=>({}));throw new Error(_0x50fb5a['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x5d5836['statusText']);}return await _0x5d5836['json']();},async 'postJiraComment'(_0x513d89,_0x128a03){const _0xd3e2ab=await fetch(API_BASE+'/jira/issues/'+_0x513d89+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x128a03})});if(!_0xd3e2ab['ok']){const _0x11236a=await _0xd3e2ab['json']()['catch'](()=>({}));throw new Error(_0x11236a['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0xd3e2ab['statusText']);}return await _0xd3e2ab['json']();},async 'getJiraComments'(_0x4abfd3){const _0x387db4=await fetch(API_BASE+'/jira/issues/'+_0x4abfd3+'/comments');if(!_0x387db4['ok']){const _0x45064d=await _0x387db4['json']()['catch'](()=>({}));throw new Error(_0x45064d['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x387db4['statusText']);}return await _0x387db4['json']();},async 'promptParameter'({environment:_0x9c9908,command:_0x249a72,parser:parser='json'}){const _0x558698=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x9c9908,'command':_0x249a72,'parser':parser})});if(!_0x558698['ok']){const _0x25c6c8=await _0x558698['json']()['catch'](()=>({}));throw new Error(_0x25c6c8['message']||_0x25c6c8['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x558698['statusText']);}return await _0x558698['json']();},async 'promptParameterStream'(_0x2f3e7f,_0x4d5c45){const _0x189a82=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f3e7f)});if(!_0x189a82['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x189a82['statusText']);const _0x4624af=_0x189a82['body']['getReader'](),_0x1540fc=new TextDecoder();let _0xb2ecbd='';return new Promise((_0xa8a5a3,_0x3593b4)=>{const _0x25e9a2=async()=>{try{const {done:_0x558ff9,value:_0x46029d}=await _0x4624af['read']();if(_0x558ff9)return;_0xb2ecbd+=_0x1540fc['decode'](_0x46029d,{'stream':!![]});const _0x26b8e9=_0xb2ecbd['split']('\x0a\x0a');_0xb2ecbd=_0x26b8e9['pop']()||'';for(const _0x4fdc0b of _0x26b8e9){if(!_0x4fdc0b['trim']())continue;const _0x54de36=_0x4fdc0b['split']('\x0a');let _0x3656c2='message',_0x70cf57='';for(const _0x34c428 of _0x54de36){if(_0x34c428['startsWith']('event:'))_0x3656c2=_0x34c428['substring'](0x6)['trim']();else _0x34c428['startsWith']('data:')&&(_0x70cf57=_0x34c428['substring'](0x5)['trim']());}if(!_0x70cf57)continue;try{const _0x2fd831=JSON['parse'](_0x70cf57);if(_0x3656c2==='progress'&&_0x4d5c45)_0x4d5c45(_0x2fd831['stage'],_0x2fd831['message']);else{if(_0x3656c2==='result'){_0xa8a5a3(_0x2fd831);return;}else{if(_0x3656c2==='error'){let _0x4b03b4=_0x2fd831['message']||_0x2fd831['error']||'Prompt\x20command\x20failed';_0x2fd831['rawOutput']&&(_0x4b03b4+='\x0a\x0aRaw\x20output:\x0a'+_0x2fd831['rawOutput']);_0x3593b4(new Error(_0x4b03b4));return;}}}}catch(_0x382369){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x382369),console['error']('Event\x20type:',_0x3656c2),console['error']('Event\x20data:',_0x70cf57),console['error']('First\x20200\x20chars:',_0x70cf57['substring'](0x0,0xc8)),_0x3593b4(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x382369['message']+'\x0a\x0aData:\x20'+_0x70cf57['substring'](0x0,0x1f4)));return;}}_0x25e9a2();}catch(_0x1ac4fc){_0x3593b4(_0x1ac4fc);}};_0x25e9a2();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0xad6369){const _0x1b079b=await fetch(''+API_BASE+_0xad6369);if(!_0x1b079b['ok']){const _0x3a0103=await _0x1b079b['json']()['catch'](()=>({'error':_0x1b079b['statusText']})),_0x560d7f=new Error(_0x3a0103['error']||_0x3a0103['message']||_0x1b079b['statusText']);if(_0x3a0103['detail']!==undefined)_0x560d7f['detail']=_0x3a0103['detail'];throw _0x560d7f;}return await _0x1b079b['json']();},async 'post'(_0x35d5cc,_0x10a324){const _0x49f7e7=await fetch(''+API_BASE+_0x35d5cc,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10a324)});if(!_0x49f7e7['ok']){const _0x151b13=await _0x49f7e7['json']()['catch'](()=>({'error':_0x49f7e7['statusText']})),_0x5cbf7e=new Error(_0x151b13['error']||_0x151b13['message']||_0x49f7e7['statusText']);if(_0x151b13['detail']!==undefined)_0x5cbf7e['detail']=_0x151b13['detail'];throw _0x5cbf7e;}return await _0x49f7e7['json']();},async 'put'(_0x12eeb3,_0x2a2594){const _0x42af12=await fetch(''+API_BASE+_0x12eeb3,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2a2594)});if(!_0x42af12['ok']){const _0x554f53=await _0x42af12['json']()['catch'](()=>({'error':_0x42af12['statusText']})),_0x1b37f9=new Error(_0x554f53['error']||_0x554f53['message']||_0x42af12['statusText']);if(_0x554f53['detail']!==undefined)_0x1b37f9['detail']=_0x554f53['detail'];throw _0x1b37f9;}return await _0x42af12['json']();},async 'delete'(_0x5bd2b0,_0x464709){const _0x4a043f={'method':'DELETE'};_0x464709&&(_0x4a043f['headers']={'Content-Type':'application/json'},_0x4a043f['body']=JSON['stringify'](_0x464709));const _0x341b22=await fetch(''+API_BASE+_0x5bd2b0,_0x4a043f);if(!_0x341b22['ok']){const _0x33b116=await _0x341b22['json']()['catch'](()=>({'error':_0x341b22['statusText']})),_0x40c4d0=new Error(_0x33b116['error']||_0x33b116['message']||_0x341b22['statusText']);if(_0x33b116['detail']!==undefined)_0x40c4d0['detail']=_0x33b116['detail'];throw _0x40c4d0;}return await _0x341b22['json']();},async 'getSkills'(){const _0x44ed7e=await fetch(API_BASE+'/skills');if(!_0x44ed7e['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x44ed7e['statusText']);return await _0x44ed7e['json']();},async 'getSkill'(_0x31ad30){const _0x362372=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x31ad30));if(!_0x362372['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x362372['statusText']);return await _0x362372['json']();},async 'createSkill'(_0x37499e){const _0x6f34c7=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x37499e)});if(!_0x6f34c7['ok']){const _0x1b5b4d=await _0x6f34c7['json']()['catch'](()=>({'error':_0x6f34c7['statusText']})),_0xaf3524=new Error(_0x1b5b4d['error']||_0x1b5b4d['message']||_0x6f34c7['statusText']);if(_0x1b5b4d['detail']!==undefined)_0xaf3524['detail']=_0x1b5b4d['detail'];throw _0xaf3524;}return await _0x6f34c7['json']();},async 'updateSkill'(_0x1e4b70,_0x3b18a4){const _0x5c4ce7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1e4b70),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b18a4)});if(!_0x5c4ce7['ok']){const _0x88b78d=await _0x5c4ce7['json']()['catch'](()=>({'error':_0x5c4ce7['statusText']})),_0x531016=new Error(_0x88b78d['error']||_0x88b78d['message']||_0x5c4ce7['statusText']);if(_0x88b78d['detail']!==undefined)_0x531016['detail']=_0x88b78d['detail'];throw _0x531016;}return await _0x5c4ce7['json']();},async 'deleteSkill'(_0x57a88b){const _0x2eadff=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x57a88b),{'method':'DELETE'});if(!_0x2eadff['ok']){const _0x369c99=await _0x2eadff['json']()['catch'](()=>({'error':_0x2eadff['statusText']})),_0x41c06e=new Error(_0x369c99['error']||_0x369c99['message']||_0x2eadff['statusText']);if(_0x369c99['detail']!==undefined)_0x41c06e['detail']=_0x369c99['detail'];throw _0x41c06e;}return await _0x2eadff['json']();},async 'getSkillFile'(_0x136a78,_0x596406){const _0xb92939=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x136a78)+'/files/'+_0x596406);if(!_0xb92939['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xb92939['statusText']);return await _0xb92939['json']();},async 'saveSkillFile'(_0x291b28,_0x25bb10,_0x565ec3){const _0x37c0d4=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x291b28)+'/files/'+_0x25bb10,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x565ec3})});if(!_0x37c0d4['ok']){const _0x307604=await _0x37c0d4['json']()['catch'](()=>({'error':_0x37c0d4['statusText']})),_0x3354b3=new Error(_0x307604['error']||_0x307604['message']||_0x37c0d4['statusText']);if(_0x307604['detail']!==undefined)_0x3354b3['detail']=_0x307604['detail'];throw _0x3354b3;}return await _0x37c0d4['json']();},async 'deleteSkillFile'(_0x228592,_0xae2192){const _0x223a6e=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x228592)+'/files/'+_0xae2192,{'method':'DELETE'});if(!_0x223a6e['ok']){const _0xbd4390=await _0x223a6e['json']()['catch'](()=>({'error':_0x223a6e['statusText']})),_0x1225e4=new Error(_0xbd4390['error']||_0xbd4390['message']||_0x223a6e['statusText']);if(_0xbd4390['detail']!==undefined)_0x1225e4['detail']=_0xbd4390['detail'];throw _0x1225e4;}return await _0x223a6e['json']();},async 'pullSkills'(){const _0x5e3933=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x5e3933['ok']){const _0x213cb4=await _0x5e3933['json']()['catch'](()=>({'error':_0x5e3933['statusText']})),_0x28cc01=new Error(_0x213cb4['error']||_0x213cb4['message']||_0x5e3933['statusText']);if(_0x213cb4['detail']!==undefined)_0x28cc01['detail']=_0x213cb4['detail'];throw _0x28cc01;}return await _0x5e3933['json']();},async 'commitSkills'(_0x31de65,_0x461aef={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x461aef,_0x15eb1e=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x31de65,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x15eb1e['ok']){const _0x25733b=await _0x15eb1e['json']()['catch'](()=>({'error':_0x15eb1e['statusText']})),_0x31c701=new Error(_0x25733b['error']||_0x25733b['message']||_0x15eb1e['statusText']);if(_0x25733b['detail']!==undefined)_0x31c701['detail']=_0x25733b['detail'];throw _0x31c701;}return await _0x15eb1e['json']();},async 'discardSkillsChanges'(){const _0x38757b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x38757b['ok']){const _0x1e4d3c=await _0x38757b['json']()['catch'](()=>({'error':_0x38757b['statusText']})),_0x53169c=new Error(_0x1e4d3c['error']||_0x1e4d3c['message']||_0x38757b['statusText']);if(_0x1e4d3c['detail']!==undefined)_0x53169c['detail']=_0x1e4d3c['detail'];throw _0x53169c;}return await _0x38757b['json']();},async 'getSkillCatalog'(){const _0x519bac=await fetch(API_BASE+'/external-skills/catalog');if(!_0x519bac['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x519bac['statusText']);return await _0x519bac['json']();},async 'getImportedSkillsRegistry'(){const _0x526834=await fetch(API_BASE+'/external-skills/registry');if(!_0x526834['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x526834['statusText']);return await _0x526834['json']();},async 'importCatalogSkill'(_0x47d41a){const _0x4ea4b2=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x47d41a})});if(!_0x4ea4b2['ok']){const _0x5439ff=await _0x4ea4b2['json']()['catch'](()=>({'error':_0x4ea4b2['statusText']})),_0x3d33c7=new Error(_0x5439ff['error']||_0x5439ff['message']||_0x4ea4b2['statusText']);if(_0x5439ff['detail']!==undefined)_0x3d33c7['detail']=_0x5439ff['detail'];throw _0x3d33c7;}return await _0x4ea4b2['json']();},async 'importSkillFromGit'(_0x373771,_0x100e1f,_0x2d4d78='main',_0x296925=null){const _0x587abe=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x373771,'skillPath':_0x100e1f,'branch':_0x2d4d78,'skillId':_0x296925})});if(!_0x587abe['ok']){const _0x331041=await _0x587abe['json']()['catch'](()=>({'error':_0x587abe['statusText']})),_0x29cbbb=new Error(_0x331041['error']||_0x331041['message']||_0x587abe['statusText']);if(_0x331041['detail']!==undefined)_0x29cbbb['detail']=_0x331041['detail'];throw _0x29cbbb;}return await _0x587abe['json']();},async 'probeMarketplace'(_0x41b634,_0x4f2e36='main'){const _0x4e4749=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x41b634,'branch':_0x4f2e36})});if(!_0x4e4749['ok']){const _0x6b1a15=await _0x4e4749['json']()['catch'](()=>({'error':_0x4e4749['statusText']})),_0x2ac5ce=new Error(_0x6b1a15['error']||_0x6b1a15['message']||_0x4e4749['statusText']);if(_0x6b1a15['detail']!==undefined)_0x2ac5ce['detail']=_0x6b1a15['detail'];throw _0x2ac5ce;}return await _0x4e4749['json']();},async 'importMarketplaceBundle'(_0x4f8393,_0x4add69,_0x73ef87,_0x47f512=null){const _0xd89374=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f8393,'branch':_0x4add69,'bundleId':_0x73ef87,'selectedSkills':_0x47f512})});if(!_0xd89374['ok']){const _0x45bd8a=await _0xd89374['json']()['catch'](()=>({'error':_0xd89374['statusText']})),_0x2870c1=new Error(_0x45bd8a['error']||_0x45bd8a['message']||_0xd89374['statusText']);if(_0x45bd8a['detail']!==undefined)_0x2870c1['detail']=_0x45bd8a['detail'];throw _0x2870c1;}return await _0xd89374['json']();},async 'importSkillFromFolder'(_0x5947dd,_0x34fc25=null){const _0x5dfce7=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x5947dd,'skillId':_0x34fc25})});if(!_0x5dfce7['ok']){const _0x2d53d5=await _0x5dfce7['json']()['catch'](()=>({'error':_0x5dfce7['statusText']})),_0x1f40b7=new Error(_0x2d53d5['error']||_0x2d53d5['message']||_0x5dfce7['statusText']);if(_0x2d53d5['detail']!==undefined)_0x1f40b7['detail']=_0x2d53d5['detail'];throw _0x1f40b7;}return await _0x5dfce7['json']();},async 'importSkillFromNpm'(_0x24411,_0x1b00da='latest',_0x34e1db=null,_0x4f7da6=null){const _0x1668d5=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x24411,'version':_0x1b00da,'skillId':_0x34e1db,'registry':_0x4f7da6})});if(!_0x1668d5['ok']){const _0x2c62e4=await _0x1668d5['json']()['catch'](()=>({'error':_0x1668d5['statusText']})),_0x5be4f9=new Error(_0x2c62e4['error']||_0x2c62e4['message']||_0x1668d5['statusText']);if(_0x2c62e4['detail']!==undefined)_0x5be4f9['detail']=_0x2c62e4['detail'];throw _0x5be4f9;}return await _0x1668d5['json']();},async 'checkSkillUpdates'(_0x514a2f){const _0x31b305=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x514a2f)+'/check-updates',{'method':'POST'});if(!_0x31b305['ok']){const _0x5a3d96=await _0x31b305['json']()['catch'](()=>({'error':_0x31b305['statusText']})),_0x24c296=new Error(_0x5a3d96['error']||_0x5a3d96['message']||_0x31b305['statusText']);if(_0x5a3d96['detail']!==undefined)_0x24c296['detail']=_0x5a3d96['detail'];throw _0x24c296;}return await _0x31b305['json']();},async 'updateExternalSkill'(_0x1652e5){const _0x534e42=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1652e5)+'/update',{'method':'POST'});if(!_0x534e42['ok']){const _0x17a201=await _0x534e42['json']()['catch'](()=>({'error':_0x534e42['statusText']})),_0x20309c=new Error(_0x17a201['error']||_0x17a201['message']||_0x534e42['statusText']);if(_0x17a201['detail']!==undefined)_0x20309c['detail']=_0x17a201['detail'];throw _0x20309c;}return await _0x534e42['json']();},async 'updateSkillFlags'(_0x467dda,_0x2789b2){const _0x41e8eb=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x467dda)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2789b2})});if(!_0x41e8eb['ok']){const _0x178fec=await _0x41e8eb['json']()['catch'](()=>({'error':_0x41e8eb['statusText']})),_0x23ad42=new Error(_0x178fec['error']||_0x178fec['message']||_0x41e8eb['statusText']);if(_0x178fec['detail']!==undefined)_0x23ad42['detail']=_0x178fec['detail'];throw _0x23ad42;}return await _0x41e8eb['json']();},async 'removeFromImportedRegistry'(_0x102544){const _0x4ffb23=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x102544)+'/registry',{'method':'DELETE'});if(!_0x4ffb23['ok']){const _0x2aea81=await _0x4ffb23['json']()['catch'](()=>({'error':_0x4ffb23['statusText']})),_0x2fc942=new Error(_0x2aea81['error']||_0x2aea81['message']||_0x4ffb23['statusText']);if(_0x2aea81['detail']!==undefined)_0x2fc942['detail']=_0x2aea81['detail'];throw _0x2fc942;}return await _0x4ffb23['json']();},async 'getTeams'(){const _0x2a5468=await fetch(API_BASE+'/teams');if(!_0x2a5468['ok']){const _0x54a9f2=await _0x2a5468['json']()['catch'](()=>({'message':_0x2a5468['statusText']}));throw new Error(_0x54a9f2['message']||'Failed\x20to\x20get\x20teams');}return await _0x2a5468['json']();},async 'getTeam'(_0x296583){const _0x65b182=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x296583));if(!_0x65b182['ok']){const _0x46fd80=await _0x65b182['json']()['catch'](()=>({'message':_0x65b182['statusText']}));throw new Error(_0x46fd80['message']||'Failed\x20to\x20get\x20team');}return await _0x65b182['json']();},async 'createTeam'(_0x31dbff){const _0x575781=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x31dbff)});if(!_0x575781['ok']){const _0x157a96=await _0x575781['json']()['catch'](()=>({'message':_0x575781['statusText']}));throw new Error(_0x157a96['message']||'Failed\x20to\x20create\x20team');}return await _0x575781['json']();},async 'updateTeam'(_0x56d781,_0x21d1a8){const _0x5e9b79=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x56d781),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21d1a8)});if(!_0x5e9b79['ok']){const _0x4dfb18=await _0x5e9b79['json']()['catch'](()=>({'message':_0x5e9b79['statusText']}));throw new Error(_0x4dfb18['message']||'Failed\x20to\x20update\x20team');}return await _0x5e9b79['json']();},async 'deleteTeam'(_0x285605){const _0x10af48=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x285605),{'method':'DELETE'});if(!_0x10af48['ok']){const _0x4e8537=await _0x10af48['json']()['catch'](()=>({'message':_0x10af48['statusText']}));throw new Error(_0x4e8537['message']||'Failed\x20to\x20delete\x20team');}return await _0x10af48['json']();},async 'addTeamMember'(_0x14d4f4,_0x13f34f){const _0x5d00ec=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x14d4f4)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x13f34f})});if(!_0x5d00ec['ok']){const _0x218f0d=await _0x5d00ec['json']()['catch'](()=>({'message':_0x5d00ec['statusText']}));throw new Error(_0x218f0d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x5d00ec['json']();},async 'removeTeamMember'(_0x4964a1,_0x1cc0e4){const _0x2f6674=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4964a1)+'/members/'+encodeURIComponent(_0x1cc0e4),{'method':'DELETE'});if(!_0x2f6674['ok']){const _0x3e5908=await _0x2f6674['json']()['catch'](()=>({'message':_0x2f6674['statusText']}));throw new Error(_0x3e5908['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x2f6674['json']();},async 'getBindings'(_0x1e1ddb={}){const _0x3afedf=new URLSearchParams();if(_0x1e1ddb['resource_type'])_0x3afedf['set']('resource_type',_0x1e1ddb['resource_type']);if(_0x1e1ddb['resource_id'])_0x3afedf['set']('resource_id',_0x1e1ddb['resource_id']);if(_0x1e1ddb['subject_type'])_0x3afedf['set']('subject_type',_0x1e1ddb['subject_type']);if(_0x1e1ddb['subject_id'])_0x3afedf['set']('subject_id',_0x1e1ddb['subject_id']);const _0x2299fa=_0x3afedf['toString'](),_0x274a00=await fetch(API_BASE+'/bindings'+(_0x2299fa?'?'+_0x2299fa:''));if(!_0x274a00['ok']){const _0x3d6c6d=await _0x274a00['json']()['catch'](()=>({'message':_0x274a00['statusText']}));throw new Error(_0x3d6c6d['message']||'Failed\x20to\x20get\x20bindings');}return await _0x274a00['json']();},async 'createBinding'(_0x576abf){const _0x1dae5c=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x576abf)});if(!_0x1dae5c['ok']){const _0xaffd24=await _0x1dae5c['json']()['catch'](()=>({'message':_0x1dae5c['statusText']}));throw new Error(_0xaffd24['message']||'Failed\x20to\x20create\x20binding');}return await _0x1dae5c['json']();},async 'updateBinding'(_0x11c1da,_0x5040a9){const _0x2b5cf9=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x11c1da),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5040a9)});if(!_0x2b5cf9['ok']){const _0x21557f=await _0x2b5cf9['json']()['catch'](()=>({'message':_0x2b5cf9['statusText']}));throw new Error(_0x21557f['message']||'Failed\x20to\x20update\x20binding');}return await _0x2b5cf9['json']();},async 'deleteBinding'(_0x759586){const _0x4b431e=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x759586),{'method':'DELETE'});if(!_0x4b431e['ok']){const _0x4d4778=await _0x4b431e['json']()['catch'](()=>({'message':_0x4b431e['statusText']}));throw new Error(_0x4d4778['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4b431e['json']();},async 'getRoleDefinitions'(){const _0x2b37e6=await fetch(API_BASE+'/roles');if(!_0x2b37e6['ok']){const _0x5376f5=await _0x2b37e6['json']()['catch'](()=>({'message':_0x2b37e6['statusText']}));throw new Error(_0x5376f5['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x2b37e6['json']();},async 'getRoleDefinition'(_0x2b37ae){const _0x249b6d=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2b37ae));if(!_0x249b6d['ok']){const _0x4ef403=await _0x249b6d['json']()['catch'](()=>({'message':_0x249b6d['statusText']}));throw new Error(_0x4ef403['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x249b6d['json']();},async 'createRoleDefinition'(_0x35cd2a){const _0x4d06c7=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35cd2a)});if(!_0x4d06c7['ok']){const _0x3d6ac7=await _0x4d06c7['json']()['catch'](()=>({'message':_0x4d06c7['statusText']}));throw new Error(_0x3d6ac7['message']||_0x3d6ac7['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x4d06c7['json']();},async 'updateRoleDefinition'(_0x263623,_0x3acc2c){const _0x3666f0=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x263623),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3acc2c)});if(!_0x3666f0['ok']){const _0x2b6d5a=await _0x3666f0['json']()['catch'](()=>({'message':_0x3666f0['statusText']}));throw new Error(_0x2b6d5a['message']||_0x2b6d5a['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x3666f0['json']();},async 'deleteRoleDefinition'(_0x425485){const _0x3e850c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x425485),{'method':'DELETE'});if(!_0x3e850c['ok']){const _0x1da0ce=await _0x3e850c['json']()['catch'](()=>({'message':_0x3e850c['statusText']}));throw new Error(_0x1da0ce['message']||_0x1da0ce['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x3e850c['json']();},async 'getAvailablePermissions'(){const _0x4b5cee=await fetch(API_BASE+'/roles/available-permissions');if(!_0x4b5cee['ok']){const _0xeba6a7=await _0x4b5cee['json']()['catch'](()=>({'message':_0x4b5cee['statusText']}));throw new Error(_0xeba6a7['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x4b5cee['json']();},async 'getGitProviderAllowedTeams'(_0x2c567c){const _0x427974=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2c567c)+'/allowed-teams');if(!_0x427974['ok']){const _0x1b4f2d=await _0x427974['json']()['catch'](()=>({'message':_0x427974['statusText']}));throw new Error(_0x1b4f2d['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x427974['json']();},async 'setGitProviderAllowedTeams'(_0x513d2c,_0x32437e){const _0x495ed0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x513d2c)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x32437e})});if(!_0x495ed0['ok']){const _0xad2c72=await _0x495ed0['json']()['catch'](()=>({'message':_0x495ed0['statusText']}));throw new Error(_0xad2c72['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x495ed0['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 _0xcbf650=toastState['baseBottom'];toastState['toasts']['forEach'](_0x49424d=>{_0x49424d['el']['style']['bottom']=_0xcbf650+'px';const _0x1bfed0=_0x49424d['el']['offsetHeight']||toastState['defaultHeight'];_0xcbf650+=_0x1bfed0+toastState['gap'];});});}function removeToastById(_0x1c6752){const _0x4519f5=toastState['toasts']['findIndex'](_0x94ca65=>_0x94ca65['id']===_0x1c6752);if(_0x4519f5===-0x1)return;const _0x50b5d4=toastState['toasts'][_0x4519f5];if(_0x50b5d4['timeoutId'])clearTimeout(_0x50b5d4['timeoutId']);_0x50b5d4['el']['classList']['remove']('show'),setTimeout(()=>_0x50b5d4['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x4519f5,0x1),repositionAllToasts();}function registerToast(_0x218f78){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x218f78),repositionAllToasts(),_0x218f78['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(_0x5399b0){if(_0x5399b0===null||_0x5399b0===undefined)return'';return String(_0x5399b0)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x244dc4,_0x228e85){if(_0x244dc4&&typeof _0x244dc4==='object'&&!Array['isArray'](_0x244dc4))return{'code':typeof _0x244dc4['text']==='string'?_0x244dc4['text']:'','language':typeof _0x244dc4['lang']==='string'?_0x244dc4['lang']:''};return{'code':typeof _0x244dc4==='string'?_0x244dc4:'','language':typeof _0x228e85==='string'?_0x228e85:''};}function buildMermaidBlock(_0x12875a){const _0x4c0772=String(_0x12875a||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x4c0772))+'\x22>'+escapeHtmlValue(_0x4c0772)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x564015=new marked['Renderer'](),_0x4be9f6=_0x564015['code']['bind'](_0x564015);return _0x564015['code']=function(_0x566d66,_0x5c8910,..._0x2515da){const {code:_0x515e44,language:_0x1d9a71}=getMarkdownCodeBlockPayload(_0x566d66,_0x5c8910),_0x5dc6f3=String(_0x1d9a71||'')['trim']()['toLowerCase']();if(_0x5dc6f3==='mermaid')return buildMermaidBlock(_0x515e44);const _0x42200e=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x42200e&&_0x5dc6f3)try{const _0x5be91e=_0x42200e['getLanguage'](_0x5dc6f3)?_0x5dc6f3:'plaintext',_0xbcb9a2=_0x42200e['highlight'](_0x515e44,{'language':_0x5be91e})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dc6f3)+'\x22>'+_0xbcb9a2+'</code></pre>';}catch(_0x26e8aa){console['error']('Syntax\x20highlighting\x20error:',_0x26e8aa);}return _0x4be9f6(_0x566d66,_0x5c8910,..._0x2515da);},sharedMarkedRenderer=_0x564015,_0x564015;}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 _0x169a24=window['mermaid'];if(!_0x169a24||typeof _0x169a24['initialize']!=='function')return _0x169a24||null;return _0x169a24['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x169a24;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x199a2d,_0x44e905)=>{const _0x158321=()=>_0x199a2d(configureMermaidInstance()),_0x1b35c8=()=>{mermaidLoadPromise=null,_0x44e905(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x36452e=document['getElementById'](MERMAID_SCRIPT_ID);!_0x36452e&&(_0x36452e=document['createElement']('script'),_0x36452e['id']=MERMAID_SCRIPT_ID,_0x36452e['src']=MERMAID_SCRIPT_SRC,_0x36452e['async']=!![],document['head']['appendChild'](_0x36452e));if(window['mermaid']){_0x158321();return;}_0x36452e['addEventListener']('load',_0x158321,{'once':!![]}),_0x36452e['addEventListener']('error',_0x1b35c8,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x1f7229){const _0x3a4fdc=_0x1f7229['getAttribute']('data-mermaid-source');if(!_0x3a4fdc)return null;let _0x46b69d=_0x3a4fdc;try{_0x46b69d=decodeURIComponent(_0x3a4fdc);}catch{}return _0x1f7229['textContent']=_0x46b69d,_0x1f7229['removeAttribute']('data-processed'),_0x1f7229['removeAttribute']('aria-roledescription'),_0x1f7229['removeAttribute']('role'),_0x1f7229['removeAttribute']('aria-label'),_0x46b69d;}function collectMermaidNodes(_0x3386a6,_0x50c362){if(!(_0x3386a6 instanceof Element))return;_0x3386a6['matches']('.mermaid[data-mermaid-source]')&&_0x50c362['add'](_0x3386a6),_0x3386a6['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x4b1dcc=>{_0x50c362['add'](_0x4b1dcc);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x3c4555=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xae882f=>setTimeout(_0xae882f,0x0);_0x3c4555(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x2e26a7=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x2e26a7);});});}function queueMermaidRender(_0x58b2e2){const _0x14bdd1=new Set();_0x58b2e2 instanceof Document||_0x58b2e2 instanceof DocumentFragment?_0x58b2e2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3209ac=>_0x14bdd1['add'](_0x3209ac)):collectMermaidNodes(_0x58b2e2,_0x14bdd1);if(_0x14bdd1['size']===0x0)return;_0x14bdd1['forEach'](_0x52475a=>pendingMermaidNodes['add'](_0x52475a)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x5c84bc=Array['from'](pendingMermaidNodes)['filter'](_0x5ee667=>_0x5ee667['isConnected']);pendingMermaidNodes['clear']();if(_0x5c84bc['length']===0x0)return;const _0x25474c=await loadMermaid();if(!_0x25474c)return;configureMermaidInstance();const _0x13385a=getMermaidTheme();for(const _0x863ab8 of _0x5c84bc){const _0x4a2049=_0x863ab8['getAttribute']('data-mermaid-source');if(!_0x4a2049)continue;const _0x30f5f3=_0x863ab8['getAttribute']('data-processed')==='true';if(_0x30f5f3&&_0x863ab8['dataset']['mermaidTheme']===_0x13385a)continue;restoreMermaidSource(_0x863ab8);try{if(typeof _0x25474c['run']==='function')await _0x25474c['run']({'nodes':[_0x863ab8]});else typeof _0x25474c['init']==='function'&&_0x25474c['init'](undefined,[_0x863ab8]);_0x863ab8['dataset']['mermaidTheme']=_0x13385a,delete _0x863ab8['dataset']['mermaidError'];}catch(_0x3e7adf){console['error']('Mermaid\x20render\x20failed:',_0x3e7adf),restoreMermaidSource(_0x863ab8),_0x863ab8['dataset']['mermaidError']='true',delete _0x863ab8['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5f195d=>{_0x5f195d['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5f195d);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4f2b6b=>{_0x4f2b6b['forEach'](_0x55036a=>{_0x55036a['addedNodes']['forEach'](_0x54437a=>{_0x54437a['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x54437a);});});}),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'(_0x19c160){const _0x1da9b0=new Date(_0x19c160),_0x58da7e=new Date(),_0x3c1528=_0x58da7e-_0x1da9b0,_0x2dedd6=Math['floor'](_0x3c1528/0x3e8),_0x226011=Math['floor'](_0x2dedd6/0x3c),_0x51fbcc=Math['floor'](_0x226011/0x3c),_0x582963=Math['floor'](_0x51fbcc/0x18);if(_0x2dedd6<0x3c)return'now';if(_0x226011<0x3c)return _0x226011+'m\x20ago';if(_0x51fbcc<0x18)return _0x51fbcc+'h\x20ago';return _0x582963+'d\x20ago';},'getStatusIcon'(_0x4297f4){switch(_0x4297f4){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x51d125){switch(_0x51d125){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'(_0x4952da,_0x3ce0b2=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x3dcb4c={};_0x3dcb4c['text/plain']=new Blob([_0x4952da],{'type':'text/plain'});_0x3ce0b2&&(_0x3dcb4c['text/html']=new Blob([_0x3ce0b2],{'type':'text/html'}));const _0x3a752d=new ClipboardItem(_0x3dcb4c);return await navigator['clipboard']['write']([_0x3a752d]),!![];}catch(_0xead3a3){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0xead3a3);}try{const _0x441f07=_0x2e1871=>{_0x2e1871['preventDefault'](),_0x2e1871['clipboardData']['setData']('text/plain',_0x4952da),_0x3ce0b2&&_0x2e1871['clipboardData']['setData']('text/html',_0x3ce0b2);};document['addEventListener']('copy',_0x441f07);const _0x14ece4=document['execCommand']('copy');document['removeEventListener']('copy',_0x441f07);if(_0x14ece4)return!![];}catch(_0x2a86bc){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x2a86bc);}try{const _0x1d0750=document['createElement']('textarea');_0x1d0750['value']=_0x4952da,_0x1d0750['style']['position']='fixed',_0x1d0750['style']['opacity']='0',_0x1d0750['style']['pointerEvents']='none',document['body']['appendChild'](_0x1d0750),_0x1d0750['select']();const _0x1620ef=document['execCommand']('copy');return document['body']['removeChild'](_0x1d0750),_0x1620ef;}catch(_0x1f9317){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x1f9317),![];}},'showToast'(_0x27319e,_0x39b559='info'){const _0x4ca84f=getNextToastId(),_0x26f642=document['createElement']('div');_0x26f642['className']='toast\x20toast-'+_0x39b559,_0x26f642['textContent']=_0x27319e,_0x26f642['dataset']['toastId']=_0x4ca84f,document['body']['appendChild'](_0x26f642);const _0x4904bb=_0x39b559==='error'?0x2710:0xbb8,_0x469cef=setTimeout(()=>{removeToastById(_0x4ca84f);},_0x4904bb),_0x47dc28={'id':_0x4ca84f,'el':_0x26f642,'timeoutId':_0x469cef};return registerToast(_0x47dc28),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x26f642['classList']['add']('show');});}),_0x4ca84f;},'showError'(_0x497511){console['error'](_0x497511);const _0x3c6ea0=typeof _0x497511==='string'?_0x497511:_0x497511['message']||'An\x20error\x20occurred';this['showToast'](_0x3c6ea0,'error');},'showSuccess'(_0x3a2d16){this['showToast'](_0x3a2d16,'success');},'capitalize'(_0x5552ee){if(!_0x5552ee)return'';return _0x5552ee['charAt'](0x0)['toUpperCase']()+_0x5552ee['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x2bd2a9){return escapeHtmlValue(_0x2bd2a9);},'ansiToHtml'(_0x3f6f49){if(_0x3f6f49===null||_0x3f6f49===undefined)return'';let _0x4a2cc0=this['escapeHtml'](_0x3f6f49);const _0x1c3f7f={'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'},_0x2e3eb5={'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 _0x34e803=0x0;return _0x4a2cc0=_0x4a2cc0['replace'](/\x1b\[([0-9;]*)m/g,(_0x27bbd4,_0x18d804)=>{if(!_0x18d804||_0x18d804==='0'){const _0x11c3a8='</span>'['repeat'](_0x34e803);return _0x34e803=0x0,_0x11c3a8;}const _0x3b6bb7=_0x18d804['split'](';'),_0x467ef6=[];for(const _0x4a2b85 of _0x3b6bb7){if(_0x4a2b85==='1')_0x467ef6['push']('font-weight:bold');else{if(_0x4a2b85==='2')_0x467ef6['push']('opacity:0.7');else{if(_0x4a2b85==='3')_0x467ef6['push']('font-style:italic');else{if(_0x4a2b85==='4')_0x467ef6['push']('text-decoration:underline');else{if(_0x4a2b85==='9')_0x467ef6['push']('text-decoration:line-through');else{if(_0x1c3f7f[_0x4a2b85])_0x467ef6['push']('color:'+_0x1c3f7f[_0x4a2b85]);else{if(_0x2e3eb5[_0x4a2b85])_0x467ef6['push']('background-color:'+_0x2e3eb5[_0x4a2b85]);}}}}}}}if(_0x467ef6['length']>0x0)return _0x34e803++,'<span\x20style=\x22'+_0x467ef6['join'](';')+'\x22>';return'';}),_0x4a2cc0+='</span>'['repeat'](_0x34e803),_0x4a2cc0=_0x4a2cc0['replace'](/\\u001b\[([0-9;]*)m/g,(_0x20ca70,_0x103a7f)=>{if(!_0x103a7f||_0x103a7f==='0')return'';const _0x518665=_0x103a7f['split'](';'),_0x13d138=[];for(const _0x9ea58c of _0x518665){if(_0x9ea58c==='1')_0x13d138['push']('font-weight:bold');else{if(_0x1c3f7f[_0x9ea58c])_0x13d138['push']('color:'+_0x1c3f7f[_0x9ea58c]);else{if(_0x2e3eb5[_0x9ea58c])_0x13d138['push']('background-color:'+_0x2e3eb5[_0x9ea58c]);}}}if(_0x13d138['length']>0x0)return'<span\x20style=\x22'+_0x13d138['join'](';')+'\x22>';return'';}),_0x4a2cc0;},'showModal'({title:_0x1c68fe,content:_0x75ac36,buttons:buttons=[]}){const _0x379731='\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'](_0x1c68fe)+'</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'+_0x75ac36+'\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']((_0x28a897,_0x4e6b14)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x28a897['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x4e6b14+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x28a897['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',_0x34e089=document['createElement']('div');_0x34e089['id']='utils-modal',_0x34e089['className']='modal',_0x34e089['innerHTML']=_0x379731,document['body']['appendChild'](_0x34e089);const _0xb09c24=document['getElementById']('utils-modal-close');_0xb09c24&&_0xb09c24['addEventListener']('click',()=>this['hideModal']());const _0x30d67a=_0x34e089['querySelectorAll']('[data-btn-index]');_0x30d67a['forEach'](_0x2d5790=>{const _0x2c3973=parseInt(_0x2d5790['dataset']['btnIndex']);buttons[_0x2c3973]?.['onClick']&&_0x2d5790['addEventListener']('click',buttons[_0x2c3973]['onClick']);});const _0x505816=document['getElementById']('utils-modal-overlay');_0x505816&&_0x505816['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x45801d=document['getElementById']('utils-modal');_0x45801d&&_0x45801d['remove']();},'parseKeyValuePairs'(_0x46fb5a){const _0x32b81a={};if(!_0x46fb5a)return _0x32b81a;return _0x46fb5a['split'](/\r?\n/)['map'](_0x3a6694=>_0x3a6694['trim']())['filter'](Boolean)['forEach'](_0x38ff95=>{const _0x15741c=_0x38ff95['indexOf']('=');if(_0x15741c>0x0){const _0x2f9fcc=_0x38ff95['slice'](0x0,_0x15741c)['trim'](),_0x2be0de=_0x38ff95['slice'](_0x15741c+0x1)['trim']();if(_0x2f9fcc)_0x32b81a[_0x2f9fcc]=_0x2be0de;}}),_0x32b81a;},'debounce'(_0x59a3c8,_0x22929d=0xfa){let _0x27bc95=null;return(..._0x46fefd)=>{clearTimeout(_0x27bc95),_0x27bc95=setTimeout(()=>_0x59a3c8['apply'](this,_0x46fefd),_0x22929d);};},'formatTimestamp'(_0x87cd){if(!_0x87cd)return'N/A';const _0x389c2c=new Date(_0x87cd);return _0x389c2c['toLocaleDateString']()+'\x20'+_0x389c2c['toLocaleTimeString']();},'getQueryParams'(){const _0x54054f=new URLSearchParams(window['location']['search']),_0x498bc9={};for(const [_0x24c3a3,_0x23a428]of _0x54054f){_0x498bc9[_0x24c3a3]=_0x23a428;}return _0x498bc9;},'formatDuration'(_0x56e9d6,_0x32ad47){if(!_0x56e9d6)return'N/A';const _0x5e5688=new Date(_0x56e9d6),_0x1dd074=_0x32ad47?new Date(_0x32ad47):new Date(),_0x303218=_0x1dd074-_0x5e5688;if(_0x303218<0x0)return'0s';const _0x56dd90=Math['floor'](_0x303218/0x3e8),_0x24f0d3=Math['floor'](_0x56dd90/0x3c),_0x362101=Math['floor'](_0x24f0d3/0x3c),_0x4bbb43=Math['floor'](_0x362101/0x18);if(_0x56dd90<0x3c)return _0x56dd90+'s';if(_0x24f0d3<0x3c)return _0x24f0d3+'m\x20'+_0x56dd90%0x3c+'s';if(_0x362101<0x18)return _0x362101+'h\x20'+_0x24f0d3%0x3c+'m\x20'+_0x56dd90%0x3c+'s';return _0x4bbb43+'d\x20'+_0x362101%0x18+'h\x20'+_0x24f0d3%0x3c+'m';},'renderMarkdown'(_0xa8311a,_0x4d32a8={}){if(!_0xa8311a)return'';_0xa8311a=this['rewriteAttachmentLinks'](_0xa8311a,_0x4d32a8),_0xa8311a=this['rewriteColorSyntax'](_0xa8311a);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0xa8311a,_0x4d32a8);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0xa8311a);}catch(_0x5ca3f7){return console['error']('Markdown\x20parsing\x20error:',_0x5ca3f7),this['renderMarkdownFallback'](_0xa8311a,_0x4d32a8);}},'rewriteAttachmentLinks'(_0x1a4fc7,_0x12ba8f={}){const _0x52ae6f=typeof _0x12ba8f['resolveAttachmentUrl']==='function'?_0x12ba8f['resolveAttachmentUrl']:_0x12ba8f['taskId']?_0x429ec1=>API_BASE+'/tasks/'+_0x12ba8f['taskId']+'/attachments/'+encodeURIComponent(_0x429ec1):null;if(!_0x52ae6f)return _0x1a4fc7;return String(_0x1a4fc7)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x50c56b,_0x3f0aa8)=>{const _0x12c9b1=String(_0x3f0aa8||'')['trim']();if(!_0x12c9b1)return _0x50c56b;let _0x4851f6=_0x12c9b1;try{_0x4851f6=decodeURIComponent(_0x12c9b1);}catch{}const _0x1c0270=_0x52ae6f(_0x4851f6);if(!_0x1c0270)return _0x50c56b;return']('+_0x1c0270+')';});},'rewriteColorSyntax'(_0x362c98){if(!_0x362c98)return _0x362c98;return String(_0x362c98)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x40c889,_0x3c8702,_0x416856)=>{const _0x19db5b=this['rewriteColorSyntax'](_0x416856);return'<span\x20style=\x22color:\x20'+_0x3c8702+'\x22>'+_0x19db5b+'</span>';});},'renderMarkdownFallback'(_0x25549,_0x11bd58={}){if(!_0x25549)return'';_0x25549=_0x25549['replace'](/\r\n/g,'\x0a'),_0x25549=_0x25549['replace'](/\r/g,'\x0a'),_0x25549=this['rewriteAttachmentLinks'](_0x25549,_0x11bd58);let _0x56518d=this['escapeHtml'](_0x25549);return _0x56518d=_0x56518d['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x56518d=_0x56518d['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x56518d=_0x56518d['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x56518d=_0x56518d['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x56518d=_0x56518d['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x56518d=_0x56518d['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x56518d=_0x56518d['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x56518d=_0x56518d['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x56518d=_0x56518d['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x56518d=_0x56518d['replace'](/\n\n/g,'</p><p>'),_0x56518d=_0x56518d['replace'](/\n/g,'<br>'),'<p>'+_0x56518d+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x3a6084=new Uint8Array(0x10);crypto['getRandomValues'](_0x3a6084),_0x3a6084[0x6]=_0x3a6084[0x6]&0xf|0x40,_0x3a6084[0x8]=_0x3a6084[0x8]&0x3f|0x80;const _0x5639cd=Array['from'](_0x3a6084,_0x526f4c=>_0x526f4c['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5639cd['slice'](0x0,0x8)+'-'+_0x5639cd['slice'](0x8,0xc)+'-'+_0x5639cd['slice'](0xc,0x10)+'-'+_0x5639cd['slice'](0x10,0x14)+'-'+_0x5639cd['slice'](0x14);}};export class CustomSelect{constructor(_0x3b0009,_0x445c16={}){this['nativeSelect']=_0x3b0009,this['options']=_0x445c16,this['isOpen']=![],this['selectedValue']=_0x3b0009['value']||'',this['searchable']=_0x445c16['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x340872=document['createElement']('div');_0x340872['className']='custom-select';const _0x201226=document['createElement']('div');_0x201226['className']='custom-select-trigger',_0x201226['setAttribute']('tabindex','0'),_0x201226['setAttribute']('role','button'),_0x201226['setAttribute']('aria-haspopup','listbox');const _0x5a9053=document['createElement']('span');_0x5a9053['className']='custom-select-trigger-text';const _0x366d87=document['createElement']('span');_0x366d87['className']='custom-select-arrow',_0x366d87['textContent']='▼',_0x201226['appendChild'](_0x5a9053),_0x201226['appendChild'](_0x366d87);const _0xb5033a=document['createElement']('div');_0xb5033a['className']='custom-select-dropdown',_0xb5033a['setAttribute']('role','listbox');if(this['searchable']){const _0x363d71=document['createElement']('div');_0x363d71['className']='custom-select-search';const _0x57200=document['createElement']('input');_0x57200['type']='text',_0x57200['className']='custom-select-search-input',_0x57200['placeholder']='Type\x20to\x20search...',_0x57200['setAttribute']('aria-label','Search\x20options'),_0x57200['addEventListener']('input',_0x824ff5=>{this['searchQuery']=_0x824ff5['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x57200['addEventListener']('keydown',_0x4bf0cd=>{if(_0x4bf0cd['key']==='Escape')_0x4bf0cd['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x4bf0cd['key']==='Enter'){_0x4bf0cd['preventDefault'](),_0x4bf0cd['stopPropagation']();const _0x595bc4=_0xb5033a['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x595bc4){const _0x11f34f=_0x595bc4['getAttribute']('data-value');this['select'](_0x11f34f);}}}}),_0x363d71['appendChild'](_0x57200),_0xb5033a['appendChild'](_0x363d71),this['searchInput']=_0x57200;}const _0x3d4dd5=document['createElement']('div');_0x3d4dd5['className']='custom-select-options',_0xb5033a['appendChild'](_0x3d4dd5),_0x340872['appendChild'](_0x201226),_0x340872['appendChild'](_0xb5033a),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x340872,this['nativeSelect']),this['wrapper']=_0x340872,this['trigger']=_0x201226,this['triggerText']=_0x5a9053,this['dropdown']=_0xb5033a,this['optionsContainer']=_0x3d4dd5,_0x201226['addEventListener']('click',()=>this['toggle']()),_0x201226['addEventListener']('keydown',_0x20c760=>this['handleKeydown'](_0x20c760)),document['addEventListener']('click',_0x459774=>{!_0x340872['contains'](_0x459774['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4dbe4c=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4dbe4c['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x2f712b=new MutationObserver(()=>{this['updateDisabledState']();});_0x2f712b['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4ecf03=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4ecf03['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x416f08=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x416f08),this['trigger']['setAttribute']('aria-disabled',_0x416f08?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x416f08?'-1':'0'),_0x416f08&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x166017=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x5a27f9=_0x166017['filter'](_0x12f2ba=>!_0x12f2ba['disabled']&&!_0x12f2ba['hidden']);_0x166017['forEach']((_0x399fa8,_0x16d181)=>{const _0x4e9c02=document['createElement']('div');_0x4e9c02['className']='custom-select-option',_0x4e9c02['textContent']=_0x399fa8['textContent'],_0x4e9c02['setAttribute']('data-value',_0x399fa8['value']),_0x4e9c02['setAttribute']('data-index',_0x16d181),_0x4e9c02['setAttribute']('role','option'),_0x399fa8['disabled']?_0x4e9c02['classList']['add']('disabled'):_0x4e9c02['addEventListener']('click',()=>this['select'](_0x399fa8['value'])),_0x399fa8['value']===this['selectedValue']&&_0x4e9c02['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x4e9c02),this['allOptions']['push']({'element':_0x4e9c02,'text':_0x399fa8['textContent']['toLowerCase'](),'value':_0x399fa8['value'],'disabled':_0x399fa8['disabled']});});if(this['searchable']&&this['searchInput']){const _0x420145=this['searchInput']['parentElement'];_0x5a27f9['length']>0x3?_0x420145['style']['display']='':_0x420145['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x17cdd7=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x8c447d=>{if(!_0x17cdd7||_0x8c447d['disabled'])_0x8c447d['element']['style']['display']='';else{const _0x485513=_0x8c447d['text']['includes'](_0x17cdd7);_0x8c447d['element']['style']['display']=_0x485513?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x1482bc){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x1482bc,this['nativeSelect']['value']=_0x1482bc;const _0x2a9537=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x2a9537),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x512bb6=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x512bb6&&(this['triggerText']['textContent']=_0x512bb6['textContent'],_0x512bb6['disabled']||_0x512bb6['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x4bdc23=>{_0x4bdc23['getAttribute']('data-value')===this['selectedValue']?_0x4bdc23['classList']['add']('selected'):_0x4bdc23['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 _0x8f5cb6=window['getComputedStyle'](this['dropdown']);if(_0x8f5cb6['position']==='fixed'){const _0x319535=this['trigger']['getBoundingClientRect'](),_0x43e454=parseInt(_0x8f5cb6['maxHeight'])||0xc8,_0xd7671=window['innerHeight'],_0x18d226=_0xd7671-_0x319535['bottom'],_0xb7d9dd=_0x319535['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x3941e8;_0x18d226<_0x43e454&&_0xb7d9dd>_0x18d226?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0xd7671-_0x319535['top']+'px',_0x3941e8=Math['min'](_0x43e454,_0xb7d9dd-0xa),this['dropdown']['style']['maxHeight']=_0x3941e8+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x319535['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x3941e8=Math['min'](_0x43e454,_0x18d226-0xa),this['dropdown']['style']['maxHeight']=_0x3941e8+'px');if(this['optionsContainer']){let _0x4967a0=_0x3941e8;if(this['searchInput']){const _0x2fe5c9=this['searchInput']['parentElement'];_0x2fe5c9&&(_0x4967a0-=_0x2fe5c9['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4967a0)+'px';}this['dropdown']['style']['left']=_0x319535['left']+'px',this['dropdown']['style']['width']=_0x319535['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0xd9ad65=this['searchInput']['parentElement'];_0xd9ad65&&_0xd9ad65['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'](_0x4ddd8b){if(this['nativeSelect']['disabled'])return;if(_0x4ddd8b['key']==='Enter'||_0x4ddd8b['key']==='\x20')_0x4ddd8b['preventDefault'](),this['toggle']();else _0x4ddd8b['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x17e225='\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',_0x17e225),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x5acd0a=document['getElementById']('confirm-dialog-close'),_0x1a0eae=document['getElementById']('confirm-dialog-cancel'),_0x153605=document['getElementById']('confirm-dialog-confirm'),_0x2c2e70=this['_modal']['querySelector']('.modal-overlay');_0x5acd0a['addEventListener']('click',()=>this['_resolve'](![])),_0x1a0eae['addEventListener']('click',()=>this['_resolve'](![])),_0x153605['addEventListener']('click',()=>this['_resolve'](!![])),_0x2c2e70['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1262c2=>{if(_0x1262c2['key']==='Escape')_0x1262c2['preventDefault'](),this['_resolve'](![]);else _0x1262c2['key']==='Enter'&&(_0x1262c2['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x20f4f9,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x4c2d41=>{this['_resolvePromise']=_0x4c2d41,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x20f4f9;const _0x2874f4=document['getElementById']('confirm-dialog-cancel'),_0xe497bb=document['getElementById']('confirm-dialog-confirm');_0x2874f4['textContent']=cancelText,_0xe497bb['textContent']=confirmText,_0xe497bb['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0xe497bb['focus']();});},'_resolve'(_0xda58ec){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0xda58ec),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x3d9a8b,_0x29783b={}){this['container']=_0x3d9a8b,this['options']={'placeholder':_0x29783b['placeholder']||'Type\x20to\x20search...','maxItems':_0x29783b['maxItems']||0x64,'loadItems':_0x29783b['loadItems']||(async()=>[]),'renderItem':_0x29783b['renderItem']||(_0x322064=>({'primary':String(_0x322064),'secondary':''})),'onSelect':_0x29783b['onSelect']||(()=>{}),'filterItems':_0x29783b['filterItems']||null,'getItemValue':_0x29783b['getItemValue']||(_0x1d4826=>_0x1d4826),'sortItems':_0x29783b['sortItems']||null,'debounceMs':_0x29783b['debounceMs']||0xc8,'minCharsForSearch':_0x29783b['minCharsForSearch']||0x0,'emptyMessage':_0x29783b['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x29783b['loadingMessage']||'Loading...','preload':_0x29783b['preload']!==![],'searchMode':_0x29783b['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',_0x18c30f=>this['onBlur'](_0x18c30f)),this['input']['addEventListener']('input',_0xbc4501=>this['onInput'](_0xbc4501)),this['input']['addEventListener']('keydown',_0xcf54a1=>this['onKeydown'](_0xcf54a1)),this['clearBtn']['addEventListener']('mousedown',_0x32c933=>{_0x32c933['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x5389d0=>{_0x5389d0['preventDefault']();}),document['addEventListener']('click',_0x4483b0=>{!this['wrapper']['contains'](_0x4483b0['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(_0x510087){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x510087);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x364b09){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x24e35b){const _0x5e9ffd=_0x24e35b['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x5e9ffd);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x5e9ffd):this['loadAndShow'](_0x5e9ffd);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x77f2c3){switch(_0x77f2c3['key']){case'ArrowDown':_0x77f2c3['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x77f2c3['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x77f2c3['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x77f2c3['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x587b16){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x40a936=this['selectedIndex']+_0x587b16;if(_0x40a936>=0x0&&_0x40a936<this['filteredItems']['length']){this['selectedIndex']=_0x40a936,this['updateSelectionHighlight']();const _0xb8c7e5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0xb8c7e5[this['selectedIndex']]&&_0xb8c7e5[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x357254=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x357254['forEach']((_0x473ab6,_0xd08a85)=>{_0x473ab6['classList']['toggle']('keyboard-selected',_0xd08a85===this['selectedIndex']);});}async['loadAndShow'](_0x2addf7){this['showLoading']();try{const _0x1de7e7=await this['options']['loadItems'](_0x2addf7);if(this['options']['searchMode']==='server'){let _0x4d1277=_0x1de7e7;this['options']['sortItems']&&(_0x4d1277=this['options']['sortItems']([..._0x1de7e7]));this['filteredItems']=_0x4d1277;const _0x549265=this['filteredItems']['length']>=this['options']['maxItems'];_0x549265&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549265),this['open']();}else this['allItems']=_0x1de7e7,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x2addf7);}catch(_0x5eac9c){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x5eac9c),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x3f3ea2){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x3f3ea2):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x2a3f64=this['filteredItems']['length']>=this['options']['maxItems'];_0x2a3f64&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x2a3f64),this['open']();}['renderItems'](_0x2fcd0d){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']((_0x38dad8,_0x4b17d9)=>{const _0x89b3f0=document['createElement']('div');_0x89b3f0['className']='autocomplete-select-item',_0x89b3f0['setAttribute']('role','option'),_0x89b3f0['setAttribute']('data-index',_0x4b17d9);const _0x45d2e8=this['options']['renderItem'](_0x38dad8);let _0x5a1d60='';_0x45d2e8['icon']&&(_0x5a1d60='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x45d2e8['iconClass']||'')+'\x22>'+_0x45d2e8['icon']+'</span>'),_0x89b3f0['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x5a1d60+'\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'](_0x45d2e8['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x45d2e8['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x45d2e8['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x89b3f0['addEventListener']('click',()=>{this['selectItem'](_0x38dad8);}),_0x89b3f0['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x4b17d9,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x89b3f0);}),_0x2fcd0d?(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'](_0x178212){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x178212)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2d57a7){this['selectedItem']=_0x2d57a7;const _0x3f9ed4=this['options']['renderItem'](_0x2d57a7);this['input']['value']=_0x3f9ed4['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2d57a7);}['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'](_0x36842b){if(_0x36842b){this['selectedItem']=_0x36842b;const _0x1829fc=this['options']['renderItem'](_0x36842b);this['input']['value']=_0x1829fc['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x1b5924){this['allItems']=_0x1b5924,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'](_0x429b15){this['input']['placeholder']=_0x429b15;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5a452b=null){const _0x145e06=document['getElementById']('admin-menu-container'),_0x6aaa3d=document['getElementById']('admin-menu-btn'),_0x2c4c7f=document['getElementById']('admin-menu');if(!_0x145e06||!_0x6aaa3d||!_0x2c4c7f)return;try{!_0x5a452b&&(_0x5a452b=await API['getCurrentUser']());if(_0x5a452b){const _0x3d2f9d=window['Permissions'],_0x464e69=_0x3d2f9d['hasServerPermission'](_0x5a452b,'*')||_0x3d2f9d['hasEnvPermission'](_0x5a452b,'environments:manage')||_0x3d2f9d['hasServerPermission'](_0x5a452b,'users:create')||_0x3d2f9d['hasTeamPermission'](_0x5a452b,'teams:manage')||_0x3d2f9d['hasEnvPermission'](_0x5a452b,'environments:view_details');if(!_0x464e69)return;_0x145e06['hidden']=![];if(!_0x3d2f9d['hasServerPermission'](_0x5a452b,'*')){const _0x341ce0=_0x2c4c7f['querySelectorAll']('.admin-menu-item');_0x341ce0['forEach'](_0x5c8ee4=>{const _0x87c0be=_0x5c8ee4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x87c0be==='Users'&&!_0x3d2f9d['hasServerPermission'](_0x5a452b,'users:create')&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Skills'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Server\x20Settings'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Server\x20Administration'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Git\x20History'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Roles'&&(_0x5c8ee4['hidden']=!![]);});}_0x6aaa3d['addEventListener']('click',_0x4e5a33=>{_0x4e5a33['stopPropagation']();const _0x19b6be=document['getElementById']('actions-menu');if(_0x19b6be)_0x19b6be['hidden']=!![];_0x2c4c7f['hidden']=!_0x2c4c7f['hidden'];}),document['addEventListener']('click',_0x575baf=>{!_0x2c4c7f['hidden']&&!_0x6aaa3d['contains'](_0x575baf['target'])&&!_0x2c4c7f['contains'](_0x575baf['target'])&&(_0x2c4c7f['hidden']=!![]);}),document['addEventListener']('keydown',_0x34e8b7=>{_0x34e8b7['key']==='Escape'&&!_0x2c4c7f['hidden']&&(_0x2c4c7f['hidden']=!![]);});}}catch(_0x1d608c){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x1d608c['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 _0xbabc90=window['location']['pathname'],_0x2c36a7=_0xbabc90['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x2c36a7)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x2c36a7[0x1]),_0x2c36a7[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xf38d32={}){const _0x2eada3=new URLSearchParams();_0xf38d32['userId']&&_0x2eada3['set']('userId',String(_0xf38d32['userId']));_0xf38d32['automation']&&_0x2eada3['set']('automation',String(_0xf38d32['automation']));const _0x323986=API_BASE+'/tasks/stats'+(_0x2eada3['toString']()?'?'+_0x2eada3['toString']():''),_0x5687d9=await fetch(_0x323986);if(!_0x5687d9['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5687d9['statusText']);return await _0x5687d9['json']();},async 'getTasks'(_0x30bc3f={}){const _0x37ae1a=new URLSearchParams();_0x30bc3f['status']&&_0x37ae1a['set']('status',String(_0x30bc3f['status']));_0x30bc3f['environment']&&_0x37ae1a['set']('environment',String(_0x30bc3f['environment']));_0x30bc3f['automation']&&_0x37ae1a['set']('automation',String(_0x30bc3f['automation']));if(_0x30bc3f['include']){const _0x3a2c7d=Array['isArray'](_0x30bc3f['include'])?_0x30bc3f['include']['join'](','):String(_0x30bc3f['include']);_0x3a2c7d&&_0x37ae1a['set']('include',_0x3a2c7d);}_0x30bc3f['filter']&&_0x37ae1a['set']('filter',String(_0x30bc3f['filter']));_0x30bc3f['page']&&_0x37ae1a['set']('page',String(_0x30bc3f['page']));_0x30bc3f['limit']&&_0x37ae1a['set']('limit',String(_0x30bc3f['limit']));_0x30bc3f['userId']&&_0x37ae1a['set']('userId',String(_0x30bc3f['userId']));_0x30bc3f['search']&&_0x37ae1a['set']('search',String(_0x30bc3f['search']));_0x30bc3f['includeChildTasks']&&_0x37ae1a['set']('includeChildTasks','true');const _0x5c388d=API_BASE+'/tasks'+(_0x37ae1a['toString']()?'?'+_0x37ae1a['toString']():''),_0x4f12f7=await fetch(_0x5c388d);if(!_0x4f12f7['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x4f12f7['statusText']);return await _0x4f12f7['json']();},async 'getAutomations'(_0x1eeb71={}){const _0x235902=new URLSearchParams();_0x1eeb71['environment']&&_0x235902['set']('environment',String(_0x1eeb71['environment']));const _0x9f0410=await fetch(API_BASE+'/api/automations'+(_0x235902['toString']()?'?'+_0x235902['toString']():''));if(!_0x9f0410['ok']){const _0x1b4924=await _0x9f0410['json']()['catch'](()=>({}));throw new Error(_0x1b4924['message']||_0x1b4924['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x9f0410['statusText']);}return await _0x9f0410['json']();},async 'getAutomation'(_0x7d699d){const _0x3a831b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x7d699d));if(!_0x3a831b['ok']){const _0x1b8531=await _0x3a831b['json']()['catch'](()=>({}));throw new Error(_0x1b8531['message']||_0x1b8531['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x3a831b['statusText']);}return await _0x3a831b['json']();},async 'createAutomation'(_0x54c520){const _0x31ea93=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x54c520||{})});if(!_0x31ea93['ok']){const _0x3772c1=await _0x31ea93['json']()['catch'](()=>({}));throw new Error(_0x3772c1['message']||_0x3772c1['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x31ea93['statusText']);}return await _0x31ea93['json']();},async 'updateAutomation'(_0x9c8e35,_0x46a99b){const _0x53cd12=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x9c8e35),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46a99b||{})});if(!_0x53cd12['ok']){const _0x5a5a66=await _0x53cd12['json']()['catch'](()=>({}));throw new Error(_0x5a5a66['message']||_0x5a5a66['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x53cd12['statusText']);}return await _0x53cd12['json']();},async 'deleteAutomation'(_0x36cbc1){const _0x1a7153=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36cbc1),{'method':'DELETE'});if(!_0x1a7153['ok']){const _0xd75c74=await _0x1a7153['json']()['catch'](()=>({}));throw new Error(_0xd75c74['message']||_0xd75c74['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x1a7153['statusText']);}return await _0x1a7153['json']();},async 'triggerAutomation'(_0x5102ed){const _0x42cb28=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5102ed)+'/trigger',{'method':'POST'});if(!_0x42cb28['ok']){const _0x17a1d0=await _0x42cb28['json']()['catch'](()=>({}));throw new Error(_0x17a1d0['message']||_0x17a1d0['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x42cb28['statusText']);}return await _0x42cb28['json']();},async 'setAutomationEnabled'(_0x468088,_0x8317e2){const _0x10c757=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x468088)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x8317e2})});if(!_0x10c757['ok']){const _0x2dd1d0=await _0x10c757['json']()['catch'](()=>({}));throw new Error(_0x2dd1d0['message']||_0x2dd1d0['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x10c757['statusText']);}return await _0x10c757['json']();},async 'getAutomationHistory'(_0x31edc8,_0x410140=0x32){const _0x21c1da=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x31edc8)+'/history?limit='+encodeURIComponent(String(_0x410140)));if(!_0x21c1da['ok']){const _0x52845d=await _0x21c1da['json']()['catch'](()=>({}));throw new Error(_0x52845d['message']||_0x52845d['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x21c1da['statusText']);}return await _0x21c1da['json']();},async 'getTask'(_0x5e0c9a,_0x31f84b={}){const _0x29f198=new URLSearchParams();if(_0x31f84b['include']){const _0x3080ad=Array['isArray'](_0x31f84b['include'])?_0x31f84b['include']['join'](','):String(_0x31f84b['include']);if(_0x3080ad)_0x29f198['set']('include',_0x3080ad);}const _0x246edd=await fetch(API_BASE+'/tasks/'+_0x5e0c9a+(_0x29f198['toString']()?'?'+_0x29f198['toString']():''));if(!_0x246edd['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x246edd['statusText']);return await _0x246edd['json']();},async 'getTaskResults'(_0x49b015){const _0x36bd93=await fetch(API_BASE+'/tasks/'+_0x49b015+'/results');if(!_0x36bd93['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x36bd93['statusText']);return await _0x36bd93['json']();},async 'getTaskPatches'(_0x3cf5b5){const _0x400dac=await fetch(API_BASE+'/tasks/'+_0x3cf5b5+'/patches');if(!_0x400dac['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x400dac['statusText']);return await _0x400dac['json']();},async 'getTaskAttachments'(_0x4dacea){const _0x595b4a=await fetch(API_BASE+'/tasks/'+_0x4dacea+'/attachments');if(!_0x595b4a['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x595b4a['statusText']);return await _0x595b4a['json']();},async 'uploadAttachments'(_0x23ee24,_0x17d3c2){const _0x3d2091=new FormData();for(const _0x256dd3 of _0x17d3c2){_0x3d2091['append']('attachments',_0x256dd3);}const _0x5253e2=await fetch(API_BASE+'/tasks/'+_0x23ee24+'/attachments',{'method':'POST','body':_0x3d2091});if(!_0x5253e2['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x5253e2['statusText']);return await _0x5253e2['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11a9ed=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11a9ed['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11a9ed['json']();}catch(_0xd33ec){return{'available':![],'reason':_0xd33ec['message']};}},async 'generateTaskName'(_0x16eaa3){try{const _0x18be3b=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x16eaa3})});return await _0x18be3b['json']();}catch(_0x31b3d6){return{'success':![],'error':_0x31b3d6['message']};}},async 'createTask'(_0x5a483f){let _0x445b41,_0x4ca2ec={};if(_0x5a483f['files']&&_0x5a483f['files']['length']>0x0){const _0x5594b4=new FormData();for(const [_0xd61fb4,_0x5f1245]of Object['entries'](_0x5a483f)){if(_0xd61fb4!=='files'){if(_0x5f1245==null)continue;typeof _0x5f1245==='object'?_0x5594b4['append'](_0xd61fb4,JSON['stringify'](_0x5f1245)):_0x5594b4['append'](_0xd61fb4,String(_0x5f1245));}}for(const _0x380db7 of _0x5a483f['files']){_0x5594b4['append']('attachments',_0x380db7);}_0x445b41=_0x5594b4;}else _0x4ca2ec['Content-Type']='application/json',_0x445b41=JSON['stringify'](_0x5a483f);const _0x20455d=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4ca2ec,'body':_0x445b41});if(!_0x20455d['ok']){const _0x4168c3=await _0x20455d['json'](),_0x54873a=new Error(_0x4168c3['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20455d['statusText']),{message:_0x3e9e8a,..._0x3ced4d}=_0x4168c3;Object['assign'](_0x54873a,_0x3ced4d);throw _0x54873a;}return await _0x20455d['json']();},async 'createTestTask'(_0x594c0e){const _0x1cedbc=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x594c0e)});if(!_0x1cedbc['ok']){const _0xdd11e6=await _0x1cedbc['json']();throw new Error(_0xdd11e6['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x1cedbc['statusText']);}return await _0x1cedbc['json']();},async 'createEphemeralTest'(_0x288095){const _0x1ed7a7=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x288095)});if(!_0x1ed7a7['ok']){const _0x489eed=await _0x1ed7a7['json']();throw new Error(_0x489eed['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x1ed7a7['statusText']);}return await _0x1ed7a7['json']();},async 'createDeployTask'(_0x249d25){const _0x32ef1a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x249d25)});if(!_0x32ef1a['ok']){const _0x2a08a6=await _0x32ef1a['json']();throw new Error(_0x2a08a6['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x32ef1a['statusText']);}return await _0x32ef1a['json']();},async 'getEnvironments'(){const _0x592312=await fetch(API_BASE+'/environments');if(!_0x592312['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x592312['statusText']);return await _0x592312['json']();},async 'getEnvironment'(_0x5d99b2){const _0x2f7565=await fetch(API_BASE+'/environments/'+_0x5d99b2);if(!_0x2f7565['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x2f7565['statusText']);return await _0x2f7565['json']();},async 'getEnvironmentRepoHistory'(_0x1327df,_0x1c98fd,_0x2bb249={}){if(!_0x1327df||!_0x1c98fd)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3b0730=new URLSearchParams();if(_0x2bb249['limit'])_0x3b0730['set']('limit',String(_0x2bb249['limit']));if(_0x2bb249['offset'])_0x3b0730['set']('offset',String(_0x2bb249['offset']));if(_0x2bb249['search'])_0x3b0730['set']('search',String(_0x2bb249['search']));if(_0x2bb249['branch'])_0x3b0730['set']('branch',String(_0x2bb249['branch']));const _0x3a60d1=API_BASE+'/environments/'+encodeURIComponent(_0x1327df)+'/repos/'+encodeURIComponent(_0x1c98fd)+'/git/history',_0xba887e=await fetch(''+_0x3a60d1+(_0x3b0730['toString']()?'?'+_0x3b0730['toString']():''));if(!_0xba887e['ok']){const _0x4bdc30=await _0xba887e['json']()['catch'](()=>({}));throw new Error(_0x4bdc30['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0xba887e['statusText']);}return await _0xba887e['json']();},async 'getEnvironmentRepoCommit'(_0x36ba4d,_0x324682,_0x24cb84){if(!_0x36ba4d||!_0x324682||!_0x24cb84)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xc083b6=API_BASE+'/environments/'+encodeURIComponent(_0x36ba4d)+'/repos/'+encodeURIComponent(_0x324682)+'/git/commits/'+encodeURIComponent(_0x24cb84),_0x1d65a2=await fetch(_0xc083b6);if(!_0x1d65a2['ok']){const _0x5ad44e=await _0x1d65a2['json']()['catch'](()=>({}));throw new Error(_0x5ad44e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d65a2['statusText']);}return await _0x1d65a2['json']();},async 'getEnvironmentRepoBranches'(_0x107482,_0x43f641){if(!_0x107482||!_0x43f641)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x425de8=API_BASE+'/environments/'+encodeURIComponent(_0x107482)+'/repos/'+encodeURIComponent(_0x43f641)+'/git/branches',_0x3ed290=await fetch(_0x425de8);if(!_0x3ed290['ok']){const _0x5c5403=await _0x3ed290['json']()['catch'](()=>({}));throw new Error(_0x5c5403['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x3ed290['statusText']);}return await _0x3ed290['json']();},async 'revertEnvironmentRepoCommit'(_0x1ec110,_0x2dd683,_0x28af5c,_0x2abcf6={}){if(!_0x1ec110||!_0x2dd683||!_0x28af5c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5af734=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x1ec110)+'/repos/'+encodeURIComponent(_0x2dd683)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x28af5c,..._0x2abcf6})});if(!_0x5af734['ok']){const _0x4df898=await _0x5af734['json']()['catch'](()=>({}));throw new Error(_0x4df898['message']||_0x4df898['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5af734['statusText']);}return await _0x5af734['json']();},async 'getTemplates'(_0x59342f={}){const _0x314437=new URLSearchParams();if(_0x59342f['include']){const _0x537eef=Array['isArray'](_0x59342f['include'])?_0x59342f['include']['join'](','):String(_0x59342f['include']);if(_0x537eef)_0x314437['set']('include',_0x537eef);}const _0x869a4a=await fetch(API_BASE+'/templates'+(_0x314437['toString']()?'?'+_0x314437['toString']():''));if(!_0x869a4a['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x869a4a['statusText']);return await _0x869a4a['json']();},async 'getTemplatesForEnvironment'(_0x3d5f94,_0x5a9b5e={}){if(!_0x3d5f94)throw new Error('Environment\x20name\x20is\x20required');const _0x4ac2e2=new URLSearchParams();if(_0x5a9b5e['include']){const _0x39cb5e=Array['isArray'](_0x5a9b5e['include'])?_0x5a9b5e['include']['join'](','):String(_0x5a9b5e['include']);if(_0x39cb5e)_0x4ac2e2['set']('include',_0x39cb5e);}const _0x426781=await fetch(API_BASE+'/templates/'+_0x3d5f94+(_0x4ac2e2['toString']()?'?'+_0x4ac2e2['toString']():''));if(!_0x426781['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x3d5f94+':\x20'+_0x426781['statusText']);return await _0x426781['json']();},async 'getTemplate'(_0x394f73,_0x15c937,_0x479005={}){if(!_0x394f73||!_0x15c937)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x1f4499=new URLSearchParams();if(_0x479005['include']){const _0xa32f9a=Array['isArray'](_0x479005['include'])?_0x479005['include']['join'](','):String(_0x479005['include']);if(_0xa32f9a)_0x1f4499['set']('include',_0xa32f9a);}const _0x9494f=await fetch(API_BASE+'/templates/'+_0x394f73+'/'+_0x15c937+(_0x1f4499['toString']()?'?'+_0x1f4499['toString']():''));if(!_0x9494f['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x9494f['statusText']);return await _0x9494f['json']();},async 'getTaskLogs'(_0x454230,_0x2ad465={}){if(!_0x454230)throw new Error('Task\x20ID\x20is\x20required');const _0x31ede0=new URLSearchParams();_0x2ad465['tail']&&_0x31ede0['set']('tail',String(_0x2ad465['tail']));const _0x44fe35=await fetch(API_BASE+'/tasks/'+_0x454230+'/logs'+(_0x31ede0['toString']()?'?'+_0x31ede0['toString']():''));if(!_0x44fe35['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x44fe35['statusText']);return await _0x44fe35['text']();},async 'getContainers'(){const _0x5ba29b=await fetch(API_BASE+'/containers');if(!_0x5ba29b['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x5ba29b['statusText']);return await _0x5ba29b['json']();},async 'getContainer'(_0x76aa53){const _0x4a0a0a=await fetch(API_BASE+'/containers/'+_0x76aa53);if(!_0x4a0a0a['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x4a0a0a['statusText']);return await _0x4a0a0a['json']();},async 'startInteractiveContainer'(_0x5435ee){const _0x494a3a=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5435ee)});if(!_0x494a3a['ok']){const _0x43f733=await _0x494a3a['json']()['catch'](()=>({}));throw new Error(_0x43f733['message']||'Failed\x20to\x20start\x20container:\x20'+_0x494a3a['statusText']);}return await _0x494a3a['json']();},async 'startContainerCodeServer'(_0x3d81a1,_0x1fa242={}){if(!_0x3d81a1)throw new Error('Container\x20ID\x20is\x20required');const _0x262301=new URLSearchParams();_0x1fa242['theme']&&_0x262301['set']('theme',_0x1fa242['theme']);const _0x11f3cd=await fetch(API_BASE+'/containers/'+_0x3d81a1+'/code-server'+(_0x262301['toString']()?'?'+_0x262301['toString']():'')),_0xe26e15=await _0x11f3cd['json']()['catch'](()=>({}));if(!_0x11f3cd['ok'])throw new Error(_0xe26e15['message']||_0xe26e15['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x11f3cd['statusText']);return _0xe26e15;},async 'stopContainer'(_0xa88d2a){const _0x22d4a6=await fetch(API_BASE+'/containers/'+_0xa88d2a,{'method':'DELETE'});if(!_0x22d4a6['ok']){const _0x5efb9e=await _0x22d4a6['json']()['catch'](()=>({}));throw new Error(_0x5efb9e['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x22d4a6['statusText']);}return await _0x22d4a6['json']();},async 'stopTask'(_0x9ccf72){if(!_0x9ccf72)throw new Error('Task\x20ID\x20is\x20required');const _0x4dc8de=await fetch(API_BASE+'/tasks/'+_0x9ccf72+'/stop',{'method':'POST'});if(!_0x4dc8de['ok']){const _0x2376cb=await _0x4dc8de['json']()['catch'](()=>({}));throw new Error(_0x2376cb['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x4dc8de['statusText']);}return await _0x4dc8de['json']();},async 'interruptTask'(_0xee208c){if(!_0xee208c)throw new Error('Task\x20ID\x20is\x20required');const _0x3d8636=await fetch(API_BASE+'/tasks/'+_0xee208c+'/interrupt',{'method':'POST'});if(!_0x3d8636['ok']){const _0x5e6162=await _0x3d8636['json']()['catch'](()=>({}));throw new Error(_0x5e6162['error']||_0x5e6162['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x3d8636['statusText']);}return await _0x3d8636['json']();},async 'startTask'(_0xdc2ff6){if(!_0xdc2ff6)throw new Error('Task\x20ID\x20is\x20required');const _0x53de6d=await fetch(API_BASE+'/tasks/'+_0xdc2ff6+'/start',{'method':'POST'});if(!_0x53de6d['ok']){const _0x2b8cbb=await _0x53de6d['json']()['catch'](()=>({}));throw new Error(_0x2b8cbb['error']||'Failed\x20to\x20start\x20task:\x20'+_0x53de6d['statusText']);}return await _0x53de6d['json']();},async 'deleteTask'(_0x54d914){if(!_0x54d914)throw new Error('Task\x20ID\x20is\x20required');const _0x280a30=await fetch(API_BASE+'/tasks/'+_0x54d914,{'method':'DELETE'});if(!_0x280a30['ok']){const _0x1f1bbd=await _0x280a30['json']()['catch'](()=>({}));throw new Error(_0x1f1bbd['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x280a30['statusText']);}return await _0x280a30['json']();},async 'refreshTasksFromDisk'(){const _0xafea4=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0xafea4['ok']){const _0x5ce4fd=await _0xafea4['json']()['catch'](()=>({}));throw new Error(_0x5ce4fd['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0xafea4['statusText']);}return await _0xafea4['json']();},async 'approveTask'(_0x759247,_0x2c9133={}){if(!_0x759247)throw new Error('Task\x20ID\x20is\x20required');const _0x42159d={'commit_message':_0x2c9133['commit_message']||'','pull':_0x2c9133['pull']??![],'push':_0x2c9133['push']??![],'conflict_strategy':_0x2c9133['conflict_strategy']||'rebase'};_0x2c9133['new_branch']&&(_0x42159d['new_branch']=_0x2c9133['new_branch']);const _0x2a6225=await fetch(API_BASE+'/tasks/'+_0x759247+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x42159d)});if(!_0x2a6225['ok']){const _0x5b5262=await _0x2a6225['json']()['catch'](()=>({}));let _0xa85a2d=_0x5b5262['error']||_0x5b5262['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x2a6225['statusText'];if(_0x5b5262['results']&&Array['isArray'](_0x5b5262['results'])){const _0x3bd9d4=_0x5b5262['results']['filter'](_0x222ae4=>!_0x222ae4['success']&&_0x222ae4['error']);_0x3bd9d4['length']>0x0&&(_0xa85a2d=_0x3bd9d4[0x0]['error']);}const _0x14c743=new Error(_0xa85a2d);_0x14c743['hasConflicts']=_0x5b5262['results']?.['some'](_0xc974e9=>_0xc974e9['conflict'])||![];throw _0x14c743;}return await _0x2a6225['json']();},async 'getPullRequestInfo'(_0x4fb2b6){if(!_0x4fb2b6)throw new Error('Task\x20ID\x20is\x20required');const _0x1336c6=await fetch(API_BASE+'/tasks/'+_0x4fb2b6+'/pull-request-info');if(!_0x1336c6['ok']){const _0x540de1=await _0x1336c6['json']()['catch'](()=>({}));throw new Error(_0x540de1['error']||_0x540de1['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x1336c6['statusText']);}return await _0x1336c6['json']();},async 'createPullRequests'(_0x255278,_0x58e98d){if(!_0x255278)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58e98d||!Array['isArray'](_0x58e98d))throw new Error('repos\x20array\x20is\x20required');const _0x1f7ad7=await fetch(API_BASE+'/tasks/'+_0x255278+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x58e98d})});if(!_0x1f7ad7['ok']){const _0x1c3fa1=await _0x1f7ad7['json']()['catch'](()=>({}));let _0x58bddb=_0x1c3fa1['error']||_0x1c3fa1['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x1f7ad7['statusText'];if(_0x1c3fa1['results']&&Array['isArray'](_0x1c3fa1['results'])){const _0x29d349=_0x1c3fa1['results']['filter'](_0x361e5c=>!_0x361e5c['success']&&_0x361e5c['error']);_0x29d349['length']>0x0&&(_0x58bddb=_0x29d349[0x0]['error']);}throw new Error(_0x58bddb);}return await _0x1f7ad7['json']();},async 'syncRepos'(_0x2f04dd){if(!_0x2f04dd)throw new Error('Task\x20ID\x20is\x20required');const _0x5763a6=await fetch(API_BASE+'/tasks/'+_0x2f04dd+'/sync-repos',{'method':'POST'});if(!_0x5763a6['ok']){const _0x3e7ff0=await _0x5763a6['json']()['catch'](()=>({}));throw new Error(_0x3e7ff0['error']||_0x3e7ff0['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5763a6['statusText']);}return await _0x5763a6['json']();},async 'getIbmiSyncInfo'(_0x191d27){if(!_0x191d27)throw new Error('Task\x20ID\x20is\x20required');const _0x3b94ca=await fetch(API_BASE+'/tasks/'+_0x191d27+'/ibmi-sync-info');if(!_0x3b94ca['ok']){const _0x445654=await _0x3b94ca['json']()['catch'](()=>({}));throw new Error(_0x445654['error']||_0x445654['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x3b94ca['json']();},async 'getSyncFiles'(_0x3d483a){if(!_0x3d483a)throw new Error('Task\x20ID\x20is\x20required');const _0x3a00f2=await fetch(API_BASE+'/tasks/'+_0x3d483a+'/sync-to-ibmi/files');if(!_0x3a00f2['ok']){const _0x19f7a5=await _0x3a00f2['json']()['catch'](()=>({}));throw new Error(_0x19f7a5['error']||_0x19f7a5['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x3a00f2['json']();},async 'syncToIbmi'(_0x2eafab,_0x49cbb9,_0x303d43=null,_0x43fc20=null,_0x21e252=null){if(!_0x2eafab)throw new Error('Task\x20ID\x20is\x20required');const _0x19521e={'library':_0x49cbb9};if(_0x303d43)_0x19521e['user']=_0x303d43;if(_0x43fc20)_0x19521e['password']=_0x43fc20;if(_0x21e252)_0x19521e['files']=_0x21e252;const _0x3300ef=await fetch(API_BASE+'/tasks/'+_0x2eafab+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19521e)});if(!_0x3300ef['ok']){const _0x22e1b8=await _0x3300ef['json']()['catch'](()=>({}));throw new Error(_0x22e1b8['error']||_0x22e1b8['message']||'Sync\x20failed');}return await _0x3300ef['json']();},async 'getIbmiSyncLog'(_0x16ab6b){if(!_0x16ab6b)throw new Error('Task\x20ID\x20is\x20required');const _0x2f986e=await fetch(API_BASE+'/tasks/'+_0x16ab6b+'/ibmi-sync-log');if(!_0x2f986e['ok']){const _0x1184f6=await _0x2f986e['json']()['catch'](()=>({}));throw new Error(_0x1184f6['error']||_0x1184f6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x2f986e['json']();},async 'pullChanges'(_0x181a9e){if(!_0x181a9e)throw new Error('Task\x20ID\x20is\x20required');const _0x19fa5d=await fetch(API_BASE+'/tasks/'+_0x181a9e+'/pull-changes',{'method':'POST'});if(!_0x19fa5d['ok']){const _0x3f049b=await _0x19fa5d['json']()['catch'](()=>({}));throw new Error(_0x3f049b['error']||_0x3f049b['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x19fa5d['statusText']);}return await _0x19fa5d['json']();},async 'readFile'(_0x3ae170,_0x2a157a){if(!_0x3ae170)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2a157a)throw new Error('File\x20path\x20is\x20required');const _0x5cd98a=await fetch(API_BASE+'/tasks/'+_0x3ae170+'/files?path='+encodeURIComponent(_0x2a157a));if(!_0x5cd98a['ok']){const _0x1a4966=await _0x5cd98a['json']()['catch'](()=>({}));throw new Error(_0x1a4966['error']||_0x1a4966['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5cd98a['statusText']);}return await _0x5cd98a['json']();},'getTaskFileDownloadUrl'(_0x259cb1,_0xc050f2){if(!_0x259cb1)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc050f2)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x259cb1+'/files/download?path='+encodeURIComponent(_0xc050f2);},async 'writeFile'(_0x352ccc,_0x284f3a,_0x4443b2){if(!_0x352ccc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x284f3a)throw new Error('File\x20path\x20is\x20required');if(_0x4443b2===undefined)throw new Error('Content\x20is\x20required');const _0x4e0abb=await fetch(API_BASE+'/tasks/'+_0x352ccc+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x284f3a,'content':_0x4443b2})});if(!_0x4e0abb['ok']){const _0x523b50=await _0x4e0abb['json']()['catch'](()=>({}));throw new Error(_0x523b50['error']||_0x523b50['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4e0abb['statusText']);}return await _0x4e0abb['json']();},async 'uploadTaskFiles'(_0x262f57,_0x57b457,_0x544c4a){if(!_0x262f57)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57b457)throw new Error('Target\x20directory\x20is\x20required');if(!_0x544c4a||_0x544c4a['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x3ae08f=new FormData();_0x3ae08f['append']('targetDir',_0x57b457);for(const _0x4d0871 of _0x544c4a){_0x3ae08f['append']('files',_0x4d0871,_0x4d0871['name']);}const _0x1bcab6=await fetch(API_BASE+'/tasks/'+_0x262f57+'/files/upload',{'method':'POST','body':_0x3ae08f});if(!_0x1bcab6['ok']){const _0x3550f3=await _0x1bcab6['json']()['catch'](()=>({}));throw new Error(_0x3550f3['error']||_0x3550f3['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x1bcab6['statusText']);}return await _0x1bcab6['json']();},async 'createDirectory'(_0x48cf5c,_0x511f96){if(!_0x48cf5c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x511f96)throw new Error('Directory\x20path\x20is\x20required');const _0x3f1bc8=await fetch(API_BASE+'/tasks/'+_0x48cf5c+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x511f96})});if(!_0x3f1bc8['ok']){const _0x205c75=await _0x3f1bc8['json']()['catch'](()=>({}));throw new Error(_0x205c75['error']||_0x205c75['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3f1bc8['statusText']);}return await _0x3f1bc8['json']();},async 'renamePath'(_0x3252dc,_0x3f8015,_0x1e37a6){if(!_0x3252dc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8015)throw new Error('Source\x20path\x20is\x20required');if(!_0x1e37a6)throw new Error('Destination\x20path\x20is\x20required');const _0x578f92=await fetch(API_BASE+'/tasks/'+_0x3252dc+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x3f8015,'newPath':_0x1e37a6})});if(!_0x578f92['ok']){const _0x266b98=await _0x578f92['json']()['catch'](()=>({}));throw new Error(_0x266b98['error']||_0x266b98['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x578f92['statusText']);}return await _0x578f92['json']();},async 'deleteFile'(_0x4077f0,_0x9e3465){if(!_0x4077f0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x9e3465)throw new Error('File\x20path\x20is\x20required');const _0x538b60=await fetch(API_BASE+'/tasks/'+_0x4077f0+'/files?path='+encodeURIComponent(_0x9e3465),{'method':'DELETE'});if(!_0x538b60['ok']){const _0x1c8719=await _0x538b60['json']()['catch'](()=>({}));throw new Error(_0x1c8719['error']||_0x1c8719['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x538b60['statusText']);}return await _0x538b60['json']();},async 'deleteDirectory'(_0x26251b,_0x3efc04){if(!_0x26251b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3efc04)throw new Error('Directory\x20path\x20is\x20required');const _0x17d990=await fetch(API_BASE+'/tasks/'+_0x26251b+'/files/directory?path='+encodeURIComponent(_0x3efc04),{'method':'DELETE'});if(!_0x17d990['ok']){const _0xe94af5=await _0x17d990['json']()['catch'](()=>({}));throw new Error(_0xe94af5['error']||_0xe94af5['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x17d990['statusText']);}return await _0x17d990['json']();},async 'discardFile'(_0x56e431,_0x4a2407,_0x5c2b60){if(!_0x56e431)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4a2407)throw new Error('File\x20path\x20is\x20required');if(!_0x5c2b60)throw new Error('Repository\x20path\x20is\x20required');const _0x284c1a=await fetch(API_BASE+'/tasks/'+_0x56e431+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4a2407,'repoPath':_0x5c2b60})});if(!_0x284c1a['ok']){const _0x503e57=await _0x284c1a['json']()['catch'](()=>({}));throw new Error(_0x503e57['error']||_0x503e57['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x284c1a['statusText']);}return await _0x284c1a['json']();},async 'followUpTask'(_0x22af91,_0x56e59c={}){if(!_0x22af91)throw new Error('Task\x20ID\x20is\x20required');if(!_0x56e59c['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x413418,_0x12ea86={};if(_0x56e59c['files']&&_0x56e59c['files']['length']>0x0){const _0x30006d=new FormData();_0x30006d['append']('instructions',_0x56e59c['instructions']);for(const _0x68d3ba of _0x56e59c['files']){_0x30006d['append']('attachments',_0x68d3ba);}_0x413418=_0x30006d;}else _0x12ea86['Content-Type']='application/json',_0x413418=JSON['stringify']({'instructions':_0x56e59c['instructions']});const _0x1e6166=await fetch(API_BASE+'/tasks/'+_0x22af91+'/follow-up',{'method':'POST','headers':_0x12ea86,'body':_0x413418});if(!_0x1e6166['ok']){const _0x394f5b=await _0x1e6166['json']()['catch'](()=>({}));throw new Error(_0x394f5b['error']||_0x394f5b['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1e6166['statusText']);}return await _0x1e6166['json']();},async 'getTaskRewindPoints'(_0x4c337b){if(!_0x4c337b)throw new Error('Task\x20ID\x20is\x20required');const _0x296ad1=await fetch(API_BASE+'/tasks/'+_0x4c337b+'/rewind-points');if(!_0x296ad1['ok']){const _0x449dc3=await _0x296ad1['json']()['catch'](()=>({}));throw new Error(_0x449dc3['error']||_0x449dc3['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x296ad1['statusText']);}return await _0x296ad1['json']();},async 'rewindTask'(_0x31a429,_0xe610e2={}){if(!_0x31a429)throw new Error('Task\x20ID\x20is\x20required');const _0x2ea5b6=Number['isInteger'](_0xe610e2['targetFollowUpCount'])?_0xe610e2['targetFollowUpCount']:0x0,_0x19cbaa={'targetFollowUpCount':_0x2ea5b6};typeof _0xe610e2['instructions']==='string'&&_0xe610e2['instructions']['trim']()&&(_0x19cbaa['instructions']=_0xe610e2['instructions']['trim']());typeof _0xe610e2['rewindFiles']==='boolean'&&(_0x19cbaa['rewindFiles']=_0xe610e2['rewindFiles']);const _0x17f0b2=await fetch(API_BASE+'/tasks/'+_0x31a429+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19cbaa)});if(!_0x17f0b2['ok']){const _0x4ce694=await _0x17f0b2['json']()['catch'](()=>({}));throw new Error(_0x4ce694['error']||_0x4ce694['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x17f0b2['statusText']);}return await _0x17f0b2['json']();},async 'login'(_0x43300e,_0x2a8588){const _0x199444=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x43300e,'password':_0x2a8588})});if(!_0x199444['ok']){const _0x1ff4cf=await _0x199444['json']();throw new Error(_0x1ff4cf['message']||'Login\x20failed');}return await _0x199444['json']();},async 'logout'(){const _0x34cf30=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x34cf30['ok']){const _0x5bf06b=await _0x34cf30['json']();throw new Error(_0x5bf06b['message']||'Logout\x20failed');}return await _0x34cf30['json']();},async 'getCurrentUser'(){const _0x399f7b=await fetch(API_BASE+'/auth/me');if(!_0x399f7b['ok'])throw new Error('Not\x20authenticated');const _0x33bdd1=await _0x399f7b['json']();return _0x33bdd1['user'];},async 'getRolesInfo'(){const _0x1b7298=await fetch(API_BASE+'/users/roles');if(!_0x1b7298['ok']){const _0x24f9cc=await _0x1b7298['json']();throw new Error(_0x24f9cc['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1b7298['json']();},async 'getUsers'(){const _0x256afb=await fetch(API_BASE+'/users');if(!_0x256afb['ok']){const _0x52d2f2=await _0x256afb['json']();throw new Error(_0x52d2f2['message']||'Failed\x20to\x20get\x20users');}return await _0x256afb['json']();},async 'getUser'(_0x2d1d58){const _0x5cc1b5=await fetch(API_BASE+'/users/'+_0x2d1d58);if(!_0x5cc1b5['ok']){const _0x1e9c50=await _0x5cc1b5['json']();throw new Error(_0x1e9c50['message']||'Failed\x20to\x20get\x20user');}return await _0x5cc1b5['json']();},async 'createUser'(_0x3a8314){const _0x4e9bca=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a8314)});if(!_0x4e9bca['ok']){const _0x409df0=await _0x4e9bca['json']();throw new Error(_0x409df0['message']||'Failed\x20to\x20create\x20user');}return await _0x4e9bca['json']();},async 'updateUser'(_0x19f662,_0x1b9240){const _0x27957b=await fetch(API_BASE+'/users/'+_0x19f662,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b9240)});if(!_0x27957b['ok']){const _0x56e776=await _0x27957b['json']();throw new Error(_0x56e776['message']||'Failed\x20to\x20update\x20user');}return await _0x27957b['json']();},async 'deleteUser'(_0x3f86e2){const _0x2ff7b9=await fetch(API_BASE+'/users/'+_0x3f86e2,{'method':'DELETE'});if(!_0x2ff7b9['ok']){const _0x41f491=await _0x2ff7b9['json']();throw new Error(_0x41f491['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ff7b9['json']();},async 'stopAllContainers'(){const _0x2f9548=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x1d2b55=await _0x2f9548['json']()['catch'](()=>({}));if(!_0x2f9548['ok'])throw new Error(_0x1d2b55['message']||_0x1d2b55['error']||'Failed\x20to\x20stop\x20containers');return _0x1d2b55;},async 'removeStoppedContainers'(){const _0x5cad37=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x19d687=await _0x5cad37['json']()['catch'](()=>({}));if(!_0x5cad37['ok'])throw new Error(_0x19d687['message']||_0x19d687['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x19d687;},async 'pruneDockerResources'(){const _0x113783=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x5f3ccd=await _0x113783['json']()['catch'](()=>({}));if(!_0x113783['ok'])throw new Error(_0x5f3ccd['message']||_0x5f3ccd['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x5f3ccd;},async 'getUpdateSettings'(){const _0x26ef41=await fetch(API_BASE+'/health/update-settings'),_0x30b179=await _0x26ef41['json']()['catch'](()=>({}));if(!_0x26ef41['ok'])throw new Error(_0x30b179['message']||_0x30b179['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x30b179;},async 'applyServerUpdate'(_0x5c7944){const _0x1dc7bd=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x5c7944})}),_0x52a1aa=await _0x1dc7bd['json']()['catch'](()=>({}));if(!_0x1dc7bd['ok']){const _0xe68cff=new Error(_0x52a1aa['message']||_0x52a1aa['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x52a1aa['output']!==undefined)_0xe68cff['output']=_0x52a1aa['output'];if(_0x52a1aa['error']!==undefined)_0xe68cff['commandError']=_0x52a1aa['error'];throw _0xe68cff;}return _0x52a1aa;},async 'restartServer'(){const _0x58b24b=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x32e304=await _0x58b24b['json']()['catch'](()=>({}));if(!_0x58b24b['ok'])throw new Error(_0x32e304['message']||_0x32e304['error']||'Failed\x20to\x20restart\x20server');return _0x32e304;},async 'createPasswordToken'(_0x1eaef3,_0x1652a3='setup',_0x324374=![]){const _0x19a79e=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x1eaef3,'type':_0x1652a3,'sendEmail':_0x324374})});if(!_0x19a79e['ok']){const _0x29bb2f=await _0x19a79e['json']();throw new Error(_0x29bb2f['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x19a79e['json']();},async 'getEmailConfig'(){const _0x1f213b=await fetch(API_BASE+'/password/email-config');if(!_0x1f213b['ok']){const _0x49c4b4=await _0x1f213b['json']();throw new Error(_0x49c4b4['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x1f213b['json']();},async 'updateTaskName'(_0x412501,_0x953b73){const _0x2ea2fa=await fetch(API_BASE+'/tasks/'+_0x412501,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x953b73})});if(!_0x2ea2fa['ok']){const _0x51a22c=await _0x2ea2fa['json']();throw new Error(_0x51a22c['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x2ea2fa['json']();},async 'pinTask'(_0x1038dc,_0x454a8d,_0x17eb82=null){if(!_0x1038dc)throw new Error('Task\x20ID\x20is\x20required');const _0x36e66c={'pinned':_0x454a8d};_0x17eb82&&_0x17eb82['length']>0x0&&(_0x36e66c['additionalTaskIds']=_0x17eb82);const _0x4574b5=await fetch(API_BASE+'/tasks/'+_0x1038dc+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36e66c)});if(!_0x4574b5['ok']){const _0x49c9f2=await _0x4574b5['json']();throw new Error(_0x49c9f2['error']||'Failed\x20to\x20pin\x20task');}return await _0x4574b5['json']();},async 'setTaskWinner'(_0x2a2ea1,_0x3c4163,_0xf17619=[]){if(!_0x2a2ea1)throw new Error('Task\x20ID\x20is\x20required');const _0xa7f671=await fetch(API_BASE+'/tasks/'+_0x2a2ea1+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x3c4163,'siblings':_0xf17619})});if(!_0xa7f671['ok']){const _0x23e7d3=await _0xa7f671['json']();throw new Error(_0x23e7d3['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0xa7f671['json']();},async 'setTaskLoser'(_0xd6735b,_0x48af0f){if(!_0xd6735b)throw new Error('Task\x20ID\x20is\x20required');const _0x19bb7c=await fetch(API_BASE+'/tasks/'+_0xd6735b+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x48af0f})});if(!_0x19bb7c['ok']){const _0x486c0f=await _0x19bb7c['json']();throw new Error(_0x486c0f['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x19bb7c['json']();},async 'createTaskGroup'(_0x20acb2){const _0x41d931=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20acb2)});if(!_0x41d931['ok']){const _0xe50172=await _0x41d931['json']();throw new Error(_0xe50172['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x41d931['json']();},async 'getTaskGroups'(_0x16ee38={}){const _0x4bb728=new URLSearchParams();if(_0x16ee38['userId'])_0x4bb728['set']('userId',String(_0x16ee38['userId']));if(_0x16ee38['status'])_0x4bb728['set']('status',String(_0x16ee38['status']));if(_0x16ee38['limit'])_0x4bb728['set']('limit',String(_0x16ee38['limit']));const _0x4adb6b=API_BASE+'/tasks/groups'+(_0x4bb728['toString']()?'?'+_0x4bb728['toString']():''),_0x52c19f=await fetch(_0x4adb6b);if(!_0x52c19f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x52c19f['json']();},async 'getTaskGroup'(_0x1284c5){const _0x30d4da=await fetch(API_BASE+'/tasks/groups/'+_0x1284c5);if(!_0x30d4da['ok']){const _0x7327c8=await _0x30d4da['json']();throw new Error(_0x7327c8['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x30d4da['json']();},async 'updateTaskGroup'(_0x4325a3,_0x2ab1e8,_0x5cf83d){const _0x61721c=await fetch(API_BASE+'/tasks/'+_0x4325a3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2ab1e8,'groupIndex':_0x5cf83d})});if(!_0x61721c['ok']){const _0x3e37a1=await _0x61721c['json']();throw new Error(_0x3e37a1['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x61721c['json']();},async 'removeTaskFromGroup'(_0x17bfd3){return this['updateTaskGroup'](_0x17bfd3,null,null);},async 'deleteTaskGroup'(_0x453f1b,_0x1db5b2=![]){const _0x4ee903=_0x1db5b2?'?deleteTasks=true':'',_0x4d22cc=await fetch(API_BASE+'/tasks/groups/'+_0x453f1b+_0x4ee903,{'method':'DELETE'});if(!_0x4d22cc['ok']){const _0x107f02=await _0x4d22cc['json']();throw new Error(_0x107f02['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x4ad74f,_0x1615a8){const _0x2716fa=await fetch(API_BASE+'/tasks/groups/'+_0x4ad74f+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1615a8})});if(!_0x2716fa['ok']){const _0xb18e21=await _0x2716fa['json']();throw new Error(_0xb18e21['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x2716fa['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3beab1){if(!_0x3beab1)throw new Error('Task\x20ID\x20is\x20required');const _0x5b9de5=await fetch(API_BASE+'/tasks/'+_0x3beab1+'/comments');if(!_0x5b9de5['ok']){const _0x2c04d8=await _0x5b9de5['json']()['catch'](()=>({}));throw new Error(_0x2c04d8['error']||'Failed\x20to\x20get\x20comments');}return await _0x5b9de5['json']();},async 'addComment'(_0x1e7a85,_0x28bab6){if(!_0x1e7a85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28bab6)throw new Error('Comment\x20content\x20is\x20required');const _0x4dfc11=await fetch(API_BASE+'/tasks/'+_0x1e7a85+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x28bab6})});if(!_0x4dfc11['ok']){const _0x1147be=await _0x4dfc11['json']()['catch'](()=>({}));throw new Error(_0x1147be['error']||'Failed\x20to\x20add\x20comment');}return await _0x4dfc11['json']();},async 'updateComment'(_0x3bf2c9,_0x43c1f2,_0x1759d8){if(!_0x3bf2c9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x43c1f2)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x1759d8)throw new Error('Comment\x20content\x20is\x20required');const _0x368ff0=await fetch(API_BASE+'/tasks/'+_0x3bf2c9+'/comments/'+_0x43c1f2,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x1759d8})});if(!_0x368ff0['ok']){const _0x4e39ab=await _0x368ff0['json']()['catch'](()=>({}));throw new Error(_0x4e39ab['error']||'Failed\x20to\x20update\x20comment');}return await _0x368ff0['json']();},async 'deleteComment'(_0x21e483,_0x1c2591){if(!_0x21e483)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c2591)throw new Error('Comment\x20ID\x20is\x20required');const _0x117a0a=await fetch(API_BASE+'/tasks/'+_0x21e483+'/comments/'+_0x1c2591,{'method':'DELETE'});if(!_0x117a0a['ok']){const _0x4fd4dd=await _0x117a0a['json']()['catch'](()=>({}));throw new Error(_0x4fd4dd['error']||'Failed\x20to\x20delete\x20comment');}return await _0x117a0a['json']();},async 'createObjective'(_0x35c186){const _0x8078f1={'objective':!![],'name':_0x35c186['name']||'','environment':_0x35c186['environment']||null,'agents':_0x35c186['agents']||[],'branches':_0x35c186['branches']||{},'isPinned':_0x35c186['isPinned']||![],'parentObjectiveId':_0x35c186['parentObjectiveId']||null,'env_vars':_0x35c186['envVars']||{},'parameters':{'instructions':_0x35c186['instructions']||''},'files':_0x35c186['files']||[],'jira':_0x35c186['jira']||null};return this['createTask'](_0x8078f1);},async 'updateObjective'(_0x4eaacb,_0x1f85f8,_0x3a6d94=[],_0x1ff377=[]){let _0x17a3d3,_0xcf0093={};const _0x1b2ee0={..._0x1f85f8};_0x1ff377&&_0x1ff377['length']>0x0&&(_0x1b2ee0['removeAttachments']=_0x1ff377);if(_0x3a6d94&&_0x3a6d94['length']>0x0){const _0x52d26b=new FormData();for(const [_0x4c7ca6,_0xb36e17]of Object['entries'](_0x1b2ee0)){if(_0xb36e17==null)continue;typeof _0xb36e17==='object'?_0x52d26b['append'](_0x4c7ca6,JSON['stringify'](_0xb36e17)):_0x52d26b['append'](_0x4c7ca6,String(_0xb36e17));}for(const _0x42c04f of _0x3a6d94){_0x52d26b['append']('attachments',_0x42c04f);}_0x17a3d3=_0x52d26b;}else _0xcf0093['Content-Type']='application/json',_0x17a3d3=JSON['stringify'](_0x1b2ee0);const _0x26e7c6=await fetch(API_BASE+'/tasks/'+_0x4eaacb,{'method':'PATCH','headers':_0xcf0093,'body':_0x17a3d3});if(!_0x26e7c6['ok']){const _0x1c386a=await _0x26e7c6['json']();throw new Error(_0x1c386a['error']||'Failed\x20to\x20update\x20objective');}return await _0x26e7c6['json']();},async 'deleteObjective'(_0x41d5aa){return this['deleteTask'](_0x41d5aa);},async 'launchObjective'(_0x4ca7b5,_0x41cc20={}){const _0xd443b5=await fetch(API_BASE+'/tasks/'+_0x4ca7b5+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41cc20)});if(!_0xd443b5['ok']){const _0x1632f1=await _0xd443b5['json']();throw new Error(_0x1632f1['error']||'Failed\x20to\x20launch\x20objective');}return await _0xd443b5['json']();},async 'getObjectiveAttachments'(_0x282238){return this['getTaskAttachments'](_0x282238);},async 'createJudgeTask'({environment:_0x186d45,judgeAgent:_0x1c7b44,groupId:_0x3a7181,taskIds:_0x12c1aa,judgeCustomInstructions:_0x65daa2,isPinned:_0x2396ac}){const _0x11e0ac=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x186d45,'judgeAgent':_0x1c7b44,'groupId':_0x3a7181,'taskIds':_0x12c1aa,'judgeCustomInstructions':_0x65daa2,'isPinned':_0x2396ac})});if(!_0x11e0ac['ok']){const _0x3c2699=await _0x11e0ac['json']();throw new Error(_0x3c2699['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x11e0ac['json']();},async 'getJudgeTasks'(_0x5dcfa0){const _0x2df833=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5dcfa0));if(!_0x2df833['ok']){const _0x2bdd6c=await _0x2df833['json']();throw new Error(_0x2bdd6c['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x2df833['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4a498d,_0x534ca2,_0x276325=''){const _0x46e02d=await fetch(API_BASE+'/tasks/'+_0x4a498d+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x534ca2,'customPreamble':_0x276325})});if(!_0x46e02d['ok']){const _0x32815e=await _0x46e02d['json']();throw new Error(_0x32815e['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x46e02d['json']();},async 'getJiraConfig'(){const _0x4ef621=await fetch(API_BASE+'/jira/config');if(!_0x4ef621['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4ef621['json']();},async 'getJiraIssue'(_0x5f39b5){const _0x2fc090=await fetch(API_BASE+'/jira/issues/'+_0x5f39b5);if(!_0x2fc090['ok']){const _0x3e3027=await _0x2fc090['json']()['catch'](()=>({}));throw new Error(_0x3e3027['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2fc090['statusText']);}return await _0x2fc090['json']();},async 'searchJiraIssues'(_0x414692,_0x453d80=0x14){const _0x953c13=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x414692,'maxResults':_0x453d80})});if(!_0x953c13['ok']){const _0x556f16=await _0x953c13['json']()['catch'](()=>({}));throw new Error(_0x556f16['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x953c13['statusText']);}return await _0x953c13['json']();},async 'postJiraComment'(_0x1618eb,_0x81d1be){const _0x5b1acd=await fetch(API_BASE+'/jira/issues/'+_0x1618eb+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x81d1be})});if(!_0x5b1acd['ok']){const _0x28fb80=await _0x5b1acd['json']()['catch'](()=>({}));throw new Error(_0x28fb80['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x5b1acd['statusText']);}return await _0x5b1acd['json']();},async 'getJiraComments'(_0x25b4a0){const _0x2fe78f=await fetch(API_BASE+'/jira/issues/'+_0x25b4a0+'/comments');if(!_0x2fe78f['ok']){const _0x2061ba=await _0x2fe78f['json']()['catch'](()=>({}));throw new Error(_0x2061ba['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x2fe78f['statusText']);}return await _0x2fe78f['json']();},async 'promptParameter'({environment:_0x1f943b,command:_0x27fff5,parser:parser='json'}){const _0x26723d=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1f943b,'command':_0x27fff5,'parser':parser})});if(!_0x26723d['ok']){const _0x62ceca=await _0x26723d['json']()['catch'](()=>({}));throw new Error(_0x62ceca['message']||_0x62ceca['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x26723d['statusText']);}return await _0x26723d['json']();},async 'promptParameterStream'(_0x219bf4,_0x4fe28d){const _0x52f3c3=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x219bf4)});if(!_0x52f3c3['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x52f3c3['statusText']);const _0x3e7192=_0x52f3c3['body']['getReader'](),_0x1986c9=new TextDecoder();let _0x906fce='';return new Promise((_0x395f85,_0x137292)=>{const _0x3d78da=async()=>{try{const {done:_0x8c746e,value:_0x55521d}=await _0x3e7192['read']();if(_0x8c746e)return;_0x906fce+=_0x1986c9['decode'](_0x55521d,{'stream':!![]});const _0xe4c645=_0x906fce['split']('\x0a\x0a');_0x906fce=_0xe4c645['pop']()||'';for(const _0x542b53 of _0xe4c645){if(!_0x542b53['trim']())continue;const _0x49ea39=_0x542b53['split']('\x0a');let _0x582632='message',_0x49823a='';for(const _0x42c48c of _0x49ea39){if(_0x42c48c['startsWith']('event:'))_0x582632=_0x42c48c['substring'](0x6)['trim']();else _0x42c48c['startsWith']('data:')&&(_0x49823a=_0x42c48c['substring'](0x5)['trim']());}if(!_0x49823a)continue;try{const _0x2e631b=JSON['parse'](_0x49823a);if(_0x582632==='progress'&&_0x4fe28d)_0x4fe28d(_0x2e631b['stage'],_0x2e631b['message']);else{if(_0x582632==='result'){_0x395f85(_0x2e631b);return;}else{if(_0x582632==='error'){let _0x195d8c=_0x2e631b['message']||_0x2e631b['error']||'Prompt\x20command\x20failed';_0x2e631b['rawOutput']&&(_0x195d8c+='\x0a\x0aRaw\x20output:\x0a'+_0x2e631b['rawOutput']);_0x137292(new Error(_0x195d8c));return;}}}}catch(_0x245ac7){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x245ac7),console['error']('Event\x20type:',_0x582632),console['error']('Event\x20data:',_0x49823a),console['error']('First\x20200\x20chars:',_0x49823a['substring'](0x0,0xc8)),_0x137292(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x245ac7['message']+'\x0a\x0aData:\x20'+_0x49823a['substring'](0x0,0x1f4)));return;}}_0x3d78da();}catch(_0x5ba70d){_0x137292(_0x5ba70d);}};_0x3d78da();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x2d8a73){const _0x10c448=await fetch(''+API_BASE+_0x2d8a73);if(!_0x10c448['ok']){const _0x547400=await _0x10c448['json']()['catch'](()=>({'error':_0x10c448['statusText']})),_0x312496=new Error(_0x547400['error']||_0x547400['message']||_0x10c448['statusText']);if(_0x547400['detail']!==undefined)_0x312496['detail']=_0x547400['detail'];throw _0x312496;}return await _0x10c448['json']();},async 'post'(_0x905d49,_0x49d2b9){const _0x31da26=await fetch(''+API_BASE+_0x905d49,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x49d2b9)});if(!_0x31da26['ok']){const _0x1d2466=await _0x31da26['json']()['catch'](()=>({'error':_0x31da26['statusText']})),_0xe16d70=new Error(_0x1d2466['error']||_0x1d2466['message']||_0x31da26['statusText']);if(_0x1d2466['detail']!==undefined)_0xe16d70['detail']=_0x1d2466['detail'];throw _0xe16d70;}return await _0x31da26['json']();},async 'put'(_0x5ab473,_0x23c0a7){const _0x1decc7=await fetch(''+API_BASE+_0x5ab473,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23c0a7)});if(!_0x1decc7['ok']){const _0x56149e=await _0x1decc7['json']()['catch'](()=>({'error':_0x1decc7['statusText']})),_0x31ebc8=new Error(_0x56149e['error']||_0x56149e['message']||_0x1decc7['statusText']);if(_0x56149e['detail']!==undefined)_0x31ebc8['detail']=_0x56149e['detail'];throw _0x31ebc8;}return await _0x1decc7['json']();},async 'delete'(_0x3b05af,_0xda411b){const _0x57aa17={'method':'DELETE'};_0xda411b&&(_0x57aa17['headers']={'Content-Type':'application/json'},_0x57aa17['body']=JSON['stringify'](_0xda411b));const _0x49bd65=await fetch(''+API_BASE+_0x3b05af,_0x57aa17);if(!_0x49bd65['ok']){const _0x42417b=await _0x49bd65['json']()['catch'](()=>({'error':_0x49bd65['statusText']})),_0x3ef207=new Error(_0x42417b['error']||_0x42417b['message']||_0x49bd65['statusText']);if(_0x42417b['detail']!==undefined)_0x3ef207['detail']=_0x42417b['detail'];throw _0x3ef207;}return await _0x49bd65['json']();},async 'getSkills'(){const _0x598114=await fetch(API_BASE+'/skills');if(!_0x598114['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x598114['statusText']);return await _0x598114['json']();},async 'getSkill'(_0x28abe7){const _0x5ac6b7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x28abe7));if(!_0x5ac6b7['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5ac6b7['statusText']);return await _0x5ac6b7['json']();},async 'createSkill'(_0x396de2){const _0xeb9d65=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x396de2)});if(!_0xeb9d65['ok']){const _0x33ead1=await _0xeb9d65['json']()['catch'](()=>({'error':_0xeb9d65['statusText']})),_0x11021b=new Error(_0x33ead1['error']||_0x33ead1['message']||_0xeb9d65['statusText']);if(_0x33ead1['detail']!==undefined)_0x11021b['detail']=_0x33ead1['detail'];throw _0x11021b;}return await _0xeb9d65['json']();},async 'updateSkill'(_0xaf8f47,_0xa8b73b){const _0x1d1238=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xaf8f47),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa8b73b)});if(!_0x1d1238['ok']){const _0x1623b1=await _0x1d1238['json']()['catch'](()=>({'error':_0x1d1238['statusText']})),_0x5e74a8=new Error(_0x1623b1['error']||_0x1623b1['message']||_0x1d1238['statusText']);if(_0x1623b1['detail']!==undefined)_0x5e74a8['detail']=_0x1623b1['detail'];throw _0x5e74a8;}return await _0x1d1238['json']();},async 'deleteSkill'(_0x2b16c1){const _0x1efce0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2b16c1),{'method':'DELETE'});if(!_0x1efce0['ok']){const _0x4be874=await _0x1efce0['json']()['catch'](()=>({'error':_0x1efce0['statusText']})),_0x4c288b=new Error(_0x4be874['error']||_0x4be874['message']||_0x1efce0['statusText']);if(_0x4be874['detail']!==undefined)_0x4c288b['detail']=_0x4be874['detail'];throw _0x4c288b;}return await _0x1efce0['json']();},async 'getSkillFile'(_0xcde190,_0x64567e){const _0x516b20=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xcde190)+'/files/'+_0x64567e);if(!_0x516b20['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x516b20['statusText']);return await _0x516b20['json']();},async 'saveSkillFile'(_0x30e134,_0x2d06fd,_0x105fb9){const _0x2aafdc=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x30e134)+'/files/'+_0x2d06fd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x105fb9})});if(!_0x2aafdc['ok']){const _0x5aa32c=await _0x2aafdc['json']()['catch'](()=>({'error':_0x2aafdc['statusText']})),_0x9935ff=new Error(_0x5aa32c['error']||_0x5aa32c['message']||_0x2aafdc['statusText']);if(_0x5aa32c['detail']!==undefined)_0x9935ff['detail']=_0x5aa32c['detail'];throw _0x9935ff;}return await _0x2aafdc['json']();},async 'deleteSkillFile'(_0x5317c3,_0x397836){const _0x1caff6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5317c3)+'/files/'+_0x397836,{'method':'DELETE'});if(!_0x1caff6['ok']){const _0x3b624e=await _0x1caff6['json']()['catch'](()=>({'error':_0x1caff6['statusText']})),_0x1a6415=new Error(_0x3b624e['error']||_0x3b624e['message']||_0x1caff6['statusText']);if(_0x3b624e['detail']!==undefined)_0x1a6415['detail']=_0x3b624e['detail'];throw _0x1a6415;}return await _0x1caff6['json']();},async 'pullSkills'(){const _0x3d444c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x3d444c['ok']){const _0x227bea=await _0x3d444c['json']()['catch'](()=>({'error':_0x3d444c['statusText']})),_0x105a4e=new Error(_0x227bea['error']||_0x227bea['message']||_0x3d444c['statusText']);if(_0x227bea['detail']!==undefined)_0x105a4e['detail']=_0x227bea['detail'];throw _0x105a4e;}return await _0x3d444c['json']();},async 'commitSkills'(_0x4251a8,_0xe28768={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0xe28768,_0x53d0bf=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x4251a8,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x53d0bf['ok']){const _0x586550=await _0x53d0bf['json']()['catch'](()=>({'error':_0x53d0bf['statusText']})),_0x1a53ca=new Error(_0x586550['error']||_0x586550['message']||_0x53d0bf['statusText']);if(_0x586550['detail']!==undefined)_0x1a53ca['detail']=_0x586550['detail'];throw _0x1a53ca;}return await _0x53d0bf['json']();},async 'discardSkillsChanges'(){const _0x1201f1=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1201f1['ok']){const _0x3ae836=await _0x1201f1['json']()['catch'](()=>({'error':_0x1201f1['statusText']})),_0x73c4e=new Error(_0x3ae836['error']||_0x3ae836['message']||_0x1201f1['statusText']);if(_0x3ae836['detail']!==undefined)_0x73c4e['detail']=_0x3ae836['detail'];throw _0x73c4e;}return await _0x1201f1['json']();},async 'getSkillCatalog'(){const _0x1bea44=await fetch(API_BASE+'/external-skills/catalog');if(!_0x1bea44['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x1bea44['statusText']);return await _0x1bea44['json']();},async 'getImportedSkillsRegistry'(){const _0x14e19f=await fetch(API_BASE+'/external-skills/registry');if(!_0x14e19f['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x14e19f['statusText']);return await _0x14e19f['json']();},async 'importCatalogSkill'(_0x4c1167){const _0x1a9717=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x4c1167})});if(!_0x1a9717['ok']){const _0x484d5b=await _0x1a9717['json']()['catch'](()=>({'error':_0x1a9717['statusText']})),_0x4d8951=new Error(_0x484d5b['error']||_0x484d5b['message']||_0x1a9717['statusText']);if(_0x484d5b['detail']!==undefined)_0x4d8951['detail']=_0x484d5b['detail'];throw _0x4d8951;}return await _0x1a9717['json']();},async 'importSkillFromGit'(_0x3e7de3,_0x13278c,_0x1a0d96='main',_0x4c3d29=null){const _0x49d8e5=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3e7de3,'skillPath':_0x13278c,'branch':_0x1a0d96,'skillId':_0x4c3d29})});if(!_0x49d8e5['ok']){const _0x3bfc77=await _0x49d8e5['json']()['catch'](()=>({'error':_0x49d8e5['statusText']})),_0x2de801=new Error(_0x3bfc77['error']||_0x3bfc77['message']||_0x49d8e5['statusText']);if(_0x3bfc77['detail']!==undefined)_0x2de801['detail']=_0x3bfc77['detail'];throw _0x2de801;}return await _0x49d8e5['json']();},async 'probeMarketplace'(_0x465645,_0x4df8ec='main'){const _0x56beaa=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x465645,'branch':_0x4df8ec})});if(!_0x56beaa['ok']){const _0x1262a5=await _0x56beaa['json']()['catch'](()=>({'error':_0x56beaa['statusText']})),_0xaa5968=new Error(_0x1262a5['error']||_0x1262a5['message']||_0x56beaa['statusText']);if(_0x1262a5['detail']!==undefined)_0xaa5968['detail']=_0x1262a5['detail'];throw _0xaa5968;}return await _0x56beaa['json']();},async 'importMarketplaceBundle'(_0x338b73,_0x562cfc,_0x1d5d5b,_0x2cd38d=null){const _0x87d90c=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x338b73,'branch':_0x562cfc,'bundleId':_0x1d5d5b,'selectedSkills':_0x2cd38d})});if(!_0x87d90c['ok']){const _0x2ae6b3=await _0x87d90c['json']()['catch'](()=>({'error':_0x87d90c['statusText']})),_0x561ba9=new Error(_0x2ae6b3['error']||_0x2ae6b3['message']||_0x87d90c['statusText']);if(_0x2ae6b3['detail']!==undefined)_0x561ba9['detail']=_0x2ae6b3['detail'];throw _0x561ba9;}return await _0x87d90c['json']();},async 'importSkillFromFolder'(_0x253d8c,_0x3fcbed=null){const _0x6a3970=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x253d8c,'skillId':_0x3fcbed})});if(!_0x6a3970['ok']){const _0x3cb88a=await _0x6a3970['json']()['catch'](()=>({'error':_0x6a3970['statusText']})),_0x16b963=new Error(_0x3cb88a['error']||_0x3cb88a['message']||_0x6a3970['statusText']);if(_0x3cb88a['detail']!==undefined)_0x16b963['detail']=_0x3cb88a['detail'];throw _0x16b963;}return await _0x6a3970['json']();},async 'importSkillFromNpm'(_0x348ef3,_0x4743c7='latest',_0x19022f=null,_0x28c953=null){const _0x2d71dd=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x348ef3,'version':_0x4743c7,'skillId':_0x19022f,'registry':_0x28c953})});if(!_0x2d71dd['ok']){const _0x2743d=await _0x2d71dd['json']()['catch'](()=>({'error':_0x2d71dd['statusText']})),_0x4f29d5=new Error(_0x2743d['error']||_0x2743d['message']||_0x2d71dd['statusText']);if(_0x2743d['detail']!==undefined)_0x4f29d5['detail']=_0x2743d['detail'];throw _0x4f29d5;}return await _0x2d71dd['json']();},async 'checkSkillUpdates'(_0x1a6cad){const _0x25ed9b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1a6cad)+'/check-updates',{'method':'POST'});if(!_0x25ed9b['ok']){const _0x4c7281=await _0x25ed9b['json']()['catch'](()=>({'error':_0x25ed9b['statusText']})),_0x1a7799=new Error(_0x4c7281['error']||_0x4c7281['message']||_0x25ed9b['statusText']);if(_0x4c7281['detail']!==undefined)_0x1a7799['detail']=_0x4c7281['detail'];throw _0x1a7799;}return await _0x25ed9b['json']();},async 'updateExternalSkill'(_0x2176ff){const _0x1d5ca5=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2176ff)+'/update',{'method':'POST'});if(!_0x1d5ca5['ok']){const _0xf6429b=await _0x1d5ca5['json']()['catch'](()=>({'error':_0x1d5ca5['statusText']})),_0x4859fd=new Error(_0xf6429b['error']||_0xf6429b['message']||_0x1d5ca5['statusText']);if(_0xf6429b['detail']!==undefined)_0x4859fd['detail']=_0xf6429b['detail'];throw _0x4859fd;}return await _0x1d5ca5['json']();},async 'updateSkillFlags'(_0x2313e7,_0x2429c9){const _0x4ba68e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2313e7)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2429c9})});if(!_0x4ba68e['ok']){const _0x40cecd=await _0x4ba68e['json']()['catch'](()=>({'error':_0x4ba68e['statusText']})),_0x11d67d=new Error(_0x40cecd['error']||_0x40cecd['message']||_0x4ba68e['statusText']);if(_0x40cecd['detail']!==undefined)_0x11d67d['detail']=_0x40cecd['detail'];throw _0x11d67d;}return await _0x4ba68e['json']();},async 'removeFromImportedRegistry'(_0x4631ce){const _0x45c3b3=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4631ce)+'/registry',{'method':'DELETE'});if(!_0x45c3b3['ok']){const _0x303ab9=await _0x45c3b3['json']()['catch'](()=>({'error':_0x45c3b3['statusText']})),_0x39ede2=new Error(_0x303ab9['error']||_0x303ab9['message']||_0x45c3b3['statusText']);if(_0x303ab9['detail']!==undefined)_0x39ede2['detail']=_0x303ab9['detail'];throw _0x39ede2;}return await _0x45c3b3['json']();},async 'getTeams'(){const _0x333074=await fetch(API_BASE+'/teams');if(!_0x333074['ok']){const _0x30a881=await _0x333074['json']()['catch'](()=>({'message':_0x333074['statusText']}));throw new Error(_0x30a881['message']||'Failed\x20to\x20get\x20teams');}return await _0x333074['json']();},async 'getTeam'(_0x461f02){const _0x5be0c8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x461f02));if(!_0x5be0c8['ok']){const _0x49138e=await _0x5be0c8['json']()['catch'](()=>({'message':_0x5be0c8['statusText']}));throw new Error(_0x49138e['message']||'Failed\x20to\x20get\x20team');}return await _0x5be0c8['json']();},async 'createTeam'(_0xc4e45){const _0x2ead22=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xc4e45)});if(!_0x2ead22['ok']){const _0x11dbde=await _0x2ead22['json']()['catch'](()=>({'message':_0x2ead22['statusText']}));throw new Error(_0x11dbde['message']||'Failed\x20to\x20create\x20team');}return await _0x2ead22['json']();},async 'updateTeam'(_0x4cbc1d,_0x232464){const _0x48cfcb=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4cbc1d),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x232464)});if(!_0x48cfcb['ok']){const _0x236b55=await _0x48cfcb['json']()['catch'](()=>({'message':_0x48cfcb['statusText']}));throw new Error(_0x236b55['message']||'Failed\x20to\x20update\x20team');}return await _0x48cfcb['json']();},async 'deleteTeam'(_0xce186f){const _0x352d3c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xce186f),{'method':'DELETE'});if(!_0x352d3c['ok']){const _0x45806f=await _0x352d3c['json']()['catch'](()=>({'message':_0x352d3c['statusText']}));throw new Error(_0x45806f['message']||'Failed\x20to\x20delete\x20team');}return await _0x352d3c['json']();},async 'addTeamMember'(_0x5bb458,_0x2f8126){const _0x160dba=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5bb458)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x2f8126})});if(!_0x160dba['ok']){const _0x2cc04c=await _0x160dba['json']()['catch'](()=>({'message':_0x160dba['statusText']}));throw new Error(_0x2cc04c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x160dba['json']();},async 'removeTeamMember'(_0xf4166,_0x192320){const _0x1790db=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xf4166)+'/members/'+encodeURIComponent(_0x192320),{'method':'DELETE'});if(!_0x1790db['ok']){const _0x38362f=await _0x1790db['json']()['catch'](()=>({'message':_0x1790db['statusText']}));throw new Error(_0x38362f['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1790db['json']();},async 'getBindings'(_0x13529a={}){const _0x44cf16=new URLSearchParams();if(_0x13529a['resource_type'])_0x44cf16['set']('resource_type',_0x13529a['resource_type']);if(_0x13529a['resource_id'])_0x44cf16['set']('resource_id',_0x13529a['resource_id']);if(_0x13529a['subject_type'])_0x44cf16['set']('subject_type',_0x13529a['subject_type']);if(_0x13529a['subject_id'])_0x44cf16['set']('subject_id',_0x13529a['subject_id']);const _0x47cbe7=_0x44cf16['toString'](),_0x2e5145=await fetch(API_BASE+'/bindings'+(_0x47cbe7?'?'+_0x47cbe7:''));if(!_0x2e5145['ok']){const _0x2a9518=await _0x2e5145['json']()['catch'](()=>({'message':_0x2e5145['statusText']}));throw new Error(_0x2a9518['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2e5145['json']();},async 'createBinding'(_0x239117){const _0x12fb0d=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239117)});if(!_0x12fb0d['ok']){const _0x5bbf8d=await _0x12fb0d['json']()['catch'](()=>({'message':_0x12fb0d['statusText']}));throw new Error(_0x5bbf8d['message']||'Failed\x20to\x20create\x20binding');}return await _0x12fb0d['json']();},async 'updateBinding'(_0x268806,_0x5bfe3a){const _0x1228dd=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x268806),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5bfe3a)});if(!_0x1228dd['ok']){const _0x60ffa4=await _0x1228dd['json']()['catch'](()=>({'message':_0x1228dd['statusText']}));throw new Error(_0x60ffa4['message']||'Failed\x20to\x20update\x20binding');}return await _0x1228dd['json']();},async 'deleteBinding'(_0x2a629d){const _0x599214=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a629d),{'method':'DELETE'});if(!_0x599214['ok']){const _0x12f4c5=await _0x599214['json']()['catch'](()=>({'message':_0x599214['statusText']}));throw new Error(_0x12f4c5['message']||'Failed\x20to\x20delete\x20binding');}return await _0x599214['json']();},async 'getRoleDefinitions'(){const _0x349591=await fetch(API_BASE+'/roles');if(!_0x349591['ok']){const _0x1a7e20=await _0x349591['json']()['catch'](()=>({'message':_0x349591['statusText']}));throw new Error(_0x1a7e20['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x349591['json']();},async 'getRoleDefinition'(_0x280ccc){const _0x5d6976=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x280ccc));if(!_0x5d6976['ok']){const _0x49016d=await _0x5d6976['json']()['catch'](()=>({'message':_0x5d6976['statusText']}));throw new Error(_0x49016d['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x5d6976['json']();},async 'createRoleDefinition'(_0x22fa89){const _0x26615a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x22fa89)});if(!_0x26615a['ok']){const _0x53310d=await _0x26615a['json']()['catch'](()=>({'message':_0x26615a['statusText']}));throw new Error(_0x53310d['message']||_0x53310d['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x26615a['json']();},async 'updateRoleDefinition'(_0x3b4be4,_0x4a1542){const _0x36b1d8=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3b4be4),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4a1542)});if(!_0x36b1d8['ok']){const _0x747ec1=await _0x36b1d8['json']()['catch'](()=>({'message':_0x36b1d8['statusText']}));throw new Error(_0x747ec1['message']||_0x747ec1['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x36b1d8['json']();},async 'deleteRoleDefinition'(_0x5cd809){const _0x69a523=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5cd809),{'method':'DELETE'});if(!_0x69a523['ok']){const _0x5a55dd=await _0x69a523['json']()['catch'](()=>({'message':_0x69a523['statusText']}));throw new Error(_0x5a55dd['message']||_0x5a55dd['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x69a523['json']();},async 'getAvailablePermissions'(){const _0x175566=await fetch(API_BASE+'/roles/available-permissions');if(!_0x175566['ok']){const _0x3d2a5b=await _0x175566['json']()['catch'](()=>({'message':_0x175566['statusText']}));throw new Error(_0x3d2a5b['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x175566['json']();},async 'getGitProviderAllowedTeams'(_0x2093ae){const _0x289c48=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2093ae)+'/allowed-teams');if(!_0x289c48['ok']){const _0x38f340=await _0x289c48['json']()['catch'](()=>({'message':_0x289c48['statusText']}));throw new Error(_0x38f340['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x289c48['json']();},async 'setGitProviderAllowedTeams'(_0x63a6e,_0x2af5c1){const _0x2d3f98=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x63a6e)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2af5c1})});if(!_0x2d3f98['ok']){const _0x29b6df=await _0x2d3f98['json']()['catch'](()=>({'message':_0x2d3f98['statusText']}));throw new Error(_0x29b6df['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x2d3f98['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 _0x397fbe=toastState['baseBottom'];toastState['toasts']['forEach'](_0x37a663=>{_0x37a663['el']['style']['bottom']=_0x397fbe+'px';const _0x4d46a4=_0x37a663['el']['offsetHeight']||toastState['defaultHeight'];_0x397fbe+=_0x4d46a4+toastState['gap'];});});}function removeToastById(_0x352b53){const _0x381748=toastState['toasts']['findIndex'](_0x1c54d4=>_0x1c54d4['id']===_0x352b53);if(_0x381748===-0x1)return;const _0x4668ee=toastState['toasts'][_0x381748];if(_0x4668ee['timeoutId'])clearTimeout(_0x4668ee['timeoutId']);_0x4668ee['el']['classList']['remove']('show'),setTimeout(()=>_0x4668ee['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x381748,0x1),repositionAllToasts();}function registerToast(_0x4d1ea4){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4d1ea4),repositionAllToasts(),_0x4d1ea4['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(_0x22fb51){if(_0x22fb51===null||_0x22fb51===undefined)return'';return String(_0x22fb51)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x265148,_0x2e95d8){if(_0x265148&&typeof _0x265148==='object'&&!Array['isArray'](_0x265148))return{'code':typeof _0x265148['text']==='string'?_0x265148['text']:'','language':typeof _0x265148['lang']==='string'?_0x265148['lang']:''};return{'code':typeof _0x265148==='string'?_0x265148:'','language':typeof _0x2e95d8==='string'?_0x2e95d8:''};}function buildMermaidBlock(_0x3c8c25){const _0x2f3e8e=String(_0x3c8c25||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2f3e8e))+'\x22>'+escapeHtmlValue(_0x2f3e8e)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1df4d0=new marked['Renderer'](),_0x3e383a=_0x1df4d0['code']['bind'](_0x1df4d0);return _0x1df4d0['code']=function(_0x4ac354,_0x3d9993,..._0x3bc7a8){const {code:_0x5144e7,language:_0x2dbbdb}=getMarkdownCodeBlockPayload(_0x4ac354,_0x3d9993),_0xc0c321=String(_0x2dbbdb||'')['trim']()['toLowerCase']();if(_0xc0c321==='mermaid')return buildMermaidBlock(_0x5144e7);const _0x47410e=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x47410e&&_0xc0c321)try{const _0x3bb8c2=_0x47410e['getLanguage'](_0xc0c321)?_0xc0c321:'plaintext',_0x2e902d=_0x47410e['highlight'](_0x5144e7,{'language':_0x3bb8c2})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0xc0c321)+'\x22>'+_0x2e902d+'</code></pre>';}catch(_0x38ae95){console['error']('Syntax\x20highlighting\x20error:',_0x38ae95);}return _0x3e383a(_0x4ac354,_0x3d9993,..._0x3bc7a8);},sharedMarkedRenderer=_0x1df4d0,_0x1df4d0;}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 _0x21013c=window['mermaid'];if(!_0x21013c||typeof _0x21013c['initialize']!=='function')return _0x21013c||null;return _0x21013c['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x21013c;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0xabeb55,_0x3ca6db)=>{const _0xae3cfa=()=>_0xabeb55(configureMermaidInstance()),_0x405b8d=()=>{mermaidLoadPromise=null,_0x3ca6db(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0xae5f07=document['getElementById'](MERMAID_SCRIPT_ID);!_0xae5f07&&(_0xae5f07=document['createElement']('script'),_0xae5f07['id']=MERMAID_SCRIPT_ID,_0xae5f07['src']=MERMAID_SCRIPT_SRC,_0xae5f07['async']=!![],document['head']['appendChild'](_0xae5f07));if(window['mermaid']){_0xae3cfa();return;}_0xae5f07['addEventListener']('load',_0xae3cfa,{'once':!![]}),_0xae5f07['addEventListener']('error',_0x405b8d,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x913d6){const _0x2857c0=_0x913d6['getAttribute']('data-mermaid-source');if(!_0x2857c0)return null;let _0x366de1=_0x2857c0;try{_0x366de1=decodeURIComponent(_0x2857c0);}catch{}return _0x913d6['textContent']=_0x366de1,_0x913d6['removeAttribute']('data-processed'),_0x913d6['removeAttribute']('aria-roledescription'),_0x913d6['removeAttribute']('role'),_0x913d6['removeAttribute']('aria-label'),_0x366de1;}function collectMermaidNodes(_0x5b2f81,_0x382ff9){if(!(_0x5b2f81 instanceof Element))return;_0x5b2f81['matches']('.mermaid[data-mermaid-source]')&&_0x382ff9['add'](_0x5b2f81),_0x5b2f81['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x18ef2e=>{_0x382ff9['add'](_0x18ef2e);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x4f0259=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x580a6f=>setTimeout(_0x580a6f,0x0);_0x4f0259(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1ab9e8=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1ab9e8);});});}function queueMermaidRender(_0x199db0){const _0x234dc5=new Set();_0x199db0 instanceof Document||_0x199db0 instanceof DocumentFragment?_0x199db0['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1a7f6c=>_0x234dc5['add'](_0x1a7f6c)):collectMermaidNodes(_0x199db0,_0x234dc5);if(_0x234dc5['size']===0x0)return;_0x234dc5['forEach'](_0x5d8d29=>pendingMermaidNodes['add'](_0x5d8d29)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x569f5f=Array['from'](pendingMermaidNodes)['filter'](_0x522e50=>_0x522e50['isConnected']);pendingMermaidNodes['clear']();if(_0x569f5f['length']===0x0)return;const _0xb8b465=await loadMermaid();if(!_0xb8b465)return;configureMermaidInstance();const _0x559f3a=getMermaidTheme();for(const _0x1ad796 of _0x569f5f){const _0x1b08bd=_0x1ad796['getAttribute']('data-mermaid-source');if(!_0x1b08bd)continue;const _0x4c169f=_0x1ad796['getAttribute']('data-processed')==='true';if(_0x4c169f&&_0x1ad796['dataset']['mermaidTheme']===_0x559f3a)continue;restoreMermaidSource(_0x1ad796);try{if(typeof _0xb8b465['run']==='function')await _0xb8b465['run']({'nodes':[_0x1ad796]});else typeof _0xb8b465['init']==='function'&&_0xb8b465['init'](undefined,[_0x1ad796]);_0x1ad796['dataset']['mermaidTheme']=_0x559f3a,delete _0x1ad796['dataset']['mermaidError'];}catch(_0x5d1418){console['error']('Mermaid\x20render\x20failed:',_0x5d1418),restoreMermaidSource(_0x1ad796),_0x1ad796['dataset']['mermaidError']='true',delete _0x1ad796['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5437ea=>{_0x5437ea['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5437ea);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x2fd390=>{_0x2fd390['forEach'](_0x1efe80=>{_0x1efe80['addedNodes']['forEach'](_0x4b63be=>{_0x4b63be['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x4b63be);});});}),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'(_0x1dd5a6){const _0x39a414=new Date(_0x1dd5a6),_0x16c3fb=new Date(),_0x5def6a=_0x16c3fb-_0x39a414,_0x4e9593=Math['floor'](_0x5def6a/0x3e8),_0x196029=Math['floor'](_0x4e9593/0x3c),_0x4f59ca=Math['floor'](_0x196029/0x3c),_0x35df77=Math['floor'](_0x4f59ca/0x18);if(_0x4e9593<0x3c)return'now';if(_0x196029<0x3c)return _0x196029+'m\x20ago';if(_0x4f59ca<0x18)return _0x4f59ca+'h\x20ago';return _0x35df77+'d\x20ago';},'getStatusIcon'(_0x403d7d){switch(_0x403d7d){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x5ecab5){switch(_0x5ecab5){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'(_0x17a591,_0x36102b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x149c7c={};_0x149c7c['text/plain']=new Blob([_0x17a591],{'type':'text/plain'});_0x36102b&&(_0x149c7c['text/html']=new Blob([_0x36102b],{'type':'text/html'}));const _0x42868b=new ClipboardItem(_0x149c7c);return await navigator['clipboard']['write']([_0x42868b]),!![];}catch(_0x180847){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x180847);}try{const _0x31fe6d=_0x2637b2=>{_0x2637b2['preventDefault'](),_0x2637b2['clipboardData']['setData']('text/plain',_0x17a591),_0x36102b&&_0x2637b2['clipboardData']['setData']('text/html',_0x36102b);};document['addEventListener']('copy',_0x31fe6d);const _0x441a63=document['execCommand']('copy');document['removeEventListener']('copy',_0x31fe6d);if(_0x441a63)return!![];}catch(_0x32a697){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x32a697);}try{const _0x3a9040=document['createElement']('textarea');_0x3a9040['value']=_0x17a591,_0x3a9040['style']['position']='fixed',_0x3a9040['style']['opacity']='0',_0x3a9040['style']['pointerEvents']='none',document['body']['appendChild'](_0x3a9040),_0x3a9040['select']();const _0x4c7fe3=document['execCommand']('copy');return document['body']['removeChild'](_0x3a9040),_0x4c7fe3;}catch(_0x5dd822){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x5dd822),![];}},'showToast'(_0x40c5b5,_0x3f5692='info'){const _0xb016d6=getNextToastId(),_0x2c9ef0=document['createElement']('div');_0x2c9ef0['className']='toast\x20toast-'+_0x3f5692,_0x2c9ef0['textContent']=_0x40c5b5,_0x2c9ef0['dataset']['toastId']=_0xb016d6,document['body']['appendChild'](_0x2c9ef0);const _0x2bc878=_0x3f5692==='error'?0x2710:0xbb8,_0x191dbb=setTimeout(()=>{removeToastById(_0xb016d6);},_0x2bc878),_0x335a01={'id':_0xb016d6,'el':_0x2c9ef0,'timeoutId':_0x191dbb};return registerToast(_0x335a01),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2c9ef0['classList']['add']('show');});}),_0xb016d6;},'showError'(_0x544eda){console['error'](_0x544eda);const _0x25de3b=typeof _0x544eda==='string'?_0x544eda:_0x544eda['message']||'An\x20error\x20occurred';this['showToast'](_0x25de3b,'error');},'showSuccess'(_0x42a08c){this['showToast'](_0x42a08c,'success');},'capitalize'(_0x3b73c1){if(!_0x3b73c1)return'';return _0x3b73c1['charAt'](0x0)['toUpperCase']()+_0x3b73c1['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4b000b){return escapeHtmlValue(_0x4b000b);},'ansiToHtml'(_0x3ab6f9){if(_0x3ab6f9===null||_0x3ab6f9===undefined)return'';let _0x5452b7=this['escapeHtml'](_0x3ab6f9);const _0x49b7b2={'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'},_0x1f8cec={'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 _0x4948f4=0x0;return _0x5452b7=_0x5452b7['replace'](/\x1b\[([0-9;]*)m/g,(_0x36ebc9,_0x404bf7)=>{if(!_0x404bf7||_0x404bf7==='0'){const _0x23bd6c='</span>'['repeat'](_0x4948f4);return _0x4948f4=0x0,_0x23bd6c;}const _0x50d8f0=_0x404bf7['split'](';'),_0x2b086f=[];for(const _0x3a3c31 of _0x50d8f0){if(_0x3a3c31==='1')_0x2b086f['push']('font-weight:bold');else{if(_0x3a3c31==='2')_0x2b086f['push']('opacity:0.7');else{if(_0x3a3c31==='3')_0x2b086f['push']('font-style:italic');else{if(_0x3a3c31==='4')_0x2b086f['push']('text-decoration:underline');else{if(_0x3a3c31==='9')_0x2b086f['push']('text-decoration:line-through');else{if(_0x49b7b2[_0x3a3c31])_0x2b086f['push']('color:'+_0x49b7b2[_0x3a3c31]);else{if(_0x1f8cec[_0x3a3c31])_0x2b086f['push']('background-color:'+_0x1f8cec[_0x3a3c31]);}}}}}}}if(_0x2b086f['length']>0x0)return _0x4948f4++,'<span\x20style=\x22'+_0x2b086f['join'](';')+'\x22>';return'';}),_0x5452b7+='</span>'['repeat'](_0x4948f4),_0x5452b7=_0x5452b7['replace'](/\\u001b\[([0-9;]*)m/g,(_0xedd6fa,_0x4544a0)=>{if(!_0x4544a0||_0x4544a0==='0')return'';const _0x2afbb0=_0x4544a0['split'](';'),_0x594832=[];for(const _0x4e320b of _0x2afbb0){if(_0x4e320b==='1')_0x594832['push']('font-weight:bold');else{if(_0x49b7b2[_0x4e320b])_0x594832['push']('color:'+_0x49b7b2[_0x4e320b]);else{if(_0x1f8cec[_0x4e320b])_0x594832['push']('background-color:'+_0x1f8cec[_0x4e320b]);}}}if(_0x594832['length']>0x0)return'<span\x20style=\x22'+_0x594832['join'](';')+'\x22>';return'';}),_0x5452b7;},'showModal'({title:_0x5bd1a4,content:_0x286766,buttons:buttons=[]}){const _0x3c7dc3='\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'](_0x5bd1a4)+'</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'+_0x286766+'\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']((_0x39d223,_0x347d6b)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x39d223['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x347d6b+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x39d223['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',_0x2f9c28=document['createElement']('div');_0x2f9c28['id']='utils-modal',_0x2f9c28['className']='modal',_0x2f9c28['innerHTML']=_0x3c7dc3,document['body']['appendChild'](_0x2f9c28);const _0x1e9c2b=document['getElementById']('utils-modal-close');_0x1e9c2b&&_0x1e9c2b['addEventListener']('click',()=>this['hideModal']());const _0x228277=_0x2f9c28['querySelectorAll']('[data-btn-index]');_0x228277['forEach'](_0x5b66e7=>{const _0x284f30=parseInt(_0x5b66e7['dataset']['btnIndex']);buttons[_0x284f30]?.['onClick']&&_0x5b66e7['addEventListener']('click',buttons[_0x284f30]['onClick']);});const _0x259d6a=document['getElementById']('utils-modal-overlay');_0x259d6a&&_0x259d6a['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x21426e=document['getElementById']('utils-modal');_0x21426e&&_0x21426e['remove']();},'parseKeyValuePairs'(_0x124bc0){const _0x3c0f2f={};if(!_0x124bc0)return _0x3c0f2f;return _0x124bc0['split'](/\r?\n/)['map'](_0x2a7486=>_0x2a7486['trim']())['filter'](Boolean)['forEach'](_0x87d29d=>{const _0x3e1287=_0x87d29d['indexOf']('=');if(_0x3e1287>0x0){const _0x176181=_0x87d29d['slice'](0x0,_0x3e1287)['trim'](),_0x13d12b=_0x87d29d['slice'](_0x3e1287+0x1)['trim']();if(_0x176181)_0x3c0f2f[_0x176181]=_0x13d12b;}}),_0x3c0f2f;},'debounce'(_0x5d8eea,_0x4683f3=0xfa){let _0x3f3c96=null;return(..._0x22b7e6)=>{clearTimeout(_0x3f3c96),_0x3f3c96=setTimeout(()=>_0x5d8eea['apply'](this,_0x22b7e6),_0x4683f3);};},'formatTimestamp'(_0x32eaf9){if(!_0x32eaf9)return'N/A';const _0x2ea2ce=new Date(_0x32eaf9);return _0x2ea2ce['toLocaleDateString']()+'\x20'+_0x2ea2ce['toLocaleTimeString']();},'getQueryParams'(){const _0x376977=new URLSearchParams(window['location']['search']),_0x5641af={};for(const [_0x36053f,_0x25fd3b]of _0x376977){_0x5641af[_0x36053f]=_0x25fd3b;}return _0x5641af;},'formatDuration'(_0xa955b7,_0x4dbfbc){if(!_0xa955b7)return'N/A';const _0x476d46=new Date(_0xa955b7),_0x4f35af=_0x4dbfbc?new Date(_0x4dbfbc):new Date(),_0x5a6ccb=_0x4f35af-_0x476d46;if(_0x5a6ccb<0x0)return'0s';const _0x2daf99=Math['floor'](_0x5a6ccb/0x3e8),_0x125eae=Math['floor'](_0x2daf99/0x3c),_0x242f3d=Math['floor'](_0x125eae/0x3c),_0x9e785d=Math['floor'](_0x242f3d/0x18);if(_0x2daf99<0x3c)return _0x2daf99+'s';if(_0x125eae<0x3c)return _0x125eae+'m\x20'+_0x2daf99%0x3c+'s';if(_0x242f3d<0x18)return _0x242f3d+'h\x20'+_0x125eae%0x3c+'m\x20'+_0x2daf99%0x3c+'s';return _0x9e785d+'d\x20'+_0x242f3d%0x18+'h\x20'+_0x125eae%0x3c+'m';},'renderMarkdown'(_0x29e1c1,_0x5e20bd={}){if(!_0x29e1c1)return'';_0x29e1c1=this['rewriteAttachmentLinks'](_0x29e1c1,_0x5e20bd),_0x29e1c1=this['rewriteColorSyntax'](_0x29e1c1);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x29e1c1);}catch(_0xd01caa){return console['error']('Markdown\x20parsing\x20error:',_0xd01caa),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);}},'rewriteAttachmentLinks'(_0x597157,_0x1d5fc3={}){const _0x196c7c=typeof _0x1d5fc3['resolveAttachmentUrl']==='function'?_0x1d5fc3['resolveAttachmentUrl']:_0x1d5fc3['taskId']?_0x8e0dfe=>API_BASE+'/tasks/'+_0x1d5fc3['taskId']+'/attachments/'+encodeURIComponent(_0x8e0dfe):null;if(!_0x196c7c)return _0x597157;return String(_0x597157)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x343aee,_0x12dc48)=>{const _0x3055ca=String(_0x12dc48||'')['trim']();if(!_0x3055ca)return _0x343aee;let _0x476dc7=_0x3055ca;try{_0x476dc7=decodeURIComponent(_0x3055ca);}catch{}const _0x3466f3=_0x196c7c(_0x476dc7);if(!_0x3466f3)return _0x343aee;return']('+_0x3466f3+')';});},'rewriteColorSyntax'(_0x3a1ddf){if(!_0x3a1ddf)return _0x3a1ddf;return String(_0x3a1ddf)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x188856,_0x4d3fd2,_0xfca833)=>{const _0x399888=this['rewriteColorSyntax'](_0xfca833);return'<span\x20style=\x22color:\x20'+_0x4d3fd2+'\x22>'+_0x399888+'</span>';});},'renderMarkdownFallback'(_0x3faf98,_0x1d74c2={}){if(!_0x3faf98)return'';_0x3faf98=_0x3faf98['replace'](/\r\n/g,'\x0a'),_0x3faf98=_0x3faf98['replace'](/\r/g,'\x0a'),_0x3faf98=this['rewriteAttachmentLinks'](_0x3faf98,_0x1d74c2);let _0x490c79=this['escapeHtml'](_0x3faf98);return _0x490c79=_0x490c79['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x490c79=_0x490c79['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x490c79=_0x490c79['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x490c79=_0x490c79['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x490c79=_0x490c79['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x490c79=_0x490c79['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x490c79=_0x490c79['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x490c79=_0x490c79['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x490c79=_0x490c79['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x490c79=_0x490c79['replace'](/\n\n/g,'</p><p>'),_0x490c79=_0x490c79['replace'](/\n/g,'<br>'),'<p>'+_0x490c79+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8424=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8424),_0x1a8424[0x6]=_0x1a8424[0x6]&0xf|0x40,_0x1a8424[0x8]=_0x1a8424[0x8]&0x3f|0x80;const _0x2d679c=Array['from'](_0x1a8424,_0x1bbe0c=>_0x1bbe0c['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x2d679c['slice'](0x0,0x8)+'-'+_0x2d679c['slice'](0x8,0xc)+'-'+_0x2d679c['slice'](0xc,0x10)+'-'+_0x2d679c['slice'](0x10,0x14)+'-'+_0x2d679c['slice'](0x14);}};export class CustomSelect{constructor(_0x44c560,_0x44691d={}){this['nativeSelect']=_0x44c560,this['options']=_0x44691d,this['isOpen']=![],this['selectedValue']=_0x44c560['value']||'',this['searchable']=_0x44691d['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5e6efa=document['createElement']('div');_0x5e6efa['className']='custom-select';const _0x5eea3b=document['createElement']('div');_0x5eea3b['className']='custom-select-trigger',_0x5eea3b['setAttribute']('tabindex','0'),_0x5eea3b['setAttribute']('role','button'),_0x5eea3b['setAttribute']('aria-haspopup','listbox');const _0x13e2d4=document['createElement']('span');_0x13e2d4['className']='custom-select-trigger-text';const _0xe96584=document['createElement']('span');_0xe96584['className']='custom-select-arrow',_0xe96584['textContent']='▼',_0x5eea3b['appendChild'](_0x13e2d4),_0x5eea3b['appendChild'](_0xe96584);const _0xd64ea4=document['createElement']('div');_0xd64ea4['className']='custom-select-dropdown',_0xd64ea4['setAttribute']('role','listbox');if(this['searchable']){const _0x3f8a16=document['createElement']('div');_0x3f8a16['className']='custom-select-search';const _0x4b1c16=document['createElement']('input');_0x4b1c16['type']='text',_0x4b1c16['className']='custom-select-search-input',_0x4b1c16['placeholder']='Type\x20to\x20search...',_0x4b1c16['setAttribute']('aria-label','Search\x20options'),_0x4b1c16['addEventListener']('input',_0x518d9b=>{this['searchQuery']=_0x518d9b['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x4b1c16['addEventListener']('keydown',_0x559b1c=>{if(_0x559b1c['key']==='Escape')_0x559b1c['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x559b1c['key']==='Enter'){_0x559b1c['preventDefault'](),_0x559b1c['stopPropagation']();const _0x434935=_0xd64ea4['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x434935){const _0x432a2f=_0x434935['getAttribute']('data-value');this['select'](_0x432a2f);}}}}),_0x3f8a16['appendChild'](_0x4b1c16),_0xd64ea4['appendChild'](_0x3f8a16),this['searchInput']=_0x4b1c16;}const _0x108bfb=document['createElement']('div');_0x108bfb['className']='custom-select-options',_0xd64ea4['appendChild'](_0x108bfb),_0x5e6efa['appendChild'](_0x5eea3b),_0x5e6efa['appendChild'](_0xd64ea4),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5e6efa,this['nativeSelect']),this['wrapper']=_0x5e6efa,this['trigger']=_0x5eea3b,this['triggerText']=_0x13e2d4,this['dropdown']=_0xd64ea4,this['optionsContainer']=_0x108bfb,_0x5eea3b['addEventListener']('click',()=>this['toggle']()),_0x5eea3b['addEventListener']('keydown',_0x221ccb=>this['handleKeydown'](_0x221ccb)),document['addEventListener']('click',_0x522681=>{!_0x5e6efa['contains'](_0x522681['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0xe1384=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0xe1384['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x5d5861=new MutationObserver(()=>{this['updateDisabledState']();});_0x5d5861['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xb0533e=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xb0533e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x48c5c1=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x48c5c1),this['trigger']['setAttribute']('aria-disabled',_0x48c5c1?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x48c5c1?'-1':'0'),_0x48c5c1&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x43500c=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x4a33fa=_0x43500c['filter'](_0x27f185=>!_0x27f185['disabled']&&!_0x27f185['hidden']);_0x43500c['forEach']((_0x3053f7,_0x2513a7)=>{const _0x461d7e=document['createElement']('div');_0x461d7e['className']='custom-select-option',_0x461d7e['textContent']=_0x3053f7['textContent'],_0x461d7e['setAttribute']('data-value',_0x3053f7['value']),_0x461d7e['setAttribute']('data-index',_0x2513a7),_0x461d7e['setAttribute']('role','option'),_0x3053f7['disabled']?_0x461d7e['classList']['add']('disabled'):_0x461d7e['addEventListener']('click',()=>this['select'](_0x3053f7['value'])),_0x3053f7['value']===this['selectedValue']&&_0x461d7e['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x461d7e),this['allOptions']['push']({'element':_0x461d7e,'text':_0x3053f7['textContent']['toLowerCase'](),'value':_0x3053f7['value'],'disabled':_0x3053f7['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4959fa=this['searchInput']['parentElement'];_0x4a33fa['length']>0x3?_0x4959fa['style']['display']='':_0x4959fa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x4f2326=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x16a8c5=>{if(!_0x4f2326||_0x16a8c5['disabled'])_0x16a8c5['element']['style']['display']='';else{const _0x5b936f=_0x16a8c5['text']['includes'](_0x4f2326);_0x16a8c5['element']['style']['display']=_0x5b936f?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x280097){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x280097,this['nativeSelect']['value']=_0x280097;const _0x395714=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x395714),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x5de15b=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x5de15b&&(this['triggerText']['textContent']=_0x5de15b['textContent'],_0x5de15b['disabled']||_0x5de15b['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x15f041=>{_0x15f041['getAttribute']('data-value')===this['selectedValue']?_0x15f041['classList']['add']('selected'):_0x15f041['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 _0xb1bd4e=window['getComputedStyle'](this['dropdown']);if(_0xb1bd4e['position']==='fixed'){const _0x2d2798=this['trigger']['getBoundingClientRect'](),_0x427669=parseInt(_0xb1bd4e['maxHeight'])||0xc8,_0x26e092=window['innerHeight'],_0x51b730=_0x26e092-_0x2d2798['bottom'],_0x4d341f=_0x2d2798['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x276fae;_0x51b730<_0x427669&&_0x4d341f>_0x51b730?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x26e092-_0x2d2798['top']+'px',_0x276fae=Math['min'](_0x427669,_0x4d341f-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2d2798['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x276fae=Math['min'](_0x427669,_0x51b730-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px');if(this['optionsContainer']){let _0x579cec=_0x276fae;if(this['searchInput']){const _0x2114ec=this['searchInput']['parentElement'];_0x2114ec&&(_0x579cec-=_0x2114ec['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x579cec)+'px';}this['dropdown']['style']['left']=_0x2d2798['left']+'px',this['dropdown']['style']['width']=_0x2d2798['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x10eabe=this['searchInput']['parentElement'];_0x10eabe&&_0x10eabe['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'](_0x1ff6a0){if(this['nativeSelect']['disabled'])return;if(_0x1ff6a0['key']==='Enter'||_0x1ff6a0['key']==='\x20')_0x1ff6a0['preventDefault'](),this['toggle']();else _0x1ff6a0['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x600dad='\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',_0x600dad),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x156b35=document['getElementById']('confirm-dialog-close'),_0x221e2e=document['getElementById']('confirm-dialog-cancel'),_0x1ae9f0=document['getElementById']('confirm-dialog-confirm'),_0x361648=this['_modal']['querySelector']('.modal-overlay');_0x156b35['addEventListener']('click',()=>this['_resolve'](![])),_0x221e2e['addEventListener']('click',()=>this['_resolve'](![])),_0x1ae9f0['addEventListener']('click',()=>this['_resolve'](!![])),_0x361648['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x102d60=>{if(_0x102d60['key']==='Escape')_0x102d60['preventDefault'](),this['_resolve'](![]);else _0x102d60['key']==='Enter'&&(_0x102d60['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x50dc0e,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x591fd3=>{this['_resolvePromise']=_0x591fd3,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x50dc0e;const _0x2adb81=document['getElementById']('confirm-dialog-cancel'),_0x344653=document['getElementById']('confirm-dialog-confirm');_0x2adb81['textContent']=cancelText,_0x344653['textContent']=confirmText,_0x344653['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x344653['focus']();});},'_resolve'(_0x362bc2){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x362bc2),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x2476d1,_0x58ee6e={}){this['container']=_0x2476d1,this['options']={'placeholder':_0x58ee6e['placeholder']||'Type\x20to\x20search...','maxItems':_0x58ee6e['maxItems']||0x64,'loadItems':_0x58ee6e['loadItems']||(async()=>[]),'renderItem':_0x58ee6e['renderItem']||(_0x36688c=>({'primary':String(_0x36688c),'secondary':''})),'onSelect':_0x58ee6e['onSelect']||(()=>{}),'filterItems':_0x58ee6e['filterItems']||null,'getItemValue':_0x58ee6e['getItemValue']||(_0x139cc6=>_0x139cc6),'sortItems':_0x58ee6e['sortItems']||null,'debounceMs':_0x58ee6e['debounceMs']||0xc8,'minCharsForSearch':_0x58ee6e['minCharsForSearch']||0x0,'emptyMessage':_0x58ee6e['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x58ee6e['loadingMessage']||'Loading...','preload':_0x58ee6e['preload']!==![],'searchMode':_0x58ee6e['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',_0x3b0aaa=>this['onBlur'](_0x3b0aaa)),this['input']['addEventListener']('input',_0x54e172=>this['onInput'](_0x54e172)),this['input']['addEventListener']('keydown',_0x24f036=>this['onKeydown'](_0x24f036)),this['clearBtn']['addEventListener']('mousedown',_0x56922b=>{_0x56922b['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1147ce=>{_0x1147ce['preventDefault']();}),document['addEventListener']('click',_0x131ee8=>{!this['wrapper']['contains'](_0x131ee8['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(_0x33869d){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x33869d);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x4d9065){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x5b7858){const _0x468864=_0x5b7858['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x468864);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x468864):this['loadAndShow'](_0x468864);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x4b841b){switch(_0x4b841b['key']){case'ArrowDown':_0x4b841b['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x4b841b['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x4b841b['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x4b841b['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x3acc77){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3b33=this['selectedIndex']+_0x3acc77;if(_0x1a3b33>=0x0&&_0x1a3b33<this['filteredItems']['length']){this['selectedIndex']=_0x1a3b33,this['updateSelectionHighlight']();const _0x58cb27=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x58cb27[this['selectedIndex']]&&_0x58cb27[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x56536b=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x56536b['forEach']((_0x2eb0ce,_0x2a32b4)=>{_0x2eb0ce['classList']['toggle']('keyboard-selected',_0x2a32b4===this['selectedIndex']);});}async['loadAndShow'](_0x1f472e){this['showLoading']();try{const _0x56bf75=await this['options']['loadItems'](_0x1f472e);if(this['options']['searchMode']==='server'){let _0x59e08a=_0x56bf75;this['options']['sortItems']&&(_0x59e08a=this['options']['sortItems']([..._0x56bf75]));this['filteredItems']=_0x59e08a;const _0x1a574e=this['filteredItems']['length']>=this['options']['maxItems'];_0x1a574e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x1a574e),this['open']();}else this['allItems']=_0x56bf75,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x1f472e);}catch(_0x592b2d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x592b2d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x217d4b){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x217d4b):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x40af54=this['filteredItems']['length']>=this['options']['maxItems'];_0x40af54&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x40af54),this['open']();}['renderItems'](_0x2adb11){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']((_0x59845a,_0x2e40a9)=>{const _0x5c486d=document['createElement']('div');_0x5c486d['className']='autocomplete-select-item',_0x5c486d['setAttribute']('role','option'),_0x5c486d['setAttribute']('data-index',_0x2e40a9);const _0x3663b1=this['options']['renderItem'](_0x59845a);let _0x3801af='';_0x3663b1['icon']&&(_0x3801af='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x3663b1['iconClass']||'')+'\x22>'+_0x3663b1['icon']+'</span>'),_0x5c486d['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3801af+'\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'](_0x3663b1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3663b1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x3663b1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5c486d['addEventListener']('click',()=>{this['selectItem'](_0x59845a);}),_0x5c486d['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x2e40a9,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5c486d);}),_0x2adb11?(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'](_0x53b22b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x53b22b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x1ca856){this['selectedItem']=_0x1ca856;const _0x37a56a=this['options']['renderItem'](_0x1ca856);this['input']['value']=_0x37a56a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x1ca856);}['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'](_0x550b8c){if(_0x550b8c){this['selectedItem']=_0x550b8c;const _0x5c70e5=this['options']['renderItem'](_0x550b8c);this['input']['value']=_0x5c70e5['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x8da578){this['allItems']=_0x8da578,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'](_0x403eb1){this['input']['placeholder']=_0x403eb1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x520bc8=null){const _0x530015=document['getElementById']('admin-menu-container'),_0x3745f9=document['getElementById']('admin-menu-btn'),_0x1284c6=document['getElementById']('admin-menu');if(!_0x530015||!_0x3745f9||!_0x1284c6)return;try{!_0x520bc8&&(_0x520bc8=await API['getCurrentUser']());if(_0x520bc8){const _0x1b8ad5=window['Permissions'],_0x45863c=_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:manage')||_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')||_0x1b8ad5['hasTeamPermission'](_0x520bc8,'teams:manage')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:view_details');if(!_0x45863c)return;_0x530015['hidden']=![];if(!_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')){const _0x422bf9=_0x1284c6['querySelectorAll']('.admin-menu-item');_0x422bf9['forEach'](_0x2a8ffb=>{const _0x50a83c=_0x2a8ffb['querySelector']('.option-text')?.['textContent']?.['trim']();_0x50a83c==='Users'&&!_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Skills'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Settings'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Administration'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Git\x20History'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Roles'&&(_0x2a8ffb['hidden']=!![]);});}_0x3745f9['addEventListener']('click',_0x360252=>{_0x360252['stopPropagation']();const _0x16eb6d=document['getElementById']('actions-menu');if(_0x16eb6d)_0x16eb6d['hidden']=!![];_0x1284c6['hidden']=!_0x1284c6['hidden'];}),document['addEventListener']('click',_0x30e080=>{!_0x1284c6['hidden']&&!_0x3745f9['contains'](_0x30e080['target'])&&!_0x1284c6['contains'](_0x30e080['target'])&&(_0x1284c6['hidden']=!![]);}),document['addEventListener']('keydown',_0x1fc82e=>{_0x1fc82e['key']==='Escape'&&!_0x1284c6['hidden']&&(_0x1284c6['hidden']=!![]);});}}catch(_0x1fb56b){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x1fb56b['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};