@profoundlogic/coderflow-server 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.js +1 -1
  142. package/dist/web-ui/public/agent-event-parser.js +1 -1
  143. package/dist/web-ui/public/app.js +1 -1
  144. package/dist/web-ui/public/approve-dialog.js +1 -1
  145. package/dist/web-ui/public/automation-links.js +1 -1
  146. package/dist/web-ui/public/automation-schedule.js +1 -1
  147. package/dist/web-ui/public/comments-widget.js +1 -1
  148. package/dist/web-ui/public/diff-utils.js +1 -1
  149. package/dist/web-ui/public/environments.js +1 -1
  150. package/dist/web-ui/public/feedback-widget.js +1 -1
  151. package/dist/web-ui/public/file-selection-tree.js +1 -1
  152. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  153. package/dist/web-ui/public/git-history.js +1 -1
  154. package/dist/web-ui/public/git-status.js +1 -1
  155. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  156. package/dist/web-ui/public/index.js +1 -1
  157. package/dist/web-ui/public/login.js +1 -1
  158. package/dist/web-ui/public/markdown-editor.js +1 -1
  159. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  160. package/dist/web-ui/public/modal-maximize.js +1 -1
  161. package/dist/web-ui/public/notifications.js +1 -1
  162. package/dist/web-ui/public/permissions.js +1 -1
  163. package/dist/web-ui/public/pr-dialog.js +1 -1
  164. package/dist/web-ui/public/roles.js +1 -1
  165. package/dist/web-ui/public/settings.js +1 -1
  166. package/dist/web-ui/public/setup-password.js +1 -1
  167. package/dist/web-ui/public/skills.js +1 -1
  168. package/dist/web-ui/public/sse-client.js +1 -1
  169. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  170. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  171. package/dist/web-ui/public/task.js +1 -1
  172. package/dist/web-ui/public/teams.js +1 -1
  173. package/dist/web-ui/public/terminal.js +1 -1
  174. package/dist/web-ui/public/theme.js +1 -1
  175. package/dist/web-ui/public/users.js +1 -1
  176. package/dist/web-ui/public/variant-grouping.js +1 -1
  177. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0xfb7b6e=window['location']['pathname'],_0x10929e=_0xfb7b6e['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x10929e)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x10929e[0x1]),_0x10929e[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2b5223={}){const _0x5152d2=new URLSearchParams();_0x2b5223['userId']&&_0x5152d2['set']('userId',String(_0x2b5223['userId']));_0x2b5223['automation']&&_0x5152d2['set']('automation',String(_0x2b5223['automation']));const _0xca9161=API_BASE+'/tasks/stats'+(_0x5152d2['toString']()?'?'+_0x5152d2['toString']():''),_0x2077c2=await fetch(_0xca9161);if(!_0x2077c2['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x2077c2['statusText']);return await _0x2077c2['json']();},async 'getTasks'(_0x274c62={}){const _0x3bcea5=new URLSearchParams();_0x274c62['status']&&_0x3bcea5['set']('status',String(_0x274c62['status']));_0x274c62['environment']&&_0x3bcea5['set']('environment',String(_0x274c62['environment']));_0x274c62['automation']&&_0x3bcea5['set']('automation',String(_0x274c62['automation']));if(_0x274c62['include']){const _0x195a07=Array['isArray'](_0x274c62['include'])?_0x274c62['include']['join'](','):String(_0x274c62['include']);_0x195a07&&_0x3bcea5['set']('include',_0x195a07);}_0x274c62['filter']&&_0x3bcea5['set']('filter',String(_0x274c62['filter']));_0x274c62['page']&&_0x3bcea5['set']('page',String(_0x274c62['page']));_0x274c62['limit']&&_0x3bcea5['set']('limit',String(_0x274c62['limit']));_0x274c62['userId']&&_0x3bcea5['set']('userId',String(_0x274c62['userId']));_0x274c62['search']&&_0x3bcea5['set']('search',String(_0x274c62['search']));_0x274c62['includeChildTasks']&&_0x3bcea5['set']('includeChildTasks','true');const _0x334449=API_BASE+'/tasks'+(_0x3bcea5['toString']()?'?'+_0x3bcea5['toString']():''),_0x3660d8=await fetch(_0x334449);if(!_0x3660d8['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x3660d8['statusText']);return await _0x3660d8['json']();},async 'getAutomations'(_0x4056ce={}){const _0x45a906=new URLSearchParams();_0x4056ce['environment']&&_0x45a906['set']('environment',String(_0x4056ce['environment']));const _0x5d380e=await fetch(API_BASE+'/api/automations'+(_0x45a906['toString']()?'?'+_0x45a906['toString']():''));if(!_0x5d380e['ok']){const _0x217b0c=await _0x5d380e['json']()['catch'](()=>({}));throw new Error(_0x217b0c['message']||_0x217b0c['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x5d380e['statusText']);}return await _0x5d380e['json']();},async 'getAutomation'(_0x3af91b){const _0x52a0b8=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3af91b));if(!_0x52a0b8['ok']){const _0x3a3891=await _0x52a0b8['json']()['catch'](()=>({}));throw new Error(_0x3a3891['message']||_0x3a3891['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x52a0b8['statusText']);}return await _0x52a0b8['json']();},async 'createAutomation'(_0x5625d5){const _0x2b1aa4=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5625d5||{})});if(!_0x2b1aa4['ok']){const _0x485fc8=await _0x2b1aa4['json']()['catch'](()=>({}));throw new Error(_0x485fc8['message']||_0x485fc8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x2b1aa4['statusText']);}return await _0x2b1aa4['json']();},async 'updateAutomation'(_0x1436a7,_0x4a4249){const _0x242749=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1436a7),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4a4249||{})});if(!_0x242749['ok']){const _0x20858a=await _0x242749['json']()['catch'](()=>({}));throw new Error(_0x20858a['message']||_0x20858a['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x242749['statusText']);}return await _0x242749['json']();},async 'deleteAutomation'(_0x3f6e2d){const _0x1f9db3=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3f6e2d),{'method':'DELETE'});if(!_0x1f9db3['ok']){const _0x27ece8=await _0x1f9db3['json']()['catch'](()=>({}));throw new Error(_0x27ece8['message']||_0x27ece8['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x1f9db3['statusText']);}return await _0x1f9db3['json']();},async 'triggerAutomation'(_0x25697c){const _0x52b74d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x25697c)+'/trigger',{'method':'POST'});if(!_0x52b74d['ok']){const _0x45bc0b=await _0x52b74d['json']()['catch'](()=>({}));throw new Error(_0x45bc0b['message']||_0x45bc0b['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x52b74d['statusText']);}return await _0x52b74d['json']();},async 'setAutomationEnabled'(_0x4fb7ea,_0x4bf6c5){const _0x419d8a=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4fb7ea)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x4bf6c5})});if(!_0x419d8a['ok']){const _0x548b13=await _0x419d8a['json']()['catch'](()=>({}));throw new Error(_0x548b13['message']||_0x548b13['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x419d8a['statusText']);}return await _0x419d8a['json']();},async 'getAutomationHistory'(_0x303de8,_0x477771=0x32){const _0x57dd0b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x303de8)+'/history?limit='+encodeURIComponent(String(_0x477771)));if(!_0x57dd0b['ok']){const _0x517dde=await _0x57dd0b['json']()['catch'](()=>({}));throw new Error(_0x517dde['message']||_0x517dde['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x57dd0b['statusText']);}return await _0x57dd0b['json']();},async 'getTask'(_0x11062f,_0x1d2f12={}){const _0x415e99=new URLSearchParams();if(_0x1d2f12['include']){const _0xaac307=Array['isArray'](_0x1d2f12['include'])?_0x1d2f12['include']['join'](','):String(_0x1d2f12['include']);if(_0xaac307)_0x415e99['set']('include',_0xaac307);}const _0x2c261f=await fetch(API_BASE+'/tasks/'+_0x11062f+(_0x415e99['toString']()?'?'+_0x415e99['toString']():''));if(!_0x2c261f['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x2c261f['statusText']);return await _0x2c261f['json']();},async 'getTaskResults'(_0x1172da){const _0x5d0676=await fetch(API_BASE+'/tasks/'+_0x1172da+'/results');if(!_0x5d0676['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x5d0676['statusText']);return await _0x5d0676['json']();},async 'getTaskPatches'(_0x29becd){const _0x5cd6b1=await fetch(API_BASE+'/tasks/'+_0x29becd+'/patches');if(!_0x5cd6b1['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x5cd6b1['statusText']);return await _0x5cd6b1['json']();},async 'getTaskAttachments'(_0x358514){const _0x3215c3=await fetch(API_BASE+'/tasks/'+_0x358514+'/attachments');if(!_0x3215c3['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x3215c3['statusText']);return await _0x3215c3['json']();},async 'uploadAttachments'(_0x5e5a8a,_0x44b932){const _0x5459fc=new FormData();for(const _0x562345 of _0x44b932){_0x5459fc['append']('attachments',_0x562345);}const _0x21c174=await fetch(API_BASE+'/tasks/'+_0x5e5a8a+'/attachments',{'method':'POST','body':_0x5459fc});if(!_0x21c174['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x21c174['statusText']);return await _0x21c174['json']();},async 'isAINameGenerationAvailable'(){try{const _0x5cb20c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x5cb20c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x5cb20c['json']();}catch(_0x36ac7e){return{'available':![],'reason':_0x36ac7e['message']};}},async 'generateTaskName'(_0x324614){try{const _0x223fe6=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x324614})});return await _0x223fe6['json']();}catch(_0x326303){return{'success':![],'error':_0x326303['message']};}},async 'createTask'(_0x21ae26){let _0x1f8caf,_0x5180b3={};if(_0x21ae26['files']&&_0x21ae26['files']['length']>0x0){const _0x3eb5b9=new FormData();for(const [_0x28f374,_0x24eb85]of Object['entries'](_0x21ae26)){if(_0x28f374!=='files'){if(_0x24eb85==null)continue;typeof _0x24eb85==='object'?_0x3eb5b9['append'](_0x28f374,JSON['stringify'](_0x24eb85)):_0x3eb5b9['append'](_0x28f374,String(_0x24eb85));}}for(const _0x1ed4b4 of _0x21ae26['files']){_0x3eb5b9['append']('attachments',_0x1ed4b4);}_0x1f8caf=_0x3eb5b9;}else _0x5180b3['Content-Type']='application/json',_0x1f8caf=JSON['stringify'](_0x21ae26);const _0x1a2df1=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x5180b3,'body':_0x1f8caf});if(!_0x1a2df1['ok']){const _0x30de75=await _0x1a2df1['json'](),_0x19a655=new Error(_0x30de75['error']||'Failed\x20to\x20create\x20task:\x20'+_0x1a2df1['statusText']),{message:_0x30aecb,..._0x4c0195}=_0x30de75;Object['assign'](_0x19a655,_0x4c0195);throw _0x19a655;}return await _0x1a2df1['json']();},async 'createTestTask'(_0x3b4fa3){const _0x29d177=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b4fa3)});if(!_0x29d177['ok']){const _0xb53e4f=await _0x29d177['json']();throw new Error(_0xb53e4f['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x29d177['statusText']);}return await _0x29d177['json']();},async 'createEphemeralTest'(_0x46fe72){const _0x93e6d9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46fe72)});if(!_0x93e6d9['ok']){const _0x3e50ea=await _0x93e6d9['json']();throw new Error(_0x3e50ea['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x93e6d9['statusText']);}return await _0x93e6d9['json']();},async 'createDeployTask'(_0xd45808){const _0x325fbf=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xd45808)});if(!_0x325fbf['ok']){const _0x27c24a=await _0x325fbf['json']();throw new Error(_0x27c24a['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x325fbf['statusText']);}return await _0x325fbf['json']();},async 'getEnvironments'(){const _0x436a56=await fetch(API_BASE+'/environments');if(!_0x436a56['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x436a56['statusText']);return await _0x436a56['json']();},async 'getEnvironment'(_0x440c82){const _0x16ff5e=await fetch(API_BASE+'/environments/'+_0x440c82);if(!_0x16ff5e['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x16ff5e['statusText']);return await _0x16ff5e['json']();},async 'getEnvironmentRepoHistory'(_0x378561,_0x506bcd,_0x552795={}){if(!_0x378561||!_0x506bcd)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2a28f8=new URLSearchParams();if(_0x552795['limit'])_0x2a28f8['set']('limit',String(_0x552795['limit']));if(_0x552795['offset'])_0x2a28f8['set']('offset',String(_0x552795['offset']));if(_0x552795['search'])_0x2a28f8['set']('search',String(_0x552795['search']));if(_0x552795['branch'])_0x2a28f8['set']('branch',String(_0x552795['branch']));const _0x2f925b=API_BASE+'/environments/'+encodeURIComponent(_0x378561)+'/repos/'+encodeURIComponent(_0x506bcd)+'/git/history',_0x45132c=await fetch(''+_0x2f925b+(_0x2a28f8['toString']()?'?'+_0x2a28f8['toString']():''));if(!_0x45132c['ok']){const _0x1174ea=await _0x45132c['json']()['catch'](()=>({}));throw new Error(_0x1174ea['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45132c['statusText']);}return await _0x45132c['json']();},async 'getEnvironmentRepoCommit'(_0xf57b4f,_0x396dc7,_0x5ee79c){if(!_0xf57b4f||!_0x396dc7||!_0x5ee79c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x19fe6e=API_BASE+'/environments/'+encodeURIComponent(_0xf57b4f)+'/repos/'+encodeURIComponent(_0x396dc7)+'/git/commits/'+encodeURIComponent(_0x5ee79c),_0x19f362=await fetch(_0x19fe6e);if(!_0x19f362['ok']){const _0x1cb463=await _0x19f362['json']()['catch'](()=>({}));throw new Error(_0x1cb463['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x19f362['statusText']);}return await _0x19f362['json']();},async 'getEnvironmentRepoBranches'(_0x3d22af,_0x5f51af){if(!_0x3d22af||!_0x5f51af)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2d5bf5=API_BASE+'/environments/'+encodeURIComponent(_0x3d22af)+'/repos/'+encodeURIComponent(_0x5f51af)+'/git/branches',_0xdb2c22=await fetch(_0x2d5bf5);if(!_0xdb2c22['ok']){const _0x4d7ca0=await _0xdb2c22['json']()['catch'](()=>({}));throw new Error(_0x4d7ca0['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0xdb2c22['statusText']);}return await _0xdb2c22['json']();},async 'revertEnvironmentRepoCommit'(_0x3ea476,_0x4dcfd5,_0x2df76c,_0x29748b={}){if(!_0x3ea476||!_0x4dcfd5||!_0x2df76c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x15943d=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x3ea476)+'/repos/'+encodeURIComponent(_0x4dcfd5)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2df76c,..._0x29748b})});if(!_0x15943d['ok']){const _0x4694cf=await _0x15943d['json']()['catch'](()=>({}));throw new Error(_0x4694cf['message']||_0x4694cf['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x15943d['statusText']);}return await _0x15943d['json']();},async 'getTemplates'(_0x4543fe={}){const _0xf9850c=new URLSearchParams();if(_0x4543fe['include']){const _0xf54944=Array['isArray'](_0x4543fe['include'])?_0x4543fe['include']['join'](','):String(_0x4543fe['include']);if(_0xf54944)_0xf9850c['set']('include',_0xf54944);}const _0x47d5bd=await fetch(API_BASE+'/templates'+(_0xf9850c['toString']()?'?'+_0xf9850c['toString']():''));if(!_0x47d5bd['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x47d5bd['statusText']);return await _0x47d5bd['json']();},async 'getTemplatesForEnvironment'(_0x404835,_0x2fd04f={}){if(!_0x404835)throw new Error('Environment\x20name\x20is\x20required');const _0x2ade78=new URLSearchParams();if(_0x2fd04f['include']){const _0x5b0ed7=Array['isArray'](_0x2fd04f['include'])?_0x2fd04f['include']['join'](','):String(_0x2fd04f['include']);if(_0x5b0ed7)_0x2ade78['set']('include',_0x5b0ed7);}const _0x14c75b=await fetch(API_BASE+'/templates/'+_0x404835+(_0x2ade78['toString']()?'?'+_0x2ade78['toString']():''));if(!_0x14c75b['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x404835+':\x20'+_0x14c75b['statusText']);return await _0x14c75b['json']();},async 'getTemplate'(_0x4f7fad,_0xd3ebc8,_0x3a6276={}){if(!_0x4f7fad||!_0xd3ebc8)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x4f6985=new URLSearchParams();if(_0x3a6276['include']){const _0x473064=Array['isArray'](_0x3a6276['include'])?_0x3a6276['include']['join'](','):String(_0x3a6276['include']);if(_0x473064)_0x4f6985['set']('include',_0x473064);}const _0x20c836=await fetch(API_BASE+'/templates/'+_0x4f7fad+'/'+_0xd3ebc8+(_0x4f6985['toString']()?'?'+_0x4f6985['toString']():''));if(!_0x20c836['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x20c836['statusText']);return await _0x20c836['json']();},async 'getTaskLogs'(_0x37f95e,_0x256826={}){if(!_0x37f95e)throw new Error('Task\x20ID\x20is\x20required');const _0x59cd10=new URLSearchParams();_0x256826['tail']&&_0x59cd10['set']('tail',String(_0x256826['tail']));const _0x4c43c8=await fetch(API_BASE+'/tasks/'+_0x37f95e+'/logs'+(_0x59cd10['toString']()?'?'+_0x59cd10['toString']():''));if(!_0x4c43c8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x4c43c8['statusText']);return await _0x4c43c8['text']();},async 'getContainers'(){const _0x5af201=await fetch(API_BASE+'/containers');if(!_0x5af201['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x5af201['statusText']);return await _0x5af201['json']();},async 'getContainer'(_0x277557){const _0x150288=await fetch(API_BASE+'/containers/'+_0x277557);if(!_0x150288['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x150288['statusText']);return await _0x150288['json']();},async 'startInteractiveContainer'(_0x11f179){const _0x9d59ae=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x11f179)});if(!_0x9d59ae['ok']){const _0x109bfa=await _0x9d59ae['json']()['catch'](()=>({}));throw new Error(_0x109bfa['message']||'Failed\x20to\x20start\x20container:\x20'+_0x9d59ae['statusText']);}return await _0x9d59ae['json']();},async 'startContainerCodeServer'(_0x393ab8,_0x29238c={}){if(!_0x393ab8)throw new Error('Container\x20ID\x20is\x20required');const _0x477cf2=new URLSearchParams();_0x29238c['theme']&&_0x477cf2['set']('theme',_0x29238c['theme']);const _0x3227f8=await fetch(API_BASE+'/containers/'+_0x393ab8+'/code-server'+(_0x477cf2['toString']()?'?'+_0x477cf2['toString']():'')),_0x518acd=await _0x3227f8['json']()['catch'](()=>({}));if(!_0x3227f8['ok'])throw new Error(_0x518acd['message']||_0x518acd['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3227f8['statusText']);return _0x518acd;},async 'stopContainer'(_0x21668a){const _0x5d25f4=await fetch(API_BASE+'/containers/'+_0x21668a,{'method':'DELETE'});if(!_0x5d25f4['ok']){const _0x32f083=await _0x5d25f4['json']()['catch'](()=>({}));throw new Error(_0x32f083['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x5d25f4['statusText']);}return await _0x5d25f4['json']();},async 'stopTask'(_0x859ab4){if(!_0x859ab4)throw new Error('Task\x20ID\x20is\x20required');const _0x5432d6=await fetch(API_BASE+'/tasks/'+_0x859ab4+'/stop',{'method':'POST'});if(!_0x5432d6['ok']){const _0x57ab62=await _0x5432d6['json']()['catch'](()=>({}));throw new Error(_0x57ab62['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x5432d6['statusText']);}return await _0x5432d6['json']();},async 'interruptTask'(_0x26e9ff){if(!_0x26e9ff)throw new Error('Task\x20ID\x20is\x20required');const _0x2eff78=await fetch(API_BASE+'/tasks/'+_0x26e9ff+'/interrupt',{'method':'POST'});if(!_0x2eff78['ok']){const _0x13f920=await _0x2eff78['json']()['catch'](()=>({}));throw new Error(_0x13f920['error']||_0x13f920['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2eff78['statusText']);}return await _0x2eff78['json']();},async 'startTask'(_0x4f49e9){if(!_0x4f49e9)throw new Error('Task\x20ID\x20is\x20required');const _0x4d9d91=await fetch(API_BASE+'/tasks/'+_0x4f49e9+'/start',{'method':'POST'});if(!_0x4d9d91['ok']){const _0x5e9883=await _0x4d9d91['json']()['catch'](()=>({}));throw new Error(_0x5e9883['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4d9d91['statusText']);}return await _0x4d9d91['json']();},async 'deleteTask'(_0x1a3b41){if(!_0x1a3b41)throw new Error('Task\x20ID\x20is\x20required');const _0x7ae8f=await fetch(API_BASE+'/tasks/'+_0x1a3b41,{'method':'DELETE'});if(!_0x7ae8f['ok']){const _0x48df12=await _0x7ae8f['json']()['catch'](()=>({}));throw new Error(_0x48df12['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x7ae8f['statusText']);}return await _0x7ae8f['json']();},async 'refreshTasksFromDisk'(){const _0x5cc3a2=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x5cc3a2['ok']){const _0x48a223=await _0x5cc3a2['json']()['catch'](()=>({}));throw new Error(_0x48a223['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x5cc3a2['statusText']);}return await _0x5cc3a2['json']();},async 'approveTask'(_0x1ab42b,_0x5b56d2={}){if(!_0x1ab42b)throw new Error('Task\x20ID\x20is\x20required');const _0x40e09d={'commit_message':_0x5b56d2['commit_message']||'','pull':_0x5b56d2['pull']??![],'push':_0x5b56d2['push']??![],'conflict_strategy':_0x5b56d2['conflict_strategy']||'rebase'};_0x5b56d2['new_branch']&&(_0x40e09d['new_branch']=_0x5b56d2['new_branch']);const _0x468b0=await fetch(API_BASE+'/tasks/'+_0x1ab42b+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x40e09d)});if(!_0x468b0['ok']){const _0x19dbb1=await _0x468b0['json']()['catch'](()=>({}));let _0x3f6264=_0x19dbb1['error']||_0x19dbb1['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x468b0['statusText'];if(_0x19dbb1['results']&&Array['isArray'](_0x19dbb1['results'])){const _0x306c0e=_0x19dbb1['results']['filter'](_0x15df27=>!_0x15df27['success']&&_0x15df27['error']);_0x306c0e['length']>0x0&&(_0x3f6264=_0x306c0e[0x0]['error']);}const _0x2fe70e=new Error(_0x3f6264);_0x2fe70e['hasConflicts']=_0x19dbb1['results']?.['some'](_0xc569d2=>_0xc569d2['conflict'])||![];throw _0x2fe70e;}return await _0x468b0['json']();},async 'getPullRequestInfo'(_0xd792a7){if(!_0xd792a7)throw new Error('Task\x20ID\x20is\x20required');const _0x4bd1b1=await fetch(API_BASE+'/tasks/'+_0xd792a7+'/pull-request-info');if(!_0x4bd1b1['ok']){const _0x129b6a=await _0x4bd1b1['json']()['catch'](()=>({}));throw new Error(_0x129b6a['error']||_0x129b6a['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4bd1b1['statusText']);}return await _0x4bd1b1['json']();},async 'createPullRequests'(_0x4c7044,_0x65af82){if(!_0x4c7044)throw new Error('Task\x20ID\x20is\x20required');if(!_0x65af82||!Array['isArray'](_0x65af82))throw new Error('repos\x20array\x20is\x20required');const _0x423981=await fetch(API_BASE+'/tasks/'+_0x4c7044+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x65af82})});if(!_0x423981['ok']){const _0x2d64a4=await _0x423981['json']()['catch'](()=>({}));let _0x1a8169=_0x2d64a4['error']||_0x2d64a4['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x423981['statusText'];if(_0x2d64a4['results']&&Array['isArray'](_0x2d64a4['results'])){const _0x4ef1fb=_0x2d64a4['results']['filter'](_0x4fd694=>!_0x4fd694['success']&&_0x4fd694['error']);_0x4ef1fb['length']>0x0&&(_0x1a8169=_0x4ef1fb[0x0]['error']);}throw new Error(_0x1a8169);}return await _0x423981['json']();},async 'syncRepos'(_0x390fc2){if(!_0x390fc2)throw new Error('Task\x20ID\x20is\x20required');const _0x4b310e=await fetch(API_BASE+'/tasks/'+_0x390fc2+'/sync-repos',{'method':'POST'});if(!_0x4b310e['ok']){const _0x1c9e0a=await _0x4b310e['json']()['catch'](()=>({}));throw new Error(_0x1c9e0a['error']||_0x1c9e0a['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x4b310e['statusText']);}return await _0x4b310e['json']();},async 'getIbmiSyncInfo'(_0x37839a){if(!_0x37839a)throw new Error('Task\x20ID\x20is\x20required');const _0x43103b=await fetch(API_BASE+'/tasks/'+_0x37839a+'/ibmi-sync-info');if(!_0x43103b['ok']){const _0x50fea1=await _0x43103b['json']()['catch'](()=>({}));throw new Error(_0x50fea1['error']||_0x50fea1['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x43103b['json']();},async 'getSyncFiles'(_0x3c97f2){if(!_0x3c97f2)throw new Error('Task\x20ID\x20is\x20required');const _0x52e625=await fetch(API_BASE+'/tasks/'+_0x3c97f2+'/sync-to-ibmi/files');if(!_0x52e625['ok']){const _0x5aba4f=await _0x52e625['json']()['catch'](()=>({}));throw new Error(_0x5aba4f['error']||_0x5aba4f['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x52e625['json']();},async 'syncToIbmi'(_0xc02062,_0x14a9d6,_0x17724d=null,_0x432104=null,_0x207d87=null){if(!_0xc02062)throw new Error('Task\x20ID\x20is\x20required');const _0x3ab9be={'library':_0x14a9d6};if(_0x17724d)_0x3ab9be['user']=_0x17724d;if(_0x432104)_0x3ab9be['password']=_0x432104;if(_0x207d87)_0x3ab9be['files']=_0x207d87;const _0x499dad=await fetch(API_BASE+'/tasks/'+_0xc02062+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ab9be)});if(!_0x499dad['ok']){const _0x2d93f1=await _0x499dad['json']()['catch'](()=>({}));throw new Error(_0x2d93f1['error']||_0x2d93f1['message']||'Sync\x20failed');}return await _0x499dad['json']();},async 'getIbmiSyncLog'(_0xbc09f2){if(!_0xbc09f2)throw new Error('Task\x20ID\x20is\x20required');const _0x2bde21=await fetch(API_BASE+'/tasks/'+_0xbc09f2+'/ibmi-sync-log');if(!_0x2bde21['ok']){const _0xc3eb7b=await _0x2bde21['json']()['catch'](()=>({}));throw new Error(_0xc3eb7b['error']||_0xc3eb7b['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x2bde21['json']();},async 'pullChanges'(_0x4acbd7){if(!_0x4acbd7)throw new Error('Task\x20ID\x20is\x20required');const _0x217ab4=await fetch(API_BASE+'/tasks/'+_0x4acbd7+'/pull-changes',{'method':'POST'});if(!_0x217ab4['ok']){const _0xcc3220=await _0x217ab4['json']()['catch'](()=>({}));throw new Error(_0xcc3220['error']||_0xcc3220['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x217ab4['statusText']);}return await _0x217ab4['json']();},async 'readFile'(_0x326c57,_0xc3b7c2){if(!_0x326c57)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc3b7c2)throw new Error('File\x20path\x20is\x20required');const _0x5cc736=await fetch(API_BASE+'/tasks/'+_0x326c57+'/files?path='+encodeURIComponent(_0xc3b7c2));if(!_0x5cc736['ok']){const _0x58afd8=await _0x5cc736['json']()['catch'](()=>({}));throw new Error(_0x58afd8['error']||_0x58afd8['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5cc736['statusText']);}return await _0x5cc736['json']();},'getTaskFileDownloadUrl'(_0xebb11e,_0x5bc19f){if(!_0xebb11e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5bc19f)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0xebb11e+'/files/download?path='+encodeURIComponent(_0x5bc19f);},async 'writeFile'(_0x1844c8,_0x392f4a,_0x2b0f02){if(!_0x1844c8)throw new Error('Task\x20ID\x20is\x20required');if(!_0x392f4a)throw new Error('File\x20path\x20is\x20required');if(_0x2b0f02===undefined)throw new Error('Content\x20is\x20required');const _0x4ec337=await fetch(API_BASE+'/tasks/'+_0x1844c8+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x392f4a,'content':_0x2b0f02})});if(!_0x4ec337['ok']){const _0xdfd098=await _0x4ec337['json']()['catch'](()=>({}));throw new Error(_0xdfd098['error']||_0xdfd098['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4ec337['statusText']);}return await _0x4ec337['json']();},async 'uploadTaskFiles'(_0xd7a97a,_0x394a0b,_0x4f35bd){if(!_0xd7a97a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x394a0b)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4f35bd||_0x4f35bd['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x5d7272=new FormData();_0x5d7272['append']('targetDir',_0x394a0b);for(const _0x4722a5 of _0x4f35bd){_0x5d7272['append']('files',_0x4722a5,_0x4722a5['name']);}const _0x374271=await fetch(API_BASE+'/tasks/'+_0xd7a97a+'/files/upload',{'method':'POST','body':_0x5d7272});if(!_0x374271['ok']){const _0x4a7b1c=await _0x374271['json']()['catch'](()=>({}));throw new Error(_0x4a7b1c['error']||_0x4a7b1c['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x374271['statusText']);}return await _0x374271['json']();},async 'createDirectory'(_0x14a2d8,_0x5ec86f){if(!_0x14a2d8)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ec86f)throw new Error('Directory\x20path\x20is\x20required');const _0x1c7459=await fetch(API_BASE+'/tasks/'+_0x14a2d8+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x5ec86f})});if(!_0x1c7459['ok']){const _0x96c722=await _0x1c7459['json']()['catch'](()=>({}));throw new Error(_0x96c722['error']||_0x96c722['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x1c7459['statusText']);}return await _0x1c7459['json']();},async 'renamePath'(_0x32f883,_0x1269ac,_0x291217){if(!_0x32f883)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1269ac)throw new Error('Source\x20path\x20is\x20required');if(!_0x291217)throw new Error('Destination\x20path\x20is\x20required');const _0x1c22e8=await fetch(API_BASE+'/tasks/'+_0x32f883+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x1269ac,'newPath':_0x291217})});if(!_0x1c22e8['ok']){const _0x5a8aaf=await _0x1c22e8['json']()['catch'](()=>({}));throw new Error(_0x5a8aaf['error']||_0x5a8aaf['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x1c22e8['statusText']);}return await _0x1c22e8['json']();},async 'deleteFile'(_0x1d2b41,_0x181fa0){if(!_0x1d2b41)throw new Error('Task\x20ID\x20is\x20required');if(!_0x181fa0)throw new Error('File\x20path\x20is\x20required');const _0x47f7de=await fetch(API_BASE+'/tasks/'+_0x1d2b41+'/files?path='+encodeURIComponent(_0x181fa0),{'method':'DELETE'});if(!_0x47f7de['ok']){const _0xbb8dcf=await _0x47f7de['json']()['catch'](()=>({}));throw new Error(_0xbb8dcf['error']||_0xbb8dcf['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x47f7de['statusText']);}return await _0x47f7de['json']();},async 'deleteDirectory'(_0xd3b936,_0x24590b){if(!_0xd3b936)throw new Error('Task\x20ID\x20is\x20required');if(!_0x24590b)throw new Error('Directory\x20path\x20is\x20required');const _0x5cdd8c=await fetch(API_BASE+'/tasks/'+_0xd3b936+'/files/directory?path='+encodeURIComponent(_0x24590b),{'method':'DELETE'});if(!_0x5cdd8c['ok']){const _0x5cde99=await _0x5cdd8c['json']()['catch'](()=>({}));throw new Error(_0x5cde99['error']||_0x5cde99['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5cdd8c['statusText']);}return await _0x5cdd8c['json']();},async 'discardFile'(_0x492201,_0x52bba4,_0x3f9a84){if(!_0x492201)throw new Error('Task\x20ID\x20is\x20required');if(!_0x52bba4)throw new Error('File\x20path\x20is\x20required');if(!_0x3f9a84)throw new Error('Repository\x20path\x20is\x20required');const _0x35294e=await fetch(API_BASE+'/tasks/'+_0x492201+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x52bba4,'repoPath':_0x3f9a84})});if(!_0x35294e['ok']){const _0x297438=await _0x35294e['json']()['catch'](()=>({}));throw new Error(_0x297438['error']||_0x297438['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x35294e['statusText']);}return await _0x35294e['json']();},async 'followUpTask'(_0x132cdf,_0x2730f4={}){if(!_0x132cdf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2730f4['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x43d54a,_0x1678e8={};if(_0x2730f4['files']&&_0x2730f4['files']['length']>0x0){const _0x19b5f6=new FormData();_0x19b5f6['append']('instructions',_0x2730f4['instructions']);for(const _0x35ce8b of _0x2730f4['files']){_0x19b5f6['append']('attachments',_0x35ce8b);}_0x43d54a=_0x19b5f6;}else _0x1678e8['Content-Type']='application/json',_0x43d54a=JSON['stringify']({'instructions':_0x2730f4['instructions']});const _0x598e4b=await fetch(API_BASE+'/tasks/'+_0x132cdf+'/follow-up',{'method':'POST','headers':_0x1678e8,'body':_0x43d54a});if(!_0x598e4b['ok']){const _0x321aea=await _0x598e4b['json']()['catch'](()=>({}));throw new Error(_0x321aea['error']||_0x321aea['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x598e4b['statusText']);}return await _0x598e4b['json']();},async 'getTaskRewindPoints'(_0x568274){if(!_0x568274)throw new Error('Task\x20ID\x20is\x20required');const _0x370e84=await fetch(API_BASE+'/tasks/'+_0x568274+'/rewind-points');if(!_0x370e84['ok']){const _0x2e99a0=await _0x370e84['json']()['catch'](()=>({}));throw new Error(_0x2e99a0['error']||_0x2e99a0['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x370e84['statusText']);}return await _0x370e84['json']();},async 'rewindTask'(_0x498774,_0x167fad={}){if(!_0x498774)throw new Error('Task\x20ID\x20is\x20required');const _0x5cf463=Number['isInteger'](_0x167fad['targetFollowUpCount'])?_0x167fad['targetFollowUpCount']:0x0,_0x231252={'targetFollowUpCount':_0x5cf463};typeof _0x167fad['instructions']==='string'&&_0x167fad['instructions']['trim']()&&(_0x231252['instructions']=_0x167fad['instructions']['trim']());typeof _0x167fad['rewindFiles']==='boolean'&&(_0x231252['rewindFiles']=_0x167fad['rewindFiles']);const _0x2b3db1=await fetch(API_BASE+'/tasks/'+_0x498774+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x231252)});if(!_0x2b3db1['ok']){const _0x5ecdd7=await _0x2b3db1['json']()['catch'](()=>({}));throw new Error(_0x5ecdd7['error']||_0x5ecdd7['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x2b3db1['statusText']);}return await _0x2b3db1['json']();},async 'login'(_0x4d06bd,_0x5a7599){const _0x38d0b8=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4d06bd,'password':_0x5a7599})});if(!_0x38d0b8['ok']){const _0x2d8354=await _0x38d0b8['json']();throw new Error(_0x2d8354['message']||'Login\x20failed');}return await _0x38d0b8['json']();},async 'logout'(){const _0x119dd4=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x119dd4['ok']){const _0x4ca176=await _0x119dd4['json']();throw new Error(_0x4ca176['message']||'Logout\x20failed');}return await _0x119dd4['json']();},async 'getCurrentUser'(){const _0x15f777=await fetch(API_BASE+'/auth/me');if(!_0x15f777['ok'])throw new Error('Not\x20authenticated');const _0xa7024a=await _0x15f777['json']();return _0xa7024a['user'];},async 'getRolesInfo'(){const _0x58579a=await fetch(API_BASE+'/users/roles');if(!_0x58579a['ok']){const _0x5a2ae6=await _0x58579a['json']();throw new Error(_0x5a2ae6['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x58579a['json']();},async 'getUsers'(){const _0x10bf5b=await fetch(API_BASE+'/users');if(!_0x10bf5b['ok']){const _0x3510f6=await _0x10bf5b['json']();throw new Error(_0x3510f6['message']||'Failed\x20to\x20get\x20users');}return await _0x10bf5b['json']();},async 'getUser'(_0x59eb10){const _0x8477f3=await fetch(API_BASE+'/users/'+_0x59eb10);if(!_0x8477f3['ok']){const _0x14486e=await _0x8477f3['json']();throw new Error(_0x14486e['message']||'Failed\x20to\x20get\x20user');}return await _0x8477f3['json']();},async 'createUser'(_0x2e9ab0){const _0x2e6050=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e9ab0)});if(!_0x2e6050['ok']){const _0x537388=await _0x2e6050['json']();throw new Error(_0x537388['message']||'Failed\x20to\x20create\x20user');}return await _0x2e6050['json']();},async 'updateUser'(_0x4075a7,_0x205716){const _0x35950a=await fetch(API_BASE+'/users/'+_0x4075a7,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x205716)});if(!_0x35950a['ok']){const _0x2850d8=await _0x35950a['json']();throw new Error(_0x2850d8['message']||'Failed\x20to\x20update\x20user');}return await _0x35950a['json']();},async 'deleteUser'(_0x3af39d){const _0x1e942c=await fetch(API_BASE+'/users/'+_0x3af39d,{'method':'DELETE'});if(!_0x1e942c['ok']){const _0x544804=await _0x1e942c['json']();throw new Error(_0x544804['message']||'Failed\x20to\x20delete\x20user');}return await _0x1e942c['json']();},async 'stopAllContainers'(){const _0x2bf075=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0xa1d6b3=await _0x2bf075['json']()['catch'](()=>({}));if(!_0x2bf075['ok'])throw new Error(_0xa1d6b3['message']||_0xa1d6b3['error']||'Failed\x20to\x20stop\x20containers');return _0xa1d6b3;},async 'removeStoppedContainers'(){const _0x21baed=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x215630=await _0x21baed['json']()['catch'](()=>({}));if(!_0x21baed['ok'])throw new Error(_0x215630['message']||_0x215630['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x215630;},async 'pruneDockerResources'(){const _0x3b0c3c=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x2994aa=await _0x3b0c3c['json']()['catch'](()=>({}));if(!_0x3b0c3c['ok'])throw new Error(_0x2994aa['message']||_0x2994aa['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x2994aa;},async 'getUpdateSettings'(){const _0x16d8e9=await fetch(API_BASE+'/health/update-settings'),_0x3ae47c=await _0x16d8e9['json']()['catch'](()=>({}));if(!_0x16d8e9['ok'])throw new Error(_0x3ae47c['message']||_0x3ae47c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x3ae47c;},async 'applyServerUpdate'(_0x1bd21e){const _0x435bd9=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1bd21e})}),_0x1c32ed=await _0x435bd9['json']()['catch'](()=>({}));if(!_0x435bd9['ok']){const _0x47ecb7=new Error(_0x1c32ed['message']||_0x1c32ed['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x1c32ed['output']!==undefined)_0x47ecb7['output']=_0x1c32ed['output'];if(_0x1c32ed['error']!==undefined)_0x47ecb7['commandError']=_0x1c32ed['error'];throw _0x47ecb7;}return _0x1c32ed;},async 'restartServer'(){const _0x1af04f=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x3b163e=await _0x1af04f['json']()['catch'](()=>({}));if(!_0x1af04f['ok'])throw new Error(_0x3b163e['message']||_0x3b163e['error']||'Failed\x20to\x20restart\x20server');return _0x3b163e;},async 'createPasswordToken'(_0x5f230f,_0x173c45='setup',_0x394128=![]){const _0xc4dd00=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5f230f,'type':_0x173c45,'sendEmail':_0x394128})});if(!_0xc4dd00['ok']){const _0x13ed1c=await _0xc4dd00['json']();throw new Error(_0x13ed1c['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0xc4dd00['json']();},async 'getEmailConfig'(){const _0x107370=await fetch(API_BASE+'/password/email-config');if(!_0x107370['ok']){const _0x4053df=await _0x107370['json']();throw new Error(_0x4053df['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x107370['json']();},async 'updateTaskName'(_0x4508ce,_0x36254a){const _0xcc23e=await fetch(API_BASE+'/tasks/'+_0x4508ce,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x36254a})});if(!_0xcc23e['ok']){const _0x3ddafe=await _0xcc23e['json']();throw new Error(_0x3ddafe['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0xcc23e['json']();},async 'pinTask'(_0x30ced4,_0x10b81e,_0x59dd3b=null){if(!_0x30ced4)throw new Error('Task\x20ID\x20is\x20required');const _0x2fcf8c={'pinned':_0x10b81e};_0x59dd3b&&_0x59dd3b['length']>0x0&&(_0x2fcf8c['additionalTaskIds']=_0x59dd3b);const _0x28a45c=await fetch(API_BASE+'/tasks/'+_0x30ced4+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2fcf8c)});if(!_0x28a45c['ok']){const _0x17571e=await _0x28a45c['json']();throw new Error(_0x17571e['error']||'Failed\x20to\x20pin\x20task');}return await _0x28a45c['json']();},async 'setTaskWinner'(_0x15089c,_0x44b18b,_0x1ae497=[]){if(!_0x15089c)throw new Error('Task\x20ID\x20is\x20required');const _0x5f37f=await fetch(API_BASE+'/tasks/'+_0x15089c+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x44b18b,'siblings':_0x1ae497})});if(!_0x5f37f['ok']){const _0xe52e03=await _0x5f37f['json']();throw new Error(_0xe52e03['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x5f37f['json']();},async 'setTaskLoser'(_0x2b8ebf,_0x88032){if(!_0x2b8ebf)throw new Error('Task\x20ID\x20is\x20required');const _0x31ea87=await fetch(API_BASE+'/tasks/'+_0x2b8ebf+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x88032})});if(!_0x31ea87['ok']){const _0x3b6467=await _0x31ea87['json']();throw new Error(_0x3b6467['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x31ea87['json']();},async 'createTaskGroup'(_0x7ff76a){const _0x1ad7bf=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x7ff76a)});if(!_0x1ad7bf['ok']){const _0x36037c=await _0x1ad7bf['json']();throw new Error(_0x36037c['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x1ad7bf['json']();},async 'getTaskGroups'(_0x46e4af={}){const _0x11b4b4=new URLSearchParams();if(_0x46e4af['userId'])_0x11b4b4['set']('userId',String(_0x46e4af['userId']));if(_0x46e4af['status'])_0x11b4b4['set']('status',String(_0x46e4af['status']));if(_0x46e4af['limit'])_0x11b4b4['set']('limit',String(_0x46e4af['limit']));const _0x28d4c0=API_BASE+'/tasks/groups'+(_0x11b4b4['toString']()?'?'+_0x11b4b4['toString']():''),_0x38251a=await fetch(_0x28d4c0);if(!_0x38251a['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x38251a['json']();},async 'getTaskGroup'(_0x453757){const _0x4f9942=await fetch(API_BASE+'/tasks/groups/'+_0x453757);if(!_0x4f9942['ok']){const _0x16b78c=await _0x4f9942['json']();throw new Error(_0x16b78c['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x4f9942['json']();},async 'updateTaskGroup'(_0x19b407,_0x558517,_0xfa1dd2){const _0x20ea29=await fetch(API_BASE+'/tasks/'+_0x19b407+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x558517,'groupIndex':_0xfa1dd2})});if(!_0x20ea29['ok']){const _0x329fa2=await _0x20ea29['json']();throw new Error(_0x329fa2['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x20ea29['json']();},async 'removeTaskFromGroup'(_0x172488){return this['updateTaskGroup'](_0x172488,null,null);},async 'deleteTaskGroup'(_0x11010b,_0x277deb=![]){const _0x3c2135=_0x277deb?'?deleteTasks=true':'',_0x278235=await fetch(API_BASE+'/tasks/groups/'+_0x11010b+_0x3c2135,{'method':'DELETE'});if(!_0x278235['ok']){const _0x2e526b=await _0x278235['json']();throw new Error(_0x2e526b['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3bfad0,_0x477ef7){const _0x33dc55=await fetch(API_BASE+'/tasks/groups/'+_0x3bfad0+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x477ef7})});if(!_0x33dc55['ok']){const _0x2748b4=await _0x33dc55['json']();throw new Error(_0x2748b4['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x33dc55['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x36fdb9){if(!_0x36fdb9)throw new Error('Task\x20ID\x20is\x20required');const _0xc3f8da=await fetch(API_BASE+'/tasks/'+_0x36fdb9+'/comments');if(!_0xc3f8da['ok']){const _0x6eb78e=await _0xc3f8da['json']()['catch'](()=>({}));throw new Error(_0x6eb78e['error']||'Failed\x20to\x20get\x20comments');}return await _0xc3f8da['json']();},async 'addComment'(_0x5da731,_0x2cf560){if(!_0x5da731)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2cf560)throw new Error('Comment\x20content\x20is\x20required');const _0x452dc8=await fetch(API_BASE+'/tasks/'+_0x5da731+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2cf560})});if(!_0x452dc8['ok']){const _0x4432a4=await _0x452dc8['json']()['catch'](()=>({}));throw new Error(_0x4432a4['error']||'Failed\x20to\x20add\x20comment');}return await _0x452dc8['json']();},async 'updateComment'(_0x25cab5,_0x4128b2,_0x1cd2db){if(!_0x25cab5)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4128b2)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x1cd2db)throw new Error('Comment\x20content\x20is\x20required');const _0x1bdd51=await fetch(API_BASE+'/tasks/'+_0x25cab5+'/comments/'+_0x4128b2,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x1cd2db})});if(!_0x1bdd51['ok']){const _0x5d9859=await _0x1bdd51['json']()['catch'](()=>({}));throw new Error(_0x5d9859['error']||'Failed\x20to\x20update\x20comment');}return await _0x1bdd51['json']();},async 'deleteComment'(_0xba5b86,_0x4e0a83){if(!_0xba5b86)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e0a83)throw new Error('Comment\x20ID\x20is\x20required');const _0x565db9=await fetch(API_BASE+'/tasks/'+_0xba5b86+'/comments/'+_0x4e0a83,{'method':'DELETE'});if(!_0x565db9['ok']){const _0x8775c7=await _0x565db9['json']()['catch'](()=>({}));throw new Error(_0x8775c7['error']||'Failed\x20to\x20delete\x20comment');}return await _0x565db9['json']();},async 'createObjective'(_0x2ec254){const _0x5df46b={'objective':!![],'name':_0x2ec254['name']||'','environment':_0x2ec254['environment']||null,'agents':_0x2ec254['agents']||[],'branches':_0x2ec254['branches']||{},'isPinned':_0x2ec254['isPinned']||![],'parentObjectiveId':_0x2ec254['parentObjectiveId']||null,'env_vars':_0x2ec254['envVars']||{},'parameters':{'instructions':_0x2ec254['instructions']||''},'files':_0x2ec254['files']||[],'jira':_0x2ec254['jira']||null};return this['createTask'](_0x5df46b);},async 'updateObjective'(_0x2eb935,_0x257884,_0x28b0a5=[],_0x4c3ee3=[]){let _0x456add,_0x15c150={};const _0x14efa4={..._0x257884};_0x4c3ee3&&_0x4c3ee3['length']>0x0&&(_0x14efa4['removeAttachments']=_0x4c3ee3);if(_0x28b0a5&&_0x28b0a5['length']>0x0){const _0x36a7fd=new FormData();for(const [_0x42f4e1,_0x4ea1a5]of Object['entries'](_0x14efa4)){if(_0x4ea1a5==null)continue;typeof _0x4ea1a5==='object'?_0x36a7fd['append'](_0x42f4e1,JSON['stringify'](_0x4ea1a5)):_0x36a7fd['append'](_0x42f4e1,String(_0x4ea1a5));}for(const _0x185d4e of _0x28b0a5){_0x36a7fd['append']('attachments',_0x185d4e);}_0x456add=_0x36a7fd;}else _0x15c150['Content-Type']='application/json',_0x456add=JSON['stringify'](_0x14efa4);const _0x228458=await fetch(API_BASE+'/tasks/'+_0x2eb935,{'method':'PATCH','headers':_0x15c150,'body':_0x456add});if(!_0x228458['ok']){const _0xcb9876=await _0x228458['json']();throw new Error(_0xcb9876['error']||'Failed\x20to\x20update\x20objective');}return await _0x228458['json']();},async 'deleteObjective'(_0x2b7a75){return this['deleteTask'](_0x2b7a75);},async 'launchObjective'(_0x175f97,_0x10895c={}){const _0x5da2e6=await fetch(API_BASE+'/tasks/'+_0x175f97+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10895c)});if(!_0x5da2e6['ok']){const _0x3c9d54=await _0x5da2e6['json']();throw new Error(_0x3c9d54['error']||'Failed\x20to\x20launch\x20objective');}return await _0x5da2e6['json']();},async 'getObjectiveAttachments'(_0x24d573){return this['getTaskAttachments'](_0x24d573);},async 'createJudgeTask'({environment:_0x2c5734,judgeAgent:_0x1a7701,groupId:_0x2842f2,taskIds:_0x78b9d1,judgeCustomInstructions:_0x5c49d6,isPinned:_0x5907c1}){const _0x31d2ec=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2c5734,'judgeAgent':_0x1a7701,'groupId':_0x2842f2,'taskIds':_0x78b9d1,'judgeCustomInstructions':_0x5c49d6,'isPinned':_0x5907c1})});if(!_0x31d2ec['ok']){const _0xc83073=await _0x31d2ec['json']();throw new Error(_0xc83073['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x31d2ec['json']();},async 'getJudgeTasks'(_0x2c199e){const _0x288ce2=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x2c199e));if(!_0x288ce2['ok']){const _0x448650=await _0x288ce2['json']();throw new Error(_0x448650['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x288ce2['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x3a543f,_0x419b80,_0x2f0ef8=''){const _0x10a6c5=await fetch(API_BASE+'/tasks/'+_0x3a543f+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x419b80,'customPreamble':_0x2f0ef8})});if(!_0x10a6c5['ok']){const _0x6b6bd=await _0x10a6c5['json']();throw new Error(_0x6b6bd['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x10a6c5['json']();},async 'getJiraConfig'(){const _0x5d623b=await fetch(API_BASE+'/jira/config');if(!_0x5d623b['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x5d623b['json']();},async 'getJiraIssue'(_0x267a16){const _0x291834=await fetch(API_BASE+'/jira/issues/'+_0x267a16);if(!_0x291834['ok']){const _0x2c04e8=await _0x291834['json']()['catch'](()=>({}));throw new Error(_0x2c04e8['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x291834['statusText']);}return await _0x291834['json']();},async 'searchJiraIssues'(_0x4eb3f6,_0x34375a=0x14){const _0xb3475d=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4eb3f6,'maxResults':_0x34375a})});if(!_0xb3475d['ok']){const _0x558001=await _0xb3475d['json']()['catch'](()=>({}));throw new Error(_0x558001['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0xb3475d['statusText']);}return await _0xb3475d['json']();},async 'postJiraComment'(_0x1f1ed0,_0x5de446){const _0x14ddda=await fetch(API_BASE+'/jira/issues/'+_0x1f1ed0+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x5de446})});if(!_0x14ddda['ok']){const _0xe00db8=await _0x14ddda['json']()['catch'](()=>({}));throw new Error(_0xe00db8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x14ddda['statusText']);}return await _0x14ddda['json']();},async 'getJiraComments'(_0x428682){const _0x19751a=await fetch(API_BASE+'/jira/issues/'+_0x428682+'/comments');if(!_0x19751a['ok']){const _0x2f6e2c=await _0x19751a['json']()['catch'](()=>({}));throw new Error(_0x2f6e2c['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x19751a['statusText']);}return await _0x19751a['json']();},async 'promptParameter'({environment:_0x1c392c,command:_0x16fbd5,parser:parser='json'}){const _0x1aee32=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1c392c,'command':_0x16fbd5,'parser':parser})});if(!_0x1aee32['ok']){const _0x39d431=await _0x1aee32['json']()['catch'](()=>({}));throw new Error(_0x39d431['message']||_0x39d431['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x1aee32['statusText']);}return await _0x1aee32['json']();},async 'promptParameterStream'(_0x35e5e1,_0x89580d){const _0xf063e3=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35e5e1)});if(!_0xf063e3['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0xf063e3['statusText']);const _0x54a047=_0xf063e3['body']['getReader'](),_0x3aec60=new TextDecoder();let _0x49685b='';return new Promise((_0x14a634,_0x497b13)=>{const _0x5a7df5=async()=>{try{const {done:_0x46bed5,value:_0x18947e}=await _0x54a047['read']();if(_0x46bed5)return;_0x49685b+=_0x3aec60['decode'](_0x18947e,{'stream':!![]});const _0x6125ff=_0x49685b['split']('\x0a\x0a');_0x49685b=_0x6125ff['pop']()||'';for(const _0x358a69 of _0x6125ff){if(!_0x358a69['trim']())continue;const _0xaa1e68=_0x358a69['split']('\x0a');let _0x306bde='message',_0x399b2b='';for(const _0x5d7f72 of _0xaa1e68){if(_0x5d7f72['startsWith']('event:'))_0x306bde=_0x5d7f72['substring'](0x6)['trim']();else _0x5d7f72['startsWith']('data:')&&(_0x399b2b=_0x5d7f72['substring'](0x5)['trim']());}if(!_0x399b2b)continue;try{const _0x4401d4=JSON['parse'](_0x399b2b);if(_0x306bde==='progress'&&_0x89580d)_0x89580d(_0x4401d4['stage'],_0x4401d4['message']);else{if(_0x306bde==='result'){_0x14a634(_0x4401d4);return;}else{if(_0x306bde==='error'){let _0x4641c2=_0x4401d4['message']||_0x4401d4['error']||'Prompt\x20command\x20failed';_0x4401d4['rawOutput']&&(_0x4641c2+='\x0a\x0aRaw\x20output:\x0a'+_0x4401d4['rawOutput']);_0x497b13(new Error(_0x4641c2));return;}}}}catch(_0x5d772f){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x5d772f),console['error']('Event\x20type:',_0x306bde),console['error']('Event\x20data:',_0x399b2b),console['error']('First\x20200\x20chars:',_0x399b2b['substring'](0x0,0xc8)),_0x497b13(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x5d772f['message']+'\x0a\x0aData:\x20'+_0x399b2b['substring'](0x0,0x1f4)));return;}}_0x5a7df5();}catch(_0x17f1ca){_0x497b13(_0x17f1ca);}};_0x5a7df5();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x557ae4){const _0x11ae33=await fetch(''+API_BASE+_0x557ae4);if(!_0x11ae33['ok']){const _0x2d40a4=await _0x11ae33['json']()['catch'](()=>({'error':_0x11ae33['statusText']})),_0x3f47d6=new Error(_0x2d40a4['error']||_0x2d40a4['message']||_0x11ae33['statusText']);if(_0x2d40a4['detail']!==undefined)_0x3f47d6['detail']=_0x2d40a4['detail'];throw _0x3f47d6;}return await _0x11ae33['json']();},async 'post'(_0x4879d7,_0x4fc287){const _0x50da77=await fetch(''+API_BASE+_0x4879d7,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4fc287)});if(!_0x50da77['ok']){const _0xec453e=await _0x50da77['json']()['catch'](()=>({'error':_0x50da77['statusText']})),_0x62361f=new Error(_0xec453e['error']||_0xec453e['message']||_0x50da77['statusText']);if(_0xec453e['detail']!==undefined)_0x62361f['detail']=_0xec453e['detail'];throw _0x62361f;}return await _0x50da77['json']();},async 'put'(_0x355529,_0x36118e){const _0x22f1b1=await fetch(''+API_BASE+_0x355529,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36118e)});if(!_0x22f1b1['ok']){const _0x3c13c0=await _0x22f1b1['json']()['catch'](()=>({'error':_0x22f1b1['statusText']})),_0x47c3b8=new Error(_0x3c13c0['error']||_0x3c13c0['message']||_0x22f1b1['statusText']);if(_0x3c13c0['detail']!==undefined)_0x47c3b8['detail']=_0x3c13c0['detail'];throw _0x47c3b8;}return await _0x22f1b1['json']();},async 'delete'(_0x4476f6,_0x9083a9){const _0x200bc3={'method':'DELETE'};_0x9083a9&&(_0x200bc3['headers']={'Content-Type':'application/json'},_0x200bc3['body']=JSON['stringify'](_0x9083a9));const _0x3b1825=await fetch(''+API_BASE+_0x4476f6,_0x200bc3);if(!_0x3b1825['ok']){const _0x4b392c=await _0x3b1825['json']()['catch'](()=>({'error':_0x3b1825['statusText']})),_0x5821e5=new Error(_0x4b392c['error']||_0x4b392c['message']||_0x3b1825['statusText']);if(_0x4b392c['detail']!==undefined)_0x5821e5['detail']=_0x4b392c['detail'];throw _0x5821e5;}return await _0x3b1825['json']();},async 'getSkills'(){const _0x514a89=await fetch(API_BASE+'/skills');if(!_0x514a89['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x514a89['statusText']);return await _0x514a89['json']();},async 'getSkill'(_0x57a3e8){const _0x2711fb=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x57a3e8));if(!_0x2711fb['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x2711fb['statusText']);return await _0x2711fb['json']();},async 'createSkill'(_0x46baeb){const _0xf50fb2=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46baeb)});if(!_0xf50fb2['ok']){const _0x5e5e87=await _0xf50fb2['json']()['catch'](()=>({'error':_0xf50fb2['statusText']})),_0x277934=new Error(_0x5e5e87['error']||_0x5e5e87['message']||_0xf50fb2['statusText']);if(_0x5e5e87['detail']!==undefined)_0x277934['detail']=_0x5e5e87['detail'];throw _0x277934;}return await _0xf50fb2['json']();},async 'updateSkill'(_0x335648,_0x84ef1a){const _0x25c08c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x335648),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x84ef1a)});if(!_0x25c08c['ok']){const _0x3ad7f1=await _0x25c08c['json']()['catch'](()=>({'error':_0x25c08c['statusText']})),_0x22474b=new Error(_0x3ad7f1['error']||_0x3ad7f1['message']||_0x25c08c['statusText']);if(_0x3ad7f1['detail']!==undefined)_0x22474b['detail']=_0x3ad7f1['detail'];throw _0x22474b;}return await _0x25c08c['json']();},async 'deleteSkill'(_0x4e832f){const _0x259d19=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4e832f),{'method':'DELETE'});if(!_0x259d19['ok']){const _0x142b60=await _0x259d19['json']()['catch'](()=>({'error':_0x259d19['statusText']})),_0x325cdb=new Error(_0x142b60['error']||_0x142b60['message']||_0x259d19['statusText']);if(_0x142b60['detail']!==undefined)_0x325cdb['detail']=_0x142b60['detail'];throw _0x325cdb;}return await _0x259d19['json']();},async 'getSkillFile'(_0x296522,_0x1cff18){const _0x27a038=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x296522)+'/files/'+_0x1cff18);if(!_0x27a038['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x27a038['statusText']);return await _0x27a038['json']();},async 'saveSkillFile'(_0x189694,_0x13f027,_0x586dc5){const _0x13b910=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x189694)+'/files/'+_0x13f027,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x586dc5})});if(!_0x13b910['ok']){const _0x2514f5=await _0x13b910['json']()['catch'](()=>({'error':_0x13b910['statusText']})),_0x3e9121=new Error(_0x2514f5['error']||_0x2514f5['message']||_0x13b910['statusText']);if(_0x2514f5['detail']!==undefined)_0x3e9121['detail']=_0x2514f5['detail'];throw _0x3e9121;}return await _0x13b910['json']();},async 'deleteSkillFile'(_0xeaf214,_0x371b38){const _0x53aef7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xeaf214)+'/files/'+_0x371b38,{'method':'DELETE'});if(!_0x53aef7['ok']){const _0x15a32f=await _0x53aef7['json']()['catch'](()=>({'error':_0x53aef7['statusText']})),_0x225fdc=new Error(_0x15a32f['error']||_0x15a32f['message']||_0x53aef7['statusText']);if(_0x15a32f['detail']!==undefined)_0x225fdc['detail']=_0x15a32f['detail'];throw _0x225fdc;}return await _0x53aef7['json']();},async 'pullSkills'(){const _0x30fdde=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x30fdde['ok']){const _0x4681bf=await _0x30fdde['json']()['catch'](()=>({'error':_0x30fdde['statusText']})),_0x5800a5=new Error(_0x4681bf['error']||_0x4681bf['message']||_0x30fdde['statusText']);if(_0x4681bf['detail']!==undefined)_0x5800a5['detail']=_0x4681bf['detail'];throw _0x5800a5;}return await _0x30fdde['json']();},async 'commitSkills'(_0x436bfc,_0xca0cbd={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0xca0cbd,_0x7abf5d=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x436bfc,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x7abf5d['ok']){const _0xedadd3=await _0x7abf5d['json']()['catch'](()=>({'error':_0x7abf5d['statusText']})),_0xd462c0=new Error(_0xedadd3['error']||_0xedadd3['message']||_0x7abf5d['statusText']);if(_0xedadd3['detail']!==undefined)_0xd462c0['detail']=_0xedadd3['detail'];throw _0xd462c0;}return await _0x7abf5d['json']();},async 'discardSkillsChanges'(){const _0xd51edd=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0xd51edd['ok']){const _0x46bfbd=await _0xd51edd['json']()['catch'](()=>({'error':_0xd51edd['statusText']})),_0x2aee1b=new Error(_0x46bfbd['error']||_0x46bfbd['message']||_0xd51edd['statusText']);if(_0x46bfbd['detail']!==undefined)_0x2aee1b['detail']=_0x46bfbd['detail'];throw _0x2aee1b;}return await _0xd51edd['json']();},async 'getSkillCatalog'(){const _0x103522=await fetch(API_BASE+'/external-skills/catalog');if(!_0x103522['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x103522['statusText']);return await _0x103522['json']();},async 'getImportedSkillsRegistry'(){const _0x54b0ed=await fetch(API_BASE+'/external-skills/registry');if(!_0x54b0ed['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x54b0ed['statusText']);return await _0x54b0ed['json']();},async 'importCatalogSkill'(_0x2f430e){const _0x5a4635=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x2f430e})});if(!_0x5a4635['ok']){const _0x20f822=await _0x5a4635['json']()['catch'](()=>({'error':_0x5a4635['statusText']})),_0x4d9467=new Error(_0x20f822['error']||_0x20f822['message']||_0x5a4635['statusText']);if(_0x20f822['detail']!==undefined)_0x4d9467['detail']=_0x20f822['detail'];throw _0x4d9467;}return await _0x5a4635['json']();},async 'importSkillFromGit'(_0x4c2259,_0xdef8ee,_0x4a0a28='main',_0x5e362e=null){const _0x1a0ff2=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4c2259,'skillPath':_0xdef8ee,'branch':_0x4a0a28,'skillId':_0x5e362e})});if(!_0x1a0ff2['ok']){const _0x3ad91b=await _0x1a0ff2['json']()['catch'](()=>({'error':_0x1a0ff2['statusText']})),_0x22bea6=new Error(_0x3ad91b['error']||_0x3ad91b['message']||_0x1a0ff2['statusText']);if(_0x3ad91b['detail']!==undefined)_0x22bea6['detail']=_0x3ad91b['detail'];throw _0x22bea6;}return await _0x1a0ff2['json']();},async 'probeMarketplace'(_0x5e8a74,_0x3b0744='main'){const _0x330e72=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5e8a74,'branch':_0x3b0744})});if(!_0x330e72['ok']){const _0x1955b7=await _0x330e72['json']()['catch'](()=>({'error':_0x330e72['statusText']})),_0x4d2c55=new Error(_0x1955b7['error']||_0x1955b7['message']||_0x330e72['statusText']);if(_0x1955b7['detail']!==undefined)_0x4d2c55['detail']=_0x1955b7['detail'];throw _0x4d2c55;}return await _0x330e72['json']();},async 'importMarketplaceBundle'(_0xafe8f,_0x1c6b39,_0x41500f,_0xaa80ff=null){const _0x3f3848=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0xafe8f,'branch':_0x1c6b39,'bundleId':_0x41500f,'selectedSkills':_0xaa80ff})});if(!_0x3f3848['ok']){const _0x1aaa67=await _0x3f3848['json']()['catch'](()=>({'error':_0x3f3848['statusText']})),_0x1d222a=new Error(_0x1aaa67['error']||_0x1aaa67['message']||_0x3f3848['statusText']);if(_0x1aaa67['detail']!==undefined)_0x1d222a['detail']=_0x1aaa67['detail'];throw _0x1d222a;}return await _0x3f3848['json']();},async 'importSkillFromFolder'(_0x4bdf5b,_0x467c8a=null){const _0xabeb02=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4bdf5b,'skillId':_0x467c8a})});if(!_0xabeb02['ok']){const _0xa53d61=await _0xabeb02['json']()['catch'](()=>({'error':_0xabeb02['statusText']})),_0x57deba=new Error(_0xa53d61['error']||_0xa53d61['message']||_0xabeb02['statusText']);if(_0xa53d61['detail']!==undefined)_0x57deba['detail']=_0xa53d61['detail'];throw _0x57deba;}return await _0xabeb02['json']();},async 'importSkillFromNpm'(_0x38da80,_0x28c8fa='latest',_0x504674=null,_0x393266=null){const _0x39d6ca=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x38da80,'version':_0x28c8fa,'skillId':_0x504674,'registry':_0x393266})});if(!_0x39d6ca['ok']){const _0x5f1901=await _0x39d6ca['json']()['catch'](()=>({'error':_0x39d6ca['statusText']})),_0x4b04ae=new Error(_0x5f1901['error']||_0x5f1901['message']||_0x39d6ca['statusText']);if(_0x5f1901['detail']!==undefined)_0x4b04ae['detail']=_0x5f1901['detail'];throw _0x4b04ae;}return await _0x39d6ca['json']();},async 'checkSkillUpdates'(_0x201ce3){const _0x56385a=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x201ce3)+'/check-updates',{'method':'POST'});if(!_0x56385a['ok']){const _0x3b431f=await _0x56385a['json']()['catch'](()=>({'error':_0x56385a['statusText']})),_0x281688=new Error(_0x3b431f['error']||_0x3b431f['message']||_0x56385a['statusText']);if(_0x3b431f['detail']!==undefined)_0x281688['detail']=_0x3b431f['detail'];throw _0x281688;}return await _0x56385a['json']();},async 'updateExternalSkill'(_0x1c093d){const _0x511ec8=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1c093d)+'/update',{'method':'POST'});if(!_0x511ec8['ok']){const _0x5bf300=await _0x511ec8['json']()['catch'](()=>({'error':_0x511ec8['statusText']})),_0xb1af0=new Error(_0x5bf300['error']||_0x5bf300['message']||_0x511ec8['statusText']);if(_0x5bf300['detail']!==undefined)_0xb1af0['detail']=_0x5bf300['detail'];throw _0xb1af0;}return await _0x511ec8['json']();},async 'updateSkillFlags'(_0x5f1c6c,_0x10b370){const _0x1736aa=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x5f1c6c)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x10b370})});if(!_0x1736aa['ok']){const _0x5dc451=await _0x1736aa['json']()['catch'](()=>({'error':_0x1736aa['statusText']})),_0x1d1867=new Error(_0x5dc451['error']||_0x5dc451['message']||_0x1736aa['statusText']);if(_0x5dc451['detail']!==undefined)_0x1d1867['detail']=_0x5dc451['detail'];throw _0x1d1867;}return await _0x1736aa['json']();},async 'removeFromImportedRegistry'(_0x1f7770){const _0xadfbfe=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1f7770)+'/registry',{'method':'DELETE'});if(!_0xadfbfe['ok']){const _0x14ce1d=await _0xadfbfe['json']()['catch'](()=>({'error':_0xadfbfe['statusText']})),_0x56ebb6=new Error(_0x14ce1d['error']||_0x14ce1d['message']||_0xadfbfe['statusText']);if(_0x14ce1d['detail']!==undefined)_0x56ebb6['detail']=_0x14ce1d['detail'];throw _0x56ebb6;}return await _0xadfbfe['json']();},async 'getTeams'(){const _0xaf3f27=await fetch(API_BASE+'/teams');if(!_0xaf3f27['ok']){const _0x5b9737=await _0xaf3f27['json']()['catch'](()=>({'message':_0xaf3f27['statusText']}));throw new Error(_0x5b9737['message']||'Failed\x20to\x20get\x20teams');}return await _0xaf3f27['json']();},async 'getTeam'(_0x30cf6a){const _0x59e553=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x30cf6a));if(!_0x59e553['ok']){const _0x474e2f=await _0x59e553['json']()['catch'](()=>({'message':_0x59e553['statusText']}));throw new Error(_0x474e2f['message']||'Failed\x20to\x20get\x20team');}return await _0x59e553['json']();},async 'createTeam'(_0x3af969){const _0x37c00f=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3af969)});if(!_0x37c00f['ok']){const _0x4c8f3a=await _0x37c00f['json']()['catch'](()=>({'message':_0x37c00f['statusText']}));throw new Error(_0x4c8f3a['message']||'Failed\x20to\x20create\x20team');}return await _0x37c00f['json']();},async 'updateTeam'(_0x28fa82,_0x210917){const _0x3d9fde=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x28fa82),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x210917)});if(!_0x3d9fde['ok']){const _0x4120c9=await _0x3d9fde['json']()['catch'](()=>({'message':_0x3d9fde['statusText']}));throw new Error(_0x4120c9['message']||'Failed\x20to\x20update\x20team');}return await _0x3d9fde['json']();},async 'deleteTeam'(_0x4230cc){const _0x12e190=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4230cc),{'method':'DELETE'});if(!_0x12e190['ok']){const _0x40a5cd=await _0x12e190['json']()['catch'](()=>({'message':_0x12e190['statusText']}));throw new Error(_0x40a5cd['message']||'Failed\x20to\x20delete\x20team');}return await _0x12e190['json']();},async 'addTeamMember'(_0x33e94f,_0x44f69c){const _0x3d5537=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x33e94f)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x44f69c})});if(!_0x3d5537['ok']){const _0x24895b=await _0x3d5537['json']()['catch'](()=>({'message':_0x3d5537['statusText']}));throw new Error(_0x24895b['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x3d5537['json']();},async 'removeTeamMember'(_0x5b1e2e,_0x4c946c){const _0x367e2c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5b1e2e)+'/members/'+encodeURIComponent(_0x4c946c),{'method':'DELETE'});if(!_0x367e2c['ok']){const _0x300d3b=await _0x367e2c['json']()['catch'](()=>({'message':_0x367e2c['statusText']}));throw new Error(_0x300d3b['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x367e2c['json']();},async 'getBindings'(_0x2d8683={}){const _0x4817ce=new URLSearchParams();if(_0x2d8683['resource_type'])_0x4817ce['set']('resource_type',_0x2d8683['resource_type']);if(_0x2d8683['resource_id'])_0x4817ce['set']('resource_id',_0x2d8683['resource_id']);if(_0x2d8683['subject_type'])_0x4817ce['set']('subject_type',_0x2d8683['subject_type']);if(_0x2d8683['subject_id'])_0x4817ce['set']('subject_id',_0x2d8683['subject_id']);const _0x540091=_0x4817ce['toString'](),_0x2853e1=await fetch(API_BASE+'/bindings'+(_0x540091?'?'+_0x540091:''));if(!_0x2853e1['ok']){const _0x471126=await _0x2853e1['json']()['catch'](()=>({'message':_0x2853e1['statusText']}));throw new Error(_0x471126['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2853e1['json']();},async 'createBinding'(_0x97cbec){const _0x18f8a2=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x97cbec)});if(!_0x18f8a2['ok']){const _0x308da3=await _0x18f8a2['json']()['catch'](()=>({'message':_0x18f8a2['statusText']}));throw new Error(_0x308da3['message']||'Failed\x20to\x20create\x20binding');}return await _0x18f8a2['json']();},async 'updateBinding'(_0x3a6204,_0x2e63da){const _0x113935=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3a6204),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e63da)});if(!_0x113935['ok']){const _0x500522=await _0x113935['json']()['catch'](()=>({'message':_0x113935['statusText']}));throw new Error(_0x500522['message']||'Failed\x20to\x20update\x20binding');}return await _0x113935['json']();},async 'deleteBinding'(_0x1f0262){const _0x4f6b1e=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x1f0262),{'method':'DELETE'});if(!_0x4f6b1e['ok']){const _0x1b641f=await _0x4f6b1e['json']()['catch'](()=>({'message':_0x4f6b1e['statusText']}));throw new Error(_0x1b641f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4f6b1e['json']();},async 'getRoleDefinitions'(){const _0x89226c=await fetch(API_BASE+'/roles');if(!_0x89226c['ok']){const _0x2494c1=await _0x89226c['json']()['catch'](()=>({'message':_0x89226c['statusText']}));throw new Error(_0x2494c1['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x89226c['json']();},async 'getRoleDefinition'(_0x13afe7){const _0x2229dc=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x13afe7));if(!_0x2229dc['ok']){const _0x8ca62a=await _0x2229dc['json']()['catch'](()=>({'message':_0x2229dc['statusText']}));throw new Error(_0x8ca62a['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x2229dc['json']();},async 'createRoleDefinition'(_0x3f55a1){const _0x20c4b6=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f55a1)});if(!_0x20c4b6['ok']){const _0x3fdd89=await _0x20c4b6['json']()['catch'](()=>({'message':_0x20c4b6['statusText']}));throw new Error(_0x3fdd89['message']||_0x3fdd89['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x20c4b6['json']();},async 'updateRoleDefinition'(_0x2a1031,_0x559d47){const _0x36f450=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2a1031),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x559d47)});if(!_0x36f450['ok']){const _0x4b379f=await _0x36f450['json']()['catch'](()=>({'message':_0x36f450['statusText']}));throw new Error(_0x4b379f['message']||_0x4b379f['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x36f450['json']();},async 'deleteRoleDefinition'(_0x5df818){const _0x1150ef=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5df818),{'method':'DELETE'});if(!_0x1150ef['ok']){const _0x69b783=await _0x1150ef['json']()['catch'](()=>({'message':_0x1150ef['statusText']}));throw new Error(_0x69b783['message']||_0x69b783['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x1150ef['json']();},async 'getAvailablePermissions'(){const _0x4c11aa=await fetch(API_BASE+'/roles/available-permissions');if(!_0x4c11aa['ok']){const _0x43ecdb=await _0x4c11aa['json']()['catch'](()=>({'message':_0x4c11aa['statusText']}));throw new Error(_0x43ecdb['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x4c11aa['json']();},async 'getGitProviderAllowedTeams'(_0x13581a){const _0xe7bde6=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x13581a)+'/allowed-teams');if(!_0xe7bde6['ok']){const _0xc75856=await _0xe7bde6['json']()['catch'](()=>({'message':_0xe7bde6['statusText']}));throw new Error(_0xc75856['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0xe7bde6['json']();},async 'setGitProviderAllowedTeams'(_0x1e8bb7,_0x52af7d){const _0x12ded6=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x1e8bb7)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x52af7d})});if(!_0x12ded6['ok']){const _0x3736e4=await _0x12ded6['json']()['catch'](()=>({'message':_0x12ded6['statusText']}));throw new Error(_0x3736e4['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x12ded6['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 _0x474751=toastState['baseBottom'];toastState['toasts']['forEach'](_0x314b20=>{_0x314b20['el']['style']['bottom']=_0x474751+'px';const _0xd2df26=_0x314b20['el']['offsetHeight']||toastState['defaultHeight'];_0x474751+=_0xd2df26+toastState['gap'];});});}function removeToastById(_0x751328){const _0x195afd=toastState['toasts']['findIndex'](_0x45f70a=>_0x45f70a['id']===_0x751328);if(_0x195afd===-0x1)return;const _0x4b94e9=toastState['toasts'][_0x195afd];if(_0x4b94e9['timeoutId'])clearTimeout(_0x4b94e9['timeoutId']);_0x4b94e9['el']['classList']['remove']('show'),setTimeout(()=>_0x4b94e9['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x195afd,0x1),repositionAllToasts();}function registerToast(_0x3383b3){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x3383b3),repositionAllToasts(),_0x3383b3['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(_0x3b3c1e){if(_0x3b3c1e===null||_0x3b3c1e===undefined)return'';return String(_0x3b3c1e)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0xeb711f,_0x1ff66d){if(_0xeb711f&&typeof _0xeb711f==='object'&&!Array['isArray'](_0xeb711f))return{'code':typeof _0xeb711f['text']==='string'?_0xeb711f['text']:'','language':typeof _0xeb711f['lang']==='string'?_0xeb711f['lang']:''};return{'code':typeof _0xeb711f==='string'?_0xeb711f:'','language':typeof _0x1ff66d==='string'?_0x1ff66d:''};}function buildMermaidBlock(_0x40e69f){const _0x291604=String(_0x40e69f||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x291604))+'\x22>'+escapeHtmlValue(_0x291604)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1d5af2=new marked['Renderer'](),_0x3f8f5b=_0x1d5af2['code']['bind'](_0x1d5af2);return _0x1d5af2['code']=function(_0x221b70,_0x479582,..._0x2b7e08){const {code:_0x542039,language:_0x1267d3}=getMarkdownCodeBlockPayload(_0x221b70,_0x479582),_0x4bce8b=String(_0x1267d3||'')['trim']()['toLowerCase']();if(_0x4bce8b==='mermaid')return buildMermaidBlock(_0x542039);const _0x2ac2a4=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x2ac2a4&&_0x4bce8b)try{const _0x46e20b=_0x2ac2a4['getLanguage'](_0x4bce8b)?_0x4bce8b:'plaintext',_0x459e57=_0x2ac2a4['highlight'](_0x542039,{'language':_0x46e20b})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x4bce8b)+'\x22>'+_0x459e57+'</code></pre>';}catch(_0x38e774){console['error']('Syntax\x20highlighting\x20error:',_0x38e774);}return _0x3f8f5b(_0x221b70,_0x479582,..._0x2b7e08);},sharedMarkedRenderer=_0x1d5af2,_0x1d5af2;}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 _0x5c9461=window['mermaid'];if(!_0x5c9461||typeof _0x5c9461['initialize']!=='function')return _0x5c9461||null;return _0x5c9461['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x5c9461;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x32fe70,_0x2fe2f5)=>{const _0x220786=()=>_0x32fe70(configureMermaidInstance()),_0x58e200=()=>{mermaidLoadPromise=null,_0x2fe2f5(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0xb548b6=document['getElementById'](MERMAID_SCRIPT_ID);!_0xb548b6&&(_0xb548b6=document['createElement']('script'),_0xb548b6['id']=MERMAID_SCRIPT_ID,_0xb548b6['src']=MERMAID_SCRIPT_SRC,_0xb548b6['async']=!![],document['head']['appendChild'](_0xb548b6));if(window['mermaid']){_0x220786();return;}_0xb548b6['addEventListener']('load',_0x220786,{'once':!![]}),_0xb548b6['addEventListener']('error',_0x58e200,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x42a711){const _0x53df11=_0x42a711['getAttribute']('data-mermaid-source');if(!_0x53df11)return null;let _0x4079fd=_0x53df11;try{_0x4079fd=decodeURIComponent(_0x53df11);}catch{}return _0x42a711['textContent']=_0x4079fd,_0x42a711['removeAttribute']('data-processed'),_0x42a711['removeAttribute']('aria-roledescription'),_0x42a711['removeAttribute']('role'),_0x42a711['removeAttribute']('aria-label'),_0x4079fd;}function collectMermaidNodes(_0x4c81a2,_0x4318b1){if(!(_0x4c81a2 instanceof Element))return;_0x4c81a2['matches']('.mermaid[data-mermaid-source]')&&_0x4318b1['add'](_0x4c81a2),_0x4c81a2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x588522=>{_0x4318b1['add'](_0x588522);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x13c486=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x2e405f=>setTimeout(_0x2e405f,0x0);_0x13c486(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x538658=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x538658);});});}function queueMermaidRender(_0x2e2998){const _0x367b22=new Set();_0x2e2998 instanceof Document||_0x2e2998 instanceof DocumentFragment?_0x2e2998['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x58f3b6=>_0x367b22['add'](_0x58f3b6)):collectMermaidNodes(_0x2e2998,_0x367b22);if(_0x367b22['size']===0x0)return;_0x367b22['forEach'](_0x5e301d=>pendingMermaidNodes['add'](_0x5e301d)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x22dfb9=Array['from'](pendingMermaidNodes)['filter'](_0xaeb4cc=>_0xaeb4cc['isConnected']);pendingMermaidNodes['clear']();if(_0x22dfb9['length']===0x0)return;const _0x2587f0=await loadMermaid();if(!_0x2587f0)return;configureMermaidInstance();const _0x36fe3f=getMermaidTheme();for(const _0xd59214 of _0x22dfb9){const _0x1c5407=_0xd59214['getAttribute']('data-mermaid-source');if(!_0x1c5407)continue;const _0x3cd887=_0xd59214['getAttribute']('data-processed')==='true';if(_0x3cd887&&_0xd59214['dataset']['mermaidTheme']===_0x36fe3f)continue;restoreMermaidSource(_0xd59214);try{if(typeof _0x2587f0['run']==='function')await _0x2587f0['run']({'nodes':[_0xd59214]});else typeof _0x2587f0['init']==='function'&&_0x2587f0['init'](undefined,[_0xd59214]);_0xd59214['dataset']['mermaidTheme']=_0x36fe3f,delete _0xd59214['dataset']['mermaidError'];}catch(_0x4ebfcc){console['error']('Mermaid\x20render\x20failed:',_0x4ebfcc),restoreMermaidSource(_0xd59214),_0xd59214['dataset']['mermaidError']='true',delete _0xd59214['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1e535b=>{_0x1e535b['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x1e535b);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x493292=>{_0x493292['forEach'](_0x4d1ce6=>{_0x4d1ce6['addedNodes']['forEach'](_0x2f61f5=>{_0x2f61f5['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x2f61f5);});});}),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'(_0x229145){const _0x413363=new Date(_0x229145),_0x5240f7=new Date(),_0x59ccfe=_0x5240f7-_0x413363,_0x351787=Math['floor'](_0x59ccfe/0x3e8),_0x56a16e=Math['floor'](_0x351787/0x3c),_0x14b47e=Math['floor'](_0x56a16e/0x3c),_0x4785f6=Math['floor'](_0x14b47e/0x18);if(_0x351787<0x3c)return'now';if(_0x56a16e<0x3c)return _0x56a16e+'m\x20ago';if(_0x14b47e<0x18)return _0x14b47e+'h\x20ago';return _0x4785f6+'d\x20ago';},'getStatusIcon'(_0x5ab8b1){switch(_0x5ab8b1){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x188ec4){switch(_0x188ec4){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'(_0x279202,_0x3593ad=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x2febb9={};_0x2febb9['text/plain']=new Blob([_0x279202],{'type':'text/plain'});_0x3593ad&&(_0x2febb9['text/html']=new Blob([_0x3593ad],{'type':'text/html'}));const _0x5e163f=new ClipboardItem(_0x2febb9);return await navigator['clipboard']['write']([_0x5e163f]),!![];}catch(_0x3fd08a){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3fd08a);}try{const _0x544ea5=_0x384678=>{_0x384678['preventDefault'](),_0x384678['clipboardData']['setData']('text/plain',_0x279202),_0x3593ad&&_0x384678['clipboardData']['setData']('text/html',_0x3593ad);};document['addEventListener']('copy',_0x544ea5);const _0xfe586b=document['execCommand']('copy');document['removeEventListener']('copy',_0x544ea5);if(_0xfe586b)return!![];}catch(_0x287058){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x287058);}try{const _0x5469cb=document['createElement']('textarea');_0x5469cb['value']=_0x279202,_0x5469cb['style']['position']='fixed',_0x5469cb['style']['opacity']='0',_0x5469cb['style']['pointerEvents']='none',document['body']['appendChild'](_0x5469cb),_0x5469cb['select']();const _0x53fb52=document['execCommand']('copy');return document['body']['removeChild'](_0x5469cb),_0x53fb52;}catch(_0x45e4c5){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x45e4c5),![];}},'showToast'(_0x31f3e2,_0x534f00='info'){const _0x58dca4=getNextToastId(),_0x583aa8=document['createElement']('div');_0x583aa8['className']='toast\x20toast-'+_0x534f00,_0x583aa8['textContent']=_0x31f3e2,_0x583aa8['dataset']['toastId']=_0x58dca4,document['body']['appendChild'](_0x583aa8);const _0x5a1333=_0x534f00==='error'?0x2710:0xbb8,_0x571858=setTimeout(()=>{removeToastById(_0x58dca4);},_0x5a1333),_0x156dc4={'id':_0x58dca4,'el':_0x583aa8,'timeoutId':_0x571858};return registerToast(_0x156dc4),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x583aa8['classList']['add']('show');});}),_0x58dca4;},'showError'(_0x4b15ab){console['error'](_0x4b15ab);const _0x589181=typeof _0x4b15ab==='string'?_0x4b15ab:_0x4b15ab['message']||'An\x20error\x20occurred';this['showToast'](_0x589181,'error');},'showSuccess'(_0x570348){this['showToast'](_0x570348,'success');},'capitalize'(_0x32d076){if(!_0x32d076)return'';return _0x32d076['charAt'](0x0)['toUpperCase']()+_0x32d076['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x226c03){return escapeHtmlValue(_0x226c03);},'ansiToHtml'(_0x576313){if(_0x576313===null||_0x576313===undefined)return'';let _0x4fb8f7=this['escapeHtml'](_0x576313);const _0x147fac={'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'},_0x3dc3af={'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 _0xad9500=0x0;return _0x4fb8f7=_0x4fb8f7['replace'](/\x1b\[([0-9;]*)m/g,(_0x546fa3,_0x8d87ab)=>{if(!_0x8d87ab||_0x8d87ab==='0'){const _0x9b4905='</span>'['repeat'](_0xad9500);return _0xad9500=0x0,_0x9b4905;}const _0x15ffcb=_0x8d87ab['split'](';'),_0x492ee8=[];for(const _0x3af068 of _0x15ffcb){if(_0x3af068==='1')_0x492ee8['push']('font-weight:bold');else{if(_0x3af068==='2')_0x492ee8['push']('opacity:0.7');else{if(_0x3af068==='3')_0x492ee8['push']('font-style:italic');else{if(_0x3af068==='4')_0x492ee8['push']('text-decoration:underline');else{if(_0x3af068==='9')_0x492ee8['push']('text-decoration:line-through');else{if(_0x147fac[_0x3af068])_0x492ee8['push']('color:'+_0x147fac[_0x3af068]);else{if(_0x3dc3af[_0x3af068])_0x492ee8['push']('background-color:'+_0x3dc3af[_0x3af068]);}}}}}}}if(_0x492ee8['length']>0x0)return _0xad9500++,'<span\x20style=\x22'+_0x492ee8['join'](';')+'\x22>';return'';}),_0x4fb8f7+='</span>'['repeat'](_0xad9500),_0x4fb8f7=_0x4fb8f7['replace'](/\\u001b\[([0-9;]*)m/g,(_0x38a347,_0x345be0)=>{if(!_0x345be0||_0x345be0==='0')return'';const _0x2648c5=_0x345be0['split'](';'),_0x5a47ab=[];for(const _0x3b604b of _0x2648c5){if(_0x3b604b==='1')_0x5a47ab['push']('font-weight:bold');else{if(_0x147fac[_0x3b604b])_0x5a47ab['push']('color:'+_0x147fac[_0x3b604b]);else{if(_0x3dc3af[_0x3b604b])_0x5a47ab['push']('background-color:'+_0x3dc3af[_0x3b604b]);}}}if(_0x5a47ab['length']>0x0)return'<span\x20style=\x22'+_0x5a47ab['join'](';')+'\x22>';return'';}),_0x4fb8f7;},'showModal'({title:_0x320750,content:_0x115a4e,buttons:buttons=[]}){const _0x2485c2='\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'](_0x320750)+'</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'+_0x115a4e+'\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']((_0x56af11,_0x5ee159)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x56af11['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x5ee159+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x56af11['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',_0x2dc56d=document['createElement']('div');_0x2dc56d['id']='utils-modal',_0x2dc56d['className']='modal',_0x2dc56d['innerHTML']=_0x2485c2,document['body']['appendChild'](_0x2dc56d);const _0x126d74=document['getElementById']('utils-modal-close');_0x126d74&&_0x126d74['addEventListener']('click',()=>this['hideModal']());const _0x4bc41a=_0x2dc56d['querySelectorAll']('[data-btn-index]');_0x4bc41a['forEach'](_0x2513f9=>{const _0x4e894c=parseInt(_0x2513f9['dataset']['btnIndex']);buttons[_0x4e894c]?.['onClick']&&_0x2513f9['addEventListener']('click',buttons[_0x4e894c]['onClick']);});const _0x5312e0=document['getElementById']('utils-modal-overlay');_0x5312e0&&_0x5312e0['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x29f55c=document['getElementById']('utils-modal');_0x29f55c&&_0x29f55c['remove']();},'parseKeyValuePairs'(_0x3d440b){const _0x30f729={};if(!_0x3d440b)return _0x30f729;return _0x3d440b['split'](/\r?\n/)['map'](_0x484661=>_0x484661['trim']())['filter'](Boolean)['forEach'](_0x186bf6=>{const _0x5bc070=_0x186bf6['indexOf']('=');if(_0x5bc070>0x0){const _0x50b6fa=_0x186bf6['slice'](0x0,_0x5bc070)['trim'](),_0x24ce03=_0x186bf6['slice'](_0x5bc070+0x1)['trim']();if(_0x50b6fa)_0x30f729[_0x50b6fa]=_0x24ce03;}}),_0x30f729;},'debounce'(_0x104b72,_0x247438=0xfa){let _0x4565c3=null;return(..._0x38c550)=>{clearTimeout(_0x4565c3),_0x4565c3=setTimeout(()=>_0x104b72['apply'](this,_0x38c550),_0x247438);};},'formatTimestamp'(_0x4d782e){if(!_0x4d782e)return'N/A';const _0x454fb1=new Date(_0x4d782e);return _0x454fb1['toLocaleDateString']()+'\x20'+_0x454fb1['toLocaleTimeString']();},'getQueryParams'(){const _0xbe18ca=new URLSearchParams(window['location']['search']),_0x5c44e6={};for(const [_0x3d1c16,_0x180084]of _0xbe18ca){_0x5c44e6[_0x3d1c16]=_0x180084;}return _0x5c44e6;},'formatDuration'(_0x1b50f4,_0x35603d){if(!_0x1b50f4)return'N/A';const _0x502213=new Date(_0x1b50f4),_0xd4e84=_0x35603d?new Date(_0x35603d):new Date(),_0x18d774=_0xd4e84-_0x502213;if(_0x18d774<0x0)return'0s';const _0x54671a=Math['floor'](_0x18d774/0x3e8),_0x5249d9=Math['floor'](_0x54671a/0x3c),_0xecc4f2=Math['floor'](_0x5249d9/0x3c),_0x36d97c=Math['floor'](_0xecc4f2/0x18);if(_0x54671a<0x3c)return _0x54671a+'s';if(_0x5249d9<0x3c)return _0x5249d9+'m\x20'+_0x54671a%0x3c+'s';if(_0xecc4f2<0x18)return _0xecc4f2+'h\x20'+_0x5249d9%0x3c+'m\x20'+_0x54671a%0x3c+'s';return _0x36d97c+'d\x20'+_0xecc4f2%0x18+'h\x20'+_0x5249d9%0x3c+'m';},'renderMarkdown'(_0x55e33e,_0x2d6c53={}){if(!_0x55e33e)return'';_0x55e33e=this['rewriteAttachmentLinks'](_0x55e33e,_0x2d6c53),_0x55e33e=this['rewriteColorSyntax'](_0x55e33e);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x55e33e,_0x2d6c53);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x55e33e);}catch(_0x450b1d){return console['error']('Markdown\x20parsing\x20error:',_0x450b1d),this['renderMarkdownFallback'](_0x55e33e,_0x2d6c53);}},'rewriteAttachmentLinks'(_0x21f8f4,_0x4e292a={}){const _0x2175e5=typeof _0x4e292a['resolveAttachmentUrl']==='function'?_0x4e292a['resolveAttachmentUrl']:_0x4e292a['taskId']?_0x473e39=>API_BASE+'/tasks/'+_0x4e292a['taskId']+'/attachments/'+encodeURIComponent(_0x473e39):null;if(!_0x2175e5)return _0x21f8f4;return String(_0x21f8f4)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x4c5d7e,_0x501878)=>{const _0x33a421=String(_0x501878||'')['trim']();if(!_0x33a421)return _0x4c5d7e;let _0x50d3d1=_0x33a421;try{_0x50d3d1=decodeURIComponent(_0x33a421);}catch{}const _0xdced81=_0x2175e5(_0x50d3d1);if(!_0xdced81)return _0x4c5d7e;return']('+_0xdced81+')';});},'rewriteColorSyntax'(_0x58b644){if(!_0x58b644)return _0x58b644;return String(_0x58b644)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x57e65b,_0x3bc4cf,_0x196792)=>{const _0x4784c0=this['rewriteColorSyntax'](_0x196792);return'<span\x20style=\x22color:\x20'+_0x3bc4cf+'\x22>'+_0x4784c0+'</span>';});},'renderMarkdownFallback'(_0x18c660,_0x2857c0={}){if(!_0x18c660)return'';_0x18c660=_0x18c660['replace'](/\r\n/g,'\x0a'),_0x18c660=_0x18c660['replace'](/\r/g,'\x0a'),_0x18c660=this['rewriteAttachmentLinks'](_0x18c660,_0x2857c0);let _0x72f7bc=this['escapeHtml'](_0x18c660);return _0x72f7bc=_0x72f7bc['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x72f7bc=_0x72f7bc['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x72f7bc=_0x72f7bc['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x72f7bc=_0x72f7bc['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x72f7bc=_0x72f7bc['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x72f7bc=_0x72f7bc['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x72f7bc=_0x72f7bc['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x72f7bc=_0x72f7bc['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x72f7bc=_0x72f7bc['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x72f7bc=_0x72f7bc['replace'](/\n\n/g,'</p><p>'),_0x72f7bc=_0x72f7bc['replace'](/\n/g,'<br>'),'<p>'+_0x72f7bc+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1274f7=new Uint8Array(0x10);crypto['getRandomValues'](_0x1274f7),_0x1274f7[0x6]=_0x1274f7[0x6]&0xf|0x40,_0x1274f7[0x8]=_0x1274f7[0x8]&0x3f|0x80;const _0x41a64e=Array['from'](_0x1274f7,_0xb513ba=>_0xb513ba['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x41a64e['slice'](0x0,0x8)+'-'+_0x41a64e['slice'](0x8,0xc)+'-'+_0x41a64e['slice'](0xc,0x10)+'-'+_0x41a64e['slice'](0x10,0x14)+'-'+_0x41a64e['slice'](0x14);}};export class CustomSelect{constructor(_0xc28931,_0x3fddd0={}){this['nativeSelect']=_0xc28931,this['options']=_0x3fddd0,this['isOpen']=![],this['selectedValue']=_0xc28931['value']||'',this['searchable']=_0x3fddd0['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x48b622=document['createElement']('div');_0x48b622['className']='custom-select';const _0x2b863a=document['createElement']('div');_0x2b863a['className']='custom-select-trigger',_0x2b863a['setAttribute']('tabindex','0'),_0x2b863a['setAttribute']('role','button'),_0x2b863a['setAttribute']('aria-haspopup','listbox');const _0x5ceb16=document['createElement']('span');_0x5ceb16['className']='custom-select-trigger-text';const _0x22c9e9=document['createElement']('span');_0x22c9e9['className']='custom-select-arrow',_0x22c9e9['textContent']='▼',_0x2b863a['appendChild'](_0x5ceb16),_0x2b863a['appendChild'](_0x22c9e9);const _0xf99040=document['createElement']('div');_0xf99040['className']='custom-select-dropdown',_0xf99040['setAttribute']('role','listbox');if(this['searchable']){const _0x3c4956=document['createElement']('div');_0x3c4956['className']='custom-select-search';const _0x5c42e2=document['createElement']('input');_0x5c42e2['type']='text',_0x5c42e2['className']='custom-select-search-input',_0x5c42e2['placeholder']='Type\x20to\x20search...',_0x5c42e2['setAttribute']('aria-label','Search\x20options'),_0x5c42e2['addEventListener']('input',_0x433e4f=>{this['searchQuery']=_0x433e4f['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x5c42e2['addEventListener']('keydown',_0x1e2a37=>{if(_0x1e2a37['key']==='Escape')_0x1e2a37['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x1e2a37['key']==='Enter'){_0x1e2a37['preventDefault'](),_0x1e2a37['stopPropagation']();const _0x426180=_0xf99040['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x426180){const _0x57613c=_0x426180['getAttribute']('data-value');this['select'](_0x57613c);}}}}),_0x3c4956['appendChild'](_0x5c42e2),_0xf99040['appendChild'](_0x3c4956),this['searchInput']=_0x5c42e2;}const _0x2c06bb=document['createElement']('div');_0x2c06bb['className']='custom-select-options',_0xf99040['appendChild'](_0x2c06bb),_0x48b622['appendChild'](_0x2b863a),_0x48b622['appendChild'](_0xf99040),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x48b622,this['nativeSelect']),this['wrapper']=_0x48b622,this['trigger']=_0x2b863a,this['triggerText']=_0x5ceb16,this['dropdown']=_0xf99040,this['optionsContainer']=_0x2c06bb,_0x2b863a['addEventListener']('click',()=>this['toggle']()),_0x2b863a['addEventListener']('keydown',_0x13669d=>this['handleKeydown'](_0x13669d)),document['addEventListener']('click',_0x731551=>{!_0x48b622['contains'](_0x731551['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x464508=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x464508['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x2550c9=new MutationObserver(()=>{this['updateDisabledState']();});_0x2550c9['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4ff47b=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4ff47b['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0xf384dd=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0xf384dd),this['trigger']['setAttribute']('aria-disabled',_0xf384dd?'true':'false'),this['trigger']['setAttribute']('tabindex',_0xf384dd?'-1':'0'),_0xf384dd&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x41f723=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x2975b0=_0x41f723['filter'](_0x528fab=>!_0x528fab['disabled']&&!_0x528fab['hidden']);_0x41f723['forEach']((_0x28f5ef,_0x3c3438)=>{const _0x488bd9=document['createElement']('div');_0x488bd9['className']='custom-select-option',_0x488bd9['textContent']=_0x28f5ef['textContent'],_0x488bd9['setAttribute']('data-value',_0x28f5ef['value']),_0x488bd9['setAttribute']('data-index',_0x3c3438),_0x488bd9['setAttribute']('role','option'),_0x28f5ef['disabled']?_0x488bd9['classList']['add']('disabled'):_0x488bd9['addEventListener']('click',()=>this['select'](_0x28f5ef['value'])),_0x28f5ef['value']===this['selectedValue']&&_0x488bd9['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x488bd9),this['allOptions']['push']({'element':_0x488bd9,'text':_0x28f5ef['textContent']['toLowerCase'](),'value':_0x28f5ef['value'],'disabled':_0x28f5ef['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3cdc50=this['searchInput']['parentElement'];_0x2975b0['length']>0x3?_0x3cdc50['style']['display']='':_0x3cdc50['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x1b8214=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x4c628d=>{if(!_0x1b8214||_0x4c628d['disabled'])_0x4c628d['element']['style']['display']='';else{const _0x2caad7=_0x4c628d['text']['includes'](_0x1b8214);_0x4c628d['element']['style']['display']=_0x2caad7?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x38502e){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x38502e,this['nativeSelect']['value']=_0x38502e;const _0x315c9b=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x315c9b),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x9e2cd9=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x9e2cd9&&(this['triggerText']['textContent']=_0x9e2cd9['textContent'],_0x9e2cd9['disabled']||_0x9e2cd9['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x1abe13=>{_0x1abe13['getAttribute']('data-value')===this['selectedValue']?_0x1abe13['classList']['add']('selected'):_0x1abe13['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 _0x40e662=window['getComputedStyle'](this['dropdown']);if(_0x40e662['position']==='fixed'){const _0x12eaba=this['trigger']['getBoundingClientRect'](),_0x88643c=parseInt(_0x40e662['maxHeight'])||0xc8,_0x2ca19f=window['innerHeight'],_0x5e684e=_0x2ca19f-_0x12eaba['bottom'],_0x32c70a=_0x12eaba['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x289c53;_0x5e684e<_0x88643c&&_0x32c70a>_0x5e684e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x2ca19f-_0x12eaba['top']+'px',_0x289c53=Math['min'](_0x88643c,_0x32c70a-0xa),this['dropdown']['style']['maxHeight']=_0x289c53+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x12eaba['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x289c53=Math['min'](_0x88643c,_0x5e684e-0xa),this['dropdown']['style']['maxHeight']=_0x289c53+'px');if(this['optionsContainer']){let _0x4e1e65=_0x289c53;if(this['searchInput']){const _0x1b6623=this['searchInput']['parentElement'];_0x1b6623&&(_0x4e1e65-=_0x1b6623['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4e1e65)+'px';}this['dropdown']['style']['left']=_0x12eaba['left']+'px',this['dropdown']['style']['width']=_0x12eaba['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x5bce7e=this['searchInput']['parentElement'];_0x5bce7e&&_0x5bce7e['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'](_0x569cab){if(this['nativeSelect']['disabled'])return;if(_0x569cab['key']==='Enter'||_0x569cab['key']==='\x20')_0x569cab['preventDefault'](),this['toggle']();else _0x569cab['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x71be43='\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',_0x71be43),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x3fc348=document['getElementById']('confirm-dialog-close'),_0x161f9f=document['getElementById']('confirm-dialog-cancel'),_0x45522d=document['getElementById']('confirm-dialog-confirm'),_0x1ebcb3=this['_modal']['querySelector']('.modal-overlay');_0x3fc348['addEventListener']('click',()=>this['_resolve'](![])),_0x161f9f['addEventListener']('click',()=>this['_resolve'](![])),_0x45522d['addEventListener']('click',()=>this['_resolve'](!![])),_0x1ebcb3['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x422bc8=>{if(_0x422bc8['key']==='Escape')_0x422bc8['preventDefault'](),this['_resolve'](![]);else _0x422bc8['key']==='Enter'&&(_0x422bc8['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x175d5c,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x45aab7=>{this['_resolvePromise']=_0x45aab7,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x175d5c;const _0x2b6155=document['getElementById']('confirm-dialog-cancel'),_0x933108=document['getElementById']('confirm-dialog-confirm');_0x2b6155['textContent']=cancelText,_0x933108['textContent']=confirmText,_0x933108['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x933108['focus']();});},'_resolve'(_0x3f9d35){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x3f9d35),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x252fbb,_0x122e60={}){this['container']=_0x252fbb,this['options']={'placeholder':_0x122e60['placeholder']||'Type\x20to\x20search...','maxItems':_0x122e60['maxItems']||0x64,'loadItems':_0x122e60['loadItems']||(async()=>[]),'renderItem':_0x122e60['renderItem']||(_0x406fde=>({'primary':String(_0x406fde),'secondary':''})),'onSelect':_0x122e60['onSelect']||(()=>{}),'filterItems':_0x122e60['filterItems']||null,'getItemValue':_0x122e60['getItemValue']||(_0x2de5ae=>_0x2de5ae),'sortItems':_0x122e60['sortItems']||null,'debounceMs':_0x122e60['debounceMs']||0xc8,'minCharsForSearch':_0x122e60['minCharsForSearch']||0x0,'emptyMessage':_0x122e60['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x122e60['loadingMessage']||'Loading...','preload':_0x122e60['preload']!==![],'searchMode':_0x122e60['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',_0x5b7d19=>this['onBlur'](_0x5b7d19)),this['input']['addEventListener']('input',_0xb7780b=>this['onInput'](_0xb7780b)),this['input']['addEventListener']('keydown',_0x48d970=>this['onKeydown'](_0x48d970)),this['clearBtn']['addEventListener']('mousedown',_0x124f76=>{_0x124f76['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x450e4f=>{_0x450e4f['preventDefault']();}),document['addEventListener']('click',_0x4e5223=>{!this['wrapper']['contains'](_0x4e5223['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(_0x3a3031){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3a3031);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x31ae07){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x144964){const _0x2b7a71=_0x144964['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2b7a71);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2b7a71):this['loadAndShow'](_0x2b7a71);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x2cb1e7){switch(_0x2cb1e7['key']){case'ArrowDown':_0x2cb1e7['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x2cb1e7['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x2cb1e7['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x2cb1e7['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x20ccef){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0xfdeb04=this['selectedIndex']+_0x20ccef;if(_0xfdeb04>=0x0&&_0xfdeb04<this['filteredItems']['length']){this['selectedIndex']=_0xfdeb04,this['updateSelectionHighlight']();const _0x276728=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x276728[this['selectedIndex']]&&_0x276728[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1eb28b=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1eb28b['forEach']((_0x668896,_0x4b21c1)=>{_0x668896['classList']['toggle']('keyboard-selected',_0x4b21c1===this['selectedIndex']);});}async['loadAndShow'](_0x49b8cd){this['showLoading']();try{const _0x1d7c70=await this['options']['loadItems'](_0x49b8cd);if(this['options']['searchMode']==='server'){let _0x22d630=_0x1d7c70;this['options']['sortItems']&&(_0x22d630=this['options']['sortItems']([..._0x1d7c70]));this['filteredItems']=_0x22d630;const _0x36e3e1=this['filteredItems']['length']>=this['options']['maxItems'];_0x36e3e1&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x36e3e1),this['open']();}else this['allItems']=_0x1d7c70,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x49b8cd);}catch(_0x53d965){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x53d965),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x237c40){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x237c40):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x53f5fa=this['filteredItems']['length']>=this['options']['maxItems'];_0x53f5fa&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x53f5fa),this['open']();}['renderItems'](_0x2a224b){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']((_0x2835c5,_0x420add)=>{const _0x419928=document['createElement']('div');_0x419928['className']='autocomplete-select-item',_0x419928['setAttribute']('role','option'),_0x419928['setAttribute']('data-index',_0x420add);const _0x2e1001=this['options']['renderItem'](_0x2835c5);let _0x2664f2='';_0x2e1001['icon']&&(_0x2664f2='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x2e1001['iconClass']||'')+'\x22>'+_0x2e1001['icon']+'</span>'),_0x419928['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2664f2+'\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'](_0x2e1001['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2e1001['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x2e1001['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x419928['addEventListener']('click',()=>{this['selectItem'](_0x2835c5);}),_0x419928['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x420add,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x419928);}),_0x2a224b?(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'](_0x54dcca){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x54dcca)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x49a79){this['selectedItem']=_0x49a79;const _0x315ed1=this['options']['renderItem'](_0x49a79);this['input']['value']=_0x315ed1['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x49a79);}['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'](_0xaf5ea8){if(_0xaf5ea8){this['selectedItem']=_0xaf5ea8;const _0x136c61=this['options']['renderItem'](_0xaf5ea8);this['input']['value']=_0x136c61['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x40fc19){this['allItems']=_0x40fc19,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'](_0x5582e1){this['input']['placeholder']=_0x5582e1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x331a07=null){const _0xf003a7=document['getElementById']('admin-menu-container'),_0x38b236=document['getElementById']('admin-menu-btn'),_0x3207fd=document['getElementById']('admin-menu');if(!_0xf003a7||!_0x38b236||!_0x3207fd)return;try{!_0x331a07&&(_0x331a07=await API['getCurrentUser']());if(_0x331a07){const _0x5089a6=window['Permissions'],_0x4feb5e=_0x5089a6['hasServerPermission'](_0x331a07,'*')||_0x5089a6['hasEnvPermission'](_0x331a07,'environments:manage')||_0x5089a6['hasServerPermission'](_0x331a07,'users:create')||_0x5089a6['hasTeamPermission'](_0x331a07,'teams:manage')||_0x5089a6['hasEnvPermission'](_0x331a07,'environments:view_details');if(!_0x4feb5e)return;_0xf003a7['hidden']=![];if(!_0x5089a6['hasServerPermission'](_0x331a07,'*')){const _0x526978=_0x3207fd['querySelectorAll']('.admin-menu-item');_0x526978['forEach'](_0x10a3e8=>{const _0x5d8c2b=_0x10a3e8['querySelector']('.option-text')?.['textContent']?.['trim']();_0x5d8c2b==='Users'&&!_0x5089a6['hasServerPermission'](_0x331a07,'users:create')&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Skills'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Server\x20Settings'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Server\x20Administration'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Git\x20History'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Roles'&&(_0x10a3e8['hidden']=!![]);});}_0x38b236['addEventListener']('click',_0x26529f=>{_0x26529f['stopPropagation']();const _0x56cb23=document['getElementById']('actions-menu');if(_0x56cb23)_0x56cb23['hidden']=!![];_0x3207fd['hidden']=!_0x3207fd['hidden'];}),document['addEventListener']('click',_0x1dfc1e=>{!_0x3207fd['hidden']&&!_0x38b236['contains'](_0x1dfc1e['target'])&&!_0x3207fd['contains'](_0x1dfc1e['target'])&&(_0x3207fd['hidden']=!![]);}),document['addEventListener']('keydown',_0x42da0f=>{_0x42da0f['key']==='Escape'&&!_0x3207fd['hidden']&&(_0x3207fd['hidden']=!![]);});}}catch(_0x5ee658){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x5ee658['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 _0xe60347=window['location']['pathname'],_0x4e5baf=_0xe60347['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x4e5baf)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x4e5baf[0x1]),_0x4e5baf[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xf02f52={}){const _0x5c72d5=new URLSearchParams();_0xf02f52['userId']&&_0x5c72d5['set']('userId',String(_0xf02f52['userId']));_0xf02f52['automation']&&_0x5c72d5['set']('automation',String(_0xf02f52['automation']));const _0x2d024f=API_BASE+'/tasks/stats'+(_0x5c72d5['toString']()?'?'+_0x5c72d5['toString']():''),_0x102d61=await fetch(_0x2d024f);if(!_0x102d61['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x102d61['statusText']);return await _0x102d61['json']();},async 'getTasks'(_0x1d0cc3={}){const _0x433a40=new URLSearchParams();_0x1d0cc3['status']&&_0x433a40['set']('status',String(_0x1d0cc3['status']));_0x1d0cc3['environment']&&_0x433a40['set']('environment',String(_0x1d0cc3['environment']));_0x1d0cc3['automation']&&_0x433a40['set']('automation',String(_0x1d0cc3['automation']));if(_0x1d0cc3['include']){const _0x1c4525=Array['isArray'](_0x1d0cc3['include'])?_0x1d0cc3['include']['join'](','):String(_0x1d0cc3['include']);_0x1c4525&&_0x433a40['set']('include',_0x1c4525);}_0x1d0cc3['filter']&&_0x433a40['set']('filter',String(_0x1d0cc3['filter']));_0x1d0cc3['page']&&_0x433a40['set']('page',String(_0x1d0cc3['page']));_0x1d0cc3['limit']&&_0x433a40['set']('limit',String(_0x1d0cc3['limit']));_0x1d0cc3['userId']&&_0x433a40['set']('userId',String(_0x1d0cc3['userId']));_0x1d0cc3['search']&&_0x433a40['set']('search',String(_0x1d0cc3['search']));_0x1d0cc3['includeChildTasks']&&_0x433a40['set']('includeChildTasks','true');const _0x51ffb5=API_BASE+'/tasks'+(_0x433a40['toString']()?'?'+_0x433a40['toString']():''),_0x555d2c=await fetch(_0x51ffb5);if(!_0x555d2c['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x555d2c['statusText']);return await _0x555d2c['json']();},async 'getAutomations'(_0x47be7c={}){const _0x2912b1=new URLSearchParams();_0x47be7c['environment']&&_0x2912b1['set']('environment',String(_0x47be7c['environment']));const _0xc3bf79=await fetch(API_BASE+'/api/automations'+(_0x2912b1['toString']()?'?'+_0x2912b1['toString']():''));if(!_0xc3bf79['ok']){const _0x56fb5f=await _0xc3bf79['json']()['catch'](()=>({}));throw new Error(_0x56fb5f['message']||_0x56fb5f['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0xc3bf79['statusText']);}return await _0xc3bf79['json']();},async 'getAutomation'(_0x15ba31){const _0x4c1b89=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x15ba31));if(!_0x4c1b89['ok']){const _0x4077e2=await _0x4c1b89['json']()['catch'](()=>({}));throw new Error(_0x4077e2['message']||_0x4077e2['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x4c1b89['statusText']);}return await _0x4c1b89['json']();},async 'createAutomation'(_0x233012){const _0x54489c=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x233012||{})});if(!_0x54489c['ok']){const _0x266bb8=await _0x54489c['json']()['catch'](()=>({}));throw new Error(_0x266bb8['message']||_0x266bb8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x54489c['statusText']);}return await _0x54489c['json']();},async 'updateAutomation'(_0x1fc2b7,_0xeb4ab6){const _0x5b3518=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1fc2b7),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xeb4ab6||{})});if(!_0x5b3518['ok']){const _0x25fddc=await _0x5b3518['json']()['catch'](()=>({}));throw new Error(_0x25fddc['message']||_0x25fddc['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5b3518['statusText']);}return await _0x5b3518['json']();},async 'deleteAutomation'(_0x54d9e1){const _0x38a4eb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x54d9e1),{'method':'DELETE'});if(!_0x38a4eb['ok']){const _0x563176=await _0x38a4eb['json']()['catch'](()=>({}));throw new Error(_0x563176['message']||_0x563176['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x38a4eb['statusText']);}return await _0x38a4eb['json']();},async 'triggerAutomation'(_0x4d2170){const _0x44b585=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4d2170)+'/trigger',{'method':'POST'});if(!_0x44b585['ok']){const _0x66d305=await _0x44b585['json']()['catch'](()=>({}));throw new Error(_0x66d305['message']||_0x66d305['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x44b585['statusText']);}return await _0x44b585['json']();},async 'setAutomationEnabled'(_0x4307a9,_0x585d90){const _0x245e26=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4307a9)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x585d90})});if(!_0x245e26['ok']){const _0x2ff61f=await _0x245e26['json']()['catch'](()=>({}));throw new Error(_0x2ff61f['message']||_0x2ff61f['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x245e26['statusText']);}return await _0x245e26['json']();},async 'getAutomationHistory'(_0x57b199,_0x24f577=0x32){const _0x466c5d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x57b199)+'/history?limit='+encodeURIComponent(String(_0x24f577)));if(!_0x466c5d['ok']){const _0x2f99cb=await _0x466c5d['json']()['catch'](()=>({}));throw new Error(_0x2f99cb['message']||_0x2f99cb['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x466c5d['statusText']);}return await _0x466c5d['json']();},async 'getTask'(_0x274f40,_0x53cedc={}){const _0x4bbf29=new URLSearchParams();if(_0x53cedc['include']){const _0x51a3bb=Array['isArray'](_0x53cedc['include'])?_0x53cedc['include']['join'](','):String(_0x53cedc['include']);if(_0x51a3bb)_0x4bbf29['set']('include',_0x51a3bb);}const _0x2d2559=await fetch(API_BASE+'/tasks/'+_0x274f40+(_0x4bbf29['toString']()?'?'+_0x4bbf29['toString']():''));if(!_0x2d2559['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x2d2559['statusText']);return await _0x2d2559['json']();},async 'getTaskResults'(_0x229952){const _0x596e39=await fetch(API_BASE+'/tasks/'+_0x229952+'/results');if(!_0x596e39['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x596e39['statusText']);return await _0x596e39['json']();},async 'getTaskPatches'(_0xd10ccc){const _0x1e2222=await fetch(API_BASE+'/tasks/'+_0xd10ccc+'/patches');if(!_0x1e2222['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x1e2222['statusText']);return await _0x1e2222['json']();},async 'getTaskAttachments'(_0x1dfae2){const _0x9640e0=await fetch(API_BASE+'/tasks/'+_0x1dfae2+'/attachments');if(!_0x9640e0['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x9640e0['statusText']);return await _0x9640e0['json']();},async 'uploadAttachments'(_0x236a68,_0x38ed5c){const _0xc063c9=new FormData();for(const _0xedbffe of _0x38ed5c){_0xc063c9['append']('attachments',_0xedbffe);}const _0x38b68d=await fetch(API_BASE+'/tasks/'+_0x236a68+'/attachments',{'method':'POST','body':_0xc063c9});if(!_0x38b68d['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x38b68d['statusText']);return await _0x38b68d['json']();},async 'isAINameGenerationAvailable'(){try{const _0x230e59=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x230e59['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x230e59['json']();}catch(_0x2fd878){return{'available':![],'reason':_0x2fd878['message']};}},async 'generateTaskName'(_0x42111a){try{const _0x2cd5fa=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x42111a})});return await _0x2cd5fa['json']();}catch(_0x570470){return{'success':![],'error':_0x570470['message']};}},async 'createTask'(_0x2b3e05){let _0x38d0b5,_0x318008={};if(_0x2b3e05['files']&&_0x2b3e05['files']['length']>0x0){const _0x560528=new FormData();for(const [_0x3d728b,_0x1cea81]of Object['entries'](_0x2b3e05)){if(_0x3d728b!=='files'){if(_0x1cea81==null)continue;typeof _0x1cea81==='object'?_0x560528['append'](_0x3d728b,JSON['stringify'](_0x1cea81)):_0x560528['append'](_0x3d728b,String(_0x1cea81));}}for(const _0x1711ac of _0x2b3e05['files']){_0x560528['append']('attachments',_0x1711ac);}_0x38d0b5=_0x560528;}else _0x318008['Content-Type']='application/json',_0x38d0b5=JSON['stringify'](_0x2b3e05);const _0x411659=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x318008,'body':_0x38d0b5});if(!_0x411659['ok']){const _0x201ab2=await _0x411659['json'](),_0x2879b5=new Error(_0x201ab2['error']||'Failed\x20to\x20create\x20task:\x20'+_0x411659['statusText']),{message:_0x43e583,..._0x142bdb}=_0x201ab2;Object['assign'](_0x2879b5,_0x142bdb);throw _0x2879b5;}return await _0x411659['json']();},async 'createTestTask'(_0x230595){const _0x2f3096=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x230595)});if(!_0x2f3096['ok']){const _0x23463c=await _0x2f3096['json']();throw new Error(_0x23463c['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x2f3096['statusText']);}return await _0x2f3096['json']();},async 'createEphemeralTest'(_0x4baeae){const _0x493ee9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4baeae)});if(!_0x493ee9['ok']){const _0x502a31=await _0x493ee9['json']();throw new Error(_0x502a31['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x493ee9['statusText']);}return await _0x493ee9['json']();},async 'createDeployTask'(_0x1af497){const _0x41d025=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1af497)});if(!_0x41d025['ok']){const _0x504d14=await _0x41d025['json']();throw new Error(_0x504d14['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x41d025['statusText']);}return await _0x41d025['json']();},async 'getEnvironments'(){const _0x335945=await fetch(API_BASE+'/environments');if(!_0x335945['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x335945['statusText']);return await _0x335945['json']();},async 'getEnvironment'(_0x1a034e){const _0xad6ee8=await fetch(API_BASE+'/environments/'+_0x1a034e);if(!_0xad6ee8['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0xad6ee8['statusText']);return await _0xad6ee8['json']();},async 'getEnvironmentRepoHistory'(_0x1d291f,_0x22a130,_0x294906={}){if(!_0x1d291f||!_0x22a130)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x29b9ba=new URLSearchParams();if(_0x294906['limit'])_0x29b9ba['set']('limit',String(_0x294906['limit']));if(_0x294906['offset'])_0x29b9ba['set']('offset',String(_0x294906['offset']));if(_0x294906['search'])_0x29b9ba['set']('search',String(_0x294906['search']));if(_0x294906['branch'])_0x29b9ba['set']('branch',String(_0x294906['branch']));const _0xccc3ed=API_BASE+'/environments/'+encodeURIComponent(_0x1d291f)+'/repos/'+encodeURIComponent(_0x22a130)+'/git/history',_0x293aa3=await fetch(''+_0xccc3ed+(_0x29b9ba['toString']()?'?'+_0x29b9ba['toString']():''));if(!_0x293aa3['ok']){const _0x22e588=await _0x293aa3['json']()['catch'](()=>({}));throw new Error(_0x22e588['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x293aa3['statusText']);}return await _0x293aa3['json']();},async 'getEnvironmentRepoCommit'(_0x4a425e,_0x17b3ab,_0x473e59){if(!_0x4a425e||!_0x17b3ab||!_0x473e59)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xf7c7f2=API_BASE+'/environments/'+encodeURIComponent(_0x4a425e)+'/repos/'+encodeURIComponent(_0x17b3ab)+'/git/commits/'+encodeURIComponent(_0x473e59),_0x1da249=await fetch(_0xf7c7f2);if(!_0x1da249['ok']){const _0x22c492=await _0x1da249['json']()['catch'](()=>({}));throw new Error(_0x22c492['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1da249['statusText']);}return await _0x1da249['json']();},async 'getEnvironmentRepoBranches'(_0x26e52f,_0x251e53){if(!_0x26e52f||!_0x251e53)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5200d4=API_BASE+'/environments/'+encodeURIComponent(_0x26e52f)+'/repos/'+encodeURIComponent(_0x251e53)+'/git/branches',_0x588c46=await fetch(_0x5200d4);if(!_0x588c46['ok']){const _0x32159f=await _0x588c46['json']()['catch'](()=>({}));throw new Error(_0x32159f['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x588c46['statusText']);}return await _0x588c46['json']();},async 'revertEnvironmentRepoCommit'(_0x3dfb12,_0x4dcbc5,_0x2cadd7,_0x445dba={}){if(!_0x3dfb12||!_0x4dcbc5||!_0x2cadd7)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5c6e2a=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x3dfb12)+'/repos/'+encodeURIComponent(_0x4dcbc5)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2cadd7,..._0x445dba})});if(!_0x5c6e2a['ok']){const _0x534552=await _0x5c6e2a['json']()['catch'](()=>({}));throw new Error(_0x534552['message']||_0x534552['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5c6e2a['statusText']);}return await _0x5c6e2a['json']();},async 'getTemplates'(_0x5a1c93={}){const _0x16314c=new URLSearchParams();if(_0x5a1c93['include']){const _0x14cc65=Array['isArray'](_0x5a1c93['include'])?_0x5a1c93['include']['join'](','):String(_0x5a1c93['include']);if(_0x14cc65)_0x16314c['set']('include',_0x14cc65);}const _0x4c4383=await fetch(API_BASE+'/templates'+(_0x16314c['toString']()?'?'+_0x16314c['toString']():''));if(!_0x4c4383['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x4c4383['statusText']);return await _0x4c4383['json']();},async 'getTemplatesForEnvironment'(_0x23dded,_0xdf387d={}){if(!_0x23dded)throw new Error('Environment\x20name\x20is\x20required');const _0x299d74=new URLSearchParams();if(_0xdf387d['include']){const _0x5ab807=Array['isArray'](_0xdf387d['include'])?_0xdf387d['include']['join'](','):String(_0xdf387d['include']);if(_0x5ab807)_0x299d74['set']('include',_0x5ab807);}const _0x6fde66=await fetch(API_BASE+'/templates/'+_0x23dded+(_0x299d74['toString']()?'?'+_0x299d74['toString']():''));if(!_0x6fde66['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x23dded+':\x20'+_0x6fde66['statusText']);return await _0x6fde66['json']();},async 'getTemplate'(_0x64e7aa,_0x281825,_0x157ca0={}){if(!_0x64e7aa||!_0x281825)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x574145=new URLSearchParams();if(_0x157ca0['include']){const _0x5b213d=Array['isArray'](_0x157ca0['include'])?_0x157ca0['include']['join'](','):String(_0x157ca0['include']);if(_0x5b213d)_0x574145['set']('include',_0x5b213d);}const _0x39378e=await fetch(API_BASE+'/templates/'+_0x64e7aa+'/'+_0x281825+(_0x574145['toString']()?'?'+_0x574145['toString']():''));if(!_0x39378e['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x39378e['statusText']);return await _0x39378e['json']();},async 'getTaskLogs'(_0x1d42fd,_0x523e4d={}){if(!_0x1d42fd)throw new Error('Task\x20ID\x20is\x20required');const _0x288b53=new URLSearchParams();_0x523e4d['tail']&&_0x288b53['set']('tail',String(_0x523e4d['tail']));const _0x319a8f=await fetch(API_BASE+'/tasks/'+_0x1d42fd+'/logs'+(_0x288b53['toString']()?'?'+_0x288b53['toString']():''));if(!_0x319a8f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x319a8f['statusText']);return await _0x319a8f['text']();},async 'getContainers'(){const _0x505882=await fetch(API_BASE+'/containers');if(!_0x505882['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x505882['statusText']);return await _0x505882['json']();},async 'getContainer'(_0x248763){const _0x47bf2a=await fetch(API_BASE+'/containers/'+_0x248763);if(!_0x47bf2a['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x47bf2a['statusText']);return await _0x47bf2a['json']();},async 'startInteractiveContainer'(_0x4c3bdb){const _0x3caf78=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c3bdb)});if(!_0x3caf78['ok']){const _0x1d7e1c=await _0x3caf78['json']()['catch'](()=>({}));throw new Error(_0x1d7e1c['message']||'Failed\x20to\x20start\x20container:\x20'+_0x3caf78['statusText']);}return await _0x3caf78['json']();},async 'startContainerCodeServer'(_0x404c8e,_0xe9e765={}){if(!_0x404c8e)throw new Error('Container\x20ID\x20is\x20required');const _0x5c6b49=new URLSearchParams();_0xe9e765['theme']&&_0x5c6b49['set']('theme',_0xe9e765['theme']);const _0x2da24a=await fetch(API_BASE+'/containers/'+_0x404c8e+'/code-server'+(_0x5c6b49['toString']()?'?'+_0x5c6b49['toString']():'')),_0x3977d=await _0x2da24a['json']()['catch'](()=>({}));if(!_0x2da24a['ok'])throw new Error(_0x3977d['message']||_0x3977d['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x2da24a['statusText']);return _0x3977d;},async 'stopContainer'(_0x33beb6){const _0x4daece=await fetch(API_BASE+'/containers/'+_0x33beb6,{'method':'DELETE'});if(!_0x4daece['ok']){const _0x9d2880=await _0x4daece['json']()['catch'](()=>({}));throw new Error(_0x9d2880['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x4daece['statusText']);}return await _0x4daece['json']();},async 'stopTask'(_0x5ea0d1){if(!_0x5ea0d1)throw new Error('Task\x20ID\x20is\x20required');const _0x1c2a10=await fetch(API_BASE+'/tasks/'+_0x5ea0d1+'/stop',{'method':'POST'});if(!_0x1c2a10['ok']){const _0x15939c=await _0x1c2a10['json']()['catch'](()=>({}));throw new Error(_0x15939c['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x1c2a10['statusText']);}return await _0x1c2a10['json']();},async 'interruptTask'(_0x3ce681){if(!_0x3ce681)throw new Error('Task\x20ID\x20is\x20required');const _0x11630b=await fetch(API_BASE+'/tasks/'+_0x3ce681+'/interrupt',{'method':'POST'});if(!_0x11630b['ok']){const _0xc8b39d=await _0x11630b['json']()['catch'](()=>({}));throw new Error(_0xc8b39d['error']||_0xc8b39d['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x11630b['statusText']);}return await _0x11630b['json']();},async 'startTask'(_0x55e832){if(!_0x55e832)throw new Error('Task\x20ID\x20is\x20required');const _0x1889e4=await fetch(API_BASE+'/tasks/'+_0x55e832+'/start',{'method':'POST'});if(!_0x1889e4['ok']){const _0x1e9a9e=await _0x1889e4['json']()['catch'](()=>({}));throw new Error(_0x1e9a9e['error']||'Failed\x20to\x20start\x20task:\x20'+_0x1889e4['statusText']);}return await _0x1889e4['json']();},async 'deleteTask'(_0x393e53){if(!_0x393e53)throw new Error('Task\x20ID\x20is\x20required');const _0x219ce1=await fetch(API_BASE+'/tasks/'+_0x393e53,{'method':'DELETE'});if(!_0x219ce1['ok']){const _0x4d52e7=await _0x219ce1['json']()['catch'](()=>({}));throw new Error(_0x4d52e7['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x219ce1['statusText']);}return await _0x219ce1['json']();},async 'refreshTasksFromDisk'(){const _0x841006=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x841006['ok']){const _0x33a43d=await _0x841006['json']()['catch'](()=>({}));throw new Error(_0x33a43d['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x841006['statusText']);}return await _0x841006['json']();},async 'approveTask'(_0x5472d7,_0x4e1c84={}){if(!_0x5472d7)throw new Error('Task\x20ID\x20is\x20required');const _0x283c61={'commit_message':_0x4e1c84['commit_message']||'','pull':_0x4e1c84['pull']??![],'push':_0x4e1c84['push']??![],'conflict_strategy':_0x4e1c84['conflict_strategy']||'rebase'};_0x4e1c84['new_branch']&&(_0x283c61['new_branch']=_0x4e1c84['new_branch']);const _0x36a44e=await fetch(API_BASE+'/tasks/'+_0x5472d7+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x283c61)});if(!_0x36a44e['ok']){const _0x2d37d6=await _0x36a44e['json']()['catch'](()=>({}));let _0x188019=_0x2d37d6['error']||_0x2d37d6['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x36a44e['statusText'];if(_0x2d37d6['results']&&Array['isArray'](_0x2d37d6['results'])){const _0x3f906b=_0x2d37d6['results']['filter'](_0x41dffa=>!_0x41dffa['success']&&_0x41dffa['error']);_0x3f906b['length']>0x0&&(_0x188019=_0x3f906b[0x0]['error']);}const _0x563bac=new Error(_0x188019);_0x563bac['hasConflicts']=_0x2d37d6['results']?.['some'](_0x40326e=>_0x40326e['conflict'])||![];throw _0x563bac;}return await _0x36a44e['json']();},async 'getPullRequestInfo'(_0x42c683){if(!_0x42c683)throw new Error('Task\x20ID\x20is\x20required');const _0x4780bd=await fetch(API_BASE+'/tasks/'+_0x42c683+'/pull-request-info');if(!_0x4780bd['ok']){const _0x58d83e=await _0x4780bd['json']()['catch'](()=>({}));throw new Error(_0x58d83e['error']||_0x58d83e['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4780bd['statusText']);}return await _0x4780bd['json']();},async 'createPullRequests'(_0xb710de,_0x562872){if(!_0xb710de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x562872||!Array['isArray'](_0x562872))throw new Error('repos\x20array\x20is\x20required');const _0x1e24eb=await fetch(API_BASE+'/tasks/'+_0xb710de+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x562872})});if(!_0x1e24eb['ok']){const _0xc7fe26=await _0x1e24eb['json']()['catch'](()=>({}));let _0x3ca286=_0xc7fe26['error']||_0xc7fe26['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x1e24eb['statusText'];if(_0xc7fe26['results']&&Array['isArray'](_0xc7fe26['results'])){const _0x320855=_0xc7fe26['results']['filter'](_0x594b13=>!_0x594b13['success']&&_0x594b13['error']);_0x320855['length']>0x0&&(_0x3ca286=_0x320855[0x0]['error']);}throw new Error(_0x3ca286);}return await _0x1e24eb['json']();},async 'syncRepos'(_0x1b129c){if(!_0x1b129c)throw new Error('Task\x20ID\x20is\x20required');const _0x5a8a24=await fetch(API_BASE+'/tasks/'+_0x1b129c+'/sync-repos',{'method':'POST'});if(!_0x5a8a24['ok']){const _0x445bb7=await _0x5a8a24['json']()['catch'](()=>({}));throw new Error(_0x445bb7['error']||_0x445bb7['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5a8a24['statusText']);}return await _0x5a8a24['json']();},async 'getIbmiSyncInfo'(_0xe6470d){if(!_0xe6470d)throw new Error('Task\x20ID\x20is\x20required');const _0x5360e9=await fetch(API_BASE+'/tasks/'+_0xe6470d+'/ibmi-sync-info');if(!_0x5360e9['ok']){const _0x27bd5f=await _0x5360e9['json']()['catch'](()=>({}));throw new Error(_0x27bd5f['error']||_0x27bd5f['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x5360e9['json']();},async 'getSyncFiles'(_0x465e64){if(!_0x465e64)throw new Error('Task\x20ID\x20is\x20required');const _0x159e36=await fetch(API_BASE+'/tasks/'+_0x465e64+'/sync-to-ibmi/files');if(!_0x159e36['ok']){const _0x1ca8d2=await _0x159e36['json']()['catch'](()=>({}));throw new Error(_0x1ca8d2['error']||_0x1ca8d2['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x159e36['json']();},async 'syncToIbmi'(_0xadd8a2,_0x36fdd5,_0x3339b4=null,_0x1d749a=null,_0x462cd1=null){if(!_0xadd8a2)throw new Error('Task\x20ID\x20is\x20required');const _0x21ad94={'library':_0x36fdd5};if(_0x3339b4)_0x21ad94['user']=_0x3339b4;if(_0x1d749a)_0x21ad94['password']=_0x1d749a;if(_0x462cd1)_0x21ad94['files']=_0x462cd1;const _0x848c81=await fetch(API_BASE+'/tasks/'+_0xadd8a2+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21ad94)});if(!_0x848c81['ok']){const _0x59d121=await _0x848c81['json']()['catch'](()=>({}));throw new Error(_0x59d121['error']||_0x59d121['message']||'Sync\x20failed');}return await _0x848c81['json']();},async 'getIbmiSyncLog'(_0x53d411){if(!_0x53d411)throw new Error('Task\x20ID\x20is\x20required');const _0x1fc7a5=await fetch(API_BASE+'/tasks/'+_0x53d411+'/ibmi-sync-log');if(!_0x1fc7a5['ok']){const _0x2dcc52=await _0x1fc7a5['json']()['catch'](()=>({}));throw new Error(_0x2dcc52['error']||_0x2dcc52['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x1fc7a5['json']();},async 'pullChanges'(_0x4ebc20){if(!_0x4ebc20)throw new Error('Task\x20ID\x20is\x20required');const _0x843ff6=await fetch(API_BASE+'/tasks/'+_0x4ebc20+'/pull-changes',{'method':'POST'});if(!_0x843ff6['ok']){const _0x246f7d=await _0x843ff6['json']()['catch'](()=>({}));throw new Error(_0x246f7d['error']||_0x246f7d['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x843ff6['statusText']);}return await _0x843ff6['json']();},async 'readFile'(_0x3c16b9,_0x1872c3){if(!_0x3c16b9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1872c3)throw new Error('File\x20path\x20is\x20required');const _0xce9d50=await fetch(API_BASE+'/tasks/'+_0x3c16b9+'/files?path='+encodeURIComponent(_0x1872c3));if(!_0xce9d50['ok']){const _0xc5487c=await _0xce9d50['json']()['catch'](()=>({}));throw new Error(_0xc5487c['error']||_0xc5487c['message']||'Failed\x20to\x20read\x20file:\x20'+_0xce9d50['statusText']);}return await _0xce9d50['json']();},'getTaskFileDownloadUrl'(_0x1bcdd2,_0x18bdc4){if(!_0x1bcdd2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x18bdc4)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x1bcdd2+'/files/download?path='+encodeURIComponent(_0x18bdc4);},async 'writeFile'(_0x30c4cd,_0x6d7248,_0x300292){if(!_0x30c4cd)throw new Error('Task\x20ID\x20is\x20required');if(!_0x6d7248)throw new Error('File\x20path\x20is\x20required');if(_0x300292===undefined)throw new Error('Content\x20is\x20required');const _0x58ddf4=await fetch(API_BASE+'/tasks/'+_0x30c4cd+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x6d7248,'content':_0x300292})});if(!_0x58ddf4['ok']){const _0x1b1a92=await _0x58ddf4['json']()['catch'](()=>({}));throw new Error(_0x1b1a92['error']||_0x1b1a92['message']||'Failed\x20to\x20write\x20file:\x20'+_0x58ddf4['statusText']);}return await _0x58ddf4['json']();},async 'uploadTaskFiles'(_0x5b3f3b,_0x51163c,_0x563d54){if(!_0x5b3f3b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x51163c)throw new Error('Target\x20directory\x20is\x20required');if(!_0x563d54||_0x563d54['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x198ba0=new FormData();_0x198ba0['append']('targetDir',_0x51163c);for(const _0x414403 of _0x563d54){_0x198ba0['append']('files',_0x414403,_0x414403['name']);}const _0x5b7a33=await fetch(API_BASE+'/tasks/'+_0x5b3f3b+'/files/upload',{'method':'POST','body':_0x198ba0});if(!_0x5b7a33['ok']){const _0x73b3c1=await _0x5b7a33['json']()['catch'](()=>({}));throw new Error(_0x73b3c1['error']||_0x73b3c1['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x5b7a33['statusText']);}return await _0x5b7a33['json']();},async 'createDirectory'(_0x4c3399,_0x8835df){if(!_0x4c3399)throw new Error('Task\x20ID\x20is\x20required');if(!_0x8835df)throw new Error('Directory\x20path\x20is\x20required');const _0x36edd1=await fetch(API_BASE+'/tasks/'+_0x4c3399+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x8835df})});if(!_0x36edd1['ok']){const _0x186895=await _0x36edd1['json']()['catch'](()=>({}));throw new Error(_0x186895['error']||_0x186895['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x36edd1['statusText']);}return await _0x36edd1['json']();},async 'renamePath'(_0x4fe701,_0x12352e,_0x2cbffd){if(!_0x4fe701)throw new Error('Task\x20ID\x20is\x20required');if(!_0x12352e)throw new Error('Source\x20path\x20is\x20required');if(!_0x2cbffd)throw new Error('Destination\x20path\x20is\x20required');const _0x27ffae=await fetch(API_BASE+'/tasks/'+_0x4fe701+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x12352e,'newPath':_0x2cbffd})});if(!_0x27ffae['ok']){const _0x4f98fb=await _0x27ffae['json']()['catch'](()=>({}));throw new Error(_0x4f98fb['error']||_0x4f98fb['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x27ffae['statusText']);}return await _0x27ffae['json']();},async 'deleteFile'(_0x54b99e,_0x5b18cb){if(!_0x54b99e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5b18cb)throw new Error('File\x20path\x20is\x20required');const _0x4f880a=await fetch(API_BASE+'/tasks/'+_0x54b99e+'/files?path='+encodeURIComponent(_0x5b18cb),{'method':'DELETE'});if(!_0x4f880a['ok']){const _0x1d304b=await _0x4f880a['json']()['catch'](()=>({}));throw new Error(_0x1d304b['error']||_0x1d304b['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x4f880a['statusText']);}return await _0x4f880a['json']();},async 'deleteDirectory'(_0x4f4aa6,_0x8ca208){if(!_0x4f4aa6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x8ca208)throw new Error('Directory\x20path\x20is\x20required');const _0x45450d=await fetch(API_BASE+'/tasks/'+_0x4f4aa6+'/files/directory?path='+encodeURIComponent(_0x8ca208),{'method':'DELETE'});if(!_0x45450d['ok']){const _0x12f881=await _0x45450d['json']()['catch'](()=>({}));throw new Error(_0x12f881['error']||_0x12f881['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x45450d['statusText']);}return await _0x45450d['json']();},async 'discardFile'(_0xf24f5d,_0x95e69f,_0x4be490){if(!_0xf24f5d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x95e69f)throw new Error('File\x20path\x20is\x20required');if(!_0x4be490)throw new Error('Repository\x20path\x20is\x20required');const _0x51acc9=await fetch(API_BASE+'/tasks/'+_0xf24f5d+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x95e69f,'repoPath':_0x4be490})});if(!_0x51acc9['ok']){const _0x20c901=await _0x51acc9['json']()['catch'](()=>({}));throw new Error(_0x20c901['error']||_0x20c901['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x51acc9['statusText']);}return await _0x51acc9['json']();},async 'followUpTask'(_0x356e17,_0x178c7e={}){if(!_0x356e17)throw new Error('Task\x20ID\x20is\x20required');if(!_0x178c7e['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x58f8f1,_0x3a2ff7={};if(_0x178c7e['files']&&_0x178c7e['files']['length']>0x0){const _0x2fa21a=new FormData();_0x2fa21a['append']('instructions',_0x178c7e['instructions']);for(const _0x1a2a9b of _0x178c7e['files']){_0x2fa21a['append']('attachments',_0x1a2a9b);}_0x58f8f1=_0x2fa21a;}else _0x3a2ff7['Content-Type']='application/json',_0x58f8f1=JSON['stringify']({'instructions':_0x178c7e['instructions']});const _0x23887c=await fetch(API_BASE+'/tasks/'+_0x356e17+'/follow-up',{'method':'POST','headers':_0x3a2ff7,'body':_0x58f8f1});if(!_0x23887c['ok']){const _0x530acf=await _0x23887c['json']()['catch'](()=>({}));throw new Error(_0x530acf['error']||_0x530acf['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x23887c['statusText']);}return await _0x23887c['json']();},async 'getTaskRewindPoints'(_0x5a9976){if(!_0x5a9976)throw new Error('Task\x20ID\x20is\x20required');const _0xd3b6e1=await fetch(API_BASE+'/tasks/'+_0x5a9976+'/rewind-points');if(!_0xd3b6e1['ok']){const _0x2cd473=await _0xd3b6e1['json']()['catch'](()=>({}));throw new Error(_0x2cd473['error']||_0x2cd473['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0xd3b6e1['statusText']);}return await _0xd3b6e1['json']();},async 'rewindTask'(_0x4d77dc,_0x19b9b1={}){if(!_0x4d77dc)throw new Error('Task\x20ID\x20is\x20required');const _0x47581d=Number['isInteger'](_0x19b9b1['targetFollowUpCount'])?_0x19b9b1['targetFollowUpCount']:0x0,_0x598373={'targetFollowUpCount':_0x47581d};typeof _0x19b9b1['instructions']==='string'&&_0x19b9b1['instructions']['trim']()&&(_0x598373['instructions']=_0x19b9b1['instructions']['trim']());typeof _0x19b9b1['rewindFiles']==='boolean'&&(_0x598373['rewindFiles']=_0x19b9b1['rewindFiles']);const _0x202aa6=await fetch(API_BASE+'/tasks/'+_0x4d77dc+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x598373)});if(!_0x202aa6['ok']){const _0x180998=await _0x202aa6['json']()['catch'](()=>({}));throw new Error(_0x180998['error']||_0x180998['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x202aa6['statusText']);}return await _0x202aa6['json']();},async 'login'(_0x4ba872,_0xb928fe){const _0x4cb64f=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4ba872,'password':_0xb928fe})});if(!_0x4cb64f['ok']){const _0x39ea49=await _0x4cb64f['json']();throw new Error(_0x39ea49['message']||'Login\x20failed');}return await _0x4cb64f['json']();},async 'logout'(){const _0x596fb9=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x596fb9['ok']){const _0x56ea3d=await _0x596fb9['json']();throw new Error(_0x56ea3d['message']||'Logout\x20failed');}return await _0x596fb9['json']();},async 'getCurrentUser'(){const _0x4e139e=await fetch(API_BASE+'/auth/me');if(!_0x4e139e['ok'])throw new Error('Not\x20authenticated');const _0x70336=await _0x4e139e['json']();return _0x70336['user'];},async 'getRolesInfo'(){const _0x1bbe09=await fetch(API_BASE+'/users/roles');if(!_0x1bbe09['ok']){const _0xc1bfc7=await _0x1bbe09['json']();throw new Error(_0xc1bfc7['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1bbe09['json']();},async 'getUsers'(){const _0x39b275=await fetch(API_BASE+'/users');if(!_0x39b275['ok']){const _0x4a852f=await _0x39b275['json']();throw new Error(_0x4a852f['message']||'Failed\x20to\x20get\x20users');}return await _0x39b275['json']();},async 'getUser'(_0x5e5db3){const _0x3536d9=await fetch(API_BASE+'/users/'+_0x5e5db3);if(!_0x3536d9['ok']){const _0x37ec14=await _0x3536d9['json']();throw new Error(_0x37ec14['message']||'Failed\x20to\x20get\x20user');}return await _0x3536d9['json']();},async 'createUser'(_0x3471f3){const _0x4cedc5=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3471f3)});if(!_0x4cedc5['ok']){const _0x240719=await _0x4cedc5['json']();throw new Error(_0x240719['message']||'Failed\x20to\x20create\x20user');}return await _0x4cedc5['json']();},async 'updateUser'(_0x1823a8,_0x2ca81f){const _0x3f52bd=await fetch(API_BASE+'/users/'+_0x1823a8,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2ca81f)});if(!_0x3f52bd['ok']){const _0x1efe40=await _0x3f52bd['json']();throw new Error(_0x1efe40['message']||'Failed\x20to\x20update\x20user');}return await _0x3f52bd['json']();},async 'deleteUser'(_0x38b093){const _0x573371=await fetch(API_BASE+'/users/'+_0x38b093,{'method':'DELETE'});if(!_0x573371['ok']){const _0x40c283=await _0x573371['json']();throw new Error(_0x40c283['message']||'Failed\x20to\x20delete\x20user');}return await _0x573371['json']();},async 'stopAllContainers'(){const _0x5c885c=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x199df4=await _0x5c885c['json']()['catch'](()=>({}));if(!_0x5c885c['ok'])throw new Error(_0x199df4['message']||_0x199df4['error']||'Failed\x20to\x20stop\x20containers');return _0x199df4;},async 'removeStoppedContainers'(){const _0x33e60f=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x63eeb6=await _0x33e60f['json']()['catch'](()=>({}));if(!_0x33e60f['ok'])throw new Error(_0x63eeb6['message']||_0x63eeb6['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x63eeb6;},async 'pruneDockerResources'(){const _0x54ffda=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x55bc8d=await _0x54ffda['json']()['catch'](()=>({}));if(!_0x54ffda['ok'])throw new Error(_0x55bc8d['message']||_0x55bc8d['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x55bc8d;},async 'getUpdateSettings'(){const _0x496803=await fetch(API_BASE+'/health/update-settings'),_0xb0b01e=await _0x496803['json']()['catch'](()=>({}));if(!_0x496803['ok'])throw new Error(_0xb0b01e['message']||_0xb0b01e['error']||'Failed\x20to\x20load\x20update\x20settings');return _0xb0b01e;},async 'applyServerUpdate'(_0x38634b){const _0x51add4=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x38634b})}),_0x2bbc81=await _0x51add4['json']()['catch'](()=>({}));if(!_0x51add4['ok']){const _0x1dad91=new Error(_0x2bbc81['message']||_0x2bbc81['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x2bbc81['output']!==undefined)_0x1dad91['output']=_0x2bbc81['output'];if(_0x2bbc81['error']!==undefined)_0x1dad91['commandError']=_0x2bbc81['error'];throw _0x1dad91;}return _0x2bbc81;},async 'restartServer'(){const _0x2e319a=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x29f716=await _0x2e319a['json']()['catch'](()=>({}));if(!_0x2e319a['ok'])throw new Error(_0x29f716['message']||_0x29f716['error']||'Failed\x20to\x20restart\x20server');return _0x29f716;},async 'createPasswordToken'(_0x3cb2bb,_0x2dfdb7='setup',_0x2a1941=![]){const _0x255cac=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x3cb2bb,'type':_0x2dfdb7,'sendEmail':_0x2a1941})});if(!_0x255cac['ok']){const _0x492e71=await _0x255cac['json']();throw new Error(_0x492e71['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x255cac['json']();},async 'getEmailConfig'(){const _0x59418e=await fetch(API_BASE+'/password/email-config');if(!_0x59418e['ok']){const _0xc4502=await _0x59418e['json']();throw new Error(_0xc4502['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x59418e['json']();},async 'updateTaskName'(_0x37b2f5,_0x381cdb){const _0x19c7c2=await fetch(API_BASE+'/tasks/'+_0x37b2f5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x381cdb})});if(!_0x19c7c2['ok']){const _0x2ef825=await _0x19c7c2['json']();throw new Error(_0x2ef825['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x19c7c2['json']();},async 'pinTask'(_0x308461,_0x161583,_0x10fa81=null){if(!_0x308461)throw new Error('Task\x20ID\x20is\x20required');const _0x10c7a7={'pinned':_0x161583};_0x10fa81&&_0x10fa81['length']>0x0&&(_0x10c7a7['additionalTaskIds']=_0x10fa81);const _0x3f23b8=await fetch(API_BASE+'/tasks/'+_0x308461+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10c7a7)});if(!_0x3f23b8['ok']){const _0x20b350=await _0x3f23b8['json']();throw new Error(_0x20b350['error']||'Failed\x20to\x20pin\x20task');}return await _0x3f23b8['json']();},async 'setTaskWinner'(_0x13bdd8,_0x3cda45,_0x182ae1=[]){if(!_0x13bdd8)throw new Error('Task\x20ID\x20is\x20required');const _0x57edb8=await fetch(API_BASE+'/tasks/'+_0x13bdd8+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x3cda45,'siblings':_0x182ae1})});if(!_0x57edb8['ok']){const _0x2e11cd=await _0x57edb8['json']();throw new Error(_0x2e11cd['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x57edb8['json']();},async 'setTaskLoser'(_0x18a8c5,_0xf455ba){if(!_0x18a8c5)throw new Error('Task\x20ID\x20is\x20required');const _0x29290e=await fetch(API_BASE+'/tasks/'+_0x18a8c5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0xf455ba})});if(!_0x29290e['ok']){const _0x14ee10=await _0x29290e['json']();throw new Error(_0x14ee10['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x29290e['json']();},async 'createTaskGroup'(_0x33e727){const _0x43e1d1=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x33e727)});if(!_0x43e1d1['ok']){const _0x1237ae=await _0x43e1d1['json']();throw new Error(_0x1237ae['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x43e1d1['json']();},async 'getTaskGroups'(_0x591c9f={}){const _0x532bf2=new URLSearchParams();if(_0x591c9f['userId'])_0x532bf2['set']('userId',String(_0x591c9f['userId']));if(_0x591c9f['status'])_0x532bf2['set']('status',String(_0x591c9f['status']));if(_0x591c9f['limit'])_0x532bf2['set']('limit',String(_0x591c9f['limit']));const _0x95572a=API_BASE+'/tasks/groups'+(_0x532bf2['toString']()?'?'+_0x532bf2['toString']():''),_0x55e2db=await fetch(_0x95572a);if(!_0x55e2db['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x55e2db['json']();},async 'getTaskGroup'(_0x5e716d){const _0x218b49=await fetch(API_BASE+'/tasks/groups/'+_0x5e716d);if(!_0x218b49['ok']){const _0x38adf3=await _0x218b49['json']();throw new Error(_0x38adf3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x218b49['json']();},async 'updateTaskGroup'(_0x8b9ce6,_0x3aa176,_0x40d49e){const _0x4938e8=await fetch(API_BASE+'/tasks/'+_0x8b9ce6+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x3aa176,'groupIndex':_0x40d49e})});if(!_0x4938e8['ok']){const _0x478298=await _0x4938e8['json']();throw new Error(_0x478298['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4938e8['json']();},async 'removeTaskFromGroup'(_0x5e2192){return this['updateTaskGroup'](_0x5e2192,null,null);},async 'deleteTaskGroup'(_0x55fe0b,_0x162db0=![]){const _0x4fba52=_0x162db0?'?deleteTasks=true':'',_0x55faba=await fetch(API_BASE+'/tasks/groups/'+_0x55fe0b+_0x4fba52,{'method':'DELETE'});if(!_0x55faba['ok']){const _0x5d27bb=await _0x55faba['json']();throw new Error(_0x5d27bb['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x55f0f1,_0x40cafa){const _0x2d6134=await fetch(API_BASE+'/tasks/groups/'+_0x55f0f1+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x40cafa})});if(!_0x2d6134['ok']){const _0x1736ad=await _0x2d6134['json']();throw new Error(_0x1736ad['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x2d6134['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x48c7f6){if(!_0x48c7f6)throw new Error('Task\x20ID\x20is\x20required');const _0x468a96=await fetch(API_BASE+'/tasks/'+_0x48c7f6+'/comments');if(!_0x468a96['ok']){const _0x204ec9=await _0x468a96['json']()['catch'](()=>({}));throw new Error(_0x204ec9['error']||'Failed\x20to\x20get\x20comments');}return await _0x468a96['json']();},async 'addComment'(_0xfb2efb,_0x2ab3e3){if(!_0xfb2efb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2ab3e3)throw new Error('Comment\x20content\x20is\x20required');const _0x5cba18=await fetch(API_BASE+'/tasks/'+_0xfb2efb+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2ab3e3})});if(!_0x5cba18['ok']){const _0x30640e=await _0x5cba18['json']()['catch'](()=>({}));throw new Error(_0x30640e['error']||'Failed\x20to\x20add\x20comment');}return await _0x5cba18['json']();},async 'updateComment'(_0x271f38,_0x17cd17,_0x34b17e){if(!_0x271f38)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17cd17)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x34b17e)throw new Error('Comment\x20content\x20is\x20required');const _0x2a502e=await fetch(API_BASE+'/tasks/'+_0x271f38+'/comments/'+_0x17cd17,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x34b17e})});if(!_0x2a502e['ok']){const _0x3b2f7a=await _0x2a502e['json']()['catch'](()=>({}));throw new Error(_0x3b2f7a['error']||'Failed\x20to\x20update\x20comment');}return await _0x2a502e['json']();},async 'deleteComment'(_0x3ae2de,_0x13015a){if(!_0x3ae2de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x13015a)throw new Error('Comment\x20ID\x20is\x20required');const _0x4db171=await fetch(API_BASE+'/tasks/'+_0x3ae2de+'/comments/'+_0x13015a,{'method':'DELETE'});if(!_0x4db171['ok']){const _0x54aa12=await _0x4db171['json']()['catch'](()=>({}));throw new Error(_0x54aa12['error']||'Failed\x20to\x20delete\x20comment');}return await _0x4db171['json']();},async 'createObjective'(_0x4de298){const _0x2182ba={'objective':!![],'name':_0x4de298['name']||'','environment':_0x4de298['environment']||null,'agents':_0x4de298['agents']||[],'branches':_0x4de298['branches']||{},'isPinned':_0x4de298['isPinned']||![],'parentObjectiveId':_0x4de298['parentObjectiveId']||null,'env_vars':_0x4de298['envVars']||{},'parameters':{'instructions':_0x4de298['instructions']||''},'files':_0x4de298['files']||[],'jira':_0x4de298['jira']||null};return this['createTask'](_0x2182ba);},async 'updateObjective'(_0x2d4b8d,_0x2ced43,_0x23f6dd=[],_0xf7ec09=[]){let _0x17f486,_0x251f79={};const _0x9ccfb9={..._0x2ced43};_0xf7ec09&&_0xf7ec09['length']>0x0&&(_0x9ccfb9['removeAttachments']=_0xf7ec09);if(_0x23f6dd&&_0x23f6dd['length']>0x0){const _0x5a3c53=new FormData();for(const [_0x4098bd,_0x4660a3]of Object['entries'](_0x9ccfb9)){if(_0x4660a3==null)continue;typeof _0x4660a3==='object'?_0x5a3c53['append'](_0x4098bd,JSON['stringify'](_0x4660a3)):_0x5a3c53['append'](_0x4098bd,String(_0x4660a3));}for(const _0x103282 of _0x23f6dd){_0x5a3c53['append']('attachments',_0x103282);}_0x17f486=_0x5a3c53;}else _0x251f79['Content-Type']='application/json',_0x17f486=JSON['stringify'](_0x9ccfb9);const _0xb2cb68=await fetch(API_BASE+'/tasks/'+_0x2d4b8d,{'method':'PATCH','headers':_0x251f79,'body':_0x17f486});if(!_0xb2cb68['ok']){const _0x2bb427=await _0xb2cb68['json']();throw new Error(_0x2bb427['error']||'Failed\x20to\x20update\x20objective');}return await _0xb2cb68['json']();},async 'deleteObjective'(_0xddcfd3){return this['deleteTask'](_0xddcfd3);},async 'launchObjective'(_0x13e5da,_0x41b8db={}){const _0x4c5ccd=await fetch(API_BASE+'/tasks/'+_0x13e5da+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41b8db)});if(!_0x4c5ccd['ok']){const _0x36ea0c=await _0x4c5ccd['json']();throw new Error(_0x36ea0c['error']||'Failed\x20to\x20launch\x20objective');}return await _0x4c5ccd['json']();},async 'getObjectiveAttachments'(_0x4a6c0b){return this['getTaskAttachments'](_0x4a6c0b);},async 'createJudgeTask'({environment:_0x405bfc,judgeAgent:_0x513ecf,groupId:_0x1ae8e9,taskIds:_0x534072,judgeCustomInstructions:_0x27ee72,isPinned:_0x3dcddf}){const _0x1bb0e3=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x405bfc,'judgeAgent':_0x513ecf,'groupId':_0x1ae8e9,'taskIds':_0x534072,'judgeCustomInstructions':_0x27ee72,'isPinned':_0x3dcddf})});if(!_0x1bb0e3['ok']){const _0x22f063=await _0x1bb0e3['json']();throw new Error(_0x22f063['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x1bb0e3['json']();},async 'getJudgeTasks'(_0x249db7){const _0x59e1aa=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x249db7));if(!_0x59e1aa['ok']){const _0x5e8bc9=await _0x59e1aa['json']();throw new Error(_0x5e8bc9['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x59e1aa['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x3ab438,_0x14e20b,_0x345cdd=''){const _0x407cc1=await fetch(API_BASE+'/tasks/'+_0x3ab438+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x14e20b,'customPreamble':_0x345cdd})});if(!_0x407cc1['ok']){const _0xdb0d17=await _0x407cc1['json']();throw new Error(_0xdb0d17['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x407cc1['json']();},async 'getJiraConfig'(){const _0x1a5808=await fetch(API_BASE+'/jira/config');if(!_0x1a5808['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x1a5808['json']();},async 'getJiraIssue'(_0x265a68){const _0x2b8581=await fetch(API_BASE+'/jira/issues/'+_0x265a68);if(!_0x2b8581['ok']){const _0x310c2f=await _0x2b8581['json']()['catch'](()=>({}));throw new Error(_0x310c2f['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2b8581['statusText']);}return await _0x2b8581['json']();},async 'searchJiraIssues'(_0x5e3a07,_0x38fa51=0x14){const _0x5d5836=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x5e3a07,'maxResults':_0x38fa51})});if(!_0x5d5836['ok']){const _0x50fb5a=await _0x5d5836['json']()['catch'](()=>({}));throw new Error(_0x50fb5a['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x5d5836['statusText']);}return await _0x5d5836['json']();},async 'postJiraComment'(_0x513d89,_0x128a03){const _0xd3e2ab=await fetch(API_BASE+'/jira/issues/'+_0x513d89+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x128a03})});if(!_0xd3e2ab['ok']){const _0x11236a=await _0xd3e2ab['json']()['catch'](()=>({}));throw new Error(_0x11236a['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0xd3e2ab['statusText']);}return await _0xd3e2ab['json']();},async 'getJiraComments'(_0x4abfd3){const _0x387db4=await fetch(API_BASE+'/jira/issues/'+_0x4abfd3+'/comments');if(!_0x387db4['ok']){const _0x45064d=await _0x387db4['json']()['catch'](()=>({}));throw new Error(_0x45064d['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x387db4['statusText']);}return await _0x387db4['json']();},async 'promptParameter'({environment:_0x9c9908,command:_0x249a72,parser:parser='json'}){const _0x558698=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x9c9908,'command':_0x249a72,'parser':parser})});if(!_0x558698['ok']){const _0x25c6c8=await _0x558698['json']()['catch'](()=>({}));throw new Error(_0x25c6c8['message']||_0x25c6c8['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x558698['statusText']);}return await _0x558698['json']();},async 'promptParameterStream'(_0x2f3e7f,_0x4d5c45){const _0x189a82=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f3e7f)});if(!_0x189a82['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x189a82['statusText']);const _0x4624af=_0x189a82['body']['getReader'](),_0x1540fc=new TextDecoder();let _0xb2ecbd='';return new Promise((_0xa8a5a3,_0x3593b4)=>{const _0x25e9a2=async()=>{try{const {done:_0x558ff9,value:_0x46029d}=await _0x4624af['read']();if(_0x558ff9)return;_0xb2ecbd+=_0x1540fc['decode'](_0x46029d,{'stream':!![]});const _0x26b8e9=_0xb2ecbd['split']('\x0a\x0a');_0xb2ecbd=_0x26b8e9['pop']()||'';for(const _0x4fdc0b of _0x26b8e9){if(!_0x4fdc0b['trim']())continue;const _0x54de36=_0x4fdc0b['split']('\x0a');let _0x3656c2='message',_0x70cf57='';for(const _0x34c428 of _0x54de36){if(_0x34c428['startsWith']('event:'))_0x3656c2=_0x34c428['substring'](0x6)['trim']();else _0x34c428['startsWith']('data:')&&(_0x70cf57=_0x34c428['substring'](0x5)['trim']());}if(!_0x70cf57)continue;try{const _0x2fd831=JSON['parse'](_0x70cf57);if(_0x3656c2==='progress'&&_0x4d5c45)_0x4d5c45(_0x2fd831['stage'],_0x2fd831['message']);else{if(_0x3656c2==='result'){_0xa8a5a3(_0x2fd831);return;}else{if(_0x3656c2==='error'){let _0x4b03b4=_0x2fd831['message']||_0x2fd831['error']||'Prompt\x20command\x20failed';_0x2fd831['rawOutput']&&(_0x4b03b4+='\x0a\x0aRaw\x20output:\x0a'+_0x2fd831['rawOutput']);_0x3593b4(new Error(_0x4b03b4));return;}}}}catch(_0x382369){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x382369),console['error']('Event\x20type:',_0x3656c2),console['error']('Event\x20data:',_0x70cf57),console['error']('First\x20200\x20chars:',_0x70cf57['substring'](0x0,0xc8)),_0x3593b4(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x382369['message']+'\x0a\x0aData:\x20'+_0x70cf57['substring'](0x0,0x1f4)));return;}}_0x25e9a2();}catch(_0x1ac4fc){_0x3593b4(_0x1ac4fc);}};_0x25e9a2();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0xad6369){const _0x1b079b=await fetch(''+API_BASE+_0xad6369);if(!_0x1b079b['ok']){const _0x3a0103=await _0x1b079b['json']()['catch'](()=>({'error':_0x1b079b['statusText']})),_0x560d7f=new Error(_0x3a0103['error']||_0x3a0103['message']||_0x1b079b['statusText']);if(_0x3a0103['detail']!==undefined)_0x560d7f['detail']=_0x3a0103['detail'];throw _0x560d7f;}return await _0x1b079b['json']();},async 'post'(_0x35d5cc,_0x10a324){const _0x49f7e7=await fetch(''+API_BASE+_0x35d5cc,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10a324)});if(!_0x49f7e7['ok']){const _0x151b13=await _0x49f7e7['json']()['catch'](()=>({'error':_0x49f7e7['statusText']})),_0x5cbf7e=new Error(_0x151b13['error']||_0x151b13['message']||_0x49f7e7['statusText']);if(_0x151b13['detail']!==undefined)_0x5cbf7e['detail']=_0x151b13['detail'];throw _0x5cbf7e;}return await _0x49f7e7['json']();},async 'put'(_0x12eeb3,_0x2a2594){const _0x42af12=await fetch(''+API_BASE+_0x12eeb3,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2a2594)});if(!_0x42af12['ok']){const _0x554f53=await _0x42af12['json']()['catch'](()=>({'error':_0x42af12['statusText']})),_0x1b37f9=new Error(_0x554f53['error']||_0x554f53['message']||_0x42af12['statusText']);if(_0x554f53['detail']!==undefined)_0x1b37f9['detail']=_0x554f53['detail'];throw _0x1b37f9;}return await _0x42af12['json']();},async 'delete'(_0x5bd2b0,_0x464709){const _0x4a043f={'method':'DELETE'};_0x464709&&(_0x4a043f['headers']={'Content-Type':'application/json'},_0x4a043f['body']=JSON['stringify'](_0x464709));const _0x341b22=await fetch(''+API_BASE+_0x5bd2b0,_0x4a043f);if(!_0x341b22['ok']){const _0x33b116=await _0x341b22['json']()['catch'](()=>({'error':_0x341b22['statusText']})),_0x40c4d0=new Error(_0x33b116['error']||_0x33b116['message']||_0x341b22['statusText']);if(_0x33b116['detail']!==undefined)_0x40c4d0['detail']=_0x33b116['detail'];throw _0x40c4d0;}return await _0x341b22['json']();},async 'getSkills'(){const _0x44ed7e=await fetch(API_BASE+'/skills');if(!_0x44ed7e['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x44ed7e['statusText']);return await _0x44ed7e['json']();},async 'getSkill'(_0x31ad30){const _0x362372=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x31ad30));if(!_0x362372['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x362372['statusText']);return await _0x362372['json']();},async 'createSkill'(_0x37499e){const _0x6f34c7=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x37499e)});if(!_0x6f34c7['ok']){const _0x1b5b4d=await _0x6f34c7['json']()['catch'](()=>({'error':_0x6f34c7['statusText']})),_0xaf3524=new Error(_0x1b5b4d['error']||_0x1b5b4d['message']||_0x6f34c7['statusText']);if(_0x1b5b4d['detail']!==undefined)_0xaf3524['detail']=_0x1b5b4d['detail'];throw _0xaf3524;}return await _0x6f34c7['json']();},async 'updateSkill'(_0x1e4b70,_0x3b18a4){const _0x5c4ce7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1e4b70),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b18a4)});if(!_0x5c4ce7['ok']){const _0x88b78d=await _0x5c4ce7['json']()['catch'](()=>({'error':_0x5c4ce7['statusText']})),_0x531016=new Error(_0x88b78d['error']||_0x88b78d['message']||_0x5c4ce7['statusText']);if(_0x88b78d['detail']!==undefined)_0x531016['detail']=_0x88b78d['detail'];throw _0x531016;}return await _0x5c4ce7['json']();},async 'deleteSkill'(_0x57a88b){const _0x2eadff=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x57a88b),{'method':'DELETE'});if(!_0x2eadff['ok']){const _0x369c99=await _0x2eadff['json']()['catch'](()=>({'error':_0x2eadff['statusText']})),_0x41c06e=new Error(_0x369c99['error']||_0x369c99['message']||_0x2eadff['statusText']);if(_0x369c99['detail']!==undefined)_0x41c06e['detail']=_0x369c99['detail'];throw _0x41c06e;}return await _0x2eadff['json']();},async 'getSkillFile'(_0x136a78,_0x596406){const _0xb92939=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x136a78)+'/files/'+_0x596406);if(!_0xb92939['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xb92939['statusText']);return await _0xb92939['json']();},async 'saveSkillFile'(_0x291b28,_0x25bb10,_0x565ec3){const _0x37c0d4=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x291b28)+'/files/'+_0x25bb10,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x565ec3})});if(!_0x37c0d4['ok']){const _0x307604=await _0x37c0d4['json']()['catch'](()=>({'error':_0x37c0d4['statusText']})),_0x3354b3=new Error(_0x307604['error']||_0x307604['message']||_0x37c0d4['statusText']);if(_0x307604['detail']!==undefined)_0x3354b3['detail']=_0x307604['detail'];throw _0x3354b3;}return await _0x37c0d4['json']();},async 'deleteSkillFile'(_0x228592,_0xae2192){const _0x223a6e=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x228592)+'/files/'+_0xae2192,{'method':'DELETE'});if(!_0x223a6e['ok']){const _0xbd4390=await _0x223a6e['json']()['catch'](()=>({'error':_0x223a6e['statusText']})),_0x1225e4=new Error(_0xbd4390['error']||_0xbd4390['message']||_0x223a6e['statusText']);if(_0xbd4390['detail']!==undefined)_0x1225e4['detail']=_0xbd4390['detail'];throw _0x1225e4;}return await _0x223a6e['json']();},async 'pullSkills'(){const _0x5e3933=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x5e3933['ok']){const _0x213cb4=await _0x5e3933['json']()['catch'](()=>({'error':_0x5e3933['statusText']})),_0x28cc01=new Error(_0x213cb4['error']||_0x213cb4['message']||_0x5e3933['statusText']);if(_0x213cb4['detail']!==undefined)_0x28cc01['detail']=_0x213cb4['detail'];throw _0x28cc01;}return await _0x5e3933['json']();},async 'commitSkills'(_0x31de65,_0x461aef={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x461aef,_0x15eb1e=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x31de65,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x15eb1e['ok']){const _0x25733b=await _0x15eb1e['json']()['catch'](()=>({'error':_0x15eb1e['statusText']})),_0x31c701=new Error(_0x25733b['error']||_0x25733b['message']||_0x15eb1e['statusText']);if(_0x25733b['detail']!==undefined)_0x31c701['detail']=_0x25733b['detail'];throw _0x31c701;}return await _0x15eb1e['json']();},async 'discardSkillsChanges'(){const _0x38757b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x38757b['ok']){const _0x1e4d3c=await _0x38757b['json']()['catch'](()=>({'error':_0x38757b['statusText']})),_0x53169c=new Error(_0x1e4d3c['error']||_0x1e4d3c['message']||_0x38757b['statusText']);if(_0x1e4d3c['detail']!==undefined)_0x53169c['detail']=_0x1e4d3c['detail'];throw _0x53169c;}return await _0x38757b['json']();},async 'getSkillCatalog'(){const _0x519bac=await fetch(API_BASE+'/external-skills/catalog');if(!_0x519bac['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x519bac['statusText']);return await _0x519bac['json']();},async 'getImportedSkillsRegistry'(){const _0x526834=await fetch(API_BASE+'/external-skills/registry');if(!_0x526834['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x526834['statusText']);return await _0x526834['json']();},async 'importCatalogSkill'(_0x47d41a){const _0x4ea4b2=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x47d41a})});if(!_0x4ea4b2['ok']){const _0x5439ff=await _0x4ea4b2['json']()['catch'](()=>({'error':_0x4ea4b2['statusText']})),_0x3d33c7=new Error(_0x5439ff['error']||_0x5439ff['message']||_0x4ea4b2['statusText']);if(_0x5439ff['detail']!==undefined)_0x3d33c7['detail']=_0x5439ff['detail'];throw _0x3d33c7;}return await _0x4ea4b2['json']();},async 'importSkillFromGit'(_0x373771,_0x100e1f,_0x2d4d78='main',_0x296925=null){const _0x587abe=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x373771,'skillPath':_0x100e1f,'branch':_0x2d4d78,'skillId':_0x296925})});if(!_0x587abe['ok']){const _0x331041=await _0x587abe['json']()['catch'](()=>({'error':_0x587abe['statusText']})),_0x29cbbb=new Error(_0x331041['error']||_0x331041['message']||_0x587abe['statusText']);if(_0x331041['detail']!==undefined)_0x29cbbb['detail']=_0x331041['detail'];throw _0x29cbbb;}return await _0x587abe['json']();},async 'probeMarketplace'(_0x41b634,_0x4f2e36='main'){const _0x4e4749=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x41b634,'branch':_0x4f2e36})});if(!_0x4e4749['ok']){const _0x6b1a15=await _0x4e4749['json']()['catch'](()=>({'error':_0x4e4749['statusText']})),_0x2ac5ce=new Error(_0x6b1a15['error']||_0x6b1a15['message']||_0x4e4749['statusText']);if(_0x6b1a15['detail']!==undefined)_0x2ac5ce['detail']=_0x6b1a15['detail'];throw _0x2ac5ce;}return await _0x4e4749['json']();},async 'importMarketplaceBundle'(_0x4f8393,_0x4add69,_0x73ef87,_0x47f512=null){const _0xd89374=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f8393,'branch':_0x4add69,'bundleId':_0x73ef87,'selectedSkills':_0x47f512})});if(!_0xd89374['ok']){const _0x45bd8a=await _0xd89374['json']()['catch'](()=>({'error':_0xd89374['statusText']})),_0x2870c1=new Error(_0x45bd8a['error']||_0x45bd8a['message']||_0xd89374['statusText']);if(_0x45bd8a['detail']!==undefined)_0x2870c1['detail']=_0x45bd8a['detail'];throw _0x2870c1;}return await _0xd89374['json']();},async 'importSkillFromFolder'(_0x5947dd,_0x34fc25=null){const _0x5dfce7=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x5947dd,'skillId':_0x34fc25})});if(!_0x5dfce7['ok']){const _0x2d53d5=await _0x5dfce7['json']()['catch'](()=>({'error':_0x5dfce7['statusText']})),_0x1f40b7=new Error(_0x2d53d5['error']||_0x2d53d5['message']||_0x5dfce7['statusText']);if(_0x2d53d5['detail']!==undefined)_0x1f40b7['detail']=_0x2d53d5['detail'];throw _0x1f40b7;}return await _0x5dfce7['json']();},async 'importSkillFromNpm'(_0x24411,_0x1b00da='latest',_0x34e1db=null,_0x4f7da6=null){const _0x1668d5=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x24411,'version':_0x1b00da,'skillId':_0x34e1db,'registry':_0x4f7da6})});if(!_0x1668d5['ok']){const _0x2c62e4=await _0x1668d5['json']()['catch'](()=>({'error':_0x1668d5['statusText']})),_0x5be4f9=new Error(_0x2c62e4['error']||_0x2c62e4['message']||_0x1668d5['statusText']);if(_0x2c62e4['detail']!==undefined)_0x5be4f9['detail']=_0x2c62e4['detail'];throw _0x5be4f9;}return await _0x1668d5['json']();},async 'checkSkillUpdates'(_0x514a2f){const _0x31b305=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x514a2f)+'/check-updates',{'method':'POST'});if(!_0x31b305['ok']){const _0x5a3d96=await _0x31b305['json']()['catch'](()=>({'error':_0x31b305['statusText']})),_0x24c296=new Error(_0x5a3d96['error']||_0x5a3d96['message']||_0x31b305['statusText']);if(_0x5a3d96['detail']!==undefined)_0x24c296['detail']=_0x5a3d96['detail'];throw _0x24c296;}return await _0x31b305['json']();},async 'updateExternalSkill'(_0x1652e5){const _0x534e42=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1652e5)+'/update',{'method':'POST'});if(!_0x534e42['ok']){const _0x17a201=await _0x534e42['json']()['catch'](()=>({'error':_0x534e42['statusText']})),_0x20309c=new Error(_0x17a201['error']||_0x17a201['message']||_0x534e42['statusText']);if(_0x17a201['detail']!==undefined)_0x20309c['detail']=_0x17a201['detail'];throw _0x20309c;}return await _0x534e42['json']();},async 'updateSkillFlags'(_0x467dda,_0x2789b2){const _0x41e8eb=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x467dda)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2789b2})});if(!_0x41e8eb['ok']){const _0x178fec=await _0x41e8eb['json']()['catch'](()=>({'error':_0x41e8eb['statusText']})),_0x23ad42=new Error(_0x178fec['error']||_0x178fec['message']||_0x41e8eb['statusText']);if(_0x178fec['detail']!==undefined)_0x23ad42['detail']=_0x178fec['detail'];throw _0x23ad42;}return await _0x41e8eb['json']();},async 'removeFromImportedRegistry'(_0x102544){const _0x4ffb23=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x102544)+'/registry',{'method':'DELETE'});if(!_0x4ffb23['ok']){const _0x2aea81=await _0x4ffb23['json']()['catch'](()=>({'error':_0x4ffb23['statusText']})),_0x2fc942=new Error(_0x2aea81['error']||_0x2aea81['message']||_0x4ffb23['statusText']);if(_0x2aea81['detail']!==undefined)_0x2fc942['detail']=_0x2aea81['detail'];throw _0x2fc942;}return await _0x4ffb23['json']();},async 'getTeams'(){const _0x2a5468=await fetch(API_BASE+'/teams');if(!_0x2a5468['ok']){const _0x54a9f2=await _0x2a5468['json']()['catch'](()=>({'message':_0x2a5468['statusText']}));throw new Error(_0x54a9f2['message']||'Failed\x20to\x20get\x20teams');}return await _0x2a5468['json']();},async 'getTeam'(_0x296583){const _0x65b182=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x296583));if(!_0x65b182['ok']){const _0x46fd80=await _0x65b182['json']()['catch'](()=>({'message':_0x65b182['statusText']}));throw new Error(_0x46fd80['message']||'Failed\x20to\x20get\x20team');}return await _0x65b182['json']();},async 'createTeam'(_0x31dbff){const _0x575781=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x31dbff)});if(!_0x575781['ok']){const _0x157a96=await _0x575781['json']()['catch'](()=>({'message':_0x575781['statusText']}));throw new Error(_0x157a96['message']||'Failed\x20to\x20create\x20team');}return await _0x575781['json']();},async 'updateTeam'(_0x56d781,_0x21d1a8){const _0x5e9b79=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x56d781),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21d1a8)});if(!_0x5e9b79['ok']){const _0x4dfb18=await _0x5e9b79['json']()['catch'](()=>({'message':_0x5e9b79['statusText']}));throw new Error(_0x4dfb18['message']||'Failed\x20to\x20update\x20team');}return await _0x5e9b79['json']();},async 'deleteTeam'(_0x285605){const _0x10af48=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x285605),{'method':'DELETE'});if(!_0x10af48['ok']){const _0x4e8537=await _0x10af48['json']()['catch'](()=>({'message':_0x10af48['statusText']}));throw new Error(_0x4e8537['message']||'Failed\x20to\x20delete\x20team');}return await _0x10af48['json']();},async 'addTeamMember'(_0x14d4f4,_0x13f34f){const _0x5d00ec=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x14d4f4)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x13f34f})});if(!_0x5d00ec['ok']){const _0x218f0d=await _0x5d00ec['json']()['catch'](()=>({'message':_0x5d00ec['statusText']}));throw new Error(_0x218f0d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x5d00ec['json']();},async 'removeTeamMember'(_0x4964a1,_0x1cc0e4){const _0x2f6674=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4964a1)+'/members/'+encodeURIComponent(_0x1cc0e4),{'method':'DELETE'});if(!_0x2f6674['ok']){const _0x3e5908=await _0x2f6674['json']()['catch'](()=>({'message':_0x2f6674['statusText']}));throw new Error(_0x3e5908['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x2f6674['json']();},async 'getBindings'(_0x1e1ddb={}){const _0x3afedf=new URLSearchParams();if(_0x1e1ddb['resource_type'])_0x3afedf['set']('resource_type',_0x1e1ddb['resource_type']);if(_0x1e1ddb['resource_id'])_0x3afedf['set']('resource_id',_0x1e1ddb['resource_id']);if(_0x1e1ddb['subject_type'])_0x3afedf['set']('subject_type',_0x1e1ddb['subject_type']);if(_0x1e1ddb['subject_id'])_0x3afedf['set']('subject_id',_0x1e1ddb['subject_id']);const _0x2299fa=_0x3afedf['toString'](),_0x274a00=await fetch(API_BASE+'/bindings'+(_0x2299fa?'?'+_0x2299fa:''));if(!_0x274a00['ok']){const _0x3d6c6d=await _0x274a00['json']()['catch'](()=>({'message':_0x274a00['statusText']}));throw new Error(_0x3d6c6d['message']||'Failed\x20to\x20get\x20bindings');}return await _0x274a00['json']();},async 'createBinding'(_0x576abf){const _0x1dae5c=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x576abf)});if(!_0x1dae5c['ok']){const _0xaffd24=await _0x1dae5c['json']()['catch'](()=>({'message':_0x1dae5c['statusText']}));throw new Error(_0xaffd24['message']||'Failed\x20to\x20create\x20binding');}return await _0x1dae5c['json']();},async 'updateBinding'(_0x11c1da,_0x5040a9){const _0x2b5cf9=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x11c1da),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5040a9)});if(!_0x2b5cf9['ok']){const _0x21557f=await _0x2b5cf9['json']()['catch'](()=>({'message':_0x2b5cf9['statusText']}));throw new Error(_0x21557f['message']||'Failed\x20to\x20update\x20binding');}return await _0x2b5cf9['json']();},async 'deleteBinding'(_0x759586){const _0x4b431e=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x759586),{'method':'DELETE'});if(!_0x4b431e['ok']){const _0x4d4778=await _0x4b431e['json']()['catch'](()=>({'message':_0x4b431e['statusText']}));throw new Error(_0x4d4778['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4b431e['json']();},async 'getRoleDefinitions'(){const _0x2b37e6=await fetch(API_BASE+'/roles');if(!_0x2b37e6['ok']){const _0x5376f5=await _0x2b37e6['json']()['catch'](()=>({'message':_0x2b37e6['statusText']}));throw new Error(_0x5376f5['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x2b37e6['json']();},async 'getRoleDefinition'(_0x2b37ae){const _0x249b6d=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2b37ae));if(!_0x249b6d['ok']){const _0x4ef403=await _0x249b6d['json']()['catch'](()=>({'message':_0x249b6d['statusText']}));throw new Error(_0x4ef403['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x249b6d['json']();},async 'createRoleDefinition'(_0x35cd2a){const _0x4d06c7=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35cd2a)});if(!_0x4d06c7['ok']){const _0x3d6ac7=await _0x4d06c7['json']()['catch'](()=>({'message':_0x4d06c7['statusText']}));throw new Error(_0x3d6ac7['message']||_0x3d6ac7['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x4d06c7['json']();},async 'updateRoleDefinition'(_0x263623,_0x3acc2c){const _0x3666f0=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x263623),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3acc2c)});if(!_0x3666f0['ok']){const _0x2b6d5a=await _0x3666f0['json']()['catch'](()=>({'message':_0x3666f0['statusText']}));throw new Error(_0x2b6d5a['message']||_0x2b6d5a['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x3666f0['json']();},async 'deleteRoleDefinition'(_0x425485){const _0x3e850c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x425485),{'method':'DELETE'});if(!_0x3e850c['ok']){const _0x1da0ce=await _0x3e850c['json']()['catch'](()=>({'message':_0x3e850c['statusText']}));throw new Error(_0x1da0ce['message']||_0x1da0ce['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x3e850c['json']();},async 'getAvailablePermissions'(){const _0x4b5cee=await fetch(API_BASE+'/roles/available-permissions');if(!_0x4b5cee['ok']){const _0xeba6a7=await _0x4b5cee['json']()['catch'](()=>({'message':_0x4b5cee['statusText']}));throw new Error(_0xeba6a7['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x4b5cee['json']();},async 'getGitProviderAllowedTeams'(_0x2c567c){const _0x427974=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2c567c)+'/allowed-teams');if(!_0x427974['ok']){const _0x1b4f2d=await _0x427974['json']()['catch'](()=>({'message':_0x427974['statusText']}));throw new Error(_0x1b4f2d['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x427974['json']();},async 'setGitProviderAllowedTeams'(_0x513d2c,_0x32437e){const _0x495ed0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x513d2c)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x32437e})});if(!_0x495ed0['ok']){const _0xad2c72=await _0x495ed0['json']()['catch'](()=>({'message':_0x495ed0['statusText']}));throw new Error(_0xad2c72['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x495ed0['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0xcbf650=toastState['baseBottom'];toastState['toasts']['forEach'](_0x49424d=>{_0x49424d['el']['style']['bottom']=_0xcbf650+'px';const _0x1bfed0=_0x49424d['el']['offsetHeight']||toastState['defaultHeight'];_0xcbf650+=_0x1bfed0+toastState['gap'];});});}function removeToastById(_0x1c6752){const _0x4519f5=toastState['toasts']['findIndex'](_0x94ca65=>_0x94ca65['id']===_0x1c6752);if(_0x4519f5===-0x1)return;const _0x50b5d4=toastState['toasts'][_0x4519f5];if(_0x50b5d4['timeoutId'])clearTimeout(_0x50b5d4['timeoutId']);_0x50b5d4['el']['classList']['remove']('show'),setTimeout(()=>_0x50b5d4['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x4519f5,0x1),repositionAllToasts();}function registerToast(_0x218f78){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x218f78),repositionAllToasts(),_0x218f78['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x5399b0){if(_0x5399b0===null||_0x5399b0===undefined)return'';return String(_0x5399b0)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x244dc4,_0x228e85){if(_0x244dc4&&typeof _0x244dc4==='object'&&!Array['isArray'](_0x244dc4))return{'code':typeof _0x244dc4['text']==='string'?_0x244dc4['text']:'','language':typeof _0x244dc4['lang']==='string'?_0x244dc4['lang']:''};return{'code':typeof _0x244dc4==='string'?_0x244dc4:'','language':typeof _0x228e85==='string'?_0x228e85:''};}function buildMermaidBlock(_0x12875a){const _0x4c0772=String(_0x12875a||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x4c0772))+'\x22>'+escapeHtmlValue(_0x4c0772)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x564015=new marked['Renderer'](),_0x4be9f6=_0x564015['code']['bind'](_0x564015);return _0x564015['code']=function(_0x566d66,_0x5c8910,..._0x2515da){const {code:_0x515e44,language:_0x1d9a71}=getMarkdownCodeBlockPayload(_0x566d66,_0x5c8910),_0x5dc6f3=String(_0x1d9a71||'')['trim']()['toLowerCase']();if(_0x5dc6f3==='mermaid')return buildMermaidBlock(_0x515e44);const _0x42200e=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x42200e&&_0x5dc6f3)try{const _0x5be91e=_0x42200e['getLanguage'](_0x5dc6f3)?_0x5dc6f3:'plaintext',_0xbcb9a2=_0x42200e['highlight'](_0x515e44,{'language':_0x5be91e})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dc6f3)+'\x22>'+_0xbcb9a2+'</code></pre>';}catch(_0x26e8aa){console['error']('Syntax\x20highlighting\x20error:',_0x26e8aa);}return _0x4be9f6(_0x566d66,_0x5c8910,..._0x2515da);},sharedMarkedRenderer=_0x564015,_0x564015;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x169a24=window['mermaid'];if(!_0x169a24||typeof _0x169a24['initialize']!=='function')return _0x169a24||null;return _0x169a24['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x169a24;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x199a2d,_0x44e905)=>{const _0x158321=()=>_0x199a2d(configureMermaidInstance()),_0x1b35c8=()=>{mermaidLoadPromise=null,_0x44e905(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x36452e=document['getElementById'](MERMAID_SCRIPT_ID);!_0x36452e&&(_0x36452e=document['createElement']('script'),_0x36452e['id']=MERMAID_SCRIPT_ID,_0x36452e['src']=MERMAID_SCRIPT_SRC,_0x36452e['async']=!![],document['head']['appendChild'](_0x36452e));if(window['mermaid']){_0x158321();return;}_0x36452e['addEventListener']('load',_0x158321,{'once':!![]}),_0x36452e['addEventListener']('error',_0x1b35c8,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x1f7229){const _0x3a4fdc=_0x1f7229['getAttribute']('data-mermaid-source');if(!_0x3a4fdc)return null;let _0x46b69d=_0x3a4fdc;try{_0x46b69d=decodeURIComponent(_0x3a4fdc);}catch{}return _0x1f7229['textContent']=_0x46b69d,_0x1f7229['removeAttribute']('data-processed'),_0x1f7229['removeAttribute']('aria-roledescription'),_0x1f7229['removeAttribute']('role'),_0x1f7229['removeAttribute']('aria-label'),_0x46b69d;}function collectMermaidNodes(_0x3386a6,_0x50c362){if(!(_0x3386a6 instanceof Element))return;_0x3386a6['matches']('.mermaid[data-mermaid-source]')&&_0x50c362['add'](_0x3386a6),_0x3386a6['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x4b1dcc=>{_0x50c362['add'](_0x4b1dcc);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x3c4555=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xae882f=>setTimeout(_0xae882f,0x0);_0x3c4555(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x2e26a7=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x2e26a7);});});}function queueMermaidRender(_0x58b2e2){const _0x14bdd1=new Set();_0x58b2e2 instanceof Document||_0x58b2e2 instanceof DocumentFragment?_0x58b2e2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3209ac=>_0x14bdd1['add'](_0x3209ac)):collectMermaidNodes(_0x58b2e2,_0x14bdd1);if(_0x14bdd1['size']===0x0)return;_0x14bdd1['forEach'](_0x52475a=>pendingMermaidNodes['add'](_0x52475a)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x5c84bc=Array['from'](pendingMermaidNodes)['filter'](_0x5ee667=>_0x5ee667['isConnected']);pendingMermaidNodes['clear']();if(_0x5c84bc['length']===0x0)return;const _0x25474c=await loadMermaid();if(!_0x25474c)return;configureMermaidInstance();const _0x13385a=getMermaidTheme();for(const _0x863ab8 of _0x5c84bc){const _0x4a2049=_0x863ab8['getAttribute']('data-mermaid-source');if(!_0x4a2049)continue;const _0x30f5f3=_0x863ab8['getAttribute']('data-processed')==='true';if(_0x30f5f3&&_0x863ab8['dataset']['mermaidTheme']===_0x13385a)continue;restoreMermaidSource(_0x863ab8);try{if(typeof _0x25474c['run']==='function')await _0x25474c['run']({'nodes':[_0x863ab8]});else typeof _0x25474c['init']==='function'&&_0x25474c['init'](undefined,[_0x863ab8]);_0x863ab8['dataset']['mermaidTheme']=_0x13385a,delete _0x863ab8['dataset']['mermaidError'];}catch(_0x3e7adf){console['error']('Mermaid\x20render\x20failed:',_0x3e7adf),restoreMermaidSource(_0x863ab8),_0x863ab8['dataset']['mermaidError']='true',delete _0x863ab8['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5f195d=>{_0x5f195d['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5f195d);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4f2b6b=>{_0x4f2b6b['forEach'](_0x55036a=>{_0x55036a['addedNodes']['forEach'](_0x54437a=>{_0x54437a['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x54437a);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x19c160){const _0x1da9b0=new Date(_0x19c160),_0x58da7e=new Date(),_0x3c1528=_0x58da7e-_0x1da9b0,_0x2dedd6=Math['floor'](_0x3c1528/0x3e8),_0x226011=Math['floor'](_0x2dedd6/0x3c),_0x51fbcc=Math['floor'](_0x226011/0x3c),_0x582963=Math['floor'](_0x51fbcc/0x18);if(_0x2dedd6<0x3c)return'now';if(_0x226011<0x3c)return _0x226011+'m\x20ago';if(_0x51fbcc<0x18)return _0x51fbcc+'h\x20ago';return _0x582963+'d\x20ago';},'getStatusIcon'(_0x4297f4){switch(_0x4297f4){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x51d125){switch(_0x51d125){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x4952da,_0x3ce0b2=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x3dcb4c={};_0x3dcb4c['text/plain']=new Blob([_0x4952da],{'type':'text/plain'});_0x3ce0b2&&(_0x3dcb4c['text/html']=new Blob([_0x3ce0b2],{'type':'text/html'}));const _0x3a752d=new ClipboardItem(_0x3dcb4c);return await navigator['clipboard']['write']([_0x3a752d]),!![];}catch(_0xead3a3){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0xead3a3);}try{const _0x441f07=_0x2e1871=>{_0x2e1871['preventDefault'](),_0x2e1871['clipboardData']['setData']('text/plain',_0x4952da),_0x3ce0b2&&_0x2e1871['clipboardData']['setData']('text/html',_0x3ce0b2);};document['addEventListener']('copy',_0x441f07);const _0x14ece4=document['execCommand']('copy');document['removeEventListener']('copy',_0x441f07);if(_0x14ece4)return!![];}catch(_0x2a86bc){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x2a86bc);}try{const _0x1d0750=document['createElement']('textarea');_0x1d0750['value']=_0x4952da,_0x1d0750['style']['position']='fixed',_0x1d0750['style']['opacity']='0',_0x1d0750['style']['pointerEvents']='none',document['body']['appendChild'](_0x1d0750),_0x1d0750['select']();const _0x1620ef=document['execCommand']('copy');return document['body']['removeChild'](_0x1d0750),_0x1620ef;}catch(_0x1f9317){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x1f9317),![];}},'showToast'(_0x27319e,_0x39b559='info'){const _0x4ca84f=getNextToastId(),_0x26f642=document['createElement']('div');_0x26f642['className']='toast\x20toast-'+_0x39b559,_0x26f642['textContent']=_0x27319e,_0x26f642['dataset']['toastId']=_0x4ca84f,document['body']['appendChild'](_0x26f642);const _0x4904bb=_0x39b559==='error'?0x2710:0xbb8,_0x469cef=setTimeout(()=>{removeToastById(_0x4ca84f);},_0x4904bb),_0x47dc28={'id':_0x4ca84f,'el':_0x26f642,'timeoutId':_0x469cef};return registerToast(_0x47dc28),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x26f642['classList']['add']('show');});}),_0x4ca84f;},'showError'(_0x497511){console['error'](_0x497511);const _0x3c6ea0=typeof _0x497511==='string'?_0x497511:_0x497511['message']||'An\x20error\x20occurred';this['showToast'](_0x3c6ea0,'error');},'showSuccess'(_0x3a2d16){this['showToast'](_0x3a2d16,'success');},'capitalize'(_0x5552ee){if(!_0x5552ee)return'';return _0x5552ee['charAt'](0x0)['toUpperCase']()+_0x5552ee['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x2bd2a9){return escapeHtmlValue(_0x2bd2a9);},'ansiToHtml'(_0x3f6f49){if(_0x3f6f49===null||_0x3f6f49===undefined)return'';let _0x4a2cc0=this['escapeHtml'](_0x3f6f49);const _0x1c3f7f={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2e3eb5={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x34e803=0x0;return _0x4a2cc0=_0x4a2cc0['replace'](/\x1b\[([0-9;]*)m/g,(_0x27bbd4,_0x18d804)=>{if(!_0x18d804||_0x18d804==='0'){const _0x11c3a8='</span>'['repeat'](_0x34e803);return _0x34e803=0x0,_0x11c3a8;}const _0x3b6bb7=_0x18d804['split'](';'),_0x467ef6=[];for(const _0x4a2b85 of _0x3b6bb7){if(_0x4a2b85==='1')_0x467ef6['push']('font-weight:bold');else{if(_0x4a2b85==='2')_0x467ef6['push']('opacity:0.7');else{if(_0x4a2b85==='3')_0x467ef6['push']('font-style:italic');else{if(_0x4a2b85==='4')_0x467ef6['push']('text-decoration:underline');else{if(_0x4a2b85==='9')_0x467ef6['push']('text-decoration:line-through');else{if(_0x1c3f7f[_0x4a2b85])_0x467ef6['push']('color:'+_0x1c3f7f[_0x4a2b85]);else{if(_0x2e3eb5[_0x4a2b85])_0x467ef6['push']('background-color:'+_0x2e3eb5[_0x4a2b85]);}}}}}}}if(_0x467ef6['length']>0x0)return _0x34e803++,'<span\x20style=\x22'+_0x467ef6['join'](';')+'\x22>';return'';}),_0x4a2cc0+='</span>'['repeat'](_0x34e803),_0x4a2cc0=_0x4a2cc0['replace'](/\\u001b\[([0-9;]*)m/g,(_0x20ca70,_0x103a7f)=>{if(!_0x103a7f||_0x103a7f==='0')return'';const _0x518665=_0x103a7f['split'](';'),_0x13d138=[];for(const _0x9ea58c of _0x518665){if(_0x9ea58c==='1')_0x13d138['push']('font-weight:bold');else{if(_0x1c3f7f[_0x9ea58c])_0x13d138['push']('color:'+_0x1c3f7f[_0x9ea58c]);else{if(_0x2e3eb5[_0x9ea58c])_0x13d138['push']('background-color:'+_0x2e3eb5[_0x9ea58c]);}}}if(_0x13d138['length']>0x0)return'<span\x20style=\x22'+_0x13d138['join'](';')+'\x22>';return'';}),_0x4a2cc0;},'showModal'({title:_0x1c68fe,content:_0x75ac36,buttons:buttons=[]}){const _0x379731='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x1c68fe)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x75ac36+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x28a897,_0x4e6b14)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x28a897['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x4e6b14+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x28a897['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x34e089=document['createElement']('div');_0x34e089['id']='utils-modal',_0x34e089['className']='modal',_0x34e089['innerHTML']=_0x379731,document['body']['appendChild'](_0x34e089);const _0xb09c24=document['getElementById']('utils-modal-close');_0xb09c24&&_0xb09c24['addEventListener']('click',()=>this['hideModal']());const _0x30d67a=_0x34e089['querySelectorAll']('[data-btn-index]');_0x30d67a['forEach'](_0x2d5790=>{const _0x2c3973=parseInt(_0x2d5790['dataset']['btnIndex']);buttons[_0x2c3973]?.['onClick']&&_0x2d5790['addEventListener']('click',buttons[_0x2c3973]['onClick']);});const _0x505816=document['getElementById']('utils-modal-overlay');_0x505816&&_0x505816['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x45801d=document['getElementById']('utils-modal');_0x45801d&&_0x45801d['remove']();},'parseKeyValuePairs'(_0x46fb5a){const _0x32b81a={};if(!_0x46fb5a)return _0x32b81a;return _0x46fb5a['split'](/\r?\n/)['map'](_0x3a6694=>_0x3a6694['trim']())['filter'](Boolean)['forEach'](_0x38ff95=>{const _0x15741c=_0x38ff95['indexOf']('=');if(_0x15741c>0x0){const _0x2f9fcc=_0x38ff95['slice'](0x0,_0x15741c)['trim'](),_0x2be0de=_0x38ff95['slice'](_0x15741c+0x1)['trim']();if(_0x2f9fcc)_0x32b81a[_0x2f9fcc]=_0x2be0de;}}),_0x32b81a;},'debounce'(_0x59a3c8,_0x22929d=0xfa){let _0x27bc95=null;return(..._0x46fefd)=>{clearTimeout(_0x27bc95),_0x27bc95=setTimeout(()=>_0x59a3c8['apply'](this,_0x46fefd),_0x22929d);};},'formatTimestamp'(_0x87cd){if(!_0x87cd)return'N/A';const _0x389c2c=new Date(_0x87cd);return _0x389c2c['toLocaleDateString']()+'\x20'+_0x389c2c['toLocaleTimeString']();},'getQueryParams'(){const _0x54054f=new URLSearchParams(window['location']['search']),_0x498bc9={};for(const [_0x24c3a3,_0x23a428]of _0x54054f){_0x498bc9[_0x24c3a3]=_0x23a428;}return _0x498bc9;},'formatDuration'(_0x56e9d6,_0x32ad47){if(!_0x56e9d6)return'N/A';const _0x5e5688=new Date(_0x56e9d6),_0x1dd074=_0x32ad47?new Date(_0x32ad47):new Date(),_0x303218=_0x1dd074-_0x5e5688;if(_0x303218<0x0)return'0s';const _0x56dd90=Math['floor'](_0x303218/0x3e8),_0x24f0d3=Math['floor'](_0x56dd90/0x3c),_0x362101=Math['floor'](_0x24f0d3/0x3c),_0x4bbb43=Math['floor'](_0x362101/0x18);if(_0x56dd90<0x3c)return _0x56dd90+'s';if(_0x24f0d3<0x3c)return _0x24f0d3+'m\x20'+_0x56dd90%0x3c+'s';if(_0x362101<0x18)return _0x362101+'h\x20'+_0x24f0d3%0x3c+'m\x20'+_0x56dd90%0x3c+'s';return _0x4bbb43+'d\x20'+_0x362101%0x18+'h\x20'+_0x24f0d3%0x3c+'m';},'renderMarkdown'(_0xa8311a,_0x4d32a8={}){if(!_0xa8311a)return'';_0xa8311a=this['rewriteAttachmentLinks'](_0xa8311a,_0x4d32a8),_0xa8311a=this['rewriteColorSyntax'](_0xa8311a);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0xa8311a,_0x4d32a8);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0xa8311a);}catch(_0x5ca3f7){return console['error']('Markdown\x20parsing\x20error:',_0x5ca3f7),this['renderMarkdownFallback'](_0xa8311a,_0x4d32a8);}},'rewriteAttachmentLinks'(_0x1a4fc7,_0x12ba8f={}){const _0x52ae6f=typeof _0x12ba8f['resolveAttachmentUrl']==='function'?_0x12ba8f['resolveAttachmentUrl']:_0x12ba8f['taskId']?_0x429ec1=>API_BASE+'/tasks/'+_0x12ba8f['taskId']+'/attachments/'+encodeURIComponent(_0x429ec1):null;if(!_0x52ae6f)return _0x1a4fc7;return String(_0x1a4fc7)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x50c56b,_0x3f0aa8)=>{const _0x12c9b1=String(_0x3f0aa8||'')['trim']();if(!_0x12c9b1)return _0x50c56b;let _0x4851f6=_0x12c9b1;try{_0x4851f6=decodeURIComponent(_0x12c9b1);}catch{}const _0x1c0270=_0x52ae6f(_0x4851f6);if(!_0x1c0270)return _0x50c56b;return']('+_0x1c0270+')';});},'rewriteColorSyntax'(_0x362c98){if(!_0x362c98)return _0x362c98;return String(_0x362c98)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x40c889,_0x3c8702,_0x416856)=>{const _0x19db5b=this['rewriteColorSyntax'](_0x416856);return'<span\x20style=\x22color:\x20'+_0x3c8702+'\x22>'+_0x19db5b+'</span>';});},'renderMarkdownFallback'(_0x25549,_0x11bd58={}){if(!_0x25549)return'';_0x25549=_0x25549['replace'](/\r\n/g,'\x0a'),_0x25549=_0x25549['replace'](/\r/g,'\x0a'),_0x25549=this['rewriteAttachmentLinks'](_0x25549,_0x11bd58);let _0x56518d=this['escapeHtml'](_0x25549);return _0x56518d=_0x56518d['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x56518d=_0x56518d['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x56518d=_0x56518d['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x56518d=_0x56518d['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x56518d=_0x56518d['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x56518d=_0x56518d['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x56518d=_0x56518d['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x56518d=_0x56518d['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x56518d=_0x56518d['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x56518d=_0x56518d['replace'](/\n\n/g,'</p><p>'),_0x56518d=_0x56518d['replace'](/\n/g,'<br>'),'<p>'+_0x56518d+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x3a6084=new Uint8Array(0x10);crypto['getRandomValues'](_0x3a6084),_0x3a6084[0x6]=_0x3a6084[0x6]&0xf|0x40,_0x3a6084[0x8]=_0x3a6084[0x8]&0x3f|0x80;const _0x5639cd=Array['from'](_0x3a6084,_0x526f4c=>_0x526f4c['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5639cd['slice'](0x0,0x8)+'-'+_0x5639cd['slice'](0x8,0xc)+'-'+_0x5639cd['slice'](0xc,0x10)+'-'+_0x5639cd['slice'](0x10,0x14)+'-'+_0x5639cd['slice'](0x14);}};export class CustomSelect{constructor(_0x3b0009,_0x445c16={}){this['nativeSelect']=_0x3b0009,this['options']=_0x445c16,this['isOpen']=![],this['selectedValue']=_0x3b0009['value']||'',this['searchable']=_0x445c16['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x340872=document['createElement']('div');_0x340872['className']='custom-select';const _0x201226=document['createElement']('div');_0x201226['className']='custom-select-trigger',_0x201226['setAttribute']('tabindex','0'),_0x201226['setAttribute']('role','button'),_0x201226['setAttribute']('aria-haspopup','listbox');const _0x5a9053=document['createElement']('span');_0x5a9053['className']='custom-select-trigger-text';const _0x366d87=document['createElement']('span');_0x366d87['className']='custom-select-arrow',_0x366d87['textContent']='▼',_0x201226['appendChild'](_0x5a9053),_0x201226['appendChild'](_0x366d87);const _0xb5033a=document['createElement']('div');_0xb5033a['className']='custom-select-dropdown',_0xb5033a['setAttribute']('role','listbox');if(this['searchable']){const _0x363d71=document['createElement']('div');_0x363d71['className']='custom-select-search';const _0x57200=document['createElement']('input');_0x57200['type']='text',_0x57200['className']='custom-select-search-input',_0x57200['placeholder']='Type\x20to\x20search...',_0x57200['setAttribute']('aria-label','Search\x20options'),_0x57200['addEventListener']('input',_0x824ff5=>{this['searchQuery']=_0x824ff5['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x57200['addEventListener']('keydown',_0x4bf0cd=>{if(_0x4bf0cd['key']==='Escape')_0x4bf0cd['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x4bf0cd['key']==='Enter'){_0x4bf0cd['preventDefault'](),_0x4bf0cd['stopPropagation']();const _0x595bc4=_0xb5033a['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x595bc4){const _0x11f34f=_0x595bc4['getAttribute']('data-value');this['select'](_0x11f34f);}}}}),_0x363d71['appendChild'](_0x57200),_0xb5033a['appendChild'](_0x363d71),this['searchInput']=_0x57200;}const _0x3d4dd5=document['createElement']('div');_0x3d4dd5['className']='custom-select-options',_0xb5033a['appendChild'](_0x3d4dd5),_0x340872['appendChild'](_0x201226),_0x340872['appendChild'](_0xb5033a),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x340872,this['nativeSelect']),this['wrapper']=_0x340872,this['trigger']=_0x201226,this['triggerText']=_0x5a9053,this['dropdown']=_0xb5033a,this['optionsContainer']=_0x3d4dd5,_0x201226['addEventListener']('click',()=>this['toggle']()),_0x201226['addEventListener']('keydown',_0x20c760=>this['handleKeydown'](_0x20c760)),document['addEventListener']('click',_0x459774=>{!_0x340872['contains'](_0x459774['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4dbe4c=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4dbe4c['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x2f712b=new MutationObserver(()=>{this['updateDisabledState']();});_0x2f712b['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4ecf03=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4ecf03['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x416f08=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x416f08),this['trigger']['setAttribute']('aria-disabled',_0x416f08?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x416f08?'-1':'0'),_0x416f08&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x166017=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x5a27f9=_0x166017['filter'](_0x12f2ba=>!_0x12f2ba['disabled']&&!_0x12f2ba['hidden']);_0x166017['forEach']((_0x399fa8,_0x16d181)=>{const _0x4e9c02=document['createElement']('div');_0x4e9c02['className']='custom-select-option',_0x4e9c02['textContent']=_0x399fa8['textContent'],_0x4e9c02['setAttribute']('data-value',_0x399fa8['value']),_0x4e9c02['setAttribute']('data-index',_0x16d181),_0x4e9c02['setAttribute']('role','option'),_0x399fa8['disabled']?_0x4e9c02['classList']['add']('disabled'):_0x4e9c02['addEventListener']('click',()=>this['select'](_0x399fa8['value'])),_0x399fa8['value']===this['selectedValue']&&_0x4e9c02['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x4e9c02),this['allOptions']['push']({'element':_0x4e9c02,'text':_0x399fa8['textContent']['toLowerCase'](),'value':_0x399fa8['value'],'disabled':_0x399fa8['disabled']});});if(this['searchable']&&this['searchInput']){const _0x420145=this['searchInput']['parentElement'];_0x5a27f9['length']>0x3?_0x420145['style']['display']='':_0x420145['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x17cdd7=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x8c447d=>{if(!_0x17cdd7||_0x8c447d['disabled'])_0x8c447d['element']['style']['display']='';else{const _0x485513=_0x8c447d['text']['includes'](_0x17cdd7);_0x8c447d['element']['style']['display']=_0x485513?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x1482bc){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x1482bc,this['nativeSelect']['value']=_0x1482bc;const _0x2a9537=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x2a9537),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x512bb6=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x512bb6&&(this['triggerText']['textContent']=_0x512bb6['textContent'],_0x512bb6['disabled']||_0x512bb6['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x4bdc23=>{_0x4bdc23['getAttribute']('data-value')===this['selectedValue']?_0x4bdc23['classList']['add']('selected'):_0x4bdc23['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x8f5cb6=window['getComputedStyle'](this['dropdown']);if(_0x8f5cb6['position']==='fixed'){const _0x319535=this['trigger']['getBoundingClientRect'](),_0x43e454=parseInt(_0x8f5cb6['maxHeight'])||0xc8,_0xd7671=window['innerHeight'],_0x18d226=_0xd7671-_0x319535['bottom'],_0xb7d9dd=_0x319535['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x3941e8;_0x18d226<_0x43e454&&_0xb7d9dd>_0x18d226?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0xd7671-_0x319535['top']+'px',_0x3941e8=Math['min'](_0x43e454,_0xb7d9dd-0xa),this['dropdown']['style']['maxHeight']=_0x3941e8+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x319535['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x3941e8=Math['min'](_0x43e454,_0x18d226-0xa),this['dropdown']['style']['maxHeight']=_0x3941e8+'px');if(this['optionsContainer']){let _0x4967a0=_0x3941e8;if(this['searchInput']){const _0x2fe5c9=this['searchInput']['parentElement'];_0x2fe5c9&&(_0x4967a0-=_0x2fe5c9['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4967a0)+'px';}this['dropdown']['style']['left']=_0x319535['left']+'px',this['dropdown']['style']['width']=_0x319535['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0xd9ad65=this['searchInput']['parentElement'];_0xd9ad65&&_0xd9ad65['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x4ddd8b){if(this['nativeSelect']['disabled'])return;if(_0x4ddd8b['key']==='Enter'||_0x4ddd8b['key']==='\x20')_0x4ddd8b['preventDefault'](),this['toggle']();else _0x4ddd8b['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x17e225='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x17e225),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x5acd0a=document['getElementById']('confirm-dialog-close'),_0x1a0eae=document['getElementById']('confirm-dialog-cancel'),_0x153605=document['getElementById']('confirm-dialog-confirm'),_0x2c2e70=this['_modal']['querySelector']('.modal-overlay');_0x5acd0a['addEventListener']('click',()=>this['_resolve'](![])),_0x1a0eae['addEventListener']('click',()=>this['_resolve'](![])),_0x153605['addEventListener']('click',()=>this['_resolve'](!![])),_0x2c2e70['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1262c2=>{if(_0x1262c2['key']==='Escape')_0x1262c2['preventDefault'](),this['_resolve'](![]);else _0x1262c2['key']==='Enter'&&(_0x1262c2['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x20f4f9,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x4c2d41=>{this['_resolvePromise']=_0x4c2d41,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x20f4f9;const _0x2874f4=document['getElementById']('confirm-dialog-cancel'),_0xe497bb=document['getElementById']('confirm-dialog-confirm');_0x2874f4['textContent']=cancelText,_0xe497bb['textContent']=confirmText,_0xe497bb['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0xe497bb['focus']();});},'_resolve'(_0xda58ec){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0xda58ec),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x3d9a8b,_0x29783b={}){this['container']=_0x3d9a8b,this['options']={'placeholder':_0x29783b['placeholder']||'Type\x20to\x20search...','maxItems':_0x29783b['maxItems']||0x64,'loadItems':_0x29783b['loadItems']||(async()=>[]),'renderItem':_0x29783b['renderItem']||(_0x322064=>({'primary':String(_0x322064),'secondary':''})),'onSelect':_0x29783b['onSelect']||(()=>{}),'filterItems':_0x29783b['filterItems']||null,'getItemValue':_0x29783b['getItemValue']||(_0x1d4826=>_0x1d4826),'sortItems':_0x29783b['sortItems']||null,'debounceMs':_0x29783b['debounceMs']||0xc8,'minCharsForSearch':_0x29783b['minCharsForSearch']||0x0,'emptyMessage':_0x29783b['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x29783b['loadingMessage']||'Loading...','preload':_0x29783b['preload']!==![],'searchMode':_0x29783b['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x18c30f=>this['onBlur'](_0x18c30f)),this['input']['addEventListener']('input',_0xbc4501=>this['onInput'](_0xbc4501)),this['input']['addEventListener']('keydown',_0xcf54a1=>this['onKeydown'](_0xcf54a1)),this['clearBtn']['addEventListener']('mousedown',_0x32c933=>{_0x32c933['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x5389d0=>{_0x5389d0['preventDefault']();}),document['addEventListener']('click',_0x4483b0=>{!this['wrapper']['contains'](_0x4483b0['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x510087){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x510087);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x364b09){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x24e35b){const _0x5e9ffd=_0x24e35b['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x5e9ffd);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x5e9ffd):this['loadAndShow'](_0x5e9ffd);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x77f2c3){switch(_0x77f2c3['key']){case'ArrowDown':_0x77f2c3['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x77f2c3['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x77f2c3['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x77f2c3['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x587b16){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x40a936=this['selectedIndex']+_0x587b16;if(_0x40a936>=0x0&&_0x40a936<this['filteredItems']['length']){this['selectedIndex']=_0x40a936,this['updateSelectionHighlight']();const _0xb8c7e5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0xb8c7e5[this['selectedIndex']]&&_0xb8c7e5[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x357254=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x357254['forEach']((_0x473ab6,_0xd08a85)=>{_0x473ab6['classList']['toggle']('keyboard-selected',_0xd08a85===this['selectedIndex']);});}async['loadAndShow'](_0x2addf7){this['showLoading']();try{const _0x1de7e7=await this['options']['loadItems'](_0x2addf7);if(this['options']['searchMode']==='server'){let _0x4d1277=_0x1de7e7;this['options']['sortItems']&&(_0x4d1277=this['options']['sortItems']([..._0x1de7e7]));this['filteredItems']=_0x4d1277;const _0x549265=this['filteredItems']['length']>=this['options']['maxItems'];_0x549265&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549265),this['open']();}else this['allItems']=_0x1de7e7,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x2addf7);}catch(_0x5eac9c){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x5eac9c),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x3f3ea2){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x3f3ea2):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x2a3f64=this['filteredItems']['length']>=this['options']['maxItems'];_0x2a3f64&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x2a3f64),this['open']();}['renderItems'](_0x2fcd0d){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x38dad8,_0x4b17d9)=>{const _0x89b3f0=document['createElement']('div');_0x89b3f0['className']='autocomplete-select-item',_0x89b3f0['setAttribute']('role','option'),_0x89b3f0['setAttribute']('data-index',_0x4b17d9);const _0x45d2e8=this['options']['renderItem'](_0x38dad8);let _0x5a1d60='';_0x45d2e8['icon']&&(_0x5a1d60='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x45d2e8['iconClass']||'')+'\x22>'+_0x45d2e8['icon']+'</span>'),_0x89b3f0['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x5a1d60+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x45d2e8['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x45d2e8['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x45d2e8['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x89b3f0['addEventListener']('click',()=>{this['selectItem'](_0x38dad8);}),_0x89b3f0['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x4b17d9,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x89b3f0);}),_0x2fcd0d?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x178212){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x178212)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2d57a7){this['selectedItem']=_0x2d57a7;const _0x3f9ed4=this['options']['renderItem'](_0x2d57a7);this['input']['value']=_0x3f9ed4['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2d57a7);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x36842b){if(_0x36842b){this['selectedItem']=_0x36842b;const _0x1829fc=this['options']['renderItem'](_0x36842b);this['input']['value']=_0x1829fc['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x1b5924){this['allItems']=_0x1b5924,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x429b15){this['input']['placeholder']=_0x429b15;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5a452b=null){const _0x145e06=document['getElementById']('admin-menu-container'),_0x6aaa3d=document['getElementById']('admin-menu-btn'),_0x2c4c7f=document['getElementById']('admin-menu');if(!_0x145e06||!_0x6aaa3d||!_0x2c4c7f)return;try{!_0x5a452b&&(_0x5a452b=await API['getCurrentUser']());if(_0x5a452b){const _0x3d2f9d=window['Permissions'],_0x464e69=_0x3d2f9d['hasServerPermission'](_0x5a452b,'*')||_0x3d2f9d['hasEnvPermission'](_0x5a452b,'environments:manage')||_0x3d2f9d['hasServerPermission'](_0x5a452b,'users:create')||_0x3d2f9d['hasTeamPermission'](_0x5a452b,'teams:manage')||_0x3d2f9d['hasEnvPermission'](_0x5a452b,'environments:view_details');if(!_0x464e69)return;_0x145e06['hidden']=![];if(!_0x3d2f9d['hasServerPermission'](_0x5a452b,'*')){const _0x341ce0=_0x2c4c7f['querySelectorAll']('.admin-menu-item');_0x341ce0['forEach'](_0x5c8ee4=>{const _0x87c0be=_0x5c8ee4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x87c0be==='Users'&&!_0x3d2f9d['hasServerPermission'](_0x5a452b,'users:create')&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Skills'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Server\x20Settings'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Server\x20Administration'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Git\x20History'&&(_0x5c8ee4['hidden']=!![]),_0x87c0be==='Roles'&&(_0x5c8ee4['hidden']=!![]);});}_0x6aaa3d['addEventListener']('click',_0x4e5a33=>{_0x4e5a33['stopPropagation']();const _0x19b6be=document['getElementById']('actions-menu');if(_0x19b6be)_0x19b6be['hidden']=!![];_0x2c4c7f['hidden']=!_0x2c4c7f['hidden'];}),document['addEventListener']('click',_0x575baf=>{!_0x2c4c7f['hidden']&&!_0x6aaa3d['contains'](_0x575baf['target'])&&!_0x2c4c7f['contains'](_0x575baf['target'])&&(_0x2c4c7f['hidden']=!![]);}),document['addEventListener']('keydown',_0x34e8b7=>{_0x34e8b7['key']==='Escape'&&!_0x2c4c7f['hidden']&&(_0x2c4c7f['hidden']=!![]);});}}catch(_0x1d608c){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x1d608c['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};