@profoundlogic/coderflow-server 0.8.9 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) 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/slack-service.js +1 -1
  84. package/dist/lib/state-capture.js +1 -1
  85. package/dist/lib/static-files.js +1 -1
  86. package/dist/lib/task-aliases.js +1 -1
  87. package/dist/lib/task-container-init.js +1 -1
  88. package/dist/lib/task-context-usage.js +1 -1
  89. package/dist/lib/task-git-auth-errors.js +1 -1
  90. package/dist/lib/task-name-format.js +1 -1
  91. package/dist/lib/task-name-generator.js +1 -1
  92. package/dist/lib/task-source-metadata.js +1 -1
  93. package/dist/lib/teams.js +1 -1
  94. package/dist/lib/user-git-oauth.js +1 -1
  95. package/dist/lib/user-git-tokens.js +1 -1
  96. package/dist/lib/users.js +1 -1
  97. package/dist/middleware/requireAuth.js +1 -1
  98. package/dist/middleware/requireInit.js +1 -1
  99. package/dist/middleware/requirePermission.js +1 -1
  100. package/dist/package.json +1 -1
  101. package/dist/playwright.config.js +1 -1
  102. package/dist/playwright.task-terminal.config.js +1 -1
  103. package/dist/routes/apiKeys.js +1 -1
  104. package/dist/routes/auth-oidc.js +1 -1
  105. package/dist/routes/auth.js +1 -1
  106. package/dist/routes/automations.js +1 -1
  107. package/dist/routes/bindings.js +1 -1
  108. package/dist/routes/build.js +1 -1
  109. package/dist/routes/containers.js +1 -1
  110. package/dist/routes/deploy-task.js +1 -1
  111. package/dist/routes/environment-management.js +1 -1
  112. package/dist/routes/environments.js +1 -1
  113. package/dist/routes/external-skills.js +1 -1
  114. package/dist/routes/git-credentials.js +1 -1
  115. package/dist/routes/git-oauth.js +1 -1
  116. package/dist/routes/git-provider-setup.js +1 -1
  117. package/dist/routes/health.js +1 -1
  118. package/dist/routes/jira.js +1 -1
  119. package/dist/routes/logs.js +1 -1
  120. package/dist/routes/objective-management.js +1 -1
  121. package/dist/routes/password.js +1 -1
  122. package/dist/routes/prompt.js +1 -1
  123. package/dist/routes/provider-auth.js +1 -1
  124. package/dist/routes/qa.js +1 -1
  125. package/dist/routes/roles.js +1 -1
  126. package/dist/routes/settings.js +1 -1
  127. package/dist/routes/skill-management.js +1 -1
  128. package/dist/routes/skills.js +1 -1
  129. package/dist/routes/slack.js +1 -1
  130. package/dist/routes/stats.js +1 -1
  131. package/dist/routes/tasks.js +1 -1
  132. package/dist/routes/teams.js +1 -1
  133. package/dist/routes/templates.js +1 -1
  134. package/dist/routes/test-task.js +1 -1
  135. package/dist/routes/test.js +1 -1
  136. package/dist/routes/users.js +1 -1
  137. package/dist/routes/visualizations.js +1 -1
  138. package/dist/scripts/create-user.js +1 -1
  139. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  140. package/dist/start.js +1 -1
  141. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  142. package/dist/web-ui/public/activity-feed.js +1 -1
  143. package/dist/web-ui/public/activity-formatters.js +1 -1
  144. package/dist/web-ui/public/admin.js +1 -1
  145. package/dist/web-ui/public/agent-event-parser.js +1 -1
  146. package/dist/web-ui/public/app.js +1 -1
  147. package/dist/web-ui/public/approve-dialog.js +1 -1
  148. package/dist/web-ui/public/automation-links.js +1 -1
  149. package/dist/web-ui/public/automation-schedule.js +1 -1
  150. package/dist/web-ui/public/comments-widget.js +1 -1
  151. package/dist/web-ui/public/diff-utils.js +1 -1
  152. package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
  153. package/dist/web-ui/public/environments.js +1 -1
  154. package/dist/web-ui/public/feedback-widget.js +1 -1
  155. package/dist/web-ui/public/file-selection-tree.js +1 -1
  156. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  157. package/dist/web-ui/public/git-history.js +1 -1
  158. package/dist/web-ui/public/git-status.js +1 -1
  159. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  160. package/dist/web-ui/public/index.js +1 -1
  161. package/dist/web-ui/public/login.js +1 -1
  162. package/dist/web-ui/public/markdown-editor.js +1 -1
  163. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  164. package/dist/web-ui/public/modal-maximize.js +1 -1
  165. package/dist/web-ui/public/notifications.js +1 -1
  166. package/dist/web-ui/public/permissions.js +1 -1
  167. package/dist/web-ui/public/pr-dialog.js +1 -1
  168. package/dist/web-ui/public/roles.js +1 -1
  169. package/dist/web-ui/public/settings.js +1 -1
  170. package/dist/web-ui/public/setup-password.js +1 -1
  171. package/dist/web-ui/public/skills.js +1 -1
  172. package/dist/web-ui/public/sse-client.js +1 -1
  173. package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
  174. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  175. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  176. package/dist/web-ui/public/task.js +1 -1
  177. package/dist/web-ui/public/teams.js +1 -1
  178. package/dist/web-ui/public/terminal.js +1 -1
  179. package/dist/web-ui/public/theme.js +1 -1
  180. package/dist/web-ui/public/users.js +1 -1
  181. package/dist/web-ui/public/variant-grouping.js +1 -1
  182. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x2fd19f=window['location']['pathname'],_0x7d15a2=_0x2fd19f['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x7d15a2)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x7d15a2[0x1]),_0x7d15a2[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x130352={}){const _0x125b8e=new URLSearchParams();_0x130352['userId']&&_0x125b8e['set']('userId',String(_0x130352['userId']));_0x130352['automation']&&_0x125b8e['set']('automation',String(_0x130352['automation']));const _0xec10cf=API_BASE+'/tasks/stats'+(_0x125b8e['toString']()?'?'+_0x125b8e['toString']():''),_0x199538=await fetch(_0xec10cf);if(!_0x199538['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x199538['statusText']);return await _0x199538['json']();},async 'getTasks'(_0x3aa03a={}){const _0x1d1e37=new URLSearchParams();_0x3aa03a['status']&&_0x1d1e37['set']('status',String(_0x3aa03a['status']));_0x3aa03a['environment']&&_0x1d1e37['set']('environment',String(_0x3aa03a['environment']));_0x3aa03a['automation']&&_0x1d1e37['set']('automation',String(_0x3aa03a['automation']));if(_0x3aa03a['include']){const _0x5dc8f3=Array['isArray'](_0x3aa03a['include'])?_0x3aa03a['include']['join'](','):String(_0x3aa03a['include']);_0x5dc8f3&&_0x1d1e37['set']('include',_0x5dc8f3);}_0x3aa03a['filter']&&_0x1d1e37['set']('filter',String(_0x3aa03a['filter']));_0x3aa03a['page']&&_0x1d1e37['set']('page',String(_0x3aa03a['page']));_0x3aa03a['limit']&&_0x1d1e37['set']('limit',String(_0x3aa03a['limit']));_0x3aa03a['userId']&&_0x1d1e37['set']('userId',String(_0x3aa03a['userId']));_0x3aa03a['search']&&_0x1d1e37['set']('search',String(_0x3aa03a['search']));_0x3aa03a['includeChildTasks']&&_0x1d1e37['set']('includeChildTasks','true');const _0x57656e=API_BASE+'/tasks'+(_0x1d1e37['toString']()?'?'+_0x1d1e37['toString']():''),_0xbd64c9=await fetch(_0x57656e);if(!_0xbd64c9['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0xbd64c9['statusText']);return await _0xbd64c9['json']();},async 'getAutomations'(_0x18f768={}){const _0x5e21de=new URLSearchParams();_0x18f768['environment']&&_0x5e21de['set']('environment',String(_0x18f768['environment']));const _0x336d50=await fetch(API_BASE+'/api/automations'+(_0x5e21de['toString']()?'?'+_0x5e21de['toString']():''));if(!_0x336d50['ok']){const _0x256ae2=await _0x336d50['json']()['catch'](()=>({}));throw new Error(_0x256ae2['message']||_0x256ae2['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x336d50['statusText']);}return await _0x336d50['json']();},async 'getAutomation'(_0x36b72c){const _0x579940=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36b72c));if(!_0x579940['ok']){const _0x467cd9=await _0x579940['json']()['catch'](()=>({}));throw new Error(_0x467cd9['message']||_0x467cd9['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x579940['statusText']);}return await _0x579940['json']();},async 'createAutomation'(_0x563cca){const _0x29910b=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x563cca||{})});if(!_0x29910b['ok']){const _0x4982ed=await _0x29910b['json']()['catch'](()=>({}));throw new Error(_0x4982ed['message']||_0x4982ed['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x29910b['statusText']);}return await _0x29910b['json']();},async 'updateAutomation'(_0x14f3ea,_0x4dd22f){const _0x4d953d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x14f3ea),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4dd22f||{})});if(!_0x4d953d['ok']){const _0xb0c568=await _0x4d953d['json']()['catch'](()=>({}));throw new Error(_0xb0c568['message']||_0xb0c568['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x4d953d['statusText']);}return await _0x4d953d['json']();},async 'deleteAutomation'(_0x67274b){const _0xdb0317=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x67274b),{'method':'DELETE'});if(!_0xdb0317['ok']){const _0x4a28e3=await _0xdb0317['json']()['catch'](()=>({}));throw new Error(_0x4a28e3['message']||_0x4a28e3['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xdb0317['statusText']);}return await _0xdb0317['json']();},async 'triggerAutomation'(_0x226ca4){const _0x3c9066=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x226ca4)+'/trigger',{'method':'POST'});if(!_0x3c9066['ok']){const _0x544474=await _0x3c9066['json']()['catch'](()=>({}));throw new Error(_0x544474['message']||_0x544474['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3c9066['statusText']);}return await _0x3c9066['json']();},async 'setAutomationEnabled'(_0x3ac3cd,_0x1a5e8f){const _0x44986b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3ac3cd)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x1a5e8f})});if(!_0x44986b['ok']){const _0x5a5c7c=await _0x44986b['json']()['catch'](()=>({}));throw new Error(_0x5a5c7c['message']||_0x5a5c7c['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x44986b['statusText']);}return await _0x44986b['json']();},async 'getAutomationHistory'(_0x2ca864,_0x46233f=0x32){const _0x37c793=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2ca864)+'/history?limit='+encodeURIComponent(String(_0x46233f)));if(!_0x37c793['ok']){const _0x50340b=await _0x37c793['json']()['catch'](()=>({}));throw new Error(_0x50340b['message']||_0x50340b['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x37c793['statusText']);}return await _0x37c793['json']();},async 'getTask'(_0x35de6e,_0x835f85={}){const _0x294b2b=new URLSearchParams();if(_0x835f85['include']){const _0x2b4995=Array['isArray'](_0x835f85['include'])?_0x835f85['include']['join'](','):String(_0x835f85['include']);if(_0x2b4995)_0x294b2b['set']('include',_0x2b4995);}const _0x5f178=await fetch(API_BASE+'/tasks/'+_0x35de6e+(_0x294b2b['toString']()?'?'+_0x294b2b['toString']():''));if(!_0x5f178['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5f178['statusText']);return await _0x5f178['json']();},async 'getTaskResults'(_0x1a7ad3){const _0x393af4=await fetch(API_BASE+'/tasks/'+_0x1a7ad3+'/results');if(!_0x393af4['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x393af4['statusText']);return await _0x393af4['json']();},async 'getTaskPatches'(_0x63d952){const _0x38bf41=await fetch(API_BASE+'/tasks/'+_0x63d952+'/patches');if(!_0x38bf41['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x38bf41['statusText']);return await _0x38bf41['json']();},async 'getTaskAttachments'(_0x38572a){const _0x1f62a3=await fetch(API_BASE+'/tasks/'+_0x38572a+'/attachments');if(!_0x1f62a3['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x1f62a3['statusText']);return await _0x1f62a3['json']();},async 'uploadAttachments'(_0x535f55,_0x280298){const _0x1201dd=new FormData();for(const _0x215aca of _0x280298){_0x1201dd['append']('attachments',_0x215aca);}const _0x48e6e6=await fetch(API_BASE+'/tasks/'+_0x535f55+'/attachments',{'method':'POST','body':_0x1201dd});if(!_0x48e6e6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x48e6e6['statusText']);return await _0x48e6e6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x1bf65c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x1bf65c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x1bf65c['json']();}catch(_0x308590){return{'available':![],'reason':_0x308590['message']};}},async 'generateTaskName'(_0x44aa78){try{const _0x453033=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x44aa78})});return await _0x453033['json']();}catch(_0x3064d6){return{'success':![],'error':_0x3064d6['message']};}},async 'createTask'(_0x5bcb2e){let _0x2e7057,_0x4d0cf8={};if(_0x5bcb2e['files']&&_0x5bcb2e['files']['length']>0x0){const _0x34e00f=new FormData();for(const [_0x5eb7fb,_0x140958]of Object['entries'](_0x5bcb2e)){if(_0x5eb7fb!=='files'){if(_0x140958==null)continue;typeof _0x140958==='object'?_0x34e00f['append'](_0x5eb7fb,JSON['stringify'](_0x140958)):_0x34e00f['append'](_0x5eb7fb,String(_0x140958));}}for(const _0x57f6c1 of _0x5bcb2e['files']){_0x34e00f['append']('attachments',_0x57f6c1);}_0x2e7057=_0x34e00f;}else _0x4d0cf8['Content-Type']='application/json',_0x2e7057=JSON['stringify'](_0x5bcb2e);const _0x20b617=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4d0cf8,'body':_0x2e7057});if(!_0x20b617['ok']){const _0x1aa3c6=await _0x20b617['json'](),_0x3ba39a=new Error(_0x1aa3c6['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20b617['statusText']),{message:_0xbe5fcb,..._0xee2a10}=_0x1aa3c6;Object['assign'](_0x3ba39a,_0xee2a10);throw _0x3ba39a;}return await _0x20b617['json']();},async 'createTestTask'(_0x3688ee){const _0x22bb0d=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3688ee)});if(!_0x22bb0d['ok']){const _0x4b9489=await _0x22bb0d['json']();throw new Error(_0x4b9489['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x22bb0d['statusText']);}return await _0x22bb0d['json']();},async 'createEphemeralTest'(_0x124ef5){const _0x4fa64e=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x124ef5)});if(!_0x4fa64e['ok']){const _0x48279c=await _0x4fa64e['json']();throw new Error(_0x48279c['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x4fa64e['statusText']);}return await _0x4fa64e['json']();},async 'createDeployTask'(_0x3e0db4){const _0xe12ce7=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3e0db4)});if(!_0xe12ce7['ok']){const _0x537243=await _0xe12ce7['json']();throw new Error(_0x537243['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0xe12ce7['statusText']);}return await _0xe12ce7['json']();},async 'getEnvironments'(){const _0x2c368a=await fetch(API_BASE+'/environments');if(!_0x2c368a['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x2c368a['statusText']);return await _0x2c368a['json']();},async 'getEnvironment'(_0x53fa06){const _0x211568=await fetch(API_BASE+'/environments/'+_0x53fa06);if(!_0x211568['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x211568['statusText']);return await _0x211568['json']();},async 'getEnvironmentRepoHistory'(_0x17d83f,_0x526a36,_0x3b37e6={}){if(!_0x17d83f||!_0x526a36)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x25a40a=new URLSearchParams();if(_0x3b37e6['limit'])_0x25a40a['set']('limit',String(_0x3b37e6['limit']));if(_0x3b37e6['offset'])_0x25a40a['set']('offset',String(_0x3b37e6['offset']));if(_0x3b37e6['search'])_0x25a40a['set']('search',String(_0x3b37e6['search']));if(_0x3b37e6['branch'])_0x25a40a['set']('branch',String(_0x3b37e6['branch']));const _0x362cb3=API_BASE+'/environments/'+encodeURIComponent(_0x17d83f)+'/repos/'+encodeURIComponent(_0x526a36)+'/git/history',_0x560a60=await fetch(''+_0x362cb3+(_0x25a40a['toString']()?'?'+_0x25a40a['toString']():''));if(!_0x560a60['ok']){const _0x43671d=await _0x560a60['json']()['catch'](()=>({}));throw new Error(_0x43671d['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x560a60['statusText']);}return await _0x560a60['json']();},async 'getEnvironmentRepoCommit'(_0x17289b,_0x5ad29b,_0x465de5){if(!_0x17289b||!_0x5ad29b||!_0x465de5)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x1ac195=API_BASE+'/environments/'+encodeURIComponent(_0x17289b)+'/repos/'+encodeURIComponent(_0x5ad29b)+'/git/commits/'+encodeURIComponent(_0x465de5),_0x1d9718=await fetch(_0x1ac195);if(!_0x1d9718['ok']){const _0x48b89e=await _0x1d9718['json']()['catch'](()=>({}));throw new Error(_0x48b89e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d9718['statusText']);}return await _0x1d9718['json']();},async 'getEnvironmentRepoBranches'(_0x1e93a2,_0xa8c3d8){if(!_0x1e93a2||!_0xa8c3d8)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x47f919=API_BASE+'/environments/'+encodeURIComponent(_0x1e93a2)+'/repos/'+encodeURIComponent(_0xa8c3d8)+'/git/branches',_0x5a4da8=await fetch(_0x47f919);if(!_0x5a4da8['ok']){const _0x51d9b3=await _0x5a4da8['json']()['catch'](()=>({}));throw new Error(_0x51d9b3['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x5a4da8['statusText']);}return await _0x5a4da8['json']();},async 'revertEnvironmentRepoCommit'(_0x32f528,_0x2ca418,_0x14e1f0,_0x323426={}){if(!_0x32f528||!_0x2ca418||!_0x14e1f0)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x4163ef=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x32f528)+'/repos/'+encodeURIComponent(_0x2ca418)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x14e1f0,..._0x323426})});if(!_0x4163ef['ok']){const _0x3ea57d=await _0x4163ef['json']()['catch'](()=>({}));throw new Error(_0x3ea57d['message']||_0x3ea57d['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x4163ef['statusText']);}return await _0x4163ef['json']();},async 'getTemplates'(_0x3fead6={}){const _0x12e891=new URLSearchParams();if(_0x3fead6['include']){const _0xf09f20=Array['isArray'](_0x3fead6['include'])?_0x3fead6['include']['join'](','):String(_0x3fead6['include']);if(_0xf09f20)_0x12e891['set']('include',_0xf09f20);}const _0x144998=await fetch(API_BASE+'/templates'+(_0x12e891['toString']()?'?'+_0x12e891['toString']():''));if(!_0x144998['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x144998['statusText']);return await _0x144998['json']();},async 'getTemplatesForEnvironment'(_0x5110c0,_0x39d8d3={}){if(!_0x5110c0)throw new Error('Environment\x20name\x20is\x20required');const _0x2d2ba0=new URLSearchParams();if(_0x39d8d3['include']){const _0x26fee8=Array['isArray'](_0x39d8d3['include'])?_0x39d8d3['include']['join'](','):String(_0x39d8d3['include']);if(_0x26fee8)_0x2d2ba0['set']('include',_0x26fee8);}const _0x32c947=await fetch(API_BASE+'/templates/'+_0x5110c0+(_0x2d2ba0['toString']()?'?'+_0x2d2ba0['toString']():''));if(!_0x32c947['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x5110c0+':\x20'+_0x32c947['statusText']);return await _0x32c947['json']();},async 'getTemplate'(_0x1012d6,_0x5910c1,_0xc95c58={}){if(!_0x1012d6||!_0x5910c1)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x40484c=new URLSearchParams();if(_0xc95c58['include']){const _0x4a7efd=Array['isArray'](_0xc95c58['include'])?_0xc95c58['include']['join'](','):String(_0xc95c58['include']);if(_0x4a7efd)_0x40484c['set']('include',_0x4a7efd);}const _0x28d17b=await fetch(API_BASE+'/templates/'+_0x1012d6+'/'+_0x5910c1+(_0x40484c['toString']()?'?'+_0x40484c['toString']():''));if(!_0x28d17b['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x28d17b['statusText']);return await _0x28d17b['json']();},async 'getTaskLogs'(_0x1d7e3a,_0x10ab0c={}){if(!_0x1d7e3a)throw new Error('Task\x20ID\x20is\x20required');const _0x1d6904=new URLSearchParams();_0x10ab0c['tail']&&_0x1d6904['set']('tail',String(_0x10ab0c['tail']));const _0x2dcb29=await fetch(API_BASE+'/tasks/'+_0x1d7e3a+'/logs'+(_0x1d6904['toString']()?'?'+_0x1d6904['toString']():''));if(!_0x2dcb29['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x2dcb29['statusText']);return await _0x2dcb29['text']();},async 'getContainers'(){const _0x1fbf06=await fetch(API_BASE+'/containers');if(!_0x1fbf06['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x1fbf06['statusText']);return await _0x1fbf06['json']();},async 'getContainer'(_0xcad55d){const _0xf39740=await fetch(API_BASE+'/containers/'+_0xcad55d);if(!_0xf39740['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xf39740['statusText']);return await _0xf39740['json']();},async 'startInteractiveContainer'(_0xe68056){const _0x4f4b01=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xe68056)});if(!_0x4f4b01['ok']){const _0x4bdb25=await _0x4f4b01['json']()['catch'](()=>({}));throw new Error(_0x4bdb25['message']||'Failed\x20to\x20start\x20container:\x20'+_0x4f4b01['statusText']);}return await _0x4f4b01['json']();},async 'startContainerCodeServer'(_0x2617f7,_0x5de463={}){if(!_0x2617f7)throw new Error('Container\x20ID\x20is\x20required');const _0xfe7d4=new URLSearchParams();_0x5de463['theme']&&_0xfe7d4['set']('theme',_0x5de463['theme']);const _0x225788=await fetch(API_BASE+'/containers/'+_0x2617f7+'/code-server'+(_0xfe7d4['toString']()?'?'+_0xfe7d4['toString']():'')),_0x20edae=await _0x225788['json']()['catch'](()=>({}));if(!_0x225788['ok'])throw new Error(_0x20edae['message']||_0x20edae['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x225788['statusText']);return _0x20edae;},async 'stopContainer'(_0x493533){const _0x38458f=await fetch(API_BASE+'/containers/'+_0x493533,{'method':'DELETE'});if(!_0x38458f['ok']){const _0x46ca26=await _0x38458f['json']()['catch'](()=>({}));throw new Error(_0x46ca26['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x38458f['statusText']);}return await _0x38458f['json']();},async 'stopTask'(_0x3c6649){if(!_0x3c6649)throw new Error('Task\x20ID\x20is\x20required');const _0xaf65c2=await fetch(API_BASE+'/tasks/'+_0x3c6649+'/stop',{'method':'POST'});if(!_0xaf65c2['ok']){const _0x3394cc=await _0xaf65c2['json']()['catch'](()=>({}));throw new Error(_0x3394cc['error']||'Failed\x20to\x20stop\x20task:\x20'+_0xaf65c2['statusText']);}return await _0xaf65c2['json']();},async 'interruptTask'(_0x9ac80a){if(!_0x9ac80a)throw new Error('Task\x20ID\x20is\x20required');const _0x2b22ed=await fetch(API_BASE+'/tasks/'+_0x9ac80a+'/interrupt',{'method':'POST'});if(!_0x2b22ed['ok']){const _0x3d2ff8=await _0x2b22ed['json']()['catch'](()=>({}));throw new Error(_0x3d2ff8['error']||_0x3d2ff8['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2b22ed['statusText']);}return await _0x2b22ed['json']();},async 'startTask'(_0x5f4522){if(!_0x5f4522)throw new Error('Task\x20ID\x20is\x20required');const _0x29305e=await fetch(API_BASE+'/tasks/'+_0x5f4522+'/start',{'method':'POST'});if(!_0x29305e['ok']){const _0x4a4c57=await _0x29305e['json']()['catch'](()=>({}));throw new Error(_0x4a4c57['error']||'Failed\x20to\x20start\x20task:\x20'+_0x29305e['statusText']);}return await _0x29305e['json']();},async 'deleteTask'(_0x238c1f){if(!_0x238c1f)throw new Error('Task\x20ID\x20is\x20required');const _0x5d8a2e=await fetch(API_BASE+'/tasks/'+_0x238c1f,{'method':'DELETE'});if(!_0x5d8a2e['ok']){const _0x195d36=await _0x5d8a2e['json']()['catch'](()=>({}));throw new Error(_0x195d36['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x5d8a2e['statusText']);}return await _0x5d8a2e['json']();},async 'refreshTasksFromDisk'(){const _0x2fa277=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x2fa277['ok']){const _0x1c3998=await _0x2fa277['json']()['catch'](()=>({}));throw new Error(_0x1c3998['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x2fa277['statusText']);}return await _0x2fa277['json']();},async 'approveTask'(_0x4d67c7,_0x461d2d={}){if(!_0x4d67c7)throw new Error('Task\x20ID\x20is\x20required');const _0x3a667c={'commit_message':_0x461d2d['commit_message']||'','pull':_0x461d2d['pull']??![],'push':_0x461d2d['push']??![],'conflict_strategy':_0x461d2d['conflict_strategy']||'rebase'};_0x461d2d['new_branch']&&(_0x3a667c['new_branch']=_0x461d2d['new_branch']);const _0x56a7d3=await fetch(API_BASE+'/tasks/'+_0x4d67c7+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a667c)});if(!_0x56a7d3['ok']){const _0x199759=await _0x56a7d3['json']()['catch'](()=>({})),_0x1d1b62=Array['isArray'](_0x199759['results'])?_0x199759['results']['filter'](_0x33a550=>!_0x33a550['success']&&(_0x33a550['error']||_0x33a550['error_code'])):[],_0x571fa0=_0x1d1b62[0x0]||null;let _0x5c3ec3=_0x199759['error']||_0x199759['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56a7d3['statusText'];if(_0x571fa0?.['error'])_0x5c3ec3=_0x571fa0['error'];else _0x199759['message']&&(_0x5c3ec3=_0x199759['message']);const _0x1987f7=new Error(_0x5c3ec3);_0x1987f7['code']=_0x571fa0?.['error_code']||_0x199759['error_code']||null,_0x1987f7['details']=_0x571fa0?.['details']||_0x199759['details']||null,_0x1987f7['tokenExpiryDays']=_0x571fa0?.['token_expiry_days']||_0x199759['token_expiry_days']||null,_0x1987f7['hasConflicts']=_0x199759['results']?.['some'](_0x324b6a=>_0x324b6a['conflict'])||![];throw _0x1987f7;}return await _0x56a7d3['json']();},async 'getPullRequestInfo'(_0x1c133f){if(!_0x1c133f)throw new Error('Task\x20ID\x20is\x20required');const _0x478489=await fetch(API_BASE+'/tasks/'+_0x1c133f+'/pull-request-info');if(!_0x478489['ok']){const _0xf05a6c=await _0x478489['json']()['catch'](()=>({}));throw new Error(_0xf05a6c['error']||_0xf05a6c['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x478489['statusText']);}return await _0x478489['json']();},async 'createPullRequests'(_0x4b27fb,_0x308331){if(!_0x4b27fb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x308331||!Array['isArray'](_0x308331))throw new Error('repos\x20array\x20is\x20required');const _0x343074=await fetch(API_BASE+'/tasks/'+_0x4b27fb+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x308331})});if(!_0x343074['ok']){const _0x4a092c=await _0x343074['json']()['catch'](()=>({}));let _0x5a5c3f=_0x4a092c['error']||_0x4a092c['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x343074['statusText'];if(_0x4a092c['results']&&Array['isArray'](_0x4a092c['results'])){const _0x12e43e=_0x4a092c['results']['filter'](_0x4e1bd0=>!_0x4e1bd0['success']&&_0x4e1bd0['error']);_0x12e43e['length']>0x0&&(_0x5a5c3f=_0x12e43e[0x0]['error']);}throw new Error(_0x5a5c3f);}return await _0x343074['json']();},async 'syncRepos'(_0x49dd59){if(!_0x49dd59)throw new Error('Task\x20ID\x20is\x20required');const _0x1e807a=await fetch(API_BASE+'/tasks/'+_0x49dd59+'/sync-repos',{'method':'POST'});if(!_0x1e807a['ok']){const _0x3155b5=await _0x1e807a['json']()['catch'](()=>({}));throw new Error(_0x3155b5['error']||_0x3155b5['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x1e807a['statusText']);}return await _0x1e807a['json']();},async 'getIbmiSyncInfo'(_0x1db791){if(!_0x1db791)throw new Error('Task\x20ID\x20is\x20required');const _0x39184e=await fetch(API_BASE+'/tasks/'+_0x1db791+'/ibmi-sync-info');if(!_0x39184e['ok']){const _0x88218b=await _0x39184e['json']()['catch'](()=>({}));throw new Error(_0x88218b['error']||_0x88218b['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x39184e['json']();},async 'getSyncFiles'(_0x3a0dee){if(!_0x3a0dee)throw new Error('Task\x20ID\x20is\x20required');const _0x49a8b1=await fetch(API_BASE+'/tasks/'+_0x3a0dee+'/sync-to-ibmi/files');if(!_0x49a8b1['ok']){const _0x3c08c1=await _0x49a8b1['json']()['catch'](()=>({}));throw new Error(_0x3c08c1['error']||_0x3c08c1['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x49a8b1['json']();},async 'syncToIbmi'(_0x279a11,_0x2aee61,_0x1f2a3c=null,_0x52e1c1=null,_0x59ad47=null){if(!_0x279a11)throw new Error('Task\x20ID\x20is\x20required');const _0x420761={'library':_0x2aee61};if(_0x1f2a3c)_0x420761['user']=_0x1f2a3c;if(_0x52e1c1)_0x420761['password']=_0x52e1c1;if(_0x59ad47)_0x420761['files']=_0x59ad47;const _0x2675da=await fetch(API_BASE+'/tasks/'+_0x279a11+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x420761)});if(!_0x2675da['ok']){const _0x4f322f=await _0x2675da['json']()['catch'](()=>({}));throw new Error(_0x4f322f['error']||_0x4f322f['message']||'Sync\x20failed');}return await _0x2675da['json']();},async 'getIbmiSyncLog'(_0x2abc8a){if(!_0x2abc8a)throw new Error('Task\x20ID\x20is\x20required');const _0x36bb05=await fetch(API_BASE+'/tasks/'+_0x2abc8a+'/ibmi-sync-log');if(!_0x36bb05['ok']){const _0x18cae6=await _0x36bb05['json']()['catch'](()=>({}));throw new Error(_0x18cae6['error']||_0x18cae6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x36bb05['json']();},async 'pullChanges'(_0x350327){if(!_0x350327)throw new Error('Task\x20ID\x20is\x20required');const _0xd3e300=await fetch(API_BASE+'/tasks/'+_0x350327+'/pull-changes',{'method':'POST'});if(!_0xd3e300['ok']){const _0x594d75=await _0xd3e300['json']()['catch'](()=>({})),_0x4bcd82=new Error(_0x594d75['message']||_0x594d75['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0xd3e300['statusText']);_0x4bcd82['code']=_0x594d75['error_code']||null,_0x4bcd82['details']=_0x594d75['details']||null,_0x4bcd82['tokenExpiryDays']=_0x594d75['token_expiry_days']||null;throw _0x4bcd82;}return await _0xd3e300['json']();},async 'readFile'(_0x72d64a,_0x1d899b){if(!_0x72d64a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d899b)throw new Error('File\x20path\x20is\x20required');const _0x818d0a=await fetch(API_BASE+'/tasks/'+_0x72d64a+'/files?path='+encodeURIComponent(_0x1d899b));if(!_0x818d0a['ok']){const _0x151591=await _0x818d0a['json']()['catch'](()=>({}));throw new Error(_0x151591['error']||_0x151591['message']||'Failed\x20to\x20read\x20file:\x20'+_0x818d0a['statusText']);}return await _0x818d0a['json']();},'getTaskFileDownloadUrl'(_0x4f784d,_0x1862bf){if(!_0x4f784d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1862bf)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x4f784d+'/files/download?path='+encodeURIComponent(_0x1862bf);},async 'writeFile'(_0x136379,_0xb942e,_0x87434d){if(!_0x136379)throw new Error('Task\x20ID\x20is\x20required');if(!_0xb942e)throw new Error('File\x20path\x20is\x20required');if(_0x87434d===undefined)throw new Error('Content\x20is\x20required');const _0x19f84b=await fetch(API_BASE+'/tasks/'+_0x136379+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xb942e,'content':_0x87434d})});if(!_0x19f84b['ok']){const _0x30f688=await _0x19f84b['json']()['catch'](()=>({}));throw new Error(_0x30f688['error']||_0x30f688['message']||'Failed\x20to\x20write\x20file:\x20'+_0x19f84b['statusText']);}return await _0x19f84b['json']();},async 'uploadTaskFiles'(_0x192c17,_0x3bab31,_0x4bb3af){if(!_0x192c17)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3bab31)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4bb3af||_0x4bb3af['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x56a261=new FormData();_0x56a261['append']('targetDir',_0x3bab31);for(const _0x388dfc of _0x4bb3af){_0x56a261['append']('files',_0x388dfc,_0x388dfc['name']);}const _0x5ae72b=await fetch(API_BASE+'/tasks/'+_0x192c17+'/files/upload',{'method':'POST','body':_0x56a261});if(!_0x5ae72b['ok']){const _0x290407=await _0x5ae72b['json']()['catch'](()=>({}));throw new Error(_0x290407['error']||_0x290407['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x5ae72b['statusText']);}return await _0x5ae72b['json']();},async 'createDirectory'(_0x24b363,_0x3f8594){if(!_0x24b363)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8594)throw new Error('Directory\x20path\x20is\x20required');const _0x398e8a=await fetch(API_BASE+'/tasks/'+_0x24b363+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x3f8594})});if(!_0x398e8a['ok']){const _0x1606cc=await _0x398e8a['json']()['catch'](()=>({}));throw new Error(_0x1606cc['error']||_0x1606cc['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x398e8a['statusText']);}return await _0x398e8a['json']();},async 'renamePath'(_0x1d50de,_0x4e40c2,_0x2aecab){if(!_0x1d50de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e40c2)throw new Error('Source\x20path\x20is\x20required');if(!_0x2aecab)throw new Error('Destination\x20path\x20is\x20required');const _0x288b42=await fetch(API_BASE+'/tasks/'+_0x1d50de+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x4e40c2,'newPath':_0x2aecab})});if(!_0x288b42['ok']){const _0x575081=await _0x288b42['json']()['catch'](()=>({}));throw new Error(_0x575081['error']||_0x575081['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x288b42['statusText']);}return await _0x288b42['json']();},async 'deleteFile'(_0x2f7829,_0x2fe646){if(!_0x2f7829)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2fe646)throw new Error('File\x20path\x20is\x20required');const _0x389fe1=await fetch(API_BASE+'/tasks/'+_0x2f7829+'/files?path='+encodeURIComponent(_0x2fe646),{'method':'DELETE'});if(!_0x389fe1['ok']){const _0x54d00c=await _0x389fe1['json']()['catch'](()=>({}));throw new Error(_0x54d00c['error']||_0x54d00c['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x389fe1['statusText']);}return await _0x389fe1['json']();},async 'deleteDirectory'(_0x5082c4,_0x5de369){if(!_0x5082c4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5de369)throw new Error('Directory\x20path\x20is\x20required');const _0x5ab974=await fetch(API_BASE+'/tasks/'+_0x5082c4+'/files/directory?path='+encodeURIComponent(_0x5de369),{'method':'DELETE'});if(!_0x5ab974['ok']){const _0x1ff072=await _0x5ab974['json']()['catch'](()=>({}));throw new Error(_0x1ff072['error']||_0x1ff072['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5ab974['statusText']);}return await _0x5ab974['json']();},async 'discardFile'(_0x1e75e6,_0x151dbb,_0x47cec3){if(!_0x1e75e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x151dbb)throw new Error('File\x20path\x20is\x20required');if(!_0x47cec3)throw new Error('Repository\x20path\x20is\x20required');const _0x4273f3=await fetch(API_BASE+'/tasks/'+_0x1e75e6+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x151dbb,'repoPath':_0x47cec3})});if(!_0x4273f3['ok']){const _0x105b2d=await _0x4273f3['json']()['catch'](()=>({}));throw new Error(_0x105b2d['error']||_0x105b2d['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x4273f3['statusText']);}return await _0x4273f3['json']();},async 'followUpTask'(_0x5c1899,_0x2da5cd={}){if(!_0x5c1899)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2da5cd['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2469ba,_0x22b843={};if(_0x2da5cd['files']&&_0x2da5cd['files']['length']>0x0){const _0x5643c3=new FormData();_0x5643c3['append']('instructions',_0x2da5cd['instructions']);for(const _0x4a1763 of _0x2da5cd['files']){_0x5643c3['append']('attachments',_0x4a1763);}_0x2469ba=_0x5643c3;}else _0x22b843['Content-Type']='application/json',_0x2469ba=JSON['stringify']({'instructions':_0x2da5cd['instructions']});const _0x1ebdc2=await fetch(API_BASE+'/tasks/'+_0x5c1899+'/follow-up',{'method':'POST','headers':_0x22b843,'body':_0x2469ba});if(!_0x1ebdc2['ok']){const _0x37b251=await _0x1ebdc2['json']()['catch'](()=>({}));throw new Error(_0x37b251['error']||_0x37b251['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1ebdc2['statusText']);}return await _0x1ebdc2['json']();},async 'getTaskRewindPoints'(_0x502418){if(!_0x502418)throw new Error('Task\x20ID\x20is\x20required');const _0x5ecd07=await fetch(API_BASE+'/tasks/'+_0x502418+'/rewind-points');if(!_0x5ecd07['ok']){const _0x13b101=await _0x5ecd07['json']()['catch'](()=>({}));throw new Error(_0x13b101['error']||_0x13b101['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x5ecd07['statusText']);}return await _0x5ecd07['json']();},async 'rewindTask'(_0x5c220b,_0x14f87a={}){if(!_0x5c220b)throw new Error('Task\x20ID\x20is\x20required');const _0x57dd34=Number['isInteger'](_0x14f87a['targetFollowUpCount'])?_0x14f87a['targetFollowUpCount']:0x0,_0x4bae01={'targetFollowUpCount':_0x57dd34};typeof _0x14f87a['instructions']==='string'&&_0x14f87a['instructions']['trim']()&&(_0x4bae01['instructions']=_0x14f87a['instructions']['trim']());typeof _0x14f87a['rewindFiles']==='boolean'&&(_0x4bae01['rewindFiles']=_0x14f87a['rewindFiles']);const _0x21dfad=await fetch(API_BASE+'/tasks/'+_0x5c220b+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4bae01)});if(!_0x21dfad['ok']){const _0x5d7c1d=await _0x21dfad['json']()['catch'](()=>({}));throw new Error(_0x5d7c1d['error']||_0x5d7c1d['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x21dfad['statusText']);}return await _0x21dfad['json']();},async 'login'(_0x1dd84f,_0x4d8206){const _0x45657e=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x1dd84f,'password':_0x4d8206})});if(!_0x45657e['ok']){const _0x1783e9=await _0x45657e['json']();throw new Error(_0x1783e9['message']||'Login\x20failed');}return await _0x45657e['json']();},async 'logout'(){const _0x4098dd=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4098dd['ok']){const _0x3a9f58=await _0x4098dd['json']();throw new Error(_0x3a9f58['message']||'Logout\x20failed');}return await _0x4098dd['json']();},async 'getCurrentUser'(){const _0x47c8c4=await fetch(API_BASE+'/auth/me');if(!_0x47c8c4['ok'])throw new Error('Not\x20authenticated');const _0x1c9d99=await _0x47c8c4['json']();return _0x1c9d99['user'];},async 'getRolesInfo'(){const _0x15403c=await fetch(API_BASE+'/users/roles');if(!_0x15403c['ok']){const _0x1d80ff=await _0x15403c['json']();throw new Error(_0x1d80ff['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x15403c['json']();},async 'getUsers'(){const _0x2ffe16=await fetch(API_BASE+'/users');if(!_0x2ffe16['ok']){const _0x41dfa9=await _0x2ffe16['json']();throw new Error(_0x41dfa9['message']||'Failed\x20to\x20get\x20users');}return await _0x2ffe16['json']();},async 'getUser'(_0x533721){const _0x5b2c88=await fetch(API_BASE+'/users/'+_0x533721);if(!_0x5b2c88['ok']){const _0x241ff3=await _0x5b2c88['json']();throw new Error(_0x241ff3['message']||'Failed\x20to\x20get\x20user');}return await _0x5b2c88['json']();},async 'createUser'(_0x23a22f){const _0x20fe8f=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23a22f)});if(!_0x20fe8f['ok']){const _0x33eb0c=await _0x20fe8f['json']();throw new Error(_0x33eb0c['message']||'Failed\x20to\x20create\x20user');}return await _0x20fe8f['json']();},async 'updateUser'(_0x2a8fce,_0x4d9d73){const _0x398304=await fetch(API_BASE+'/users/'+_0x2a8fce,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d9d73)});if(!_0x398304['ok']){const _0x5b2784=await _0x398304['json']();throw new Error(_0x5b2784['message']||'Failed\x20to\x20update\x20user');}return await _0x398304['json']();},async 'deleteUser'(_0x5227ae){const _0x2ef901=await fetch(API_BASE+'/users/'+_0x5227ae,{'method':'DELETE'});if(!_0x2ef901['ok']){const _0x3f8075=await _0x2ef901['json']();throw new Error(_0x3f8075['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ef901['json']();},async 'stopAllContainers'(){const _0x1a7ee0=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x16e544=await _0x1a7ee0['json']()['catch'](()=>({}));if(!_0x1a7ee0['ok'])throw new Error(_0x16e544['message']||_0x16e544['error']||'Failed\x20to\x20stop\x20containers');return _0x16e544;},async 'removeStoppedContainers'(){const _0x25e424=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x554e40=await _0x25e424['json']()['catch'](()=>({}));if(!_0x25e424['ok'])throw new Error(_0x554e40['message']||_0x554e40['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x554e40;},async 'pruneDockerResources'(){const _0x1b7522=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x6c3f8=await _0x1b7522['json']()['catch'](()=>({}));if(!_0x1b7522['ok'])throw new Error(_0x6c3f8['message']||_0x6c3f8['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x6c3f8;},async 'getUpdateSettings'(){const _0x28e1dc=await fetch(API_BASE+'/health/update-settings'),_0x342065=await _0x28e1dc['json']()['catch'](()=>({}));if(!_0x28e1dc['ok'])throw new Error(_0x342065['message']||_0x342065['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x342065;},async 'applyServerUpdate'(_0x1f1f45){const _0x2cc585=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1f1f45})}),_0x57860e=await _0x2cc585['json']()['catch'](()=>({}));if(!_0x2cc585['ok']){const _0x2b3b90=new Error(_0x57860e['message']||_0x57860e['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x57860e['output']!==undefined)_0x2b3b90['output']=_0x57860e['output'];if(_0x57860e['error']!==undefined)_0x2b3b90['commandError']=_0x57860e['error'];throw _0x2b3b90;}return _0x57860e;},async 'restartServer'(){const _0x1b2b3e=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x2cb8f6=await _0x1b2b3e['json']()['catch'](()=>({}));if(!_0x1b2b3e['ok'])throw new Error(_0x2cb8f6['message']||_0x2cb8f6['error']||'Failed\x20to\x20restart\x20server');return _0x2cb8f6;},async 'getDockerContainers'(){const _0x31edbd=await fetch(API_BASE+'/health/containers'),_0x5f1f2e=await _0x31edbd['json']()['catch'](()=>({}));if(!_0x31edbd['ok'])throw new Error(_0x5f1f2e['message']||_0x5f1f2e['error']||'Failed\x20to\x20load\x20containers');return _0x5f1f2e;},async 'getDockerImages'(){const _0x4348c=await fetch(API_BASE+'/health/docker/images'),_0x59f4a2=await _0x4348c['json']()['catch'](()=>({}));if(!_0x4348c['ok'])throw new Error(_0x59f4a2['message']||_0x59f4a2['error']||'Failed\x20to\x20load\x20images');return _0x59f4a2;},async 'getDockerVolumes'(){const _0x4544c1=await fetch(API_BASE+'/health/docker/volumes'),_0x361700=await _0x4544c1['json']()['catch'](()=>({}));if(!_0x4544c1['ok'])throw new Error(_0x361700['message']||_0x361700['error']||'Failed\x20to\x20load\x20volumes');return _0x361700;},async 'getActiveSessions'(){const _0x15e55c=await fetch(API_BASE+'/health/sessions'),_0x514e04=await _0x15e55c['json']()['catch'](()=>({}));if(!_0x15e55c['ok'])throw new Error(_0x514e04['message']||_0x514e04['error']||'Failed\x20to\x20load\x20sessions');return _0x514e04;},async 'getSystemInfo'(){const _0x4b8b30=await fetch(API_BASE+'/health/system'),_0x5945e0=await _0x4b8b30['json']()['catch'](()=>({}));if(!_0x4b8b30['ok'])throw new Error(_0x5945e0['message']||_0x5945e0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x5945e0;},async 'stopDockerContainer'(_0x121042){const _0x498ef5=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x121042)+'/stop',{'method':'POST'}),_0x5b40cd=await _0x498ef5['json']()['catch'](()=>({}));if(!_0x498ef5['ok'])throw new Error(_0x5b40cd['message']||_0x5b40cd['error']||'Failed\x20to\x20stop\x20container');return _0x5b40cd;},async 'removeDockerContainer'(_0x3375fe){const _0x58f02e=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x3375fe),{'method':'DELETE'}),_0x12a041=await _0x58f02e['json']()['catch'](()=>({}));if(!_0x58f02e['ok'])throw new Error(_0x12a041['message']||_0x12a041['error']||'Failed\x20to\x20remove\x20container');return _0x12a041;},async 'createPasswordToken'(_0x132232,_0x406b8e='setup',_0x507cc4=![]){const _0x455ea0=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x132232,'type':_0x406b8e,'sendEmail':_0x507cc4})});if(!_0x455ea0['ok']){const _0x473f36=await _0x455ea0['json']();throw new Error(_0x473f36['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x455ea0['json']();},async 'getEmailConfig'(){const _0xb8b7f1=await fetch(API_BASE+'/password/email-config');if(!_0xb8b7f1['ok']){const _0x29b805=await _0xb8b7f1['json']();throw new Error(_0x29b805['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0xb8b7f1['json']();},async 'updateTaskName'(_0x4f59be,_0x529677){const _0x17d0f4=await fetch(API_BASE+'/tasks/'+_0x4f59be,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x529677})});if(!_0x17d0f4['ok']){const _0x474c5e=await _0x17d0f4['json']();throw new Error(_0x474c5e['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x17d0f4['json']();},async 'pinTask'(_0x5b4634,_0x22ea7d,_0x1d762c=null){if(!_0x5b4634)throw new Error('Task\x20ID\x20is\x20required');const _0x4d23e2={'pinned':_0x22ea7d};_0x1d762c&&_0x1d762c['length']>0x0&&(_0x4d23e2['additionalTaskIds']=_0x1d762c);const _0x3f571f=await fetch(API_BASE+'/tasks/'+_0x5b4634+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d23e2)});if(!_0x3f571f['ok']){const _0x20e8c6=await _0x3f571f['json']();throw new Error(_0x20e8c6['error']||'Failed\x20to\x20pin\x20task');}return await _0x3f571f['json']();},async 'setTaskWinner'(_0x47821b,_0x4cf184,_0xa43d4=[]){if(!_0x47821b)throw new Error('Task\x20ID\x20is\x20required');const _0x5a6956=await fetch(API_BASE+'/tasks/'+_0x47821b+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x4cf184,'siblings':_0xa43d4})});if(!_0x5a6956['ok']){const _0x55664a=await _0x5a6956['json']();throw new Error(_0x55664a['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x5a6956['json']();},async 'setTaskLoser'(_0x542a66,_0xb9c0d8){if(!_0x542a66)throw new Error('Task\x20ID\x20is\x20required');const _0x445603=await fetch(API_BASE+'/tasks/'+_0x542a66+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0xb9c0d8})});if(!_0x445603['ok']){const _0x1ab813=await _0x445603['json']();throw new Error(_0x1ab813['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x445603['json']();},async 'createTaskGroup'(_0x2f88d5){const _0x12c7bc=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f88d5)});if(!_0x12c7bc['ok']){const _0x49565e=await _0x12c7bc['json']();throw new Error(_0x49565e['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x12c7bc['json']();},async 'getTaskGroups'(_0x25a74f={}){const _0x5d1bb9=new URLSearchParams();if(_0x25a74f['userId'])_0x5d1bb9['set']('userId',String(_0x25a74f['userId']));if(_0x25a74f['status'])_0x5d1bb9['set']('status',String(_0x25a74f['status']));if(_0x25a74f['limit'])_0x5d1bb9['set']('limit',String(_0x25a74f['limit']));const _0x5c3d9e=API_BASE+'/tasks/groups'+(_0x5d1bb9['toString']()?'?'+_0x5d1bb9['toString']():''),_0x55ea70=await fetch(_0x5c3d9e);if(!_0x55ea70['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x55ea70['json']();},async 'getTaskGroup'(_0xb7d317){const _0x39b6dc=await fetch(API_BASE+'/tasks/groups/'+_0xb7d317);if(!_0x39b6dc['ok']){const _0x42655f=await _0x39b6dc['json']();throw new Error(_0x42655f['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x39b6dc['json']();},async 'updateTaskGroup'(_0x1ef7d3,_0x11a784,_0x5403ed){const _0x1b7343=await fetch(API_BASE+'/tasks/'+_0x1ef7d3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x11a784,'groupIndex':_0x5403ed})});if(!_0x1b7343['ok']){const _0x59f362=await _0x1b7343['json']();throw new Error(_0x59f362['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x1b7343['json']();},async 'removeTaskFromGroup'(_0x1b05ef){return this['updateTaskGroup'](_0x1b05ef,null,null);},async 'deleteTaskGroup'(_0x25b3d3,_0xefa145=![]){const _0x3fb18b=_0xefa145?'?deleteTasks=true':'',_0x11be91=await fetch(API_BASE+'/tasks/groups/'+_0x25b3d3+_0x3fb18b,{'method':'DELETE'});if(!_0x11be91['ok']){const _0x57e0bd=await _0x11be91['json']();throw new Error(_0x57e0bd['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x585383,_0x1a063f){const _0x3533b2=await fetch(API_BASE+'/tasks/groups/'+_0x585383+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1a063f})});if(!_0x3533b2['ok']){const _0x4002d0=await _0x3533b2['json']();throw new Error(_0x4002d0['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x3533b2['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x5235ae){if(!_0x5235ae)throw new Error('Task\x20ID\x20is\x20required');const _0xfd0d=await fetch(API_BASE+'/tasks/'+_0x5235ae+'/comments');if(!_0xfd0d['ok']){const _0x4d466c=await _0xfd0d['json']()['catch'](()=>({}));throw new Error(_0x4d466c['error']||'Failed\x20to\x20get\x20comments');}return await _0xfd0d['json']();},async 'addComment'(_0x36bc83,_0x2249f2){if(!_0x36bc83)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2249f2)throw new Error('Comment\x20content\x20is\x20required');const _0x492913=await fetch(API_BASE+'/tasks/'+_0x36bc83+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2249f2})});if(!_0x492913['ok']){const _0x51644c=await _0x492913['json']()['catch'](()=>({}));throw new Error(_0x51644c['error']||'Failed\x20to\x20add\x20comment');}return await _0x492913['json']();},async 'updateComment'(_0x4ccbcf,_0x23d13c,_0x235a1f){if(!_0x4ccbcf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x23d13c)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x235a1f)throw new Error('Comment\x20content\x20is\x20required');const _0x53d46b=await fetch(API_BASE+'/tasks/'+_0x4ccbcf+'/comments/'+_0x23d13c,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x235a1f})});if(!_0x53d46b['ok']){const _0x593533=await _0x53d46b['json']()['catch'](()=>({}));throw new Error(_0x593533['error']||'Failed\x20to\x20update\x20comment');}return await _0x53d46b['json']();},async 'deleteComment'(_0x46311d,_0x12144c){if(!_0x46311d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x12144c)throw new Error('Comment\x20ID\x20is\x20required');const _0x15e77b=await fetch(API_BASE+'/tasks/'+_0x46311d+'/comments/'+_0x12144c,{'method':'DELETE'});if(!_0x15e77b['ok']){const _0x214ec4=await _0x15e77b['json']()['catch'](()=>({}));throw new Error(_0x214ec4['error']||'Failed\x20to\x20delete\x20comment');}return await _0x15e77b['json']();},async 'createObjective'(_0x145ba3){const _0x35d4cd={'objective':!![],'name':_0x145ba3['name']||'','environment':_0x145ba3['environment']||null,'agents':_0x145ba3['agents']||[],'branches':_0x145ba3['branches']||{},'isPinned':_0x145ba3['isPinned']||![],'parentObjectiveId':_0x145ba3['parentObjectiveId']||null,'env_vars':_0x145ba3['envVars']||{},'parameters':{'instructions':_0x145ba3['instructions']||''},'files':_0x145ba3['files']||[],'jira':_0x145ba3['jira']||null};return this['createTask'](_0x35d4cd);},async 'updateObjective'(_0x5cbb1a,_0x4bc6a1,_0x56fd1a=[],_0x2935fa=[]){let _0x3a3cd8,_0x2f72fc={};const _0x3255af={..._0x4bc6a1};_0x2935fa&&_0x2935fa['length']>0x0&&(_0x3255af['removeAttachments']=_0x2935fa);if(_0x56fd1a&&_0x56fd1a['length']>0x0){const _0x31f1b5=new FormData();for(const [_0x4a2686,_0x3d05f6]of Object['entries'](_0x3255af)){if(_0x3d05f6==null)continue;typeof _0x3d05f6==='object'?_0x31f1b5['append'](_0x4a2686,JSON['stringify'](_0x3d05f6)):_0x31f1b5['append'](_0x4a2686,String(_0x3d05f6));}for(const _0x19002e of _0x56fd1a){_0x31f1b5['append']('attachments',_0x19002e);}_0x3a3cd8=_0x31f1b5;}else _0x2f72fc['Content-Type']='application/json',_0x3a3cd8=JSON['stringify'](_0x3255af);const _0x32f145=await fetch(API_BASE+'/tasks/'+_0x5cbb1a,{'method':'PATCH','headers':_0x2f72fc,'body':_0x3a3cd8});if(!_0x32f145['ok']){const _0x16d8d0=await _0x32f145['json']();throw new Error(_0x16d8d0['error']||'Failed\x20to\x20update\x20objective');}return await _0x32f145['json']();},async 'deleteObjective'(_0x436a33){return this['deleteTask'](_0x436a33);},async 'launchObjective'(_0x4ef32f,_0x5ee3da={}){const _0x473526=await fetch(API_BASE+'/tasks/'+_0x4ef32f+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5ee3da)});if(!_0x473526['ok']){const _0x2d22a3=await _0x473526['json']();throw new Error(_0x2d22a3['error']||'Failed\x20to\x20launch\x20objective');}return await _0x473526['json']();},async 'getObjectiveAttachments'(_0x3fc024){return this['getTaskAttachments'](_0x3fc024);},async 'createJudgeTask'({environment:_0x5dd238,judgeAgent:_0x27ed11,groupId:_0x5a6beb,taskIds:_0x5e9ff3,judgeCustomInstructions:_0x24e053,isPinned:_0x483f7b}){const _0xe76dd0=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x5dd238,'judgeAgent':_0x27ed11,'groupId':_0x5a6beb,'taskIds':_0x5e9ff3,'judgeCustomInstructions':_0x24e053,'isPinned':_0x483f7b})});if(!_0xe76dd0['ok']){const _0x2c81ca=await _0xe76dd0['json']();throw new Error(_0x2c81ca['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0xe76dd0['json']();},async 'getJudgeTasks'(_0x3a4f47){const _0x4997a9=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x3a4f47));if(!_0x4997a9['ok']){const _0x3e367f=await _0x4997a9['json']();throw new Error(_0x3e367f['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4997a9['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1bb6ef,_0x2c03ee,_0x432e7d=''){const _0x316c17=await fetch(API_BASE+'/tasks/'+_0x1bb6ef+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x2c03ee,'customPreamble':_0x432e7d})});if(!_0x316c17['ok']){const _0x354e9b=await _0x316c17['json']();throw new Error(_0x354e9b['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x316c17['json']();},async 'getJiraConfig'(){const _0x9acb51=await fetch(API_BASE+'/jira/config');if(!_0x9acb51['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x9acb51['json']();},async 'getJiraIssue'(_0x1c4fba){const _0x571ff6=await fetch(API_BASE+'/jira/issues/'+_0x1c4fba);if(!_0x571ff6['ok']){const _0x9eca9d=await _0x571ff6['json']()['catch'](()=>({}));throw new Error(_0x9eca9d['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x571ff6['statusText']);}return await _0x571ff6['json']();},async 'searchJiraIssues'(_0x3799c2,_0x1afddd=0x14){const _0x473064=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x3799c2,'maxResults':_0x1afddd})});if(!_0x473064['ok']){const _0x4b8257=await _0x473064['json']()['catch'](()=>({}));throw new Error(_0x4b8257['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x473064['statusText']);}return await _0x473064['json']();},async 'postJiraComment'(_0x602037,_0x232cab){const _0x29e0a0=await fetch(API_BASE+'/jira/issues/'+_0x602037+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x232cab})});if(!_0x29e0a0['ok']){const _0x73c905=await _0x29e0a0['json']()['catch'](()=>({}));throw new Error(_0x73c905['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x29e0a0['statusText']);}return await _0x29e0a0['json']();},async 'getJiraComments'(_0x45eecf){const _0x59be43=await fetch(API_BASE+'/jira/issues/'+_0x45eecf+'/comments');if(!_0x59be43['ok']){const _0x4ada5e=await _0x59be43['json']()['catch'](()=>({}));throw new Error(_0x4ada5e['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x59be43['statusText']);}return await _0x59be43['json']();},async 'promptParameter'({environment:_0xe3cc2a,command:_0x308fd6,parser:parser='json'}){const _0x55b8c2=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0xe3cc2a,'command':_0x308fd6,'parser':parser})});if(!_0x55b8c2['ok']){const _0x19e458=await _0x55b8c2['json']()['catch'](()=>({}));throw new Error(_0x19e458['message']||_0x19e458['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x55b8c2['statusText']);}return await _0x55b8c2['json']();},async 'promptParameterStream'(_0x2cd975,_0x58f5fc){const _0xe99f3d=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2cd975)});if(!_0xe99f3d['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0xe99f3d['statusText']);const _0x78909e=_0xe99f3d['body']['getReader'](),_0x5b533e=new TextDecoder();let _0x2b9e1b='';return new Promise((_0x3cc41e,_0x29df1c)=>{const _0x608dd=async()=>{try{const {done:_0x5500be,value:_0x4849a9}=await _0x78909e['read']();if(_0x5500be)return;_0x2b9e1b+=_0x5b533e['decode'](_0x4849a9,{'stream':!![]});const _0x4b66f7=_0x2b9e1b['split']('\x0a\x0a');_0x2b9e1b=_0x4b66f7['pop']()||'';for(const _0x172c63 of _0x4b66f7){if(!_0x172c63['trim']())continue;const _0xa44ff=_0x172c63['split']('\x0a');let _0x2317af='message',_0x6f863='';for(const _0x5af178 of _0xa44ff){if(_0x5af178['startsWith']('event:'))_0x2317af=_0x5af178['substring'](0x6)['trim']();else _0x5af178['startsWith']('data:')&&(_0x6f863=_0x5af178['substring'](0x5)['trim']());}if(!_0x6f863)continue;try{const _0x3b802b=JSON['parse'](_0x6f863);if(_0x2317af==='progress'&&_0x58f5fc)_0x58f5fc(_0x3b802b['stage'],_0x3b802b['message']);else{if(_0x2317af==='result'){_0x3cc41e(_0x3b802b);return;}else{if(_0x2317af==='error'){let _0x3ac715=_0x3b802b['message']||_0x3b802b['error']||'Prompt\x20command\x20failed';_0x3b802b['rawOutput']&&(_0x3ac715+='\x0a\x0aRaw\x20output:\x0a'+_0x3b802b['rawOutput']);_0x29df1c(new Error(_0x3ac715));return;}}}}catch(_0x19673b){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x19673b),console['error']('Event\x20type:',_0x2317af),console['error']('Event\x20data:',_0x6f863),console['error']('First\x20200\x20chars:',_0x6f863['substring'](0x0,0xc8)),_0x29df1c(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x19673b['message']+'\x0a\x0aData:\x20'+_0x6f863['substring'](0x0,0x1f4)));return;}}_0x608dd();}catch(_0x475946){_0x29df1c(_0x475946);}};_0x608dd();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x16bb97){const _0x2d5652=await fetch(''+API_BASE+_0x16bb97);if(!_0x2d5652['ok']){const _0x23dea1=await _0x2d5652['json']()['catch'](()=>({'error':_0x2d5652['statusText']})),_0x4c0321=new Error(_0x23dea1['error']||_0x23dea1['message']||_0x2d5652['statusText']);if(_0x23dea1['detail']!==undefined)_0x4c0321['detail']=_0x23dea1['detail'];throw _0x4c0321;}return await _0x2d5652['json']();},async 'post'(_0x7a2d71,_0xacc93f){const _0x2f2419=await fetch(''+API_BASE+_0x7a2d71,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xacc93f)});if(!_0x2f2419['ok']){const _0x2e6f6a=await _0x2f2419['json']()['catch'](()=>({'error':_0x2f2419['statusText']})),_0xa3f6ec=new Error(_0x2e6f6a['error']||_0x2e6f6a['message']||_0x2f2419['statusText']);if(_0x2e6f6a['detail']!==undefined)_0xa3f6ec['detail']=_0x2e6f6a['detail'];throw _0xa3f6ec;}return await _0x2f2419['json']();},async 'put'(_0x40dae7,_0xa75060){const _0x238bdc=await fetch(''+API_BASE+_0x40dae7,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa75060)});if(!_0x238bdc['ok']){const _0x249921=await _0x238bdc['json']()['catch'](()=>({'error':_0x238bdc['statusText']})),_0x1b6d4a=new Error(_0x249921['error']||_0x249921['message']||_0x238bdc['statusText']);if(_0x249921['detail']!==undefined)_0x1b6d4a['detail']=_0x249921['detail'];throw _0x1b6d4a;}return await _0x238bdc['json']();},async 'delete'(_0x164576,_0x32a580){const _0x3bc510={'method':'DELETE'};_0x32a580&&(_0x3bc510['headers']={'Content-Type':'application/json'},_0x3bc510['body']=JSON['stringify'](_0x32a580));const _0x2341a0=await fetch(''+API_BASE+_0x164576,_0x3bc510);if(!_0x2341a0['ok']){const _0xdb92eb=await _0x2341a0['json']()['catch'](()=>({'error':_0x2341a0['statusText']})),_0xc0ffc7=new Error(_0xdb92eb['error']||_0xdb92eb['message']||_0x2341a0['statusText']);if(_0xdb92eb['detail']!==undefined)_0xc0ffc7['detail']=_0xdb92eb['detail'];throw _0xc0ffc7;}return await _0x2341a0['json']();},async 'getSkills'(){const _0x8cbcf=await fetch(API_BASE+'/skills');if(!_0x8cbcf['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x8cbcf['statusText']);return await _0x8cbcf['json']();},async 'getSkill'(_0x200f89){const _0x5c7641=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x200f89));if(!_0x5c7641['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5c7641['statusText']);return await _0x5c7641['json']();},async 'createSkill'(_0x5967db){const _0x14e972=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5967db)});if(!_0x14e972['ok']){const _0x877056=await _0x14e972['json']()['catch'](()=>({'error':_0x14e972['statusText']})),_0x3fb4e4=new Error(_0x877056['error']||_0x877056['message']||_0x14e972['statusText']);if(_0x877056['detail']!==undefined)_0x3fb4e4['detail']=_0x877056['detail'];throw _0x3fb4e4;}return await _0x14e972['json']();},async 'updateSkill'(_0x1919a5,_0xee0692){const _0x536930=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1919a5),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xee0692)});if(!_0x536930['ok']){const _0x4610f0=await _0x536930['json']()['catch'](()=>({'error':_0x536930['statusText']})),_0x1e01f4=new Error(_0x4610f0['error']||_0x4610f0['message']||_0x536930['statusText']);if(_0x4610f0['detail']!==undefined)_0x1e01f4['detail']=_0x4610f0['detail'];throw _0x1e01f4;}return await _0x536930['json']();},async 'deleteSkill'(_0x470e70){const _0x2b4f0c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x470e70),{'method':'DELETE'});if(!_0x2b4f0c['ok']){const _0x967374=await _0x2b4f0c['json']()['catch'](()=>({'error':_0x2b4f0c['statusText']})),_0x3c1aa5=new Error(_0x967374['error']||_0x967374['message']||_0x2b4f0c['statusText']);if(_0x967374['detail']!==undefined)_0x3c1aa5['detail']=_0x967374['detail'];throw _0x3c1aa5;}return await _0x2b4f0c['json']();},async 'getSkillFile'(_0x4ed4f3,_0x22993e){const _0x4b34e8=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4ed4f3)+'/files/'+_0x22993e);if(!_0x4b34e8['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x4b34e8['statusText']);return await _0x4b34e8['json']();},async 'saveSkillFile'(_0x49d81e,_0x2d086a,_0x3bb4a5){const _0x43894c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49d81e)+'/files/'+_0x2d086a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3bb4a5})});if(!_0x43894c['ok']){const _0x877f75=await _0x43894c['json']()['catch'](()=>({'error':_0x43894c['statusText']})),_0x146d55=new Error(_0x877f75['error']||_0x877f75['message']||_0x43894c['statusText']);if(_0x877f75['detail']!==undefined)_0x146d55['detail']=_0x877f75['detail'];throw _0x146d55;}return await _0x43894c['json']();},async 'deleteSkillFile'(_0x1b8dff,_0x17c088){const _0x3f94c9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1b8dff)+'/files/'+_0x17c088,{'method':'DELETE'});if(!_0x3f94c9['ok']){const _0x5c7585=await _0x3f94c9['json']()['catch'](()=>({'error':_0x3f94c9['statusText']})),_0x4fe6d6=new Error(_0x5c7585['error']||_0x5c7585['message']||_0x3f94c9['statusText']);if(_0x5c7585['detail']!==undefined)_0x4fe6d6['detail']=_0x5c7585['detail'];throw _0x4fe6d6;}return await _0x3f94c9['json']();},async 'pullSkills'(){const _0xf5c4e1=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xf5c4e1['ok']){const _0x4e74ba=await _0xf5c4e1['json']()['catch'](()=>({'error':_0xf5c4e1['statusText']})),_0x59e281=new Error(_0x4e74ba['error']||_0x4e74ba['message']||_0xf5c4e1['statusText']);if(_0x4e74ba['detail']!==undefined)_0x59e281['detail']=_0x4e74ba['detail'];throw _0x59e281;}return await _0xf5c4e1['json']();},async 'commitSkills'(_0x319002,_0x3aea36={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x3aea36,_0x5c0b28=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x319002,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x5c0b28['ok']){const _0x538c60=await _0x5c0b28['json']()['catch'](()=>({'error':_0x5c0b28['statusText']})),_0xd155c=new Error(_0x538c60['error']||_0x538c60['message']||_0x5c0b28['statusText']);if(_0x538c60['detail']!==undefined)_0xd155c['detail']=_0x538c60['detail'];throw _0xd155c;}return await _0x5c0b28['json']();},async 'discardSkillsChanges'(){const _0x1b1d39=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1b1d39['ok']){const _0x3bfc25=await _0x1b1d39['json']()['catch'](()=>({'error':_0x1b1d39['statusText']})),_0x397e24=new Error(_0x3bfc25['error']||_0x3bfc25['message']||_0x1b1d39['statusText']);if(_0x3bfc25['detail']!==undefined)_0x397e24['detail']=_0x3bfc25['detail'];throw _0x397e24;}return await _0x1b1d39['json']();},async 'getSkillCatalog'(){const _0x4e618e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x4e618e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x4e618e['statusText']);return await _0x4e618e['json']();},async 'getImportedSkillsRegistry'(){const _0x47c646=await fetch(API_BASE+'/external-skills/registry');if(!_0x47c646['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x47c646['statusText']);return await _0x47c646['json']();},async 'importCatalogSkill'(_0x43c788){const _0x17f94c=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x43c788})});if(!_0x17f94c['ok']){const _0x7439d0=await _0x17f94c['json']()['catch'](()=>({'error':_0x17f94c['statusText']})),_0x167671=new Error(_0x7439d0['error']||_0x7439d0['message']||_0x17f94c['statusText']);if(_0x7439d0['detail']!==undefined)_0x167671['detail']=_0x7439d0['detail'];throw _0x167671;}return await _0x17f94c['json']();},async 'importSkillFromGit'(_0x4d24a1,_0x411664,_0x29c980='main',_0x346e9b=null){const _0x5dfffe=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4d24a1,'skillPath':_0x411664,'branch':_0x29c980,'skillId':_0x346e9b})});if(!_0x5dfffe['ok']){const _0x362fd2=await _0x5dfffe['json']()['catch'](()=>({'error':_0x5dfffe['statusText']})),_0x4818ad=new Error(_0x362fd2['error']||_0x362fd2['message']||_0x5dfffe['statusText']);if(_0x362fd2['detail']!==undefined)_0x4818ad['detail']=_0x362fd2['detail'];throw _0x4818ad;}return await _0x5dfffe['json']();},async 'probeMarketplace'(_0x3fb731,_0x425451='main'){const _0x54644f=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3fb731,'branch':_0x425451})});if(!_0x54644f['ok']){const _0x30f3e4=await _0x54644f['json']()['catch'](()=>({'error':_0x54644f['statusText']})),_0xc2fcc5=new Error(_0x30f3e4['error']||_0x30f3e4['message']||_0x54644f['statusText']);if(_0x30f3e4['detail']!==undefined)_0xc2fcc5['detail']=_0x30f3e4['detail'];throw _0xc2fcc5;}return await _0x54644f['json']();},async 'importMarketplaceBundle'(_0x4252da,_0x2aab4b,_0x593d8d,_0x482896=null){const _0x57ccf5=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4252da,'branch':_0x2aab4b,'bundleId':_0x593d8d,'selectedSkills':_0x482896})});if(!_0x57ccf5['ok']){const _0x5cf0e6=await _0x57ccf5['json']()['catch'](()=>({'error':_0x57ccf5['statusText']})),_0x4fba32=new Error(_0x5cf0e6['error']||_0x5cf0e6['message']||_0x57ccf5['statusText']);if(_0x5cf0e6['detail']!==undefined)_0x4fba32['detail']=_0x5cf0e6['detail'];throw _0x4fba32;}return await _0x57ccf5['json']();},async 'importSkillFromFolder'(_0x519c3f,_0x56058a=null){const _0x41d83a=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x519c3f,'skillId':_0x56058a})});if(!_0x41d83a['ok']){const _0x44c353=await _0x41d83a['json']()['catch'](()=>({'error':_0x41d83a['statusText']})),_0x1fbf41=new Error(_0x44c353['error']||_0x44c353['message']||_0x41d83a['statusText']);if(_0x44c353['detail']!==undefined)_0x1fbf41['detail']=_0x44c353['detail'];throw _0x1fbf41;}return await _0x41d83a['json']();},async 'importSkillFromNpm'(_0x6df35b,_0xc605f2='latest',_0x16094b=null,_0x5b2cb2=null){const _0x3f6e58=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x6df35b,'version':_0xc605f2,'skillId':_0x16094b,'registry':_0x5b2cb2})});if(!_0x3f6e58['ok']){const _0x5c3e93=await _0x3f6e58['json']()['catch'](()=>({'error':_0x3f6e58['statusText']})),_0x3b68c2=new Error(_0x5c3e93['error']||_0x5c3e93['message']||_0x3f6e58['statusText']);if(_0x5c3e93['detail']!==undefined)_0x3b68c2['detail']=_0x5c3e93['detail'];throw _0x3b68c2;}return await _0x3f6e58['json']();},async 'checkSkillUpdates'(_0x33c236){const _0x261c00=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x33c236)+'/check-updates',{'method':'POST'});if(!_0x261c00['ok']){const _0x37f5cf=await _0x261c00['json']()['catch'](()=>({'error':_0x261c00['statusText']})),_0x2d5b50=new Error(_0x37f5cf['error']||_0x37f5cf['message']||_0x261c00['statusText']);if(_0x37f5cf['detail']!==undefined)_0x2d5b50['detail']=_0x37f5cf['detail'];throw _0x2d5b50;}return await _0x261c00['json']();},async 'updateExternalSkill'(_0x40f814){const _0x1055e7=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x40f814)+'/update',{'method':'POST'});if(!_0x1055e7['ok']){const _0x4e6420=await _0x1055e7['json']()['catch'](()=>({'error':_0x1055e7['statusText']})),_0x308aae=new Error(_0x4e6420['error']||_0x4e6420['message']||_0x1055e7['statusText']);if(_0x4e6420['detail']!==undefined)_0x308aae['detail']=_0x4e6420['detail'];throw _0x308aae;}return await _0x1055e7['json']();},async 'updateSkillFlags'(_0x60d66f,_0x581721){const _0x2f401a=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x60d66f)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x581721})});if(!_0x2f401a['ok']){const _0x317c38=await _0x2f401a['json']()['catch'](()=>({'error':_0x2f401a['statusText']})),_0x410685=new Error(_0x317c38['error']||_0x317c38['message']||_0x2f401a['statusText']);if(_0x317c38['detail']!==undefined)_0x410685['detail']=_0x317c38['detail'];throw _0x410685;}return await _0x2f401a['json']();},async 'removeFromImportedRegistry'(_0x4f19ff){const _0x1758b0=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4f19ff)+'/registry',{'method':'DELETE'});if(!_0x1758b0['ok']){const _0x7b6c73=await _0x1758b0['json']()['catch'](()=>({'error':_0x1758b0['statusText']})),_0x3b35da=new Error(_0x7b6c73['error']||_0x7b6c73['message']||_0x1758b0['statusText']);if(_0x7b6c73['detail']!==undefined)_0x3b35da['detail']=_0x7b6c73['detail'];throw _0x3b35da;}return await _0x1758b0['json']();},async 'getTeams'(){const _0xca0ffa=await fetch(API_BASE+'/teams');if(!_0xca0ffa['ok']){const _0x2ea3c3=await _0xca0ffa['json']()['catch'](()=>({'message':_0xca0ffa['statusText']}));throw new Error(_0x2ea3c3['message']||'Failed\x20to\x20get\x20teams');}return await _0xca0ffa['json']();},async 'getTeam'(_0x2b42e6){const _0x219804=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2b42e6));if(!_0x219804['ok']){const _0x2c1c33=await _0x219804['json']()['catch'](()=>({'message':_0x219804['statusText']}));throw new Error(_0x2c1c33['message']||'Failed\x20to\x20get\x20team');}return await _0x219804['json']();},async 'createTeam'(_0x399f54){const _0x45cdce=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x399f54)});if(!_0x45cdce['ok']){const _0x1b7f9b=await _0x45cdce['json']()['catch'](()=>({'message':_0x45cdce['statusText']}));throw new Error(_0x1b7f9b['message']||'Failed\x20to\x20create\x20team');}return await _0x45cdce['json']();},async 'updateTeam'(_0x542a51,_0x264f4e){const _0x3c7d16=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x542a51),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x264f4e)});if(!_0x3c7d16['ok']){const _0x41c421=await _0x3c7d16['json']()['catch'](()=>({'message':_0x3c7d16['statusText']}));throw new Error(_0x41c421['message']||'Failed\x20to\x20update\x20team');}return await _0x3c7d16['json']();},async 'deleteTeam'(_0xca647a){const _0x4564e6=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xca647a),{'method':'DELETE'});if(!_0x4564e6['ok']){const _0x2c212d=await _0x4564e6['json']()['catch'](()=>({'message':_0x4564e6['statusText']}));throw new Error(_0x2c212d['message']||'Failed\x20to\x20delete\x20team');}return await _0x4564e6['json']();},async 'addTeamMember'(_0x3abda5,_0x57f893){const _0x210685=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x3abda5)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x57f893})});if(!_0x210685['ok']){const _0x190ca4=await _0x210685['json']()['catch'](()=>({'message':_0x210685['statusText']}));throw new Error(_0x190ca4['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x210685['json']();},async 'removeTeamMember'(_0x46cafa,_0x4e181e){const _0x199420=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x46cafa)+'/members/'+encodeURIComponent(_0x4e181e),{'method':'DELETE'});if(!_0x199420['ok']){const _0xf90a46=await _0x199420['json']()['catch'](()=>({'message':_0x199420['statusText']}));throw new Error(_0xf90a46['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x199420['json']();},async 'getBindings'(_0xe85569={}){const _0x472dba=new URLSearchParams();if(_0xe85569['resource_type'])_0x472dba['set']('resource_type',_0xe85569['resource_type']);if(_0xe85569['resource_id'])_0x472dba['set']('resource_id',_0xe85569['resource_id']);if(_0xe85569['subject_type'])_0x472dba['set']('subject_type',_0xe85569['subject_type']);if(_0xe85569['subject_id'])_0x472dba['set']('subject_id',_0xe85569['subject_id']);const _0x27d3a7=_0x472dba['toString'](),_0x11a783=await fetch(API_BASE+'/bindings'+(_0x27d3a7?'?'+_0x27d3a7:''));if(!_0x11a783['ok']){const _0x2e73f4=await _0x11a783['json']()['catch'](()=>({'message':_0x11a783['statusText']}));throw new Error(_0x2e73f4['message']||'Failed\x20to\x20get\x20bindings');}return await _0x11a783['json']();},async 'createBinding'(_0x59c120){const _0x54a385=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x59c120)});if(!_0x54a385['ok']){const _0x142917=await _0x54a385['json']()['catch'](()=>({'message':_0x54a385['statusText']}));throw new Error(_0x142917['message']||'Failed\x20to\x20create\x20binding');}return await _0x54a385['json']();},async 'updateBinding'(_0x2a4411,_0x1ea116){const _0x2d9ff5=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a4411),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1ea116)});if(!_0x2d9ff5['ok']){const _0x4e3eee=await _0x2d9ff5['json']()['catch'](()=>({'message':_0x2d9ff5['statusText']}));throw new Error(_0x4e3eee['message']||'Failed\x20to\x20update\x20binding');}return await _0x2d9ff5['json']();},async 'deleteBinding'(_0x11e5de){const _0x8debb2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x11e5de),{'method':'DELETE'});if(!_0x8debb2['ok']){const _0x47c077=await _0x8debb2['json']()['catch'](()=>({'message':_0x8debb2['statusText']}));throw new Error(_0x47c077['message']||'Failed\x20to\x20delete\x20binding');}return await _0x8debb2['json']();},async 'getRoleDefinitions'(){const _0x3a2320=await fetch(API_BASE+'/roles');if(!_0x3a2320['ok']){const _0x1d47a8=await _0x3a2320['json']()['catch'](()=>({'message':_0x3a2320['statusText']}));throw new Error(_0x1d47a8['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x3a2320['json']();},async 'getRoleDefinition'(_0x461629){const _0x137edf=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x461629));if(!_0x137edf['ok']){const _0x1bddc9=await _0x137edf['json']()['catch'](()=>({'message':_0x137edf['statusText']}));throw new Error(_0x1bddc9['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x137edf['json']();},async 'createRoleDefinition'(_0x4e2178){const _0x3dda47=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e2178)});if(!_0x3dda47['ok']){const _0x3f1a22=await _0x3dda47['json']()['catch'](()=>({'message':_0x3dda47['statusText']}));throw new Error(_0x3f1a22['message']||_0x3f1a22['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3dda47['json']();},async 'updateRoleDefinition'(_0x373d5a,_0x3ff7c6){const _0x4386bb=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x373d5a),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ff7c6)});if(!_0x4386bb['ok']){const _0x416419=await _0x4386bb['json']()['catch'](()=>({'message':_0x4386bb['statusText']}));throw new Error(_0x416419['message']||_0x416419['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x4386bb['json']();},async 'deleteRoleDefinition'(_0x22e8a0){const _0x38b6b9=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x22e8a0),{'method':'DELETE'});if(!_0x38b6b9['ok']){const _0x2abca3=await _0x38b6b9['json']()['catch'](()=>({'message':_0x38b6b9['statusText']}));throw new Error(_0x2abca3['message']||_0x2abca3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x38b6b9['json']();},async 'getAvailablePermissions'(){const _0x20a3d0=await fetch(API_BASE+'/roles/available-permissions');if(!_0x20a3d0['ok']){const _0x310815=await _0x20a3d0['json']()['catch'](()=>({'message':_0x20a3d0['statusText']}));throw new Error(_0x310815['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x20a3d0['json']();},async 'getGitProviderAllowedTeams'(_0x58edd6){const _0xf75254=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x58edd6)+'/allowed-teams');if(!_0xf75254['ok']){const _0x57b6d3=await _0xf75254['json']()['catch'](()=>({'message':_0xf75254['statusText']}));throw new Error(_0x57b6d3['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0xf75254['json']();},async 'setGitProviderAllowedTeams'(_0x32f1a3,_0x2b9e2e){const _0x3bf6d0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x32f1a3)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2b9e2e})});if(!_0x3bf6d0['ok']){const _0x370f60=await _0x3bf6d0['json']()['catch'](()=>({'message':_0x3bf6d0['statusText']}));throw new Error(_0x370f60['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3bf6d0['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 _0x1a32ff=toastState['baseBottom'];toastState['toasts']['forEach'](_0x2fc0b3=>{_0x2fc0b3['el']['style']['bottom']=_0x1a32ff+'px';const _0x3d6d25=_0x2fc0b3['el']['offsetHeight']||toastState['defaultHeight'];_0x1a32ff+=_0x3d6d25+toastState['gap'];});});}function removeToastById(_0x19d087){const _0x440a30=toastState['toasts']['findIndex'](_0x1388ea=>_0x1388ea['id']===_0x19d087);if(_0x440a30===-0x1)return;const _0x373857=toastState['toasts'][_0x440a30];if(_0x373857['timeoutId'])clearTimeout(_0x373857['timeoutId']);_0x373857['el']['classList']['remove']('show'),setTimeout(()=>_0x373857['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x440a30,0x1),repositionAllToasts();}function registerToast(_0x4f9476){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4f9476),repositionAllToasts(),_0x4f9476['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(_0x4e3899){if(_0x4e3899===null||_0x4e3899===undefined)return'';return String(_0x4e3899)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x4fb0f9,_0x57049e){if(_0x4fb0f9&&typeof _0x4fb0f9==='object'&&!Array['isArray'](_0x4fb0f9))return{'code':typeof _0x4fb0f9['text']==='string'?_0x4fb0f9['text']:'','language':typeof _0x4fb0f9['lang']==='string'?_0x4fb0f9['lang']:''};return{'code':typeof _0x4fb0f9==='string'?_0x4fb0f9:'','language':typeof _0x57049e==='string'?_0x57049e:''};}function buildMermaidBlock(_0x25f7c2){const _0x120428=String(_0x25f7c2||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x120428))+'\x22>'+escapeHtmlValue(_0x120428)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x317f2e=new marked['Renderer'](),_0xd5bc90=_0x317f2e['code']['bind'](_0x317f2e);return _0x317f2e['code']=function(_0x55170,_0xf3ebe5,..._0x13d2d4){const {code:_0x5d217a,language:_0x58784f}=getMarkdownCodeBlockPayload(_0x55170,_0xf3ebe5),_0x1c180a=String(_0x58784f||'')['trim']()['toLowerCase']();if(_0x1c180a==='mermaid')return buildMermaidBlock(_0x5d217a);const _0xb627d8=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0xb627d8&&_0x1c180a)try{const _0x105a35=_0xb627d8['getLanguage'](_0x1c180a)?_0x1c180a:'plaintext',_0x448870=_0xb627d8['highlight'](_0x5d217a,{'language':_0x105a35})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1c180a)+'\x22>'+_0x448870+'</code></pre>';}catch(_0x11e8ac){console['error']('Syntax\x20highlighting\x20error:',_0x11e8ac);}return _0xd5bc90(_0x55170,_0xf3ebe5,..._0x13d2d4);},sharedMarkedRenderer=_0x317f2e,_0x317f2e;}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 _0x425159=window['mermaid'];if(!_0x425159||typeof _0x425159['initialize']!=='function')return _0x425159||null;return _0x425159['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x425159;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x567676,_0x486120)=>{const _0x37ed74=()=>_0x567676(configureMermaidInstance()),_0x239fb5=()=>{mermaidLoadPromise=null,_0x486120(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x53b6d4=document['getElementById'](MERMAID_SCRIPT_ID);!_0x53b6d4&&(_0x53b6d4=document['createElement']('script'),_0x53b6d4['id']=MERMAID_SCRIPT_ID,_0x53b6d4['src']=MERMAID_SCRIPT_SRC,_0x53b6d4['async']=!![],document['head']['appendChild'](_0x53b6d4));if(window['mermaid']){_0x37ed74();return;}_0x53b6d4['addEventListener']('load',_0x37ed74,{'once':!![]}),_0x53b6d4['addEventListener']('error',_0x239fb5,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x3819c0){const _0x3c2178=_0x3819c0['getAttribute']('data-mermaid-source');if(!_0x3c2178)return null;let _0x557d0f=_0x3c2178;try{_0x557d0f=decodeURIComponent(_0x3c2178);}catch{}return _0x3819c0['textContent']=_0x557d0f,_0x3819c0['removeAttribute']('data-processed'),_0x3819c0['removeAttribute']('aria-roledescription'),_0x3819c0['removeAttribute']('role'),_0x3819c0['removeAttribute']('aria-label'),_0x557d0f;}function collectMermaidNodes(_0x188b38,_0x2dc0df){if(!(_0x188b38 instanceof Element))return;_0x188b38['matches']('.mermaid[data-mermaid-source]')&&_0x2dc0df['add'](_0x188b38),_0x188b38['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3e1deb=>{_0x2dc0df['add'](_0x3e1deb);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x3b191d=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x5c73e5=>setTimeout(_0x5c73e5,0x0);_0x3b191d(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x7d65b=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x7d65b);});});}function queueMermaidRender(_0x2458e3){const _0x5851c9=new Set();_0x2458e3 instanceof Document||_0x2458e3 instanceof DocumentFragment?_0x2458e3['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1b6c99=>_0x5851c9['add'](_0x1b6c99)):collectMermaidNodes(_0x2458e3,_0x5851c9);if(_0x5851c9['size']===0x0)return;_0x5851c9['forEach'](_0x465bd8=>pendingMermaidNodes['add'](_0x465bd8)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x17a59d=Array['from'](pendingMermaidNodes)['filter'](_0xaa83d1=>_0xaa83d1['isConnected']);pendingMermaidNodes['clear']();if(_0x17a59d['length']===0x0)return;const _0x296b5d=await loadMermaid();if(!_0x296b5d)return;configureMermaidInstance();const _0x494a6a=getMermaidTheme();for(const _0x44d538 of _0x17a59d){const _0x3addb5=_0x44d538['getAttribute']('data-mermaid-source');if(!_0x3addb5)continue;const _0x226388=_0x44d538['getAttribute']('data-processed')==='true';if(_0x226388&&_0x44d538['dataset']['mermaidTheme']===_0x494a6a)continue;restoreMermaidSource(_0x44d538);try{if(typeof _0x296b5d['run']==='function')await _0x296b5d['run']({'nodes':[_0x44d538]});else typeof _0x296b5d['init']==='function'&&_0x296b5d['init'](undefined,[_0x44d538]);_0x44d538['dataset']['mermaidTheme']=_0x494a6a,delete _0x44d538['dataset']['mermaidError'];}catch(_0x7a81ac){console['error']('Mermaid\x20render\x20failed:',_0x7a81ac),restoreMermaidSource(_0x44d538),_0x44d538['dataset']['mermaidError']='true',delete _0x44d538['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x277854=>{_0x277854['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x277854);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4e3e8c=>{_0x4e3e8c['forEach'](_0xe09cc6=>{_0xe09cc6['addedNodes']['forEach'](_0x449fa3=>{_0x449fa3['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x449fa3);});});}),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'(_0x224a65){const _0x131a57=new Date(_0x224a65),_0xcdbedb=new Date(),_0x4bac67=_0xcdbedb-_0x131a57,_0x3f3108=Math['floor'](_0x4bac67/0x3e8),_0x2840a3=Math['floor'](_0x3f3108/0x3c),_0x536202=Math['floor'](_0x2840a3/0x3c),_0x462e52=Math['floor'](_0x536202/0x18);if(_0x3f3108<0x3c)return'now';if(_0x2840a3<0x3c)return _0x2840a3+'m\x20ago';if(_0x536202<0x18)return _0x536202+'h\x20ago';return _0x462e52+'d\x20ago';},'getStatusIcon'(_0x347fb2){switch(_0x347fb2){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x49c700){switch(_0x49c700){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'(_0x1d8039,_0x4be7c3=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x4682c3={};_0x4682c3['text/plain']=new Blob([_0x1d8039],{'type':'text/plain'});_0x4be7c3&&(_0x4682c3['text/html']=new Blob([_0x4be7c3],{'type':'text/html'}));const _0x472018=new ClipboardItem(_0x4682c3);return await navigator['clipboard']['write']([_0x472018]),!![];}catch(_0x48e026){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x48e026);}try{const _0x10ac39=_0x55ac8b=>{_0x55ac8b['preventDefault'](),_0x55ac8b['clipboardData']['setData']('text/plain',_0x1d8039),_0x4be7c3&&_0x55ac8b['clipboardData']['setData']('text/html',_0x4be7c3);};document['addEventListener']('copy',_0x10ac39);const _0x5ab472=document['execCommand']('copy');document['removeEventListener']('copy',_0x10ac39);if(_0x5ab472)return!![];}catch(_0x4b1558){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x4b1558);}try{const _0x2107e1=document['createElement']('textarea');_0x2107e1['value']=_0x1d8039,_0x2107e1['style']['position']='fixed',_0x2107e1['style']['opacity']='0',_0x2107e1['style']['pointerEvents']='none',document['body']['appendChild'](_0x2107e1),_0x2107e1['select']();const _0x1acf2c=document['execCommand']('copy');return document['body']['removeChild'](_0x2107e1),_0x1acf2c;}catch(_0x574569){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x574569),![];}},'showToast'(_0x26a298,_0x2a3e4c='info'){const _0x533780=getNextToastId(),_0x34e859=document['createElement']('div');_0x34e859['className']='toast\x20toast-'+_0x2a3e4c,_0x34e859['textContent']=_0x26a298,_0x34e859['dataset']['toastId']=_0x533780,document['body']['appendChild'](_0x34e859);const _0x5ac104=_0x2a3e4c==='error'?0x2710:0xbb8,_0x3f8b1c=setTimeout(()=>{removeToastById(_0x533780);},_0x5ac104),_0x36d517={'id':_0x533780,'el':_0x34e859,'timeoutId':_0x3f8b1c};return registerToast(_0x36d517),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x34e859['classList']['add']('show');});}),_0x533780;},'showError'(_0xda94cc){console['error'](_0xda94cc);const _0x3f43d8=typeof _0xda94cc==='string'?_0xda94cc:_0xda94cc['message']||'An\x20error\x20occurred';this['showToast'](_0x3f43d8,'error');},'showSuccess'(_0x64720e){this['showToast'](_0x64720e,'success');},'capitalize'(_0xeaa3b0){if(!_0xeaa3b0)return'';return _0xeaa3b0['charAt'](0x0)['toUpperCase']()+_0xeaa3b0['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4406f7){return escapeHtmlValue(_0x4406f7);},'ansiToHtml'(_0x1da414){if(_0x1da414===null||_0x1da414===undefined)return'';let _0x350502=this['escapeHtml'](_0x1da414);const _0x3f736c={'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'},_0x429f68={'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 _0x8845dc=0x0;return _0x350502=_0x350502['replace'](/\x1b\[([0-9;]*)m/g,(_0x4bc6e3,_0x2adb08)=>{if(!_0x2adb08||_0x2adb08==='0'){const _0x211426='</span>'['repeat'](_0x8845dc);return _0x8845dc=0x0,_0x211426;}const _0x278beb=_0x2adb08['split'](';'),_0x5a7f8f=[];for(const _0x4aa881 of _0x278beb){if(_0x4aa881==='1')_0x5a7f8f['push']('font-weight:bold');else{if(_0x4aa881==='2')_0x5a7f8f['push']('opacity:0.7');else{if(_0x4aa881==='3')_0x5a7f8f['push']('font-style:italic');else{if(_0x4aa881==='4')_0x5a7f8f['push']('text-decoration:underline');else{if(_0x4aa881==='9')_0x5a7f8f['push']('text-decoration:line-through');else{if(_0x3f736c[_0x4aa881])_0x5a7f8f['push']('color:'+_0x3f736c[_0x4aa881]);else{if(_0x429f68[_0x4aa881])_0x5a7f8f['push']('background-color:'+_0x429f68[_0x4aa881]);}}}}}}}if(_0x5a7f8f['length']>0x0)return _0x8845dc++,'<span\x20style=\x22'+_0x5a7f8f['join'](';')+'\x22>';return'';}),_0x350502+='</span>'['repeat'](_0x8845dc),_0x350502=_0x350502['replace'](/\\u001b\[([0-9;]*)m/g,(_0x4ce79b,_0x22ea2d)=>{if(!_0x22ea2d||_0x22ea2d==='0')return'';const _0x3a08be=_0x22ea2d['split'](';'),_0x4beabc=[];for(const _0x19e98c of _0x3a08be){if(_0x19e98c==='1')_0x4beabc['push']('font-weight:bold');else{if(_0x3f736c[_0x19e98c])_0x4beabc['push']('color:'+_0x3f736c[_0x19e98c]);else{if(_0x429f68[_0x19e98c])_0x4beabc['push']('background-color:'+_0x429f68[_0x19e98c]);}}}if(_0x4beabc['length']>0x0)return'<span\x20style=\x22'+_0x4beabc['join'](';')+'\x22>';return'';}),_0x350502;},'showModal'({title:_0x28c07a,content:_0x265299,buttons:buttons=[]}){const _0x417f1f='\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'](_0x28c07a)+'</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'+_0x265299+'\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']((_0x267022,_0x58e02e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x267022['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x58e02e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x267022['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',_0x3d1ae1=document['createElement']('div');_0x3d1ae1['id']='utils-modal',_0x3d1ae1['className']='modal',_0x3d1ae1['innerHTML']=_0x417f1f,document['body']['appendChild'](_0x3d1ae1);const _0x48d493=document['getElementById']('utils-modal-close');_0x48d493&&_0x48d493['addEventListener']('click',()=>this['hideModal']());const _0xf44219=_0x3d1ae1['querySelectorAll']('[data-btn-index]');_0xf44219['forEach'](_0x711a1f=>{const _0x1c9a61=parseInt(_0x711a1f['dataset']['btnIndex']);buttons[_0x1c9a61]?.['onClick']&&_0x711a1f['addEventListener']('click',buttons[_0x1c9a61]['onClick']);});const _0x5e5190=document['getElementById']('utils-modal-overlay');_0x5e5190&&_0x5e5190['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x32b6ce=document['getElementById']('utils-modal');_0x32b6ce&&_0x32b6ce['remove']();},'parseKeyValuePairs'(_0x5095c0){const _0x128c47={};if(!_0x5095c0)return _0x128c47;return _0x5095c0['split'](/\r?\n/)['map'](_0x5e448e=>_0x5e448e['trim']())['filter'](Boolean)['forEach'](_0x45f4c1=>{const _0x44ca11=_0x45f4c1['indexOf']('=');if(_0x44ca11>0x0){const _0x39e408=_0x45f4c1['slice'](0x0,_0x44ca11)['trim'](),_0x221484=_0x45f4c1['slice'](_0x44ca11+0x1)['trim']();if(_0x39e408)_0x128c47[_0x39e408]=_0x221484;}}),_0x128c47;},'debounce'(_0x1901da,_0xe95c21=0xfa){let _0x29b144=null;return(..._0x18f3bb)=>{clearTimeout(_0x29b144),_0x29b144=setTimeout(()=>_0x1901da['apply'](this,_0x18f3bb),_0xe95c21);};},'formatTimestamp'(_0x13bf2e){if(!_0x13bf2e)return'N/A';const _0x684ebf=new Date(_0x13bf2e);return _0x684ebf['toLocaleDateString']()+'\x20'+_0x684ebf['toLocaleTimeString']();},'getQueryParams'(){const _0xf74cfc=new URLSearchParams(window['location']['search']),_0x34b0a2={};for(const [_0x21b160,_0x1b83a2]of _0xf74cfc){_0x34b0a2[_0x21b160]=_0x1b83a2;}return _0x34b0a2;},'formatDuration'(_0x1c8b05,_0x3a5ff4){if(!_0x1c8b05)return'N/A';const _0x177fee=new Date(_0x1c8b05),_0x375b1d=_0x3a5ff4?new Date(_0x3a5ff4):new Date(),_0x174263=_0x375b1d-_0x177fee;if(_0x174263<0x0)return'0s';const _0x3404cd=Math['floor'](_0x174263/0x3e8),_0x2e1987=Math['floor'](_0x3404cd/0x3c),_0xc4160c=Math['floor'](_0x2e1987/0x3c),_0x5a1c78=Math['floor'](_0xc4160c/0x18);if(_0x3404cd<0x3c)return _0x3404cd+'s';if(_0x2e1987<0x3c)return _0x2e1987+'m\x20'+_0x3404cd%0x3c+'s';if(_0xc4160c<0x18)return _0xc4160c+'h\x20'+_0x2e1987%0x3c+'m\x20'+_0x3404cd%0x3c+'s';return _0x5a1c78+'d\x20'+_0xc4160c%0x18+'h\x20'+_0x2e1987%0x3c+'m';},'renderMarkdown'(_0x5b1524,_0x153429={}){if(!_0x5b1524)return'';_0x5b1524=this['rewriteAttachmentLinks'](_0x5b1524,_0x153429),_0x5b1524=this['rewriteColorSyntax'](_0x5b1524);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x5b1524,_0x153429);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x5b1524);}catch(_0xc4018c){return console['error']('Markdown\x20parsing\x20error:',_0xc4018c),this['renderMarkdownFallback'](_0x5b1524,_0x153429);}},'rewriteAttachmentLinks'(_0x448fb8,_0x51c50f={}){const _0x59ea71=typeof _0x51c50f['resolveAttachmentUrl']==='function'?_0x51c50f['resolveAttachmentUrl']:_0x51c50f['taskId']?_0xb4b998=>API_BASE+'/tasks/'+_0x51c50f['taskId']+'/attachments/'+encodeURIComponent(_0xb4b998):null;if(!_0x59ea71)return _0x448fb8;return String(_0x448fb8)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x813a97,_0x5f0bc1)=>{const _0x3b3088=String(_0x5f0bc1||'')['trim']();if(!_0x3b3088)return _0x813a97;let _0x51477e=_0x3b3088;try{_0x51477e=decodeURIComponent(_0x3b3088);}catch{}const _0x5c1f7b=_0x59ea71(_0x51477e);if(!_0x5c1f7b)return _0x813a97;return']('+_0x5c1f7b+')';});},'rewriteColorSyntax'(_0x299c69){if(!_0x299c69)return _0x299c69;return String(_0x299c69)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0xb88d8e,_0x2f65f4,_0x276d25)=>{const _0x41d39c=this['rewriteColorSyntax'](_0x276d25);return'<span\x20style=\x22color:\x20'+_0x2f65f4+'\x22>'+_0x41d39c+'</span>';});},'renderMarkdownFallback'(_0x1f45dc,_0x44e76a={}){if(!_0x1f45dc)return'';_0x1f45dc=_0x1f45dc['replace'](/\r\n/g,'\x0a'),_0x1f45dc=_0x1f45dc['replace'](/\r/g,'\x0a'),_0x1f45dc=this['rewriteAttachmentLinks'](_0x1f45dc,_0x44e76a);let _0x3c80fd=this['escapeHtml'](_0x1f45dc);return _0x3c80fd=_0x3c80fd['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3c80fd=_0x3c80fd['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3c80fd=_0x3c80fd['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3c80fd=_0x3c80fd['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3c80fd=_0x3c80fd['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3c80fd=_0x3c80fd['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3c80fd=_0x3c80fd['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3c80fd=_0x3c80fd['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3c80fd=_0x3c80fd['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3c80fd=_0x3c80fd['replace'](/\n\n/g,'</p><p>'),_0x3c80fd=_0x3c80fd['replace'](/\n/g,'<br>'),'<p>'+_0x3c80fd+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x229672=new Uint8Array(0x10);crypto['getRandomValues'](_0x229672),_0x229672[0x6]=_0x229672[0x6]&0xf|0x40,_0x229672[0x8]=_0x229672[0x8]&0x3f|0x80;const _0x23d5b1=Array['from'](_0x229672,_0x311182=>_0x311182['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x23d5b1['slice'](0x0,0x8)+'-'+_0x23d5b1['slice'](0x8,0xc)+'-'+_0x23d5b1['slice'](0xc,0x10)+'-'+_0x23d5b1['slice'](0x10,0x14)+'-'+_0x23d5b1['slice'](0x14);}};export class CustomSelect{constructor(_0x4f3cc7,_0x33c667={}){this['nativeSelect']=_0x4f3cc7,this['options']=_0x33c667,this['isOpen']=![],this['selectedValue']=_0x4f3cc7['value']||'',this['searchable']=_0x33c667['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x30f4b9=document['createElement']('div');_0x30f4b9['className']='custom-select';const _0x1a85b8=document['createElement']('div');_0x1a85b8['className']='custom-select-trigger',_0x1a85b8['setAttribute']('tabindex','0'),_0x1a85b8['setAttribute']('role','button'),_0x1a85b8['setAttribute']('aria-haspopup','listbox');const _0x1b5e08=document['createElement']('span');_0x1b5e08['className']='custom-select-trigger-text';const _0x54738f=document['createElement']('span');_0x54738f['className']='custom-select-arrow',_0x54738f['textContent']='▼',_0x1a85b8['appendChild'](_0x1b5e08),_0x1a85b8['appendChild'](_0x54738f);const _0x43da45=document['createElement']('div');_0x43da45['className']='custom-select-dropdown',_0x43da45['setAttribute']('role','listbox');if(this['searchable']){const _0xf0a3aa=document['createElement']('div');_0xf0a3aa['className']='custom-select-search';const _0x2af9b9=document['createElement']('input');_0x2af9b9['type']='text',_0x2af9b9['className']='custom-select-search-input',_0x2af9b9['placeholder']='Type\x20to\x20search...',_0x2af9b9['setAttribute']('aria-label','Search\x20options'),_0x2af9b9['addEventListener']('input',_0x3d79f7=>{this['searchQuery']=_0x3d79f7['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x2af9b9['addEventListener']('keydown',_0x18a97e=>{if(_0x18a97e['key']==='Escape')_0x18a97e['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x18a97e['key']==='Enter'){_0x18a97e['preventDefault'](),_0x18a97e['stopPropagation']();const _0x543df6=_0x43da45['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x543df6){const _0x45914b=_0x543df6['getAttribute']('data-value');this['select'](_0x45914b);}}}}),_0xf0a3aa['appendChild'](_0x2af9b9),_0x43da45['appendChild'](_0xf0a3aa),this['searchInput']=_0x2af9b9;}const _0x395455=document['createElement']('div');_0x395455['className']='custom-select-options',_0x43da45['appendChild'](_0x395455),_0x30f4b9['appendChild'](_0x1a85b8),_0x30f4b9['appendChild'](_0x43da45),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x30f4b9,this['nativeSelect']),this['wrapper']=_0x30f4b9,this['trigger']=_0x1a85b8,this['triggerText']=_0x1b5e08,this['dropdown']=_0x43da45,this['optionsContainer']=_0x395455,_0x1a85b8['addEventListener']('click',()=>this['toggle']()),_0x1a85b8['addEventListener']('keydown',_0xcc933e=>this['handleKeydown'](_0xcc933e)),document['addEventListener']('click',_0x49bd54=>{!_0x30f4b9['contains'](_0x49bd54['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x2e116b=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x2e116b['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x1bbdaa=new MutationObserver(()=>{this['updateDisabledState']();});_0x1bbdaa['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x1658e8=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x1658e8['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x4cca61=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x4cca61),this['trigger']['setAttribute']('aria-disabled',_0x4cca61?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x4cca61?'-1':'0'),_0x4cca61&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x18b1cf=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x198b96=_0x18b1cf['filter'](_0x4da201=>!_0x4da201['disabled']&&!_0x4da201['hidden']);_0x18b1cf['forEach']((_0x3a6faa,_0x150812)=>{const _0x23b9e0=document['createElement']('div');_0x23b9e0['className']='custom-select-option',_0x23b9e0['textContent']=_0x3a6faa['textContent'],_0x23b9e0['setAttribute']('data-value',_0x3a6faa['value']),_0x23b9e0['setAttribute']('data-index',_0x150812),_0x23b9e0['setAttribute']('role','option'),_0x3a6faa['disabled']?_0x23b9e0['classList']['add']('disabled'):_0x23b9e0['addEventListener']('click',()=>this['select'](_0x3a6faa['value'])),_0x3a6faa['value']===this['selectedValue']&&_0x23b9e0['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x23b9e0),this['allOptions']['push']({'element':_0x23b9e0,'text':_0x3a6faa['textContent']['toLowerCase'](),'value':_0x3a6faa['value'],'disabled':_0x3a6faa['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4bf2aa=this['searchInput']['parentElement'];_0x198b96['length']>0x3?_0x4bf2aa['style']['display']='':_0x4bf2aa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x24d4d4=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x288271=>{if(!_0x24d4d4||_0x288271['disabled'])_0x288271['element']['style']['display']='';else{const _0x391dfd=_0x288271['text']['includes'](_0x24d4d4);_0x288271['element']['style']['display']=_0x391dfd?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0xef20a4){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0xef20a4,this['nativeSelect']['value']=_0xef20a4;const _0x30aaf2=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x30aaf2),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x25b232=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x25b232&&(this['triggerText']['textContent']=_0x25b232['textContent'],_0x25b232['disabled']||_0x25b232['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x916a25=>{_0x916a25['getAttribute']('data-value')===this['selectedValue']?_0x916a25['classList']['add']('selected'):_0x916a25['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 _0x2ff1b8=window['getComputedStyle'](this['dropdown']);if(_0x2ff1b8['position']==='fixed'){const _0x3da3ff=this['trigger']['getBoundingClientRect'](),_0x54b28d=parseInt(_0x2ff1b8['maxHeight'])||0xc8,_0x4270b0=window['innerHeight'],_0x497231=_0x4270b0-_0x3da3ff['bottom'],_0x333898=_0x3da3ff['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0xbeeb6d;_0x497231<_0x54b28d&&_0x333898>_0x497231?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x4270b0-_0x3da3ff['top']+'px',_0xbeeb6d=Math['min'](_0x54b28d,_0x333898-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x3da3ff['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0xbeeb6d=Math['min'](_0x54b28d,_0x497231-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px');if(this['optionsContainer']){let _0x4401ed=_0xbeeb6d;if(this['searchInput']){const _0x54340e=this['searchInput']['parentElement'];_0x54340e&&(_0x4401ed-=_0x54340e['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4401ed)+'px';}this['dropdown']['style']['left']=_0x3da3ff['left']+'px',this['dropdown']['style']['width']=_0x3da3ff['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x518053=this['searchInput']['parentElement'];_0x518053&&_0x518053['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'](_0x34f143){if(this['nativeSelect']['disabled'])return;if(_0x34f143['key']==='Enter'||_0x34f143['key']==='\x20')_0x34f143['preventDefault'](),this['toggle']();else _0x34f143['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x469eb7='\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',_0x469eb7),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x834681=document['getElementById']('confirm-dialog-close'),_0x4930c4=document['getElementById']('confirm-dialog-cancel'),_0x4f7182=document['getElementById']('confirm-dialog-confirm'),_0x4da606=this['_modal']['querySelector']('.modal-overlay');_0x834681['addEventListener']('click',()=>this['_resolve'](![])),_0x4930c4['addEventListener']('click',()=>this['_resolve'](![])),_0x4f7182['addEventListener']('click',()=>this['_resolve'](!![])),_0x4da606['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1eede=>{if(_0x1eede['key']==='Escape')_0x1eede['preventDefault'](),this['_resolve'](![]);else _0x1eede['key']==='Enter'&&(_0x1eede['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x51ac10,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x8d7248=>{this['_resolvePromise']=_0x8d7248,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x51ac10;const _0x4c3349=document['getElementById']('confirm-dialog-cancel'),_0x5c764b=document['getElementById']('confirm-dialog-confirm');_0x4c3349['textContent']=cancelText,_0x5c764b['textContent']=confirmText,_0x5c764b['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x5c764b['focus']();});},'_resolve'(_0x6df270){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x6df270),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x31ec19,_0x220dee={}){this['container']=_0x31ec19,this['options']={'placeholder':_0x220dee['placeholder']||'Type\x20to\x20search...','maxItems':_0x220dee['maxItems']||0x64,'loadItems':_0x220dee['loadItems']||(async()=>[]),'renderItem':_0x220dee['renderItem']||(_0x105db6=>({'primary':String(_0x105db6),'secondary':''})),'onSelect':_0x220dee['onSelect']||(()=>{}),'filterItems':_0x220dee['filterItems']||null,'getItemValue':_0x220dee['getItemValue']||(_0xe5e0d7=>_0xe5e0d7),'sortItems':_0x220dee['sortItems']||null,'debounceMs':_0x220dee['debounceMs']||0xc8,'minCharsForSearch':_0x220dee['minCharsForSearch']||0x0,'emptyMessage':_0x220dee['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x220dee['loadingMessage']||'Loading...','preload':_0x220dee['preload']!==![],'searchMode':_0x220dee['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',_0x2339c7=>this['onBlur'](_0x2339c7)),this['input']['addEventListener']('input',_0x1703d4=>this['onInput'](_0x1703d4)),this['input']['addEventListener']('keydown',_0x13174e=>this['onKeydown'](_0x13174e)),this['clearBtn']['addEventListener']('mousedown',_0x48672c=>{_0x48672c['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x144189=>{_0x144189['preventDefault']();}),document['addEventListener']('click',_0x45e69f=>{!this['wrapper']['contains'](_0x45e69f['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(_0x4946e5){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x4946e5);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5008cf){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x47f601){const _0x4c41ab=_0x47f601['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4c41ab);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4c41ab):this['loadAndShow'](_0x4c41ab);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x37cedf){switch(_0x37cedf['key']){case'ArrowDown':_0x37cedf['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x37cedf['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x37cedf['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x37cedf['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2bf6bd){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x38ca68=this['selectedIndex']+_0x2bf6bd;if(_0x38ca68>=0x0&&_0x38ca68<this['filteredItems']['length']){this['selectedIndex']=_0x38ca68,this['updateSelectionHighlight']();const _0x3d5ddb=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x3d5ddb[this['selectedIndex']]&&_0x3d5ddb[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x124b05=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x124b05['forEach']((_0x9e82d6,_0x1e2b42)=>{_0x9e82d6['classList']['toggle']('keyboard-selected',_0x1e2b42===this['selectedIndex']);});}async['loadAndShow'](_0x2df97b){this['showLoading']();try{const _0x4aa47d=await this['options']['loadItems'](_0x2df97b);if(this['options']['searchMode']==='server'){let _0x1d9912=_0x4aa47d;this['options']['sortItems']&&(_0x1d9912=this['options']['sortItems']([..._0x4aa47d]));this['filteredItems']=_0x1d9912;const _0x549eeb=this['filteredItems']['length']>=this['options']['maxItems'];_0x549eeb&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549eeb),this['open']();}else this['allItems']=_0x4aa47d,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x2df97b);}catch(_0x48486d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x48486d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x1a5fd3){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x1a5fd3):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x42476e=this['filteredItems']['length']>=this['options']['maxItems'];_0x42476e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x42476e),this['open']();}['renderItems'](_0x4ca519){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']((_0x422b99,_0x5bb20e)=>{const _0x5ef669=document['createElement']('div');_0x5ef669['className']='autocomplete-select-item',_0x5ef669['setAttribute']('role','option'),_0x5ef669['setAttribute']('data-index',_0x5bb20e);const _0x9e1bb1=this['options']['renderItem'](_0x422b99);let _0x3380c5='';_0x9e1bb1['icon']&&(_0x3380c5='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x9e1bb1['iconClass']||'')+'\x22>'+_0x9e1bb1['icon']+'</span>'),_0x5ef669['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3380c5+'\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'](_0x9e1bb1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x9e1bb1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x9e1bb1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5ef669['addEventListener']('click',()=>{this['selectItem'](_0x422b99);}),_0x5ef669['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x5bb20e,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5ef669);}),_0x4ca519?(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'](_0x369b2b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x369b2b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x41a76d){this['selectedItem']=_0x41a76d;const _0x14885a=this['options']['renderItem'](_0x41a76d);this['input']['value']=_0x14885a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x41a76d);}['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'](_0x1eeb00){if(_0x1eeb00){this['selectedItem']=_0x1eeb00;const _0x18ca0a=this['options']['renderItem'](_0x1eeb00);this['input']['value']=_0x18ca0a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x270420){this['allItems']=_0x270420,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'](_0x307f5d){this['input']['placeholder']=_0x307f5d;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5cc577=null){const _0x310637=document['getElementById']('admin-menu-container'),_0x549898=document['getElementById']('admin-menu-btn'),_0x6a5aaf=document['getElementById']('admin-menu');if(!_0x310637||!_0x549898||!_0x6a5aaf)return;try{!_0x5cc577&&(_0x5cc577=await API['getCurrentUser']());if(_0x5cc577){const _0x3565a8=window['Permissions'],_0x3b37e7=_0x3565a8['hasServerPermission'](_0x5cc577,'*')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:manage')||_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')||_0x3565a8['hasTeamPermission'](_0x5cc577,'teams:manage')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:view_details');if(!_0x3b37e7)return;_0x310637['hidden']=![];if(!_0x3565a8['hasServerPermission'](_0x5cc577,'*')){const _0x7f49aa=_0x6a5aaf['querySelectorAll']('.admin-menu-item');_0x7f49aa['forEach'](_0x592209=>{const _0x38f5a1=_0x592209['querySelector']('.option-text')?.['textContent']?.['trim']();_0x38f5a1==='Users'&&!_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')&&(_0x592209['hidden']=!![]),_0x38f5a1==='Skills'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Settings'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Administration'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Git\x20History'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Roles'&&(_0x592209['hidden']=!![]);});}_0x549898['addEventListener']('click',_0x8b5454=>{_0x8b5454['stopPropagation']();const _0x535af5=document['getElementById']('actions-menu');if(_0x535af5)_0x535af5['hidden']=!![];_0x6a5aaf['hidden']=!_0x6a5aaf['hidden'];}),document['addEventListener']('click',_0x1b1742=>{!_0x6a5aaf['hidden']&&!_0x549898['contains'](_0x1b1742['target'])&&!_0x6a5aaf['contains'](_0x1b1742['target'])&&(_0x6a5aaf['hidden']=!![]);}),document['addEventListener']('keydown',_0x4a413c=>{_0x4a413c['key']==='Escape'&&!_0x6a5aaf['hidden']&&(_0x6a5aaf['hidden']=!![]);});}}catch(_0x447d53){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x447d53['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
1
+ function detectApiBase(){const _0x462b5b=window['location']['pathname'],_0x1d3428=_0x462b5b['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x1d3428)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x1d3428[0x1]),_0x1d3428[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x54b4ce={}){const _0x22204d=new URLSearchParams();_0x54b4ce['userId']&&_0x22204d['set']('userId',String(_0x54b4ce['userId']));_0x54b4ce['automation']&&_0x22204d['set']('automation',String(_0x54b4ce['automation']));const _0x21f5a2=API_BASE+'/tasks/stats'+(_0x22204d['toString']()?'?'+_0x22204d['toString']():''),_0x37fe84=await fetch(_0x21f5a2);if(!_0x37fe84['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x37fe84['statusText']);return await _0x37fe84['json']();},async 'getTasks'(_0x2fc1a3={}){const _0x2ff1d8=new URLSearchParams();_0x2fc1a3['status']&&_0x2ff1d8['set']('status',String(_0x2fc1a3['status']));_0x2fc1a3['environment']&&_0x2ff1d8['set']('environment',String(_0x2fc1a3['environment']));_0x2fc1a3['automation']&&_0x2ff1d8['set']('automation',String(_0x2fc1a3['automation']));if(_0x2fc1a3['include']){const _0x48b3ea=Array['isArray'](_0x2fc1a3['include'])?_0x2fc1a3['include']['join'](','):String(_0x2fc1a3['include']);_0x48b3ea&&_0x2ff1d8['set']('include',_0x48b3ea);}_0x2fc1a3['filter']&&_0x2ff1d8['set']('filter',String(_0x2fc1a3['filter']));_0x2fc1a3['page']&&_0x2ff1d8['set']('page',String(_0x2fc1a3['page']));_0x2fc1a3['limit']&&_0x2ff1d8['set']('limit',String(_0x2fc1a3['limit']));_0x2fc1a3['userId']&&_0x2ff1d8['set']('userId',String(_0x2fc1a3['userId']));_0x2fc1a3['search']&&_0x2ff1d8['set']('search',String(_0x2fc1a3['search']));_0x2fc1a3['includeChildTasks']&&_0x2ff1d8['set']('includeChildTasks','true');const _0x11667d=API_BASE+'/tasks'+(_0x2ff1d8['toString']()?'?'+_0x2ff1d8['toString']():''),_0x465f92=await fetch(_0x11667d);if(!_0x465f92['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x465f92['statusText']);return await _0x465f92['json']();},async 'getAutomations'(_0x14ad2a={}){const _0x4d4171=new URLSearchParams();_0x14ad2a['environment']&&_0x4d4171['set']('environment',String(_0x14ad2a['environment']));const _0x34d594=await fetch(API_BASE+'/api/automations'+(_0x4d4171['toString']()?'?'+_0x4d4171['toString']():''));if(!_0x34d594['ok']){const _0x26cfcd=await _0x34d594['json']()['catch'](()=>({}));throw new Error(_0x26cfcd['message']||_0x26cfcd['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x34d594['statusText']);}return await _0x34d594['json']();},async 'getAutomation'(_0x1aeeb7){const _0x27e844=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1aeeb7));if(!_0x27e844['ok']){const _0x176831=await _0x27e844['json']()['catch'](()=>({}));throw new Error(_0x176831['message']||_0x176831['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x27e844['statusText']);}return await _0x27e844['json']();},async 'createAutomation'(_0x4c1a07){const _0x3e7f1d=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c1a07||{})});if(!_0x3e7f1d['ok']){const _0xcd0855=await _0x3e7f1d['json']()['catch'](()=>({}));throw new Error(_0xcd0855['message']||_0xcd0855['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3e7f1d['statusText']);}return await _0x3e7f1d['json']();},async 'updateAutomation'(_0xb20c4f,_0x5e80d2){const _0x5536d2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xb20c4f),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e80d2||{})});if(!_0x5536d2['ok']){const _0x5a6d25=await _0x5536d2['json']()['catch'](()=>({}));throw new Error(_0x5a6d25['message']||_0x5a6d25['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5536d2['statusText']);}return await _0x5536d2['json']();},async 'deleteAutomation'(_0x588198){const _0xcf5335=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x588198),{'method':'DELETE'});if(!_0xcf5335['ok']){const _0x5c1dc7=await _0xcf5335['json']()['catch'](()=>({}));throw new Error(_0x5c1dc7['message']||_0x5c1dc7['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xcf5335['statusText']);}return await _0xcf5335['json']();},async 'triggerAutomation'(_0x4dd50f){const _0x3f7088=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4dd50f)+'/trigger',{'method':'POST'});if(!_0x3f7088['ok']){const _0x2acd60=await _0x3f7088['json']()['catch'](()=>({}));throw new Error(_0x2acd60['message']||_0x2acd60['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3f7088['statusText']);}return await _0x3f7088['json']();},async 'setAutomationEnabled'(_0xc2ce79,_0x3622df){const _0x2fbdda=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc2ce79)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3622df})});if(!_0x2fbdda['ok']){const _0x363c4e=await _0x2fbdda['json']()['catch'](()=>({}));throw new Error(_0x363c4e['message']||_0x363c4e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2fbdda['statusText']);}return await _0x2fbdda['json']();},async 'getAutomationHistory'(_0x38127b,_0x1b5eec=0x32){const _0x497193=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x38127b)+'/history?limit='+encodeURIComponent(String(_0x1b5eec)));if(!_0x497193['ok']){const _0x17cb71=await _0x497193['json']()['catch'](()=>({}));throw new Error(_0x17cb71['message']||_0x17cb71['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x497193['statusText']);}return await _0x497193['json']();},async 'getTask'(_0x5551d7,_0x43a4b8={}){const _0x263628=new URLSearchParams();if(_0x43a4b8['include']){const _0x31c33d=Array['isArray'](_0x43a4b8['include'])?_0x43a4b8['include']['join'](','):String(_0x43a4b8['include']);if(_0x31c33d)_0x263628['set']('include',_0x31c33d);}const _0x5eaf62=await fetch(API_BASE+'/tasks/'+_0x5551d7+(_0x263628['toString']()?'?'+_0x263628['toString']():''));if(!_0x5eaf62['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5eaf62['statusText']);return await _0x5eaf62['json']();},async 'getTaskResults'(_0xcc9986){const _0x46b81e=await fetch(API_BASE+'/tasks/'+_0xcc9986+'/results');if(!_0x46b81e['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x46b81e['statusText']);return await _0x46b81e['json']();},async 'getTaskPatches'(_0xed2e97){const _0x43d7f7=await fetch(API_BASE+'/tasks/'+_0xed2e97+'/patches');if(!_0x43d7f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x43d7f7['statusText']);return await _0x43d7f7['json']();},async 'getTaskAttachments'(_0x22acd3){const _0x501c16=await fetch(API_BASE+'/tasks/'+_0x22acd3+'/attachments');if(!_0x501c16['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x501c16['statusText']);return await _0x501c16['json']();},async 'uploadAttachments'(_0x37bb58,_0x123f03){const _0x2d2053=new FormData();for(const _0x189d6d of _0x123f03){_0x2d2053['append']('attachments',_0x189d6d);}const _0xf2eef6=await fetch(API_BASE+'/tasks/'+_0x37bb58+'/attachments',{'method':'POST','body':_0x2d2053});if(!_0xf2eef6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0xf2eef6['statusText']);return await _0xf2eef6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11228d=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11228d['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11228d['json']();}catch(_0xca9e82){return{'available':![],'reason':_0xca9e82['message']};}},async 'generateTaskName'(_0x2b725c){try{const _0x28cef5=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x2b725c})});return await _0x28cef5['json']();}catch(_0x471b43){return{'success':![],'error':_0x471b43['message']};}},async 'createTask'(_0x2ea6b2){let _0x2ff1d0,_0xe5ff50={};if(_0x2ea6b2['files']&&_0x2ea6b2['files']['length']>0x0){const _0x230da2=new FormData();for(const [_0x3c9b3b,_0x327279]of Object['entries'](_0x2ea6b2)){if(_0x3c9b3b!=='files'){if(_0x327279==null)continue;typeof _0x327279==='object'?_0x230da2['append'](_0x3c9b3b,JSON['stringify'](_0x327279)):_0x230da2['append'](_0x3c9b3b,String(_0x327279));}}for(const _0xfc72d0 of _0x2ea6b2['files']){_0x230da2['append']('attachments',_0xfc72d0);}_0x2ff1d0=_0x230da2;}else _0xe5ff50['Content-Type']='application/json',_0x2ff1d0=JSON['stringify'](_0x2ea6b2);const _0x392022=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0xe5ff50,'body':_0x2ff1d0});if(!_0x392022['ok']){const _0x37836e=await _0x392022['json'](),_0x36a9ce=new Error(_0x37836e['error']||'Failed\x20to\x20create\x20task:\x20'+_0x392022['statusText']),{message:_0x42c6b5,..._0x20db15}=_0x37836e;Object['assign'](_0x36a9ce,_0x20db15);throw _0x36a9ce;}return await _0x392022['json']();},async 'createTestTask'(_0xb4b94){const _0xeaa10e=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xb4b94)});if(!_0xeaa10e['ok']){const _0x3f24d9=await _0xeaa10e['json']();throw new Error(_0x3f24d9['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xeaa10e['statusText']);}return await _0xeaa10e['json']();},async 'createEphemeralTest'(_0x5d0f6b){const _0x509338=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5d0f6b)});if(!_0x509338['ok']){const _0x1cfcbf=await _0x509338['json']();throw new Error(_0x1cfcbf['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x509338['statusText']);}return await _0x509338['json']();},async 'createDeployTask'(_0x2079af){const _0x3a6d5a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2079af)});if(!_0x3a6d5a['ok']){const _0x302b74=await _0x3a6d5a['json']();throw new Error(_0x302b74['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3a6d5a['statusText']);}return await _0x3a6d5a['json']();},async 'getEnvironments'(){const _0x358aa7=await fetch(API_BASE+'/environments');if(!_0x358aa7['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x358aa7['statusText']);return await _0x358aa7['json']();},async 'getEnvironment'(_0x38da71){const _0x546c2f=await fetch(API_BASE+'/environments/'+_0x38da71);if(!_0x546c2f['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x546c2f['statusText']);return await _0x546c2f['json']();},async 'getEnvironmentRepoHistory'(_0xb0bb17,_0x3f113,_0x57ff90={}){if(!_0xb0bb17||!_0x3f113)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3f932d=new URLSearchParams();if(_0x57ff90['limit'])_0x3f932d['set']('limit',String(_0x57ff90['limit']));if(_0x57ff90['offset'])_0x3f932d['set']('offset',String(_0x57ff90['offset']));if(_0x57ff90['search'])_0x3f932d['set']('search',String(_0x57ff90['search']));if(_0x57ff90['branch'])_0x3f932d['set']('branch',String(_0x57ff90['branch']));const _0x1907e7=API_BASE+'/environments/'+encodeURIComponent(_0xb0bb17)+'/repos/'+encodeURIComponent(_0x3f113)+'/git/history',_0x45234b=await fetch(''+_0x1907e7+(_0x3f932d['toString']()?'?'+_0x3f932d['toString']():''));if(!_0x45234b['ok']){const _0x28aa1c=await _0x45234b['json']()['catch'](()=>({}));throw new Error(_0x28aa1c['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45234b['statusText']);}return await _0x45234b['json']();},async 'getEnvironmentRepoCommit'(_0x2fcea5,_0xa6b767,_0x21c21b){if(!_0x2fcea5||!_0xa6b767||!_0x21c21b)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x50b2f4=API_BASE+'/environments/'+encodeURIComponent(_0x2fcea5)+'/repos/'+encodeURIComponent(_0xa6b767)+'/git/commits/'+encodeURIComponent(_0x21c21b),_0x4c6f74=await fetch(_0x50b2f4);if(!_0x4c6f74['ok']){const _0x543fb3=await _0x4c6f74['json']()['catch'](()=>({}));throw new Error(_0x543fb3['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x4c6f74['statusText']);}return await _0x4c6f74['json']();},async 'getEnvironmentRepoBranches'(_0x3c53f2,_0x49917e){if(!_0x3c53f2||!_0x49917e)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5f521b=API_BASE+'/environments/'+encodeURIComponent(_0x3c53f2)+'/repos/'+encodeURIComponent(_0x49917e)+'/git/branches',_0x273bd9=await fetch(_0x5f521b);if(!_0x273bd9['ok']){const _0x630b09=await _0x273bd9['json']()['catch'](()=>({}));throw new Error(_0x630b09['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x273bd9['statusText']);}return await _0x273bd9['json']();},async 'revertEnvironmentRepoCommit'(_0x14d765,_0x43c36f,_0x1ea393,_0x4459b4={}){if(!_0x14d765||!_0x43c36f||!_0x1ea393)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x377715=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x14d765)+'/repos/'+encodeURIComponent(_0x43c36f)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x1ea393,..._0x4459b4})});if(!_0x377715['ok']){const _0x38995c=await _0x377715['json']()['catch'](()=>({}));throw new Error(_0x38995c['message']||_0x38995c['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x377715['statusText']);}return await _0x377715['json']();},async 'getTemplates'(_0x1966d8={}){const _0x11f9ee=new URLSearchParams();if(_0x1966d8['include']){const _0xe01e55=Array['isArray'](_0x1966d8['include'])?_0x1966d8['include']['join'](','):String(_0x1966d8['include']);if(_0xe01e55)_0x11f9ee['set']('include',_0xe01e55);}const _0x20cbfb=await fetch(API_BASE+'/templates'+(_0x11f9ee['toString']()?'?'+_0x11f9ee['toString']():''));if(!_0x20cbfb['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x20cbfb['statusText']);return await _0x20cbfb['json']();},async 'getTemplatesForEnvironment'(_0x268615,_0x3005b9={}){if(!_0x268615)throw new Error('Environment\x20name\x20is\x20required');const _0x286f56=new URLSearchParams();if(_0x3005b9['include']){const _0x8138fb=Array['isArray'](_0x3005b9['include'])?_0x3005b9['include']['join'](','):String(_0x3005b9['include']);if(_0x8138fb)_0x286f56['set']('include',_0x8138fb);}const _0x263337=await fetch(API_BASE+'/templates/'+_0x268615+(_0x286f56['toString']()?'?'+_0x286f56['toString']():''));if(!_0x263337['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x268615+':\x20'+_0x263337['statusText']);return await _0x263337['json']();},async 'getTemplate'(_0x122a01,_0x2314a6,_0xff7399={}){if(!_0x122a01||!_0x2314a6)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x47a26f=new URLSearchParams();if(_0xff7399['include']){const _0x709fed=Array['isArray'](_0xff7399['include'])?_0xff7399['include']['join'](','):String(_0xff7399['include']);if(_0x709fed)_0x47a26f['set']('include',_0x709fed);}const _0x3dd675=await fetch(API_BASE+'/templates/'+_0x122a01+'/'+_0x2314a6+(_0x47a26f['toString']()?'?'+_0x47a26f['toString']():''));if(!_0x3dd675['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dd675['statusText']);return await _0x3dd675['json']();},async 'getTaskLogs'(_0x145f1a,_0x4f8412={}){if(!_0x145f1a)throw new Error('Task\x20ID\x20is\x20required');const _0x5dc25c=new URLSearchParams();_0x4f8412['tail']&&_0x5dc25c['set']('tail',String(_0x4f8412['tail']));const _0x415383=await fetch(API_BASE+'/tasks/'+_0x145f1a+'/logs'+(_0x5dc25c['toString']()?'?'+_0x5dc25c['toString']():''));if(!_0x415383['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x415383['statusText']);return await _0x415383['text']();},async 'getContainers'(){const _0x3798f7=await fetch(API_BASE+'/containers');if(!_0x3798f7['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x3798f7['statusText']);return await _0x3798f7['json']();},async 'getContainer'(_0x57f1e1){const _0xb01543=await fetch(API_BASE+'/containers/'+_0x57f1e1);if(!_0xb01543['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xb01543['statusText']);return await _0xb01543['json']();},async 'startInteractiveContainer'(_0x2b9161){const _0x1568e7=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2b9161)});if(!_0x1568e7['ok']){const _0x11d532=await _0x1568e7['json']()['catch'](()=>({}));throw new Error(_0x11d532['message']||'Failed\x20to\x20start\x20container:\x20'+_0x1568e7['statusText']);}return await _0x1568e7['json']();},async 'startContainerCodeServer'(_0x273a65,_0x54d450={}){if(!_0x273a65)throw new Error('Container\x20ID\x20is\x20required');const _0x218216=new URLSearchParams();_0x54d450['theme']&&_0x218216['set']('theme',_0x54d450['theme']);const _0x426f40=await fetch(API_BASE+'/containers/'+_0x273a65+'/code-server'+(_0x218216['toString']()?'?'+_0x218216['toString']():'')),_0x297b0c=await _0x426f40['json']()['catch'](()=>({}));if(!_0x426f40['ok'])throw new Error(_0x297b0c['message']||_0x297b0c['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x426f40['statusText']);return _0x297b0c;},async 'stopContainer'(_0x3f6c36){const _0x546453=await fetch(API_BASE+'/containers/'+_0x3f6c36,{'method':'DELETE'});if(!_0x546453['ok']){const _0xc83c58=await _0x546453['json']()['catch'](()=>({}));throw new Error(_0xc83c58['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x546453['statusText']);}return await _0x546453['json']();},async 'stopTask'(_0x342d81){if(!_0x342d81)throw new Error('Task\x20ID\x20is\x20required');const _0x348680=await fetch(API_BASE+'/tasks/'+_0x342d81+'/stop',{'method':'POST'});if(!_0x348680['ok']){const _0x20c107=await _0x348680['json']()['catch'](()=>({}));throw new Error(_0x20c107['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x348680['statusText']);}return await _0x348680['json']();},async 'interruptTask'(_0x445fb7){if(!_0x445fb7)throw new Error('Task\x20ID\x20is\x20required');const _0xa22ff1=await fetch(API_BASE+'/tasks/'+_0x445fb7+'/interrupt',{'method':'POST'});if(!_0xa22ff1['ok']){const _0x53312a=await _0xa22ff1['json']()['catch'](()=>({}));throw new Error(_0x53312a['error']||_0x53312a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0xa22ff1['statusText']);}return await _0xa22ff1['json']();},async 'startTask'(_0x1660c2){if(!_0x1660c2)throw new Error('Task\x20ID\x20is\x20required');const _0x4e5ff1=await fetch(API_BASE+'/tasks/'+_0x1660c2+'/start',{'method':'POST'});if(!_0x4e5ff1['ok']){const _0x5e2986=await _0x4e5ff1['json']()['catch'](()=>({}));throw new Error(_0x5e2986['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4e5ff1['statusText']);}return await _0x4e5ff1['json']();},async 'deleteTask'(_0x122547){if(!_0x122547)throw new Error('Task\x20ID\x20is\x20required');const _0x9b9b4=await fetch(API_BASE+'/tasks/'+_0x122547,{'method':'DELETE'});if(!_0x9b9b4['ok']){const _0x369e8e=await _0x9b9b4['json']()['catch'](()=>({}));throw new Error(_0x369e8e['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x9b9b4['statusText']);}return await _0x9b9b4['json']();},async 'refreshTasksFromDisk'(){const _0x46a907=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x46a907['ok']){const _0x315f35=await _0x46a907['json']()['catch'](()=>({}));throw new Error(_0x315f35['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x46a907['statusText']);}return await _0x46a907['json']();},async 'approveTask'(_0x4a3695,_0x5117f3={}){if(!_0x4a3695)throw new Error('Task\x20ID\x20is\x20required');const _0x443b16={'commit_message':_0x5117f3['commit_message']||'','pull':_0x5117f3['pull']??![],'push':_0x5117f3['push']??![],'conflict_strategy':_0x5117f3['conflict_strategy']||'rebase'};_0x5117f3['new_branch']&&(_0x443b16['new_branch']=_0x5117f3['new_branch']);const _0x1ac458=await fetch(API_BASE+'/tasks/'+_0x4a3695+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x443b16)});if(!_0x1ac458['ok']){const _0x3a3865=await _0x1ac458['json']()['catch'](()=>({})),_0x1229a6=Array['isArray'](_0x3a3865['results'])?_0x3a3865['results']['filter'](_0xb6d06=>!_0xb6d06['success']&&(_0xb6d06['error']||_0xb6d06['error_code'])):[],_0xf99089=_0x1229a6[0x0]||null;let _0x36c223=_0x3a3865['error']||_0x3a3865['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1ac458['statusText'];if(_0xf99089?.['error'])_0x36c223=_0xf99089['error'];else _0x3a3865['message']&&(_0x36c223=_0x3a3865['message']);const _0x50104e=new Error(_0x36c223);_0x50104e['code']=_0xf99089?.['error_code']||_0x3a3865['error_code']||null,_0x50104e['details']=_0xf99089?.['details']||_0x3a3865['details']||null,_0x50104e['tokenExpiryDays']=_0xf99089?.['token_expiry_days']||_0x3a3865['token_expiry_days']||null,_0x50104e['hasConflicts']=_0x3a3865['results']?.['some'](_0x4df1b7=>_0x4df1b7['conflict'])||![];throw _0x50104e;}return await _0x1ac458['json']();},async 'getPullRequestInfo'(_0xfb4f8){if(!_0xfb4f8)throw new Error('Task\x20ID\x20is\x20required');const _0x9a47b3=await fetch(API_BASE+'/tasks/'+_0xfb4f8+'/pull-request-info');if(!_0x9a47b3['ok']){const _0x143845=await _0x9a47b3['json']()['catch'](()=>({}));throw new Error(_0x143845['error']||_0x143845['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x9a47b3['statusText']);}return await _0x9a47b3['json']();},async 'createPullRequests'(_0x1263e6,_0x3fef14){if(!_0x1263e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3fef14||!Array['isArray'](_0x3fef14))throw new Error('repos\x20array\x20is\x20required');const _0x14d881=await fetch(API_BASE+'/tasks/'+_0x1263e6+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3fef14})});if(!_0x14d881['ok']){const _0x21b1b9=await _0x14d881['json']()['catch'](()=>({}));let _0x357e48=_0x21b1b9['error']||_0x21b1b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x14d881['statusText'];if(_0x21b1b9['results']&&Array['isArray'](_0x21b1b9['results'])){const _0x57296f=_0x21b1b9['results']['filter'](_0x5917fe=>!_0x5917fe['success']&&_0x5917fe['error']);_0x57296f['length']>0x0&&(_0x357e48=_0x57296f[0x0]['error']);}throw new Error(_0x357e48);}return await _0x14d881['json']();},async 'syncRepos'(_0x3d4d9c){if(!_0x3d4d9c)throw new Error('Task\x20ID\x20is\x20required');const _0x591bd9=await fetch(API_BASE+'/tasks/'+_0x3d4d9c+'/sync-repos',{'method':'POST'});if(!_0x591bd9['ok']){const _0xb68bec=await _0x591bd9['json']()['catch'](()=>({}));throw new Error(_0xb68bec['error']||_0xb68bec['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x591bd9['statusText']);}return await _0x591bd9['json']();},async 'getIbmiSyncInfo'(_0x3224a0){if(!_0x3224a0)throw new Error('Task\x20ID\x20is\x20required');const _0x422fcc=await fetch(API_BASE+'/tasks/'+_0x3224a0+'/ibmi-sync-info');if(!_0x422fcc['ok']){const _0x3ab76d=await _0x422fcc['json']()['catch'](()=>({}));throw new Error(_0x3ab76d['error']||_0x3ab76d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x422fcc['json']();},async 'getSyncFiles'(_0x2bbe29){if(!_0x2bbe29)throw new Error('Task\x20ID\x20is\x20required');const _0x2a934a=await fetch(API_BASE+'/tasks/'+_0x2bbe29+'/sync-to-ibmi/files');if(!_0x2a934a['ok']){const _0x201223=await _0x2a934a['json']()['catch'](()=>({}));throw new Error(_0x201223['error']||_0x201223['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x2a934a['json']();},async 'syncToIbmi'(_0x49db33,_0x29ff7d,_0x4037bf=null,_0x45fcaa=null,_0x5196df=null){if(!_0x49db33)throw new Error('Task\x20ID\x20is\x20required');const _0x375095={'library':_0x29ff7d};if(_0x4037bf)_0x375095['user']=_0x4037bf;if(_0x45fcaa)_0x375095['password']=_0x45fcaa;if(_0x5196df)_0x375095['files']=_0x5196df;const _0x32d5d5=await fetch(API_BASE+'/tasks/'+_0x49db33+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x375095)});if(!_0x32d5d5['ok']){const _0x2b076d=await _0x32d5d5['json']()['catch'](()=>({}));throw new Error(_0x2b076d['error']||_0x2b076d['message']||'Sync\x20failed');}return await _0x32d5d5['json']();},async 'getIbmiSyncLog'(_0x53ac96){if(!_0x53ac96)throw new Error('Task\x20ID\x20is\x20required');const _0x52a419=await fetch(API_BASE+'/tasks/'+_0x53ac96+'/ibmi-sync-log');if(!_0x52a419['ok']){const _0x38fcf8=await _0x52a419['json']()['catch'](()=>({}));throw new Error(_0x38fcf8['error']||_0x38fcf8['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x52a419['json']();},async 'pullChanges'(_0x5dc4bc){if(!_0x5dc4bc)throw new Error('Task\x20ID\x20is\x20required');const _0x523a31=await fetch(API_BASE+'/tasks/'+_0x5dc4bc+'/pull-changes',{'method':'POST'});if(!_0x523a31['ok']){const _0x4f2311=await _0x523a31['json']()['catch'](()=>({})),_0x57a8c9=new Error(_0x4f2311['message']||_0x4f2311['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x523a31['statusText']);_0x57a8c9['code']=_0x4f2311['error_code']||null,_0x57a8c9['details']=_0x4f2311['details']||null,_0x57a8c9['tokenExpiryDays']=_0x4f2311['token_expiry_days']||null;throw _0x57a8c9;}return await _0x523a31['json']();},async 'readFile'(_0x251e3c,_0x278bdc){if(!_0x251e3c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x278bdc)throw new Error('File\x20path\x20is\x20required');const _0x5915b8=await fetch(API_BASE+'/tasks/'+_0x251e3c+'/files?path='+encodeURIComponent(_0x278bdc));if(!_0x5915b8['ok']){const _0x4178ee=await _0x5915b8['json']()['catch'](()=>({}));throw new Error(_0x4178ee['error']||_0x4178ee['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5915b8['statusText']);}return await _0x5915b8['json']();},'getTaskFileDownloadUrl'(_0x242161,_0x3c662c){if(!_0x242161)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3c662c)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242161+'/files/download?path='+encodeURIComponent(_0x3c662c);},async 'writeFile'(_0x2c854f,_0x1d0999,_0x432ecd){if(!_0x2c854f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d0999)throw new Error('File\x20path\x20is\x20required');if(_0x432ecd===undefined)throw new Error('Content\x20is\x20required');const _0x52118e=await fetch(API_BASE+'/tasks/'+_0x2c854f+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1d0999,'content':_0x432ecd})});if(!_0x52118e['ok']){const _0x3c88f0=await _0x52118e['json']()['catch'](()=>({}));throw new Error(_0x3c88f0['error']||_0x3c88f0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x52118e['statusText']);}return await _0x52118e['json']();},async 'uploadTaskFiles'(_0x38c033,_0x5dc0b4,_0x3e8ada){if(!_0x38c033)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5dc0b4)throw new Error('Target\x20directory\x20is\x20required');if(!_0x3e8ada||_0x3e8ada['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x76371d=new FormData();_0x76371d['append']('targetDir',_0x5dc0b4);for(const _0x59a448 of _0x3e8ada){_0x76371d['append']('files',_0x59a448,_0x59a448['name']);}const _0x3d4f2b=await fetch(API_BASE+'/tasks/'+_0x38c033+'/files/upload',{'method':'POST','body':_0x76371d});if(!_0x3d4f2b['ok']){const _0x5b8182=await _0x3d4f2b['json']()['catch'](()=>({}));throw new Error(_0x5b8182['error']||_0x5b8182['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3d4f2b['statusText']);}return await _0x3d4f2b['json']();},async 'createDirectory'(_0x1662c7,_0x58bbae){if(!_0x1662c7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58bbae)throw new Error('Directory\x20path\x20is\x20required');const _0x3d92b7=await fetch(API_BASE+'/tasks/'+_0x1662c7+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x58bbae})});if(!_0x3d92b7['ok']){const _0x9924b6=await _0x3d92b7['json']()['catch'](()=>({}));throw new Error(_0x9924b6['error']||_0x9924b6['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3d92b7['statusText']);}return await _0x3d92b7['json']();},async 'renamePath'(_0x14192a,_0x592d6c,_0x86dba6){if(!_0x14192a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x592d6c)throw new Error('Source\x20path\x20is\x20required');if(!_0x86dba6)throw new Error('Destination\x20path\x20is\x20required');const _0x33fcb5=await fetch(API_BASE+'/tasks/'+_0x14192a+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x592d6c,'newPath':_0x86dba6})});if(!_0x33fcb5['ok']){const _0x59c00b=await _0x33fcb5['json']()['catch'](()=>({}));throw new Error(_0x59c00b['error']||_0x59c00b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x33fcb5['statusText']);}return await _0x33fcb5['json']();},async 'deleteFile'(_0x1b1028,_0x53cfd1){if(!_0x1b1028)throw new Error('Task\x20ID\x20is\x20required');if(!_0x53cfd1)throw new Error('File\x20path\x20is\x20required');const _0x5906f3=await fetch(API_BASE+'/tasks/'+_0x1b1028+'/files?path='+encodeURIComponent(_0x53cfd1),{'method':'DELETE'});if(!_0x5906f3['ok']){const _0x35ad05=await _0x5906f3['json']()['catch'](()=>({}));throw new Error(_0x35ad05['error']||_0x35ad05['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5906f3['statusText']);}return await _0x5906f3['json']();},async 'deleteDirectory'(_0x1453c2,_0x3e37b6){if(!_0x1453c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e37b6)throw new Error('Directory\x20path\x20is\x20required');const _0x23ecac=await fetch(API_BASE+'/tasks/'+_0x1453c2+'/files/directory?path='+encodeURIComponent(_0x3e37b6),{'method':'DELETE'});if(!_0x23ecac['ok']){const _0x221543=await _0x23ecac['json']()['catch'](()=>({}));throw new Error(_0x221543['error']||_0x221543['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x23ecac['statusText']);}return await _0x23ecac['json']();},async 'discardFile'(_0x8bf9a7,_0x57e57a,_0x352fcf){if(!_0x8bf9a7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57e57a)throw new Error('File\x20path\x20is\x20required');if(!_0x352fcf)throw new Error('Repository\x20path\x20is\x20required');const _0x466686=await fetch(API_BASE+'/tasks/'+_0x8bf9a7+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x57e57a,'repoPath':_0x352fcf})});if(!_0x466686['ok']){const _0x3dc0ef=await _0x466686['json']()['catch'](()=>({}));throw new Error(_0x3dc0ef['error']||_0x3dc0ef['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x466686['statusText']);}return await _0x466686['json']();},async 'followUpTask'(_0x18ab66,_0x48ea5a={}){if(!_0x18ab66)throw new Error('Task\x20ID\x20is\x20required');if(!_0x48ea5a['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2621b8,_0x3a37ab={};if(_0x48ea5a['files']&&_0x48ea5a['files']['length']>0x0){const _0x2f1206=new FormData();_0x2f1206['append']('instructions',_0x48ea5a['instructions']);for(const _0xc3a5ee of _0x48ea5a['files']){_0x2f1206['append']('attachments',_0xc3a5ee);}_0x2621b8=_0x2f1206;}else _0x3a37ab['Content-Type']='application/json',_0x2621b8=JSON['stringify']({'instructions':_0x48ea5a['instructions']});const _0x32698f=await fetch(API_BASE+'/tasks/'+_0x18ab66+'/follow-up',{'method':'POST','headers':_0x3a37ab,'body':_0x2621b8});if(!_0x32698f['ok']){const _0x46899d=await _0x32698f['json']()['catch'](()=>({}));throw new Error(_0x46899d['error']||_0x46899d['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x32698f['statusText']);}return await _0x32698f['json']();},async 'getTaskRewindPoints'(_0x487538){if(!_0x487538)throw new Error('Task\x20ID\x20is\x20required');const _0x34cbe5=await fetch(API_BASE+'/tasks/'+_0x487538+'/rewind-points');if(!_0x34cbe5['ok']){const _0x1538d6=await _0x34cbe5['json']()['catch'](()=>({}));throw new Error(_0x1538d6['error']||_0x1538d6['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x34cbe5['statusText']);}return await _0x34cbe5['json']();},async 'rewindTask'(_0x8a782f,_0x2efa57={}){if(!_0x8a782f)throw new Error('Task\x20ID\x20is\x20required');const _0x45c2e1=Number['isInteger'](_0x2efa57['targetFollowUpCount'])?_0x2efa57['targetFollowUpCount']:0x0,_0x522029={'targetFollowUpCount':_0x45c2e1};typeof _0x2efa57['instructions']==='string'&&_0x2efa57['instructions']['trim']()&&(_0x522029['instructions']=_0x2efa57['instructions']['trim']());typeof _0x2efa57['rewindFiles']==='boolean'&&(_0x522029['rewindFiles']=_0x2efa57['rewindFiles']);const _0x290e67=await fetch(API_BASE+'/tasks/'+_0x8a782f+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x522029)});if(!_0x290e67['ok']){const _0x3a244e=await _0x290e67['json']()['catch'](()=>({}));throw new Error(_0x3a244e['error']||_0x3a244e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x290e67['statusText']);}return await _0x290e67['json']();},async 'login'(_0x3c9230,_0x16f8d8){const _0xa2b900=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3c9230,'password':_0x16f8d8})});if(!_0xa2b900['ok']){const _0x27c257=await _0xa2b900['json']();throw new Error(_0x27c257['message']||'Login\x20failed');}return await _0xa2b900['json']();},async 'logout'(){const _0xd4489=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0xd4489['ok']){const _0x395a9f=await _0xd4489['json']();throw new Error(_0x395a9f['message']||'Logout\x20failed');}return await _0xd4489['json']();},async 'getCurrentUser'(){const _0x22a174=await fetch(API_BASE+'/auth/me');if(!_0x22a174['ok'])throw new Error('Not\x20authenticated');const _0x5805ba=await _0x22a174['json']();return _0x5805ba['user'];},async 'getRolesInfo'(){const _0x2b908=await fetch(API_BASE+'/users/roles');if(!_0x2b908['ok']){const _0x3c7f29=await _0x2b908['json']();throw new Error(_0x3c7f29['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2b908['json']();},async 'getUsers'(){const _0x3a271d=await fetch(API_BASE+'/users');if(!_0x3a271d['ok']){const _0x1612fc=await _0x3a271d['json']();throw new Error(_0x1612fc['message']||'Failed\x20to\x20get\x20users');}return await _0x3a271d['json']();},async 'getUser'(_0x50ed7b){const _0xc9e253=await fetch(API_BASE+'/users/'+_0x50ed7b);if(!_0xc9e253['ok']){const _0x379e6e=await _0xc9e253['json']();throw new Error(_0x379e6e['message']||'Failed\x20to\x20get\x20user');}return await _0xc9e253['json']();},async 'createUser'(_0x150cb4){const _0x4a357e=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x150cb4)});if(!_0x4a357e['ok']){const _0x19b4e3=await _0x4a357e['json']();throw new Error(_0x19b4e3['message']||'Failed\x20to\x20create\x20user');}return await _0x4a357e['json']();},async 'updateUser'(_0x3b2135,_0x518f03){const _0x3e09bb=await fetch(API_BASE+'/users/'+_0x3b2135,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x518f03)});if(!_0x3e09bb['ok']){const _0x8c6cbc=await _0x3e09bb['json']();throw new Error(_0x8c6cbc['message']||'Failed\x20to\x20update\x20user');}return await _0x3e09bb['json']();},async 'deleteUser'(_0x22b3d3){const _0x1ed06f=await fetch(API_BASE+'/users/'+_0x22b3d3,{'method':'DELETE'});if(!_0x1ed06f['ok']){const _0x583886=await _0x1ed06f['json']();throw new Error(_0x583886['message']||'Failed\x20to\x20delete\x20user');}return await _0x1ed06f['json']();},async 'stopAllContainers'(){const _0x192ddc=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x42a06d=await _0x192ddc['json']()['catch'](()=>({}));if(!_0x192ddc['ok'])throw new Error(_0x42a06d['message']||_0x42a06d['error']||'Failed\x20to\x20stop\x20containers');return _0x42a06d;},async 'removeStoppedContainers'(){const _0x25c492=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x43dc93=await _0x25c492['json']()['catch'](()=>({}));if(!_0x25c492['ok'])throw new Error(_0x43dc93['message']||_0x43dc93['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x43dc93;},async 'pruneDockerResources'(){const _0x3f6515=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x589f5c=await _0x3f6515['json']()['catch'](()=>({}));if(!_0x3f6515['ok'])throw new Error(_0x589f5c['message']||_0x589f5c['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x589f5c;},async 'getUpdateSettings'(){const _0x56438a=await fetch(API_BASE+'/health/update-settings'),_0x46938c=await _0x56438a['json']()['catch'](()=>({}));if(!_0x56438a['ok'])throw new Error(_0x46938c['message']||_0x46938c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x46938c;},async 'applyServerUpdate'(_0x34d991){const _0x52b85f=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x34d991})}),_0x4c193a=await _0x52b85f['json']()['catch'](()=>({}));if(!_0x52b85f['ok']){const _0x196e6d=new Error(_0x4c193a['message']||_0x4c193a['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x4c193a['output']!==undefined)_0x196e6d['output']=_0x4c193a['output'];if(_0x4c193a['error']!==undefined)_0x196e6d['commandError']=_0x4c193a['error'];throw _0x196e6d;}return _0x4c193a;},async 'restartServer'(){const _0x231206=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x16bd84=await _0x231206['json']()['catch'](()=>({}));if(!_0x231206['ok'])throw new Error(_0x16bd84['message']||_0x16bd84['error']||'Failed\x20to\x20restart\x20server');return _0x16bd84;},async 'getDockerContainers'(){const _0x570009=await fetch(API_BASE+'/health/containers'),_0x2e68d8=await _0x570009['json']()['catch'](()=>({}));if(!_0x570009['ok'])throw new Error(_0x2e68d8['message']||_0x2e68d8['error']||'Failed\x20to\x20load\x20containers');return _0x2e68d8;},async 'getDockerImages'(){const _0x155535=await fetch(API_BASE+'/health/docker/images'),_0x59c3d1=await _0x155535['json']()['catch'](()=>({}));if(!_0x155535['ok'])throw new Error(_0x59c3d1['message']||_0x59c3d1['error']||'Failed\x20to\x20load\x20images');return _0x59c3d1;},async 'getDockerVolumes'(){const _0x1ec1dd=await fetch(API_BASE+'/health/docker/volumes'),_0x43c469=await _0x1ec1dd['json']()['catch'](()=>({}));if(!_0x1ec1dd['ok'])throw new Error(_0x43c469['message']||_0x43c469['error']||'Failed\x20to\x20load\x20volumes');return _0x43c469;},async 'getActiveSessions'(){const _0x513839=await fetch(API_BASE+'/health/sessions'),_0x1d2b67=await _0x513839['json']()['catch'](()=>({}));if(!_0x513839['ok'])throw new Error(_0x1d2b67['message']||_0x1d2b67['error']||'Failed\x20to\x20load\x20sessions');return _0x1d2b67;},async 'getSystemInfo'(){const _0x412270=await fetch(API_BASE+'/health/system'),_0x962ba0=await _0x412270['json']()['catch'](()=>({}));if(!_0x412270['ok'])throw new Error(_0x962ba0['message']||_0x962ba0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x962ba0;},async 'stopDockerContainer'(_0x5b8f2a){const _0x48533f=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x5b8f2a)+'/stop',{'method':'POST'}),_0x39edfe=await _0x48533f['json']()['catch'](()=>({}));if(!_0x48533f['ok'])throw new Error(_0x39edfe['message']||_0x39edfe['error']||'Failed\x20to\x20stop\x20container');return _0x39edfe;},async 'removeDockerContainer'(_0xda02fb){const _0x10b66c=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0xda02fb),{'method':'DELETE'}),_0x349030=await _0x10b66c['json']()['catch'](()=>({}));if(!_0x10b66c['ok'])throw new Error(_0x349030['message']||_0x349030['error']||'Failed\x20to\x20remove\x20container');return _0x349030;},async 'createPasswordToken'(_0x5c00b2,_0x3dc312='setup',_0x382fb5=![]){const _0x5120a5=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5c00b2,'type':_0x3dc312,'sendEmail':_0x382fb5})});if(!_0x5120a5['ok']){const _0x34d267=await _0x5120a5['json']();throw new Error(_0x34d267['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x5120a5['json']();},async 'getEmailConfig'(){const _0x692f02=await fetch(API_BASE+'/password/email-config');if(!_0x692f02['ok']){const _0xc08817=await _0x692f02['json']();throw new Error(_0xc08817['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x692f02['json']();},async 'updateTaskName'(_0xbf1bb3,_0x4d4aa6){const _0x4736dd=await fetch(API_BASE+'/tasks/'+_0xbf1bb3,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4d4aa6})});if(!_0x4736dd['ok']){const _0x812c57=await _0x4736dd['json']();throw new Error(_0x812c57['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4736dd['json']();},async 'pinTask'(_0x5eb475,_0x159974,_0x2f727b=null){if(!_0x5eb475)throw new Error('Task\x20ID\x20is\x20required');const _0xdbf53c={'pinned':_0x159974};_0x2f727b&&_0x2f727b['length']>0x0&&(_0xdbf53c['additionalTaskIds']=_0x2f727b);const _0x1260d9=await fetch(API_BASE+'/tasks/'+_0x5eb475+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xdbf53c)});if(!_0x1260d9['ok']){const _0xf7eb6c=await _0x1260d9['json']();throw new Error(_0xf7eb6c['error']||'Failed\x20to\x20pin\x20task');}return await _0x1260d9['json']();},async 'setTaskWinner'(_0x180cae,_0x459ac4,_0x38ddc9=[]){if(!_0x180cae)throw new Error('Task\x20ID\x20is\x20required');const _0x58b27b=await fetch(API_BASE+'/tasks/'+_0x180cae+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x459ac4,'siblings':_0x38ddc9})});if(!_0x58b27b['ok']){const _0x384eb1=await _0x58b27b['json']();throw new Error(_0x384eb1['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x58b27b['json']();},async 'setTaskLoser'(_0x275412,_0x23b696){if(!_0x275412)throw new Error('Task\x20ID\x20is\x20required');const _0x49a895=await fetch(API_BASE+'/tasks/'+_0x275412+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x23b696})});if(!_0x49a895['ok']){const _0xb43988=await _0x49a895['json']();throw new Error(_0xb43988['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x49a895['json']();},async 'createTaskGroup'(_0x1e8d73){const _0xa98131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e8d73)});if(!_0xa98131['ok']){const _0x1c9d36=await _0xa98131['json']();throw new Error(_0x1c9d36['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0xa98131['json']();},async 'getTaskGroups'(_0x54afa8={}){const _0x182a43=new URLSearchParams();if(_0x54afa8['userId'])_0x182a43['set']('userId',String(_0x54afa8['userId']));if(_0x54afa8['status'])_0x182a43['set']('status',String(_0x54afa8['status']));if(_0x54afa8['limit'])_0x182a43['set']('limit',String(_0x54afa8['limit']));const _0x979967=API_BASE+'/tasks/groups'+(_0x182a43['toString']()?'?'+_0x182a43['toString']():''),_0xdd490f=await fetch(_0x979967);if(!_0xdd490f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdd490f['json']();},async 'getTaskGroup'(_0x264563){const _0x419a98=await fetch(API_BASE+'/tasks/groups/'+_0x264563);if(!_0x419a98['ok']){const _0x5c61c3=await _0x419a98['json']();throw new Error(_0x5c61c3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x419a98['json']();},async 'updateTaskGroup'(_0x4b5012,_0x2d71c0,_0x441145){const _0x4c13f1=await fetch(API_BASE+'/tasks/'+_0x4b5012+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2d71c0,'groupIndex':_0x441145})});if(!_0x4c13f1['ok']){const _0x5f2b5c=await _0x4c13f1['json']();throw new Error(_0x5f2b5c['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4c13f1['json']();},async 'removeTaskFromGroup'(_0x2099bf){return this['updateTaskGroup'](_0x2099bf,null,null);},async 'deleteTaskGroup'(_0x5ce0d2,_0x5f1e34=![]){const _0xd104ee=_0x5f1e34?'?deleteTasks=true':'',_0xf31432=await fetch(API_BASE+'/tasks/groups/'+_0x5ce0d2+_0xd104ee,{'method':'DELETE'});if(!_0xf31432['ok']){const _0x1623f9=await _0xf31432['json']();throw new Error(_0x1623f9['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x521891,_0x2b4d05){const _0x5e4ed8=await fetch(API_BASE+'/tasks/groups/'+_0x521891+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x2b4d05})});if(!_0x5e4ed8['ok']){const _0x2f61e9=await _0x5e4ed8['json']();throw new Error(_0x2f61e9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5e4ed8['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4827bd){if(!_0x4827bd)throw new Error('Task\x20ID\x20is\x20required');const _0x1baf17=await fetch(API_BASE+'/tasks/'+_0x4827bd+'/comments');if(!_0x1baf17['ok']){const _0xf35610=await _0x1baf17['json']()['catch'](()=>({}));throw new Error(_0xf35610['error']||'Failed\x20to\x20get\x20comments');}return await _0x1baf17['json']();},async 'addComment'(_0x5d0ef9,_0x17aac3){if(!_0x5d0ef9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17aac3)throw new Error('Comment\x20content\x20is\x20required');const _0x1af11e=await fetch(API_BASE+'/tasks/'+_0x5d0ef9+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17aac3})});if(!_0x1af11e['ok']){const _0x257150=await _0x1af11e['json']()['catch'](()=>({}));throw new Error(_0x257150['error']||'Failed\x20to\x20add\x20comment');}return await _0x1af11e['json']();},async 'updateComment'(_0x31ff8c,_0x59185f,_0x17cf98){if(!_0x31ff8c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x59185f)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x17cf98)throw new Error('Comment\x20content\x20is\x20required');const _0x20ed5f=await fetch(API_BASE+'/tasks/'+_0x31ff8c+'/comments/'+_0x59185f,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17cf98})});if(!_0x20ed5f['ok']){const _0x103ff5=await _0x20ed5f['json']()['catch'](()=>({}));throw new Error(_0x103ff5['error']||'Failed\x20to\x20update\x20comment');}return await _0x20ed5f['json']();},async 'deleteComment'(_0x25263d,_0x25b7d4){if(!_0x25263d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x25b7d4)throw new Error('Comment\x20ID\x20is\x20required');const _0xb2f2d4=await fetch(API_BASE+'/tasks/'+_0x25263d+'/comments/'+_0x25b7d4,{'method':'DELETE'});if(!_0xb2f2d4['ok']){const _0x262cce=await _0xb2f2d4['json']()['catch'](()=>({}));throw new Error(_0x262cce['error']||'Failed\x20to\x20delete\x20comment');}return await _0xb2f2d4['json']();},async 'createObjective'(_0x5dc368){const _0x528643={'objective':!![],'name':_0x5dc368['name']||'','environment':_0x5dc368['environment']||null,'agents':_0x5dc368['agents']||[],'branches':_0x5dc368['branches']||{},'isPinned':_0x5dc368['isPinned']||![],'parentObjectiveId':_0x5dc368['parentObjectiveId']||null,'env_vars':_0x5dc368['envVars']||{},'parameters':{'instructions':_0x5dc368['instructions']||''},'files':_0x5dc368['files']||[],'jira':_0x5dc368['jira']||null};return this['createTask'](_0x528643);},async 'updateObjective'(_0x1d20da,_0x577464,_0x89de2b=[],_0x549f3e=[]){let _0x181bb2,_0x548ace={};const _0x1183a8={..._0x577464};_0x549f3e&&_0x549f3e['length']>0x0&&(_0x1183a8['removeAttachments']=_0x549f3e);if(_0x89de2b&&_0x89de2b['length']>0x0){const _0x57a81d=new FormData();for(const [_0x4b9932,_0x35f821]of Object['entries'](_0x1183a8)){if(_0x35f821==null)continue;typeof _0x35f821==='object'?_0x57a81d['append'](_0x4b9932,JSON['stringify'](_0x35f821)):_0x57a81d['append'](_0x4b9932,String(_0x35f821));}for(const _0x5b658c of _0x89de2b){_0x57a81d['append']('attachments',_0x5b658c);}_0x181bb2=_0x57a81d;}else _0x548ace['Content-Type']='application/json',_0x181bb2=JSON['stringify'](_0x1183a8);const _0x503e83=await fetch(API_BASE+'/tasks/'+_0x1d20da,{'method':'PATCH','headers':_0x548ace,'body':_0x181bb2});if(!_0x503e83['ok']){const _0x3a2e4e=await _0x503e83['json']();throw new Error(_0x3a2e4e['error']||'Failed\x20to\x20update\x20objective');}return await _0x503e83['json']();},async 'deleteObjective'(_0xa0789f){return this['deleteTask'](_0xa0789f);},async 'launchObjective'(_0x1f8f12,_0x603e97={}){const _0x316ec5=await fetch(API_BASE+'/tasks/'+_0x1f8f12+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x603e97)});if(!_0x316ec5['ok']){const _0x540c5a=await _0x316ec5['json']();throw new Error(_0x540c5a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x316ec5['json']();},async 'getObjectiveAttachments'(_0x118371){return this['getTaskAttachments'](_0x118371);},async 'createJudgeTask'({environment:_0x20e579,judgeAgent:_0x15058f,groupId:_0x15e4e3,taskIds:_0x4e3a26,judgeCustomInstructions:_0x2324bf,isPinned:_0x4eb87b}){const _0x559c92=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x20e579,'judgeAgent':_0x15058f,'groupId':_0x15e4e3,'taskIds':_0x4e3a26,'judgeCustomInstructions':_0x2324bf,'isPinned':_0x4eb87b})});if(!_0x559c92['ok']){const _0x20671f=await _0x559c92['json']();throw new Error(_0x20671f['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x559c92['json']();},async 'getJudgeTasks'(_0x30acac){const _0x39c545=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x30acac));if(!_0x39c545['ok']){const _0x1ed5db=await _0x39c545['json']();throw new Error(_0x1ed5db['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39c545['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4c6a6b,_0x29c4fd,_0x443a7a=''){const _0x25c61f=await fetch(API_BASE+'/tasks/'+_0x4c6a6b+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x29c4fd,'customPreamble':_0x443a7a})});if(!_0x25c61f['ok']){const _0x1b2d46=await _0x25c61f['json']();throw new Error(_0x1b2d46['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x25c61f['json']();},async 'getJiraConfig'(){const _0x37b20d=await fetch(API_BASE+'/jira/config');if(!_0x37b20d['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x37b20d['json']();},async 'getJiraIssue'(_0x113124){const _0xc8d72c=await fetch(API_BASE+'/jira/issues/'+_0x113124);if(!_0xc8d72c['ok']){const _0x5a3e3c=await _0xc8d72c['json']()['catch'](()=>({}));throw new Error(_0x5a3e3c['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0xc8d72c['statusText']);}return await _0xc8d72c['json']();},async 'searchJiraIssues'(_0x4f16da,_0x46d5ae=0x14){const _0x598a72=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4f16da,'maxResults':_0x46d5ae})});if(!_0x598a72['ok']){const _0x55f00f=await _0x598a72['json']()['catch'](()=>({}));throw new Error(_0x55f00f['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x598a72['statusText']);}return await _0x598a72['json']();},async 'postJiraComment'(_0xdc6282,_0x10009f){const _0x305394=await fetch(API_BASE+'/jira/issues/'+_0xdc6282+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x10009f})});if(!_0x305394['ok']){const _0x1572d8=await _0x305394['json']()['catch'](()=>({}));throw new Error(_0x1572d8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x305394['statusText']);}return await _0x305394['json']();},async 'getJiraComments'(_0x2424ec){const _0x153cf3=await fetch(API_BASE+'/jira/issues/'+_0x2424ec+'/comments');if(!_0x153cf3['ok']){const _0x343525=await _0x153cf3['json']()['catch'](()=>({}));throw new Error(_0x343525['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x153cf3['statusText']);}return await _0x153cf3['json']();},async 'promptParameter'({environment:_0x42303e,command:_0x51c6a2,parser:parser='json'}){const _0x572256=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x42303e,'command':_0x51c6a2,'parser':parser})});if(!_0x572256['ok']){const _0x2804db=await _0x572256['json']()['catch'](()=>({}));throw new Error(_0x2804db['message']||_0x2804db['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x572256['statusText']);}return await _0x572256['json']();},async 'promptParameterStream'(_0x558e39,_0x8b7ba2){const _0x2efc36=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558e39)});if(!_0x2efc36['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x2efc36['statusText']);const _0x13d8de=_0x2efc36['body']['getReader'](),_0x340f12=new TextDecoder();let _0x227185='';return new Promise((_0x756eda,_0x6a40ca)=>{const _0x4ac77e=async()=>{try{const {done:_0x2ccec2,value:_0x2baca5}=await _0x13d8de['read']();if(_0x2ccec2)return;_0x227185+=_0x340f12['decode'](_0x2baca5,{'stream':!![]});const _0x4308f7=_0x227185['split']('\x0a\x0a');_0x227185=_0x4308f7['pop']()||'';for(const _0x420d29 of _0x4308f7){if(!_0x420d29['trim']())continue;const _0x128e64=_0x420d29['split']('\x0a');let _0x20a200='message',_0x26cbfa='';for(const _0x241392 of _0x128e64){if(_0x241392['startsWith']('event:'))_0x20a200=_0x241392['substring'](0x6)['trim']();else _0x241392['startsWith']('data:')&&(_0x26cbfa=_0x241392['substring'](0x5)['trim']());}if(!_0x26cbfa)continue;try{const _0x2e04e3=JSON['parse'](_0x26cbfa);if(_0x20a200==='progress'&&_0x8b7ba2)_0x8b7ba2(_0x2e04e3['stage'],_0x2e04e3['message']);else{if(_0x20a200==='result'){_0x756eda(_0x2e04e3);return;}else{if(_0x20a200==='error'){let _0x1db43f=_0x2e04e3['message']||_0x2e04e3['error']||'Prompt\x20command\x20failed';_0x2e04e3['rawOutput']&&(_0x1db43f+='\x0a\x0aRaw\x20output:\x0a'+_0x2e04e3['rawOutput']);_0x6a40ca(new Error(_0x1db43f));return;}}}}catch(_0x283dab){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x283dab),console['error']('Event\x20type:',_0x20a200),console['error']('Event\x20data:',_0x26cbfa),console['error']('First\x20200\x20chars:',_0x26cbfa['substring'](0x0,0xc8)),_0x6a40ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x283dab['message']+'\x0a\x0aData:\x20'+_0x26cbfa['substring'](0x0,0x1f4)));return;}}_0x4ac77e();}catch(_0x26abd9){_0x6a40ca(_0x26abd9);}};_0x4ac77e();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3e652d){const _0x384fab=await fetch(''+API_BASE+_0x3e652d);if(!_0x384fab['ok']){const _0x2380a6=await _0x384fab['json']()['catch'](()=>({'error':_0x384fab['statusText']})),_0xffcad4=new Error(_0x2380a6['error']||_0x2380a6['message']||_0x384fab['statusText']);if(_0x2380a6['detail']!==undefined)_0xffcad4['detail']=_0x2380a6['detail'];throw _0xffcad4;}return await _0x384fab['json']();},async 'post'(_0xaf8132,_0x4308da){const _0x3a93d3=await fetch(''+API_BASE+_0xaf8132,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4308da)});if(!_0x3a93d3['ok']){const _0x6b4744=await _0x3a93d3['json']()['catch'](()=>({'error':_0x3a93d3['statusText']})),_0x11e28d=new Error(_0x6b4744['error']||_0x6b4744['message']||_0x3a93d3['statusText']);if(_0x6b4744['detail']!==undefined)_0x11e28d['detail']=_0x6b4744['detail'];throw _0x11e28d;}return await _0x3a93d3['json']();},async 'put'(_0x2e5fe6,_0x239cc6){const _0x575730=await fetch(''+API_BASE+_0x2e5fe6,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239cc6)});if(!_0x575730['ok']){const _0x1c9477=await _0x575730['json']()['catch'](()=>({'error':_0x575730['statusText']})),_0x23aab0=new Error(_0x1c9477['error']||_0x1c9477['message']||_0x575730['statusText']);if(_0x1c9477['detail']!==undefined)_0x23aab0['detail']=_0x1c9477['detail'];throw _0x23aab0;}return await _0x575730['json']();},async 'delete'(_0x50ccbb,_0x4051e2){const _0x3d3b1b={'method':'DELETE'};_0x4051e2&&(_0x3d3b1b['headers']={'Content-Type':'application/json'},_0x3d3b1b['body']=JSON['stringify'](_0x4051e2));const _0x342548=await fetch(''+API_BASE+_0x50ccbb,_0x3d3b1b);if(!_0x342548['ok']){const _0x5214fd=await _0x342548['json']()['catch'](()=>({'error':_0x342548['statusText']})),_0x24b2c0=new Error(_0x5214fd['error']||_0x5214fd['message']||_0x342548['statusText']);if(_0x5214fd['detail']!==undefined)_0x24b2c0['detail']=_0x5214fd['detail'];throw _0x24b2c0;}return await _0x342548['json']();},async 'getSkills'(){const _0x31c7cd=await fetch(API_BASE+'/skills');if(!_0x31c7cd['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x31c7cd['statusText']);return await _0x31c7cd['json']();},async 'getSkill'(_0x49eb5f){const _0x55e637=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49eb5f));if(!_0x55e637['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x55e637['statusText']);return await _0x55e637['json']();},async 'createSkill'(_0x415a91){const _0x244ddb=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x415a91)});if(!_0x244ddb['ok']){const _0x56fd74=await _0x244ddb['json']()['catch'](()=>({'error':_0x244ddb['statusText']})),_0x25a024=new Error(_0x56fd74['error']||_0x56fd74['message']||_0x244ddb['statusText']);if(_0x56fd74['detail']!==undefined)_0x25a024['detail']=_0x56fd74['detail'];throw _0x25a024;}return await _0x244ddb['json']();},async 'updateSkill'(_0x14bf1e,_0x1b96ed){const _0xf09a79=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x14bf1e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b96ed)});if(!_0xf09a79['ok']){const _0x31e849=await _0xf09a79['json']()['catch'](()=>({'error':_0xf09a79['statusText']})),_0x377cda=new Error(_0x31e849['error']||_0x31e849['message']||_0xf09a79['statusText']);if(_0x31e849['detail']!==undefined)_0x377cda['detail']=_0x31e849['detail'];throw _0x377cda;}return await _0xf09a79['json']();},async 'deleteSkill'(_0x2ce235){const _0x4bce38=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ce235),{'method':'DELETE'});if(!_0x4bce38['ok']){const _0x3f39fb=await _0x4bce38['json']()['catch'](()=>({'error':_0x4bce38['statusText']})),_0x51ba36=new Error(_0x3f39fb['error']||_0x3f39fb['message']||_0x4bce38['statusText']);if(_0x3f39fb['detail']!==undefined)_0x51ba36['detail']=_0x3f39fb['detail'];throw _0x51ba36;}return await _0x4bce38['json']();},async 'getSkillFile'(_0x3e4b75,_0x368590){const _0xa07a9d=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3e4b75)+'/files/'+_0x368590);if(!_0xa07a9d['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xa07a9d['statusText']);return await _0xa07a9d['json']();},async 'saveSkillFile'(_0x577070,_0x4e95cd,_0x19f7cc){const _0x596f6a=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x577070)+'/files/'+_0x4e95cd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x19f7cc})});if(!_0x596f6a['ok']){const _0xed9c18=await _0x596f6a['json']()['catch'](()=>({'error':_0x596f6a['statusText']})),_0x22de43=new Error(_0xed9c18['error']||_0xed9c18['message']||_0x596f6a['statusText']);if(_0xed9c18['detail']!==undefined)_0x22de43['detail']=_0xed9c18['detail'];throw _0x22de43;}return await _0x596f6a['json']();},async 'deleteSkillFile'(_0x26539c,_0x5e2d6b){const _0xe4f4e9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x26539c)+'/files/'+_0x5e2d6b,{'method':'DELETE'});if(!_0xe4f4e9['ok']){const _0x3d1dff=await _0xe4f4e9['json']()['catch'](()=>({'error':_0xe4f4e9['statusText']})),_0x3d51e9=new Error(_0x3d1dff['error']||_0x3d1dff['message']||_0xe4f4e9['statusText']);if(_0x3d1dff['detail']!==undefined)_0x3d51e9['detail']=_0x3d1dff['detail'];throw _0x3d51e9;}return await _0xe4f4e9['json']();},async 'pullSkills'(){const _0x200a7c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x200a7c['ok']){const _0x3c04c5=await _0x200a7c['json']()['catch'](()=>({'error':_0x200a7c['statusText']})),_0x13ad7b=new Error(_0x3c04c5['error']||_0x3c04c5['message']||_0x200a7c['statusText']);if(_0x3c04c5['detail']!==undefined)_0x13ad7b['detail']=_0x3c04c5['detail'];throw _0x13ad7b;}return await _0x200a7c['json']();},async 'commitSkills'(_0x5d1764,_0x28b744={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x28b744,_0x9a229b=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x5d1764,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x9a229b['ok']){const _0x4974b7=await _0x9a229b['json']()['catch'](()=>({'error':_0x9a229b['statusText']})),_0x1ea460=new Error(_0x4974b7['error']||_0x4974b7['message']||_0x9a229b['statusText']);if(_0x4974b7['detail']!==undefined)_0x1ea460['detail']=_0x4974b7['detail'];throw _0x1ea460;}return await _0x9a229b['json']();},async 'discardSkillsChanges'(){const _0x1bc21b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1bc21b['ok']){const _0x3a15d8=await _0x1bc21b['json']()['catch'](()=>({'error':_0x1bc21b['statusText']})),_0x4a6b7d=new Error(_0x3a15d8['error']||_0x3a15d8['message']||_0x1bc21b['statusText']);if(_0x3a15d8['detail']!==undefined)_0x4a6b7d['detail']=_0x3a15d8['detail'];throw _0x4a6b7d;}return await _0x1bc21b['json']();},async 'getSkillCatalog'(){const _0x47722e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x47722e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x47722e['statusText']);return await _0x47722e['json']();},async 'getImportedSkillsRegistry'(){const _0x65633e=await fetch(API_BASE+'/external-skills/registry');if(!_0x65633e['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x65633e['statusText']);return await _0x65633e['json']();},async 'importCatalogSkill'(_0x56805f){const _0x319afc=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x56805f})});if(!_0x319afc['ok']){const _0x385faa=await _0x319afc['json']()['catch'](()=>({'error':_0x319afc['statusText']})),_0x24ceee=new Error(_0x385faa['error']||_0x385faa['message']||_0x319afc['statusText']);if(_0x385faa['detail']!==undefined)_0x24ceee['detail']=_0x385faa['detail'];throw _0x24ceee;}return await _0x319afc['json']();},async 'importSkillFromGit'(_0x590d0a,_0x48a982,_0x39fa69='main',_0x3f6fb2=null){const _0x114c8e=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x590d0a,'skillPath':_0x48a982,'branch':_0x39fa69,'skillId':_0x3f6fb2})});if(!_0x114c8e['ok']){const _0x398fd=await _0x114c8e['json']()['catch'](()=>({'error':_0x114c8e['statusText']})),_0x3fdc3d=new Error(_0x398fd['error']||_0x398fd['message']||_0x114c8e['statusText']);if(_0x398fd['detail']!==undefined)_0x3fdc3d['detail']=_0x398fd['detail'];throw _0x3fdc3d;}return await _0x114c8e['json']();},async 'probeMarketplace'(_0x566352,_0x28d9ee='main'){const _0x10d082=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x566352,'branch':_0x28d9ee})});if(!_0x10d082['ok']){const _0x12d5f1=await _0x10d082['json']()['catch'](()=>({'error':_0x10d082['statusText']})),_0x1fd582=new Error(_0x12d5f1['error']||_0x12d5f1['message']||_0x10d082['statusText']);if(_0x12d5f1['detail']!==undefined)_0x1fd582['detail']=_0x12d5f1['detail'];throw _0x1fd582;}return await _0x10d082['json']();},async 'importMarketplaceBundle'(_0x4f5d05,_0xfcdd63,_0x5323c6,_0x5b575c=null){const _0x7325a6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f5d05,'branch':_0xfcdd63,'bundleId':_0x5323c6,'selectedSkills':_0x5b575c})});if(!_0x7325a6['ok']){const _0x54878b=await _0x7325a6['json']()['catch'](()=>({'error':_0x7325a6['statusText']})),_0x409798=new Error(_0x54878b['error']||_0x54878b['message']||_0x7325a6['statusText']);if(_0x54878b['detail']!==undefined)_0x409798['detail']=_0x54878b['detail'];throw _0x409798;}return await _0x7325a6['json']();},async 'importSkillFromFolder'(_0x4d827f,_0x32e2c9=null){const _0x3c21c1=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4d827f,'skillId':_0x32e2c9})});if(!_0x3c21c1['ok']){const _0x3502cc=await _0x3c21c1['json']()['catch'](()=>({'error':_0x3c21c1['statusText']})),_0x313346=new Error(_0x3502cc['error']||_0x3502cc['message']||_0x3c21c1['statusText']);if(_0x3502cc['detail']!==undefined)_0x313346['detail']=_0x3502cc['detail'];throw _0x313346;}return await _0x3c21c1['json']();},async 'importSkillFromNpm'(_0x4f1218,_0x4dde69='latest',_0x41e664=null,_0x84b2e7=null){const _0x44f74e=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x4f1218,'version':_0x4dde69,'skillId':_0x41e664,'registry':_0x84b2e7})});if(!_0x44f74e['ok']){const _0x4ee51f=await _0x44f74e['json']()['catch'](()=>({'error':_0x44f74e['statusText']})),_0x6aa5c6=new Error(_0x4ee51f['error']||_0x4ee51f['message']||_0x44f74e['statusText']);if(_0x4ee51f['detail']!==undefined)_0x6aa5c6['detail']=_0x4ee51f['detail'];throw _0x6aa5c6;}return await _0x44f74e['json']();},async 'checkSkillUpdates'(_0x395c7c){const _0x485184=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x395c7c)+'/check-updates',{'method':'POST'});if(!_0x485184['ok']){const _0x144807=await _0x485184['json']()['catch'](()=>({'error':_0x485184['statusText']})),_0x420bed=new Error(_0x144807['error']||_0x144807['message']||_0x485184['statusText']);if(_0x144807['detail']!==undefined)_0x420bed['detail']=_0x144807['detail'];throw _0x420bed;}return await _0x485184['json']();},async 'updateExternalSkill'(_0x256368){const _0x1a6a22=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x256368)+'/update',{'method':'POST'});if(!_0x1a6a22['ok']){const _0x552bc4=await _0x1a6a22['json']()['catch'](()=>({'error':_0x1a6a22['statusText']})),_0x4960f8=new Error(_0x552bc4['error']||_0x552bc4['message']||_0x1a6a22['statusText']);if(_0x552bc4['detail']!==undefined)_0x4960f8['detail']=_0x552bc4['detail'];throw _0x4960f8;}return await _0x1a6a22['json']();},async 'updateSkillFlags'(_0x26ae6a,_0x256bf9){const _0x55d61b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x26ae6a)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x256bf9})});if(!_0x55d61b['ok']){const _0x2ce8c1=await _0x55d61b['json']()['catch'](()=>({'error':_0x55d61b['statusText']})),_0x5eb6f2=new Error(_0x2ce8c1['error']||_0x2ce8c1['message']||_0x55d61b['statusText']);if(_0x2ce8c1['detail']!==undefined)_0x5eb6f2['detail']=_0x2ce8c1['detail'];throw _0x5eb6f2;}return await _0x55d61b['json']();},async 'removeFromImportedRegistry'(_0x486683){const _0x281773=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x486683)+'/registry',{'method':'DELETE'});if(!_0x281773['ok']){const _0x590f75=await _0x281773['json']()['catch'](()=>({'error':_0x281773['statusText']})),_0x2e6d3d=new Error(_0x590f75['error']||_0x590f75['message']||_0x281773['statusText']);if(_0x590f75['detail']!==undefined)_0x2e6d3d['detail']=_0x590f75['detail'];throw _0x2e6d3d;}return await _0x281773['json']();},async 'getTeams'(){const _0x569bd8=await fetch(API_BASE+'/teams');if(!_0x569bd8['ok']){const _0x37e714=await _0x569bd8['json']()['catch'](()=>({'message':_0x569bd8['statusText']}));throw new Error(_0x37e714['message']||'Failed\x20to\x20get\x20teams');}return await _0x569bd8['json']();},async 'getTeam'(_0x372614){const _0x3773d4=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x372614));if(!_0x3773d4['ok']){const _0x6df004=await _0x3773d4['json']()['catch'](()=>({'message':_0x3773d4['statusText']}));throw new Error(_0x6df004['message']||'Failed\x20to\x20get\x20team');}return await _0x3773d4['json']();},async 'createTeam'(_0x527de8){const _0x55608b=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x527de8)});if(!_0x55608b['ok']){const _0xce21fc=await _0x55608b['json']()['catch'](()=>({'message':_0x55608b['statusText']}));throw new Error(_0xce21fc['message']||'Failed\x20to\x20create\x20team');}return await _0x55608b['json']();},async 'updateTeam'(_0x1aeb6c,_0x332458){const _0x425dce=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1aeb6c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x332458)});if(!_0x425dce['ok']){const _0x5f046c=await _0x425dce['json']()['catch'](()=>({'message':_0x425dce['statusText']}));throw new Error(_0x5f046c['message']||'Failed\x20to\x20update\x20team');}return await _0x425dce['json']();},async 'deleteTeam'(_0x125e88){const _0x59db85=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x125e88),{'method':'DELETE'});if(!_0x59db85['ok']){const _0x2f6d20=await _0x59db85['json']()['catch'](()=>({'message':_0x59db85['statusText']}));throw new Error(_0x2f6d20['message']||'Failed\x20to\x20delete\x20team');}return await _0x59db85['json']();},async 'addTeamMember'(_0x173f8a,_0x5bfe61){const _0x20017e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x173f8a)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5bfe61})});if(!_0x20017e['ok']){const _0x4f091d=await _0x20017e['json']()['catch'](()=>({'message':_0x20017e['statusText']}));throw new Error(_0x4f091d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x20017e['json']();},async 'removeTeamMember'(_0x116e2c,_0x1bd98c){const _0x3af8e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x116e2c)+'/members/'+encodeURIComponent(_0x1bd98c),{'method':'DELETE'});if(!_0x3af8e8['ok']){const _0x180bfb=await _0x3af8e8['json']()['catch'](()=>({'message':_0x3af8e8['statusText']}));throw new Error(_0x180bfb['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x3af8e8['json']();},async 'getBindings'(_0x52c738={}){const _0x5310ec=new URLSearchParams();if(_0x52c738['resource_type'])_0x5310ec['set']('resource_type',_0x52c738['resource_type']);if(_0x52c738['resource_id'])_0x5310ec['set']('resource_id',_0x52c738['resource_id']);if(_0x52c738['subject_type'])_0x5310ec['set']('subject_type',_0x52c738['subject_type']);if(_0x52c738['subject_id'])_0x5310ec['set']('subject_id',_0x52c738['subject_id']);const _0x385a52=_0x5310ec['toString'](),_0x2d6274=await fetch(API_BASE+'/bindings'+(_0x385a52?'?'+_0x385a52:''));if(!_0x2d6274['ok']){const _0x5edfcb=await _0x2d6274['json']()['catch'](()=>({'message':_0x2d6274['statusText']}));throw new Error(_0x5edfcb['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2d6274['json']();},async 'createBinding'(_0x826fa0){const _0x4fed28=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x826fa0)});if(!_0x4fed28['ok']){const _0x3df509=await _0x4fed28['json']()['catch'](()=>({'message':_0x4fed28['statusText']}));throw new Error(_0x3df509['message']||'Failed\x20to\x20create\x20binding');}return await _0x4fed28['json']();},async 'updateBinding'(_0x2fa754,_0x35a649){const _0xcb4f79=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2fa754),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35a649)});if(!_0xcb4f79['ok']){const _0x48bc0d=await _0xcb4f79['json']()['catch'](()=>({'message':_0xcb4f79['statusText']}));throw new Error(_0x48bc0d['message']||'Failed\x20to\x20update\x20binding');}return await _0xcb4f79['json']();},async 'deleteBinding'(_0x4f83dc){const _0x4c2efc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4f83dc),{'method':'DELETE'});if(!_0x4c2efc['ok']){const _0x5d8a2f=await _0x4c2efc['json']()['catch'](()=>({'message':_0x4c2efc['statusText']}));throw new Error(_0x5d8a2f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4c2efc['json']();},async 'getRoleDefinitions'(){const _0x45c2b2=await fetch(API_BASE+'/roles');if(!_0x45c2b2['ok']){const _0x53ed29=await _0x45c2b2['json']()['catch'](()=>({'message':_0x45c2b2['statusText']}));throw new Error(_0x53ed29['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x45c2b2['json']();},async 'getRoleDefinition'(_0x5f2f6e){const _0x60365b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5f2f6e));if(!_0x60365b['ok']){const _0x51fa9c=await _0x60365b['json']()['catch'](()=>({'message':_0x60365b['statusText']}));throw new Error(_0x51fa9c['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x60365b['json']();},async 'createRoleDefinition'(_0x3f46e7){const _0x3bb1ee=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f46e7)});if(!_0x3bb1ee['ok']){const _0x5bbeb6=await _0x3bb1ee['json']()['catch'](()=>({'message':_0x3bb1ee['statusText']}));throw new Error(_0x5bbeb6['message']||_0x5bbeb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3bb1ee['json']();},async 'updateRoleDefinition'(_0x197124,_0x455fea){const _0x54cc45=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x197124),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x455fea)});if(!_0x54cc45['ok']){const _0x38f830=await _0x54cc45['json']()['catch'](()=>({'message':_0x54cc45['statusText']}));throw new Error(_0x38f830['message']||_0x38f830['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x54cc45['json']();},async 'deleteRoleDefinition'(_0x476c26){const _0x31650e=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x476c26),{'method':'DELETE'});if(!_0x31650e['ok']){const _0x21c23f=await _0x31650e['json']()['catch'](()=>({'message':_0x31650e['statusText']}));throw new Error(_0x21c23f['message']||_0x21c23f['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x31650e['json']();},async 'getAvailablePermissions'(){const _0x30d705=await fetch(API_BASE+'/roles/available-permissions');if(!_0x30d705['ok']){const _0x70fb18=await _0x30d705['json']()['catch'](()=>({'message':_0x30d705['statusText']}));throw new Error(_0x70fb18['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x30d705['json']();},async 'getGitProviderAllowedTeams'(_0x3d1f4b){const _0x372000=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3d1f4b)+'/allowed-teams');if(!_0x372000['ok']){const _0x4a17ef=await _0x372000['json']()['catch'](()=>({'message':_0x372000['statusText']}));throw new Error(_0x4a17ef['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x372000['json']();},async 'setGitProviderAllowedTeams'(_0x3b718b,_0x65876f){const _0x30d766=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3b718b)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x65876f})});if(!_0x30d766['ok']){const _0x1dfd35=await _0x30d766['json']()['catch'](()=>({'message':_0x30d766['statusText']}));throw new Error(_0x1dfd35['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x30d766['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x41a54f=toastState['baseBottom'];toastState['toasts']['forEach'](_0x4f6049=>{_0x4f6049['el']['style']['bottom']=_0x41a54f+'px';const _0x2842ec=_0x4f6049['el']['offsetHeight']||toastState['defaultHeight'];_0x41a54f+=_0x2842ec+toastState['gap'];});});}function removeToastById(_0xb6cc44){const _0x3c0e5b=toastState['toasts']['findIndex'](_0x1835c3=>_0x1835c3['id']===_0xb6cc44);if(_0x3c0e5b===-0x1)return;const _0x1f6a79=toastState['toasts'][_0x3c0e5b];if(_0x1f6a79['timeoutId'])clearTimeout(_0x1f6a79['timeoutId']);_0x1f6a79['el']['classList']['remove']('show'),setTimeout(()=>_0x1f6a79['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3c0e5b,0x1),repositionAllToasts();}function registerToast(_0x17eba2){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x17eba2),repositionAllToasts(),_0x17eba2['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x1c43bb){if(_0x1c43bb===null||_0x1c43bb===undefined)return'';return String(_0x1c43bb)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x59df75,_0x361732){if(_0x59df75&&typeof _0x59df75==='object'&&!Array['isArray'](_0x59df75))return{'code':typeof _0x59df75['text']==='string'?_0x59df75['text']:'','language':typeof _0x59df75['lang']==='string'?_0x59df75['lang']:''};return{'code':typeof _0x59df75==='string'?_0x59df75:'','language':typeof _0x361732==='string'?_0x361732:''};}function buildMermaidBlock(_0x3c8d40){const _0x2094c6=String(_0x3c8d40||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2094c6))+'\x22>'+escapeHtmlValue(_0x2094c6)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1a1bab=new marked['Renderer'](),_0x21a019=_0x1a1bab['code']['bind'](_0x1a1bab);return _0x1a1bab['code']=function(_0x3e2aa2,_0x229cdb,..._0x56fe8a){const {code:_0x288fbe,language:_0x3c0ace}=getMarkdownCodeBlockPayload(_0x3e2aa2,_0x229cdb),_0x5dda8c=String(_0x3c0ace||'')['trim']()['toLowerCase']();if(_0x5dda8c==='mermaid')return buildMermaidBlock(_0x288fbe);const _0x15f7a3=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x15f7a3&&_0x5dda8c)try{const _0x3461b5=_0x15f7a3['getLanguage'](_0x5dda8c)?_0x5dda8c:'plaintext',_0x3d7b93=_0x15f7a3['highlight'](_0x288fbe,{'language':_0x3461b5})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dda8c)+'\x22>'+_0x3d7b93+'</code></pre>';}catch(_0x497f23){console['error']('Syntax\x20highlighting\x20error:',_0x497f23);}return _0x21a019(_0x3e2aa2,_0x229cdb,..._0x56fe8a);},sharedMarkedRenderer=_0x1a1bab,_0x1a1bab;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x351e00=window['mermaid'];if(!_0x351e00||typeof _0x351e00['initialize']!=='function')return _0x351e00||null;return _0x351e00['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x351e00;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1e7d55,_0xf63295)=>{const _0x2d1156=()=>_0x1e7d55(configureMermaidInstance()),_0x35b6dc=()=>{mermaidLoadPromise=null,_0xf63295(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x3064a9=document['getElementById'](MERMAID_SCRIPT_ID);!_0x3064a9&&(_0x3064a9=document['createElement']('script'),_0x3064a9['id']=MERMAID_SCRIPT_ID,_0x3064a9['src']=MERMAID_SCRIPT_SRC,_0x3064a9['async']=!![],document['head']['appendChild'](_0x3064a9));if(window['mermaid']){_0x2d1156();return;}_0x3064a9['addEventListener']('load',_0x2d1156,{'once':!![]}),_0x3064a9['addEventListener']('error',_0x35b6dc,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x17ea46){const _0x3b3843=_0x17ea46['getAttribute']('data-mermaid-source');if(!_0x3b3843)return null;let _0x1d183f=_0x3b3843;try{_0x1d183f=decodeURIComponent(_0x3b3843);}catch{}return _0x17ea46['textContent']=_0x1d183f,_0x17ea46['removeAttribute']('data-processed'),_0x17ea46['removeAttribute']('aria-roledescription'),_0x17ea46['removeAttribute']('role'),_0x17ea46['removeAttribute']('aria-label'),_0x1d183f;}function collectMermaidNodes(_0x32bc3a,_0x3b98bf){if(!(_0x32bc3a instanceof Element))return;_0x32bc3a['matches']('.mermaid[data-mermaid-source]')&&_0x3b98bf['add'](_0x32bc3a),_0x32bc3a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3704a7=>{_0x3b98bf['add'](_0x3704a7);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x210577=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xb87dd0=>setTimeout(_0xb87dd0,0x0);_0x210577(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1827ca=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1827ca);});});}function queueMermaidRender(_0x3d3581){const _0xec21a3=new Set();_0x3d3581 instanceof Document||_0x3d3581 instanceof DocumentFragment?_0x3d3581['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xfc4ff=>_0xec21a3['add'](_0xfc4ff)):collectMermaidNodes(_0x3d3581,_0xec21a3);if(_0xec21a3['size']===0x0)return;_0xec21a3['forEach'](_0x4bf564=>pendingMermaidNodes['add'](_0x4bf564)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x4e98b9=Array['from'](pendingMermaidNodes)['filter'](_0x22c3ef=>_0x22c3ef['isConnected']);pendingMermaidNodes['clear']();if(_0x4e98b9['length']===0x0)return;const _0x3428dc=await loadMermaid();if(!_0x3428dc)return;configureMermaidInstance();const _0x339d3e=getMermaidTheme();for(const _0x418cdc of _0x4e98b9){const _0x663a35=_0x418cdc['getAttribute']('data-mermaid-source');if(!_0x663a35)continue;const _0x260c5d=_0x418cdc['getAttribute']('data-processed')==='true';if(_0x260c5d&&_0x418cdc['dataset']['mermaidTheme']===_0x339d3e)continue;restoreMermaidSource(_0x418cdc);try{if(typeof _0x3428dc['run']==='function')await _0x3428dc['run']({'nodes':[_0x418cdc]});else typeof _0x3428dc['init']==='function'&&_0x3428dc['init'](undefined,[_0x418cdc]);_0x418cdc['dataset']['mermaidTheme']=_0x339d3e,delete _0x418cdc['dataset']['mermaidError'];}catch(_0x4062f5){console['error']('Mermaid\x20render\x20failed:',_0x4062f5),restoreMermaidSource(_0x418cdc),_0x418cdc['dataset']['mermaidError']='true',delete _0x418cdc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5d2670=>{_0x5d2670['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5d2670);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x554fe3=>{_0x554fe3['forEach'](_0x2911db=>{_0x2911db['addedNodes']['forEach'](_0x3f5697=>{_0x3f5697['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3f5697);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x551a7f){const _0x28016f=new Date(_0x551a7f),_0x172c99=new Date(),_0x5ea65f=_0x172c99-_0x28016f,_0x2acc42=Math['floor'](_0x5ea65f/0x3e8),_0x2cc7d9=Math['floor'](_0x2acc42/0x3c),_0x3208a6=Math['floor'](_0x2cc7d9/0x3c),_0x303aaf=Math['floor'](_0x3208a6/0x18);if(_0x2acc42<0x3c)return'now';if(_0x2cc7d9<0x3c)return _0x2cc7d9+'m\x20ago';if(_0x3208a6<0x18)return _0x3208a6+'h\x20ago';return _0x303aaf+'d\x20ago';},'getStatusIcon'(_0x48ee09){switch(_0x48ee09){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1d506d){switch(_0x1d506d){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x18bb31,_0x287000=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x1c68ae={};_0x1c68ae['text/plain']=new Blob([_0x18bb31],{'type':'text/plain'});_0x287000&&(_0x1c68ae['text/html']=new Blob([_0x287000],{'type':'text/html'}));const _0x26aef9=new ClipboardItem(_0x1c68ae);return await navigator['clipboard']['write']([_0x26aef9]),!![];}catch(_0x1b21ef){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x1b21ef);}try{const _0x14f0a3=_0xdf898c=>{_0xdf898c['preventDefault'](),_0xdf898c['clipboardData']['setData']('text/plain',_0x18bb31),_0x287000&&_0xdf898c['clipboardData']['setData']('text/html',_0x287000);};document['addEventListener']('copy',_0x14f0a3);const _0x1ae596=document['execCommand']('copy');document['removeEventListener']('copy',_0x14f0a3);if(_0x1ae596)return!![];}catch(_0x96a24){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x96a24);}try{const _0x19ba72=document['createElement']('textarea');_0x19ba72['value']=_0x18bb31,_0x19ba72['style']['position']='fixed',_0x19ba72['style']['opacity']='0',_0x19ba72['style']['pointerEvents']='none',document['body']['appendChild'](_0x19ba72),_0x19ba72['select']();const _0x3eca1c=document['execCommand']('copy');return document['body']['removeChild'](_0x19ba72),_0x3eca1c;}catch(_0x49b70a){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x49b70a),![];}},'showToast'(_0x179eec,_0x88fcdb='info'){const _0x1905dd=getNextToastId(),_0x5d10fd=document['createElement']('div');_0x5d10fd['className']='toast\x20toast-'+_0x88fcdb,_0x5d10fd['textContent']=_0x179eec,_0x5d10fd['dataset']['toastId']=_0x1905dd,document['body']['appendChild'](_0x5d10fd);const _0x490704=_0x88fcdb==='error'?0x2710:0xbb8,_0x4645c0=setTimeout(()=>{removeToastById(_0x1905dd);},_0x490704),_0x590e35={'id':_0x1905dd,'el':_0x5d10fd,'timeoutId':_0x4645c0};return registerToast(_0x590e35),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5d10fd['classList']['add']('show');});}),_0x1905dd;},'showError'(_0x12da99){console['error'](_0x12da99);const _0x2c1e71=typeof _0x12da99==='string'?_0x12da99:_0x12da99['message']||'An\x20error\x20occurred';this['showToast'](_0x2c1e71,'error');},'showSuccess'(_0x3690c4){this['showToast'](_0x3690c4,'success');},'capitalize'(_0x221af9){if(!_0x221af9)return'';return _0x221af9['charAt'](0x0)['toUpperCase']()+_0x221af9['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3ca005){return escapeHtmlValue(_0x3ca005);},'ansiToHtml'(_0x10094f){if(_0x10094f===null||_0x10094f===undefined)return'';let _0x43a2d8=this['escapeHtml'](_0x10094f);const _0x1c267d={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2c3d3e={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x1f27c9=0x0;return _0x43a2d8=_0x43a2d8['replace'](/\x1b\[([0-9;]*)m/g,(_0x47f662,_0x27a6e9)=>{if(!_0x27a6e9||_0x27a6e9==='0'){const _0x15b7da='</span>'['repeat'](_0x1f27c9);return _0x1f27c9=0x0,_0x15b7da;}const _0x559be9=_0x27a6e9['split'](';'),_0x39e261=[];for(const _0x45dfc0 of _0x559be9){if(_0x45dfc0==='1')_0x39e261['push']('font-weight:bold');else{if(_0x45dfc0==='2')_0x39e261['push']('opacity:0.7');else{if(_0x45dfc0==='3')_0x39e261['push']('font-style:italic');else{if(_0x45dfc0==='4')_0x39e261['push']('text-decoration:underline');else{if(_0x45dfc0==='9')_0x39e261['push']('text-decoration:line-through');else{if(_0x1c267d[_0x45dfc0])_0x39e261['push']('color:'+_0x1c267d[_0x45dfc0]);else{if(_0x2c3d3e[_0x45dfc0])_0x39e261['push']('background-color:'+_0x2c3d3e[_0x45dfc0]);}}}}}}}if(_0x39e261['length']>0x0)return _0x1f27c9++,'<span\x20style=\x22'+_0x39e261['join'](';')+'\x22>';return'';}),_0x43a2d8+='</span>'['repeat'](_0x1f27c9),_0x43a2d8=_0x43a2d8['replace'](/\\u001b\[([0-9;]*)m/g,(_0x453a9f,_0x4fb797)=>{if(!_0x4fb797||_0x4fb797==='0')return'';const _0x31f8be=_0x4fb797['split'](';'),_0x19737a=[];for(const _0x394e4c of _0x31f8be){if(_0x394e4c==='1')_0x19737a['push']('font-weight:bold');else{if(_0x1c267d[_0x394e4c])_0x19737a['push']('color:'+_0x1c267d[_0x394e4c]);else{if(_0x2c3d3e[_0x394e4c])_0x19737a['push']('background-color:'+_0x2c3d3e[_0x394e4c]);}}}if(_0x19737a['length']>0x0)return'<span\x20style=\x22'+_0x19737a['join'](';')+'\x22>';return'';}),_0x43a2d8;},'showModal'({title:_0x205aa4,content:_0x198bcd,buttons:buttons=[]}){const _0x542e07='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x205aa4)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x198bcd+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x5a7b82,_0x3b078e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x5a7b82['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3b078e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x5a7b82['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x259342=document['createElement']('div');_0x259342['id']='utils-modal',_0x259342['className']='modal',_0x259342['innerHTML']=_0x542e07,document['body']['appendChild'](_0x259342);const _0x252dcd=document['getElementById']('utils-modal-close');_0x252dcd&&_0x252dcd['addEventListener']('click',()=>this['hideModal']());const _0xf0d880=_0x259342['querySelectorAll']('[data-btn-index]');_0xf0d880['forEach'](_0x57be92=>{const _0x274d69=parseInt(_0x57be92['dataset']['btnIndex']);buttons[_0x274d69]?.['onClick']&&_0x57be92['addEventListener']('click',buttons[_0x274d69]['onClick']);});const _0x556eeb=document['getElementById']('utils-modal-overlay');_0x556eeb&&_0x556eeb['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x40007e=document['getElementById']('utils-modal');_0x40007e&&_0x40007e['remove']();},'parseKeyValuePairs'(_0x42ec47){const _0x4ce900={};if(!_0x42ec47)return _0x4ce900;return _0x42ec47['split'](/\r?\n/)['map'](_0x2c0150=>_0x2c0150['trim']())['filter'](Boolean)['forEach'](_0xef59fc=>{const _0x56aa0b=_0xef59fc['indexOf']('=');if(_0x56aa0b>0x0){const _0x4073c6=_0xef59fc['slice'](0x0,_0x56aa0b)['trim'](),_0xac2162=_0xef59fc['slice'](_0x56aa0b+0x1)['trim']();if(_0x4073c6)_0x4ce900[_0x4073c6]=_0xac2162;}}),_0x4ce900;},'debounce'(_0x180351,_0x975276=0xfa){let _0x4f1371=null;return(..._0x187e98)=>{clearTimeout(_0x4f1371),_0x4f1371=setTimeout(()=>_0x180351['apply'](this,_0x187e98),_0x975276);};},'formatTimestamp'(_0x1ca4a1){if(!_0x1ca4a1)return'N/A';const _0x1d238d=new Date(_0x1ca4a1);return _0x1d238d['toLocaleDateString']()+'\x20'+_0x1d238d['toLocaleTimeString']();},'getQueryParams'(){const _0x5ef3fa=new URLSearchParams(window['location']['search']),_0xf0ba24={};for(const [_0x319097,_0xae80a7]of _0x5ef3fa){_0xf0ba24[_0x319097]=_0xae80a7;}return _0xf0ba24;},'formatDuration'(_0x10ba81,_0x378176){if(!_0x10ba81)return'N/A';const _0xe7f9ed=new Date(_0x10ba81),_0x28dcd3=_0x378176?new Date(_0x378176):new Date(),_0x2bfbc6=_0x28dcd3-_0xe7f9ed;if(_0x2bfbc6<0x0)return'0s';const _0x56903f=Math['floor'](_0x2bfbc6/0x3e8),_0x331624=Math['floor'](_0x56903f/0x3c),_0x2910b9=Math['floor'](_0x331624/0x3c),_0x1775e2=Math['floor'](_0x2910b9/0x18);if(_0x56903f<0x3c)return _0x56903f+'s';if(_0x331624<0x3c)return _0x331624+'m\x20'+_0x56903f%0x3c+'s';if(_0x2910b9<0x18)return _0x2910b9+'h\x20'+_0x331624%0x3c+'m\x20'+_0x56903f%0x3c+'s';return _0x1775e2+'d\x20'+_0x2910b9%0x18+'h\x20'+_0x331624%0x3c+'m';},'renderMarkdown'(_0x52c577,_0x2b3858={}){if(!_0x52c577)return'';_0x52c577=this['rewriteAttachmentLinks'](_0x52c577,_0x2b3858),_0x52c577=this['rewriteColorSyntax'](_0x52c577);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x52c577);}catch(_0x82ddd9){return console['error']('Markdown\x20parsing\x20error:',_0x82ddd9),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);}},'rewriteAttachmentLinks'(_0x2e860d,_0x529353={}){const _0x2d523a=typeof _0x529353['resolveAttachmentUrl']==='function'?_0x529353['resolveAttachmentUrl']:_0x529353['taskId']?_0x4b513c=>API_BASE+'/tasks/'+_0x529353['taskId']+'/attachments/'+encodeURIComponent(_0x4b513c):null;if(!_0x2d523a)return _0x2e860d;return String(_0x2e860d)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x2cd23d,_0x2f94da)=>{const _0x67ce56=String(_0x2f94da||'')['trim']();if(!_0x67ce56)return _0x2cd23d;let _0x454627=_0x67ce56;try{_0x454627=decodeURIComponent(_0x67ce56);}catch{}const _0x3c96ea=_0x2d523a(_0x454627);if(!_0x3c96ea)return _0x2cd23d;return']('+_0x3c96ea+')';});},'rewriteColorSyntax'(_0x50daef){if(!_0x50daef)return _0x50daef;return String(_0x50daef)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x329a26,_0x453618,_0x454585)=>{const _0x41c7db=this['rewriteColorSyntax'](_0x454585);return'<span\x20style=\x22color:\x20'+_0x453618+'\x22>'+_0x41c7db+'</span>';});},'renderMarkdownFallback'(_0x33b976,_0x1a9dcd={}){if(!_0x33b976)return'';_0x33b976=_0x33b976['replace'](/\r\n/g,'\x0a'),_0x33b976=_0x33b976['replace'](/\r/g,'\x0a'),_0x33b976=this['rewriteAttachmentLinks'](_0x33b976,_0x1a9dcd);let _0xe28d96=this['escapeHtml'](_0x33b976);return _0xe28d96=_0xe28d96['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0xe28d96=_0xe28d96['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0xe28d96=_0xe28d96['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0xe28d96=_0xe28d96['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0xe28d96=_0xe28d96['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0xe28d96=_0xe28d96['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0xe28d96=_0xe28d96['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0xe28d96=_0xe28d96['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0xe28d96=_0xe28d96['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0xe28d96=_0xe28d96['replace'](/\n\n/g,'</p><p>'),_0xe28d96=_0xe28d96['replace'](/\n/g,'<br>'),'<p>'+_0xe28d96+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8b70=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8b70),_0x1a8b70[0x6]=_0x1a8b70[0x6]&0xf|0x40,_0x1a8b70[0x8]=_0x1a8b70[0x8]&0x3f|0x80;const _0x5f3113=Array['from'](_0x1a8b70,_0x3d78fa=>_0x3d78fa['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5f3113['slice'](0x0,0x8)+'-'+_0x5f3113['slice'](0x8,0xc)+'-'+_0x5f3113['slice'](0xc,0x10)+'-'+_0x5f3113['slice'](0x10,0x14)+'-'+_0x5f3113['slice'](0x14);}};export class CustomSelect{constructor(_0xed9135,_0x25e107={}){this['nativeSelect']=_0xed9135,this['options']=_0x25e107,this['isOpen']=![],this['selectedValue']=_0xed9135['value']||'',this['searchable']=_0x25e107['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x586047=document['createElement']('div');_0x586047['className']='custom-select';const _0xef80e8=document['createElement']('div');_0xef80e8['className']='custom-select-trigger',_0xef80e8['setAttribute']('tabindex','0'),_0xef80e8['setAttribute']('role','button'),_0xef80e8['setAttribute']('aria-haspopup','listbox');const _0x602e0e=document['createElement']('span');_0x602e0e['className']='custom-select-trigger-text';const _0x6ef88a=document['createElement']('span');_0x6ef88a['className']='custom-select-arrow',_0x6ef88a['textContent']='▼',_0xef80e8['appendChild'](_0x602e0e),_0xef80e8['appendChild'](_0x6ef88a);const _0x1db61b=document['createElement']('div');_0x1db61b['className']='custom-select-dropdown',_0x1db61b['setAttribute']('role','listbox');if(this['searchable']){const _0x521a55=document['createElement']('div');_0x521a55['className']='custom-select-search';const _0x458e34=document['createElement']('input');_0x458e34['type']='text',_0x458e34['className']='custom-select-search-input',_0x458e34['placeholder']='Type\x20to\x20search...',_0x458e34['setAttribute']('aria-label','Search\x20options'),_0x458e34['addEventListener']('input',_0x30bf8c=>{this['searchQuery']=_0x30bf8c['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x458e34['addEventListener']('keydown',_0x55e031=>{if(_0x55e031['key']==='Escape')_0x55e031['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x55e031['key']==='Enter'){_0x55e031['preventDefault'](),_0x55e031['stopPropagation']();const _0x217481=_0x1db61b['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x217481){const _0x3fc79e=_0x217481['getAttribute']('data-value');this['select'](_0x3fc79e);}}}}),_0x521a55['appendChild'](_0x458e34),_0x1db61b['appendChild'](_0x521a55),this['searchInput']=_0x458e34;}const _0x2df9ba=document['createElement']('div');_0x2df9ba['className']='custom-select-options',_0x1db61b['appendChild'](_0x2df9ba),_0x586047['appendChild'](_0xef80e8),_0x586047['appendChild'](_0x1db61b),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x586047,this['nativeSelect']),this['wrapper']=_0x586047,this['trigger']=_0xef80e8,this['triggerText']=_0x602e0e,this['dropdown']=_0x1db61b,this['optionsContainer']=_0x2df9ba,_0xef80e8['addEventListener']('click',()=>this['toggle']()),_0xef80e8['addEventListener']('keydown',_0x395930=>this['handleKeydown'](_0x395930)),document['addEventListener']('click',_0x17c6b4=>{!_0x586047['contains'](_0x17c6b4['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4464f5=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4464f5['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x57acee=new MutationObserver(()=>{this['updateDisabledState']();});_0x57acee['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xf1fe60=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xf1fe60['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x37df9c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x37df9c),this['trigger']['setAttribute']('aria-disabled',_0x37df9c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x37df9c?'-1':'0'),_0x37df9c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x1c6756=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x377ca8=_0x1c6756['filter'](_0x27b679=>!_0x27b679['disabled']&&!_0x27b679['hidden']);_0x1c6756['forEach']((_0x3a245a,_0x31e76c)=>{const _0x35182f=document['createElement']('div');_0x35182f['className']='custom-select-option',_0x35182f['textContent']=_0x3a245a['textContent'],_0x35182f['setAttribute']('data-value',_0x3a245a['value']),_0x35182f['setAttribute']('data-index',_0x31e76c),_0x35182f['setAttribute']('role','option'),_0x3a245a['disabled']?_0x35182f['classList']['add']('disabled'):_0x35182f['addEventListener']('click',()=>this['select'](_0x3a245a['value'])),_0x3a245a['value']===this['selectedValue']&&_0x35182f['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x35182f),this['allOptions']['push']({'element':_0x35182f,'text':_0x3a245a['textContent']['toLowerCase'](),'value':_0x3a245a['value'],'disabled':_0x3a245a['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3b9207=this['searchInput']['parentElement'];_0x377ca8['length']>0x3?_0x3b9207['style']['display']='':_0x3b9207['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2951b9=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x2cf616=>{if(!_0x2951b9||_0x2cf616['disabled'])_0x2cf616['element']['style']['display']='';else{const _0x467e26=_0x2cf616['text']['includes'](_0x2951b9);_0x2cf616['element']['style']['display']=_0x467e26?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x4f2c00){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x4f2c00,this['nativeSelect']['value']=_0x4f2c00;const _0x20901f=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x20901f),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x505cd3=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x505cd3&&(this['triggerText']['textContent']=_0x505cd3['textContent'],_0x505cd3['disabled']||_0x505cd3['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x285275=>{_0x285275['getAttribute']('data-value')===this['selectedValue']?_0x285275['classList']['add']('selected'):_0x285275['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x4af203=window['getComputedStyle'](this['dropdown']);if(_0x4af203['position']==='fixed'){const _0x40868e=this['trigger']['getBoundingClientRect'](),_0x3d1226=parseInt(_0x4af203['maxHeight'])||0xc8,_0x362012=window['innerHeight'],_0x3f636e=_0x362012-_0x40868e['bottom'],_0x147212=_0x40868e['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x729355;_0x3f636e<_0x3d1226&&_0x147212>_0x3f636e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x362012-_0x40868e['top']+'px',_0x729355=Math['min'](_0x3d1226,_0x147212-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x40868e['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x729355=Math['min'](_0x3d1226,_0x3f636e-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px');if(this['optionsContainer']){let _0x4596fa=_0x729355;if(this['searchInput']){const _0x2c1595=this['searchInput']['parentElement'];_0x2c1595&&(_0x4596fa-=_0x2c1595['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4596fa)+'px';}this['dropdown']['style']['left']=_0x40868e['left']+'px',this['dropdown']['style']['width']=_0x40868e['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x3b47ea=this['searchInput']['parentElement'];_0x3b47ea&&_0x3b47ea['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x309c77){if(this['nativeSelect']['disabled'])return;if(_0x309c77['key']==='Enter'||_0x309c77['key']==='\x20')_0x309c77['preventDefault'](),this['toggle']();else _0x309c77['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x114369='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x114369),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fa50e=document['getElementById']('confirm-dialog-close'),_0x49200f=document['getElementById']('confirm-dialog-cancel'),_0x22f265=document['getElementById']('confirm-dialog-confirm'),_0x48433a=this['_modal']['querySelector']('.modal-overlay');_0x1fa50e['addEventListener']('click',()=>this['_resolve'](![])),_0x49200f['addEventListener']('click',()=>this['_resolve'](![])),_0x22f265['addEventListener']('click',()=>this['_resolve'](!![])),_0x48433a['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x463151=>{if(_0x463151['key']==='Escape')_0x463151['preventDefault'](),this['_resolve'](![]);else _0x463151['key']==='Enter'&&(_0x463151['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x4ee99b,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5120c9=>{this['_resolvePromise']=_0x5120c9,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x4ee99b;const _0x1245c0=document['getElementById']('confirm-dialog-cancel'),_0x410791=document['getElementById']('confirm-dialog-confirm');_0x1245c0['textContent']=cancelText,_0x410791['textContent']=confirmText,_0x410791['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x410791['focus']();});},'_resolve'(_0x40e725){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40e725),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x30e6f9,_0x56589d={}){this['container']=_0x30e6f9,this['options']={'placeholder':_0x56589d['placeholder']||'Type\x20to\x20search...','maxItems':_0x56589d['maxItems']||0x64,'loadItems':_0x56589d['loadItems']||(async()=>[]),'renderItem':_0x56589d['renderItem']||(_0x34174d=>({'primary':String(_0x34174d),'secondary':''})),'onSelect':_0x56589d['onSelect']||(()=>{}),'filterItems':_0x56589d['filterItems']||null,'getItemValue':_0x56589d['getItemValue']||(_0x4932ad=>_0x4932ad),'sortItems':_0x56589d['sortItems']||null,'debounceMs':_0x56589d['debounceMs']||0xc8,'minCharsForSearch':_0x56589d['minCharsForSearch']||0x0,'emptyMessage':_0x56589d['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x56589d['loadingMessage']||'Loading...','preload':_0x56589d['preload']!==![],'searchMode':_0x56589d['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x42eac9=>this['onBlur'](_0x42eac9)),this['input']['addEventListener']('input',_0x2d0072=>this['onInput'](_0x2d0072)),this['input']['addEventListener']('keydown',_0x2b4541=>this['onKeydown'](_0x2b4541)),this['clearBtn']['addEventListener']('mousedown',_0x52b4be=>{_0x52b4be['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x2ef3b1=>{_0x2ef3b1['preventDefault']();}),document['addEventListener']('click',_0x5c5a26=>{!this['wrapper']['contains'](_0x5c5a26['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x2aaefa){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x2aaefa);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x1191e8){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x21e2ba){const _0x4f8664=_0x21e2ba['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4f8664);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4f8664):this['loadAndShow'](_0x4f8664);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x24f7c0){switch(_0x24f7c0['key']){case'ArrowDown':_0x24f7c0['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x24f7c0['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x24f7c0['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x24f7c0['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2f71c3){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3500=this['selectedIndex']+_0x2f71c3;if(_0x1a3500>=0x0&&_0x1a3500<this['filteredItems']['length']){this['selectedIndex']=_0x1a3500,this['updateSelectionHighlight']();const _0x25c747=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x25c747[this['selectedIndex']]&&_0x25c747[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1353a5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1353a5['forEach']((_0x319289,_0x365bb0)=>{_0x319289['classList']['toggle']('keyboard-selected',_0x365bb0===this['selectedIndex']);});}async['loadAndShow'](_0x3e4cb0){this['showLoading']();try{const _0x32ed23=await this['options']['loadItems'](_0x3e4cb0);if(this['options']['searchMode']==='server'){let _0x2cd123=_0x32ed23;this['options']['sortItems']&&(_0x2cd123=this['options']['sortItems']([..._0x32ed23]));this['filteredItems']=_0x2cd123;const _0x52ccad=this['filteredItems']['length']>=this['options']['maxItems'];_0x52ccad&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x52ccad),this['open']();}else this['allItems']=_0x32ed23,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x3e4cb0);}catch(_0x62ebd1){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x62ebd1),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x5ca140){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x5ca140):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x24b99b=this['filteredItems']['length']>=this['options']['maxItems'];_0x24b99b&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x24b99b),this['open']();}['renderItems'](_0xb21a23){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x4039ba,_0x534c5c)=>{const _0x492e31=document['createElement']('div');_0x492e31['className']='autocomplete-select-item',_0x492e31['setAttribute']('role','option'),_0x492e31['setAttribute']('data-index',_0x534c5c);const _0x311b19=this['options']['renderItem'](_0x4039ba);let _0x18aefc='';_0x311b19['icon']&&(_0x18aefc='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x311b19['iconClass']||'')+'\x22>'+_0x311b19['icon']+'</span>'),_0x492e31['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x18aefc+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x311b19['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x311b19['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x311b19['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x492e31['addEventListener']('click',()=>{this['selectItem'](_0x4039ba);}),_0x492e31['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x534c5c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x492e31);}),_0xb21a23?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x3cb7a4){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x3cb7a4)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2e1095){this['selectedItem']=_0x2e1095;const _0x4d3636=this['options']['renderItem'](_0x2e1095);this['input']['value']=_0x4d3636['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2e1095);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x2831d9){if(_0x2831d9){this['selectedItem']=_0x2831d9;const _0x550b7a=this['options']['renderItem'](_0x2831d9);this['input']['value']=_0x550b7a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x68c1ba){this['allItems']=_0x68c1ba,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x57ccc1){this['input']['placeholder']=_0x57ccc1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4c2eef=null){const _0x46cc7a=document['getElementById']('admin-menu-container'),_0x5d0cdb=document['getElementById']('admin-menu-btn'),_0x4f3c51=document['getElementById']('admin-menu');if(!_0x46cc7a||!_0x5d0cdb||!_0x4f3c51)return;try{!_0x4c2eef&&(_0x4c2eef=await API['getCurrentUser']());if(_0x4c2eef){const _0x47a494=window['Permissions'],_0x3e87ca=_0x47a494['hasServerPermission'](_0x4c2eef,'*')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:manage')||_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')||_0x47a494['hasTeamPermission'](_0x4c2eef,'teams:manage')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:view_details');if(!_0x3e87ca)return;_0x46cc7a['hidden']=![];if(!_0x47a494['hasServerPermission'](_0x4c2eef,'*')){const _0x261545=_0x4f3c51['querySelectorAll']('.admin-menu-item');_0x261545['forEach'](_0x30dfc4=>{const _0x4759e1=_0x30dfc4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x4759e1==='Users'&&!_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Skills'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Settings'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Administration'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Git\x20History'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Roles'&&(_0x30dfc4['hidden']=!![]);});}_0x5d0cdb['addEventListener']('click',_0x2a3816=>{_0x2a3816['stopPropagation']();const _0x5290cc=document['getElementById']('actions-menu');if(_0x5290cc)_0x5290cc['hidden']=!![];_0x4f3c51['hidden']=!_0x4f3c51['hidden'];}),document['addEventListener']('click',_0x363a39=>{!_0x4f3c51['hidden']&&!_0x5d0cdb['contains'](_0x363a39['target'])&&!_0x4f3c51['contains'](_0x363a39['target'])&&(_0x4f3c51['hidden']=!![]);}),document['addEventListener']('keydown',_0x22c2aa=>{_0x22c2aa['key']==='Escape'&&!_0x4f3c51['hidden']&&(_0x4f3c51['hidden']=!![]);});}}catch(_0x460654){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x460654['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};