@profoundlogic/coderflow-server 0.7.9 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/base-image/coder-git-credential-helper +16 -0
  2. package/dist/base-image/entrypoint.sh +75 -5
  3. package/dist/base-image/sync-repos.sh +30 -1
  4. package/dist/coder-server.js +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/lib/agent-keepalive.js +1 -1
  7. package/dist/lib/agent-models.js +1 -1
  8. package/dist/lib/api-keys.js +1 -1
  9. package/dist/lib/apiKeys.js +1 -1
  10. package/dist/lib/app-server-ports.js +1 -1
  11. package/dist/lib/auto-judge.js +1 -1
  12. package/dist/lib/automation-service.js +1 -1
  13. package/dist/lib/basic-auth.js +1 -1
  14. package/dist/lib/bindings.js +1 -1
  15. package/dist/lib/build-history.js +1 -1
  16. package/dist/lib/build-output-service.js +1 -1
  17. package/dist/lib/build-scheduler.js +1 -1
  18. package/dist/lib/build-service.js +1 -1
  19. package/dist/lib/ca-certificates.js +1 -1
  20. package/dist/lib/claude-oauth-refresh.js +1 -1
  21. package/dist/lib/cli/build.js +1 -1
  22. package/dist/lib/cli/cleanup-users.js +1 -1
  23. package/dist/lib/cli/config-command.js +1 -1
  24. package/dist/lib/cli/config.js +1 -1
  25. package/dist/lib/cli/create-user.js +1 -1
  26. package/dist/lib/cli/grant-admin.js +1 -1
  27. package/dist/lib/cli/init.js +1 -1
  28. package/dist/lib/cli/jira.js +1 -1
  29. package/dist/lib/cli/license.js +1 -1
  30. package/dist/lib/cli/list-roles.js +1 -1
  31. package/dist/lib/cli/list-users.js +1 -1
  32. package/dist/lib/cli/server-manager.js +1 -1
  33. package/dist/lib/cli/set-password.js +1 -1
  34. package/dist/lib/compression-filter.js +1 -1
  35. package/dist/lib/config-migration.js +1 -1
  36. package/dist/lib/container-credential-sync.js +1 -1
  37. package/dist/lib/container-tokens.js +1 -1
  38. package/dist/lib/data-dir.js +1 -1
  39. package/dist/lib/deployment-history.js +1 -1
  40. package/dist/lib/deployment-service.js +1 -1
  41. package/dist/lib/docker-utils.js +1 -1
  42. package/dist/lib/email.js +1 -1
  43. package/dist/lib/emailTemplates.js +1 -1
  44. package/dist/lib/entitlement.js +1 -1
  45. package/dist/lib/external-connections.js +1 -1
  46. package/dist/lib/fetch-utils.js +1 -1
  47. package/dist/lib/git-commit-details-route.js +1 -1
  48. package/dist/lib/git-history-diff-guardrails.js +1 -1
  49. package/dist/lib/git-provider-service.js +1 -1
  50. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  51. package/dist/lib/git-provider-setup/index.js +1 -1
  52. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  53. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  54. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  55. package/dist/lib/git-providers/github-app-provider.js +1 -1
  56. package/dist/lib/git-providers/index.js +1 -1
  57. package/dist/lib/git-providers/provider-factory.js +1 -1
  58. package/dist/lib/git-providers/provider-interface.js +1 -1
  59. package/dist/lib/github-urls.js +1 -1
  60. package/dist/lib/group-objective-linking.js +1 -1
  61. package/dist/lib/ibmi-sync.js +1 -1
  62. package/dist/lib/jira-client.js +1 -1
  63. package/dist/lib/judge-blinding.js +1 -1
  64. package/dist/lib/logger.js +1 -1
  65. package/dist/lib/memory-utils.js +1 -1
  66. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  67. package/dist/lib/model-fetcher.js +1 -1
  68. package/dist/lib/notifications.js +1 -1
  69. package/dist/lib/objective-context.js +1 -1
  70. package/dist/lib/oidc-auth.js +1 -1
  71. package/dist/lib/oidc-device-flow.js +1 -1
  72. package/dist/lib/passwordTokens.js +1 -1
  73. package/dist/lib/permission-resolver.js +1 -1
  74. package/dist/lib/pin-cascade.js +1 -1
  75. package/dist/lib/provider-accounts.js +1 -1
  76. package/dist/lib/provider-oauth.js +1 -1
  77. package/dist/lib/provider-profile.js +1 -1
  78. package/dist/lib/provider-token-refresh.js +1 -1
  79. package/dist/lib/rbac-user-state.js +1 -1
  80. package/dist/lib/request-url.js +1 -1
  81. package/dist/lib/rewind.js +1 -1
  82. package/dist/lib/role-definitions.js +1 -1
  83. package/dist/lib/roles.js +1 -1
  84. package/dist/lib/secrets.js +1 -1
  85. package/dist/lib/setup-repo-git-auth.js +1 -1
  86. package/dist/lib/state-capture.js +1 -1
  87. package/dist/lib/static-files.js +1 -1
  88. package/dist/lib/task-aliases.js +1 -1
  89. package/dist/lib/task-container-init.js +1 -0
  90. package/dist/lib/task-context-usage.js +1 -0
  91. package/dist/lib/task-name-format.js +1 -1
  92. package/dist/lib/task-name-generator.js +1 -1
  93. package/dist/lib/task-source-metadata.js +1 -1
  94. package/dist/lib/teams.js +1 -1
  95. package/dist/lib/user-git-oauth.js +1 -1
  96. package/dist/lib/user-git-tokens.js +1 -1
  97. package/dist/lib/users.js +1 -1
  98. package/dist/middleware/requireAuth.js +1 -1
  99. package/dist/middleware/requireInit.js +1 -1
  100. package/dist/middleware/requirePermission.js +1 -1
  101. package/dist/package.json +1 -1
  102. package/dist/playwright.config.js +1 -1
  103. package/dist/playwright.task-terminal.config.js +1 -1
  104. package/dist/routes/apiKeys.js +1 -1
  105. package/dist/routes/auth-oidc.js +1 -1
  106. package/dist/routes/auth.js +1 -1
  107. package/dist/routes/automations.js +1 -1
  108. package/dist/routes/bindings.js +1 -1
  109. package/dist/routes/build.js +1 -1
  110. package/dist/routes/containers.js +1 -1
  111. package/dist/routes/deploy-task.js +1 -1
  112. package/dist/routes/environment-management.js +1 -1
  113. package/dist/routes/environments.js +1 -1
  114. package/dist/routes/external-skills.js +1 -1
  115. package/dist/routes/git-credentials.js +1 -1
  116. package/dist/routes/git-oauth.js +1 -1
  117. package/dist/routes/git-provider-setup.js +1 -1
  118. package/dist/routes/health.js +1 -1
  119. package/dist/routes/jira.js +1 -1
  120. package/dist/routes/logs.js +1 -1
  121. package/dist/routes/objective-management.js +1 -1
  122. package/dist/routes/password.js +1 -1
  123. package/dist/routes/prompt.js +1 -1
  124. package/dist/routes/provider-auth.js +1 -1
  125. package/dist/routes/qa.js +1 -1
  126. package/dist/routes/roles.js +1 -1
  127. package/dist/routes/settings.js +1 -1
  128. package/dist/routes/skill-management.js +1 -1
  129. package/dist/routes/skills.js +1 -1
  130. package/dist/routes/stats.js +1 -1
  131. package/dist/routes/tasks.js +1 -1
  132. package/dist/routes/teams.js +1 -1
  133. package/dist/routes/templates.js +1 -1
  134. package/dist/routes/test-task.js +1 -1
  135. package/dist/routes/test.js +1 -1
  136. package/dist/routes/users.js +1 -1
  137. package/dist/routes/visualizations.js +1 -1
  138. package/dist/scripts/create-user.js +1 -1
  139. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  140. package/dist/start.js +1 -1
  141. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  142. package/dist/web-ui/public/activity-feed.js +1 -1
  143. package/dist/web-ui/public/activity-formatters.js +1 -1
  144. package/dist/web-ui/public/admin.css +95 -1
  145. package/dist/web-ui/public/admin.html +29 -1
  146. package/dist/web-ui/public/admin.js +1 -1
  147. package/dist/web-ui/public/agent-event-parser.js +1 -1
  148. package/dist/web-ui/public/app.js +1 -1
  149. package/dist/web-ui/public/approve-dialog.js +1 -1
  150. package/dist/web-ui/public/automation-links.js +1 -1
  151. package/dist/web-ui/public/automation-schedule.js +1 -1
  152. package/dist/web-ui/public/comments-widget.js +1 -1
  153. package/dist/web-ui/public/diff-utils.js +1 -1
  154. package/dist/web-ui/public/environments.js +1 -1
  155. package/dist/web-ui/public/feedback-widget.css +45 -0
  156. package/dist/web-ui/public/feedback-widget.js +1 -1
  157. package/dist/web-ui/public/file-selection-tree.js +1 -1
  158. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  159. package/dist/web-ui/public/git-history.js +1 -1
  160. package/dist/web-ui/public/git-status.js +1 -1
  161. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  162. package/dist/web-ui/public/index.js +1 -1
  163. package/dist/web-ui/public/login.js +1 -1
  164. package/dist/web-ui/public/markdown-editor.js +1 -1
  165. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  166. package/dist/web-ui/public/modal-maximize.js +1 -1
  167. package/dist/web-ui/public/notifications.js +1 -1
  168. package/dist/web-ui/public/permissions.js +1 -1
  169. package/dist/web-ui/public/pr-dialog.js +1 -1
  170. package/dist/web-ui/public/roles.js +1 -1
  171. package/dist/web-ui/public/settings.js +1 -1
  172. package/dist/web-ui/public/setup-password.js +1 -1
  173. package/dist/web-ui/public/skills.js +1 -1
  174. package/dist/web-ui/public/sse-client.js +1 -1
  175. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  176. package/dist/web-ui/public/styles.css +81 -0
  177. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  178. package/dist/web-ui/public/task.html +35 -1
  179. package/dist/web-ui/public/task.js +1 -1
  180. package/dist/web-ui/public/teams.js +1 -1
  181. package/dist/web-ui/public/terminal.js +1 -1
  182. package/dist/web-ui/public/theme.js +1 -1
  183. package/dist/web-ui/public/users.js +1 -1
  184. package/dist/web-ui/public/variant-grouping.js +1 -1
  185. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x2e6ec1=window['location']['pathname'],_0x172a8a=_0x2e6ec1['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x172a8a)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x172a8a[0x1]),_0x172a8a[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x50e1cd={}){const _0x11cfc=new URLSearchParams();_0x50e1cd['userId']&&_0x11cfc['set']('userId',String(_0x50e1cd['userId']));_0x50e1cd['automation']&&_0x11cfc['set']('automation',String(_0x50e1cd['automation']));const _0xdfe427=API_BASE+'/tasks/stats'+(_0x11cfc['toString']()?'?'+_0x11cfc['toString']():''),_0x196351=await fetch(_0xdfe427);if(!_0x196351['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x196351['statusText']);return await _0x196351['json']();},async 'getTasks'(_0x316732={}){const _0x3a7059=new URLSearchParams();_0x316732['status']&&_0x3a7059['set']('status',String(_0x316732['status']));_0x316732['environment']&&_0x3a7059['set']('environment',String(_0x316732['environment']));_0x316732['automation']&&_0x3a7059['set']('automation',String(_0x316732['automation']));if(_0x316732['include']){const _0x4d1df6=Array['isArray'](_0x316732['include'])?_0x316732['include']['join'](','):String(_0x316732['include']);_0x4d1df6&&_0x3a7059['set']('include',_0x4d1df6);}_0x316732['filter']&&_0x3a7059['set']('filter',String(_0x316732['filter']));_0x316732['page']&&_0x3a7059['set']('page',String(_0x316732['page']));_0x316732['limit']&&_0x3a7059['set']('limit',String(_0x316732['limit']));_0x316732['userId']&&_0x3a7059['set']('userId',String(_0x316732['userId']));_0x316732['search']&&_0x3a7059['set']('search',String(_0x316732['search']));_0x316732['includeChildTasks']&&_0x3a7059['set']('includeChildTasks','true');const _0x2a2a8e=API_BASE+'/tasks'+(_0x3a7059['toString']()?'?'+_0x3a7059['toString']():''),_0x57e5a8=await fetch(_0x2a2a8e);if(!_0x57e5a8['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x57e5a8['statusText']);return await _0x57e5a8['json']();},async 'getAutomations'(_0x1763a2={}){const _0x5e6c83=new URLSearchParams();_0x1763a2['environment']&&_0x5e6c83['set']('environment',String(_0x1763a2['environment']));const _0x4c3c77=await fetch(API_BASE+'/api/automations'+(_0x5e6c83['toString']()?'?'+_0x5e6c83['toString']():''));if(!_0x4c3c77['ok']){const _0xb67ff=await _0x4c3c77['json']()['catch'](()=>({}));throw new Error(_0xb67ff['message']||_0xb67ff['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x4c3c77['statusText']);}return await _0x4c3c77['json']();},async 'getAutomation'(_0x1f2d9b){const _0x539788=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1f2d9b));if(!_0x539788['ok']){const _0x46b8a7=await _0x539788['json']()['catch'](()=>({}));throw new Error(_0x46b8a7['message']||_0x46b8a7['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x539788['statusText']);}return await _0x539788['json']();},async 'createAutomation'(_0x4bb77f){const _0x510eba=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4bb77f||{})});if(!_0x510eba['ok']){const _0x2476a1=await _0x510eba['json']()['catch'](()=>({}));throw new Error(_0x2476a1['message']||_0x2476a1['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x510eba['statusText']);}return await _0x510eba['json']();},async 'updateAutomation'(_0x247fc3,_0x95ef9d){const _0x270d2c=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x247fc3),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x95ef9d||{})});if(!_0x270d2c['ok']){const _0x1e8a4a=await _0x270d2c['json']()['catch'](()=>({}));throw new Error(_0x1e8a4a['message']||_0x1e8a4a['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x270d2c['statusText']);}return await _0x270d2c['json']();},async 'deleteAutomation'(_0x4a5ca9){const _0x12c180=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4a5ca9),{'method':'DELETE'});if(!_0x12c180['ok']){const _0x465beb=await _0x12c180['json']()['catch'](()=>({}));throw new Error(_0x465beb['message']||_0x465beb['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x12c180['statusText']);}return await _0x12c180['json']();},async 'triggerAutomation'(_0x306bd4){const _0x58eeba=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x306bd4)+'/trigger',{'method':'POST'});if(!_0x58eeba['ok']){const _0x2106de=await _0x58eeba['json']()['catch'](()=>({}));throw new Error(_0x2106de['message']||_0x2106de['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x58eeba['statusText']);}return await _0x58eeba['json']();},async 'setAutomationEnabled'(_0x5e00a0,_0x88eb9e){const _0x47d8bb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5e00a0)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x88eb9e})});if(!_0x47d8bb['ok']){const _0x1d4a3e=await _0x47d8bb['json']()['catch'](()=>({}));throw new Error(_0x1d4a3e['message']||_0x1d4a3e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x47d8bb['statusText']);}return await _0x47d8bb['json']();},async 'getAutomationHistory'(_0x3c13c5,_0x7266b2=0x32){const _0x4c8743=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3c13c5)+'/history?limit='+encodeURIComponent(String(_0x7266b2)));if(!_0x4c8743['ok']){const _0x9697a9=await _0x4c8743['json']()['catch'](()=>({}));throw new Error(_0x9697a9['message']||_0x9697a9['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x4c8743['statusText']);}return await _0x4c8743['json']();},async 'getTask'(_0x23da9e,_0x3216ff={}){const _0xb0193=new URLSearchParams();if(_0x3216ff['include']){const _0x597368=Array['isArray'](_0x3216ff['include'])?_0x3216ff['include']['join'](','):String(_0x3216ff['include']);if(_0x597368)_0xb0193['set']('include',_0x597368);}const _0x393d4a=await fetch(API_BASE+'/tasks/'+_0x23da9e+(_0xb0193['toString']()?'?'+_0xb0193['toString']():''));if(!_0x393d4a['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x393d4a['statusText']);return await _0x393d4a['json']();},async 'getTaskResults'(_0x15622b){const _0xc3c61d=await fetch(API_BASE+'/tasks/'+_0x15622b+'/results');if(!_0xc3c61d['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0xc3c61d['statusText']);return await _0xc3c61d['json']();},async 'getTaskPatches'(_0x2572cd){const _0x480650=await fetch(API_BASE+'/tasks/'+_0x2572cd+'/patches');if(!_0x480650['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x480650['statusText']);return await _0x480650['json']();},async 'getTaskAttachments'(_0x3b42f3){const _0x51b3ce=await fetch(API_BASE+'/tasks/'+_0x3b42f3+'/attachments');if(!_0x51b3ce['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x51b3ce['statusText']);return await _0x51b3ce['json']();},async 'uploadAttachments'(_0x32522b,_0x51574c){const _0x19a643=new FormData();for(const _0x4e10e4 of _0x51574c){_0x19a643['append']('attachments',_0x4e10e4);}const _0x388b29=await fetch(API_BASE+'/tasks/'+_0x32522b+'/attachments',{'method':'POST','body':_0x19a643});if(!_0x388b29['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x388b29['statusText']);return await _0x388b29['json']();},async 'isAINameGenerationAvailable'(){try{const _0x590123=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x590123['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x590123['json']();}catch(_0x406a73){return{'available':![],'reason':_0x406a73['message']};}},async 'generateTaskName'(_0xb26931){try{const _0x4d930d=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0xb26931})});return await _0x4d930d['json']();}catch(_0x298f8f){return{'success':![],'error':_0x298f8f['message']};}},async 'createTask'(_0x1a636c){let _0x501acb,_0x42f7c0={};if(_0x1a636c['files']&&_0x1a636c['files']['length']>0x0){const _0x3e7344=new FormData();for(const [_0xcc6308,_0x576139]of Object['entries'](_0x1a636c)){if(_0xcc6308!=='files'){if(_0x576139==null)continue;typeof _0x576139==='object'?_0x3e7344['append'](_0xcc6308,JSON['stringify'](_0x576139)):_0x3e7344['append'](_0xcc6308,String(_0x576139));}}for(const _0x423f3c of _0x1a636c['files']){_0x3e7344['append']('attachments',_0x423f3c);}_0x501acb=_0x3e7344;}else _0x42f7c0['Content-Type']='application/json',_0x501acb=JSON['stringify'](_0x1a636c);const _0x24f6e3=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x42f7c0,'body':_0x501acb});if(!_0x24f6e3['ok']){const _0x46c91e=await _0x24f6e3['json'](),_0x375555=new Error(_0x46c91e['error']||'Failed\x20to\x20create\x20task:\x20'+_0x24f6e3['statusText']),{message:_0x5f0df7,..._0x126e62}=_0x46c91e;Object['assign'](_0x375555,_0x126e62);throw _0x375555;}return await _0x24f6e3['json']();},async 'createTestTask'(_0x4417fa){const _0x16bf06=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4417fa)});if(!_0x16bf06['ok']){const _0x28524e=await _0x16bf06['json']();throw new Error(_0x28524e['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x16bf06['statusText']);}return await _0x16bf06['json']();},async 'createEphemeralTest'(_0x5462fc){const _0x5c5c9d=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5462fc)});if(!_0x5c5c9d['ok']){const _0x33fe55=await _0x5c5c9d['json']();throw new Error(_0x33fe55['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x5c5c9d['statusText']);}return await _0x5c5c9d['json']();},async 'createDeployTask'(_0x58432f){const _0x2de682=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x58432f)});if(!_0x2de682['ok']){const _0x11ef7a=await _0x2de682['json']();throw new Error(_0x11ef7a['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x2de682['statusText']);}return await _0x2de682['json']();},async 'getEnvironments'(){const _0x4c6a24=await fetch(API_BASE+'/environments');if(!_0x4c6a24['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x4c6a24['statusText']);return await _0x4c6a24['json']();},async 'getEnvironment'(_0x5afe84){const _0x17f500=await fetch(API_BASE+'/environments/'+_0x5afe84);if(!_0x17f500['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x17f500['statusText']);return await _0x17f500['json']();},async 'getEnvironmentRepoHistory'(_0x4d18dd,_0x502064,_0x2264aa={}){if(!_0x4d18dd||!_0x502064)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x558c3e=new URLSearchParams();if(_0x2264aa['limit'])_0x558c3e['set']('limit',String(_0x2264aa['limit']));if(_0x2264aa['offset'])_0x558c3e['set']('offset',String(_0x2264aa['offset']));if(_0x2264aa['search'])_0x558c3e['set']('search',String(_0x2264aa['search']));if(_0x2264aa['branch'])_0x558c3e['set']('branch',String(_0x2264aa['branch']));const _0x4204ac=API_BASE+'/environments/'+encodeURIComponent(_0x4d18dd)+'/repos/'+encodeURIComponent(_0x502064)+'/git/history',_0x227091=await fetch(''+_0x4204ac+(_0x558c3e['toString']()?'?'+_0x558c3e['toString']():''));if(!_0x227091['ok']){const _0x266300=await _0x227091['json']()['catch'](()=>({}));throw new Error(_0x266300['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x227091['statusText']);}return await _0x227091['json']();},async 'getEnvironmentRepoCommit'(_0x11b1df,_0x232756,_0x4ae846){if(!_0x11b1df||!_0x232756||!_0x4ae846)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x369954=API_BASE+'/environments/'+encodeURIComponent(_0x11b1df)+'/repos/'+encodeURIComponent(_0x232756)+'/git/commits/'+encodeURIComponent(_0x4ae846),_0x22e103=await fetch(_0x369954);if(!_0x22e103['ok']){const _0x356125=await _0x22e103['json']()['catch'](()=>({}));throw new Error(_0x356125['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x22e103['statusText']);}return await _0x22e103['json']();},async 'getEnvironmentRepoBranches'(_0x22c5ec,_0x112f11){if(!_0x22c5ec||!_0x112f11)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x701e38=API_BASE+'/environments/'+encodeURIComponent(_0x22c5ec)+'/repos/'+encodeURIComponent(_0x112f11)+'/git/branches',_0x4cab8a=await fetch(_0x701e38);if(!_0x4cab8a['ok']){const _0x38cfbe=await _0x4cab8a['json']()['catch'](()=>({}));throw new Error(_0x38cfbe['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x4cab8a['statusText']);}return await _0x4cab8a['json']();},async 'revertEnvironmentRepoCommit'(_0xa80eaf,_0x361169,_0x29e481,_0x226c31={}){if(!_0xa80eaf||!_0x361169||!_0x29e481)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x12cca6=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0xa80eaf)+'/repos/'+encodeURIComponent(_0x361169)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x29e481,..._0x226c31})});if(!_0x12cca6['ok']){const _0x6b4790=await _0x12cca6['json']()['catch'](()=>({}));throw new Error(_0x6b4790['message']||_0x6b4790['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x12cca6['statusText']);}return await _0x12cca6['json']();},async 'getTemplates'(_0x5357ff={}){const _0x1d5e36=new URLSearchParams();if(_0x5357ff['include']){const _0x563207=Array['isArray'](_0x5357ff['include'])?_0x5357ff['include']['join'](','):String(_0x5357ff['include']);if(_0x563207)_0x1d5e36['set']('include',_0x563207);}const _0x37e2af=await fetch(API_BASE+'/templates'+(_0x1d5e36['toString']()?'?'+_0x1d5e36['toString']():''));if(!_0x37e2af['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x37e2af['statusText']);return await _0x37e2af['json']();},async 'getTemplatesForEnvironment'(_0x5ebe5d,_0x1133b0={}){if(!_0x5ebe5d)throw new Error('Environment\x20name\x20is\x20required');const _0x56fd5d=new URLSearchParams();if(_0x1133b0['include']){const _0xd85549=Array['isArray'](_0x1133b0['include'])?_0x1133b0['include']['join'](','):String(_0x1133b0['include']);if(_0xd85549)_0x56fd5d['set']('include',_0xd85549);}const _0x56b19c=await fetch(API_BASE+'/templates/'+_0x5ebe5d+(_0x56fd5d['toString']()?'?'+_0x56fd5d['toString']():''));if(!_0x56b19c['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x5ebe5d+':\x20'+_0x56b19c['statusText']);return await _0x56b19c['json']();},async 'getTemplate'(_0x22c462,_0x8007eb,_0x3a0ea4={}){if(!_0x22c462||!_0x8007eb)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x2f3a35=new URLSearchParams();if(_0x3a0ea4['include']){const _0x21edab=Array['isArray'](_0x3a0ea4['include'])?_0x3a0ea4['include']['join'](','):String(_0x3a0ea4['include']);if(_0x21edab)_0x2f3a35['set']('include',_0x21edab);}const _0x4ca9a4=await fetch(API_BASE+'/templates/'+_0x22c462+'/'+_0x8007eb+(_0x2f3a35['toString']()?'?'+_0x2f3a35['toString']():''));if(!_0x4ca9a4['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x4ca9a4['statusText']);return await _0x4ca9a4['json']();},async 'getTaskLogs'(_0x58a15d,_0x1ba508={}){if(!_0x58a15d)throw new Error('Task\x20ID\x20is\x20required');const _0x4274c9=new URLSearchParams();_0x1ba508['tail']&&_0x4274c9['set']('tail',String(_0x1ba508['tail']));const _0x42d4d6=await fetch(API_BASE+'/tasks/'+_0x58a15d+'/logs'+(_0x4274c9['toString']()?'?'+_0x4274c9['toString']():''));if(!_0x42d4d6['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x42d4d6['statusText']);return await _0x42d4d6['text']();},async 'getContainers'(){const _0x2d2c14=await fetch(API_BASE+'/containers');if(!_0x2d2c14['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x2d2c14['statusText']);return await _0x2d2c14['json']();},async 'getContainer'(_0xb40306){const _0x33a972=await fetch(API_BASE+'/containers/'+_0xb40306);if(!_0x33a972['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x33a972['statusText']);return await _0x33a972['json']();},async 'startInteractiveContainer'(_0x5f08e8){const _0x4df029=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5f08e8)});if(!_0x4df029['ok']){const _0x4eab07=await _0x4df029['json']()['catch'](()=>({}));throw new Error(_0x4eab07['message']||'Failed\x20to\x20start\x20container:\x20'+_0x4df029['statusText']);}return await _0x4df029['json']();},async 'startContainerCodeServer'(_0xf127ae,_0x1b0dd0={}){if(!_0xf127ae)throw new Error('Container\x20ID\x20is\x20required');const _0x17f304=new URLSearchParams();_0x1b0dd0['theme']&&_0x17f304['set']('theme',_0x1b0dd0['theme']);const _0x5a927d=await fetch(API_BASE+'/containers/'+_0xf127ae+'/code-server'+(_0x17f304['toString']()?'?'+_0x17f304['toString']():'')),_0x20342b=await _0x5a927d['json']()['catch'](()=>({}));if(!_0x5a927d['ok'])throw new Error(_0x20342b['message']||_0x20342b['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x5a927d['statusText']);return _0x20342b;},async 'stopContainer'(_0x3e4b97){const _0x316f23=await fetch(API_BASE+'/containers/'+_0x3e4b97,{'method':'DELETE'});if(!_0x316f23['ok']){const _0x130a21=await _0x316f23['json']()['catch'](()=>({}));throw new Error(_0x130a21['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x316f23['statusText']);}return await _0x316f23['json']();},async 'stopTask'(_0x2fba6a){if(!_0x2fba6a)throw new Error('Task\x20ID\x20is\x20required');const _0x445cc8=await fetch(API_BASE+'/tasks/'+_0x2fba6a+'/stop',{'method':'POST'});if(!_0x445cc8['ok']){const _0x59a58c=await _0x445cc8['json']()['catch'](()=>({}));throw new Error(_0x59a58c['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x445cc8['statusText']);}return await _0x445cc8['json']();},async 'interruptTask'(_0xde2e7e){if(!_0xde2e7e)throw new Error('Task\x20ID\x20is\x20required');const _0x1a7225=await fetch(API_BASE+'/tasks/'+_0xde2e7e+'/interrupt',{'method':'POST'});if(!_0x1a7225['ok']){const _0x2a3e3b=await _0x1a7225['json']()['catch'](()=>({}));throw new Error(_0x2a3e3b['error']||_0x2a3e3b['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x1a7225['statusText']);}return await _0x1a7225['json']();},async 'startTask'(_0x157ef9){if(!_0x157ef9)throw new Error('Task\x20ID\x20is\x20required');const _0xafb763=await fetch(API_BASE+'/tasks/'+_0x157ef9+'/start',{'method':'POST'});if(!_0xafb763['ok']){const _0x331109=await _0xafb763['json']()['catch'](()=>({}));throw new Error(_0x331109['error']||'Failed\x20to\x20start\x20task:\x20'+_0xafb763['statusText']);}return await _0xafb763['json']();},async 'deleteTask'(_0x3aa16d){if(!_0x3aa16d)throw new Error('Task\x20ID\x20is\x20required');const _0x59ccdd=await fetch(API_BASE+'/tasks/'+_0x3aa16d,{'method':'DELETE'});if(!_0x59ccdd['ok']){const _0x5daf74=await _0x59ccdd['json']()['catch'](()=>({}));throw new Error(_0x5daf74['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x59ccdd['statusText']);}return await _0x59ccdd['json']();},async 'refreshTasksFromDisk'(){const _0x55d062=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x55d062['ok']){const _0x1c7faf=await _0x55d062['json']()['catch'](()=>({}));throw new Error(_0x1c7faf['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x55d062['statusText']);}return await _0x55d062['json']();},async 'approveTask'(_0x24152d,_0xbd135d={}){if(!_0x24152d)throw new Error('Task\x20ID\x20is\x20required');const _0x47550b={'commit_message':_0xbd135d['commit_message']||'','pull':_0xbd135d['pull']??![],'push':_0xbd135d['push']??![]};_0xbd135d['new_branch']&&(_0x47550b['new_branch']=_0xbd135d['new_branch']);const _0x56398d=await fetch(API_BASE+'/tasks/'+_0x24152d+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x47550b)});if(!_0x56398d['ok']){const _0xd551a6=await _0x56398d['json']()['catch'](()=>({}));let _0x534789=_0xd551a6['error']||_0xd551a6['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56398d['statusText'];if(_0xd551a6['results']&&Array['isArray'](_0xd551a6['results'])){const _0x451f84=_0xd551a6['results']['filter'](_0x455666=>!_0x455666['success']&&_0x455666['error']);_0x451f84['length']>0x0&&(_0x534789=_0x451f84[0x0]['error']);}throw new Error(_0x534789);}return await _0x56398d['json']();},async 'getPullRequestInfo'(_0xfb7591){if(!_0xfb7591)throw new Error('Task\x20ID\x20is\x20required');const _0x446773=await fetch(API_BASE+'/tasks/'+_0xfb7591+'/pull-request-info');if(!_0x446773['ok']){const _0xbdadc7=await _0x446773['json']()['catch'](()=>({}));throw new Error(_0xbdadc7['error']||_0xbdadc7['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x446773['statusText']);}return await _0x446773['json']();},async 'createPullRequests'(_0x2ba445,_0x24a5b9){if(!_0x2ba445)throw new Error('Task\x20ID\x20is\x20required');if(!_0x24a5b9||!Array['isArray'](_0x24a5b9))throw new Error('repos\x20array\x20is\x20required');const _0x2e644c=await fetch(API_BASE+'/tasks/'+_0x2ba445+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x24a5b9})});if(!_0x2e644c['ok']){const _0xc05cbe=await _0x2e644c['json']()['catch'](()=>({}));let _0x3692a6=_0xc05cbe['error']||_0xc05cbe['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x2e644c['statusText'];if(_0xc05cbe['results']&&Array['isArray'](_0xc05cbe['results'])){const _0x56b3bf=_0xc05cbe['results']['filter'](_0x15e097=>!_0x15e097['success']&&_0x15e097['error']);_0x56b3bf['length']>0x0&&(_0x3692a6=_0x56b3bf[0x0]['error']);}throw new Error(_0x3692a6);}return await _0x2e644c['json']();},async 'syncRepos'(_0x29d24e){if(!_0x29d24e)throw new Error('Task\x20ID\x20is\x20required');const _0x2d63b3=await fetch(API_BASE+'/tasks/'+_0x29d24e+'/sync-repos',{'method':'POST'});if(!_0x2d63b3['ok']){const _0x2e1839=await _0x2d63b3['json']()['catch'](()=>({}));throw new Error(_0x2e1839['error']||_0x2e1839['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2d63b3['statusText']);}return await _0x2d63b3['json']();},async 'getIbmiSyncInfo'(_0x4fb28b){if(!_0x4fb28b)throw new Error('Task\x20ID\x20is\x20required');const _0x576609=await fetch(API_BASE+'/tasks/'+_0x4fb28b+'/ibmi-sync-info');if(!_0x576609['ok']){const _0x43196d=await _0x576609['json']()['catch'](()=>({}));throw new Error(_0x43196d['error']||_0x43196d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x576609['json']();},async 'getSyncFiles'(_0x243714){if(!_0x243714)throw new Error('Task\x20ID\x20is\x20required');const _0x517293=await fetch(API_BASE+'/tasks/'+_0x243714+'/sync-to-ibmi/files');if(!_0x517293['ok']){const _0x991183=await _0x517293['json']()['catch'](()=>({}));throw new Error(_0x991183['error']||_0x991183['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x517293['json']();},async 'syncToIbmi'(_0x20ba9e,_0x4366f9,_0x37bc34=null,_0x27bdd1=null,_0x308ca8=null){if(!_0x20ba9e)throw new Error('Task\x20ID\x20is\x20required');const _0x493c6f={'library':_0x4366f9};if(_0x37bc34)_0x493c6f['user']=_0x37bc34;if(_0x27bdd1)_0x493c6f['password']=_0x27bdd1;if(_0x308ca8)_0x493c6f['files']=_0x308ca8;const _0x340486=await fetch(API_BASE+'/tasks/'+_0x20ba9e+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x493c6f)});if(!_0x340486['ok']){const _0x370bfe=await _0x340486['json']()['catch'](()=>({}));throw new Error(_0x370bfe['error']||_0x370bfe['message']||'Sync\x20failed');}return await _0x340486['json']();},async 'getIbmiSyncLog'(_0x587e2b){if(!_0x587e2b)throw new Error('Task\x20ID\x20is\x20required');const _0x3496ce=await fetch(API_BASE+'/tasks/'+_0x587e2b+'/ibmi-sync-log');if(!_0x3496ce['ok']){const _0x21f540=await _0x3496ce['json']()['catch'](()=>({}));throw new Error(_0x21f540['error']||_0x21f540['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x3496ce['json']();},async 'pullChanges'(_0xdf83c3){if(!_0xdf83c3)throw new Error('Task\x20ID\x20is\x20required');const _0x2ad279=await fetch(API_BASE+'/tasks/'+_0xdf83c3+'/pull-changes',{'method':'POST'});if(!_0x2ad279['ok']){const _0x23bf9c=await _0x2ad279['json']()['catch'](()=>({}));throw new Error(_0x23bf9c['error']||_0x23bf9c['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x2ad279['statusText']);}return await _0x2ad279['json']();},async 'readFile'(_0x4f517b,_0x576aaa){if(!_0x4f517b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x576aaa)throw new Error('File\x20path\x20is\x20required');const _0x24323e=await fetch(API_BASE+'/tasks/'+_0x4f517b+'/files?path='+encodeURIComponent(_0x576aaa));if(!_0x24323e['ok']){const _0x25275b=await _0x24323e['json']()['catch'](()=>({}));throw new Error(_0x25275b['error']||_0x25275b['message']||'Failed\x20to\x20read\x20file:\x20'+_0x24323e['statusText']);}return await _0x24323e['json']();},'getTaskFileDownloadUrl'(_0x169efc,_0x186316){if(!_0x169efc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x186316)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x169efc+'/files/download?path='+encodeURIComponent(_0x186316);},async 'writeFile'(_0x3c112c,_0x160270,_0x30384b){if(!_0x3c112c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x160270)throw new Error('File\x20path\x20is\x20required');if(_0x30384b===undefined)throw new Error('Content\x20is\x20required');const _0x229d10=await fetch(API_BASE+'/tasks/'+_0x3c112c+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x160270,'content':_0x30384b})});if(!_0x229d10['ok']){const _0xa57ef8=await _0x229d10['json']()['catch'](()=>({}));throw new Error(_0xa57ef8['error']||_0xa57ef8['message']||'Failed\x20to\x20write\x20file:\x20'+_0x229d10['statusText']);}return await _0x229d10['json']();},async 'uploadTaskFiles'(_0x287fa0,_0x7d0f85,_0x5113bc){if(!_0x287fa0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x7d0f85)throw new Error('Target\x20directory\x20is\x20required');if(!_0x5113bc||_0x5113bc['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x24608d=new FormData();_0x24608d['append']('targetDir',_0x7d0f85);for(const _0xd21f6c of _0x5113bc){_0x24608d['append']('files',_0xd21f6c,_0xd21f6c['name']);}const _0xfe568=await fetch(API_BASE+'/tasks/'+_0x287fa0+'/files/upload',{'method':'POST','body':_0x24608d});if(!_0xfe568['ok']){const _0x5920b9=await _0xfe568['json']()['catch'](()=>({}));throw new Error(_0x5920b9['error']||_0x5920b9['message']||'Failed\x20to\x20upload\x20files:\x20'+_0xfe568['statusText']);}return await _0xfe568['json']();},async 'createDirectory'(_0xdd76f2,_0x4edcf3){if(!_0xdd76f2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4edcf3)throw new Error('Directory\x20path\x20is\x20required');const _0x24a3cf=await fetch(API_BASE+'/tasks/'+_0xdd76f2+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4edcf3})});if(!_0x24a3cf['ok']){const _0x4ff72a=await _0x24a3cf['json']()['catch'](()=>({}));throw new Error(_0x4ff72a['error']||_0x4ff72a['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x24a3cf['statusText']);}return await _0x24a3cf['json']();},async 'renamePath'(_0x2bf68d,_0x16ae4e,_0x36607a){if(!_0x2bf68d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x16ae4e)throw new Error('Source\x20path\x20is\x20required');if(!_0x36607a)throw new Error('Destination\x20path\x20is\x20required');const _0x12a4ee=await fetch(API_BASE+'/tasks/'+_0x2bf68d+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x16ae4e,'newPath':_0x36607a})});if(!_0x12a4ee['ok']){const _0x5469a1=await _0x12a4ee['json']()['catch'](()=>({}));throw new Error(_0x5469a1['error']||_0x5469a1['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x12a4ee['statusText']);}return await _0x12a4ee['json']();},async 'deleteFile'(_0x5841e7,_0x40eb83){if(!_0x5841e7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x40eb83)throw new Error('File\x20path\x20is\x20required');const _0x20339c=await fetch(API_BASE+'/tasks/'+_0x5841e7+'/files?path='+encodeURIComponent(_0x40eb83),{'method':'DELETE'});if(!_0x20339c['ok']){const _0x3fb68d=await _0x20339c['json']()['catch'](()=>({}));throw new Error(_0x3fb68d['error']||_0x3fb68d['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x20339c['statusText']);}return await _0x20339c['json']();},async 'deleteDirectory'(_0x298308,_0x2ea275){if(!_0x298308)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2ea275)throw new Error('Directory\x20path\x20is\x20required');const _0x344bf5=await fetch(API_BASE+'/tasks/'+_0x298308+'/files/directory?path='+encodeURIComponent(_0x2ea275),{'method':'DELETE'});if(!_0x344bf5['ok']){const _0x3caf54=await _0x344bf5['json']()['catch'](()=>({}));throw new Error(_0x3caf54['error']||_0x3caf54['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x344bf5['statusText']);}return await _0x344bf5['json']();},async 'discardFile'(_0xc29d1d,_0x635c39,_0x5c991f){if(!_0xc29d1d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x635c39)throw new Error('File\x20path\x20is\x20required');if(!_0x5c991f)throw new Error('Repository\x20path\x20is\x20required');const _0x224b7a=await fetch(API_BASE+'/tasks/'+_0xc29d1d+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x635c39,'repoPath':_0x5c991f})});if(!_0x224b7a['ok']){const _0x5e0bcb=await _0x224b7a['json']()['catch'](()=>({}));throw new Error(_0x5e0bcb['error']||_0x5e0bcb['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x224b7a['statusText']);}return await _0x224b7a['json']();},async 'followUpTask'(_0x23481f,_0x28ba02={}){if(!_0x23481f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28ba02['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x3a1891,_0x3e4cd9={};if(_0x28ba02['files']&&_0x28ba02['files']['length']>0x0){const _0x4f0813=new FormData();_0x4f0813['append']('instructions',_0x28ba02['instructions']);for(const _0x1d5368 of _0x28ba02['files']){_0x4f0813['append']('attachments',_0x1d5368);}_0x3a1891=_0x4f0813;}else _0x3e4cd9['Content-Type']='application/json',_0x3a1891=JSON['stringify']({'instructions':_0x28ba02['instructions']});const _0x4645bc=await fetch(API_BASE+'/tasks/'+_0x23481f+'/follow-up',{'method':'POST','headers':_0x3e4cd9,'body':_0x3a1891});if(!_0x4645bc['ok']){const _0xcece5b=await _0x4645bc['json']()['catch'](()=>({}));throw new Error(_0xcece5b['error']||_0xcece5b['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x4645bc['statusText']);}return await _0x4645bc['json']();},async 'getTaskRewindPoints'(_0x6ff0ce){if(!_0x6ff0ce)throw new Error('Task\x20ID\x20is\x20required');const _0x60dabe=await fetch(API_BASE+'/tasks/'+_0x6ff0ce+'/rewind-points');if(!_0x60dabe['ok']){const _0x5657c7=await _0x60dabe['json']()['catch'](()=>({}));throw new Error(_0x5657c7['error']||_0x5657c7['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x60dabe['statusText']);}return await _0x60dabe['json']();},async 'rewindTask'(_0x7bdd78,_0x58faa7={}){if(!_0x7bdd78)throw new Error('Task\x20ID\x20is\x20required');const _0x33def1=Number['isInteger'](_0x58faa7['targetFollowUpCount'])?_0x58faa7['targetFollowUpCount']:0x0,_0x16843b={'targetFollowUpCount':_0x33def1};typeof _0x58faa7['instructions']==='string'&&_0x58faa7['instructions']['trim']()&&(_0x16843b['instructions']=_0x58faa7['instructions']['trim']());typeof _0x58faa7['rewindFiles']==='boolean'&&(_0x16843b['rewindFiles']=_0x58faa7['rewindFiles']);const _0x2b16b4=await fetch(API_BASE+'/tasks/'+_0x7bdd78+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x16843b)});if(!_0x2b16b4['ok']){const _0x1c469d=await _0x2b16b4['json']()['catch'](()=>({}));throw new Error(_0x1c469d['error']||_0x1c469d['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x2b16b4['statusText']);}return await _0x2b16b4['json']();},async 'login'(_0x423091,_0xd34bf0){const _0x2b44fd=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x423091,'password':_0xd34bf0})});if(!_0x2b44fd['ok']){const _0xbaa34b=await _0x2b44fd['json']();throw new Error(_0xbaa34b['message']||'Login\x20failed');}return await _0x2b44fd['json']();},async 'logout'(){const _0x4fa8d0=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4fa8d0['ok']){const _0x1c878e=await _0x4fa8d0['json']();throw new Error(_0x1c878e['message']||'Logout\x20failed');}return await _0x4fa8d0['json']();},async 'getCurrentUser'(){const _0x58b7df=await fetch(API_BASE+'/auth/me');if(!_0x58b7df['ok'])throw new Error('Not\x20authenticated');const _0x3f0e34=await _0x58b7df['json']();return _0x3f0e34['user'];},async 'getRolesInfo'(){const _0xed7a9d=await fetch(API_BASE+'/users/roles');if(!_0xed7a9d['ok']){const _0x50ed71=await _0xed7a9d['json']();throw new Error(_0x50ed71['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0xed7a9d['json']();},async 'getUsers'(){const _0x167af7=await fetch(API_BASE+'/users');if(!_0x167af7['ok']){const _0x34641e=await _0x167af7['json']();throw new Error(_0x34641e['message']||'Failed\x20to\x20get\x20users');}return await _0x167af7['json']();},async 'getUser'(_0x1d148c){const _0x366630=await fetch(API_BASE+'/users/'+_0x1d148c);if(!_0x366630['ok']){const _0x386da8=await _0x366630['json']();throw new Error(_0x386da8['message']||'Failed\x20to\x20get\x20user');}return await _0x366630['json']();},async 'createUser'(_0x4469fd){const _0x35906a=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4469fd)});if(!_0x35906a['ok']){const _0x1e6fe1=await _0x35906a['json']();throw new Error(_0x1e6fe1['message']||'Failed\x20to\x20create\x20user');}return await _0x35906a['json']();},async 'updateUser'(_0x251eaa,_0x25a6d9){const _0x3df9f5=await fetch(API_BASE+'/users/'+_0x251eaa,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25a6d9)});if(!_0x3df9f5['ok']){const _0x3f6d3d=await _0x3df9f5['json']();throw new Error(_0x3f6d3d['message']||'Failed\x20to\x20update\x20user');}return await _0x3df9f5['json']();},async 'deleteUser'(_0x1ce6fe){const _0x4eac12=await fetch(API_BASE+'/users/'+_0x1ce6fe,{'method':'DELETE'});if(!_0x4eac12['ok']){const _0x41b456=await _0x4eac12['json']();throw new Error(_0x41b456['message']||'Failed\x20to\x20delete\x20user');}return await _0x4eac12['json']();},async 'stopAllContainers'(){const _0x212899=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x381468=await _0x212899['json']()['catch'](()=>({}));if(!_0x212899['ok'])throw new Error(_0x381468['message']||_0x381468['error']||'Failed\x20to\x20stop\x20containers');return _0x381468;},async 'removeStoppedContainers'(){const _0x3c5ab1=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x18f32c=await _0x3c5ab1['json']()['catch'](()=>({}));if(!_0x3c5ab1['ok'])throw new Error(_0x18f32c['message']||_0x18f32c['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x18f32c;},async 'pruneDockerResources'(){const _0x3b00c3=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x4e159d=await _0x3b00c3['json']()['catch'](()=>({}));if(!_0x3b00c3['ok'])throw new Error(_0x4e159d['message']||_0x4e159d['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x4e159d;},async 'getUpdateSettings'(){const _0x26d908=await fetch(API_BASE+'/health/update-settings'),_0x55c7e5=await _0x26d908['json']()['catch'](()=>({}));if(!_0x26d908['ok'])throw new Error(_0x55c7e5['message']||_0x55c7e5['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x55c7e5;},async 'applyServerUpdate'(_0xf162b0){const _0x288d0c=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0xf162b0})}),_0x521e14=await _0x288d0c['json']()['catch'](()=>({}));if(!_0x288d0c['ok']){const _0x24c665=new Error(_0x521e14['message']||_0x521e14['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x521e14['output']!==undefined)_0x24c665['output']=_0x521e14['output'];if(_0x521e14['error']!==undefined)_0x24c665['commandError']=_0x521e14['error'];throw _0x24c665;}return _0x521e14;},async 'restartServer'(){const _0x3353d0=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x2134f8=await _0x3353d0['json']()['catch'](()=>({}));if(!_0x3353d0['ok'])throw new Error(_0x2134f8['message']||_0x2134f8['error']||'Failed\x20to\x20restart\x20server');return _0x2134f8;},async 'createPasswordToken'(_0x438a9f,_0x130605='setup',_0x55c930=![]){const _0x19df6e=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x438a9f,'type':_0x130605,'sendEmail':_0x55c930})});if(!_0x19df6e['ok']){const _0x5dfd8d=await _0x19df6e['json']();throw new Error(_0x5dfd8d['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x19df6e['json']();},async 'getEmailConfig'(){const _0x3dc1fa=await fetch(API_BASE+'/password/email-config');if(!_0x3dc1fa['ok']){const _0x4f3f64=await _0x3dc1fa['json']();throw new Error(_0x4f3f64['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x3dc1fa['json']();},async 'updateTaskName'(_0x2d3d8b,_0x40aea1){const _0x11b0c6=await fetch(API_BASE+'/tasks/'+_0x2d3d8b,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x40aea1})});if(!_0x11b0c6['ok']){const _0x5b0791=await _0x11b0c6['json']();throw new Error(_0x5b0791['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x11b0c6['json']();},async 'pinTask'(_0x351c93,_0x3f10ce,_0xf3e900=null){if(!_0x351c93)throw new Error('Task\x20ID\x20is\x20required');const _0x1e5de7={'pinned':_0x3f10ce};_0xf3e900&&_0xf3e900['length']>0x0&&(_0x1e5de7['additionalTaskIds']=_0xf3e900);const _0xe6a13c=await fetch(API_BASE+'/tasks/'+_0x351c93+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e5de7)});if(!_0xe6a13c['ok']){const _0x352cb6=await _0xe6a13c['json']();throw new Error(_0x352cb6['error']||'Failed\x20to\x20pin\x20task');}return await _0xe6a13c['json']();},async 'setTaskWinner'(_0x377fc7,_0x31f1be,_0x3d06f9=[]){if(!_0x377fc7)throw new Error('Task\x20ID\x20is\x20required');const _0x3d4bda=await fetch(API_BASE+'/tasks/'+_0x377fc7+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x31f1be,'siblings':_0x3d06f9})});if(!_0x3d4bda['ok']){const _0x1574ad=await _0x3d4bda['json']();throw new Error(_0x1574ad['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x3d4bda['json']();},async 'setTaskLoser'(_0x337684,_0x3606ba){if(!_0x337684)throw new Error('Task\x20ID\x20is\x20required');const _0x1ff393=await fetch(API_BASE+'/tasks/'+_0x337684+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x3606ba})});if(!_0x1ff393['ok']){const _0x25e00d=await _0x1ff393['json']();throw new Error(_0x25e00d['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x1ff393['json']();},async 'createTaskGroup'(_0x4c675c){const _0x44fe90=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c675c)});if(!_0x44fe90['ok']){const _0x599c6f=await _0x44fe90['json']();throw new Error(_0x599c6f['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x44fe90['json']();},async 'getTaskGroups'(_0x31045a={}){const _0x51bd46=new URLSearchParams();if(_0x31045a['userId'])_0x51bd46['set']('userId',String(_0x31045a['userId']));if(_0x31045a['status'])_0x51bd46['set']('status',String(_0x31045a['status']));if(_0x31045a['limit'])_0x51bd46['set']('limit',String(_0x31045a['limit']));const _0x363de9=API_BASE+'/tasks/groups'+(_0x51bd46['toString']()?'?'+_0x51bd46['toString']():''),_0x2472f0=await fetch(_0x363de9);if(!_0x2472f0['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x2472f0['json']();},async 'getTaskGroup'(_0x40b0d3){const _0x1dc6a9=await fetch(API_BASE+'/tasks/groups/'+_0x40b0d3);if(!_0x1dc6a9['ok']){const _0x1ad599=await _0x1dc6a9['json']();throw new Error(_0x1ad599['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x1dc6a9['json']();},async 'updateTaskGroup'(_0x9f53a3,_0x18521d,_0x53aae4){const _0x3b4e25=await fetch(API_BASE+'/tasks/'+_0x9f53a3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x18521d,'groupIndex':_0x53aae4})});if(!_0x3b4e25['ok']){const _0x39f46e=await _0x3b4e25['json']();throw new Error(_0x39f46e['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x3b4e25['json']();},async 'removeTaskFromGroup'(_0x5bec8f){return this['updateTaskGroup'](_0x5bec8f,null,null);},async 'deleteTaskGroup'(_0x2d72a2,_0x487e0f=![]){const _0x86ee86=_0x487e0f?'?deleteTasks=true':'',_0x346958=await fetch(API_BASE+'/tasks/groups/'+_0x2d72a2+_0x86ee86,{'method':'DELETE'});if(!_0x346958['ok']){const _0x359455=await _0x346958['json']();throw new Error(_0x359455['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3cb548,_0x2119a1){const _0x3a6b50=await fetch(API_BASE+'/tasks/groups/'+_0x3cb548+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x2119a1})});if(!_0x3a6b50['ok']){const _0x43e6c6=await _0x3a6b50['json']();throw new Error(_0x43e6c6['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x3a6b50['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x54d33f){if(!_0x54d33f)throw new Error('Task\x20ID\x20is\x20required');const _0x45d50c=await fetch(API_BASE+'/tasks/'+_0x54d33f+'/comments');if(!_0x45d50c['ok']){const _0x16770b=await _0x45d50c['json']()['catch'](()=>({}));throw new Error(_0x16770b['error']||'Failed\x20to\x20get\x20comments');}return await _0x45d50c['json']();},async 'addComment'(_0x52ee28,_0x6f57b6){if(!_0x52ee28)throw new Error('Task\x20ID\x20is\x20required');if(!_0x6f57b6)throw new Error('Comment\x20content\x20is\x20required');const _0x113212=await fetch(API_BASE+'/tasks/'+_0x52ee28+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x6f57b6})});if(!_0x113212['ok']){const _0x4edc86=await _0x113212['json']()['catch'](()=>({}));throw new Error(_0x4edc86['error']||'Failed\x20to\x20add\x20comment');}return await _0x113212['json']();},async 'updateComment'(_0x5de9cf,_0x341ac5,_0xcec240){if(!_0x5de9cf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x341ac5)throw new Error('Comment\x20ID\x20is\x20required');if(!_0xcec240)throw new Error('Comment\x20content\x20is\x20required');const _0x2d5cb4=await fetch(API_BASE+'/tasks/'+_0x5de9cf+'/comments/'+_0x341ac5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0xcec240})});if(!_0x2d5cb4['ok']){const _0xd96636=await _0x2d5cb4['json']()['catch'](()=>({}));throw new Error(_0xd96636['error']||'Failed\x20to\x20update\x20comment');}return await _0x2d5cb4['json']();},async 'deleteComment'(_0x1927fa,_0x52dda7){if(!_0x1927fa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x52dda7)throw new Error('Comment\x20ID\x20is\x20required');const _0x203506=await fetch(API_BASE+'/tasks/'+_0x1927fa+'/comments/'+_0x52dda7,{'method':'DELETE'});if(!_0x203506['ok']){const _0x5ef27d=await _0x203506['json']()['catch'](()=>({}));throw new Error(_0x5ef27d['error']||'Failed\x20to\x20delete\x20comment');}return await _0x203506['json']();},async 'createObjective'(_0x1fb8d9){const _0x25b299={'objective':!![],'name':_0x1fb8d9['name']||'','environment':_0x1fb8d9['environment']||null,'agents':_0x1fb8d9['agents']||[],'branches':_0x1fb8d9['branches']||{},'isPinned':_0x1fb8d9['isPinned']||![],'parentObjectiveId':_0x1fb8d9['parentObjectiveId']||null,'env_vars':_0x1fb8d9['envVars']||{},'parameters':{'instructions':_0x1fb8d9['instructions']||''},'files':_0x1fb8d9['files']||[],'jira':_0x1fb8d9['jira']||null};return this['createTask'](_0x25b299);},async 'updateObjective'(_0x339c0a,_0x21cd48,_0x2aaa97=[],_0x1e8cd0=[]){let _0x83342d,_0x2a0b02={};const _0x428d5c={..._0x21cd48};_0x1e8cd0&&_0x1e8cd0['length']>0x0&&(_0x428d5c['removeAttachments']=_0x1e8cd0);if(_0x2aaa97&&_0x2aaa97['length']>0x0){const _0x30bd82=new FormData();for(const [_0x127d1b,_0x31e9ce]of Object['entries'](_0x428d5c)){if(_0x31e9ce==null)continue;typeof _0x31e9ce==='object'?_0x30bd82['append'](_0x127d1b,JSON['stringify'](_0x31e9ce)):_0x30bd82['append'](_0x127d1b,String(_0x31e9ce));}for(const _0x5088b5 of _0x2aaa97){_0x30bd82['append']('attachments',_0x5088b5);}_0x83342d=_0x30bd82;}else _0x2a0b02['Content-Type']='application/json',_0x83342d=JSON['stringify'](_0x428d5c);const _0x24c043=await fetch(API_BASE+'/tasks/'+_0x339c0a,{'method':'PATCH','headers':_0x2a0b02,'body':_0x83342d});if(!_0x24c043['ok']){const _0xf1dee3=await _0x24c043['json']();throw new Error(_0xf1dee3['error']||'Failed\x20to\x20update\x20objective');}return await _0x24c043['json']();},async 'deleteObjective'(_0x4d8753){return this['deleteTask'](_0x4d8753);},async 'launchObjective'(_0x1fcee9,_0x306f6b={}){const _0x1d683f=await fetch(API_BASE+'/tasks/'+_0x1fcee9+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x306f6b)});if(!_0x1d683f['ok']){const _0x4c0bc8=await _0x1d683f['json']();throw new Error(_0x4c0bc8['error']||'Failed\x20to\x20launch\x20objective');}return await _0x1d683f['json']();},async 'getObjectiveAttachments'(_0x54d4d9){return this['getTaskAttachments'](_0x54d4d9);},async 'createJudgeTask'({environment:_0x10080e,judgeAgent:_0x52c796,groupId:_0x3d0a16,taskIds:_0x1841f1,judgeCustomInstructions:_0x3e1e90,isPinned:_0x1668e5}){const _0x2a9882=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x10080e,'judgeAgent':_0x52c796,'groupId':_0x3d0a16,'taskIds':_0x1841f1,'judgeCustomInstructions':_0x3e1e90,'isPinned':_0x1668e5})});if(!_0x2a9882['ok']){const _0x3e57bd=await _0x2a9882['json']();throw new Error(_0x3e57bd['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x2a9882['json']();},async 'getJudgeTasks'(_0x2af37e){const _0xc1d7f3=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x2af37e));if(!_0xc1d7f3['ok']){const _0x81ea90=await _0xc1d7f3['json']();throw new Error(_0x81ea90['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0xc1d7f3['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x5465f2,_0x3a1c60,_0x3adc75=''){const _0x297879=await fetch(API_BASE+'/tasks/'+_0x5465f2+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x3a1c60,'customPreamble':_0x3adc75})});if(!_0x297879['ok']){const _0xa17a04=await _0x297879['json']();throw new Error(_0xa17a04['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x297879['json']();},async 'getJiraConfig'(){const _0x5ba094=await fetch(API_BASE+'/jira/config');if(!_0x5ba094['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x5ba094['json']();},async 'getJiraIssue'(_0x73365){const _0x39b1a3=await fetch(API_BASE+'/jira/issues/'+_0x73365);if(!_0x39b1a3['ok']){const _0xf5f3c8=await _0x39b1a3['json']()['catch'](()=>({}));throw new Error(_0xf5f3c8['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x39b1a3['statusText']);}return await _0x39b1a3['json']();},async 'searchJiraIssues'(_0x485b8f,_0x5e8e42=0x14){const _0x55be17=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x485b8f,'maxResults':_0x5e8e42})});if(!_0x55be17['ok']){const _0x2482ff=await _0x55be17['json']()['catch'](()=>({}));throw new Error(_0x2482ff['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x55be17['statusText']);}return await _0x55be17['json']();},async 'postJiraComment'(_0x411262,_0xa39e75){const _0x45bbc0=await fetch(API_BASE+'/jira/issues/'+_0x411262+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0xa39e75})});if(!_0x45bbc0['ok']){const _0x3c4f8d=await _0x45bbc0['json']()['catch'](()=>({}));throw new Error(_0x3c4f8d['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x45bbc0['statusText']);}return await _0x45bbc0['json']();},async 'getJiraComments'(_0x2d0ebf){const _0x3d40de=await fetch(API_BASE+'/jira/issues/'+_0x2d0ebf+'/comments');if(!_0x3d40de['ok']){const _0x5ab673=await _0x3d40de['json']()['catch'](()=>({}));throw new Error(_0x5ab673['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x3d40de['statusText']);}return await _0x3d40de['json']();},async 'promptParameter'({environment:_0x117ff0,command:_0x1c0e44,parser:parser='json'}){const _0x523103=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x117ff0,'command':_0x1c0e44,'parser':parser})});if(!_0x523103['ok']){const _0x391923=await _0x523103['json']()['catch'](()=>({}));throw new Error(_0x391923['message']||_0x391923['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x523103['statusText']);}return await _0x523103['json']();},async 'promptParameterStream'(_0x573469,_0x8c6319){const _0x164fca=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x573469)});if(!_0x164fca['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x164fca['statusText']);const _0x2d5c9b=_0x164fca['body']['getReader'](),_0x4d5f8e=new TextDecoder();let _0x495fbb='';return new Promise((_0x447272,_0x3e5340)=>{const _0x30e465=async()=>{try{const {done:_0x34a25d,value:_0x3e46b7}=await _0x2d5c9b['read']();if(_0x34a25d)return;_0x495fbb+=_0x4d5f8e['decode'](_0x3e46b7,{'stream':!![]});const _0x11944a=_0x495fbb['split']('\x0a\x0a');_0x495fbb=_0x11944a['pop']()||'';for(const _0x47db96 of _0x11944a){if(!_0x47db96['trim']())continue;const _0x5b8938=_0x47db96['split']('\x0a');let _0x407101='message',_0x1ccc01='';for(const _0x2cfec4 of _0x5b8938){if(_0x2cfec4['startsWith']('event:'))_0x407101=_0x2cfec4['substring'](0x6)['trim']();else _0x2cfec4['startsWith']('data:')&&(_0x1ccc01=_0x2cfec4['substring'](0x5)['trim']());}if(!_0x1ccc01)continue;try{const _0x2926d6=JSON['parse'](_0x1ccc01);if(_0x407101==='progress'&&_0x8c6319)_0x8c6319(_0x2926d6['stage'],_0x2926d6['message']);else{if(_0x407101==='result'){_0x447272(_0x2926d6);return;}else{if(_0x407101==='error'){let _0xfe64ef=_0x2926d6['message']||_0x2926d6['error']||'Prompt\x20command\x20failed';_0x2926d6['rawOutput']&&(_0xfe64ef+='\x0a\x0aRaw\x20output:\x0a'+_0x2926d6['rawOutput']);_0x3e5340(new Error(_0xfe64ef));return;}}}}catch(_0x110933){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x110933),console['error']('Event\x20type:',_0x407101),console['error']('Event\x20data:',_0x1ccc01),console['error']('First\x20200\x20chars:',_0x1ccc01['substring'](0x0,0xc8)),_0x3e5340(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x110933['message']+'\x0a\x0aData:\x20'+_0x1ccc01['substring'](0x0,0x1f4)));return;}}_0x30e465();}catch(_0x293480){_0x3e5340(_0x293480);}};_0x30e465();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x59448f){const _0x5613d0=await fetch(''+API_BASE+_0x59448f);if(!_0x5613d0['ok']){const _0x48f4bb=await _0x5613d0['json']()['catch'](()=>({'error':_0x5613d0['statusText']})),_0xc5b633=new Error(_0x48f4bb['error']||_0x48f4bb['message']||_0x5613d0['statusText']);if(_0x48f4bb['detail']!==undefined)_0xc5b633['detail']=_0x48f4bb['detail'];throw _0xc5b633;}return await _0x5613d0['json']();},async 'post'(_0x4ea2ff,_0x485749){const _0x571cec=await fetch(''+API_BASE+_0x4ea2ff,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x485749)});if(!_0x571cec['ok']){const _0x421308=await _0x571cec['json']()['catch'](()=>({'error':_0x571cec['statusText']})),_0x39f8fb=new Error(_0x421308['error']||_0x421308['message']||_0x571cec['statusText']);if(_0x421308['detail']!==undefined)_0x39f8fb['detail']=_0x421308['detail'];throw _0x39f8fb;}return await _0x571cec['json']();},async 'put'(_0x2ae990,_0x1de217){const _0x26fbd0=await fetch(''+API_BASE+_0x2ae990,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1de217)});if(!_0x26fbd0['ok']){const _0x1b14e5=await _0x26fbd0['json']()['catch'](()=>({'error':_0x26fbd0['statusText']})),_0x344d64=new Error(_0x1b14e5['error']||_0x1b14e5['message']||_0x26fbd0['statusText']);if(_0x1b14e5['detail']!==undefined)_0x344d64['detail']=_0x1b14e5['detail'];throw _0x344d64;}return await _0x26fbd0['json']();},async 'delete'(_0x5f4de3,_0x47d8fd){const _0x388832={'method':'DELETE'};_0x47d8fd&&(_0x388832['headers']={'Content-Type':'application/json'},_0x388832['body']=JSON['stringify'](_0x47d8fd));const _0x3db63e=await fetch(''+API_BASE+_0x5f4de3,_0x388832);if(!_0x3db63e['ok']){const _0x16e51c=await _0x3db63e['json']()['catch'](()=>({'error':_0x3db63e['statusText']})),_0x28751a=new Error(_0x16e51c['error']||_0x16e51c['message']||_0x3db63e['statusText']);if(_0x16e51c['detail']!==undefined)_0x28751a['detail']=_0x16e51c['detail'];throw _0x28751a;}return await _0x3db63e['json']();},async 'getSkills'(){const _0x37942b=await fetch(API_BASE+'/skills');if(!_0x37942b['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x37942b['statusText']);return await _0x37942b['json']();},async 'getSkill'(_0x1e771){const _0x5a27c6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1e771));if(!_0x5a27c6['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5a27c6['statusText']);return await _0x5a27c6['json']();},async 'createSkill'(_0x23aebe){const _0x83dd86=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23aebe)});if(!_0x83dd86['ok']){const _0x2cb2f9=await _0x83dd86['json']()['catch'](()=>({'error':_0x83dd86['statusText']})),_0x3337ec=new Error(_0x2cb2f9['error']||_0x2cb2f9['message']||_0x83dd86['statusText']);if(_0x2cb2f9['detail']!==undefined)_0x3337ec['detail']=_0x2cb2f9['detail'];throw _0x3337ec;}return await _0x83dd86['json']();},async 'updateSkill'(_0x328c73,_0xe8ef4a){const _0x4b389e=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x328c73),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xe8ef4a)});if(!_0x4b389e['ok']){const _0x43defd=await _0x4b389e['json']()['catch'](()=>({'error':_0x4b389e['statusText']})),_0x210724=new Error(_0x43defd['error']||_0x43defd['message']||_0x4b389e['statusText']);if(_0x43defd['detail']!==undefined)_0x210724['detail']=_0x43defd['detail'];throw _0x210724;}return await _0x4b389e['json']();},async 'deleteSkill'(_0x2d8d57){const _0x3de931=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2d8d57),{'method':'DELETE'});if(!_0x3de931['ok']){const _0x958dd5=await _0x3de931['json']()['catch'](()=>({'error':_0x3de931['statusText']})),_0x13ab3b=new Error(_0x958dd5['error']||_0x958dd5['message']||_0x3de931['statusText']);if(_0x958dd5['detail']!==undefined)_0x13ab3b['detail']=_0x958dd5['detail'];throw _0x13ab3b;}return await _0x3de931['json']();},async 'getSkillFile'(_0x3e2dd8,_0xa695d4){const _0x3b60df=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3e2dd8)+'/files/'+_0xa695d4);if(!_0x3b60df['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x3b60df['statusText']);return await _0x3b60df['json']();},async 'saveSkillFile'(_0x4296db,_0x3fa731,_0x4d11a3){const _0x397279=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4296db)+'/files/'+_0x3fa731,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4d11a3})});if(!_0x397279['ok']){const _0x2af86f=await _0x397279['json']()['catch'](()=>({'error':_0x397279['statusText']})),_0x4f925d=new Error(_0x2af86f['error']||_0x2af86f['message']||_0x397279['statusText']);if(_0x2af86f['detail']!==undefined)_0x4f925d['detail']=_0x2af86f['detail'];throw _0x4f925d;}return await _0x397279['json']();},async 'deleteSkillFile'(_0x4ee132,_0x49d813){const _0xa3bf95=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4ee132)+'/files/'+_0x49d813,{'method':'DELETE'});if(!_0xa3bf95['ok']){const _0xd45a12=await _0xa3bf95['json']()['catch'](()=>({'error':_0xa3bf95['statusText']})),_0x585b93=new Error(_0xd45a12['error']||_0xd45a12['message']||_0xa3bf95['statusText']);if(_0xd45a12['detail']!==undefined)_0x585b93['detail']=_0xd45a12['detail'];throw _0x585b93;}return await _0xa3bf95['json']();},async 'pullSkills'(){const _0x13d025=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x13d025['ok']){const _0x563929=await _0x13d025['json']()['catch'](()=>({'error':_0x13d025['statusText']})),_0x51b8eb=new Error(_0x563929['error']||_0x563929['message']||_0x13d025['statusText']);if(_0x563929['detail']!==undefined)_0x51b8eb['detail']=_0x563929['detail'];throw _0x51b8eb;}return await _0x13d025['json']();},async 'commitSkills'(_0x197aff,_0x47ae25={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x47ae25,_0x57f03f=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x197aff,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x57f03f['ok']){const _0x1cdaa4=await _0x57f03f['json']()['catch'](()=>({'error':_0x57f03f['statusText']})),_0x2e8964=new Error(_0x1cdaa4['error']||_0x1cdaa4['message']||_0x57f03f['statusText']);if(_0x1cdaa4['detail']!==undefined)_0x2e8964['detail']=_0x1cdaa4['detail'];throw _0x2e8964;}return await _0x57f03f['json']();},async 'discardSkillsChanges'(){const _0x31b6ca=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x31b6ca['ok']){const _0x2fed7f=await _0x31b6ca['json']()['catch'](()=>({'error':_0x31b6ca['statusText']})),_0x186e0c=new Error(_0x2fed7f['error']||_0x2fed7f['message']||_0x31b6ca['statusText']);if(_0x2fed7f['detail']!==undefined)_0x186e0c['detail']=_0x2fed7f['detail'];throw _0x186e0c;}return await _0x31b6ca['json']();},async 'getSkillCatalog'(){const _0x2fc705=await fetch(API_BASE+'/external-skills/catalog');if(!_0x2fc705['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x2fc705['statusText']);return await _0x2fc705['json']();},async 'getImportedSkillsRegistry'(){const _0x8b455c=await fetch(API_BASE+'/external-skills/registry');if(!_0x8b455c['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x8b455c['statusText']);return await _0x8b455c['json']();},async 'importCatalogSkill'(_0x4cc3cf){const _0x1ee464=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x4cc3cf})});if(!_0x1ee464['ok']){const _0x5d09c9=await _0x1ee464['json']()['catch'](()=>({'error':_0x1ee464['statusText']})),_0x32fd2c=new Error(_0x5d09c9['error']||_0x5d09c9['message']||_0x1ee464['statusText']);if(_0x5d09c9['detail']!==undefined)_0x32fd2c['detail']=_0x5d09c9['detail'];throw _0x32fd2c;}return await _0x1ee464['json']();},async 'importSkillFromGit'(_0x13bc5f,_0x5c7c29,_0x43ed9e='main',_0x14a4bd=null){const _0x1a5807=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x13bc5f,'skillPath':_0x5c7c29,'branch':_0x43ed9e,'skillId':_0x14a4bd})});if(!_0x1a5807['ok']){const _0x3c4e29=await _0x1a5807['json']()['catch'](()=>({'error':_0x1a5807['statusText']})),_0x290c57=new Error(_0x3c4e29['error']||_0x3c4e29['message']||_0x1a5807['statusText']);if(_0x3c4e29['detail']!==undefined)_0x290c57['detail']=_0x3c4e29['detail'];throw _0x290c57;}return await _0x1a5807['json']();},async 'probeMarketplace'(_0x2cdf96,_0x4d1a89='main'){const _0x3eaed4=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x2cdf96,'branch':_0x4d1a89})});if(!_0x3eaed4['ok']){const _0x4c8ac1=await _0x3eaed4['json']()['catch'](()=>({'error':_0x3eaed4['statusText']})),_0x5197b7=new Error(_0x4c8ac1['error']||_0x4c8ac1['message']||_0x3eaed4['statusText']);if(_0x4c8ac1['detail']!==undefined)_0x5197b7['detail']=_0x4c8ac1['detail'];throw _0x5197b7;}return await _0x3eaed4['json']();},async 'importMarketplaceBundle'(_0x5dba8b,_0x106fde,_0x2e939b,_0x4ad835=null){const _0x3cd568=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5dba8b,'branch':_0x106fde,'bundleId':_0x2e939b,'selectedSkills':_0x4ad835})});if(!_0x3cd568['ok']){const _0x2fe93d=await _0x3cd568['json']()['catch'](()=>({'error':_0x3cd568['statusText']})),_0x5c0540=new Error(_0x2fe93d['error']||_0x2fe93d['message']||_0x3cd568['statusText']);if(_0x2fe93d['detail']!==undefined)_0x5c0540['detail']=_0x2fe93d['detail'];throw _0x5c0540;}return await _0x3cd568['json']();},async 'importSkillFromFolder'(_0x2cb514,_0x400f2c=null){const _0x1db680=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x2cb514,'skillId':_0x400f2c})});if(!_0x1db680['ok']){const _0x3c353d=await _0x1db680['json']()['catch'](()=>({'error':_0x1db680['statusText']})),_0xd40a49=new Error(_0x3c353d['error']||_0x3c353d['message']||_0x1db680['statusText']);if(_0x3c353d['detail']!==undefined)_0xd40a49['detail']=_0x3c353d['detail'];throw _0xd40a49;}return await _0x1db680['json']();},async 'importSkillFromNpm'(_0x593a13,_0x1cfec8='latest',_0x58ee79=null,_0x4a13cc=null){const _0x7dcb62=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x593a13,'version':_0x1cfec8,'skillId':_0x58ee79,'registry':_0x4a13cc})});if(!_0x7dcb62['ok']){const _0x1d3af1=await _0x7dcb62['json']()['catch'](()=>({'error':_0x7dcb62['statusText']})),_0x16056c=new Error(_0x1d3af1['error']||_0x1d3af1['message']||_0x7dcb62['statusText']);if(_0x1d3af1['detail']!==undefined)_0x16056c['detail']=_0x1d3af1['detail'];throw _0x16056c;}return await _0x7dcb62['json']();},async 'checkSkillUpdates'(_0x8c1560){const _0x123240=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x8c1560)+'/check-updates',{'method':'POST'});if(!_0x123240['ok']){const _0x4370d3=await _0x123240['json']()['catch'](()=>({'error':_0x123240['statusText']})),_0x4a8d5f=new Error(_0x4370d3['error']||_0x4370d3['message']||_0x123240['statusText']);if(_0x4370d3['detail']!==undefined)_0x4a8d5f['detail']=_0x4370d3['detail'];throw _0x4a8d5f;}return await _0x123240['json']();},async 'updateExternalSkill'(_0x1d44f9){const _0x48b42b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1d44f9)+'/update',{'method':'POST'});if(!_0x48b42b['ok']){const _0x5874b2=await _0x48b42b['json']()['catch'](()=>({'error':_0x48b42b['statusText']})),_0x1747ce=new Error(_0x5874b2['error']||_0x5874b2['message']||_0x48b42b['statusText']);if(_0x5874b2['detail']!==undefined)_0x1747ce['detail']=_0x5874b2['detail'];throw _0x1747ce;}return await _0x48b42b['json']();},async 'updateSkillFlags'(_0x14ddaa,_0x48e7ed){const _0x5639c8=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x14ddaa)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x48e7ed})});if(!_0x5639c8['ok']){const _0xf94cb1=await _0x5639c8['json']()['catch'](()=>({'error':_0x5639c8['statusText']})),_0x247c7a=new Error(_0xf94cb1['error']||_0xf94cb1['message']||_0x5639c8['statusText']);if(_0xf94cb1['detail']!==undefined)_0x247c7a['detail']=_0xf94cb1['detail'];throw _0x247c7a;}return await _0x5639c8['json']();},async 'removeFromImportedRegistry'(_0x775278){const _0x123725=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x775278)+'/registry',{'method':'DELETE'});if(!_0x123725['ok']){const _0x25a8cc=await _0x123725['json']()['catch'](()=>({'error':_0x123725['statusText']})),_0x25bef5=new Error(_0x25a8cc['error']||_0x25a8cc['message']||_0x123725['statusText']);if(_0x25a8cc['detail']!==undefined)_0x25bef5['detail']=_0x25a8cc['detail'];throw _0x25bef5;}return await _0x123725['json']();},async 'getTeams'(){const _0x16771e=await fetch(API_BASE+'/teams');if(!_0x16771e['ok']){const _0xc83425=await _0x16771e['json']()['catch'](()=>({'message':_0x16771e['statusText']}));throw new Error(_0xc83425['message']||'Failed\x20to\x20get\x20teams');}return await _0x16771e['json']();},async 'getTeam'(_0x5463e7){const _0x38cad8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5463e7));if(!_0x38cad8['ok']){const _0x9fd4bb=await _0x38cad8['json']()['catch'](()=>({'message':_0x38cad8['statusText']}));throw new Error(_0x9fd4bb['message']||'Failed\x20to\x20get\x20team');}return await _0x38cad8['json']();},async 'createTeam'(_0x3a2bc7){const _0x2d0cfc=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a2bc7)});if(!_0x2d0cfc['ok']){const _0x52b86e=await _0x2d0cfc['json']()['catch'](()=>({'message':_0x2d0cfc['statusText']}));throw new Error(_0x52b86e['message']||'Failed\x20to\x20create\x20team');}return await _0x2d0cfc['json']();},async 'updateTeam'(_0x10b8df,_0x3f690d){const _0x5e2070=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x10b8df),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f690d)});if(!_0x5e2070['ok']){const _0x436442=await _0x5e2070['json']()['catch'](()=>({'message':_0x5e2070['statusText']}));throw new Error(_0x436442['message']||'Failed\x20to\x20update\x20team');}return await _0x5e2070['json']();},async 'deleteTeam'(_0x376bf0){const _0x593b31=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x376bf0),{'method':'DELETE'});if(!_0x593b31['ok']){const _0x3a3be5=await _0x593b31['json']()['catch'](()=>({'message':_0x593b31['statusText']}));throw new Error(_0x3a3be5['message']||'Failed\x20to\x20delete\x20team');}return await _0x593b31['json']();},async 'addTeamMember'(_0x42d915,_0x4a27ef){const _0x514c7c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x42d915)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x4a27ef})});if(!_0x514c7c['ok']){const _0x47ca74=await _0x514c7c['json']()['catch'](()=>({'message':_0x514c7c['statusText']}));throw new Error(_0x47ca74['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x514c7c['json']();},async 'removeTeamMember'(_0x5474ff,_0x5c9f7c){const _0x1fc331=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5474ff)+'/members/'+encodeURIComponent(_0x5c9f7c),{'method':'DELETE'});if(!_0x1fc331['ok']){const _0x5545d3=await _0x1fc331['json']()['catch'](()=>({'message':_0x1fc331['statusText']}));throw new Error(_0x5545d3['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1fc331['json']();},async 'getBindings'(_0x23e0b0={}){const _0x44112b=new URLSearchParams();if(_0x23e0b0['resource_type'])_0x44112b['set']('resource_type',_0x23e0b0['resource_type']);if(_0x23e0b0['resource_id'])_0x44112b['set']('resource_id',_0x23e0b0['resource_id']);if(_0x23e0b0['subject_type'])_0x44112b['set']('subject_type',_0x23e0b0['subject_type']);if(_0x23e0b0['subject_id'])_0x44112b['set']('subject_id',_0x23e0b0['subject_id']);const _0x42ac4f=_0x44112b['toString'](),_0x56cc49=await fetch(API_BASE+'/bindings'+(_0x42ac4f?'?'+_0x42ac4f:''));if(!_0x56cc49['ok']){const _0x16a23b=await _0x56cc49['json']()['catch'](()=>({'message':_0x56cc49['statusText']}));throw new Error(_0x16a23b['message']||'Failed\x20to\x20get\x20bindings');}return await _0x56cc49['json']();},async 'createBinding'(_0x2659f6){const _0x4b6709=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2659f6)});if(!_0x4b6709['ok']){const _0x3a1127=await _0x4b6709['json']()['catch'](()=>({'message':_0x4b6709['statusText']}));throw new Error(_0x3a1127['message']||'Failed\x20to\x20create\x20binding');}return await _0x4b6709['json']();},async 'updateBinding'(_0x18ecba,_0x304b4f){const _0x35fb5b=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x18ecba),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x304b4f)});if(!_0x35fb5b['ok']){const _0xdbc691=await _0x35fb5b['json']()['catch'](()=>({'message':_0x35fb5b['statusText']}));throw new Error(_0xdbc691['message']||'Failed\x20to\x20update\x20binding');}return await _0x35fb5b['json']();},async 'deleteBinding'(_0x2ca0e1){const _0x5094b3=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2ca0e1),{'method':'DELETE'});if(!_0x5094b3['ok']){const _0x5bb9e8=await _0x5094b3['json']()['catch'](()=>({'message':_0x5094b3['statusText']}));throw new Error(_0x5bb9e8['message']||'Failed\x20to\x20delete\x20binding');}return await _0x5094b3['json']();},async 'getRoleDefinitions'(){const _0x3fa56e=await fetch(API_BASE+'/roles');if(!_0x3fa56e['ok']){const _0x331476=await _0x3fa56e['json']()['catch'](()=>({'message':_0x3fa56e['statusText']}));throw new Error(_0x331476['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x3fa56e['json']();},async 'getRoleDefinition'(_0x2286cd){const _0x5ad435=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2286cd));if(!_0x5ad435['ok']){const _0x3b33f8=await _0x5ad435['json']()['catch'](()=>({'message':_0x5ad435['statusText']}));throw new Error(_0x3b33f8['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x5ad435['json']();},async 'createRoleDefinition'(_0x5cd667){const _0x171490=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5cd667)});if(!_0x171490['ok']){const _0x2f713f=await _0x171490['json']()['catch'](()=>({'message':_0x171490['statusText']}));throw new Error(_0x2f713f['message']||_0x2f713f['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x171490['json']();},async 'updateRoleDefinition'(_0xb21e01,_0xd47223){const _0x8f964f=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0xb21e01),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xd47223)});if(!_0x8f964f['ok']){const _0x366b95=await _0x8f964f['json']()['catch'](()=>({'message':_0x8f964f['statusText']}));throw new Error(_0x366b95['message']||_0x366b95['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x8f964f['json']();},async 'deleteRoleDefinition'(_0x368f2b){const _0x1a9fc0=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x368f2b),{'method':'DELETE'});if(!_0x1a9fc0['ok']){const _0x8db6db=await _0x1a9fc0['json']()['catch'](()=>({'message':_0x1a9fc0['statusText']}));throw new Error(_0x8db6db['message']||_0x8db6db['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x1a9fc0['json']();},async 'getAvailablePermissions'(){const _0x563458=await fetch(API_BASE+'/roles/available-permissions');if(!_0x563458['ok']){const _0x172abc=await _0x563458['json']()['catch'](()=>({'message':_0x563458['statusText']}));throw new Error(_0x172abc['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x563458['json']();},async 'getGitProviderAllowedTeams'(_0x456ca4){const _0x5761f8=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x456ca4)+'/allowed-teams');if(!_0x5761f8['ok']){const _0x2eb67c=await _0x5761f8['json']()['catch'](()=>({'message':_0x5761f8['statusText']}));throw new Error(_0x2eb67c['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x5761f8['json']();},async 'setGitProviderAllowedTeams'(_0x4b2eb6,_0x3dc918){const _0x27674f=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x4b2eb6)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x3dc918})});if(!_0x27674f['ok']){const _0x49ea87=await _0x27674f['json']()['catch'](()=>({'message':_0x27674f['statusText']}));throw new Error(_0x49ea87['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x27674f['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 _0x173ca9=toastState['baseBottom'];toastState['toasts']['forEach'](_0x350b08=>{_0x350b08['el']['style']['bottom']=_0x173ca9+'px';const _0x34814f=_0x350b08['el']['offsetHeight']||toastState['defaultHeight'];_0x173ca9+=_0x34814f+toastState['gap'];});});}function removeToastById(_0x424197){const _0x57fc8a=toastState['toasts']['findIndex'](_0xf0ab31=>_0xf0ab31['id']===_0x424197);if(_0x57fc8a===-0x1)return;const _0x1937d2=toastState['toasts'][_0x57fc8a];if(_0x1937d2['timeoutId'])clearTimeout(_0x1937d2['timeoutId']);_0x1937d2['el']['classList']['remove']('show'),setTimeout(()=>_0x1937d2['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x57fc8a,0x1),repositionAllToasts();}function registerToast(_0x81ff68){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x81ff68),repositionAllToasts(),_0x81ff68['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(_0x412aa1){if(_0x412aa1===null||_0x412aa1===undefined)return'';return String(_0x412aa1)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x4ca0c9,_0x50c522){if(_0x4ca0c9&&typeof _0x4ca0c9==='object'&&!Array['isArray'](_0x4ca0c9))return{'code':typeof _0x4ca0c9['text']==='string'?_0x4ca0c9['text']:'','language':typeof _0x4ca0c9['lang']==='string'?_0x4ca0c9['lang']:''};return{'code':typeof _0x4ca0c9==='string'?_0x4ca0c9:'','language':typeof _0x50c522==='string'?_0x50c522:''};}function buildMermaidBlock(_0xe21a9d){const _0x4658f0=String(_0xe21a9d||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x4658f0))+'\x22>'+escapeHtmlValue(_0x4658f0)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x37b0df=new marked['Renderer'](),_0x1fefee=_0x37b0df['code']['bind'](_0x37b0df);return _0x37b0df['code']=function(_0x3921e5,_0x3b7ab1,..._0x3f85e4){const {code:_0x55adc5,language:_0xe34154}=getMarkdownCodeBlockPayload(_0x3921e5,_0x3b7ab1),_0x35941a=String(_0xe34154||'')['trim']()['toLowerCase']();if(_0x35941a==='mermaid')return buildMermaidBlock(_0x55adc5);const _0x233524=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x233524&&_0x35941a)try{const _0xc5a45d=_0x233524['getLanguage'](_0x35941a)?_0x35941a:'plaintext',_0x582e63=_0x233524['highlight'](_0x55adc5,{'language':_0xc5a45d})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x35941a)+'\x22>'+_0x582e63+'</code></pre>';}catch(_0x31dc0e){console['error']('Syntax\x20highlighting\x20error:',_0x31dc0e);}return _0x1fefee(_0x3921e5,_0x3b7ab1,..._0x3f85e4);},sharedMarkedRenderer=_0x37b0df,_0x37b0df;}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 _0x18eb50=window['mermaid'];if(!_0x18eb50||typeof _0x18eb50['initialize']!=='function')return _0x18eb50||null;return _0x18eb50['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x18eb50;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x2ea11d,_0x25c389)=>{const _0x7764c5=()=>_0x2ea11d(configureMermaidInstance()),_0x3b3aee=()=>{mermaidLoadPromise=null,_0x25c389(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x258ffb=document['getElementById'](MERMAID_SCRIPT_ID);!_0x258ffb&&(_0x258ffb=document['createElement']('script'),_0x258ffb['id']=MERMAID_SCRIPT_ID,_0x258ffb['src']=MERMAID_SCRIPT_SRC,_0x258ffb['async']=!![],document['head']['appendChild'](_0x258ffb));if(window['mermaid']){_0x7764c5();return;}_0x258ffb['addEventListener']('load',_0x7764c5,{'once':!![]}),_0x258ffb['addEventListener']('error',_0x3b3aee,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x5d52df){const _0x44ac54=_0x5d52df['getAttribute']('data-mermaid-source');if(!_0x44ac54)return null;let _0x5ef99a=_0x44ac54;try{_0x5ef99a=decodeURIComponent(_0x44ac54);}catch{}return _0x5d52df['textContent']=_0x5ef99a,_0x5d52df['removeAttribute']('data-processed'),_0x5d52df['removeAttribute']('aria-roledescription'),_0x5d52df['removeAttribute']('role'),_0x5d52df['removeAttribute']('aria-label'),_0x5ef99a;}function collectMermaidNodes(_0x2cbac7,_0x203a0f){if(!(_0x2cbac7 instanceof Element))return;_0x2cbac7['matches']('.mermaid[data-mermaid-source]')&&_0x203a0f['add'](_0x2cbac7),_0x2cbac7['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1a4da5=>{_0x203a0f['add'](_0x1a4da5);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x7cd64e=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x4b4d06=>setTimeout(_0x4b4d06,0x0);_0x7cd64e(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x21ea65=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x21ea65);});});}function queueMermaidRender(_0x28b339){const _0x438c5c=new Set();_0x28b339 instanceof Document||_0x28b339 instanceof DocumentFragment?_0x28b339['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3ca737=>_0x438c5c['add'](_0x3ca737)):collectMermaidNodes(_0x28b339,_0x438c5c);if(_0x438c5c['size']===0x0)return;_0x438c5c['forEach'](_0x3977ca=>pendingMermaidNodes['add'](_0x3977ca)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x352c4d=Array['from'](pendingMermaidNodes)['filter'](_0x86acda=>_0x86acda['isConnected']);pendingMermaidNodes['clear']();if(_0x352c4d['length']===0x0)return;const _0x2ca665=await loadMermaid();if(!_0x2ca665)return;configureMermaidInstance();const _0x215026=getMermaidTheme();for(const _0x66fc9c of _0x352c4d){const _0x2c8f43=_0x66fc9c['getAttribute']('data-mermaid-source');if(!_0x2c8f43)continue;const _0x8d7de4=_0x66fc9c['getAttribute']('data-processed')==='true';if(_0x8d7de4&&_0x66fc9c['dataset']['mermaidTheme']===_0x215026)continue;restoreMermaidSource(_0x66fc9c);try{if(typeof _0x2ca665['run']==='function')await _0x2ca665['run']({'nodes':[_0x66fc9c]});else typeof _0x2ca665['init']==='function'&&_0x2ca665['init'](undefined,[_0x66fc9c]);_0x66fc9c['dataset']['mermaidTheme']=_0x215026,delete _0x66fc9c['dataset']['mermaidError'];}catch(_0x4ac847){console['error']('Mermaid\x20render\x20failed:',_0x4ac847),restoreMermaidSource(_0x66fc9c),_0x66fc9c['dataset']['mermaidError']='true',delete _0x66fc9c['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x209c7b=>{_0x209c7b['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x209c7b);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4c6ed5=>{_0x4c6ed5['forEach'](_0x167662=>{_0x167662['addedNodes']['forEach'](_0x2b44bc=>{_0x2b44bc['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x2b44bc);});});}),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'(_0x430288){const _0x3962e7=new Date(_0x430288),_0x451e49=new Date(),_0xe0732=_0x451e49-_0x3962e7,_0x33a076=Math['floor'](_0xe0732/0x3e8),_0x597b90=Math['floor'](_0x33a076/0x3c),_0x345a94=Math['floor'](_0x597b90/0x3c),_0x31705d=Math['floor'](_0x345a94/0x18);if(_0x33a076<0x3c)return'now';if(_0x597b90<0x3c)return _0x597b90+'m\x20ago';if(_0x345a94<0x18)return _0x345a94+'h\x20ago';return _0x31705d+'d\x20ago';},'getStatusIcon'(_0x13801a){switch(_0x13801a){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x8dad52){switch(_0x8dad52){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'(_0x1c5885,_0x3f21b5=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x13350c={};_0x13350c['text/plain']=new Blob([_0x1c5885],{'type':'text/plain'});_0x3f21b5&&(_0x13350c['text/html']=new Blob([_0x3f21b5],{'type':'text/html'}));const _0x5b5a24=new ClipboardItem(_0x13350c);return await navigator['clipboard']['write']([_0x5b5a24]),!![];}catch(_0x3d1372){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3d1372);}try{const _0x2266c3=_0x3ded84=>{_0x3ded84['preventDefault'](),_0x3ded84['clipboardData']['setData']('text/plain',_0x1c5885),_0x3f21b5&&_0x3ded84['clipboardData']['setData']('text/html',_0x3f21b5);};document['addEventListener']('copy',_0x2266c3);const _0x256c86=document['execCommand']('copy');document['removeEventListener']('copy',_0x2266c3);if(_0x256c86)return!![];}catch(_0x1c00b4){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x1c00b4);}try{const _0x40f87f=document['createElement']('textarea');_0x40f87f['value']=_0x1c5885,_0x40f87f['style']['position']='fixed',_0x40f87f['style']['opacity']='0',_0x40f87f['style']['pointerEvents']='none',document['body']['appendChild'](_0x40f87f),_0x40f87f['select']();const _0x57d5be=document['execCommand']('copy');return document['body']['removeChild'](_0x40f87f),_0x57d5be;}catch(_0x4ed0e2){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x4ed0e2),![];}},'showToast'(_0x4a92e8,_0x5adc65='info'){const _0x55476b=getNextToastId(),_0x21f52a=document['createElement']('div');_0x21f52a['className']='toast\x20toast-'+_0x5adc65,_0x21f52a['textContent']=_0x4a92e8,_0x21f52a['dataset']['toastId']=_0x55476b,document['body']['appendChild'](_0x21f52a);const _0x15e9f5=_0x5adc65==='error'?0x2710:0xbb8,_0x4e131c=setTimeout(()=>{removeToastById(_0x55476b);},_0x15e9f5),_0x15103b={'id':_0x55476b,'el':_0x21f52a,'timeoutId':_0x4e131c};return registerToast(_0x15103b),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x21f52a['classList']['add']('show');});}),_0x55476b;},'showError'(_0x2f3dc1){console['error'](_0x2f3dc1);const _0x8c7bce=typeof _0x2f3dc1==='string'?_0x2f3dc1:_0x2f3dc1['message']||'An\x20error\x20occurred';this['showToast'](_0x8c7bce,'error');},'showSuccess'(_0x342635){this['showToast'](_0x342635,'success');},'capitalize'(_0x20b1d0){if(!_0x20b1d0)return'';return _0x20b1d0['charAt'](0x0)['toUpperCase']()+_0x20b1d0['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x2b0411){return escapeHtmlValue(_0x2b0411);},'ansiToHtml'(_0x2bb8e0){if(_0x2bb8e0===null||_0x2bb8e0===undefined)return'';let _0x573df8=this['escapeHtml'](_0x2bb8e0);const _0xa2e3e7={'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'},_0x13d3fc={'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 _0x5e6aa6=0x0;return _0x573df8=_0x573df8['replace'](/\x1b\[([0-9;]*)m/g,(_0x525f75,_0x54dd4f)=>{if(!_0x54dd4f||_0x54dd4f==='0'){const _0x505ca2='</span>'['repeat'](_0x5e6aa6);return _0x5e6aa6=0x0,_0x505ca2;}const _0x203bdf=_0x54dd4f['split'](';'),_0x2a073a=[];for(const _0x1bdfb4 of _0x203bdf){if(_0x1bdfb4==='1')_0x2a073a['push']('font-weight:bold');else{if(_0x1bdfb4==='2')_0x2a073a['push']('opacity:0.7');else{if(_0x1bdfb4==='3')_0x2a073a['push']('font-style:italic');else{if(_0x1bdfb4==='4')_0x2a073a['push']('text-decoration:underline');else{if(_0x1bdfb4==='9')_0x2a073a['push']('text-decoration:line-through');else{if(_0xa2e3e7[_0x1bdfb4])_0x2a073a['push']('color:'+_0xa2e3e7[_0x1bdfb4]);else{if(_0x13d3fc[_0x1bdfb4])_0x2a073a['push']('background-color:'+_0x13d3fc[_0x1bdfb4]);}}}}}}}if(_0x2a073a['length']>0x0)return _0x5e6aa6++,'<span\x20style=\x22'+_0x2a073a['join'](';')+'\x22>';return'';}),_0x573df8+='</span>'['repeat'](_0x5e6aa6),_0x573df8=_0x573df8['replace'](/\\u001b\[([0-9;]*)m/g,(_0x58bd3b,_0x16273c)=>{if(!_0x16273c||_0x16273c==='0')return'';const _0x486298=_0x16273c['split'](';'),_0x5bcd41=[];for(const _0x2113d9 of _0x486298){if(_0x2113d9==='1')_0x5bcd41['push']('font-weight:bold');else{if(_0xa2e3e7[_0x2113d9])_0x5bcd41['push']('color:'+_0xa2e3e7[_0x2113d9]);else{if(_0x13d3fc[_0x2113d9])_0x5bcd41['push']('background-color:'+_0x13d3fc[_0x2113d9]);}}}if(_0x5bcd41['length']>0x0)return'<span\x20style=\x22'+_0x5bcd41['join'](';')+'\x22>';return'';}),_0x573df8;},'showModal'({title:_0xe1df3a,content:_0x5e7d66,buttons:buttons=[]}){const _0x94f9b='\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'](_0xe1df3a)+'</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'+_0x5e7d66+'\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']((_0x7ae3e1,_0x36a6fd)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x7ae3e1['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x36a6fd+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x7ae3e1['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',_0x58bd74=document['createElement']('div');_0x58bd74['id']='utils-modal',_0x58bd74['className']='modal',_0x58bd74['innerHTML']=_0x94f9b,document['body']['appendChild'](_0x58bd74);const _0x5f29df=document['getElementById']('utils-modal-close');_0x5f29df&&_0x5f29df['addEventListener']('click',()=>this['hideModal']());const _0x25cee7=_0x58bd74['querySelectorAll']('[data-btn-index]');_0x25cee7['forEach'](_0x3edc80=>{const _0x4e96c0=parseInt(_0x3edc80['dataset']['btnIndex']);buttons[_0x4e96c0]?.['onClick']&&_0x3edc80['addEventListener']('click',buttons[_0x4e96c0]['onClick']);});const _0x4182a2=document['getElementById']('utils-modal-overlay');_0x4182a2&&_0x4182a2['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x15fad8=document['getElementById']('utils-modal');_0x15fad8&&_0x15fad8['remove']();},'parseKeyValuePairs'(_0x1e0ca5){const _0x4b097a={};if(!_0x1e0ca5)return _0x4b097a;return _0x1e0ca5['split'](/\r?\n/)['map'](_0x24f356=>_0x24f356['trim']())['filter'](Boolean)['forEach'](_0x5ca86b=>{const _0x2e9ec0=_0x5ca86b['indexOf']('=');if(_0x2e9ec0>0x0){const _0x55ef19=_0x5ca86b['slice'](0x0,_0x2e9ec0)['trim'](),_0x5decf0=_0x5ca86b['slice'](_0x2e9ec0+0x1)['trim']();if(_0x55ef19)_0x4b097a[_0x55ef19]=_0x5decf0;}}),_0x4b097a;},'debounce'(_0x15682b,_0x2ddfdf=0xfa){let _0x490e15=null;return(..._0x126d46)=>{clearTimeout(_0x490e15),_0x490e15=setTimeout(()=>_0x15682b['apply'](this,_0x126d46),_0x2ddfdf);};},'formatTimestamp'(_0x1ff68c){if(!_0x1ff68c)return'N/A';const _0x51a747=new Date(_0x1ff68c);return _0x51a747['toLocaleDateString']()+'\x20'+_0x51a747['toLocaleTimeString']();},'getQueryParams'(){const _0x484643=new URLSearchParams(window['location']['search']),_0x367342={};for(const [_0x1bcede,_0x5daced]of _0x484643){_0x367342[_0x1bcede]=_0x5daced;}return _0x367342;},'formatDuration'(_0x8a76eb,_0x1a4c9f){if(!_0x8a76eb)return'N/A';const _0x4b49f4=new Date(_0x8a76eb),_0x38bf28=_0x1a4c9f?new Date(_0x1a4c9f):new Date(),_0x4ec168=_0x38bf28-_0x4b49f4;if(_0x4ec168<0x0)return'0s';const _0x54b5fb=Math['floor'](_0x4ec168/0x3e8),_0x52d5eb=Math['floor'](_0x54b5fb/0x3c),_0x96e954=Math['floor'](_0x52d5eb/0x3c),_0x319c08=Math['floor'](_0x96e954/0x18);if(_0x54b5fb<0x3c)return _0x54b5fb+'s';if(_0x52d5eb<0x3c)return _0x52d5eb+'m\x20'+_0x54b5fb%0x3c+'s';if(_0x96e954<0x18)return _0x96e954+'h\x20'+_0x52d5eb%0x3c+'m\x20'+_0x54b5fb%0x3c+'s';return _0x319c08+'d\x20'+_0x96e954%0x18+'h\x20'+_0x52d5eb%0x3c+'m';},'renderMarkdown'(_0x415f44,_0x3b9406={}){if(!_0x415f44)return'';_0x415f44=this['rewriteAttachmentLinks'](_0x415f44,_0x3b9406),_0x415f44=this['rewriteColorSyntax'](_0x415f44);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x415f44,_0x3b9406);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x415f44);}catch(_0x441d62){return console['error']('Markdown\x20parsing\x20error:',_0x441d62),this['renderMarkdownFallback'](_0x415f44,_0x3b9406);}},'rewriteAttachmentLinks'(_0x40e751,_0x41bc7d={}){const _0xc340ad=typeof _0x41bc7d['resolveAttachmentUrl']==='function'?_0x41bc7d['resolveAttachmentUrl']:_0x41bc7d['taskId']?_0x3f46af=>API_BASE+'/tasks/'+_0x41bc7d['taskId']+'/attachments/'+encodeURIComponent(_0x3f46af):null;if(!_0xc340ad)return _0x40e751;return String(_0x40e751)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x30b25d,_0x434d3b)=>{const _0x3eab92=String(_0x434d3b||'')['trim']();if(!_0x3eab92)return _0x30b25d;let _0x51a074=_0x3eab92;try{_0x51a074=decodeURIComponent(_0x3eab92);}catch{}const _0x527030=_0xc340ad(_0x51a074);if(!_0x527030)return _0x30b25d;return']('+_0x527030+')';});},'rewriteColorSyntax'(_0x58862d){if(!_0x58862d)return _0x58862d;return String(_0x58862d)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x23252f,_0x30d0b1,_0x143e61)=>{const _0x177740=this['rewriteColorSyntax'](_0x143e61);return'<span\x20style=\x22color:\x20'+_0x30d0b1+'\x22>'+_0x177740+'</span>';});},'renderMarkdownFallback'(_0x37a477,_0x25e9a0={}){if(!_0x37a477)return'';_0x37a477=_0x37a477['replace'](/\r\n/g,'\x0a'),_0x37a477=_0x37a477['replace'](/\r/g,'\x0a'),_0x37a477=this['rewriteAttachmentLinks'](_0x37a477,_0x25e9a0);let _0x360bf6=this['escapeHtml'](_0x37a477);return _0x360bf6=_0x360bf6['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x360bf6=_0x360bf6['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x360bf6=_0x360bf6['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x360bf6=_0x360bf6['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x360bf6=_0x360bf6['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x360bf6=_0x360bf6['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x360bf6=_0x360bf6['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x360bf6=_0x360bf6['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x360bf6=_0x360bf6['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x360bf6=_0x360bf6['replace'](/\n\n/g,'</p><p>'),_0x360bf6=_0x360bf6['replace'](/\n/g,'<br>'),'<p>'+_0x360bf6+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1f779a=new Uint8Array(0x10);crypto['getRandomValues'](_0x1f779a),_0x1f779a[0x6]=_0x1f779a[0x6]&0xf|0x40,_0x1f779a[0x8]=_0x1f779a[0x8]&0x3f|0x80;const _0x366f4e=Array['from'](_0x1f779a,_0x27a581=>_0x27a581['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x366f4e['slice'](0x0,0x8)+'-'+_0x366f4e['slice'](0x8,0xc)+'-'+_0x366f4e['slice'](0xc,0x10)+'-'+_0x366f4e['slice'](0x10,0x14)+'-'+_0x366f4e['slice'](0x14);}};export class CustomSelect{constructor(_0x1332d4,_0x424cb3={}){this['nativeSelect']=_0x1332d4,this['options']=_0x424cb3,this['isOpen']=![],this['selectedValue']=_0x1332d4['value']||'',this['searchable']=_0x424cb3['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x19ed63=document['createElement']('div');_0x19ed63['className']='custom-select';const _0x27163b=document['createElement']('div');_0x27163b['className']='custom-select-trigger',_0x27163b['setAttribute']('tabindex','0'),_0x27163b['setAttribute']('role','button'),_0x27163b['setAttribute']('aria-haspopup','listbox');const _0x2bac04=document['createElement']('span');_0x2bac04['className']='custom-select-trigger-text';const _0x5b10d6=document['createElement']('span');_0x5b10d6['className']='custom-select-arrow',_0x5b10d6['textContent']='▼',_0x27163b['appendChild'](_0x2bac04),_0x27163b['appendChild'](_0x5b10d6);const _0x52e8f1=document['createElement']('div');_0x52e8f1['className']='custom-select-dropdown',_0x52e8f1['setAttribute']('role','listbox');if(this['searchable']){const _0x18010=document['createElement']('div');_0x18010['className']='custom-select-search';const _0x16e781=document['createElement']('input');_0x16e781['type']='text',_0x16e781['className']='custom-select-search-input',_0x16e781['placeholder']='Type\x20to\x20search...',_0x16e781['setAttribute']('aria-label','Search\x20options'),_0x16e781['addEventListener']('input',_0x1fdd8a=>{this['searchQuery']=_0x1fdd8a['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x16e781['addEventListener']('keydown',_0x303078=>{if(_0x303078['key']==='Escape')_0x303078['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x303078['key']==='Enter'){_0x303078['preventDefault'](),_0x303078['stopPropagation']();const _0x545f84=_0x52e8f1['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x545f84){const _0x1f8f2b=_0x545f84['getAttribute']('data-value');this['select'](_0x1f8f2b);}}}}),_0x18010['appendChild'](_0x16e781),_0x52e8f1['appendChild'](_0x18010),this['searchInput']=_0x16e781;}const _0xe3a238=document['createElement']('div');_0xe3a238['className']='custom-select-options',_0x52e8f1['appendChild'](_0xe3a238),_0x19ed63['appendChild'](_0x27163b),_0x19ed63['appendChild'](_0x52e8f1),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x19ed63,this['nativeSelect']),this['wrapper']=_0x19ed63,this['trigger']=_0x27163b,this['triggerText']=_0x2bac04,this['dropdown']=_0x52e8f1,this['optionsContainer']=_0xe3a238,_0x27163b['addEventListener']('click',()=>this['toggle']()),_0x27163b['addEventListener']('keydown',_0x286d93=>this['handleKeydown'](_0x286d93)),document['addEventListener']('click',_0x14172d=>{!_0x19ed63['contains'](_0x14172d['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0xeeaad9=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0xeeaad9['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0xded45a=new MutationObserver(()=>{this['updateDisabledState']();});_0xded45a['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x2d9fdd=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x2d9fdd['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x2c75a5=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x2c75a5),this['trigger']['setAttribute']('aria-disabled',_0x2c75a5?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x2c75a5?'-1':'0'),_0x2c75a5&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x1c8c49=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x543112=_0x1c8c49['filter'](_0x19fc96=>!_0x19fc96['disabled']&&!_0x19fc96['hidden']);_0x1c8c49['forEach']((_0x2d607d,_0x2bd1da)=>{const _0x737125=document['createElement']('div');_0x737125['className']='custom-select-option',_0x737125['textContent']=_0x2d607d['textContent'],_0x737125['setAttribute']('data-value',_0x2d607d['value']),_0x737125['setAttribute']('data-index',_0x2bd1da),_0x737125['setAttribute']('role','option'),_0x2d607d['disabled']?_0x737125['classList']['add']('disabled'):_0x737125['addEventListener']('click',()=>this['select'](_0x2d607d['value'])),_0x2d607d['value']===this['selectedValue']&&_0x737125['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x737125),this['allOptions']['push']({'element':_0x737125,'text':_0x2d607d['textContent']['toLowerCase'](),'value':_0x2d607d['value'],'disabled':_0x2d607d['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3db754=this['searchInput']['parentElement'];_0x543112['length']>0x3?_0x3db754['style']['display']='':_0x3db754['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x3057a7=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x3ee95c=>{if(!_0x3057a7||_0x3ee95c['disabled'])_0x3ee95c['element']['style']['display']='';else{const _0x41c979=_0x3ee95c['text']['includes'](_0x3057a7);_0x3ee95c['element']['style']['display']=_0x41c979?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x527b0c){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x527b0c,this['nativeSelect']['value']=_0x527b0c;const _0x1ca8a9=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x1ca8a9),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x4335af=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x4335af&&(this['triggerText']['textContent']=_0x4335af['textContent'],_0x4335af['disabled']||_0x4335af['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x183756=>{_0x183756['getAttribute']('data-value')===this['selectedValue']?_0x183756['classList']['add']('selected'):_0x183756['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 _0x265c20=window['getComputedStyle'](this['dropdown']);if(_0x265c20['position']==='fixed'){const _0x374695=this['trigger']['getBoundingClientRect'](),_0x4e5893=parseInt(_0x265c20['maxHeight'])||0xc8,_0x6d5ca1=window['innerHeight'],_0x317ad4=_0x6d5ca1-_0x374695['bottom'],_0x7b8127=_0x374695['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x34a7f1;_0x317ad4<_0x4e5893&&_0x7b8127>_0x317ad4?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x6d5ca1-_0x374695['top']+'px',_0x34a7f1=Math['min'](_0x4e5893,_0x7b8127-0xa),this['dropdown']['style']['maxHeight']=_0x34a7f1+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x374695['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x34a7f1=Math['min'](_0x4e5893,_0x317ad4-0xa),this['dropdown']['style']['maxHeight']=_0x34a7f1+'px');if(this['optionsContainer']){let _0x28b6a1=_0x34a7f1;if(this['searchInput']){const _0x2d4470=this['searchInput']['parentElement'];_0x2d4470&&(_0x28b6a1-=_0x2d4470['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x28b6a1)+'px';}this['dropdown']['style']['left']=_0x374695['left']+'px',this['dropdown']['style']['width']=_0x374695['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x37112b=this['searchInput']['parentElement'];_0x37112b&&_0x37112b['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'](_0x55670e){if(this['nativeSelect']['disabled'])return;if(_0x55670e['key']==='Enter'||_0x55670e['key']==='\x20')_0x55670e['preventDefault'](),this['toggle']();else _0x55670e['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x1c093a='\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',_0x1c093a),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1cf013=document['getElementById']('confirm-dialog-close'),_0x21bb3d=document['getElementById']('confirm-dialog-cancel'),_0x15ac17=document['getElementById']('confirm-dialog-confirm'),_0x1f2b32=this['_modal']['querySelector']('.modal-overlay');_0x1cf013['addEventListener']('click',()=>this['_resolve'](![])),_0x21bb3d['addEventListener']('click',()=>this['_resolve'](![])),_0x15ac17['addEventListener']('click',()=>this['_resolve'](!![])),_0x1f2b32['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x38e338=>{if(_0x38e338['key']==='Escape')_0x38e338['preventDefault'](),this['_resolve'](![]);else _0x38e338['key']==='Enter'&&(_0x38e338['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x4cb5ed,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x38c9f6=>{this['_resolvePromise']=_0x38c9f6,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x4cb5ed;const _0x3b7483=document['getElementById']('confirm-dialog-cancel'),_0x267816=document['getElementById']('confirm-dialog-confirm');_0x3b7483['textContent']=cancelText,_0x267816['textContent']=confirmText,_0x267816['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x267816['focus']();});},'_resolve'(_0xcaad46){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0xcaad46),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x1521b1,_0x4c1b34={}){this['container']=_0x1521b1,this['options']={'placeholder':_0x4c1b34['placeholder']||'Type\x20to\x20search...','maxItems':_0x4c1b34['maxItems']||0x64,'loadItems':_0x4c1b34['loadItems']||(async()=>[]),'renderItem':_0x4c1b34['renderItem']||(_0x59796c=>({'primary':String(_0x59796c),'secondary':''})),'onSelect':_0x4c1b34['onSelect']||(()=>{}),'filterItems':_0x4c1b34['filterItems']||null,'getItemValue':_0x4c1b34['getItemValue']||(_0x111d81=>_0x111d81),'sortItems':_0x4c1b34['sortItems']||null,'debounceMs':_0x4c1b34['debounceMs']||0xc8,'minCharsForSearch':_0x4c1b34['minCharsForSearch']||0x0,'emptyMessage':_0x4c1b34['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x4c1b34['loadingMessage']||'Loading...','preload':_0x4c1b34['preload']!==![],'searchMode':_0x4c1b34['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',_0x55485e=>this['onBlur'](_0x55485e)),this['input']['addEventListener']('input',_0x5d7cd4=>this['onInput'](_0x5d7cd4)),this['input']['addEventListener']('keydown',_0x2263c6=>this['onKeydown'](_0x2263c6)),this['clearBtn']['addEventListener']('mousedown',_0x5b52c6=>{_0x5b52c6['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x3dc53f=>{_0x3dc53f['preventDefault']();}),document['addEventListener']('click',_0x35d26e=>{!this['wrapper']['contains'](_0x35d26e['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(_0x3d7bb6){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3d7bb6);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x488e7e){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x52852d){const _0x1acc6e=_0x52852d['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x1acc6e);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x1acc6e):this['loadAndShow'](_0x1acc6e);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x699b0e){switch(_0x699b0e['key']){case'ArrowDown':_0x699b0e['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x699b0e['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x699b0e['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x699b0e['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x4476ba){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x280f80=this['selectedIndex']+_0x4476ba;if(_0x280f80>=0x0&&_0x280f80<this['filteredItems']['length']){this['selectedIndex']=_0x280f80,this['updateSelectionHighlight']();const _0x35a195=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x35a195[this['selectedIndex']]&&_0x35a195[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x4a7846=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x4a7846['forEach']((_0xb3c820,_0x12ee58)=>{_0xb3c820['classList']['toggle']('keyboard-selected',_0x12ee58===this['selectedIndex']);});}async['loadAndShow'](_0x156c29){this['showLoading']();try{const _0x193c64=await this['options']['loadItems'](_0x156c29);if(this['options']['searchMode']==='server'){let _0x50b4ce=_0x193c64;this['options']['sortItems']&&(_0x50b4ce=this['options']['sortItems']([..._0x193c64]));this['filteredItems']=_0x50b4ce;const _0x4c1181=this['filteredItems']['length']>=this['options']['maxItems'];_0x4c1181&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x4c1181),this['open']();}else this['allItems']=_0x193c64,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x156c29);}catch(_0x201c38){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x201c38),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x10c488){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x10c488):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x39b4d1=this['filteredItems']['length']>=this['options']['maxItems'];_0x39b4d1&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x39b4d1),this['open']();}['renderItems'](_0x5de065){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']((_0x41f240,_0x295cd6)=>{const _0xf20c4c=document['createElement']('div');_0xf20c4c['className']='autocomplete-select-item',_0xf20c4c['setAttribute']('role','option'),_0xf20c4c['setAttribute']('data-index',_0x295cd6);const _0x2e1fd1=this['options']['renderItem'](_0x41f240);let _0x3f3bf2='';_0x2e1fd1['icon']&&(_0x3f3bf2='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x2e1fd1['iconClass']||'')+'\x22>'+_0x2e1fd1['icon']+'</span>'),_0xf20c4c['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3f3bf2+'\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'](_0x2e1fd1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2e1fd1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x2e1fd1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0xf20c4c['addEventListener']('click',()=>{this['selectItem'](_0x41f240);}),_0xf20c4c['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x295cd6,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0xf20c4c);}),_0x5de065?(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'](_0x2a1471){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x2a1471)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x21fe5e){this['selectedItem']=_0x21fe5e;const _0x568d95=this['options']['renderItem'](_0x21fe5e);this['input']['value']=_0x568d95['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x21fe5e);}['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'](_0x282266){if(_0x282266){this['selectedItem']=_0x282266;const _0x58bd76=this['options']['renderItem'](_0x282266);this['input']['value']=_0x58bd76['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x4ddf76){this['allItems']=_0x4ddf76,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'](_0xbb4820){this['input']['placeholder']=_0xbb4820;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0xea75db=null){const _0x43627e=document['getElementById']('admin-menu-container'),_0x23e29c=document['getElementById']('admin-menu-btn'),_0x587a7a=document['getElementById']('admin-menu');if(!_0x43627e||!_0x23e29c||!_0x587a7a)return;try{!_0xea75db&&(_0xea75db=await API['getCurrentUser']());if(_0xea75db){const _0xc6924c=window['Permissions'],_0x8e5df5=_0xc6924c['hasServerPermission'](_0xea75db,'*')||_0xc6924c['hasEnvPermission'](_0xea75db,'environments:manage')||_0xc6924c['hasServerPermission'](_0xea75db,'users:create')||_0xc6924c['hasTeamPermission'](_0xea75db,'teams:manage')||_0xc6924c['hasEnvPermission'](_0xea75db,'environments:view_details');if(!_0x8e5df5)return;_0x43627e['hidden']=![];if(!_0xc6924c['hasServerPermission'](_0xea75db,'*')){const _0x559eb3=_0x587a7a['querySelectorAll']('.admin-menu-item');_0x559eb3['forEach'](_0x4425ed=>{const _0x1cf113=_0x4425ed['querySelector']('.option-text')?.['textContent']?.['trim']();_0x1cf113==='Users'&&!_0xc6924c['hasServerPermission'](_0xea75db,'users:create')&&(_0x4425ed['hidden']=!![]),_0x1cf113==='Skills'&&(_0x4425ed['hidden']=!![]),_0x1cf113==='Server\x20Settings'&&(_0x4425ed['hidden']=!![]),_0x1cf113==='Server\x20Administration'&&(_0x4425ed['hidden']=!![]),_0x1cf113==='Git\x20History'&&(_0x4425ed['hidden']=!![]),_0x1cf113==='Roles'&&(_0x4425ed['hidden']=!![]);});}_0x23e29c['addEventListener']('click',_0x29a5de=>{_0x29a5de['stopPropagation']();const _0x3ed0cd=document['getElementById']('actions-menu');if(_0x3ed0cd)_0x3ed0cd['hidden']=!![];_0x587a7a['hidden']=!_0x587a7a['hidden'];}),document['addEventListener']('click',_0x349e02=>{!_0x587a7a['hidden']&&!_0x23e29c['contains'](_0x349e02['target'])&&!_0x587a7a['contains'](_0x349e02['target'])&&(_0x587a7a['hidden']=!![]);}),document['addEventListener']('keydown',_0x18b65c=>{_0x18b65c['key']==='Escape'&&!_0x587a7a['hidden']&&(_0x587a7a['hidden']=!![]);});}}catch(_0x510eb5){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x510eb5['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 _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};