@profoundlogic/coderflow-server 0.8.5 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.css +60 -0
  142. package/dist/web-ui/public/admin.html +6 -0
  143. package/dist/web-ui/public/admin.js +1 -1
  144. package/dist/web-ui/public/agent-event-parser.js +1 -1
  145. package/dist/web-ui/public/app.js +1 -1
  146. package/dist/web-ui/public/approve-dialog.js +1 -1
  147. package/dist/web-ui/public/automation-links.js +1 -1
  148. package/dist/web-ui/public/automation-schedule.js +1 -1
  149. package/dist/web-ui/public/comments-widget.js +1 -1
  150. package/dist/web-ui/public/diff-utils.js +1 -1
  151. package/dist/web-ui/public/environments.js +1 -1
  152. package/dist/web-ui/public/feedback-widget.js +1 -1
  153. package/dist/web-ui/public/file-selection-tree.js +1 -1
  154. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  155. package/dist/web-ui/public/git-history.js +1 -1
  156. package/dist/web-ui/public/git-status.js +1 -1
  157. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  158. package/dist/web-ui/public/index.js +1 -1
  159. package/dist/web-ui/public/login.js +1 -1
  160. package/dist/web-ui/public/markdown-editor.js +1 -1
  161. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  162. package/dist/web-ui/public/modal-maximize.js +1 -1
  163. package/dist/web-ui/public/notifications.js +1 -1
  164. package/dist/web-ui/public/permissions.js +1 -1
  165. package/dist/web-ui/public/pr-dialog.js +1 -1
  166. package/dist/web-ui/public/roles.js +1 -1
  167. package/dist/web-ui/public/settings.js +1 -1
  168. package/dist/web-ui/public/setup-password.js +1 -1
  169. package/dist/web-ui/public/skills.js +1 -1
  170. package/dist/web-ui/public/sse-client.js +1 -1
  171. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  172. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  173. package/dist/web-ui/public/task.js +1 -1
  174. package/dist/web-ui/public/teams.js +1 -1
  175. package/dist/web-ui/public/terminal.js +1 -1
  176. package/dist/web-ui/public/theme.js +1 -1
  177. package/dist/web-ui/public/users.js +1 -1
  178. package/dist/web-ui/public/variant-grouping.js +1 -1
  179. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x2897dd=window['location']['pathname'],_0x45b94c=_0x2897dd['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x45b94c)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x45b94c[0x1]),_0x45b94c[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2cf25c={}){const _0x1330c8=new URLSearchParams();_0x2cf25c['userId']&&_0x1330c8['set']('userId',String(_0x2cf25c['userId']));_0x2cf25c['automation']&&_0x1330c8['set']('automation',String(_0x2cf25c['automation']));const _0xe94804=API_BASE+'/tasks/stats'+(_0x1330c8['toString']()?'?'+_0x1330c8['toString']():''),_0x388da7=await fetch(_0xe94804);if(!_0x388da7['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x388da7['statusText']);return await _0x388da7['json']();},async 'getTasks'(_0x9444b7={}){const _0x17bc2a=new URLSearchParams();_0x9444b7['status']&&_0x17bc2a['set']('status',String(_0x9444b7['status']));_0x9444b7['environment']&&_0x17bc2a['set']('environment',String(_0x9444b7['environment']));_0x9444b7['automation']&&_0x17bc2a['set']('automation',String(_0x9444b7['automation']));if(_0x9444b7['include']){const _0x4c4d95=Array['isArray'](_0x9444b7['include'])?_0x9444b7['include']['join'](','):String(_0x9444b7['include']);_0x4c4d95&&_0x17bc2a['set']('include',_0x4c4d95);}_0x9444b7['filter']&&_0x17bc2a['set']('filter',String(_0x9444b7['filter']));_0x9444b7['page']&&_0x17bc2a['set']('page',String(_0x9444b7['page']));_0x9444b7['limit']&&_0x17bc2a['set']('limit',String(_0x9444b7['limit']));_0x9444b7['userId']&&_0x17bc2a['set']('userId',String(_0x9444b7['userId']));_0x9444b7['search']&&_0x17bc2a['set']('search',String(_0x9444b7['search']));_0x9444b7['includeChildTasks']&&_0x17bc2a['set']('includeChildTasks','true');const _0x157ca6=API_BASE+'/tasks'+(_0x17bc2a['toString']()?'?'+_0x17bc2a['toString']():''),_0x228e35=await fetch(_0x157ca6);if(!_0x228e35['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x228e35['statusText']);return await _0x228e35['json']();},async 'getAutomations'(_0x48f20c={}){const _0x51f094=new URLSearchParams();_0x48f20c['environment']&&_0x51f094['set']('environment',String(_0x48f20c['environment']));const _0x2ba7b1=await fetch(API_BASE+'/api/automations'+(_0x51f094['toString']()?'?'+_0x51f094['toString']():''));if(!_0x2ba7b1['ok']){const _0x375a13=await _0x2ba7b1['json']()['catch'](()=>({}));throw new Error(_0x375a13['message']||_0x375a13['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x2ba7b1['statusText']);}return await _0x2ba7b1['json']();},async 'getAutomation'(_0x2d7d59){const _0x1ebcf2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2d7d59));if(!_0x1ebcf2['ok']){const _0x19e9e1=await _0x1ebcf2['json']()['catch'](()=>({}));throw new Error(_0x19e9e1['message']||_0x19e9e1['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x1ebcf2['statusText']);}return await _0x1ebcf2['json']();},async 'createAutomation'(_0x5b50a4){const _0x3be2ed=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5b50a4||{})});if(!_0x3be2ed['ok']){const _0x59f8a8=await _0x3be2ed['json']()['catch'](()=>({}));throw new Error(_0x59f8a8['message']||_0x59f8a8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3be2ed['statusText']);}return await _0x3be2ed['json']();},async 'updateAutomation'(_0x1c6ae4,_0x120f87){const _0x3cd18a=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1c6ae4),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x120f87||{})});if(!_0x3cd18a['ok']){const _0x2a5087=await _0x3cd18a['json']()['catch'](()=>({}));throw new Error(_0x2a5087['message']||_0x2a5087['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x3cd18a['statusText']);}return await _0x3cd18a['json']();},async 'deleteAutomation'(_0x56ee95){const _0x5489fd=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x56ee95),{'method':'DELETE'});if(!_0x5489fd['ok']){const _0x5368ba=await _0x5489fd['json']()['catch'](()=>({}));throw new Error(_0x5368ba['message']||_0x5368ba['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x5489fd['statusText']);}return await _0x5489fd['json']();},async 'triggerAutomation'(_0x5c54da){const _0x5b0357=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5c54da)+'/trigger',{'method':'POST'});if(!_0x5b0357['ok']){const _0x241483=await _0x5b0357['json']()['catch'](()=>({}));throw new Error(_0x241483['message']||_0x241483['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x5b0357['statusText']);}return await _0x5b0357['json']();},async 'setAutomationEnabled'(_0x382615,_0x3d24b6){const _0x2bf8d7=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x382615)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3d24b6})});if(!_0x2bf8d7['ok']){const _0xd8618d=await _0x2bf8d7['json']()['catch'](()=>({}));throw new Error(_0xd8618d['message']||_0xd8618d['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2bf8d7['statusText']);}return await _0x2bf8d7['json']();},async 'getAutomationHistory'(_0x39a68a,_0x1161ae=0x32){const _0x1890db=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x39a68a)+'/history?limit='+encodeURIComponent(String(_0x1161ae)));if(!_0x1890db['ok']){const _0x388456=await _0x1890db['json']()['catch'](()=>({}));throw new Error(_0x388456['message']||_0x388456['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x1890db['statusText']);}return await _0x1890db['json']();},async 'getTask'(_0x3a0d37,_0x4b7643={}){const _0x39d306=new URLSearchParams();if(_0x4b7643['include']){const _0x1e9975=Array['isArray'](_0x4b7643['include'])?_0x4b7643['include']['join'](','):String(_0x4b7643['include']);if(_0x1e9975)_0x39d306['set']('include',_0x1e9975);}const _0x12d060=await fetch(API_BASE+'/tasks/'+_0x3a0d37+(_0x39d306['toString']()?'?'+_0x39d306['toString']():''));if(!_0x12d060['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x12d060['statusText']);return await _0x12d060['json']();},async 'getTaskResults'(_0x2f873a){const _0x114d03=await fetch(API_BASE+'/tasks/'+_0x2f873a+'/results');if(!_0x114d03['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x114d03['statusText']);return await _0x114d03['json']();},async 'getTaskPatches'(_0x16145d){const _0xf0813f=await fetch(API_BASE+'/tasks/'+_0x16145d+'/patches');if(!_0xf0813f['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0xf0813f['statusText']);return await _0xf0813f['json']();},async 'getTaskAttachments'(_0x33d2d2){const _0x55bb8c=await fetch(API_BASE+'/tasks/'+_0x33d2d2+'/attachments');if(!_0x55bb8c['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x55bb8c['statusText']);return await _0x55bb8c['json']();},async 'uploadAttachments'(_0x32d34c,_0x295551){const _0x2f9a03=new FormData();for(const _0x1ea954 of _0x295551){_0x2f9a03['append']('attachments',_0x1ea954);}const _0x54c32a=await fetch(API_BASE+'/tasks/'+_0x32d34c+'/attachments',{'method':'POST','body':_0x2f9a03});if(!_0x54c32a['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x54c32a['statusText']);return await _0x54c32a['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2b61f3=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2b61f3['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2b61f3['json']();}catch(_0x2a84d9){return{'available':![],'reason':_0x2a84d9['message']};}},async 'generateTaskName'(_0x323359){try{const _0x5817ff=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x323359})});return await _0x5817ff['json']();}catch(_0x39384c){return{'success':![],'error':_0x39384c['message']};}},async 'createTask'(_0x48ea23){let _0x1b44c5,_0x1421d7={};if(_0x48ea23['files']&&_0x48ea23['files']['length']>0x0){const _0x24d1fa=new FormData();for(const [_0x47c7b6,_0x67bbb1]of Object['entries'](_0x48ea23)){if(_0x47c7b6!=='files'){if(_0x67bbb1==null)continue;typeof _0x67bbb1==='object'?_0x24d1fa['append'](_0x47c7b6,JSON['stringify'](_0x67bbb1)):_0x24d1fa['append'](_0x47c7b6,String(_0x67bbb1));}}for(const _0x47dc54 of _0x48ea23['files']){_0x24d1fa['append']('attachments',_0x47dc54);}_0x1b44c5=_0x24d1fa;}else _0x1421d7['Content-Type']='application/json',_0x1b44c5=JSON['stringify'](_0x48ea23);const _0x14405c=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x1421d7,'body':_0x1b44c5});if(!_0x14405c['ok']){const _0x2ca852=await _0x14405c['json'](),_0x33d30d=new Error(_0x2ca852['error']||'Failed\x20to\x20create\x20task:\x20'+_0x14405c['statusText']),{message:_0x198d28,..._0x4843ed}=_0x2ca852;Object['assign'](_0x33d30d,_0x4843ed);throw _0x33d30d;}return await _0x14405c['json']();},async 'createTestTask'(_0x2aee31){const _0x4e9e3b=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2aee31)});if(!_0x4e9e3b['ok']){const _0x235f80=await _0x4e9e3b['json']();throw new Error(_0x235f80['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x4e9e3b['statusText']);}return await _0x4e9e3b['json']();},async 'createEphemeralTest'(_0xa1f5e3){const _0x3db821=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa1f5e3)});if(!_0x3db821['ok']){const _0x230e60=await _0x3db821['json']();throw new Error(_0x230e60['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x3db821['statusText']);}return await _0x3db821['json']();},async 'createDeployTask'(_0x41674f){const _0x4d1622=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41674f)});if(!_0x4d1622['ok']){const _0x29d7bf=await _0x4d1622['json']();throw new Error(_0x29d7bf['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x4d1622['statusText']);}return await _0x4d1622['json']();},async 'getEnvironments'(){const _0x403bcb=await fetch(API_BASE+'/environments');if(!_0x403bcb['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x403bcb['statusText']);return await _0x403bcb['json']();},async 'getEnvironment'(_0x1c64ec){const _0x18ab32=await fetch(API_BASE+'/environments/'+_0x1c64ec);if(!_0x18ab32['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x18ab32['statusText']);return await _0x18ab32['json']();},async 'getEnvironmentRepoHistory'(_0x403e01,_0x1bab25,_0x55c85b={}){if(!_0x403e01||!_0x1bab25)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x4c8ea4=new URLSearchParams();if(_0x55c85b['limit'])_0x4c8ea4['set']('limit',String(_0x55c85b['limit']));if(_0x55c85b['offset'])_0x4c8ea4['set']('offset',String(_0x55c85b['offset']));if(_0x55c85b['search'])_0x4c8ea4['set']('search',String(_0x55c85b['search']));if(_0x55c85b['branch'])_0x4c8ea4['set']('branch',String(_0x55c85b['branch']));const _0x4c72b8=API_BASE+'/environments/'+encodeURIComponent(_0x403e01)+'/repos/'+encodeURIComponent(_0x1bab25)+'/git/history',_0xc81f1c=await fetch(''+_0x4c72b8+(_0x4c8ea4['toString']()?'?'+_0x4c8ea4['toString']():''));if(!_0xc81f1c['ok']){const _0x5cfd86=await _0xc81f1c['json']()['catch'](()=>({}));throw new Error(_0x5cfd86['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0xc81f1c['statusText']);}return await _0xc81f1c['json']();},async 'getEnvironmentRepoCommit'(_0x3179ca,_0x294101,_0x291ebb){if(!_0x3179ca||!_0x294101||!_0x291ebb)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x43320e=API_BASE+'/environments/'+encodeURIComponent(_0x3179ca)+'/repos/'+encodeURIComponent(_0x294101)+'/git/commits/'+encodeURIComponent(_0x291ebb),_0x65ec80=await fetch(_0x43320e);if(!_0x65ec80['ok']){const _0x584438=await _0x65ec80['json']()['catch'](()=>({}));throw new Error(_0x584438['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x65ec80['statusText']);}return await _0x65ec80['json']();},async 'getEnvironmentRepoBranches'(_0x17c0cc,_0x1a02ce){if(!_0x17c0cc||!_0x1a02ce)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2c1c2e=API_BASE+'/environments/'+encodeURIComponent(_0x17c0cc)+'/repos/'+encodeURIComponent(_0x1a02ce)+'/git/branches',_0x20add7=await fetch(_0x2c1c2e);if(!_0x20add7['ok']){const _0x2ece52=await _0x20add7['json']()['catch'](()=>({}));throw new Error(_0x2ece52['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x20add7['statusText']);}return await _0x20add7['json']();},async 'revertEnvironmentRepoCommit'(_0x69a5bf,_0x1f8141,_0x49ac8e,_0x42bdd4={}){if(!_0x69a5bf||!_0x1f8141||!_0x49ac8e)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x26c98b=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x69a5bf)+'/repos/'+encodeURIComponent(_0x1f8141)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x49ac8e,..._0x42bdd4})});if(!_0x26c98b['ok']){const _0x528d5a=await _0x26c98b['json']()['catch'](()=>({}));throw new Error(_0x528d5a['message']||_0x528d5a['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x26c98b['statusText']);}return await _0x26c98b['json']();},async 'getTemplates'(_0x296a64={}){const _0x43a4a1=new URLSearchParams();if(_0x296a64['include']){const _0x35c6a0=Array['isArray'](_0x296a64['include'])?_0x296a64['include']['join'](','):String(_0x296a64['include']);if(_0x35c6a0)_0x43a4a1['set']('include',_0x35c6a0);}const _0xe8d4c1=await fetch(API_BASE+'/templates'+(_0x43a4a1['toString']()?'?'+_0x43a4a1['toString']():''));if(!_0xe8d4c1['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0xe8d4c1['statusText']);return await _0xe8d4c1['json']();},async 'getTemplatesForEnvironment'(_0x22dad8,_0x523628={}){if(!_0x22dad8)throw new Error('Environment\x20name\x20is\x20required');const _0x8521ff=new URLSearchParams();if(_0x523628['include']){const _0x3f1894=Array['isArray'](_0x523628['include'])?_0x523628['include']['join'](','):String(_0x523628['include']);if(_0x3f1894)_0x8521ff['set']('include',_0x3f1894);}const _0x5dfab9=await fetch(API_BASE+'/templates/'+_0x22dad8+(_0x8521ff['toString']()?'?'+_0x8521ff['toString']():''));if(!_0x5dfab9['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x22dad8+':\x20'+_0x5dfab9['statusText']);return await _0x5dfab9['json']();},async 'getTemplate'(_0x5840c6,_0x41f266,_0xd1e8e8={}){if(!_0x5840c6||!_0x41f266)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x582c1d=new URLSearchParams();if(_0xd1e8e8['include']){const _0x1a15f3=Array['isArray'](_0xd1e8e8['include'])?_0xd1e8e8['include']['join'](','):String(_0xd1e8e8['include']);if(_0x1a15f3)_0x582c1d['set']('include',_0x1a15f3);}const _0x2bbc85=await fetch(API_BASE+'/templates/'+_0x5840c6+'/'+_0x41f266+(_0x582c1d['toString']()?'?'+_0x582c1d['toString']():''));if(!_0x2bbc85['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x2bbc85['statusText']);return await _0x2bbc85['json']();},async 'getTaskLogs'(_0x1bab8c,_0x529fa6={}){if(!_0x1bab8c)throw new Error('Task\x20ID\x20is\x20required');const _0x3044ed=new URLSearchParams();_0x529fa6['tail']&&_0x3044ed['set']('tail',String(_0x529fa6['tail']));const _0x3c86cd=await fetch(API_BASE+'/tasks/'+_0x1bab8c+'/logs'+(_0x3044ed['toString']()?'?'+_0x3044ed['toString']():''));if(!_0x3c86cd['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x3c86cd['statusText']);return await _0x3c86cd['text']();},async 'getContainers'(){const _0x188030=await fetch(API_BASE+'/containers');if(!_0x188030['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x188030['statusText']);return await _0x188030['json']();},async 'getContainer'(_0x44ca47){const _0x596c9b=await fetch(API_BASE+'/containers/'+_0x44ca47);if(!_0x596c9b['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x596c9b['statusText']);return await _0x596c9b['json']();},async 'startInteractiveContainer'(_0x56535e){const _0x52059f=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x56535e)});if(!_0x52059f['ok']){const _0x463f34=await _0x52059f['json']()['catch'](()=>({}));throw new Error(_0x463f34['message']||'Failed\x20to\x20start\x20container:\x20'+_0x52059f['statusText']);}return await _0x52059f['json']();},async 'startContainerCodeServer'(_0xab3303,_0x24d467={}){if(!_0xab3303)throw new Error('Container\x20ID\x20is\x20required');const _0x3eae74=new URLSearchParams();_0x24d467['theme']&&_0x3eae74['set']('theme',_0x24d467['theme']);const _0x3d9872=await fetch(API_BASE+'/containers/'+_0xab3303+'/code-server'+(_0x3eae74['toString']()?'?'+_0x3eae74['toString']():'')),_0x4896ec=await _0x3d9872['json']()['catch'](()=>({}));if(!_0x3d9872['ok'])throw new Error(_0x4896ec['message']||_0x4896ec['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3d9872['statusText']);return _0x4896ec;},async 'stopContainer'(_0x59d1b5){const _0x486c11=await fetch(API_BASE+'/containers/'+_0x59d1b5,{'method':'DELETE'});if(!_0x486c11['ok']){const _0x36d8c9=await _0x486c11['json']()['catch'](()=>({}));throw new Error(_0x36d8c9['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x486c11['statusText']);}return await _0x486c11['json']();},async 'stopTask'(_0x280648){if(!_0x280648)throw new Error('Task\x20ID\x20is\x20required');const _0x20b6d0=await fetch(API_BASE+'/tasks/'+_0x280648+'/stop',{'method':'POST'});if(!_0x20b6d0['ok']){const _0x55bf1f=await _0x20b6d0['json']()['catch'](()=>({}));throw new Error(_0x55bf1f['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x20b6d0['statusText']);}return await _0x20b6d0['json']();},async 'interruptTask'(_0x547696){if(!_0x547696)throw new Error('Task\x20ID\x20is\x20required');const _0x53db8c=await fetch(API_BASE+'/tasks/'+_0x547696+'/interrupt',{'method':'POST'});if(!_0x53db8c['ok']){const _0x2f4b6a=await _0x53db8c['json']()['catch'](()=>({}));throw new Error(_0x2f4b6a['error']||_0x2f4b6a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x53db8c['statusText']);}return await _0x53db8c['json']();},async 'startTask'(_0x5d4ff3){if(!_0x5d4ff3)throw new Error('Task\x20ID\x20is\x20required');const _0x291d17=await fetch(API_BASE+'/tasks/'+_0x5d4ff3+'/start',{'method':'POST'});if(!_0x291d17['ok']){const _0x151745=await _0x291d17['json']()['catch'](()=>({}));throw new Error(_0x151745['error']||'Failed\x20to\x20start\x20task:\x20'+_0x291d17['statusText']);}return await _0x291d17['json']();},async 'deleteTask'(_0x5b4bb3){if(!_0x5b4bb3)throw new Error('Task\x20ID\x20is\x20required');const _0x4ee838=await fetch(API_BASE+'/tasks/'+_0x5b4bb3,{'method':'DELETE'});if(!_0x4ee838['ok']){const _0x37ccc9=await _0x4ee838['json']()['catch'](()=>({}));throw new Error(_0x37ccc9['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x4ee838['statusText']);}return await _0x4ee838['json']();},async 'refreshTasksFromDisk'(){const _0x4fb64f=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x4fb64f['ok']){const _0x1e1535=await _0x4fb64f['json']()['catch'](()=>({}));throw new Error(_0x1e1535['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x4fb64f['statusText']);}return await _0x4fb64f['json']();},async 'approveTask'(_0x59551d,_0x32f016={}){if(!_0x59551d)throw new Error('Task\x20ID\x20is\x20required');const _0x1e467b={'commit_message':_0x32f016['commit_message']||'','pull':_0x32f016['pull']??![],'push':_0x32f016['push']??![],'conflict_strategy':_0x32f016['conflict_strategy']||'rebase'};_0x32f016['new_branch']&&(_0x1e467b['new_branch']=_0x32f016['new_branch']);const _0x5dce28=await fetch(API_BASE+'/tasks/'+_0x59551d+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e467b)});if(!_0x5dce28['ok']){const _0x3022e7=await _0x5dce28['json']()['catch'](()=>({}));let _0x10c834=_0x3022e7['error']||_0x3022e7['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x5dce28['statusText'];if(_0x3022e7['results']&&Array['isArray'](_0x3022e7['results'])){const _0x1443fa=_0x3022e7['results']['filter'](_0x30936a=>!_0x30936a['success']&&_0x30936a['error']);_0x1443fa['length']>0x0&&(_0x10c834=_0x1443fa[0x0]['error']);}const _0x5aa63c=new Error(_0x10c834);_0x5aa63c['hasConflicts']=_0x3022e7['results']?.['some'](_0xc91445=>_0xc91445['conflict'])||![];throw _0x5aa63c;}return await _0x5dce28['json']();},async 'getPullRequestInfo'(_0xe759a6){if(!_0xe759a6)throw new Error('Task\x20ID\x20is\x20required');const _0x324bb7=await fetch(API_BASE+'/tasks/'+_0xe759a6+'/pull-request-info');if(!_0x324bb7['ok']){const _0x3ae602=await _0x324bb7['json']()['catch'](()=>({}));throw new Error(_0x3ae602['error']||_0x3ae602['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x324bb7['statusText']);}return await _0x324bb7['json']();},async 'createPullRequests'(_0x5b3591,_0x3f6a61){if(!_0x5b3591)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f6a61||!Array['isArray'](_0x3f6a61))throw new Error('repos\x20array\x20is\x20required');const _0x735233=await fetch(API_BASE+'/tasks/'+_0x5b3591+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3f6a61})});if(!_0x735233['ok']){const _0x5e23b9=await _0x735233['json']()['catch'](()=>({}));let _0x3824d0=_0x5e23b9['error']||_0x5e23b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x735233['statusText'];if(_0x5e23b9['results']&&Array['isArray'](_0x5e23b9['results'])){const _0x5ae926=_0x5e23b9['results']['filter'](_0x3a0d7a=>!_0x3a0d7a['success']&&_0x3a0d7a['error']);_0x5ae926['length']>0x0&&(_0x3824d0=_0x5ae926[0x0]['error']);}throw new Error(_0x3824d0);}return await _0x735233['json']();},async 'syncRepos'(_0x3152eb){if(!_0x3152eb)throw new Error('Task\x20ID\x20is\x20required');const _0x2ae0c0=await fetch(API_BASE+'/tasks/'+_0x3152eb+'/sync-repos',{'method':'POST'});if(!_0x2ae0c0['ok']){const _0x4d8f99=await _0x2ae0c0['json']()['catch'](()=>({}));throw new Error(_0x4d8f99['error']||_0x4d8f99['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2ae0c0['statusText']);}return await _0x2ae0c0['json']();},async 'getIbmiSyncInfo'(_0x2062ba){if(!_0x2062ba)throw new Error('Task\x20ID\x20is\x20required');const _0x3a1bbf=await fetch(API_BASE+'/tasks/'+_0x2062ba+'/ibmi-sync-info');if(!_0x3a1bbf['ok']){const _0x50df7c=await _0x3a1bbf['json']()['catch'](()=>({}));throw new Error(_0x50df7c['error']||_0x50df7c['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x3a1bbf['json']();},async 'getSyncFiles'(_0x2567a0){if(!_0x2567a0)throw new Error('Task\x20ID\x20is\x20required');const _0x407497=await fetch(API_BASE+'/tasks/'+_0x2567a0+'/sync-to-ibmi/files');if(!_0x407497['ok']){const _0x499cff=await _0x407497['json']()['catch'](()=>({}));throw new Error(_0x499cff['error']||_0x499cff['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x407497['json']();},async 'syncToIbmi'(_0xf31cb5,_0x583f69,_0x4693f=null,_0x336454=null,_0x29a3d7=null){if(!_0xf31cb5)throw new Error('Task\x20ID\x20is\x20required');const _0x24a9b8={'library':_0x583f69};if(_0x4693f)_0x24a9b8['user']=_0x4693f;if(_0x336454)_0x24a9b8['password']=_0x336454;if(_0x29a3d7)_0x24a9b8['files']=_0x29a3d7;const _0x19d8b2=await fetch(API_BASE+'/tasks/'+_0xf31cb5+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x24a9b8)});if(!_0x19d8b2['ok']){const _0xbd17dd=await _0x19d8b2['json']()['catch'](()=>({}));throw new Error(_0xbd17dd['error']||_0xbd17dd['message']||'Sync\x20failed');}return await _0x19d8b2['json']();},async 'getIbmiSyncLog'(_0x4a0aea){if(!_0x4a0aea)throw new Error('Task\x20ID\x20is\x20required');const _0x3f7528=await fetch(API_BASE+'/tasks/'+_0x4a0aea+'/ibmi-sync-log');if(!_0x3f7528['ok']){const _0x138710=await _0x3f7528['json']()['catch'](()=>({}));throw new Error(_0x138710['error']||_0x138710['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x3f7528['json']();},async 'pullChanges'(_0x8acb91){if(!_0x8acb91)throw new Error('Task\x20ID\x20is\x20required');const _0x6fdb18=await fetch(API_BASE+'/tasks/'+_0x8acb91+'/pull-changes',{'method':'POST'});if(!_0x6fdb18['ok']){const _0x217413=await _0x6fdb18['json']()['catch'](()=>({}));throw new Error(_0x217413['error']||_0x217413['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x6fdb18['statusText']);}return await _0x6fdb18['json']();},async 'readFile'(_0x4c43fc,_0x137832){if(!_0x4c43fc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x137832)throw new Error('File\x20path\x20is\x20required');const _0x595414=await fetch(API_BASE+'/tasks/'+_0x4c43fc+'/files?path='+encodeURIComponent(_0x137832));if(!_0x595414['ok']){const _0x4441c8=await _0x595414['json']()['catch'](()=>({}));throw new Error(_0x4441c8['error']||_0x4441c8['message']||'Failed\x20to\x20read\x20file:\x20'+_0x595414['statusText']);}return await _0x595414['json']();},'getTaskFileDownloadUrl'(_0x25f8dc,_0x43de12){if(!_0x25f8dc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x43de12)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x25f8dc+'/files/download?path='+encodeURIComponent(_0x43de12);},async 'writeFile'(_0x3dd1b0,_0x258053,_0x37c151){if(!_0x3dd1b0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x258053)throw new Error('File\x20path\x20is\x20required');if(_0x37c151===undefined)throw new Error('Content\x20is\x20required');const _0x35b566=await fetch(API_BASE+'/tasks/'+_0x3dd1b0+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x258053,'content':_0x37c151})});if(!_0x35b566['ok']){const _0x521f52=await _0x35b566['json']()['catch'](()=>({}));throw new Error(_0x521f52['error']||_0x521f52['message']||'Failed\x20to\x20write\x20file:\x20'+_0x35b566['statusText']);}return await _0x35b566['json']();},async 'uploadTaskFiles'(_0x467daa,_0x1fdaa9,_0x321027){if(!_0x467daa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1fdaa9)throw new Error('Target\x20directory\x20is\x20required');if(!_0x321027||_0x321027['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x44587b=new FormData();_0x44587b['append']('targetDir',_0x1fdaa9);for(const _0x44268a of _0x321027){_0x44587b['append']('files',_0x44268a,_0x44268a['name']);}const _0x2392a8=await fetch(API_BASE+'/tasks/'+_0x467daa+'/files/upload',{'method':'POST','body':_0x44587b});if(!_0x2392a8['ok']){const _0x4ef3d8=await _0x2392a8['json']()['catch'](()=>({}));throw new Error(_0x4ef3d8['error']||_0x4ef3d8['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x2392a8['statusText']);}return await _0x2392a8['json']();},async 'createDirectory'(_0x1e1e5d,_0x4642b2){if(!_0x1e1e5d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4642b2)throw new Error('Directory\x20path\x20is\x20required');const _0x1facd5=await fetch(API_BASE+'/tasks/'+_0x1e1e5d+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4642b2})});if(!_0x1facd5['ok']){const _0xdd7cca=await _0x1facd5['json']()['catch'](()=>({}));throw new Error(_0xdd7cca['error']||_0xdd7cca['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x1facd5['statusText']);}return await _0x1facd5['json']();},async 'renamePath'(_0x16ecfa,_0x181a43,_0x5c7186){if(!_0x16ecfa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x181a43)throw new Error('Source\x20path\x20is\x20required');if(!_0x5c7186)throw new Error('Destination\x20path\x20is\x20required');const _0x3920fb=await fetch(API_BASE+'/tasks/'+_0x16ecfa+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x181a43,'newPath':_0x5c7186})});if(!_0x3920fb['ok']){const _0x3e142e=await _0x3920fb['json']()['catch'](()=>({}));throw new Error(_0x3e142e['error']||_0x3e142e['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x3920fb['statusText']);}return await _0x3920fb['json']();},async 'deleteFile'(_0xee2787,_0x1374bc){if(!_0xee2787)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1374bc)throw new Error('File\x20path\x20is\x20required');const _0x5c3171=await fetch(API_BASE+'/tasks/'+_0xee2787+'/files?path='+encodeURIComponent(_0x1374bc),{'method':'DELETE'});if(!_0x5c3171['ok']){const _0x466448=await _0x5c3171['json']()['catch'](()=>({}));throw new Error(_0x466448['error']||_0x466448['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5c3171['statusText']);}return await _0x5c3171['json']();},async 'deleteDirectory'(_0x59df9f,_0x312c9d){if(!_0x59df9f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x312c9d)throw new Error('Directory\x20path\x20is\x20required');const _0x28702e=await fetch(API_BASE+'/tasks/'+_0x59df9f+'/files/directory?path='+encodeURIComponent(_0x312c9d),{'method':'DELETE'});if(!_0x28702e['ok']){const _0x3b5926=await _0x28702e['json']()['catch'](()=>({}));throw new Error(_0x3b5926['error']||_0x3b5926['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x28702e['statusText']);}return await _0x28702e['json']();},async 'discardFile'(_0x328e85,_0x2d24dc,_0x24afee){if(!_0x328e85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2d24dc)throw new Error('File\x20path\x20is\x20required');if(!_0x24afee)throw new Error('Repository\x20path\x20is\x20required');const _0xc3d828=await fetch(API_BASE+'/tasks/'+_0x328e85+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x2d24dc,'repoPath':_0x24afee})});if(!_0xc3d828['ok']){const _0x54d44a=await _0xc3d828['json']()['catch'](()=>({}));throw new Error(_0x54d44a['error']||_0x54d44a['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0xc3d828['statusText']);}return await _0xc3d828['json']();},async 'followUpTask'(_0x489994,_0x4e096c={}){if(!_0x489994)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e096c['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x6d6213,_0x3c04d0={};if(_0x4e096c['files']&&_0x4e096c['files']['length']>0x0){const _0x61cfa=new FormData();_0x61cfa['append']('instructions',_0x4e096c['instructions']);for(const _0x305b9f of _0x4e096c['files']){_0x61cfa['append']('attachments',_0x305b9f);}_0x6d6213=_0x61cfa;}else _0x3c04d0['Content-Type']='application/json',_0x6d6213=JSON['stringify']({'instructions':_0x4e096c['instructions']});const _0x12589e=await fetch(API_BASE+'/tasks/'+_0x489994+'/follow-up',{'method':'POST','headers':_0x3c04d0,'body':_0x6d6213});if(!_0x12589e['ok']){const _0x13ebc1=await _0x12589e['json']()['catch'](()=>({}));throw new Error(_0x13ebc1['error']||_0x13ebc1['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x12589e['statusText']);}return await _0x12589e['json']();},async 'getTaskRewindPoints'(_0x476d9d){if(!_0x476d9d)throw new Error('Task\x20ID\x20is\x20required');const _0x2bb8cf=await fetch(API_BASE+'/tasks/'+_0x476d9d+'/rewind-points');if(!_0x2bb8cf['ok']){const _0x333bb3=await _0x2bb8cf['json']()['catch'](()=>({}));throw new Error(_0x333bb3['error']||_0x333bb3['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x2bb8cf['statusText']);}return await _0x2bb8cf['json']();},async 'rewindTask'(_0xa38cf8,_0x45121d={}){if(!_0xa38cf8)throw new Error('Task\x20ID\x20is\x20required');const _0x461fa5=Number['isInteger'](_0x45121d['targetFollowUpCount'])?_0x45121d['targetFollowUpCount']:0x0,_0x20d2e9={'targetFollowUpCount':_0x461fa5};typeof _0x45121d['instructions']==='string'&&_0x45121d['instructions']['trim']()&&(_0x20d2e9['instructions']=_0x45121d['instructions']['trim']());typeof _0x45121d['rewindFiles']==='boolean'&&(_0x20d2e9['rewindFiles']=_0x45121d['rewindFiles']);const _0x326d1c=await fetch(API_BASE+'/tasks/'+_0xa38cf8+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20d2e9)});if(!_0x326d1c['ok']){const _0x475d58=await _0x326d1c['json']()['catch'](()=>({}));throw new Error(_0x475d58['error']||_0x475d58['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x326d1c['statusText']);}return await _0x326d1c['json']();},async 'login'(_0x49bdca,_0x4d8484){const _0x25b26a=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x49bdca,'password':_0x4d8484})});if(!_0x25b26a['ok']){const _0x54b255=await _0x25b26a['json']();throw new Error(_0x54b255['message']||'Login\x20failed');}return await _0x25b26a['json']();},async 'logout'(){const _0x55d935=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x55d935['ok']){const _0x127bf9=await _0x55d935['json']();throw new Error(_0x127bf9['message']||'Logout\x20failed');}return await _0x55d935['json']();},async 'getCurrentUser'(){const _0x520629=await fetch(API_BASE+'/auth/me');if(!_0x520629['ok'])throw new Error('Not\x20authenticated');const _0x4563ca=await _0x520629['json']();return _0x4563ca['user'];},async 'getRolesInfo'(){const _0x2a5157=await fetch(API_BASE+'/users/roles');if(!_0x2a5157['ok']){const _0x429316=await _0x2a5157['json']();throw new Error(_0x429316['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2a5157['json']();},async 'getUsers'(){const _0x50bbb0=await fetch(API_BASE+'/users');if(!_0x50bbb0['ok']){const _0x10a914=await _0x50bbb0['json']();throw new Error(_0x10a914['message']||'Failed\x20to\x20get\x20users');}return await _0x50bbb0['json']();},async 'getUser'(_0x7a8272){const _0xc15953=await fetch(API_BASE+'/users/'+_0x7a8272);if(!_0xc15953['ok']){const _0x559d58=await _0xc15953['json']();throw new Error(_0x559d58['message']||'Failed\x20to\x20get\x20user');}return await _0xc15953['json']();},async 'createUser'(_0x38bf16){const _0x121814=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x38bf16)});if(!_0x121814['ok']){const _0x4e6ffc=await _0x121814['json']();throw new Error(_0x4e6ffc['message']||'Failed\x20to\x20create\x20user');}return await _0x121814['json']();},async 'updateUser'(_0x301578,_0x4e163c){const _0xc48e73=await fetch(API_BASE+'/users/'+_0x301578,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e163c)});if(!_0xc48e73['ok']){const _0x4d9c8b=await _0xc48e73['json']();throw new Error(_0x4d9c8b['message']||'Failed\x20to\x20update\x20user');}return await _0xc48e73['json']();},async 'deleteUser'(_0x5b0ede){const _0x4ef0fa=await fetch(API_BASE+'/users/'+_0x5b0ede,{'method':'DELETE'});if(!_0x4ef0fa['ok']){const _0x3d3ef8=await _0x4ef0fa['json']();throw new Error(_0x3d3ef8['message']||'Failed\x20to\x20delete\x20user');}return await _0x4ef0fa['json']();},async 'stopAllContainers'(){const _0xf45581=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x318669=await _0xf45581['json']()['catch'](()=>({}));if(!_0xf45581['ok'])throw new Error(_0x318669['message']||_0x318669['error']||'Failed\x20to\x20stop\x20containers');return _0x318669;},async 'removeStoppedContainers'(){const _0x1e0c43=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0xa1316a=await _0x1e0c43['json']()['catch'](()=>({}));if(!_0x1e0c43['ok'])throw new Error(_0xa1316a['message']||_0xa1316a['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0xa1316a;},async 'pruneDockerResources'(){const _0x2fcb94=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x4ed6fe=await _0x2fcb94['json']()['catch'](()=>({}));if(!_0x2fcb94['ok'])throw new Error(_0x4ed6fe['message']||_0x4ed6fe['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x4ed6fe;},async 'getUpdateSettings'(){const _0x38e107=await fetch(API_BASE+'/health/update-settings'),_0x3e423b=await _0x38e107['json']()['catch'](()=>({}));if(!_0x38e107['ok'])throw new Error(_0x3e423b['message']||_0x3e423b['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x3e423b;},async 'applyServerUpdate'(_0x3974a1){const _0x4f833e=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x3974a1})}),_0x154aec=await _0x4f833e['json']()['catch'](()=>({}));if(!_0x4f833e['ok']){const _0x2fab46=new Error(_0x154aec['message']||_0x154aec['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x154aec['output']!==undefined)_0x2fab46['output']=_0x154aec['output'];if(_0x154aec['error']!==undefined)_0x2fab46['commandError']=_0x154aec['error'];throw _0x2fab46;}return _0x154aec;},async 'restartServer'(){const _0x7d61c5=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x1420c1=await _0x7d61c5['json']()['catch'](()=>({}));if(!_0x7d61c5['ok'])throw new Error(_0x1420c1['message']||_0x1420c1['error']||'Failed\x20to\x20restart\x20server');return _0x1420c1;},async 'createPasswordToken'(_0x376cff,_0x550e4c='setup',_0x50198c=![]){const _0x373348=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x376cff,'type':_0x550e4c,'sendEmail':_0x50198c})});if(!_0x373348['ok']){const _0x3e9059=await _0x373348['json']();throw new Error(_0x3e9059['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x373348['json']();},async 'getEmailConfig'(){const _0x27bc3e=await fetch(API_BASE+'/password/email-config');if(!_0x27bc3e['ok']){const _0x14b94c=await _0x27bc3e['json']();throw new Error(_0x14b94c['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x27bc3e['json']();},async 'updateTaskName'(_0x24798a,_0xdbbdbb){const _0x330321=await fetch(API_BASE+'/tasks/'+_0x24798a,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xdbbdbb})});if(!_0x330321['ok']){const _0x28d50a=await _0x330321['json']();throw new Error(_0x28d50a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x330321['json']();},async 'pinTask'(_0x2307b8,_0x2646e7,_0x5c5d2a=null){if(!_0x2307b8)throw new Error('Task\x20ID\x20is\x20required');const _0x1ff2c2={'pinned':_0x2646e7};_0x5c5d2a&&_0x5c5d2a['length']>0x0&&(_0x1ff2c2['additionalTaskIds']=_0x5c5d2a);const _0x4ea7cf=await fetch(API_BASE+'/tasks/'+_0x2307b8+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1ff2c2)});if(!_0x4ea7cf['ok']){const _0x2814c4=await _0x4ea7cf['json']();throw new Error(_0x2814c4['error']||'Failed\x20to\x20pin\x20task');}return await _0x4ea7cf['json']();},async 'setTaskWinner'(_0xffd0c2,_0x585fef,_0xe2fa1c=[]){if(!_0xffd0c2)throw new Error('Task\x20ID\x20is\x20required');const _0x59cc95=await fetch(API_BASE+'/tasks/'+_0xffd0c2+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x585fef,'siblings':_0xe2fa1c})});if(!_0x59cc95['ok']){const _0x386605=await _0x59cc95['json']();throw new Error(_0x386605['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x59cc95['json']();},async 'setTaskLoser'(_0x2ee4a5,_0x540075){if(!_0x2ee4a5)throw new Error('Task\x20ID\x20is\x20required');const _0x5dbe7a=await fetch(API_BASE+'/tasks/'+_0x2ee4a5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x540075})});if(!_0x5dbe7a['ok']){const _0xccf02d=await _0x5dbe7a['json']();throw new Error(_0xccf02d['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x5dbe7a['json']();},async 'createTaskGroup'(_0x40b237){const _0x439131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x40b237)});if(!_0x439131['ok']){const _0x3e914f=await _0x439131['json']();throw new Error(_0x3e914f['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x439131['json']();},async 'getTaskGroups'(_0x173153={}){const _0x599943=new URLSearchParams();if(_0x173153['userId'])_0x599943['set']('userId',String(_0x173153['userId']));if(_0x173153['status'])_0x599943['set']('status',String(_0x173153['status']));if(_0x173153['limit'])_0x599943['set']('limit',String(_0x173153['limit']));const _0x1fbe60=API_BASE+'/tasks/groups'+(_0x599943['toString']()?'?'+_0x599943['toString']():''),_0x3178f8=await fetch(_0x1fbe60);if(!_0x3178f8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x3178f8['json']();},async 'getTaskGroup'(_0x36e89d){const _0x2d3a28=await fetch(API_BASE+'/tasks/groups/'+_0x36e89d);if(!_0x2d3a28['ok']){const _0x89dbbf=await _0x2d3a28['json']();throw new Error(_0x89dbbf['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x2d3a28['json']();},async 'updateTaskGroup'(_0xd750b3,_0x3b1fe6,_0x3985da){const _0x1acbc1=await fetch(API_BASE+'/tasks/'+_0xd750b3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x3b1fe6,'groupIndex':_0x3985da})});if(!_0x1acbc1['ok']){const _0x2118a1=await _0x1acbc1['json']();throw new Error(_0x2118a1['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x1acbc1['json']();},async 'removeTaskFromGroup'(_0x5f03f3){return this['updateTaskGroup'](_0x5f03f3,null,null);},async 'deleteTaskGroup'(_0x5b6eef,_0x290895=![]){const _0x27ff31=_0x290895?'?deleteTasks=true':'',_0x32b748=await fetch(API_BASE+'/tasks/groups/'+_0x5b6eef+_0x27ff31,{'method':'DELETE'});if(!_0x32b748['ok']){const _0x37549d=await _0x32b748['json']();throw new Error(_0x37549d['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x31825f,_0x3d387b){const _0x4412fa=await fetch(API_BASE+'/tasks/groups/'+_0x31825f+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x3d387b})});if(!_0x4412fa['ok']){const _0x2783fd=await _0x4412fa['json']();throw new Error(_0x2783fd['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x4412fa['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3b06b0){if(!_0x3b06b0)throw new Error('Task\x20ID\x20is\x20required');const _0x5256fc=await fetch(API_BASE+'/tasks/'+_0x3b06b0+'/comments');if(!_0x5256fc['ok']){const _0x4f68f8=await _0x5256fc['json']()['catch'](()=>({}));throw new Error(_0x4f68f8['error']||'Failed\x20to\x20get\x20comments');}return await _0x5256fc['json']();},async 'addComment'(_0x30c6c1,_0x2e302d){if(!_0x30c6c1)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2e302d)throw new Error('Comment\x20content\x20is\x20required');const _0x18248d=await fetch(API_BASE+'/tasks/'+_0x30c6c1+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2e302d})});if(!_0x18248d['ok']){const _0x20255c=await _0x18248d['json']()['catch'](()=>({}));throw new Error(_0x20255c['error']||'Failed\x20to\x20add\x20comment');}return await _0x18248d['json']();},async 'updateComment'(_0x4ff69f,_0x5833fb,_0x355563){if(!_0x4ff69f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5833fb)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x355563)throw new Error('Comment\x20content\x20is\x20required');const _0x766f48=await fetch(API_BASE+'/tasks/'+_0x4ff69f+'/comments/'+_0x5833fb,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x355563})});if(!_0x766f48['ok']){const _0x25c95e=await _0x766f48['json']()['catch'](()=>({}));throw new Error(_0x25c95e['error']||'Failed\x20to\x20update\x20comment');}return await _0x766f48['json']();},async 'deleteComment'(_0x16f43f,_0x1c08ef){if(!_0x16f43f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c08ef)throw new Error('Comment\x20ID\x20is\x20required');const _0x595b9a=await fetch(API_BASE+'/tasks/'+_0x16f43f+'/comments/'+_0x1c08ef,{'method':'DELETE'});if(!_0x595b9a['ok']){const _0x3e97c5=await _0x595b9a['json']()['catch'](()=>({}));throw new Error(_0x3e97c5['error']||'Failed\x20to\x20delete\x20comment');}return await _0x595b9a['json']();},async 'createObjective'(_0x495f7d){const _0x548e6b={'objective':!![],'name':_0x495f7d['name']||'','environment':_0x495f7d['environment']||null,'agents':_0x495f7d['agents']||[],'branches':_0x495f7d['branches']||{},'isPinned':_0x495f7d['isPinned']||![],'parentObjectiveId':_0x495f7d['parentObjectiveId']||null,'env_vars':_0x495f7d['envVars']||{},'parameters':{'instructions':_0x495f7d['instructions']||''},'files':_0x495f7d['files']||[],'jira':_0x495f7d['jira']||null};return this['createTask'](_0x548e6b);},async 'updateObjective'(_0x51ebdd,_0x545f35,_0x450ba9=[],_0x3108e3=[]){let _0x242aa5,_0x2590ee={};const _0x20beec={..._0x545f35};_0x3108e3&&_0x3108e3['length']>0x0&&(_0x20beec['removeAttachments']=_0x3108e3);if(_0x450ba9&&_0x450ba9['length']>0x0){const _0x481ec4=new FormData();for(const [_0x52defd,_0x1cf4b3]of Object['entries'](_0x20beec)){if(_0x1cf4b3==null)continue;typeof _0x1cf4b3==='object'?_0x481ec4['append'](_0x52defd,JSON['stringify'](_0x1cf4b3)):_0x481ec4['append'](_0x52defd,String(_0x1cf4b3));}for(const _0x22718f of _0x450ba9){_0x481ec4['append']('attachments',_0x22718f);}_0x242aa5=_0x481ec4;}else _0x2590ee['Content-Type']='application/json',_0x242aa5=JSON['stringify'](_0x20beec);const _0x532bdb=await fetch(API_BASE+'/tasks/'+_0x51ebdd,{'method':'PATCH','headers':_0x2590ee,'body':_0x242aa5});if(!_0x532bdb['ok']){const _0x8aad82=await _0x532bdb['json']();throw new Error(_0x8aad82['error']||'Failed\x20to\x20update\x20objective');}return await _0x532bdb['json']();},async 'deleteObjective'(_0x17dc75){return this['deleteTask'](_0x17dc75);},async 'launchObjective'(_0x1613b0,_0x2631a7={}){const _0x51bfe3=await fetch(API_BASE+'/tasks/'+_0x1613b0+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2631a7)});if(!_0x51bfe3['ok']){const _0x48dfed=await _0x51bfe3['json']();throw new Error(_0x48dfed['error']||'Failed\x20to\x20launch\x20objective');}return await _0x51bfe3['json']();},async 'getObjectiveAttachments'(_0x89bf12){return this['getTaskAttachments'](_0x89bf12);},async 'createJudgeTask'({environment:_0x28a19e,judgeAgent:_0x4ef39a,groupId:_0x3e6094,taskIds:_0x4e8874,judgeCustomInstructions:_0x3b4f93,isPinned:_0x4eaaa2}){const _0x78fb42=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x28a19e,'judgeAgent':_0x4ef39a,'groupId':_0x3e6094,'taskIds':_0x4e8874,'judgeCustomInstructions':_0x3b4f93,'isPinned':_0x4eaaa2})});if(!_0x78fb42['ok']){const _0x119e8a=await _0x78fb42['json']();throw new Error(_0x119e8a['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x78fb42['json']();},async 'getJudgeTasks'(_0x5b6d7e){const _0x4ae575=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5b6d7e));if(!_0x4ae575['ok']){const _0x3f77f8=await _0x4ae575['json']();throw new Error(_0x3f77f8['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4ae575['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1e90cb,_0x552549,_0x30579b=''){const _0x2fbce3=await fetch(API_BASE+'/tasks/'+_0x1e90cb+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x552549,'customPreamble':_0x30579b})});if(!_0x2fbce3['ok']){const _0x371f34=await _0x2fbce3['json']();throw new Error(_0x371f34['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x2fbce3['json']();},async 'getJiraConfig'(){const _0x4955d6=await fetch(API_BASE+'/jira/config');if(!_0x4955d6['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4955d6['json']();},async 'getJiraIssue'(_0x201b6e){const _0x18ba73=await fetch(API_BASE+'/jira/issues/'+_0x201b6e);if(!_0x18ba73['ok']){const _0x41ee87=await _0x18ba73['json']()['catch'](()=>({}));throw new Error(_0x41ee87['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x18ba73['statusText']);}return await _0x18ba73['json']();},async 'searchJiraIssues'(_0x3173bf,_0x417b9c=0x14){const _0x471bbf=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x3173bf,'maxResults':_0x417b9c})});if(!_0x471bbf['ok']){const _0x57e5d4=await _0x471bbf['json']()['catch'](()=>({}));throw new Error(_0x57e5d4['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x471bbf['statusText']);}return await _0x471bbf['json']();},async 'postJiraComment'(_0x49a07f,_0x5e15d9){const _0x1f2193=await fetch(API_BASE+'/jira/issues/'+_0x49a07f+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x5e15d9})});if(!_0x1f2193['ok']){const _0x5ebf41=await _0x1f2193['json']()['catch'](()=>({}));throw new Error(_0x5ebf41['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x1f2193['statusText']);}return await _0x1f2193['json']();},async 'getJiraComments'(_0xc9c761){const _0x33ad20=await fetch(API_BASE+'/jira/issues/'+_0xc9c761+'/comments');if(!_0x33ad20['ok']){const _0x21f74d=await _0x33ad20['json']()['catch'](()=>({}));throw new Error(_0x21f74d['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x33ad20['statusText']);}return await _0x33ad20['json']();},async 'promptParameter'({environment:_0x2b2bb8,command:_0x1ea5ec,parser:parser='json'}){const _0x4e42a3=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2b2bb8,'command':_0x1ea5ec,'parser':parser})});if(!_0x4e42a3['ok']){const _0x612e8=await _0x4e42a3['json']()['catch'](()=>({}));throw new Error(_0x612e8['message']||_0x612e8['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x4e42a3['statusText']);}return await _0x4e42a3['json']();},async 'promptParameterStream'(_0x34d05d,_0x98551a){const _0x260b00=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x34d05d)});if(!_0x260b00['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x260b00['statusText']);const _0x269e74=_0x260b00['body']['getReader'](),_0x26f819=new TextDecoder();let _0xb58b1b='';return new Promise((_0x4f9347,_0x2c2ef4)=>{const _0x252880=async()=>{try{const {done:_0x365220,value:_0x3a04b8}=await _0x269e74['read']();if(_0x365220)return;_0xb58b1b+=_0x26f819['decode'](_0x3a04b8,{'stream':!![]});const _0x43b31d=_0xb58b1b['split']('\x0a\x0a');_0xb58b1b=_0x43b31d['pop']()||'';for(const _0x2c00c1 of _0x43b31d){if(!_0x2c00c1['trim']())continue;const _0x481944=_0x2c00c1['split']('\x0a');let _0x2047de='message',_0x2a6dd5='';for(const _0x4e1308 of _0x481944){if(_0x4e1308['startsWith']('event:'))_0x2047de=_0x4e1308['substring'](0x6)['trim']();else _0x4e1308['startsWith']('data:')&&(_0x2a6dd5=_0x4e1308['substring'](0x5)['trim']());}if(!_0x2a6dd5)continue;try{const _0x50b80f=JSON['parse'](_0x2a6dd5);if(_0x2047de==='progress'&&_0x98551a)_0x98551a(_0x50b80f['stage'],_0x50b80f['message']);else{if(_0x2047de==='result'){_0x4f9347(_0x50b80f);return;}else{if(_0x2047de==='error'){let _0x5351bc=_0x50b80f['message']||_0x50b80f['error']||'Prompt\x20command\x20failed';_0x50b80f['rawOutput']&&(_0x5351bc+='\x0a\x0aRaw\x20output:\x0a'+_0x50b80f['rawOutput']);_0x2c2ef4(new Error(_0x5351bc));return;}}}}catch(_0x100ee8){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x100ee8),console['error']('Event\x20type:',_0x2047de),console['error']('Event\x20data:',_0x2a6dd5),console['error']('First\x20200\x20chars:',_0x2a6dd5['substring'](0x0,0xc8)),_0x2c2ef4(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x100ee8['message']+'\x0a\x0aData:\x20'+_0x2a6dd5['substring'](0x0,0x1f4)));return;}}_0x252880();}catch(_0xa2648b){_0x2c2ef4(_0xa2648b);}};_0x252880();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x14d487){const _0x1f3bba=await fetch(''+API_BASE+_0x14d487);if(!_0x1f3bba['ok']){const _0x4eb522=await _0x1f3bba['json']()['catch'](()=>({'error':_0x1f3bba['statusText']})),_0x55b9c6=new Error(_0x4eb522['error']||_0x4eb522['message']||_0x1f3bba['statusText']);if(_0x4eb522['detail']!==undefined)_0x55b9c6['detail']=_0x4eb522['detail'];throw _0x55b9c6;}return await _0x1f3bba['json']();},async 'post'(_0x3b05f6,_0x1403a9){const _0x566cc9=await fetch(''+API_BASE+_0x3b05f6,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1403a9)});if(!_0x566cc9['ok']){const _0x3e053d=await _0x566cc9['json']()['catch'](()=>({'error':_0x566cc9['statusText']})),_0x4b7cbe=new Error(_0x3e053d['error']||_0x3e053d['message']||_0x566cc9['statusText']);if(_0x3e053d['detail']!==undefined)_0x4b7cbe['detail']=_0x3e053d['detail'];throw _0x4b7cbe;}return await _0x566cc9['json']();},async 'put'(_0x16ebc3,_0x2730cd){const _0x131d7e=await fetch(''+API_BASE+_0x16ebc3,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2730cd)});if(!_0x131d7e['ok']){const _0x3ad290=await _0x131d7e['json']()['catch'](()=>({'error':_0x131d7e['statusText']})),_0x2c8228=new Error(_0x3ad290['error']||_0x3ad290['message']||_0x131d7e['statusText']);if(_0x3ad290['detail']!==undefined)_0x2c8228['detail']=_0x3ad290['detail'];throw _0x2c8228;}return await _0x131d7e['json']();},async 'delete'(_0x589bc3,_0x3f2e65){const _0x35070f={'method':'DELETE'};_0x3f2e65&&(_0x35070f['headers']={'Content-Type':'application/json'},_0x35070f['body']=JSON['stringify'](_0x3f2e65));const _0x35c6be=await fetch(''+API_BASE+_0x589bc3,_0x35070f);if(!_0x35c6be['ok']){const _0x36fe00=await _0x35c6be['json']()['catch'](()=>({'error':_0x35c6be['statusText']})),_0x362c38=new Error(_0x36fe00['error']||_0x36fe00['message']||_0x35c6be['statusText']);if(_0x36fe00['detail']!==undefined)_0x362c38['detail']=_0x36fe00['detail'];throw _0x362c38;}return await _0x35c6be['json']();},async 'getSkills'(){const _0x127716=await fetch(API_BASE+'/skills');if(!_0x127716['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x127716['statusText']);return await _0x127716['json']();},async 'getSkill'(_0x408e0d){const _0x53d4f0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x408e0d));if(!_0x53d4f0['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x53d4f0['statusText']);return await _0x53d4f0['json']();},async 'createSkill'(_0x25a0b2){const _0x5043c5=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25a0b2)});if(!_0x5043c5['ok']){const _0x58b202=await _0x5043c5['json']()['catch'](()=>({'error':_0x5043c5['statusText']})),_0x236229=new Error(_0x58b202['error']||_0x58b202['message']||_0x5043c5['statusText']);if(_0x58b202['detail']!==undefined)_0x236229['detail']=_0x58b202['detail'];throw _0x236229;}return await _0x5043c5['json']();},async 'updateSkill'(_0x53192e,_0xce393f){const _0x86158e=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x53192e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xce393f)});if(!_0x86158e['ok']){const _0x63da52=await _0x86158e['json']()['catch'](()=>({'error':_0x86158e['statusText']})),_0x15adea=new Error(_0x63da52['error']||_0x63da52['message']||_0x86158e['statusText']);if(_0x63da52['detail']!==undefined)_0x15adea['detail']=_0x63da52['detail'];throw _0x15adea;}return await _0x86158e['json']();},async 'deleteSkill'(_0x15ebf8){const _0x232f17=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x15ebf8),{'method':'DELETE'});if(!_0x232f17['ok']){const _0x17d25b=await _0x232f17['json']()['catch'](()=>({'error':_0x232f17['statusText']})),_0x2cfb3a=new Error(_0x17d25b['error']||_0x17d25b['message']||_0x232f17['statusText']);if(_0x17d25b['detail']!==undefined)_0x2cfb3a['detail']=_0x17d25b['detail'];throw _0x2cfb3a;}return await _0x232f17['json']();},async 'getSkillFile'(_0x1552a0,_0x4f9952){const _0x417347=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1552a0)+'/files/'+_0x4f9952);if(!_0x417347['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x417347['statusText']);return await _0x417347['json']();},async 'saveSkillFile'(_0x23cb07,_0xdc8d0a,_0x4d9f59){const _0x251a20=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x23cb07)+'/files/'+_0xdc8d0a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4d9f59})});if(!_0x251a20['ok']){const _0x1f2a74=await _0x251a20['json']()['catch'](()=>({'error':_0x251a20['statusText']})),_0x39d00b=new Error(_0x1f2a74['error']||_0x1f2a74['message']||_0x251a20['statusText']);if(_0x1f2a74['detail']!==undefined)_0x39d00b['detail']=_0x1f2a74['detail'];throw _0x39d00b;}return await _0x251a20['json']();},async 'deleteSkillFile'(_0x1e9937,_0x1b78e5){const _0xcf7768=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1e9937)+'/files/'+_0x1b78e5,{'method':'DELETE'});if(!_0xcf7768['ok']){const _0x12b9b7=await _0xcf7768['json']()['catch'](()=>({'error':_0xcf7768['statusText']})),_0x48a8ef=new Error(_0x12b9b7['error']||_0x12b9b7['message']||_0xcf7768['statusText']);if(_0x12b9b7['detail']!==undefined)_0x48a8ef['detail']=_0x12b9b7['detail'];throw _0x48a8ef;}return await _0xcf7768['json']();},async 'pullSkills'(){const _0x12c851=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x12c851['ok']){const _0xc622b0=await _0x12c851['json']()['catch'](()=>({'error':_0x12c851['statusText']})),_0x41753a=new Error(_0xc622b0['error']||_0xc622b0['message']||_0x12c851['statusText']);if(_0xc622b0['detail']!==undefined)_0x41753a['detail']=_0xc622b0['detail'];throw _0x41753a;}return await _0x12c851['json']();},async 'commitSkills'(_0x406947,_0x1e0798={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x1e0798,_0x279c56=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x406947,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x279c56['ok']){const _0x2003df=await _0x279c56['json']()['catch'](()=>({'error':_0x279c56['statusText']})),_0x34740f=new Error(_0x2003df['error']||_0x2003df['message']||_0x279c56['statusText']);if(_0x2003df['detail']!==undefined)_0x34740f['detail']=_0x2003df['detail'];throw _0x34740f;}return await _0x279c56['json']();},async 'discardSkillsChanges'(){const _0x4d1f01=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x4d1f01['ok']){const _0x5cae9c=await _0x4d1f01['json']()['catch'](()=>({'error':_0x4d1f01['statusText']})),_0x355799=new Error(_0x5cae9c['error']||_0x5cae9c['message']||_0x4d1f01['statusText']);if(_0x5cae9c['detail']!==undefined)_0x355799['detail']=_0x5cae9c['detail'];throw _0x355799;}return await _0x4d1f01['json']();},async 'getSkillCatalog'(){const _0x39218c=await fetch(API_BASE+'/external-skills/catalog');if(!_0x39218c['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x39218c['statusText']);return await _0x39218c['json']();},async 'getImportedSkillsRegistry'(){const _0x205478=await fetch(API_BASE+'/external-skills/registry');if(!_0x205478['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x205478['statusText']);return await _0x205478['json']();},async 'importCatalogSkill'(_0x23e1a5){const _0x410957=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x23e1a5})});if(!_0x410957['ok']){const _0x8bcb78=await _0x410957['json']()['catch'](()=>({'error':_0x410957['statusText']})),_0x3cf808=new Error(_0x8bcb78['error']||_0x8bcb78['message']||_0x410957['statusText']);if(_0x8bcb78['detail']!==undefined)_0x3cf808['detail']=_0x8bcb78['detail'];throw _0x3cf808;}return await _0x410957['json']();},async 'importSkillFromGit'(_0x5487bb,_0x5f1109,_0x593d8f='main',_0x30a9c3=null){const _0x53cf26=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5487bb,'skillPath':_0x5f1109,'branch':_0x593d8f,'skillId':_0x30a9c3})});if(!_0x53cf26['ok']){const _0x148487=await _0x53cf26['json']()['catch'](()=>({'error':_0x53cf26['statusText']})),_0x395fc0=new Error(_0x148487['error']||_0x148487['message']||_0x53cf26['statusText']);if(_0x148487['detail']!==undefined)_0x395fc0['detail']=_0x148487['detail'];throw _0x395fc0;}return await _0x53cf26['json']();},async 'probeMarketplace'(_0x97c56e,_0x122d9f='main'){const _0x33dbd3=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x97c56e,'branch':_0x122d9f})});if(!_0x33dbd3['ok']){const _0x5e52df=await _0x33dbd3['json']()['catch'](()=>({'error':_0x33dbd3['statusText']})),_0x3350f6=new Error(_0x5e52df['error']||_0x5e52df['message']||_0x33dbd3['statusText']);if(_0x5e52df['detail']!==undefined)_0x3350f6['detail']=_0x5e52df['detail'];throw _0x3350f6;}return await _0x33dbd3['json']();},async 'importMarketplaceBundle'(_0x21304a,_0x49f90a,_0x2a2e15,_0x254128=null){const _0x13a0c6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x21304a,'branch':_0x49f90a,'bundleId':_0x2a2e15,'selectedSkills':_0x254128})});if(!_0x13a0c6['ok']){const _0x4384ae=await _0x13a0c6['json']()['catch'](()=>({'error':_0x13a0c6['statusText']})),_0x2362ae=new Error(_0x4384ae['error']||_0x4384ae['message']||_0x13a0c6['statusText']);if(_0x4384ae['detail']!==undefined)_0x2362ae['detail']=_0x4384ae['detail'];throw _0x2362ae;}return await _0x13a0c6['json']();},async 'importSkillFromFolder'(_0x1c57b7,_0x242d83=null){const _0x17238b=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x1c57b7,'skillId':_0x242d83})});if(!_0x17238b['ok']){const _0x373f47=await _0x17238b['json']()['catch'](()=>({'error':_0x17238b['statusText']})),_0x18b584=new Error(_0x373f47['error']||_0x373f47['message']||_0x17238b['statusText']);if(_0x373f47['detail']!==undefined)_0x18b584['detail']=_0x373f47['detail'];throw _0x18b584;}return await _0x17238b['json']();},async 'importSkillFromNpm'(_0x3e570b,_0x5aaa27='latest',_0x7dda1c=null,_0x1dc2dc=null){const _0x4277cd=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x3e570b,'version':_0x5aaa27,'skillId':_0x7dda1c,'registry':_0x1dc2dc})});if(!_0x4277cd['ok']){const _0x89db58=await _0x4277cd['json']()['catch'](()=>({'error':_0x4277cd['statusText']})),_0x44f77a=new Error(_0x89db58['error']||_0x89db58['message']||_0x4277cd['statusText']);if(_0x89db58['detail']!==undefined)_0x44f77a['detail']=_0x89db58['detail'];throw _0x44f77a;}return await _0x4277cd['json']();},async 'checkSkillUpdates'(_0x159559){const _0x869386=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x159559)+'/check-updates',{'method':'POST'});if(!_0x869386['ok']){const _0x24a984=await _0x869386['json']()['catch'](()=>({'error':_0x869386['statusText']})),_0xad95c1=new Error(_0x24a984['error']||_0x24a984['message']||_0x869386['statusText']);if(_0x24a984['detail']!==undefined)_0xad95c1['detail']=_0x24a984['detail'];throw _0xad95c1;}return await _0x869386['json']();},async 'updateExternalSkill'(_0x78ddf8){const _0x531cfa=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x78ddf8)+'/update',{'method':'POST'});if(!_0x531cfa['ok']){const _0x326e4e=await _0x531cfa['json']()['catch'](()=>({'error':_0x531cfa['statusText']})),_0x3d3303=new Error(_0x326e4e['error']||_0x326e4e['message']||_0x531cfa['statusText']);if(_0x326e4e['detail']!==undefined)_0x3d3303['detail']=_0x326e4e['detail'];throw _0x3d3303;}return await _0x531cfa['json']();},async 'updateSkillFlags'(_0x3ed742,_0x4d375e){const _0x2eef7e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x3ed742)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x4d375e})});if(!_0x2eef7e['ok']){const _0x502b17=await _0x2eef7e['json']()['catch'](()=>({'error':_0x2eef7e['statusText']})),_0x1579c5=new Error(_0x502b17['error']||_0x502b17['message']||_0x2eef7e['statusText']);if(_0x502b17['detail']!==undefined)_0x1579c5['detail']=_0x502b17['detail'];throw _0x1579c5;}return await _0x2eef7e['json']();},async 'removeFromImportedRegistry'(_0x2ede02){const _0x29284c=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2ede02)+'/registry',{'method':'DELETE'});if(!_0x29284c['ok']){const _0x21ee20=await _0x29284c['json']()['catch'](()=>({'error':_0x29284c['statusText']})),_0xa22a52=new Error(_0x21ee20['error']||_0x21ee20['message']||_0x29284c['statusText']);if(_0x21ee20['detail']!==undefined)_0xa22a52['detail']=_0x21ee20['detail'];throw _0xa22a52;}return await _0x29284c['json']();},async 'getTeams'(){const _0x5c181c=await fetch(API_BASE+'/teams');if(!_0x5c181c['ok']){const _0x4fac36=await _0x5c181c['json']()['catch'](()=>({'message':_0x5c181c['statusText']}));throw new Error(_0x4fac36['message']||'Failed\x20to\x20get\x20teams');}return await _0x5c181c['json']();},async 'getTeam'(_0xfe4029){const _0x571daf=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xfe4029));if(!_0x571daf['ok']){const _0x4efedd=await _0x571daf['json']()['catch'](()=>({'message':_0x571daf['statusText']}));throw new Error(_0x4efedd['message']||'Failed\x20to\x20get\x20team');}return await _0x571daf['json']();},async 'createTeam'(_0x470329){const _0x3fd96f=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x470329)});if(!_0x3fd96f['ok']){const _0x20e8da=await _0x3fd96f['json']()['catch'](()=>({'message':_0x3fd96f['statusText']}));throw new Error(_0x20e8da['message']||'Failed\x20to\x20create\x20team');}return await _0x3fd96f['json']();},async 'updateTeam'(_0x5e6ca3,_0x2d8711){const _0x429353=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5e6ca3),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2d8711)});if(!_0x429353['ok']){const _0x328f8f=await _0x429353['json']()['catch'](()=>({'message':_0x429353['statusText']}));throw new Error(_0x328f8f['message']||'Failed\x20to\x20update\x20team');}return await _0x429353['json']();},async 'deleteTeam'(_0x1ef011){const _0x7c5e27=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1ef011),{'method':'DELETE'});if(!_0x7c5e27['ok']){const _0x35cf6f=await _0x7c5e27['json']()['catch'](()=>({'message':_0x7c5e27['statusText']}));throw new Error(_0x35cf6f['message']||'Failed\x20to\x20delete\x20team');}return await _0x7c5e27['json']();},async 'addTeamMember'(_0x39a520,_0x2144ee){const _0x2e1358=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x39a520)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x2144ee})});if(!_0x2e1358['ok']){const _0x599f03=await _0x2e1358['json']()['catch'](()=>({'message':_0x2e1358['statusText']}));throw new Error(_0x599f03['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x2e1358['json']();},async 'removeTeamMember'(_0x24a4bf,_0x5f73bb){const _0x48d35e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x24a4bf)+'/members/'+encodeURIComponent(_0x5f73bb),{'method':'DELETE'});if(!_0x48d35e['ok']){const _0x49024a=await _0x48d35e['json']()['catch'](()=>({'message':_0x48d35e['statusText']}));throw new Error(_0x49024a['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x48d35e['json']();},async 'getBindings'(_0x186c3e={}){const _0x3f8f70=new URLSearchParams();if(_0x186c3e['resource_type'])_0x3f8f70['set']('resource_type',_0x186c3e['resource_type']);if(_0x186c3e['resource_id'])_0x3f8f70['set']('resource_id',_0x186c3e['resource_id']);if(_0x186c3e['subject_type'])_0x3f8f70['set']('subject_type',_0x186c3e['subject_type']);if(_0x186c3e['subject_id'])_0x3f8f70['set']('subject_id',_0x186c3e['subject_id']);const _0x18a182=_0x3f8f70['toString'](),_0x5b3791=await fetch(API_BASE+'/bindings'+(_0x18a182?'?'+_0x18a182:''));if(!_0x5b3791['ok']){const _0x34cbfd=await _0x5b3791['json']()['catch'](()=>({'message':_0x5b3791['statusText']}));throw new Error(_0x34cbfd['message']||'Failed\x20to\x20get\x20bindings');}return await _0x5b3791['json']();},async 'createBinding'(_0x3df450){const _0x56cc7b=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3df450)});if(!_0x56cc7b['ok']){const _0x5c2722=await _0x56cc7b['json']()['catch'](()=>({'message':_0x56cc7b['statusText']}));throw new Error(_0x5c2722['message']||'Failed\x20to\x20create\x20binding');}return await _0x56cc7b['json']();},async 'updateBinding'(_0x39f842,_0x4b2940){const _0x4810ba=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x39f842),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4b2940)});if(!_0x4810ba['ok']){const _0x6c5603=await _0x4810ba['json']()['catch'](()=>({'message':_0x4810ba['statusText']}));throw new Error(_0x6c5603['message']||'Failed\x20to\x20update\x20binding');}return await _0x4810ba['json']();},async 'deleteBinding'(_0x4d6095){const _0x47f4cc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4d6095),{'method':'DELETE'});if(!_0x47f4cc['ok']){const _0x13689e=await _0x47f4cc['json']()['catch'](()=>({'message':_0x47f4cc['statusText']}));throw new Error(_0x13689e['message']||'Failed\x20to\x20delete\x20binding');}return await _0x47f4cc['json']();},async 'getRoleDefinitions'(){const _0x27fa26=await fetch(API_BASE+'/roles');if(!_0x27fa26['ok']){const _0x2c88de=await _0x27fa26['json']()['catch'](()=>({'message':_0x27fa26['statusText']}));throw new Error(_0x2c88de['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x27fa26['json']();},async 'getRoleDefinition'(_0x17d7c2){const _0x3ff9c5=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x17d7c2));if(!_0x3ff9c5['ok']){const _0x332896=await _0x3ff9c5['json']()['catch'](()=>({'message':_0x3ff9c5['statusText']}));throw new Error(_0x332896['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x3ff9c5['json']();},async 'createRoleDefinition'(_0x5935fe){const _0x16084d=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5935fe)});if(!_0x16084d['ok']){const _0x45cbb6=await _0x16084d['json']()['catch'](()=>({'message':_0x16084d['statusText']}));throw new Error(_0x45cbb6['message']||_0x45cbb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x16084d['json']();},async 'updateRoleDefinition'(_0x2f1ff0,_0x53d984){const _0x12cc6b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2f1ff0),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x53d984)});if(!_0x12cc6b['ok']){const _0x479923=await _0x12cc6b['json']()['catch'](()=>({'message':_0x12cc6b['statusText']}));throw new Error(_0x479923['message']||_0x479923['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x12cc6b['json']();},async 'deleteRoleDefinition'(_0x411bcf){const _0x2fcd8f=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x411bcf),{'method':'DELETE'});if(!_0x2fcd8f['ok']){const _0x4e3e7c=await _0x2fcd8f['json']()['catch'](()=>({'message':_0x2fcd8f['statusText']}));throw new Error(_0x4e3e7c['message']||_0x4e3e7c['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x2fcd8f['json']();},async 'getAvailablePermissions'(){const _0x3bcfee=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3bcfee['ok']){const _0x1a1fde=await _0x3bcfee['json']()['catch'](()=>({'message':_0x3bcfee['statusText']}));throw new Error(_0x1a1fde['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3bcfee['json']();},async 'getGitProviderAllowedTeams'(_0x6a5bfa){const _0x3f230d=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x6a5bfa)+'/allowed-teams');if(!_0x3f230d['ok']){const _0xef43ee=await _0x3f230d['json']()['catch'](()=>({'message':_0x3f230d['statusText']}));throw new Error(_0xef43ee['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x3f230d['json']();},async 'setGitProviderAllowedTeams'(_0x5933da,_0x5598ac){const _0x3f0ef0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x5933da)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x5598ac})});if(!_0x3f0ef0['ok']){const _0x37aebb=await _0x3f0ef0['json']()['catch'](()=>({'message':_0x3f0ef0['statusText']}));throw new Error(_0x37aebb['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3f0ef0['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 _0x41acc0=toastState['baseBottom'];toastState['toasts']['forEach'](_0x11b6c5=>{_0x11b6c5['el']['style']['bottom']=_0x41acc0+'px';const _0x33ae4b=_0x11b6c5['el']['offsetHeight']||toastState['defaultHeight'];_0x41acc0+=_0x33ae4b+toastState['gap'];});});}function removeToastById(_0x418c7d){const _0x27f87f=toastState['toasts']['findIndex'](_0x1cd949=>_0x1cd949['id']===_0x418c7d);if(_0x27f87f===-0x1)return;const _0x514701=toastState['toasts'][_0x27f87f];if(_0x514701['timeoutId'])clearTimeout(_0x514701['timeoutId']);_0x514701['el']['classList']['remove']('show'),setTimeout(()=>_0x514701['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x27f87f,0x1),repositionAllToasts();}function registerToast(_0x2d41fa){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x2d41fa),repositionAllToasts(),_0x2d41fa['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(_0x4dcba6){if(_0x4dcba6===null||_0x4dcba6===undefined)return'';return String(_0x4dcba6)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0xb987d7,_0x16877a){if(_0xb987d7&&typeof _0xb987d7==='object'&&!Array['isArray'](_0xb987d7))return{'code':typeof _0xb987d7['text']==='string'?_0xb987d7['text']:'','language':typeof _0xb987d7['lang']==='string'?_0xb987d7['lang']:''};return{'code':typeof _0xb987d7==='string'?_0xb987d7:'','language':typeof _0x16877a==='string'?_0x16877a:''};}function buildMermaidBlock(_0x4c1d81){const _0x15c291=String(_0x4c1d81||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x15c291))+'\x22>'+escapeHtmlValue(_0x15c291)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0xe38e4=new marked['Renderer'](),_0x3a64f3=_0xe38e4['code']['bind'](_0xe38e4);return _0xe38e4['code']=function(_0x45cf1a,_0x4d2acb,..._0x1a8c6f){const {code:_0x419f32,language:_0x11a2c5}=getMarkdownCodeBlockPayload(_0x45cf1a,_0x4d2acb),_0x3a8335=String(_0x11a2c5||'')['trim']()['toLowerCase']();if(_0x3a8335==='mermaid')return buildMermaidBlock(_0x419f32);const _0xa3fd30=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0xa3fd30&&_0x3a8335)try{const _0x2e63c9=_0xa3fd30['getLanguage'](_0x3a8335)?_0x3a8335:'plaintext',_0x3e1308=_0xa3fd30['highlight'](_0x419f32,{'language':_0x2e63c9})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x3a8335)+'\x22>'+_0x3e1308+'</code></pre>';}catch(_0x426494){console['error']('Syntax\x20highlighting\x20error:',_0x426494);}return _0x3a64f3(_0x45cf1a,_0x4d2acb,..._0x1a8c6f);},sharedMarkedRenderer=_0xe38e4,_0xe38e4;}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 _0x259d8a=window['mermaid'];if(!_0x259d8a||typeof _0x259d8a['initialize']!=='function')return _0x259d8a||null;return _0x259d8a['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x259d8a;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1fec16,_0x91595d)=>{const _0x38ee97=()=>_0x1fec16(configureMermaidInstance()),_0xb59255=()=>{mermaidLoadPromise=null,_0x91595d(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x2028fd=document['getElementById'](MERMAID_SCRIPT_ID);!_0x2028fd&&(_0x2028fd=document['createElement']('script'),_0x2028fd['id']=MERMAID_SCRIPT_ID,_0x2028fd['src']=MERMAID_SCRIPT_SRC,_0x2028fd['async']=!![],document['head']['appendChild'](_0x2028fd));if(window['mermaid']){_0x38ee97();return;}_0x2028fd['addEventListener']('load',_0x38ee97,{'once':!![]}),_0x2028fd['addEventListener']('error',_0xb59255,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x513c92){const _0x4db495=_0x513c92['getAttribute']('data-mermaid-source');if(!_0x4db495)return null;let _0x16bfc4=_0x4db495;try{_0x16bfc4=decodeURIComponent(_0x4db495);}catch{}return _0x513c92['textContent']=_0x16bfc4,_0x513c92['removeAttribute']('data-processed'),_0x513c92['removeAttribute']('aria-roledescription'),_0x513c92['removeAttribute']('role'),_0x513c92['removeAttribute']('aria-label'),_0x16bfc4;}function collectMermaidNodes(_0x5c99b1,_0x4c07bd){if(!(_0x5c99b1 instanceof Element))return;_0x5c99b1['matches']('.mermaid[data-mermaid-source]')&&_0x4c07bd['add'](_0x5c99b1),_0x5c99b1['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xd8d76=>{_0x4c07bd['add'](_0xd8d76);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x431305=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x10c9ab=>setTimeout(_0x10c9ab,0x0);_0x431305(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x41f0a7=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x41f0a7);});});}function queueMermaidRender(_0x5631fa){const _0x6178f7=new Set();_0x5631fa instanceof Document||_0x5631fa instanceof DocumentFragment?_0x5631fa['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3fd9cf=>_0x6178f7['add'](_0x3fd9cf)):collectMermaidNodes(_0x5631fa,_0x6178f7);if(_0x6178f7['size']===0x0)return;_0x6178f7['forEach'](_0x57678a=>pendingMermaidNodes['add'](_0x57678a)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x16c604=Array['from'](pendingMermaidNodes)['filter'](_0x2df634=>_0x2df634['isConnected']);pendingMermaidNodes['clear']();if(_0x16c604['length']===0x0)return;const _0x239403=await loadMermaid();if(!_0x239403)return;configureMermaidInstance();const _0x5afae8=getMermaidTheme();for(const _0x17b2bc of _0x16c604){const _0x1f0956=_0x17b2bc['getAttribute']('data-mermaid-source');if(!_0x1f0956)continue;const _0x475cbe=_0x17b2bc['getAttribute']('data-processed')==='true';if(_0x475cbe&&_0x17b2bc['dataset']['mermaidTheme']===_0x5afae8)continue;restoreMermaidSource(_0x17b2bc);try{if(typeof _0x239403['run']==='function')await _0x239403['run']({'nodes':[_0x17b2bc]});else typeof _0x239403['init']==='function'&&_0x239403['init'](undefined,[_0x17b2bc]);_0x17b2bc['dataset']['mermaidTheme']=_0x5afae8,delete _0x17b2bc['dataset']['mermaidError'];}catch(_0x560638){console['error']('Mermaid\x20render\x20failed:',_0x560638),restoreMermaidSource(_0x17b2bc),_0x17b2bc['dataset']['mermaidError']='true',delete _0x17b2bc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x25cce2=>{_0x25cce2['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x25cce2);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x9d43cb=>{_0x9d43cb['forEach'](_0x3a7ec4=>{_0x3a7ec4['addedNodes']['forEach'](_0x2ebe92=>{_0x2ebe92['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x2ebe92);});});}),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'(_0x5a9a0d){const _0x421f0=new Date(_0x5a9a0d),_0x4d47f0=new Date(),_0x5b1c9f=_0x4d47f0-_0x421f0,_0x2bc75d=Math['floor'](_0x5b1c9f/0x3e8),_0xd80f1a=Math['floor'](_0x2bc75d/0x3c),_0x1bcc7b=Math['floor'](_0xd80f1a/0x3c),_0x135461=Math['floor'](_0x1bcc7b/0x18);if(_0x2bc75d<0x3c)return'now';if(_0xd80f1a<0x3c)return _0xd80f1a+'m\x20ago';if(_0x1bcc7b<0x18)return _0x1bcc7b+'h\x20ago';return _0x135461+'d\x20ago';},'getStatusIcon'(_0x5755ef){switch(_0x5755ef){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x4a53fe){switch(_0x4a53fe){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'(_0x11b323,_0x8a212f=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x5836b1={};_0x5836b1['text/plain']=new Blob([_0x11b323],{'type':'text/plain'});_0x8a212f&&(_0x5836b1['text/html']=new Blob([_0x8a212f],{'type':'text/html'}));const _0x49189=new ClipboardItem(_0x5836b1);return await navigator['clipboard']['write']([_0x49189]),!![];}catch(_0x3efc18){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3efc18);}try{const _0x509398=_0x1ed9ea=>{_0x1ed9ea['preventDefault'](),_0x1ed9ea['clipboardData']['setData']('text/plain',_0x11b323),_0x8a212f&&_0x1ed9ea['clipboardData']['setData']('text/html',_0x8a212f);};document['addEventListener']('copy',_0x509398);const _0x36c9a6=document['execCommand']('copy');document['removeEventListener']('copy',_0x509398);if(_0x36c9a6)return!![];}catch(_0x50d355){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x50d355);}try{const _0x2c14b4=document['createElement']('textarea');_0x2c14b4['value']=_0x11b323,_0x2c14b4['style']['position']='fixed',_0x2c14b4['style']['opacity']='0',_0x2c14b4['style']['pointerEvents']='none',document['body']['appendChild'](_0x2c14b4),_0x2c14b4['select']();const _0x4a4fc4=document['execCommand']('copy');return document['body']['removeChild'](_0x2c14b4),_0x4a4fc4;}catch(_0x269cbb){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x269cbb),![];}},'showToast'(_0x2bff1c,_0x1ad4ed='info'){const _0xc23dbb=getNextToastId(),_0x2e6f80=document['createElement']('div');_0x2e6f80['className']='toast\x20toast-'+_0x1ad4ed,_0x2e6f80['textContent']=_0x2bff1c,_0x2e6f80['dataset']['toastId']=_0xc23dbb,document['body']['appendChild'](_0x2e6f80);const _0x21b883=_0x1ad4ed==='error'?0x2710:0xbb8,_0x1a417b=setTimeout(()=>{removeToastById(_0xc23dbb);},_0x21b883),_0x4e2553={'id':_0xc23dbb,'el':_0x2e6f80,'timeoutId':_0x1a417b};return registerToast(_0x4e2553),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2e6f80['classList']['add']('show');});}),_0xc23dbb;},'showError'(_0x16010e){console['error'](_0x16010e);const _0x2d5180=typeof _0x16010e==='string'?_0x16010e:_0x16010e['message']||'An\x20error\x20occurred';this['showToast'](_0x2d5180,'error');},'showSuccess'(_0x1e65c1){this['showToast'](_0x1e65c1,'success');},'capitalize'(_0x3d68c4){if(!_0x3d68c4)return'';return _0x3d68c4['charAt'](0x0)['toUpperCase']()+_0x3d68c4['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x1dd914){return escapeHtmlValue(_0x1dd914);},'ansiToHtml'(_0xf265fb){if(_0xf265fb===null||_0xf265fb===undefined)return'';let _0x47d102=this['escapeHtml'](_0xf265fb);const _0x2911a8={'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'},_0x46ea99={'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 _0x287f0a=0x0;return _0x47d102=_0x47d102['replace'](/\x1b\[([0-9;]*)m/g,(_0x2ddead,_0x45f8a3)=>{if(!_0x45f8a3||_0x45f8a3==='0'){const _0x43e9c0='</span>'['repeat'](_0x287f0a);return _0x287f0a=0x0,_0x43e9c0;}const _0x724180=_0x45f8a3['split'](';'),_0x4fc895=[];for(const _0xfdd664 of _0x724180){if(_0xfdd664==='1')_0x4fc895['push']('font-weight:bold');else{if(_0xfdd664==='2')_0x4fc895['push']('opacity:0.7');else{if(_0xfdd664==='3')_0x4fc895['push']('font-style:italic');else{if(_0xfdd664==='4')_0x4fc895['push']('text-decoration:underline');else{if(_0xfdd664==='9')_0x4fc895['push']('text-decoration:line-through');else{if(_0x2911a8[_0xfdd664])_0x4fc895['push']('color:'+_0x2911a8[_0xfdd664]);else{if(_0x46ea99[_0xfdd664])_0x4fc895['push']('background-color:'+_0x46ea99[_0xfdd664]);}}}}}}}if(_0x4fc895['length']>0x0)return _0x287f0a++,'<span\x20style=\x22'+_0x4fc895['join'](';')+'\x22>';return'';}),_0x47d102+='</span>'['repeat'](_0x287f0a),_0x47d102=_0x47d102['replace'](/\\u001b\[([0-9;]*)m/g,(_0x79a03d,_0x226774)=>{if(!_0x226774||_0x226774==='0')return'';const _0x559830=_0x226774['split'](';'),_0x2bcb67=[];for(const _0x448594 of _0x559830){if(_0x448594==='1')_0x2bcb67['push']('font-weight:bold');else{if(_0x2911a8[_0x448594])_0x2bcb67['push']('color:'+_0x2911a8[_0x448594]);else{if(_0x46ea99[_0x448594])_0x2bcb67['push']('background-color:'+_0x46ea99[_0x448594]);}}}if(_0x2bcb67['length']>0x0)return'<span\x20style=\x22'+_0x2bcb67['join'](';')+'\x22>';return'';}),_0x47d102;},'showModal'({title:_0x1ec215,content:_0x334417,buttons:buttons=[]}){const _0x2fb88c='\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'](_0x1ec215)+'</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'+_0x334417+'\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']((_0xdc8c3c,_0x241ea0)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0xdc8c3c['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x241ea0+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0xdc8c3c['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',_0x51fe74=document['createElement']('div');_0x51fe74['id']='utils-modal',_0x51fe74['className']='modal',_0x51fe74['innerHTML']=_0x2fb88c,document['body']['appendChild'](_0x51fe74);const _0x534296=document['getElementById']('utils-modal-close');_0x534296&&_0x534296['addEventListener']('click',()=>this['hideModal']());const _0x233a93=_0x51fe74['querySelectorAll']('[data-btn-index]');_0x233a93['forEach'](_0x72c7ca=>{const _0x586b1b=parseInt(_0x72c7ca['dataset']['btnIndex']);buttons[_0x586b1b]?.['onClick']&&_0x72c7ca['addEventListener']('click',buttons[_0x586b1b]['onClick']);});const _0x537d27=document['getElementById']('utils-modal-overlay');_0x537d27&&_0x537d27['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x4d9119=document['getElementById']('utils-modal');_0x4d9119&&_0x4d9119['remove']();},'parseKeyValuePairs'(_0x3ed8af){const _0x5879df={};if(!_0x3ed8af)return _0x5879df;return _0x3ed8af['split'](/\r?\n/)['map'](_0x142a67=>_0x142a67['trim']())['filter'](Boolean)['forEach'](_0x3a217d=>{const _0x2e9c83=_0x3a217d['indexOf']('=');if(_0x2e9c83>0x0){const _0x2f7399=_0x3a217d['slice'](0x0,_0x2e9c83)['trim'](),_0x29b0fc=_0x3a217d['slice'](_0x2e9c83+0x1)['trim']();if(_0x2f7399)_0x5879df[_0x2f7399]=_0x29b0fc;}}),_0x5879df;},'debounce'(_0xe9f9da,_0x2de8f9=0xfa){let _0xaa0885=null;return(..._0x34cc3d)=>{clearTimeout(_0xaa0885),_0xaa0885=setTimeout(()=>_0xe9f9da['apply'](this,_0x34cc3d),_0x2de8f9);};},'formatTimestamp'(_0x1088e3){if(!_0x1088e3)return'N/A';const _0x13b709=new Date(_0x1088e3);return _0x13b709['toLocaleDateString']()+'\x20'+_0x13b709['toLocaleTimeString']();},'getQueryParams'(){const _0x5815b3=new URLSearchParams(window['location']['search']),_0xb7f74={};for(const [_0x198a1a,_0x2a6222]of _0x5815b3){_0xb7f74[_0x198a1a]=_0x2a6222;}return _0xb7f74;},'formatDuration'(_0x4d459c,_0x376abe){if(!_0x4d459c)return'N/A';const _0x3579d9=new Date(_0x4d459c),_0x5e3e4c=_0x376abe?new Date(_0x376abe):new Date(),_0x15c031=_0x5e3e4c-_0x3579d9;if(_0x15c031<0x0)return'0s';const _0x140774=Math['floor'](_0x15c031/0x3e8),_0x341571=Math['floor'](_0x140774/0x3c),_0x350474=Math['floor'](_0x341571/0x3c),_0x528cb6=Math['floor'](_0x350474/0x18);if(_0x140774<0x3c)return _0x140774+'s';if(_0x341571<0x3c)return _0x341571+'m\x20'+_0x140774%0x3c+'s';if(_0x350474<0x18)return _0x350474+'h\x20'+_0x341571%0x3c+'m\x20'+_0x140774%0x3c+'s';return _0x528cb6+'d\x20'+_0x350474%0x18+'h\x20'+_0x341571%0x3c+'m';},'renderMarkdown'(_0x21290b,_0x1b4b4d={}){if(!_0x21290b)return'';_0x21290b=this['rewriteAttachmentLinks'](_0x21290b,_0x1b4b4d),_0x21290b=this['rewriteColorSyntax'](_0x21290b);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x21290b,_0x1b4b4d);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x21290b);}catch(_0x2c31ee){return console['error']('Markdown\x20parsing\x20error:',_0x2c31ee),this['renderMarkdownFallback'](_0x21290b,_0x1b4b4d);}},'rewriteAttachmentLinks'(_0x373b5c,_0x18b045={}){const _0x54faa5=typeof _0x18b045['resolveAttachmentUrl']==='function'?_0x18b045['resolveAttachmentUrl']:_0x18b045['taskId']?_0x4eb4f6=>API_BASE+'/tasks/'+_0x18b045['taskId']+'/attachments/'+encodeURIComponent(_0x4eb4f6):null;if(!_0x54faa5)return _0x373b5c;return String(_0x373b5c)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x3277f2,_0x5477e5)=>{const _0x386e44=String(_0x5477e5||'')['trim']();if(!_0x386e44)return _0x3277f2;let _0x50a001=_0x386e44;try{_0x50a001=decodeURIComponent(_0x386e44);}catch{}const _0x13c055=_0x54faa5(_0x50a001);if(!_0x13c055)return _0x3277f2;return']('+_0x13c055+')';});},'rewriteColorSyntax'(_0x4081c8){if(!_0x4081c8)return _0x4081c8;return String(_0x4081c8)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x3607d2,_0x61d9a5,_0x373c50)=>{const _0x16f35d=this['rewriteColorSyntax'](_0x373c50);return'<span\x20style=\x22color:\x20'+_0x61d9a5+'\x22>'+_0x16f35d+'</span>';});},'renderMarkdownFallback'(_0x3ff52b,_0x108354={}){if(!_0x3ff52b)return'';_0x3ff52b=_0x3ff52b['replace'](/\r\n/g,'\x0a'),_0x3ff52b=_0x3ff52b['replace'](/\r/g,'\x0a'),_0x3ff52b=this['rewriteAttachmentLinks'](_0x3ff52b,_0x108354);let _0x43420a=this['escapeHtml'](_0x3ff52b);return _0x43420a=_0x43420a['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x43420a=_0x43420a['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x43420a=_0x43420a['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x43420a=_0x43420a['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x43420a=_0x43420a['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x43420a=_0x43420a['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x43420a=_0x43420a['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x43420a=_0x43420a['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x43420a=_0x43420a['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x43420a=_0x43420a['replace'](/\n\n/g,'</p><p>'),_0x43420a=_0x43420a['replace'](/\n/g,'<br>'),'<p>'+_0x43420a+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x34089a=new Uint8Array(0x10);crypto['getRandomValues'](_0x34089a),_0x34089a[0x6]=_0x34089a[0x6]&0xf|0x40,_0x34089a[0x8]=_0x34089a[0x8]&0x3f|0x80;const _0x5df03f=Array['from'](_0x34089a,_0x193a32=>_0x193a32['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5df03f['slice'](0x0,0x8)+'-'+_0x5df03f['slice'](0x8,0xc)+'-'+_0x5df03f['slice'](0xc,0x10)+'-'+_0x5df03f['slice'](0x10,0x14)+'-'+_0x5df03f['slice'](0x14);}};export class CustomSelect{constructor(_0x108260,_0x4d7628={}){this['nativeSelect']=_0x108260,this['options']=_0x4d7628,this['isOpen']=![],this['selectedValue']=_0x108260['value']||'',this['searchable']=_0x4d7628['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5bb0ca=document['createElement']('div');_0x5bb0ca['className']='custom-select';const _0xb8f463=document['createElement']('div');_0xb8f463['className']='custom-select-trigger',_0xb8f463['setAttribute']('tabindex','0'),_0xb8f463['setAttribute']('role','button'),_0xb8f463['setAttribute']('aria-haspopup','listbox');const _0x76c443=document['createElement']('span');_0x76c443['className']='custom-select-trigger-text';const _0x2e2840=document['createElement']('span');_0x2e2840['className']='custom-select-arrow',_0x2e2840['textContent']='▼',_0xb8f463['appendChild'](_0x76c443),_0xb8f463['appendChild'](_0x2e2840);const _0x1a5cf8=document['createElement']('div');_0x1a5cf8['className']='custom-select-dropdown',_0x1a5cf8['setAttribute']('role','listbox');if(this['searchable']){const _0x1a1bfb=document['createElement']('div');_0x1a1bfb['className']='custom-select-search';const _0x1ac4c6=document['createElement']('input');_0x1ac4c6['type']='text',_0x1ac4c6['className']='custom-select-search-input',_0x1ac4c6['placeholder']='Type\x20to\x20search...',_0x1ac4c6['setAttribute']('aria-label','Search\x20options'),_0x1ac4c6['addEventListener']('input',_0x3630b4=>{this['searchQuery']=_0x3630b4['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x1ac4c6['addEventListener']('keydown',_0x4c5b2e=>{if(_0x4c5b2e['key']==='Escape')_0x4c5b2e['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x4c5b2e['key']==='Enter'){_0x4c5b2e['preventDefault'](),_0x4c5b2e['stopPropagation']();const _0x1aabc0=_0x1a5cf8['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x1aabc0){const _0x54dd47=_0x1aabc0['getAttribute']('data-value');this['select'](_0x54dd47);}}}}),_0x1a1bfb['appendChild'](_0x1ac4c6),_0x1a5cf8['appendChild'](_0x1a1bfb),this['searchInput']=_0x1ac4c6;}const _0x5bfaef=document['createElement']('div');_0x5bfaef['className']='custom-select-options',_0x1a5cf8['appendChild'](_0x5bfaef),_0x5bb0ca['appendChild'](_0xb8f463),_0x5bb0ca['appendChild'](_0x1a5cf8),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5bb0ca,this['nativeSelect']),this['wrapper']=_0x5bb0ca,this['trigger']=_0xb8f463,this['triggerText']=_0x76c443,this['dropdown']=_0x1a5cf8,this['optionsContainer']=_0x5bfaef,_0xb8f463['addEventListener']('click',()=>this['toggle']()),_0xb8f463['addEventListener']('keydown',_0x398d29=>this['handleKeydown'](_0x398d29)),document['addEventListener']('click',_0x5c6b93=>{!_0x5bb0ca['contains'](_0x5c6b93['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x257b04=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x257b04['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x556c25=new MutationObserver(()=>{this['updateDisabledState']();});_0x556c25['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4830ba=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4830ba['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x5bbb95=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x5bbb95),this['trigger']['setAttribute']('aria-disabled',_0x5bbb95?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x5bbb95?'-1':'0'),_0x5bbb95&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x489114=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0xf9d6db=_0x489114['filter'](_0x30a803=>!_0x30a803['disabled']&&!_0x30a803['hidden']);_0x489114['forEach']((_0x3fb32f,_0xb90119)=>{const _0x135f74=document['createElement']('div');_0x135f74['className']='custom-select-option',_0x135f74['textContent']=_0x3fb32f['textContent'],_0x135f74['setAttribute']('data-value',_0x3fb32f['value']),_0x135f74['setAttribute']('data-index',_0xb90119),_0x135f74['setAttribute']('role','option'),_0x3fb32f['disabled']?_0x135f74['classList']['add']('disabled'):_0x135f74['addEventListener']('click',()=>this['select'](_0x3fb32f['value'])),_0x3fb32f['value']===this['selectedValue']&&_0x135f74['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x135f74),this['allOptions']['push']({'element':_0x135f74,'text':_0x3fb32f['textContent']['toLowerCase'](),'value':_0x3fb32f['value'],'disabled':_0x3fb32f['disabled']});});if(this['searchable']&&this['searchInput']){const _0x47caa6=this['searchInput']['parentElement'];_0xf9d6db['length']>0x3?_0x47caa6['style']['display']='':_0x47caa6['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x24b569=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x3e8e0c=>{if(!_0x24b569||_0x3e8e0c['disabled'])_0x3e8e0c['element']['style']['display']='';else{const _0xf1d727=_0x3e8e0c['text']['includes'](_0x24b569);_0x3e8e0c['element']['style']['display']=_0xf1d727?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x3c542d){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x3c542d,this['nativeSelect']['value']=_0x3c542d;const _0x431f13=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x431f13),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x417f19=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x417f19&&(this['triggerText']['textContent']=_0x417f19['textContent'],_0x417f19['disabled']||_0x417f19['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x159464=>{_0x159464['getAttribute']('data-value')===this['selectedValue']?_0x159464['classList']['add']('selected'):_0x159464['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 _0x1b10fd=window['getComputedStyle'](this['dropdown']);if(_0x1b10fd['position']==='fixed'){const _0x2c3c83=this['trigger']['getBoundingClientRect'](),_0x455aff=parseInt(_0x1b10fd['maxHeight'])||0xc8,_0x42bc8f=window['innerHeight'],_0x1ace59=_0x42bc8f-_0x2c3c83['bottom'],_0x4c31b2=_0x2c3c83['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x178cab;_0x1ace59<_0x455aff&&_0x4c31b2>_0x1ace59?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x42bc8f-_0x2c3c83['top']+'px',_0x178cab=Math['min'](_0x455aff,_0x4c31b2-0xa),this['dropdown']['style']['maxHeight']=_0x178cab+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2c3c83['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x178cab=Math['min'](_0x455aff,_0x1ace59-0xa),this['dropdown']['style']['maxHeight']=_0x178cab+'px');if(this['optionsContainer']){let _0x41ff40=_0x178cab;if(this['searchInput']){const _0x25f9da=this['searchInput']['parentElement'];_0x25f9da&&(_0x41ff40-=_0x25f9da['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x41ff40)+'px';}this['dropdown']['style']['left']=_0x2c3c83['left']+'px',this['dropdown']['style']['width']=_0x2c3c83['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x518b17=this['searchInput']['parentElement'];_0x518b17&&_0x518b17['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'](_0x3b6bf6){if(this['nativeSelect']['disabled'])return;if(_0x3b6bf6['key']==='Enter'||_0x3b6bf6['key']==='\x20')_0x3b6bf6['preventDefault'](),this['toggle']();else _0x3b6bf6['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x3593bc='\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',_0x3593bc),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x26b16a=document['getElementById']('confirm-dialog-close'),_0x147470=document['getElementById']('confirm-dialog-cancel'),_0x29820b=document['getElementById']('confirm-dialog-confirm'),_0x2ae6cd=this['_modal']['querySelector']('.modal-overlay');_0x26b16a['addEventListener']('click',()=>this['_resolve'](![])),_0x147470['addEventListener']('click',()=>this['_resolve'](![])),_0x29820b['addEventListener']('click',()=>this['_resolve'](!![])),_0x2ae6cd['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x535805=>{if(_0x535805['key']==='Escape')_0x535805['preventDefault'](),this['_resolve'](![]);else _0x535805['key']==='Enter'&&(_0x535805['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x222413,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x1d9704=>{this['_resolvePromise']=_0x1d9704,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x222413;const _0x1234fa=document['getElementById']('confirm-dialog-cancel'),_0x50db35=document['getElementById']('confirm-dialog-confirm');_0x1234fa['textContent']=cancelText,_0x50db35['textContent']=confirmText,_0x50db35['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x50db35['focus']();});},'_resolve'(_0x40dd33){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40dd33),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x4a2c26,_0xf7fd9e={}){this['container']=_0x4a2c26,this['options']={'placeholder':_0xf7fd9e['placeholder']||'Type\x20to\x20search...','maxItems':_0xf7fd9e['maxItems']||0x64,'loadItems':_0xf7fd9e['loadItems']||(async()=>[]),'renderItem':_0xf7fd9e['renderItem']||(_0x550a55=>({'primary':String(_0x550a55),'secondary':''})),'onSelect':_0xf7fd9e['onSelect']||(()=>{}),'filterItems':_0xf7fd9e['filterItems']||null,'getItemValue':_0xf7fd9e['getItemValue']||(_0x5a1c8c=>_0x5a1c8c),'sortItems':_0xf7fd9e['sortItems']||null,'debounceMs':_0xf7fd9e['debounceMs']||0xc8,'minCharsForSearch':_0xf7fd9e['minCharsForSearch']||0x0,'emptyMessage':_0xf7fd9e['emptyMessage']||'No\x20results\x20found','loadingMessage':_0xf7fd9e['loadingMessage']||'Loading...','preload':_0xf7fd9e['preload']!==![],'searchMode':_0xf7fd9e['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',_0x16eb78=>this['onBlur'](_0x16eb78)),this['input']['addEventListener']('input',_0x5d4d27=>this['onInput'](_0x5d4d27)),this['input']['addEventListener']('keydown',_0x20965d=>this['onKeydown'](_0x20965d)),this['clearBtn']['addEventListener']('mousedown',_0x55195a=>{_0x55195a['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x4d55f7=>{_0x4d55f7['preventDefault']();}),document['addEventListener']('click',_0x302574=>{!this['wrapper']['contains'](_0x302574['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(_0x3b4ca1){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3b4ca1);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x201680){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x44672f){const _0x6b62c1=_0x44672f['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x6b62c1);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x6b62c1):this['loadAndShow'](_0x6b62c1);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x3cd2c4){switch(_0x3cd2c4['key']){case'ArrowDown':_0x3cd2c4['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x3cd2c4['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x3cd2c4['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x3cd2c4['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x326139){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x2f3675=this['selectedIndex']+_0x326139;if(_0x2f3675>=0x0&&_0x2f3675<this['filteredItems']['length']){this['selectedIndex']=_0x2f3675,this['updateSelectionHighlight']();const _0x111fe9=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x111fe9[this['selectedIndex']]&&_0x111fe9[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x497aee=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x497aee['forEach']((_0x51c40c,_0x53a2af)=>{_0x51c40c['classList']['toggle']('keyboard-selected',_0x53a2af===this['selectedIndex']);});}async['loadAndShow'](_0x875238){this['showLoading']();try{const _0x1c6301=await this['options']['loadItems'](_0x875238);if(this['options']['searchMode']==='server'){let _0x249802=_0x1c6301;this['options']['sortItems']&&(_0x249802=this['options']['sortItems']([..._0x1c6301]));this['filteredItems']=_0x249802;const _0xa06b8e=this['filteredItems']['length']>=this['options']['maxItems'];_0xa06b8e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0xa06b8e),this['open']();}else this['allItems']=_0x1c6301,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x875238);}catch(_0x1a6696){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x1a6696),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x3e4557){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x3e4557):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x53b424=this['filteredItems']['length']>=this['options']['maxItems'];_0x53b424&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x53b424),this['open']();}['renderItems'](_0x1a9cc6){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']((_0x5cb856,_0x47180c)=>{const _0x9d517=document['createElement']('div');_0x9d517['className']='autocomplete-select-item',_0x9d517['setAttribute']('role','option'),_0x9d517['setAttribute']('data-index',_0x47180c);const _0x528b23=this['options']['renderItem'](_0x5cb856);let _0x28cc73='';_0x528b23['icon']&&(_0x28cc73='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x528b23['iconClass']||'')+'\x22>'+_0x528b23['icon']+'</span>'),_0x9d517['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x28cc73+'\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'](_0x528b23['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x528b23['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x528b23['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x9d517['addEventListener']('click',()=>{this['selectItem'](_0x5cb856);}),_0x9d517['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x47180c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x9d517);}),_0x1a9cc6?(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'](_0x2f2b62){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x2f2b62)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x447248){this['selectedItem']=_0x447248;const _0x47cc94=this['options']['renderItem'](_0x447248);this['input']['value']=_0x47cc94['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x447248);}['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'](_0x22fe25){if(_0x22fe25){this['selectedItem']=_0x22fe25;const _0x453ecf=this['options']['renderItem'](_0x22fe25);this['input']['value']=_0x453ecf['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x5b40cd){this['allItems']=_0x5b40cd,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'](_0x1bb462){this['input']['placeholder']=_0x1bb462;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5666b1=null){const _0x9e79c7=document['getElementById']('admin-menu-container'),_0x2bf0b6=document['getElementById']('admin-menu-btn'),_0x50419b=document['getElementById']('admin-menu');if(!_0x9e79c7||!_0x2bf0b6||!_0x50419b)return;try{!_0x5666b1&&(_0x5666b1=await API['getCurrentUser']());if(_0x5666b1){const _0x4b13b=window['Permissions'],_0x52e276=_0x4b13b['hasServerPermission'](_0x5666b1,'*')||_0x4b13b['hasEnvPermission'](_0x5666b1,'environments:manage')||_0x4b13b['hasServerPermission'](_0x5666b1,'users:create')||_0x4b13b['hasTeamPermission'](_0x5666b1,'teams:manage')||_0x4b13b['hasEnvPermission'](_0x5666b1,'environments:view_details');if(!_0x52e276)return;_0x9e79c7['hidden']=![];if(!_0x4b13b['hasServerPermission'](_0x5666b1,'*')){const _0x16f3c0=_0x50419b['querySelectorAll']('.admin-menu-item');_0x16f3c0['forEach'](_0x442756=>{const _0x487e67=_0x442756['querySelector']('.option-text')?.['textContent']?.['trim']();_0x487e67==='Users'&&!_0x4b13b['hasServerPermission'](_0x5666b1,'users:create')&&(_0x442756['hidden']=!![]),_0x487e67==='Skills'&&(_0x442756['hidden']=!![]),_0x487e67==='Server\x20Settings'&&(_0x442756['hidden']=!![]),_0x487e67==='Server\x20Administration'&&(_0x442756['hidden']=!![]),_0x487e67==='Git\x20History'&&(_0x442756['hidden']=!![]),_0x487e67==='Roles'&&(_0x442756['hidden']=!![]);});}_0x2bf0b6['addEventListener']('click',_0x52207d=>{_0x52207d['stopPropagation']();const _0x141c63=document['getElementById']('actions-menu');if(_0x141c63)_0x141c63['hidden']=!![];_0x50419b['hidden']=!_0x50419b['hidden'];}),document['addEventListener']('click',_0xf44dd6=>{!_0x50419b['hidden']&&!_0x2bf0b6['contains'](_0xf44dd6['target'])&&!_0x50419b['contains'](_0xf44dd6['target'])&&(_0x50419b['hidden']=!![]);}),document['addEventListener']('keydown',_0x1bf824=>{_0x1bf824['key']==='Escape'&&!_0x50419b['hidden']&&(_0x50419b['hidden']=!![]);});}}catch(_0x474a5e){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x474a5e['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 _0xcd3f77=window['location']['pathname'],_0x455962=_0xcd3f77['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x455962)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x455962[0x1]),_0x455962[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x1381b7={}){const _0x5cc8ca=new URLSearchParams();_0x1381b7['userId']&&_0x5cc8ca['set']('userId',String(_0x1381b7['userId']));_0x1381b7['automation']&&_0x5cc8ca['set']('automation',String(_0x1381b7['automation']));const _0x5dc559=API_BASE+'/tasks/stats'+(_0x5cc8ca['toString']()?'?'+_0x5cc8ca['toString']():''),_0x170f77=await fetch(_0x5dc559);if(!_0x170f77['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x170f77['statusText']);return await _0x170f77['json']();},async 'getTasks'(_0x68b639={}){const _0x538650=new URLSearchParams();_0x68b639['status']&&_0x538650['set']('status',String(_0x68b639['status']));_0x68b639['environment']&&_0x538650['set']('environment',String(_0x68b639['environment']));_0x68b639['automation']&&_0x538650['set']('automation',String(_0x68b639['automation']));if(_0x68b639['include']){const _0x3338ef=Array['isArray'](_0x68b639['include'])?_0x68b639['include']['join'](','):String(_0x68b639['include']);_0x3338ef&&_0x538650['set']('include',_0x3338ef);}_0x68b639['filter']&&_0x538650['set']('filter',String(_0x68b639['filter']));_0x68b639['page']&&_0x538650['set']('page',String(_0x68b639['page']));_0x68b639['limit']&&_0x538650['set']('limit',String(_0x68b639['limit']));_0x68b639['userId']&&_0x538650['set']('userId',String(_0x68b639['userId']));_0x68b639['search']&&_0x538650['set']('search',String(_0x68b639['search']));_0x68b639['includeChildTasks']&&_0x538650['set']('includeChildTasks','true');const _0x481b5c=API_BASE+'/tasks'+(_0x538650['toString']()?'?'+_0x538650['toString']():''),_0x48c0ec=await fetch(_0x481b5c);if(!_0x48c0ec['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x48c0ec['statusText']);return await _0x48c0ec['json']();},async 'getAutomations'(_0x37f92a={}){const _0x2cc2cd=new URLSearchParams();_0x37f92a['environment']&&_0x2cc2cd['set']('environment',String(_0x37f92a['environment']));const _0x4ef98d=await fetch(API_BASE+'/api/automations'+(_0x2cc2cd['toString']()?'?'+_0x2cc2cd['toString']():''));if(!_0x4ef98d['ok']){const _0x5f2166=await _0x4ef98d['json']()['catch'](()=>({}));throw new Error(_0x5f2166['message']||_0x5f2166['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x4ef98d['statusText']);}return await _0x4ef98d['json']();},async 'getAutomation'(_0x390db0){const _0xce601e=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x390db0));if(!_0xce601e['ok']){const _0xe48625=await _0xce601e['json']()['catch'](()=>({}));throw new Error(_0xe48625['message']||_0xe48625['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0xce601e['statusText']);}return await _0xce601e['json']();},async 'createAutomation'(_0x1bde51){const _0x44c1e1=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1bde51||{})});if(!_0x44c1e1['ok']){const _0x3362a3=await _0x44c1e1['json']()['catch'](()=>({}));throw new Error(_0x3362a3['message']||_0x3362a3['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x44c1e1['statusText']);}return await _0x44c1e1['json']();},async 'updateAutomation'(_0x56a7ca,_0x577cd0){const _0x334573=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x56a7ca),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x577cd0||{})});if(!_0x334573['ok']){const _0x1d7a3b=await _0x334573['json']()['catch'](()=>({}));throw new Error(_0x1d7a3b['message']||_0x1d7a3b['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x334573['statusText']);}return await _0x334573['json']();},async 'deleteAutomation'(_0x500b05){const _0x220586=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x500b05),{'method':'DELETE'});if(!_0x220586['ok']){const _0x349599=await _0x220586['json']()['catch'](()=>({}));throw new Error(_0x349599['message']||_0x349599['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x220586['statusText']);}return await _0x220586['json']();},async 'triggerAutomation'(_0xdecdf3){const _0x418bb4=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xdecdf3)+'/trigger',{'method':'POST'});if(!_0x418bb4['ok']){const _0x5e5d87=await _0x418bb4['json']()['catch'](()=>({}));throw new Error(_0x5e5d87['message']||_0x5e5d87['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x418bb4['statusText']);}return await _0x418bb4['json']();},async 'setAutomationEnabled'(_0xac9256,_0x264182){const _0x119858=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xac9256)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x264182})});if(!_0x119858['ok']){const _0x3e32d3=await _0x119858['json']()['catch'](()=>({}));throw new Error(_0x3e32d3['message']||_0x3e32d3['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x119858['statusText']);}return await _0x119858['json']();},async 'getAutomationHistory'(_0x572429,_0xa300d3=0x32){const _0x4a43ff=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x572429)+'/history?limit='+encodeURIComponent(String(_0xa300d3)));if(!_0x4a43ff['ok']){const _0x3d5619=await _0x4a43ff['json']()['catch'](()=>({}));throw new Error(_0x3d5619['message']||_0x3d5619['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x4a43ff['statusText']);}return await _0x4a43ff['json']();},async 'getTask'(_0x4c2163,_0x22edbb={}){const _0x51f8f7=new URLSearchParams();if(_0x22edbb['include']){const _0x49c479=Array['isArray'](_0x22edbb['include'])?_0x22edbb['include']['join'](','):String(_0x22edbb['include']);if(_0x49c479)_0x51f8f7['set']('include',_0x49c479);}const _0x10a22e=await fetch(API_BASE+'/tasks/'+_0x4c2163+(_0x51f8f7['toString']()?'?'+_0x51f8f7['toString']():''));if(!_0x10a22e['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x10a22e['statusText']);return await _0x10a22e['json']();},async 'getTaskResults'(_0x7fcedd){const _0x57ed3d=await fetch(API_BASE+'/tasks/'+_0x7fcedd+'/results');if(!_0x57ed3d['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x57ed3d['statusText']);return await _0x57ed3d['json']();},async 'getTaskPatches'(_0x41fe6b){const _0x12c162=await fetch(API_BASE+'/tasks/'+_0x41fe6b+'/patches');if(!_0x12c162['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x12c162['statusText']);return await _0x12c162['json']();},async 'getTaskAttachments'(_0x1735b7){const _0x2e49c5=await fetch(API_BASE+'/tasks/'+_0x1735b7+'/attachments');if(!_0x2e49c5['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x2e49c5['statusText']);return await _0x2e49c5['json']();},async 'uploadAttachments'(_0x58cd6a,_0x5595fa){const _0x39a243=new FormData();for(const _0x48f003 of _0x5595fa){_0x39a243['append']('attachments',_0x48f003);}const _0x32af79=await fetch(API_BASE+'/tasks/'+_0x58cd6a+'/attachments',{'method':'POST','body':_0x39a243});if(!_0x32af79['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x32af79['statusText']);return await _0x32af79['json']();},async 'isAINameGenerationAvailable'(){try{const _0x3831f4=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x3831f4['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x3831f4['json']();}catch(_0x40b96c){return{'available':![],'reason':_0x40b96c['message']};}},async 'generateTaskName'(_0x9ef1fd){try{const _0x3686ad=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x9ef1fd})});return await _0x3686ad['json']();}catch(_0x4b3082){return{'success':![],'error':_0x4b3082['message']};}},async 'createTask'(_0x2cbe88){let _0x6de749,_0x4b21ca={};if(_0x2cbe88['files']&&_0x2cbe88['files']['length']>0x0){const _0x57b203=new FormData();for(const [_0x13a44f,_0x57f9bf]of Object['entries'](_0x2cbe88)){if(_0x13a44f!=='files'){if(_0x57f9bf==null)continue;typeof _0x57f9bf==='object'?_0x57b203['append'](_0x13a44f,JSON['stringify'](_0x57f9bf)):_0x57b203['append'](_0x13a44f,String(_0x57f9bf));}}for(const _0x4473a7 of _0x2cbe88['files']){_0x57b203['append']('attachments',_0x4473a7);}_0x6de749=_0x57b203;}else _0x4b21ca['Content-Type']='application/json',_0x6de749=JSON['stringify'](_0x2cbe88);const _0x2005f3=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4b21ca,'body':_0x6de749});if(!_0x2005f3['ok']){const _0xe298f1=await _0x2005f3['json'](),_0x598211=new Error(_0xe298f1['error']||'Failed\x20to\x20create\x20task:\x20'+_0x2005f3['statusText']),{message:_0x2bcafa,..._0x4e7883}=_0xe298f1;Object['assign'](_0x598211,_0x4e7883);throw _0x598211;}return await _0x2005f3['json']();},async 'createTestTask'(_0x10af26){const _0xcd0fa1=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10af26)});if(!_0xcd0fa1['ok']){const _0x405eab=await _0xcd0fa1['json']();throw new Error(_0x405eab['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xcd0fa1['statusText']);}return await _0xcd0fa1['json']();},async 'createEphemeralTest'(_0x5b15bd){const _0x127b84=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5b15bd)});if(!_0x127b84['ok']){const _0xe657b7=await _0x127b84['json']();throw new Error(_0xe657b7['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x127b84['statusText']);}return await _0x127b84['json']();},async 'createDeployTask'(_0x472e1c){const _0x3bf75d=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x472e1c)});if(!_0x3bf75d['ok']){const _0x995740=await _0x3bf75d['json']();throw new Error(_0x995740['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3bf75d['statusText']);}return await _0x3bf75d['json']();},async 'getEnvironments'(){const _0x1d8db1=await fetch(API_BASE+'/environments');if(!_0x1d8db1['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x1d8db1['statusText']);return await _0x1d8db1['json']();},async 'getEnvironment'(_0xad77fd){const _0x409f6f=await fetch(API_BASE+'/environments/'+_0xad77fd);if(!_0x409f6f['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x409f6f['statusText']);return await _0x409f6f['json']();},async 'getEnvironmentRepoHistory'(_0x446ff7,_0x5a8fe1,_0x5f3366={}){if(!_0x446ff7||!_0x5a8fe1)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3137b4=new URLSearchParams();if(_0x5f3366['limit'])_0x3137b4['set']('limit',String(_0x5f3366['limit']));if(_0x5f3366['offset'])_0x3137b4['set']('offset',String(_0x5f3366['offset']));if(_0x5f3366['search'])_0x3137b4['set']('search',String(_0x5f3366['search']));if(_0x5f3366['branch'])_0x3137b4['set']('branch',String(_0x5f3366['branch']));const _0x307aca=API_BASE+'/environments/'+encodeURIComponent(_0x446ff7)+'/repos/'+encodeURIComponent(_0x5a8fe1)+'/git/history',_0x1517f4=await fetch(''+_0x307aca+(_0x3137b4['toString']()?'?'+_0x3137b4['toString']():''));if(!_0x1517f4['ok']){const _0x5837e1=await _0x1517f4['json']()['catch'](()=>({}));throw new Error(_0x5837e1['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x1517f4['statusText']);}return await _0x1517f4['json']();},async 'getEnvironmentRepoCommit'(_0x2e6d17,_0x50bee0,_0x20db36){if(!_0x2e6d17||!_0x50bee0||!_0x20db36)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5201a2=API_BASE+'/environments/'+encodeURIComponent(_0x2e6d17)+'/repos/'+encodeURIComponent(_0x50bee0)+'/git/commits/'+encodeURIComponent(_0x20db36),_0x2a295a=await fetch(_0x5201a2);if(!_0x2a295a['ok']){const _0x30fc38=await _0x2a295a['json']()['catch'](()=>({}));throw new Error(_0x30fc38['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x2a295a['statusText']);}return await _0x2a295a['json']();},async 'getEnvironmentRepoBranches'(_0x598757,_0x1175a9){if(!_0x598757||!_0x1175a9)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x1f3fb5=API_BASE+'/environments/'+encodeURIComponent(_0x598757)+'/repos/'+encodeURIComponent(_0x1175a9)+'/git/branches',_0x168d30=await fetch(_0x1f3fb5);if(!_0x168d30['ok']){const _0x1e719a=await _0x168d30['json']()['catch'](()=>({}));throw new Error(_0x1e719a['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x168d30['statusText']);}return await _0x168d30['json']();},async 'revertEnvironmentRepoCommit'(_0x2fd8f1,_0x2c4f09,_0x3f3c70,_0x140a0d={}){if(!_0x2fd8f1||!_0x2c4f09||!_0x3f3c70)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x2e2f3e=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x2fd8f1)+'/repos/'+encodeURIComponent(_0x2c4f09)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x3f3c70,..._0x140a0d})});if(!_0x2e2f3e['ok']){const _0x4e2c5e=await _0x2e2f3e['json']()['catch'](()=>({}));throw new Error(_0x4e2c5e['message']||_0x4e2c5e['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x2e2f3e['statusText']);}return await _0x2e2f3e['json']();},async 'getTemplates'(_0xb4c23={}){const _0x36c4d9=new URLSearchParams();if(_0xb4c23['include']){const _0x88261b=Array['isArray'](_0xb4c23['include'])?_0xb4c23['include']['join'](','):String(_0xb4c23['include']);if(_0x88261b)_0x36c4d9['set']('include',_0x88261b);}const _0x30cfef=await fetch(API_BASE+'/templates'+(_0x36c4d9['toString']()?'?'+_0x36c4d9['toString']():''));if(!_0x30cfef['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x30cfef['statusText']);return await _0x30cfef['json']();},async 'getTemplatesForEnvironment'(_0x334b78,_0x58cb63={}){if(!_0x334b78)throw new Error('Environment\x20name\x20is\x20required');const _0xf5de51=new URLSearchParams();if(_0x58cb63['include']){const _0x565edd=Array['isArray'](_0x58cb63['include'])?_0x58cb63['include']['join'](','):String(_0x58cb63['include']);if(_0x565edd)_0xf5de51['set']('include',_0x565edd);}const _0x33ed3a=await fetch(API_BASE+'/templates/'+_0x334b78+(_0xf5de51['toString']()?'?'+_0xf5de51['toString']():''));if(!_0x33ed3a['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x334b78+':\x20'+_0x33ed3a['statusText']);return await _0x33ed3a['json']();},async 'getTemplate'(_0x3f8fb0,_0x1a25b0,_0x3f6471={}){if(!_0x3f8fb0||!_0x1a25b0)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x29311a=new URLSearchParams();if(_0x3f6471['include']){const _0x4342d1=Array['isArray'](_0x3f6471['include'])?_0x3f6471['include']['join'](','):String(_0x3f6471['include']);if(_0x4342d1)_0x29311a['set']('include',_0x4342d1);}const _0x47c72c=await fetch(API_BASE+'/templates/'+_0x3f8fb0+'/'+_0x1a25b0+(_0x29311a['toString']()?'?'+_0x29311a['toString']():''));if(!_0x47c72c['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x47c72c['statusText']);return await _0x47c72c['json']();},async 'getTaskLogs'(_0x4a1d97,_0x3b51b7={}){if(!_0x4a1d97)throw new Error('Task\x20ID\x20is\x20required');const _0x43e109=new URLSearchParams();_0x3b51b7['tail']&&_0x43e109['set']('tail',String(_0x3b51b7['tail']));const _0x5da035=await fetch(API_BASE+'/tasks/'+_0x4a1d97+'/logs'+(_0x43e109['toString']()?'?'+_0x43e109['toString']():''));if(!_0x5da035['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x5da035['statusText']);return await _0x5da035['text']();},async 'getContainers'(){const _0x479f04=await fetch(API_BASE+'/containers');if(!_0x479f04['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x479f04['statusText']);return await _0x479f04['json']();},async 'getContainer'(_0x1a8e8b){const _0x324791=await fetch(API_BASE+'/containers/'+_0x1a8e8b);if(!_0x324791['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x324791['statusText']);return await _0x324791['json']();},async 'startInteractiveContainer'(_0x344cca){const _0x4b919f=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x344cca)});if(!_0x4b919f['ok']){const _0x181bd5=await _0x4b919f['json']()['catch'](()=>({}));throw new Error(_0x181bd5['message']||'Failed\x20to\x20start\x20container:\x20'+_0x4b919f['statusText']);}return await _0x4b919f['json']();},async 'startContainerCodeServer'(_0x46901a,_0xa99fdb={}){if(!_0x46901a)throw new Error('Container\x20ID\x20is\x20required');const _0x16cb84=new URLSearchParams();_0xa99fdb['theme']&&_0x16cb84['set']('theme',_0xa99fdb['theme']);const _0x35833b=await fetch(API_BASE+'/containers/'+_0x46901a+'/code-server'+(_0x16cb84['toString']()?'?'+_0x16cb84['toString']():'')),_0x4293f0=await _0x35833b['json']()['catch'](()=>({}));if(!_0x35833b['ok'])throw new Error(_0x4293f0['message']||_0x4293f0['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x35833b['statusText']);return _0x4293f0;},async 'stopContainer'(_0x28732c){const _0x59db5d=await fetch(API_BASE+'/containers/'+_0x28732c,{'method':'DELETE'});if(!_0x59db5d['ok']){const _0x5c533f=await _0x59db5d['json']()['catch'](()=>({}));throw new Error(_0x5c533f['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x59db5d['statusText']);}return await _0x59db5d['json']();},async 'stopTask'(_0x597fc4){if(!_0x597fc4)throw new Error('Task\x20ID\x20is\x20required');const _0x39fb9a=await fetch(API_BASE+'/tasks/'+_0x597fc4+'/stop',{'method':'POST'});if(!_0x39fb9a['ok']){const _0x2f9b91=await _0x39fb9a['json']()['catch'](()=>({}));throw new Error(_0x2f9b91['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x39fb9a['statusText']);}return await _0x39fb9a['json']();},async 'interruptTask'(_0x207deb){if(!_0x207deb)throw new Error('Task\x20ID\x20is\x20required');const _0x21b1a6=await fetch(API_BASE+'/tasks/'+_0x207deb+'/interrupt',{'method':'POST'});if(!_0x21b1a6['ok']){const _0x273817=await _0x21b1a6['json']()['catch'](()=>({}));throw new Error(_0x273817['error']||_0x273817['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x21b1a6['statusText']);}return await _0x21b1a6['json']();},async 'startTask'(_0x5c0bf1){if(!_0x5c0bf1)throw new Error('Task\x20ID\x20is\x20required');const _0xf2ef5f=await fetch(API_BASE+'/tasks/'+_0x5c0bf1+'/start',{'method':'POST'});if(!_0xf2ef5f['ok']){const _0x513ce3=await _0xf2ef5f['json']()['catch'](()=>({}));throw new Error(_0x513ce3['error']||'Failed\x20to\x20start\x20task:\x20'+_0xf2ef5f['statusText']);}return await _0xf2ef5f['json']();},async 'deleteTask'(_0x3f357a){if(!_0x3f357a)throw new Error('Task\x20ID\x20is\x20required');const _0xbc0f7f=await fetch(API_BASE+'/tasks/'+_0x3f357a,{'method':'DELETE'});if(!_0xbc0f7f['ok']){const _0x1aec35=await _0xbc0f7f['json']()['catch'](()=>({}));throw new Error(_0x1aec35['error']||'Failed\x20to\x20delete\x20task:\x20'+_0xbc0f7f['statusText']);}return await _0xbc0f7f['json']();},async 'refreshTasksFromDisk'(){const _0x32844d=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x32844d['ok']){const _0x16fee3=await _0x32844d['json']()['catch'](()=>({}));throw new Error(_0x16fee3['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x32844d['statusText']);}return await _0x32844d['json']();},async 'approveTask'(_0x5a3023,_0x4ab29a={}){if(!_0x5a3023)throw new Error('Task\x20ID\x20is\x20required');const _0x475d08={'commit_message':_0x4ab29a['commit_message']||'','pull':_0x4ab29a['pull']??![],'push':_0x4ab29a['push']??![],'conflict_strategy':_0x4ab29a['conflict_strategy']||'rebase'};_0x4ab29a['new_branch']&&(_0x475d08['new_branch']=_0x4ab29a['new_branch']);const _0x47f346=await fetch(API_BASE+'/tasks/'+_0x5a3023+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x475d08)});if(!_0x47f346['ok']){const _0x1acc48=await _0x47f346['json']()['catch'](()=>({}));let _0x457af6=_0x1acc48['error']||_0x1acc48['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x47f346['statusText'];if(_0x1acc48['results']&&Array['isArray'](_0x1acc48['results'])){const _0x3400d4=_0x1acc48['results']['filter'](_0x46aaca=>!_0x46aaca['success']&&_0x46aaca['error']);_0x3400d4['length']>0x0&&(_0x457af6=_0x3400d4[0x0]['error']);}const _0x1c13bc=new Error(_0x457af6);_0x1c13bc['hasConflicts']=_0x1acc48['results']?.['some'](_0x2f2f0d=>_0x2f2f0d['conflict'])||![];throw _0x1c13bc;}return await _0x47f346['json']();},async 'getPullRequestInfo'(_0xbd5a93){if(!_0xbd5a93)throw new Error('Task\x20ID\x20is\x20required');const _0x3e90af=await fetch(API_BASE+'/tasks/'+_0xbd5a93+'/pull-request-info');if(!_0x3e90af['ok']){const _0x3ed8c2=await _0x3e90af['json']()['catch'](()=>({}));throw new Error(_0x3ed8c2['error']||_0x3ed8c2['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x3e90af['statusText']);}return await _0x3e90af['json']();},async 'createPullRequests'(_0x15b7dd,_0x2ab332){if(!_0x15b7dd)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2ab332||!Array['isArray'](_0x2ab332))throw new Error('repos\x20array\x20is\x20required');const _0x56391e=await fetch(API_BASE+'/tasks/'+_0x15b7dd+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x2ab332})});if(!_0x56391e['ok']){const _0x4c12b2=await _0x56391e['json']()['catch'](()=>({}));let _0x4d4aea=_0x4c12b2['error']||_0x4c12b2['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x56391e['statusText'];if(_0x4c12b2['results']&&Array['isArray'](_0x4c12b2['results'])){const _0x2e3e2f=_0x4c12b2['results']['filter'](_0x32e730=>!_0x32e730['success']&&_0x32e730['error']);_0x2e3e2f['length']>0x0&&(_0x4d4aea=_0x2e3e2f[0x0]['error']);}throw new Error(_0x4d4aea);}return await _0x56391e['json']();},async 'syncRepos'(_0x3a803a){if(!_0x3a803a)throw new Error('Task\x20ID\x20is\x20required');const _0x2b21ca=await fetch(API_BASE+'/tasks/'+_0x3a803a+'/sync-repos',{'method':'POST'});if(!_0x2b21ca['ok']){const _0x210e55=await _0x2b21ca['json']()['catch'](()=>({}));throw new Error(_0x210e55['error']||_0x210e55['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2b21ca['statusText']);}return await _0x2b21ca['json']();},async 'getIbmiSyncInfo'(_0x4acbf8){if(!_0x4acbf8)throw new Error('Task\x20ID\x20is\x20required');const _0x2dd36e=await fetch(API_BASE+'/tasks/'+_0x4acbf8+'/ibmi-sync-info');if(!_0x2dd36e['ok']){const _0x2e5ac7=await _0x2dd36e['json']()['catch'](()=>({}));throw new Error(_0x2e5ac7['error']||_0x2e5ac7['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x2dd36e['json']();},async 'getSyncFiles'(_0x2ce93f){if(!_0x2ce93f)throw new Error('Task\x20ID\x20is\x20required');const _0x555c64=await fetch(API_BASE+'/tasks/'+_0x2ce93f+'/sync-to-ibmi/files');if(!_0x555c64['ok']){const _0x26c1b4=await _0x555c64['json']()['catch'](()=>({}));throw new Error(_0x26c1b4['error']||_0x26c1b4['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x555c64['json']();},async 'syncToIbmi'(_0x1b7d8a,_0x1036ac,_0x160f1f=null,_0x521000=null,_0x1f4302=null){if(!_0x1b7d8a)throw new Error('Task\x20ID\x20is\x20required');const _0x250f5d={'library':_0x1036ac};if(_0x160f1f)_0x250f5d['user']=_0x160f1f;if(_0x521000)_0x250f5d['password']=_0x521000;if(_0x1f4302)_0x250f5d['files']=_0x1f4302;const _0x9230d1=await fetch(API_BASE+'/tasks/'+_0x1b7d8a+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x250f5d)});if(!_0x9230d1['ok']){const _0x1ef749=await _0x9230d1['json']()['catch'](()=>({}));throw new Error(_0x1ef749['error']||_0x1ef749['message']||'Sync\x20failed');}return await _0x9230d1['json']();},async 'getIbmiSyncLog'(_0x397866){if(!_0x397866)throw new Error('Task\x20ID\x20is\x20required');const _0x695c=await fetch(API_BASE+'/tasks/'+_0x397866+'/ibmi-sync-log');if(!_0x695c['ok']){const _0x3a0dec=await _0x695c['json']()['catch'](()=>({}));throw new Error(_0x3a0dec['error']||_0x3a0dec['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x695c['json']();},async 'pullChanges'(_0x2933de){if(!_0x2933de)throw new Error('Task\x20ID\x20is\x20required');const _0x304c71=await fetch(API_BASE+'/tasks/'+_0x2933de+'/pull-changes',{'method':'POST'});if(!_0x304c71['ok']){const _0x5a53fb=await _0x304c71['json']()['catch'](()=>({}));throw new Error(_0x5a53fb['error']||_0x5a53fb['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x304c71['statusText']);}return await _0x304c71['json']();},async 'readFile'(_0x5218d7,_0x15ebd2){if(!_0x5218d7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x15ebd2)throw new Error('File\x20path\x20is\x20required');const _0x45ac75=await fetch(API_BASE+'/tasks/'+_0x5218d7+'/files?path='+encodeURIComponent(_0x15ebd2));if(!_0x45ac75['ok']){const _0x49b85c=await _0x45ac75['json']()['catch'](()=>({}));throw new Error(_0x49b85c['error']||_0x49b85c['message']||'Failed\x20to\x20read\x20file:\x20'+_0x45ac75['statusText']);}return await _0x45ac75['json']();},'getTaskFileDownloadUrl'(_0x13a371,_0x1ce86b){if(!_0x13a371)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1ce86b)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x13a371+'/files/download?path='+encodeURIComponent(_0x1ce86b);},async 'writeFile'(_0x1b2179,_0xd019d6,_0x3c9efe){if(!_0x1b2179)throw new Error('Task\x20ID\x20is\x20required');if(!_0xd019d6)throw new Error('File\x20path\x20is\x20required');if(_0x3c9efe===undefined)throw new Error('Content\x20is\x20required');const _0x46deb0=await fetch(API_BASE+'/tasks/'+_0x1b2179+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xd019d6,'content':_0x3c9efe})});if(!_0x46deb0['ok']){const _0x2dc115=await _0x46deb0['json']()['catch'](()=>({}));throw new Error(_0x2dc115['error']||_0x2dc115['message']||'Failed\x20to\x20write\x20file:\x20'+_0x46deb0['statusText']);}return await _0x46deb0['json']();},async 'uploadTaskFiles'(_0x3beb5c,_0x535cf0,_0x2b5edf){if(!_0x3beb5c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x535cf0)throw new Error('Target\x20directory\x20is\x20required');if(!_0x2b5edf||_0x2b5edf['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x47fc4b=new FormData();_0x47fc4b['append']('targetDir',_0x535cf0);for(const _0x3b154b of _0x2b5edf){_0x47fc4b['append']('files',_0x3b154b,_0x3b154b['name']);}const _0x37b56d=await fetch(API_BASE+'/tasks/'+_0x3beb5c+'/files/upload',{'method':'POST','body':_0x47fc4b});if(!_0x37b56d['ok']){const _0x54fd37=await _0x37b56d['json']()['catch'](()=>({}));throw new Error(_0x54fd37['error']||_0x54fd37['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x37b56d['statusText']);}return await _0x37b56d['json']();},async 'createDirectory'(_0x208c20,_0x4b8221){if(!_0x208c20)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4b8221)throw new Error('Directory\x20path\x20is\x20required');const _0x54646b=await fetch(API_BASE+'/tasks/'+_0x208c20+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4b8221})});if(!_0x54646b['ok']){const _0x175e5c=await _0x54646b['json']()['catch'](()=>({}));throw new Error(_0x175e5c['error']||_0x175e5c['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x54646b['statusText']);}return await _0x54646b['json']();},async 'renamePath'(_0x1a536b,_0x15a1aa,_0x488b04){if(!_0x1a536b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x15a1aa)throw new Error('Source\x20path\x20is\x20required');if(!_0x488b04)throw new Error('Destination\x20path\x20is\x20required');const _0x486ab9=await fetch(API_BASE+'/tasks/'+_0x1a536b+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x15a1aa,'newPath':_0x488b04})});if(!_0x486ab9['ok']){const _0x38c4ab=await _0x486ab9['json']()['catch'](()=>({}));throw new Error(_0x38c4ab['error']||_0x38c4ab['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x486ab9['statusText']);}return await _0x486ab9['json']();},async 'deleteFile'(_0x284094,_0x28c735){if(!_0x284094)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28c735)throw new Error('File\x20path\x20is\x20required');const _0x5a273f=await fetch(API_BASE+'/tasks/'+_0x284094+'/files?path='+encodeURIComponent(_0x28c735),{'method':'DELETE'});if(!_0x5a273f['ok']){const _0x5d8bd9=await _0x5a273f['json']()['catch'](()=>({}));throw new Error(_0x5d8bd9['error']||_0x5d8bd9['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5a273f['statusText']);}return await _0x5a273f['json']();},async 'deleteDirectory'(_0x103219,_0x16e46a){if(!_0x103219)throw new Error('Task\x20ID\x20is\x20required');if(!_0x16e46a)throw new Error('Directory\x20path\x20is\x20required');const _0x4f0fe6=await fetch(API_BASE+'/tasks/'+_0x103219+'/files/directory?path='+encodeURIComponent(_0x16e46a),{'method':'DELETE'});if(!_0x4f0fe6['ok']){const _0x1fca04=await _0x4f0fe6['json']()['catch'](()=>({}));throw new Error(_0x1fca04['error']||_0x1fca04['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x4f0fe6['statusText']);}return await _0x4f0fe6['json']();},async 'discardFile'(_0x201f71,_0x322427,_0x42941c){if(!_0x201f71)throw new Error('Task\x20ID\x20is\x20required');if(!_0x322427)throw new Error('File\x20path\x20is\x20required');if(!_0x42941c)throw new Error('Repository\x20path\x20is\x20required');const _0x49c4b3=await fetch(API_BASE+'/tasks/'+_0x201f71+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x322427,'repoPath':_0x42941c})});if(!_0x49c4b3['ok']){const _0x25fdc6=await _0x49c4b3['json']()['catch'](()=>({}));throw new Error(_0x25fdc6['error']||_0x25fdc6['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x49c4b3['statusText']);}return await _0x49c4b3['json']();},async 'followUpTask'(_0x1c9922,_0x2673a4={}){if(!_0x1c9922)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2673a4['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x457954,_0xffb030={};if(_0x2673a4['files']&&_0x2673a4['files']['length']>0x0){const _0x11eeca=new FormData();_0x11eeca['append']('instructions',_0x2673a4['instructions']);for(const _0x374ecf of _0x2673a4['files']){_0x11eeca['append']('attachments',_0x374ecf);}_0x457954=_0x11eeca;}else _0xffb030['Content-Type']='application/json',_0x457954=JSON['stringify']({'instructions':_0x2673a4['instructions']});const _0xfcd7c6=await fetch(API_BASE+'/tasks/'+_0x1c9922+'/follow-up',{'method':'POST','headers':_0xffb030,'body':_0x457954});if(!_0xfcd7c6['ok']){const _0x17c23d=await _0xfcd7c6['json']()['catch'](()=>({}));throw new Error(_0x17c23d['error']||_0x17c23d['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0xfcd7c6['statusText']);}return await _0xfcd7c6['json']();},async 'getTaskRewindPoints'(_0x51fcaa){if(!_0x51fcaa)throw new Error('Task\x20ID\x20is\x20required');const _0x13d092=await fetch(API_BASE+'/tasks/'+_0x51fcaa+'/rewind-points');if(!_0x13d092['ok']){const _0x5d01b1=await _0x13d092['json']()['catch'](()=>({}));throw new Error(_0x5d01b1['error']||_0x5d01b1['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x13d092['statusText']);}return await _0x13d092['json']();},async 'rewindTask'(_0x1d36f4,_0x46e95e={}){if(!_0x1d36f4)throw new Error('Task\x20ID\x20is\x20required');const _0x5dc985=Number['isInteger'](_0x46e95e['targetFollowUpCount'])?_0x46e95e['targetFollowUpCount']:0x0,_0x57cdb3={'targetFollowUpCount':_0x5dc985};typeof _0x46e95e['instructions']==='string'&&_0x46e95e['instructions']['trim']()&&(_0x57cdb3['instructions']=_0x46e95e['instructions']['trim']());typeof _0x46e95e['rewindFiles']==='boolean'&&(_0x57cdb3['rewindFiles']=_0x46e95e['rewindFiles']);const _0x1c7dcc=await fetch(API_BASE+'/tasks/'+_0x1d36f4+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x57cdb3)});if(!_0x1c7dcc['ok']){const _0x50cc4e=await _0x1c7dcc['json']()['catch'](()=>({}));throw new Error(_0x50cc4e['error']||_0x50cc4e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x1c7dcc['statusText']);}return await _0x1c7dcc['json']();},async 'login'(_0xc206af,_0x92b686){const _0x5665c3=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0xc206af,'password':_0x92b686})});if(!_0x5665c3['ok']){const _0xa2afd8=await _0x5665c3['json']();throw new Error(_0xa2afd8['message']||'Login\x20failed');}return await _0x5665c3['json']();},async 'logout'(){const _0x16718c=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x16718c['ok']){const _0x471a58=await _0x16718c['json']();throw new Error(_0x471a58['message']||'Logout\x20failed');}return await _0x16718c['json']();},async 'getCurrentUser'(){const _0x438a2b=await fetch(API_BASE+'/auth/me');if(!_0x438a2b['ok'])throw new Error('Not\x20authenticated');const _0x3480eb=await _0x438a2b['json']();return _0x3480eb['user'];},async 'getRolesInfo'(){const _0x1df6fe=await fetch(API_BASE+'/users/roles');if(!_0x1df6fe['ok']){const _0x1224d6=await _0x1df6fe['json']();throw new Error(_0x1224d6['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1df6fe['json']();},async 'getUsers'(){const _0x569328=await fetch(API_BASE+'/users');if(!_0x569328['ok']){const _0x4c373f=await _0x569328['json']();throw new Error(_0x4c373f['message']||'Failed\x20to\x20get\x20users');}return await _0x569328['json']();},async 'getUser'(_0x14bedd){const _0x2e98d0=await fetch(API_BASE+'/users/'+_0x14bedd);if(!_0x2e98d0['ok']){const _0x2b3429=await _0x2e98d0['json']();throw new Error(_0x2b3429['message']||'Failed\x20to\x20get\x20user');}return await _0x2e98d0['json']();},async 'createUser'(_0x362102){const _0x5cf89d=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x362102)});if(!_0x5cf89d['ok']){const _0x233dc0=await _0x5cf89d['json']();throw new Error(_0x233dc0['message']||'Failed\x20to\x20create\x20user');}return await _0x5cf89d['json']();},async 'updateUser'(_0x1d2c30,_0x31b12f){const _0x25a5d6=await fetch(API_BASE+'/users/'+_0x1d2c30,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x31b12f)});if(!_0x25a5d6['ok']){const _0x1c3d88=await _0x25a5d6['json']();throw new Error(_0x1c3d88['message']||'Failed\x20to\x20update\x20user');}return await _0x25a5d6['json']();},async 'deleteUser'(_0x47dadc){const _0xdd6006=await fetch(API_BASE+'/users/'+_0x47dadc,{'method':'DELETE'});if(!_0xdd6006['ok']){const _0x14907f=await _0xdd6006['json']();throw new Error(_0x14907f['message']||'Failed\x20to\x20delete\x20user');}return await _0xdd6006['json']();},async 'stopAllContainers'(){const _0xe89d9a=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x2fe6f8=await _0xe89d9a['json']()['catch'](()=>({}));if(!_0xe89d9a['ok'])throw new Error(_0x2fe6f8['message']||_0x2fe6f8['error']||'Failed\x20to\x20stop\x20containers');return _0x2fe6f8;},async 'removeStoppedContainers'(){const _0x499e2b=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x4f70b4=await _0x499e2b['json']()['catch'](()=>({}));if(!_0x499e2b['ok'])throw new Error(_0x4f70b4['message']||_0x4f70b4['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x4f70b4;},async 'pruneDockerResources'(){const _0x413eb6=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x10772a=await _0x413eb6['json']()['catch'](()=>({}));if(!_0x413eb6['ok'])throw new Error(_0x10772a['message']||_0x10772a['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x10772a;},async 'getUpdateSettings'(){const _0x169903=await fetch(API_BASE+'/health/update-settings'),_0x5e4a8a=await _0x169903['json']()['catch'](()=>({}));if(!_0x169903['ok'])throw new Error(_0x5e4a8a['message']||_0x5e4a8a['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x5e4a8a;},async 'applyServerUpdate'(_0x4fc500){const _0x24c4ac=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x4fc500})}),_0x539366=await _0x24c4ac['json']()['catch'](()=>({}));if(!_0x24c4ac['ok']){const _0x435faf=new Error(_0x539366['message']||_0x539366['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x539366['output']!==undefined)_0x435faf['output']=_0x539366['output'];if(_0x539366['error']!==undefined)_0x435faf['commandError']=_0x539366['error'];throw _0x435faf;}return _0x539366;},async 'restartServer'(){const _0x36c59c=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x496aa5=await _0x36c59c['json']()['catch'](()=>({}));if(!_0x36c59c['ok'])throw new Error(_0x496aa5['message']||_0x496aa5['error']||'Failed\x20to\x20restart\x20server');return _0x496aa5;},async 'createPasswordToken'(_0x59ca27,_0x4dfc96='setup',_0x2cd5a2=![]){const _0x1580d8=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x59ca27,'type':_0x4dfc96,'sendEmail':_0x2cd5a2})});if(!_0x1580d8['ok']){const _0xca0c5=await _0x1580d8['json']();throw new Error(_0xca0c5['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x1580d8['json']();},async 'getEmailConfig'(){const _0x5bce62=await fetch(API_BASE+'/password/email-config');if(!_0x5bce62['ok']){const _0x10c667=await _0x5bce62['json']();throw new Error(_0x10c667['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x5bce62['json']();},async 'updateTaskName'(_0xc10d60,_0x173a73){const _0x1bdeb9=await fetch(API_BASE+'/tasks/'+_0xc10d60,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x173a73})});if(!_0x1bdeb9['ok']){const _0x33935a=await _0x1bdeb9['json']();throw new Error(_0x33935a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x1bdeb9['json']();},async 'pinTask'(_0x3999e9,_0x8e739,_0x5a45b1=null){if(!_0x3999e9)throw new Error('Task\x20ID\x20is\x20required');const _0x17b923={'pinned':_0x8e739};_0x5a45b1&&_0x5a45b1['length']>0x0&&(_0x17b923['additionalTaskIds']=_0x5a45b1);const _0x2c119f=await fetch(API_BASE+'/tasks/'+_0x3999e9+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x17b923)});if(!_0x2c119f['ok']){const _0x572e08=await _0x2c119f['json']();throw new Error(_0x572e08['error']||'Failed\x20to\x20pin\x20task');}return await _0x2c119f['json']();},async 'setTaskWinner'(_0x45892a,_0x1641dc,_0x306735=[]){if(!_0x45892a)throw new Error('Task\x20ID\x20is\x20required');const _0x139709=await fetch(API_BASE+'/tasks/'+_0x45892a+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x1641dc,'siblings':_0x306735})});if(!_0x139709['ok']){const _0x4479b3=await _0x139709['json']();throw new Error(_0x4479b3['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x139709['json']();},async 'setTaskLoser'(_0x3b699c,_0x27ff41){if(!_0x3b699c)throw new Error('Task\x20ID\x20is\x20required');const _0x83cd00=await fetch(API_BASE+'/tasks/'+_0x3b699c+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x27ff41})});if(!_0x83cd00['ok']){const _0x368afe=await _0x83cd00['json']();throw new Error(_0x368afe['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x83cd00['json']();},async 'createTaskGroup'(_0x37fc0d){const _0x512cc3=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x37fc0d)});if(!_0x512cc3['ok']){const _0xb4e940=await _0x512cc3['json']();throw new Error(_0xb4e940['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x512cc3['json']();},async 'getTaskGroups'(_0x540e8c={}){const _0x26bda4=new URLSearchParams();if(_0x540e8c['userId'])_0x26bda4['set']('userId',String(_0x540e8c['userId']));if(_0x540e8c['status'])_0x26bda4['set']('status',String(_0x540e8c['status']));if(_0x540e8c['limit'])_0x26bda4['set']('limit',String(_0x540e8c['limit']));const _0xae2bcb=API_BASE+'/tasks/groups'+(_0x26bda4['toString']()?'?'+_0x26bda4['toString']():''),_0x65f93e=await fetch(_0xae2bcb);if(!_0x65f93e['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x65f93e['json']();},async 'getTaskGroup'(_0x249986){const _0x24d517=await fetch(API_BASE+'/tasks/groups/'+_0x249986);if(!_0x24d517['ok']){const _0x2ce24e=await _0x24d517['json']();throw new Error(_0x2ce24e['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x24d517['json']();},async 'updateTaskGroup'(_0x26122d,_0x8bc5e3,_0x30267e){const _0x193d2f=await fetch(API_BASE+'/tasks/'+_0x26122d+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x8bc5e3,'groupIndex':_0x30267e})});if(!_0x193d2f['ok']){const _0x88fb55=await _0x193d2f['json']();throw new Error(_0x88fb55['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x193d2f['json']();},async 'removeTaskFromGroup'(_0x152976){return this['updateTaskGroup'](_0x152976,null,null);},async 'deleteTaskGroup'(_0x254cd0,_0x4d89ac=![]){const _0x49fefa=_0x4d89ac?'?deleteTasks=true':'',_0x295ce5=await fetch(API_BASE+'/tasks/groups/'+_0x254cd0+_0x49fefa,{'method':'DELETE'});if(!_0x295ce5['ok']){const _0x39c05f=await _0x295ce5['json']();throw new Error(_0x39c05f['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x5cd507,_0x4362ba){const _0x5c2ef7=await fetch(API_BASE+'/tasks/groups/'+_0x5cd507+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x4362ba})});if(!_0x5c2ef7['ok']){const _0xf72933=await _0x5c2ef7['json']();throw new Error(_0xf72933['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5c2ef7['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x425dda){if(!_0x425dda)throw new Error('Task\x20ID\x20is\x20required');const _0x3d8ca2=await fetch(API_BASE+'/tasks/'+_0x425dda+'/comments');if(!_0x3d8ca2['ok']){const _0x2b7e82=await _0x3d8ca2['json']()['catch'](()=>({}));throw new Error(_0x2b7e82['error']||'Failed\x20to\x20get\x20comments');}return await _0x3d8ca2['json']();},async 'addComment'(_0x101b19,_0x25bee6){if(!_0x101b19)throw new Error('Task\x20ID\x20is\x20required');if(!_0x25bee6)throw new Error('Comment\x20content\x20is\x20required');const _0x590211=await fetch(API_BASE+'/tasks/'+_0x101b19+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x25bee6})});if(!_0x590211['ok']){const _0x2686b1=await _0x590211['json']()['catch'](()=>({}));throw new Error(_0x2686b1['error']||'Failed\x20to\x20add\x20comment');}return await _0x590211['json']();},async 'updateComment'(_0xcdc24d,_0x2c2976,_0x3b9846){if(!_0xcdc24d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2c2976)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x3b9846)throw new Error('Comment\x20content\x20is\x20required');const _0x9f0c23=await fetch(API_BASE+'/tasks/'+_0xcdc24d+'/comments/'+_0x2c2976,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3b9846})});if(!_0x9f0c23['ok']){const _0x1b6f90=await _0x9f0c23['json']()['catch'](()=>({}));throw new Error(_0x1b6f90['error']||'Failed\x20to\x20update\x20comment');}return await _0x9f0c23['json']();},async 'deleteComment'(_0x2b4b08,_0x285d38){if(!_0x2b4b08)throw new Error('Task\x20ID\x20is\x20required');if(!_0x285d38)throw new Error('Comment\x20ID\x20is\x20required');const _0x2f5854=await fetch(API_BASE+'/tasks/'+_0x2b4b08+'/comments/'+_0x285d38,{'method':'DELETE'});if(!_0x2f5854['ok']){const _0x3c2a24=await _0x2f5854['json']()['catch'](()=>({}));throw new Error(_0x3c2a24['error']||'Failed\x20to\x20delete\x20comment');}return await _0x2f5854['json']();},async 'createObjective'(_0x34cf44){const _0xbf3674={'objective':!![],'name':_0x34cf44['name']||'','environment':_0x34cf44['environment']||null,'agents':_0x34cf44['agents']||[],'branches':_0x34cf44['branches']||{},'isPinned':_0x34cf44['isPinned']||![],'parentObjectiveId':_0x34cf44['parentObjectiveId']||null,'env_vars':_0x34cf44['envVars']||{},'parameters':{'instructions':_0x34cf44['instructions']||''},'files':_0x34cf44['files']||[],'jira':_0x34cf44['jira']||null};return this['createTask'](_0xbf3674);},async 'updateObjective'(_0x2574b3,_0x35ca36,_0x6a4ef2=[],_0x53f79d=[]){let _0x74939f,_0x2a616a={};const _0x97da96={..._0x35ca36};_0x53f79d&&_0x53f79d['length']>0x0&&(_0x97da96['removeAttachments']=_0x53f79d);if(_0x6a4ef2&&_0x6a4ef2['length']>0x0){const _0x2c525c=new FormData();for(const [_0x1c0eea,_0x2f1d25]of Object['entries'](_0x97da96)){if(_0x2f1d25==null)continue;typeof _0x2f1d25==='object'?_0x2c525c['append'](_0x1c0eea,JSON['stringify'](_0x2f1d25)):_0x2c525c['append'](_0x1c0eea,String(_0x2f1d25));}for(const _0x52df5e of _0x6a4ef2){_0x2c525c['append']('attachments',_0x52df5e);}_0x74939f=_0x2c525c;}else _0x2a616a['Content-Type']='application/json',_0x74939f=JSON['stringify'](_0x97da96);const _0x450449=await fetch(API_BASE+'/tasks/'+_0x2574b3,{'method':'PATCH','headers':_0x2a616a,'body':_0x74939f});if(!_0x450449['ok']){const _0x1839eb=await _0x450449['json']();throw new Error(_0x1839eb['error']||'Failed\x20to\x20update\x20objective');}return await _0x450449['json']();},async 'deleteObjective'(_0x40c5cb){return this['deleteTask'](_0x40c5cb);},async 'launchObjective'(_0xf1ac85,_0x572636={}){const _0x3f5d21=await fetch(API_BASE+'/tasks/'+_0xf1ac85+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x572636)});if(!_0x3f5d21['ok']){const _0x2beeaa=await _0x3f5d21['json']();throw new Error(_0x2beeaa['error']||'Failed\x20to\x20launch\x20objective');}return await _0x3f5d21['json']();},async 'getObjectiveAttachments'(_0x502939){return this['getTaskAttachments'](_0x502939);},async 'createJudgeTask'({environment:_0x20d4fe,judgeAgent:_0x4be713,groupId:_0x4db5b1,taskIds:_0x426187,judgeCustomInstructions:_0xadf2c6,isPinned:_0x31bc43}){const _0x2348c4=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x20d4fe,'judgeAgent':_0x4be713,'groupId':_0x4db5b1,'taskIds':_0x426187,'judgeCustomInstructions':_0xadf2c6,'isPinned':_0x31bc43})});if(!_0x2348c4['ok']){const _0x3fc757=await _0x2348c4['json']();throw new Error(_0x3fc757['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x2348c4['json']();},async 'getJudgeTasks'(_0x1ed707){const _0x54037f=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x1ed707));if(!_0x54037f['ok']){const _0x101334=await _0x54037f['json']();throw new Error(_0x101334['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x54037f['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0xf9b284,_0x5bf6bc,_0x3e6a25=''){const _0x24d2a4=await fetch(API_BASE+'/tasks/'+_0xf9b284+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x5bf6bc,'customPreamble':_0x3e6a25})});if(!_0x24d2a4['ok']){const _0x585532=await _0x24d2a4['json']();throw new Error(_0x585532['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x24d2a4['json']();},async 'getJiraConfig'(){const _0x488fa5=await fetch(API_BASE+'/jira/config');if(!_0x488fa5['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x488fa5['json']();},async 'getJiraIssue'(_0x2288a5){const _0x56c718=await fetch(API_BASE+'/jira/issues/'+_0x2288a5);if(!_0x56c718['ok']){const _0x36ecb3=await _0x56c718['json']()['catch'](()=>({}));throw new Error(_0x36ecb3['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x56c718['statusText']);}return await _0x56c718['json']();},async 'searchJiraIssues'(_0x193dc3,_0x2d9904=0x14){const _0x52c41a=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x193dc3,'maxResults':_0x2d9904})});if(!_0x52c41a['ok']){const _0x1b5c5f=await _0x52c41a['json']()['catch'](()=>({}));throw new Error(_0x1b5c5f['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x52c41a['statusText']);}return await _0x52c41a['json']();},async 'postJiraComment'(_0x814ef6,_0x5146ca){const _0x34a255=await fetch(API_BASE+'/jira/issues/'+_0x814ef6+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x5146ca})});if(!_0x34a255['ok']){const _0x15dd0c=await _0x34a255['json']()['catch'](()=>({}));throw new Error(_0x15dd0c['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x34a255['statusText']);}return await _0x34a255['json']();},async 'getJiraComments'(_0x17961b){const _0x3d82a4=await fetch(API_BASE+'/jira/issues/'+_0x17961b+'/comments');if(!_0x3d82a4['ok']){const _0x229a51=await _0x3d82a4['json']()['catch'](()=>({}));throw new Error(_0x229a51['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x3d82a4['statusText']);}return await _0x3d82a4['json']();},async 'promptParameter'({environment:_0x2b7286,command:_0x16056f,parser:parser='json'}){const _0x5508dd=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2b7286,'command':_0x16056f,'parser':parser})});if(!_0x5508dd['ok']){const _0x28ea71=await _0x5508dd['json']()['catch'](()=>({}));throw new Error(_0x28ea71['message']||_0x28ea71['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x5508dd['statusText']);}return await _0x5508dd['json']();},async 'promptParameterStream'(_0x45d240,_0x229483){const _0x47e4c0=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x45d240)});if(!_0x47e4c0['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x47e4c0['statusText']);const _0x5d6456=_0x47e4c0['body']['getReader'](),_0xf8c532=new TextDecoder();let _0x5e6e50='';return new Promise((_0x567392,_0x49f9fd)=>{const _0x400fd8=async()=>{try{const {done:_0xc51adb,value:_0x179092}=await _0x5d6456['read']();if(_0xc51adb)return;_0x5e6e50+=_0xf8c532['decode'](_0x179092,{'stream':!![]});const _0x3f907c=_0x5e6e50['split']('\x0a\x0a');_0x5e6e50=_0x3f907c['pop']()||'';for(const _0x33aef0 of _0x3f907c){if(!_0x33aef0['trim']())continue;const _0x163c46=_0x33aef0['split']('\x0a');let _0x58f512='message',_0x5eb992='';for(const _0x1af229 of _0x163c46){if(_0x1af229['startsWith']('event:'))_0x58f512=_0x1af229['substring'](0x6)['trim']();else _0x1af229['startsWith']('data:')&&(_0x5eb992=_0x1af229['substring'](0x5)['trim']());}if(!_0x5eb992)continue;try{const _0x48963d=JSON['parse'](_0x5eb992);if(_0x58f512==='progress'&&_0x229483)_0x229483(_0x48963d['stage'],_0x48963d['message']);else{if(_0x58f512==='result'){_0x567392(_0x48963d);return;}else{if(_0x58f512==='error'){let _0x4e873a=_0x48963d['message']||_0x48963d['error']||'Prompt\x20command\x20failed';_0x48963d['rawOutput']&&(_0x4e873a+='\x0a\x0aRaw\x20output:\x0a'+_0x48963d['rawOutput']);_0x49f9fd(new Error(_0x4e873a));return;}}}}catch(_0x3c7ffb){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x3c7ffb),console['error']('Event\x20type:',_0x58f512),console['error']('Event\x20data:',_0x5eb992),console['error']('First\x20200\x20chars:',_0x5eb992['substring'](0x0,0xc8)),_0x49f9fd(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x3c7ffb['message']+'\x0a\x0aData:\x20'+_0x5eb992['substring'](0x0,0x1f4)));return;}}_0x400fd8();}catch(_0x29de8e){_0x49f9fd(_0x29de8e);}};_0x400fd8();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x4174e2){const _0x286dc7=await fetch(''+API_BASE+_0x4174e2);if(!_0x286dc7['ok']){const _0x4bb1b0=await _0x286dc7['json']()['catch'](()=>({'error':_0x286dc7['statusText']})),_0x5a3fd7=new Error(_0x4bb1b0['error']||_0x4bb1b0['message']||_0x286dc7['statusText']);if(_0x4bb1b0['detail']!==undefined)_0x5a3fd7['detail']=_0x4bb1b0['detail'];throw _0x5a3fd7;}return await _0x286dc7['json']();},async 'post'(_0x4f34c5,_0x5da428){const _0x13bda6=await fetch(''+API_BASE+_0x4f34c5,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5da428)});if(!_0x13bda6['ok']){const _0x37bf2d=await _0x13bda6['json']()['catch'](()=>({'error':_0x13bda6['statusText']})),_0x4a5394=new Error(_0x37bf2d['error']||_0x37bf2d['message']||_0x13bda6['statusText']);if(_0x37bf2d['detail']!==undefined)_0x4a5394['detail']=_0x37bf2d['detail'];throw _0x4a5394;}return await _0x13bda6['json']();},async 'put'(_0x4a6f64,_0x3a2a27){const _0x127885=await fetch(''+API_BASE+_0x4a6f64,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a2a27)});if(!_0x127885['ok']){const _0x20dbd8=await _0x127885['json']()['catch'](()=>({'error':_0x127885['statusText']})),_0x531c9b=new Error(_0x20dbd8['error']||_0x20dbd8['message']||_0x127885['statusText']);if(_0x20dbd8['detail']!==undefined)_0x531c9b['detail']=_0x20dbd8['detail'];throw _0x531c9b;}return await _0x127885['json']();},async 'delete'(_0x4119e6,_0x3b6e58){const _0x4f59bb={'method':'DELETE'};_0x3b6e58&&(_0x4f59bb['headers']={'Content-Type':'application/json'},_0x4f59bb['body']=JSON['stringify'](_0x3b6e58));const _0x478eec=await fetch(''+API_BASE+_0x4119e6,_0x4f59bb);if(!_0x478eec['ok']){const _0x320da2=await _0x478eec['json']()['catch'](()=>({'error':_0x478eec['statusText']})),_0x3adb10=new Error(_0x320da2['error']||_0x320da2['message']||_0x478eec['statusText']);if(_0x320da2['detail']!==undefined)_0x3adb10['detail']=_0x320da2['detail'];throw _0x3adb10;}return await _0x478eec['json']();},async 'getSkills'(){const _0x4a4a57=await fetch(API_BASE+'/skills');if(!_0x4a4a57['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x4a4a57['statusText']);return await _0x4a4a57['json']();},async 'getSkill'(_0x22aa44){const _0x4fc23d=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x22aa44));if(!_0x4fc23d['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x4fc23d['statusText']);return await _0x4fc23d['json']();},async 'createSkill'(_0x5c0921){const _0x367a5b=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c0921)});if(!_0x367a5b['ok']){const _0x4017e3=await _0x367a5b['json']()['catch'](()=>({'error':_0x367a5b['statusText']})),_0x13211c=new Error(_0x4017e3['error']||_0x4017e3['message']||_0x367a5b['statusText']);if(_0x4017e3['detail']!==undefined)_0x13211c['detail']=_0x4017e3['detail'];throw _0x13211c;}return await _0x367a5b['json']();},async 'updateSkill'(_0x5104b7,_0x38e2b9){const _0x3f6718=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5104b7),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x38e2b9)});if(!_0x3f6718['ok']){const _0x4321ab=await _0x3f6718['json']()['catch'](()=>({'error':_0x3f6718['statusText']})),_0x5854de=new Error(_0x4321ab['error']||_0x4321ab['message']||_0x3f6718['statusText']);if(_0x4321ab['detail']!==undefined)_0x5854de['detail']=_0x4321ab['detail'];throw _0x5854de;}return await _0x3f6718['json']();},async 'deleteSkill'(_0xd9c72){const _0x11da37=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xd9c72),{'method':'DELETE'});if(!_0x11da37['ok']){const _0x1432f7=await _0x11da37['json']()['catch'](()=>({'error':_0x11da37['statusText']})),_0x48668b=new Error(_0x1432f7['error']||_0x1432f7['message']||_0x11da37['statusText']);if(_0x1432f7['detail']!==undefined)_0x48668b['detail']=_0x1432f7['detail'];throw _0x48668b;}return await _0x11da37['json']();},async 'getSkillFile'(_0x54458c,_0x1a2c6e){const _0x1915f4=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x54458c)+'/files/'+_0x1a2c6e);if(!_0x1915f4['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x1915f4['statusText']);return await _0x1915f4['json']();},async 'saveSkillFile'(_0x15805f,_0x147db8,_0xc15e6a){const _0x5a7ad9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x15805f)+'/files/'+_0x147db8,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0xc15e6a})});if(!_0x5a7ad9['ok']){const _0x1f518f=await _0x5a7ad9['json']()['catch'](()=>({'error':_0x5a7ad9['statusText']})),_0x1503cc=new Error(_0x1f518f['error']||_0x1f518f['message']||_0x5a7ad9['statusText']);if(_0x1f518f['detail']!==undefined)_0x1503cc['detail']=_0x1f518f['detail'];throw _0x1503cc;}return await _0x5a7ad9['json']();},async 'deleteSkillFile'(_0x558393,_0x4e53c8){const _0x26820b=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x558393)+'/files/'+_0x4e53c8,{'method':'DELETE'});if(!_0x26820b['ok']){const _0x19a51c=await _0x26820b['json']()['catch'](()=>({'error':_0x26820b['statusText']})),_0x3c0e2b=new Error(_0x19a51c['error']||_0x19a51c['message']||_0x26820b['statusText']);if(_0x19a51c['detail']!==undefined)_0x3c0e2b['detail']=_0x19a51c['detail'];throw _0x3c0e2b;}return await _0x26820b['json']();},async 'pullSkills'(){const _0x167da3=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x167da3['ok']){const _0x492f07=await _0x167da3['json']()['catch'](()=>({'error':_0x167da3['statusText']})),_0x467a28=new Error(_0x492f07['error']||_0x492f07['message']||_0x167da3['statusText']);if(_0x492f07['detail']!==undefined)_0x467a28['detail']=_0x492f07['detail'];throw _0x467a28;}return await _0x167da3['json']();},async 'commitSkills'(_0x12f10e,_0x48eaa0={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x48eaa0,_0x4eec54=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x12f10e,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x4eec54['ok']){const _0x3bebfb=await _0x4eec54['json']()['catch'](()=>({'error':_0x4eec54['statusText']})),_0x576c9e=new Error(_0x3bebfb['error']||_0x3bebfb['message']||_0x4eec54['statusText']);if(_0x3bebfb['detail']!==undefined)_0x576c9e['detail']=_0x3bebfb['detail'];throw _0x576c9e;}return await _0x4eec54['json']();},async 'discardSkillsChanges'(){const _0x409d89=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x409d89['ok']){const _0x319ccb=await _0x409d89['json']()['catch'](()=>({'error':_0x409d89['statusText']})),_0x480abf=new Error(_0x319ccb['error']||_0x319ccb['message']||_0x409d89['statusText']);if(_0x319ccb['detail']!==undefined)_0x480abf['detail']=_0x319ccb['detail'];throw _0x480abf;}return await _0x409d89['json']();},async 'getSkillCatalog'(){const _0x3928e2=await fetch(API_BASE+'/external-skills/catalog');if(!_0x3928e2['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x3928e2['statusText']);return await _0x3928e2['json']();},async 'getImportedSkillsRegistry'(){const _0x3f8328=await fetch(API_BASE+'/external-skills/registry');if(!_0x3f8328['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x3f8328['statusText']);return await _0x3f8328['json']();},async 'importCatalogSkill'(_0x3326cb){const _0x494d22=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x3326cb})});if(!_0x494d22['ok']){const _0x3b4e78=await _0x494d22['json']()['catch'](()=>({'error':_0x494d22['statusText']})),_0x46f831=new Error(_0x3b4e78['error']||_0x3b4e78['message']||_0x494d22['statusText']);if(_0x3b4e78['detail']!==undefined)_0x46f831['detail']=_0x3b4e78['detail'];throw _0x46f831;}return await _0x494d22['json']();},async 'importSkillFromGit'(_0x14a12b,_0x291452,_0x2138be='main',_0x545f7d=null){const _0x41eb57=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x14a12b,'skillPath':_0x291452,'branch':_0x2138be,'skillId':_0x545f7d})});if(!_0x41eb57['ok']){const _0x234ae4=await _0x41eb57['json']()['catch'](()=>({'error':_0x41eb57['statusText']})),_0x13ea58=new Error(_0x234ae4['error']||_0x234ae4['message']||_0x41eb57['statusText']);if(_0x234ae4['detail']!==undefined)_0x13ea58['detail']=_0x234ae4['detail'];throw _0x13ea58;}return await _0x41eb57['json']();},async 'probeMarketplace'(_0x447443,_0x6010a3='main'){const _0xfe87fc=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x447443,'branch':_0x6010a3})});if(!_0xfe87fc['ok']){const _0x2c047e=await _0xfe87fc['json']()['catch'](()=>({'error':_0xfe87fc['statusText']})),_0x15d401=new Error(_0x2c047e['error']||_0x2c047e['message']||_0xfe87fc['statusText']);if(_0x2c047e['detail']!==undefined)_0x15d401['detail']=_0x2c047e['detail'];throw _0x15d401;}return await _0xfe87fc['json']();},async 'importMarketplaceBundle'(_0x779a12,_0x1f4870,_0x1262af,_0xda3ed4=null){const _0x204083=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x779a12,'branch':_0x1f4870,'bundleId':_0x1262af,'selectedSkills':_0xda3ed4})});if(!_0x204083['ok']){const _0x229d47=await _0x204083['json']()['catch'](()=>({'error':_0x204083['statusText']})),_0x501bbd=new Error(_0x229d47['error']||_0x229d47['message']||_0x204083['statusText']);if(_0x229d47['detail']!==undefined)_0x501bbd['detail']=_0x229d47['detail'];throw _0x501bbd;}return await _0x204083['json']();},async 'importSkillFromFolder'(_0xe926a7,_0x1dc433=null){const _0x206399=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0xe926a7,'skillId':_0x1dc433})});if(!_0x206399['ok']){const _0xb853c7=await _0x206399['json']()['catch'](()=>({'error':_0x206399['statusText']})),_0x3d8037=new Error(_0xb853c7['error']||_0xb853c7['message']||_0x206399['statusText']);if(_0xb853c7['detail']!==undefined)_0x3d8037['detail']=_0xb853c7['detail'];throw _0x3d8037;}return await _0x206399['json']();},async 'importSkillFromNpm'(_0x40070f,_0x1ae6b0='latest',_0x1b5954=null,_0x49d0ec=null){const _0x36fc1f=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x40070f,'version':_0x1ae6b0,'skillId':_0x1b5954,'registry':_0x49d0ec})});if(!_0x36fc1f['ok']){const _0x754a41=await _0x36fc1f['json']()['catch'](()=>({'error':_0x36fc1f['statusText']})),_0x94f1e4=new Error(_0x754a41['error']||_0x754a41['message']||_0x36fc1f['statusText']);if(_0x754a41['detail']!==undefined)_0x94f1e4['detail']=_0x754a41['detail'];throw _0x94f1e4;}return await _0x36fc1f['json']();},async 'checkSkillUpdates'(_0x2a4bbd){const _0x3b158f=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2a4bbd)+'/check-updates',{'method':'POST'});if(!_0x3b158f['ok']){const _0x1a8e27=await _0x3b158f['json']()['catch'](()=>({'error':_0x3b158f['statusText']})),_0x5af517=new Error(_0x1a8e27['error']||_0x1a8e27['message']||_0x3b158f['statusText']);if(_0x1a8e27['detail']!==undefined)_0x5af517['detail']=_0x1a8e27['detail'];throw _0x5af517;}return await _0x3b158f['json']();},async 'updateExternalSkill'(_0x3443b5){const _0x1e31e6=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x3443b5)+'/update',{'method':'POST'});if(!_0x1e31e6['ok']){const _0x310b18=await _0x1e31e6['json']()['catch'](()=>({'error':_0x1e31e6['statusText']})),_0x3880c4=new Error(_0x310b18['error']||_0x310b18['message']||_0x1e31e6['statusText']);if(_0x310b18['detail']!==undefined)_0x3880c4['detail']=_0x310b18['detail'];throw _0x3880c4;}return await _0x1e31e6['json']();},async 'updateSkillFlags'(_0xae6a9c,_0x307780){const _0x32f2a8=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0xae6a9c)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x307780})});if(!_0x32f2a8['ok']){const _0x2834f3=await _0x32f2a8['json']()['catch'](()=>({'error':_0x32f2a8['statusText']})),_0x768e71=new Error(_0x2834f3['error']||_0x2834f3['message']||_0x32f2a8['statusText']);if(_0x2834f3['detail']!==undefined)_0x768e71['detail']=_0x2834f3['detail'];throw _0x768e71;}return await _0x32f2a8['json']();},async 'removeFromImportedRegistry'(_0x36f4d9){const _0x2072a4=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x36f4d9)+'/registry',{'method':'DELETE'});if(!_0x2072a4['ok']){const _0xd027ec=await _0x2072a4['json']()['catch'](()=>({'error':_0x2072a4['statusText']})),_0x369d37=new Error(_0xd027ec['error']||_0xd027ec['message']||_0x2072a4['statusText']);if(_0xd027ec['detail']!==undefined)_0x369d37['detail']=_0xd027ec['detail'];throw _0x369d37;}return await _0x2072a4['json']();},async 'getTeams'(){const _0x12c499=await fetch(API_BASE+'/teams');if(!_0x12c499['ok']){const _0x2dc0bc=await _0x12c499['json']()['catch'](()=>({'message':_0x12c499['statusText']}));throw new Error(_0x2dc0bc['message']||'Failed\x20to\x20get\x20teams');}return await _0x12c499['json']();},async 'getTeam'(_0x2d5bb6){const _0x5b04ae=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2d5bb6));if(!_0x5b04ae['ok']){const _0x19c056=await _0x5b04ae['json']()['catch'](()=>({'message':_0x5b04ae['statusText']}));throw new Error(_0x19c056['message']||'Failed\x20to\x20get\x20team');}return await _0x5b04ae['json']();},async 'createTeam'(_0x226aff){const _0x450836=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x226aff)});if(!_0x450836['ok']){const _0x34de2f=await _0x450836['json']()['catch'](()=>({'message':_0x450836['statusText']}));throw new Error(_0x34de2f['message']||'Failed\x20to\x20create\x20team');}return await _0x450836['json']();},async 'updateTeam'(_0x1f7f3b,_0x3ebd9d){const _0x2a2f8e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1f7f3b),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ebd9d)});if(!_0x2a2f8e['ok']){const _0x5ebe5f=await _0x2a2f8e['json']()['catch'](()=>({'message':_0x2a2f8e['statusText']}));throw new Error(_0x5ebe5f['message']||'Failed\x20to\x20update\x20team');}return await _0x2a2f8e['json']();},async 'deleteTeam'(_0x62bdfa){const _0x175167=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x62bdfa),{'method':'DELETE'});if(!_0x175167['ok']){const _0x1cf66a=await _0x175167['json']()['catch'](()=>({'message':_0x175167['statusText']}));throw new Error(_0x1cf66a['message']||'Failed\x20to\x20delete\x20team');}return await _0x175167['json']();},async 'addTeamMember'(_0x3949f3,_0x5360a2){const _0x44b09d=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x3949f3)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5360a2})});if(!_0x44b09d['ok']){const _0x59ee6b=await _0x44b09d['json']()['catch'](()=>({'message':_0x44b09d['statusText']}));throw new Error(_0x59ee6b['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x44b09d['json']();},async 'removeTeamMember'(_0x54214f,_0x15123a){const _0x812414=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x54214f)+'/members/'+encodeURIComponent(_0x15123a),{'method':'DELETE'});if(!_0x812414['ok']){const _0x41e763=await _0x812414['json']()['catch'](()=>({'message':_0x812414['statusText']}));throw new Error(_0x41e763['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x812414['json']();},async 'getBindings'(_0x4a6b06={}){const _0x2386ff=new URLSearchParams();if(_0x4a6b06['resource_type'])_0x2386ff['set']('resource_type',_0x4a6b06['resource_type']);if(_0x4a6b06['resource_id'])_0x2386ff['set']('resource_id',_0x4a6b06['resource_id']);if(_0x4a6b06['subject_type'])_0x2386ff['set']('subject_type',_0x4a6b06['subject_type']);if(_0x4a6b06['subject_id'])_0x2386ff['set']('subject_id',_0x4a6b06['subject_id']);const _0x413168=_0x2386ff['toString'](),_0x28374b=await fetch(API_BASE+'/bindings'+(_0x413168?'?'+_0x413168:''));if(!_0x28374b['ok']){const _0x3829de=await _0x28374b['json']()['catch'](()=>({'message':_0x28374b['statusText']}));throw new Error(_0x3829de['message']||'Failed\x20to\x20get\x20bindings');}return await _0x28374b['json']();},async 'createBinding'(_0x433510){const _0xa08cf7=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x433510)});if(!_0xa08cf7['ok']){const _0x45eb72=await _0xa08cf7['json']()['catch'](()=>({'message':_0xa08cf7['statusText']}));throw new Error(_0x45eb72['message']||'Failed\x20to\x20create\x20binding');}return await _0xa08cf7['json']();},async 'updateBinding'(_0x1a8186,_0xf149fd){const _0xd0a4f8=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x1a8186),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xf149fd)});if(!_0xd0a4f8['ok']){const _0x52d5c2=await _0xd0a4f8['json']()['catch'](()=>({'message':_0xd0a4f8['statusText']}));throw new Error(_0x52d5c2['message']||'Failed\x20to\x20update\x20binding');}return await _0xd0a4f8['json']();},async 'deleteBinding'(_0x594244){const _0x5eb5d2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x594244),{'method':'DELETE'});if(!_0x5eb5d2['ok']){const _0x504d01=await _0x5eb5d2['json']()['catch'](()=>({'message':_0x5eb5d2['statusText']}));throw new Error(_0x504d01['message']||'Failed\x20to\x20delete\x20binding');}return await _0x5eb5d2['json']();},async 'getRoleDefinitions'(){const _0x293f31=await fetch(API_BASE+'/roles');if(!_0x293f31['ok']){const _0x1a1380=await _0x293f31['json']()['catch'](()=>({'message':_0x293f31['statusText']}));throw new Error(_0x1a1380['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x293f31['json']();},async 'getRoleDefinition'(_0x7b7072){const _0x570b58=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x7b7072));if(!_0x570b58['ok']){const _0x886a34=await _0x570b58['json']()['catch'](()=>({'message':_0x570b58['statusText']}));throw new Error(_0x886a34['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x570b58['json']();},async 'createRoleDefinition'(_0x5c6c61){const _0x43bd5e=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c6c61)});if(!_0x43bd5e['ok']){const _0x27a19a=await _0x43bd5e['json']()['catch'](()=>({'message':_0x43bd5e['statusText']}));throw new Error(_0x27a19a['message']||_0x27a19a['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x43bd5e['json']();},async 'updateRoleDefinition'(_0x3ec1fa,_0x431a43){const _0x4f06f7=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3ec1fa),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x431a43)});if(!_0x4f06f7['ok']){const _0x3ba72a=await _0x4f06f7['json']()['catch'](()=>({'message':_0x4f06f7['statusText']}));throw new Error(_0x3ba72a['message']||_0x3ba72a['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x4f06f7['json']();},async 'deleteRoleDefinition'(_0x40229c){const _0x50d7bb=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x40229c),{'method':'DELETE'});if(!_0x50d7bb['ok']){const _0x41f741=await _0x50d7bb['json']()['catch'](()=>({'message':_0x50d7bb['statusText']}));throw new Error(_0x41f741['message']||_0x41f741['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x50d7bb['json']();},async 'getAvailablePermissions'(){const _0x599cd6=await fetch(API_BASE+'/roles/available-permissions');if(!_0x599cd6['ok']){const _0x45f13b=await _0x599cd6['json']()['catch'](()=>({'message':_0x599cd6['statusText']}));throw new Error(_0x45f13b['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x599cd6['json']();},async 'getGitProviderAllowedTeams'(_0x36b180){const _0x3014e3=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x36b180)+'/allowed-teams');if(!_0x3014e3['ok']){const _0x290313=await _0x3014e3['json']()['catch'](()=>({'message':_0x3014e3['statusText']}));throw new Error(_0x290313['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x3014e3['json']();},async 'setGitProviderAllowedTeams'(_0xb01362,_0x11a4dc){const _0x3446c7=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0xb01362)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x11a4dc})});if(!_0x3446c7['ok']){const _0x4044cc=await _0x3446c7['json']()['catch'](()=>({'message':_0x3446c7['statusText']}));throw new Error(_0x4044cc['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3446c7['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 _0x48a3b1=toastState['baseBottom'];toastState['toasts']['forEach'](_0xbb9e6c=>{_0xbb9e6c['el']['style']['bottom']=_0x48a3b1+'px';const _0x4aa18c=_0xbb9e6c['el']['offsetHeight']||toastState['defaultHeight'];_0x48a3b1+=_0x4aa18c+toastState['gap'];});});}function removeToastById(_0x380496){const _0x1557eb=toastState['toasts']['findIndex'](_0x46260e=>_0x46260e['id']===_0x380496);if(_0x1557eb===-0x1)return;const _0x175461=toastState['toasts'][_0x1557eb];if(_0x175461['timeoutId'])clearTimeout(_0x175461['timeoutId']);_0x175461['el']['classList']['remove']('show'),setTimeout(()=>_0x175461['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x1557eb,0x1),repositionAllToasts();}function registerToast(_0x4bce33){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4bce33),repositionAllToasts(),_0x4bce33['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(_0x3623ff){if(_0x3623ff===null||_0x3623ff===undefined)return'';return String(_0x3623ff)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x2635ea,_0x2ea092){if(_0x2635ea&&typeof _0x2635ea==='object'&&!Array['isArray'](_0x2635ea))return{'code':typeof _0x2635ea['text']==='string'?_0x2635ea['text']:'','language':typeof _0x2635ea['lang']==='string'?_0x2635ea['lang']:''};return{'code':typeof _0x2635ea==='string'?_0x2635ea:'','language':typeof _0x2ea092==='string'?_0x2ea092:''};}function buildMermaidBlock(_0x4cc8){const _0x3d02fc=String(_0x4cc8||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x3d02fc))+'\x22>'+escapeHtmlValue(_0x3d02fc)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x27a8fc=new marked['Renderer'](),_0x1d8cb6=_0x27a8fc['code']['bind'](_0x27a8fc);return _0x27a8fc['code']=function(_0x15a85f,_0x7e05d7,..._0x379a87){const {code:_0x3b5e83,language:_0x2f640a}=getMarkdownCodeBlockPayload(_0x15a85f,_0x7e05d7),_0x55976f=String(_0x2f640a||'')['trim']()['toLowerCase']();if(_0x55976f==='mermaid')return buildMermaidBlock(_0x3b5e83);const _0x25c01c=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x25c01c&&_0x55976f)try{const _0x3c0be7=_0x25c01c['getLanguage'](_0x55976f)?_0x55976f:'plaintext',_0x35c232=_0x25c01c['highlight'](_0x3b5e83,{'language':_0x3c0be7})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x55976f)+'\x22>'+_0x35c232+'</code></pre>';}catch(_0x43dd38){console['error']('Syntax\x20highlighting\x20error:',_0x43dd38);}return _0x1d8cb6(_0x15a85f,_0x7e05d7,..._0x379a87);},sharedMarkedRenderer=_0x27a8fc,_0x27a8fc;}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 _0x1d8c8b=window['mermaid'];if(!_0x1d8c8b||typeof _0x1d8c8b['initialize']!=='function')return _0x1d8c8b||null;return _0x1d8c8b['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x1d8c8b;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x4a9401,_0x467c70)=>{const _0xbd0c45=()=>_0x4a9401(configureMermaidInstance()),_0x9c4813=()=>{mermaidLoadPromise=null,_0x467c70(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x12342a=document['getElementById'](MERMAID_SCRIPT_ID);!_0x12342a&&(_0x12342a=document['createElement']('script'),_0x12342a['id']=MERMAID_SCRIPT_ID,_0x12342a['src']=MERMAID_SCRIPT_SRC,_0x12342a['async']=!![],document['head']['appendChild'](_0x12342a));if(window['mermaid']){_0xbd0c45();return;}_0x12342a['addEventListener']('load',_0xbd0c45,{'once':!![]}),_0x12342a['addEventListener']('error',_0x9c4813,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x3e4a86){const _0x4c9c93=_0x3e4a86['getAttribute']('data-mermaid-source');if(!_0x4c9c93)return null;let _0x3fbf5f=_0x4c9c93;try{_0x3fbf5f=decodeURIComponent(_0x4c9c93);}catch{}return _0x3e4a86['textContent']=_0x3fbf5f,_0x3e4a86['removeAttribute']('data-processed'),_0x3e4a86['removeAttribute']('aria-roledescription'),_0x3e4a86['removeAttribute']('role'),_0x3e4a86['removeAttribute']('aria-label'),_0x3fbf5f;}function collectMermaidNodes(_0x3e9e3d,_0x57670f){if(!(_0x3e9e3d instanceof Element))return;_0x3e9e3d['matches']('.mermaid[data-mermaid-source]')&&_0x57670f['add'](_0x3e9e3d),_0x3e9e3d['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x13b148=>{_0x57670f['add'](_0x13b148);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x2bb4a3=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x2233f1=>setTimeout(_0x2233f1,0x0);_0x2bb4a3(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x54611d=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x54611d);});});}function queueMermaidRender(_0x1f6924){const _0x37f4ec=new Set();_0x1f6924 instanceof Document||_0x1f6924 instanceof DocumentFragment?_0x1f6924['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x2412d7=>_0x37f4ec['add'](_0x2412d7)):collectMermaidNodes(_0x1f6924,_0x37f4ec);if(_0x37f4ec['size']===0x0)return;_0x37f4ec['forEach'](_0x40a4e4=>pendingMermaidNodes['add'](_0x40a4e4)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x40ea77=Array['from'](pendingMermaidNodes)['filter'](_0x252ffb=>_0x252ffb['isConnected']);pendingMermaidNodes['clear']();if(_0x40ea77['length']===0x0)return;const _0x22104a=await loadMermaid();if(!_0x22104a)return;configureMermaidInstance();const _0x3aa285=getMermaidTheme();for(const _0x482886 of _0x40ea77){const _0xeffa27=_0x482886['getAttribute']('data-mermaid-source');if(!_0xeffa27)continue;const _0x3e7fc2=_0x482886['getAttribute']('data-processed')==='true';if(_0x3e7fc2&&_0x482886['dataset']['mermaidTheme']===_0x3aa285)continue;restoreMermaidSource(_0x482886);try{if(typeof _0x22104a['run']==='function')await _0x22104a['run']({'nodes':[_0x482886]});else typeof _0x22104a['init']==='function'&&_0x22104a['init'](undefined,[_0x482886]);_0x482886['dataset']['mermaidTheme']=_0x3aa285,delete _0x482886['dataset']['mermaidError'];}catch(_0xadfc5f){console['error']('Mermaid\x20render\x20failed:',_0xadfc5f),restoreMermaidSource(_0x482886),_0x482886['dataset']['mermaidError']='true',delete _0x482886['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x2bc7de=>{_0x2bc7de['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x2bc7de);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x463f47=>{_0x463f47['forEach'](_0x4ee054=>{_0x4ee054['addedNodes']['forEach'](_0x15d750=>{_0x15d750['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x15d750);});});}),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'(_0x3a839e){const _0x38834f=new Date(_0x3a839e),_0x6640f6=new Date(),_0x5d49de=_0x6640f6-_0x38834f,_0x1bd437=Math['floor'](_0x5d49de/0x3e8),_0x185630=Math['floor'](_0x1bd437/0x3c),_0xa186d8=Math['floor'](_0x185630/0x3c),_0x347321=Math['floor'](_0xa186d8/0x18);if(_0x1bd437<0x3c)return'now';if(_0x185630<0x3c)return _0x185630+'m\x20ago';if(_0xa186d8<0x18)return _0xa186d8+'h\x20ago';return _0x347321+'d\x20ago';},'getStatusIcon'(_0x54ad65){switch(_0x54ad65){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x45bc1c){switch(_0x45bc1c){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'(_0x5d30ec,_0x332cd3=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x1435ca={};_0x1435ca['text/plain']=new Blob([_0x5d30ec],{'type':'text/plain'});_0x332cd3&&(_0x1435ca['text/html']=new Blob([_0x332cd3],{'type':'text/html'}));const _0x1f7394=new ClipboardItem(_0x1435ca);return await navigator['clipboard']['write']([_0x1f7394]),!![];}catch(_0x1ad11b){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x1ad11b);}try{const _0x3aec80=_0x1bff0a=>{_0x1bff0a['preventDefault'](),_0x1bff0a['clipboardData']['setData']('text/plain',_0x5d30ec),_0x332cd3&&_0x1bff0a['clipboardData']['setData']('text/html',_0x332cd3);};document['addEventListener']('copy',_0x3aec80);const _0x1b6c1d=document['execCommand']('copy');document['removeEventListener']('copy',_0x3aec80);if(_0x1b6c1d)return!![];}catch(_0xdf2473){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0xdf2473);}try{const _0x394800=document['createElement']('textarea');_0x394800['value']=_0x5d30ec,_0x394800['style']['position']='fixed',_0x394800['style']['opacity']='0',_0x394800['style']['pointerEvents']='none',document['body']['appendChild'](_0x394800),_0x394800['select']();const _0xb8f04a=document['execCommand']('copy');return document['body']['removeChild'](_0x394800),_0xb8f04a;}catch(_0x2e74e9){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x2e74e9),![];}},'showToast'(_0x387e92,_0x351a58='info'){const _0x31cbe1=getNextToastId(),_0x2bb523=document['createElement']('div');_0x2bb523['className']='toast\x20toast-'+_0x351a58,_0x2bb523['textContent']=_0x387e92,_0x2bb523['dataset']['toastId']=_0x31cbe1,document['body']['appendChild'](_0x2bb523);const _0x3fb8a6=_0x351a58==='error'?0x2710:0xbb8,_0x2b3672=setTimeout(()=>{removeToastById(_0x31cbe1);},_0x3fb8a6),_0x835661={'id':_0x31cbe1,'el':_0x2bb523,'timeoutId':_0x2b3672};return registerToast(_0x835661),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2bb523['classList']['add']('show');});}),_0x31cbe1;},'showError'(_0x200099){console['error'](_0x200099);const _0x5239d4=typeof _0x200099==='string'?_0x200099:_0x200099['message']||'An\x20error\x20occurred';this['showToast'](_0x5239d4,'error');},'showSuccess'(_0x8f4392){this['showToast'](_0x8f4392,'success');},'capitalize'(_0x56211e){if(!_0x56211e)return'';return _0x56211e['charAt'](0x0)['toUpperCase']()+_0x56211e['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x54d921){return escapeHtmlValue(_0x54d921);},'ansiToHtml'(_0x47d17f){if(_0x47d17f===null||_0x47d17f===undefined)return'';let _0x462456=this['escapeHtml'](_0x47d17f);const _0xea8f33={'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'},_0x2cccb6={'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 _0x48151f=0x0;return _0x462456=_0x462456['replace'](/\x1b\[([0-9;]*)m/g,(_0x3d6e68,_0x351fe4)=>{if(!_0x351fe4||_0x351fe4==='0'){const _0xb2276f='</span>'['repeat'](_0x48151f);return _0x48151f=0x0,_0xb2276f;}const _0x1ecada=_0x351fe4['split'](';'),_0x5222c9=[];for(const _0x2a6c1b of _0x1ecada){if(_0x2a6c1b==='1')_0x5222c9['push']('font-weight:bold');else{if(_0x2a6c1b==='2')_0x5222c9['push']('opacity:0.7');else{if(_0x2a6c1b==='3')_0x5222c9['push']('font-style:italic');else{if(_0x2a6c1b==='4')_0x5222c9['push']('text-decoration:underline');else{if(_0x2a6c1b==='9')_0x5222c9['push']('text-decoration:line-through');else{if(_0xea8f33[_0x2a6c1b])_0x5222c9['push']('color:'+_0xea8f33[_0x2a6c1b]);else{if(_0x2cccb6[_0x2a6c1b])_0x5222c9['push']('background-color:'+_0x2cccb6[_0x2a6c1b]);}}}}}}}if(_0x5222c9['length']>0x0)return _0x48151f++,'<span\x20style=\x22'+_0x5222c9['join'](';')+'\x22>';return'';}),_0x462456+='</span>'['repeat'](_0x48151f),_0x462456=_0x462456['replace'](/\\u001b\[([0-9;]*)m/g,(_0x1f90ed,_0x34f4d3)=>{if(!_0x34f4d3||_0x34f4d3==='0')return'';const _0x338b04=_0x34f4d3['split'](';'),_0x1032a2=[];for(const _0x5c97e7 of _0x338b04){if(_0x5c97e7==='1')_0x1032a2['push']('font-weight:bold');else{if(_0xea8f33[_0x5c97e7])_0x1032a2['push']('color:'+_0xea8f33[_0x5c97e7]);else{if(_0x2cccb6[_0x5c97e7])_0x1032a2['push']('background-color:'+_0x2cccb6[_0x5c97e7]);}}}if(_0x1032a2['length']>0x0)return'<span\x20style=\x22'+_0x1032a2['join'](';')+'\x22>';return'';}),_0x462456;},'showModal'({title:_0x23548c,content:_0x576e72,buttons:buttons=[]}){const _0x21e94b='\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'](_0x23548c)+'</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'+_0x576e72+'\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']((_0x59c8e3,_0x4d41ac)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x59c8e3['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x4d41ac+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x59c8e3['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',_0x3ed3df=document['createElement']('div');_0x3ed3df['id']='utils-modal',_0x3ed3df['className']='modal',_0x3ed3df['innerHTML']=_0x21e94b,document['body']['appendChild'](_0x3ed3df);const _0x59c28a=document['getElementById']('utils-modal-close');_0x59c28a&&_0x59c28a['addEventListener']('click',()=>this['hideModal']());const _0x2d8e71=_0x3ed3df['querySelectorAll']('[data-btn-index]');_0x2d8e71['forEach'](_0x270413=>{const _0x36ec08=parseInt(_0x270413['dataset']['btnIndex']);buttons[_0x36ec08]?.['onClick']&&_0x270413['addEventListener']('click',buttons[_0x36ec08]['onClick']);});const _0x5c5302=document['getElementById']('utils-modal-overlay');_0x5c5302&&_0x5c5302['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x1aa2bb=document['getElementById']('utils-modal');_0x1aa2bb&&_0x1aa2bb['remove']();},'parseKeyValuePairs'(_0x478f0d){const _0x1a08ea={};if(!_0x478f0d)return _0x1a08ea;return _0x478f0d['split'](/\r?\n/)['map'](_0x30ea27=>_0x30ea27['trim']())['filter'](Boolean)['forEach'](_0x183f71=>{const _0x204ff6=_0x183f71['indexOf']('=');if(_0x204ff6>0x0){const _0x459ec4=_0x183f71['slice'](0x0,_0x204ff6)['trim'](),_0x26ea9e=_0x183f71['slice'](_0x204ff6+0x1)['trim']();if(_0x459ec4)_0x1a08ea[_0x459ec4]=_0x26ea9e;}}),_0x1a08ea;},'debounce'(_0x5166f5,_0x17563a=0xfa){let _0x3d79b8=null;return(..._0xeecc5e)=>{clearTimeout(_0x3d79b8),_0x3d79b8=setTimeout(()=>_0x5166f5['apply'](this,_0xeecc5e),_0x17563a);};},'formatTimestamp'(_0x364127){if(!_0x364127)return'N/A';const _0x386a4f=new Date(_0x364127);return _0x386a4f['toLocaleDateString']()+'\x20'+_0x386a4f['toLocaleTimeString']();},'getQueryParams'(){const _0x333299=new URLSearchParams(window['location']['search']),_0x142168={};for(const [_0x430975,_0x22f68e]of _0x333299){_0x142168[_0x430975]=_0x22f68e;}return _0x142168;},'formatDuration'(_0x229cf8,_0x57bb4f){if(!_0x229cf8)return'N/A';const _0x1978c3=new Date(_0x229cf8),_0x144cc7=_0x57bb4f?new Date(_0x57bb4f):new Date(),_0x1d0170=_0x144cc7-_0x1978c3;if(_0x1d0170<0x0)return'0s';const _0x3428ef=Math['floor'](_0x1d0170/0x3e8),_0x141ee2=Math['floor'](_0x3428ef/0x3c),_0x45474d=Math['floor'](_0x141ee2/0x3c),_0x4e1e8c=Math['floor'](_0x45474d/0x18);if(_0x3428ef<0x3c)return _0x3428ef+'s';if(_0x141ee2<0x3c)return _0x141ee2+'m\x20'+_0x3428ef%0x3c+'s';if(_0x45474d<0x18)return _0x45474d+'h\x20'+_0x141ee2%0x3c+'m\x20'+_0x3428ef%0x3c+'s';return _0x4e1e8c+'d\x20'+_0x45474d%0x18+'h\x20'+_0x141ee2%0x3c+'m';},'renderMarkdown'(_0x51bc8b,_0x3e2a78={}){if(!_0x51bc8b)return'';_0x51bc8b=this['rewriteAttachmentLinks'](_0x51bc8b,_0x3e2a78),_0x51bc8b=this['rewriteColorSyntax'](_0x51bc8b);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x51bc8b,_0x3e2a78);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x51bc8b);}catch(_0x22ef18){return console['error']('Markdown\x20parsing\x20error:',_0x22ef18),this['renderMarkdownFallback'](_0x51bc8b,_0x3e2a78);}},'rewriteAttachmentLinks'(_0x3d8c09,_0xe48a82={}){const _0x556d6f=typeof _0xe48a82['resolveAttachmentUrl']==='function'?_0xe48a82['resolveAttachmentUrl']:_0xe48a82['taskId']?_0xc0ce2=>API_BASE+'/tasks/'+_0xe48a82['taskId']+'/attachments/'+encodeURIComponent(_0xc0ce2):null;if(!_0x556d6f)return _0x3d8c09;return String(_0x3d8c09)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x3048fb,_0x1a20c9)=>{const _0x2053ed=String(_0x1a20c9||'')['trim']();if(!_0x2053ed)return _0x3048fb;let _0x4d39f1=_0x2053ed;try{_0x4d39f1=decodeURIComponent(_0x2053ed);}catch{}const _0x5cd248=_0x556d6f(_0x4d39f1);if(!_0x5cd248)return _0x3048fb;return']('+_0x5cd248+')';});},'rewriteColorSyntax'(_0x215744){if(!_0x215744)return _0x215744;return String(_0x215744)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x298d03,_0x595855,_0x2c7979)=>{const _0x53680b=this['rewriteColorSyntax'](_0x2c7979);return'<span\x20style=\x22color:\x20'+_0x595855+'\x22>'+_0x53680b+'</span>';});},'renderMarkdownFallback'(_0x324140,_0x84097={}){if(!_0x324140)return'';_0x324140=_0x324140['replace'](/\r\n/g,'\x0a'),_0x324140=_0x324140['replace'](/\r/g,'\x0a'),_0x324140=this['rewriteAttachmentLinks'](_0x324140,_0x84097);let _0x3cd279=this['escapeHtml'](_0x324140);return _0x3cd279=_0x3cd279['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3cd279=_0x3cd279['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3cd279=_0x3cd279['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3cd279=_0x3cd279['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3cd279=_0x3cd279['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3cd279=_0x3cd279['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3cd279=_0x3cd279['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3cd279=_0x3cd279['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3cd279=_0x3cd279['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3cd279=_0x3cd279['replace'](/\n\n/g,'</p><p>'),_0x3cd279=_0x3cd279['replace'](/\n/g,'<br>'),'<p>'+_0x3cd279+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x16cf36=new Uint8Array(0x10);crypto['getRandomValues'](_0x16cf36),_0x16cf36[0x6]=_0x16cf36[0x6]&0xf|0x40,_0x16cf36[0x8]=_0x16cf36[0x8]&0x3f|0x80;const _0x33cb09=Array['from'](_0x16cf36,_0x288a0b=>_0x288a0b['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x33cb09['slice'](0x0,0x8)+'-'+_0x33cb09['slice'](0x8,0xc)+'-'+_0x33cb09['slice'](0xc,0x10)+'-'+_0x33cb09['slice'](0x10,0x14)+'-'+_0x33cb09['slice'](0x14);}};export class CustomSelect{constructor(_0x1f59b8,_0x4dc364={}){this['nativeSelect']=_0x1f59b8,this['options']=_0x4dc364,this['isOpen']=![],this['selectedValue']=_0x1f59b8['value']||'',this['searchable']=_0x4dc364['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5b475c=document['createElement']('div');_0x5b475c['className']='custom-select';const _0x51fcdc=document['createElement']('div');_0x51fcdc['className']='custom-select-trigger',_0x51fcdc['setAttribute']('tabindex','0'),_0x51fcdc['setAttribute']('role','button'),_0x51fcdc['setAttribute']('aria-haspopup','listbox');const _0x3269ab=document['createElement']('span');_0x3269ab['className']='custom-select-trigger-text';const _0x3abb98=document['createElement']('span');_0x3abb98['className']='custom-select-arrow',_0x3abb98['textContent']='▼',_0x51fcdc['appendChild'](_0x3269ab),_0x51fcdc['appendChild'](_0x3abb98);const _0x414efa=document['createElement']('div');_0x414efa['className']='custom-select-dropdown',_0x414efa['setAttribute']('role','listbox');if(this['searchable']){const _0x1ace7e=document['createElement']('div');_0x1ace7e['className']='custom-select-search';const _0x2f1ffe=document['createElement']('input');_0x2f1ffe['type']='text',_0x2f1ffe['className']='custom-select-search-input',_0x2f1ffe['placeholder']='Type\x20to\x20search...',_0x2f1ffe['setAttribute']('aria-label','Search\x20options'),_0x2f1ffe['addEventListener']('input',_0x1908bb=>{this['searchQuery']=_0x1908bb['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x2f1ffe['addEventListener']('keydown',_0x47334c=>{if(_0x47334c['key']==='Escape')_0x47334c['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x47334c['key']==='Enter'){_0x47334c['preventDefault'](),_0x47334c['stopPropagation']();const _0x370530=_0x414efa['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x370530){const _0x306d4a=_0x370530['getAttribute']('data-value');this['select'](_0x306d4a);}}}}),_0x1ace7e['appendChild'](_0x2f1ffe),_0x414efa['appendChild'](_0x1ace7e),this['searchInput']=_0x2f1ffe;}const _0x39a390=document['createElement']('div');_0x39a390['className']='custom-select-options',_0x414efa['appendChild'](_0x39a390),_0x5b475c['appendChild'](_0x51fcdc),_0x5b475c['appendChild'](_0x414efa),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5b475c,this['nativeSelect']),this['wrapper']=_0x5b475c,this['trigger']=_0x51fcdc,this['triggerText']=_0x3269ab,this['dropdown']=_0x414efa,this['optionsContainer']=_0x39a390,_0x51fcdc['addEventListener']('click',()=>this['toggle']()),_0x51fcdc['addEventListener']('keydown',_0x2bafb7=>this['handleKeydown'](_0x2bafb7)),document['addEventListener']('click',_0x36edc8=>{!_0x5b475c['contains'](_0x36edc8['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x38704f=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x38704f['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x3c64ed=new MutationObserver(()=>{this['updateDisabledState']();});_0x3c64ed['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x48d08e=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x48d08e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x3afd3e=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x3afd3e),this['trigger']['setAttribute']('aria-disabled',_0x3afd3e?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x3afd3e?'-1':'0'),_0x3afd3e&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x26bbf8=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x1ab1a7=_0x26bbf8['filter'](_0x2cd39c=>!_0x2cd39c['disabled']&&!_0x2cd39c['hidden']);_0x26bbf8['forEach']((_0x45a180,_0x441971)=>{const _0x509a6e=document['createElement']('div');_0x509a6e['className']='custom-select-option',_0x509a6e['textContent']=_0x45a180['textContent'],_0x509a6e['setAttribute']('data-value',_0x45a180['value']),_0x509a6e['setAttribute']('data-index',_0x441971),_0x509a6e['setAttribute']('role','option'),_0x45a180['disabled']?_0x509a6e['classList']['add']('disabled'):_0x509a6e['addEventListener']('click',()=>this['select'](_0x45a180['value'])),_0x45a180['value']===this['selectedValue']&&_0x509a6e['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x509a6e),this['allOptions']['push']({'element':_0x509a6e,'text':_0x45a180['textContent']['toLowerCase'](),'value':_0x45a180['value'],'disabled':_0x45a180['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3270c7=this['searchInput']['parentElement'];_0x1ab1a7['length']>0x3?_0x3270c7['style']['display']='':_0x3270c7['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2d9734=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x4cb21a=>{if(!_0x2d9734||_0x4cb21a['disabled'])_0x4cb21a['element']['style']['display']='';else{const _0x3407aa=_0x4cb21a['text']['includes'](_0x2d9734);_0x4cb21a['element']['style']['display']=_0x3407aa?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x334609){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x334609,this['nativeSelect']['value']=_0x334609;const _0x3af17c=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x3af17c),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x49285b=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x49285b&&(this['triggerText']['textContent']=_0x49285b['textContent'],_0x49285b['disabled']||_0x49285b['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x6940b5=>{_0x6940b5['getAttribute']('data-value')===this['selectedValue']?_0x6940b5['classList']['add']('selected'):_0x6940b5['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 _0x499972=window['getComputedStyle'](this['dropdown']);if(_0x499972['position']==='fixed'){const _0x2513e3=this['trigger']['getBoundingClientRect'](),_0x5d3a15=parseInt(_0x499972['maxHeight'])||0xc8,_0xcc3535=window['innerHeight'],_0x4049ed=_0xcc3535-_0x2513e3['bottom'],_0x19aee5=_0x2513e3['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x19d9b9;_0x4049ed<_0x5d3a15&&_0x19aee5>_0x4049ed?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0xcc3535-_0x2513e3['top']+'px',_0x19d9b9=Math['min'](_0x5d3a15,_0x19aee5-0xa),this['dropdown']['style']['maxHeight']=_0x19d9b9+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2513e3['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x19d9b9=Math['min'](_0x5d3a15,_0x4049ed-0xa),this['dropdown']['style']['maxHeight']=_0x19d9b9+'px');if(this['optionsContainer']){let _0x1ec729=_0x19d9b9;if(this['searchInput']){const _0x4e4703=this['searchInput']['parentElement'];_0x4e4703&&(_0x1ec729-=_0x4e4703['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x1ec729)+'px';}this['dropdown']['style']['left']=_0x2513e3['left']+'px',this['dropdown']['style']['width']=_0x2513e3['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x12eaca=this['searchInput']['parentElement'];_0x12eaca&&_0x12eaca['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'](_0x3b111a){if(this['nativeSelect']['disabled'])return;if(_0x3b111a['key']==='Enter'||_0x3b111a['key']==='\x20')_0x3b111a['preventDefault'](),this['toggle']();else _0x3b111a['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0xb2f5e3='\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',_0xb2f5e3),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x4f1d53=document['getElementById']('confirm-dialog-close'),_0x8809c=document['getElementById']('confirm-dialog-cancel'),_0x4c817e=document['getElementById']('confirm-dialog-confirm'),_0x522254=this['_modal']['querySelector']('.modal-overlay');_0x4f1d53['addEventListener']('click',()=>this['_resolve'](![])),_0x8809c['addEventListener']('click',()=>this['_resolve'](![])),_0x4c817e['addEventListener']('click',()=>this['_resolve'](!![])),_0x522254['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1dcdb3=>{if(_0x1dcdb3['key']==='Escape')_0x1dcdb3['preventDefault'](),this['_resolve'](![]);else _0x1dcdb3['key']==='Enter'&&(_0x1dcdb3['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x3adf49,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5eb7e2=>{this['_resolvePromise']=_0x5eb7e2,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x3adf49;const _0x52b052=document['getElementById']('confirm-dialog-cancel'),_0x2bbb27=document['getElementById']('confirm-dialog-confirm');_0x52b052['textContent']=cancelText,_0x2bbb27['textContent']=confirmText,_0x2bbb27['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x2bbb27['focus']();});},'_resolve'(_0x25d6ea){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x25d6ea),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x4d4fc9,_0x35030c={}){this['container']=_0x4d4fc9,this['options']={'placeholder':_0x35030c['placeholder']||'Type\x20to\x20search...','maxItems':_0x35030c['maxItems']||0x64,'loadItems':_0x35030c['loadItems']||(async()=>[]),'renderItem':_0x35030c['renderItem']||(_0x27fc4e=>({'primary':String(_0x27fc4e),'secondary':''})),'onSelect':_0x35030c['onSelect']||(()=>{}),'filterItems':_0x35030c['filterItems']||null,'getItemValue':_0x35030c['getItemValue']||(_0x1e1c6c=>_0x1e1c6c),'sortItems':_0x35030c['sortItems']||null,'debounceMs':_0x35030c['debounceMs']||0xc8,'minCharsForSearch':_0x35030c['minCharsForSearch']||0x0,'emptyMessage':_0x35030c['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x35030c['loadingMessage']||'Loading...','preload':_0x35030c['preload']!==![],'searchMode':_0x35030c['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',_0x10e996=>this['onBlur'](_0x10e996)),this['input']['addEventListener']('input',_0x1f3bc2=>this['onInput'](_0x1f3bc2)),this['input']['addEventListener']('keydown',_0x144779=>this['onKeydown'](_0x144779)),this['clearBtn']['addEventListener']('mousedown',_0x483e51=>{_0x483e51['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x75f6c1=>{_0x75f6c1['preventDefault']();}),document['addEventListener']('click',_0x1d9247=>{!this['wrapper']['contains'](_0x1d9247['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(_0x370961){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x370961);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x2bbf11){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x422f2f){const _0x2f776e=_0x422f2f['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2f776e);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2f776e):this['loadAndShow'](_0x2f776e);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x2bcc0e){switch(_0x2bcc0e['key']){case'ArrowDown':_0x2bcc0e['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x2bcc0e['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x2bcc0e['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x2bcc0e['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x3228b5){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x47426e=this['selectedIndex']+_0x3228b5;if(_0x47426e>=0x0&&_0x47426e<this['filteredItems']['length']){this['selectedIndex']=_0x47426e,this['updateSelectionHighlight']();const _0x2c8307=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x2c8307[this['selectedIndex']]&&_0x2c8307[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x90a955=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x90a955['forEach']((_0x44b2f3,_0x5bee86)=>{_0x44b2f3['classList']['toggle']('keyboard-selected',_0x5bee86===this['selectedIndex']);});}async['loadAndShow'](_0x14674c){this['showLoading']();try{const _0x371d61=await this['options']['loadItems'](_0x14674c);if(this['options']['searchMode']==='server'){let _0x13fd17=_0x371d61;this['options']['sortItems']&&(_0x13fd17=this['options']['sortItems']([..._0x371d61]));this['filteredItems']=_0x13fd17;const _0x5b0be8=this['filteredItems']['length']>=this['options']['maxItems'];_0x5b0be8&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x5b0be8),this['open']();}else this['allItems']=_0x371d61,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x14674c);}catch(_0x515ea8){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x515ea8),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x1912f5){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x1912f5):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x9aa9f5=this['filteredItems']['length']>=this['options']['maxItems'];_0x9aa9f5&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x9aa9f5),this['open']();}['renderItems'](_0x1c7f9d){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']((_0x50f321,_0x440aa5)=>{const _0x3b1149=document['createElement']('div');_0x3b1149['className']='autocomplete-select-item',_0x3b1149['setAttribute']('role','option'),_0x3b1149['setAttribute']('data-index',_0x440aa5);const _0x45c743=this['options']['renderItem'](_0x50f321);let _0x450b75='';_0x45c743['icon']&&(_0x450b75='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x45c743['iconClass']||'')+'\x22>'+_0x45c743['icon']+'</span>'),_0x3b1149['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x450b75+'\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'](_0x45c743['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x45c743['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x45c743['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x3b1149['addEventListener']('click',()=>{this['selectItem'](_0x50f321);}),_0x3b1149['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x440aa5,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x3b1149);}),_0x1c7f9d?(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'](_0x1c376e){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x1c376e)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x84fb6e){this['selectedItem']=_0x84fb6e;const _0x12b9ce=this['options']['renderItem'](_0x84fb6e);this['input']['value']=_0x12b9ce['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x84fb6e);}['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'](_0x53fa29){if(_0x53fa29){this['selectedItem']=_0x53fa29;const _0x5b2de2=this['options']['renderItem'](_0x53fa29);this['input']['value']=_0x5b2de2['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x1bf0df){this['allItems']=_0x1bf0df,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'](_0x2b2f77){this['input']['placeholder']=_0x2b2f77;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x1f8adc=null){const _0x37f8bf=document['getElementById']('admin-menu-container'),_0x13821e=document['getElementById']('admin-menu-btn'),_0x3a21c0=document['getElementById']('admin-menu');if(!_0x37f8bf||!_0x13821e||!_0x3a21c0)return;try{!_0x1f8adc&&(_0x1f8adc=await API['getCurrentUser']());if(_0x1f8adc){const _0x46ce5c=window['Permissions'],_0x310be1=_0x46ce5c['hasServerPermission'](_0x1f8adc,'*')||_0x46ce5c['hasEnvPermission'](_0x1f8adc,'environments:manage')||_0x46ce5c['hasServerPermission'](_0x1f8adc,'users:create')||_0x46ce5c['hasTeamPermission'](_0x1f8adc,'teams:manage')||_0x46ce5c['hasEnvPermission'](_0x1f8adc,'environments:view_details');if(!_0x310be1)return;_0x37f8bf['hidden']=![];if(!_0x46ce5c['hasServerPermission'](_0x1f8adc,'*')){const _0x455832=_0x3a21c0['querySelectorAll']('.admin-menu-item');_0x455832['forEach'](_0x188c53=>{const _0x134b04=_0x188c53['querySelector']('.option-text')?.['textContent']?.['trim']();_0x134b04==='Users'&&!_0x46ce5c['hasServerPermission'](_0x1f8adc,'users:create')&&(_0x188c53['hidden']=!![]),_0x134b04==='Skills'&&(_0x188c53['hidden']=!![]),_0x134b04==='Server\x20Settings'&&(_0x188c53['hidden']=!![]),_0x134b04==='Server\x20Administration'&&(_0x188c53['hidden']=!![]),_0x134b04==='Git\x20History'&&(_0x188c53['hidden']=!![]),_0x134b04==='Roles'&&(_0x188c53['hidden']=!![]);});}_0x13821e['addEventListener']('click',_0x4e18b1=>{_0x4e18b1['stopPropagation']();const _0x173464=document['getElementById']('actions-menu');if(_0x173464)_0x173464['hidden']=!![];_0x3a21c0['hidden']=!_0x3a21c0['hidden'];}),document['addEventListener']('click',_0x244c27=>{!_0x3a21c0['hidden']&&!_0x13821e['contains'](_0x244c27['target'])&&!_0x3a21c0['contains'](_0x244c27['target'])&&(_0x3a21c0['hidden']=!![]);}),document['addEventListener']('keydown',_0x4919e4=>{_0x4919e4['key']==='Escape'&&!_0x3a21c0['hidden']&&(_0x3a21c0['hidden']=!![]);});}}catch(_0x545e7f){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x545e7f['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};