@profoundlogic/coderflow-server 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.js +1 -1
  142. package/dist/web-ui/public/agent-event-parser.js +1 -1
  143. package/dist/web-ui/public/app.js +1 -1
  144. package/dist/web-ui/public/approve-dialog.js +1 -1
  145. package/dist/web-ui/public/automation-links.js +1 -1
  146. package/dist/web-ui/public/automation-schedule.js +1 -1
  147. package/dist/web-ui/public/comments-widget.js +1 -1
  148. package/dist/web-ui/public/diff-utils.js +1 -1
  149. package/dist/web-ui/public/environments.html +19 -0
  150. package/dist/web-ui/public/environments.js +1 -1
  151. package/dist/web-ui/public/feedback-widget.js +1 -1
  152. package/dist/web-ui/public/file-selection-tree.js +1 -1
  153. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  154. package/dist/web-ui/public/git-history.js +1 -1
  155. package/dist/web-ui/public/git-status.js +1 -1
  156. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  157. package/dist/web-ui/public/index.js +1 -1
  158. package/dist/web-ui/public/login.js +1 -1
  159. package/dist/web-ui/public/markdown-editor.js +1 -1
  160. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  161. package/dist/web-ui/public/modal-maximize.js +1 -1
  162. package/dist/web-ui/public/notifications.js +1 -1
  163. package/dist/web-ui/public/permissions.js +1 -1
  164. package/dist/web-ui/public/pr-dialog.js +1 -1
  165. package/dist/web-ui/public/roles.js +1 -1
  166. package/dist/web-ui/public/settings.js +1 -1
  167. package/dist/web-ui/public/setup-password.js +1 -1
  168. package/dist/web-ui/public/skills.js +1 -1
  169. package/dist/web-ui/public/sse-client.js +1 -1
  170. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  171. package/dist/web-ui/public/styles.css +10 -0
  172. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  173. package/dist/web-ui/public/task.js +1 -1
  174. package/dist/web-ui/public/teams.js +1 -1
  175. package/dist/web-ui/public/terminal.js +1 -1
  176. package/dist/web-ui/public/theme.js +1 -1
  177. package/dist/web-ui/public/users.js +1 -1
  178. package/dist/web-ui/public/variant-grouping.js +1 -1
  179. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0xfb7b6e=window['location']['pathname'],_0x10929e=_0xfb7b6e['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x10929e)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x10929e[0x1]),_0x10929e[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2b5223={}){const _0x5152d2=new URLSearchParams();_0x2b5223['userId']&&_0x5152d2['set']('userId',String(_0x2b5223['userId']));_0x2b5223['automation']&&_0x5152d2['set']('automation',String(_0x2b5223['automation']));const _0xca9161=API_BASE+'/tasks/stats'+(_0x5152d2['toString']()?'?'+_0x5152d2['toString']():''),_0x2077c2=await fetch(_0xca9161);if(!_0x2077c2['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x2077c2['statusText']);return await _0x2077c2['json']();},async 'getTasks'(_0x274c62={}){const _0x3bcea5=new URLSearchParams();_0x274c62['status']&&_0x3bcea5['set']('status',String(_0x274c62['status']));_0x274c62['environment']&&_0x3bcea5['set']('environment',String(_0x274c62['environment']));_0x274c62['automation']&&_0x3bcea5['set']('automation',String(_0x274c62['automation']));if(_0x274c62['include']){const _0x195a07=Array['isArray'](_0x274c62['include'])?_0x274c62['include']['join'](','):String(_0x274c62['include']);_0x195a07&&_0x3bcea5['set']('include',_0x195a07);}_0x274c62['filter']&&_0x3bcea5['set']('filter',String(_0x274c62['filter']));_0x274c62['page']&&_0x3bcea5['set']('page',String(_0x274c62['page']));_0x274c62['limit']&&_0x3bcea5['set']('limit',String(_0x274c62['limit']));_0x274c62['userId']&&_0x3bcea5['set']('userId',String(_0x274c62['userId']));_0x274c62['search']&&_0x3bcea5['set']('search',String(_0x274c62['search']));_0x274c62['includeChildTasks']&&_0x3bcea5['set']('includeChildTasks','true');const _0x334449=API_BASE+'/tasks'+(_0x3bcea5['toString']()?'?'+_0x3bcea5['toString']():''),_0x3660d8=await fetch(_0x334449);if(!_0x3660d8['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x3660d8['statusText']);return await _0x3660d8['json']();},async 'getAutomations'(_0x4056ce={}){const _0x45a906=new URLSearchParams();_0x4056ce['environment']&&_0x45a906['set']('environment',String(_0x4056ce['environment']));const _0x5d380e=await fetch(API_BASE+'/api/automations'+(_0x45a906['toString']()?'?'+_0x45a906['toString']():''));if(!_0x5d380e['ok']){const _0x217b0c=await _0x5d380e['json']()['catch'](()=>({}));throw new Error(_0x217b0c['message']||_0x217b0c['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x5d380e['statusText']);}return await _0x5d380e['json']();},async 'getAutomation'(_0x3af91b){const _0x52a0b8=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3af91b));if(!_0x52a0b8['ok']){const _0x3a3891=await _0x52a0b8['json']()['catch'](()=>({}));throw new Error(_0x3a3891['message']||_0x3a3891['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x52a0b8['statusText']);}return await _0x52a0b8['json']();},async 'createAutomation'(_0x5625d5){const _0x2b1aa4=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5625d5||{})});if(!_0x2b1aa4['ok']){const _0x485fc8=await _0x2b1aa4['json']()['catch'](()=>({}));throw new Error(_0x485fc8['message']||_0x485fc8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x2b1aa4['statusText']);}return await _0x2b1aa4['json']();},async 'updateAutomation'(_0x1436a7,_0x4a4249){const _0x242749=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1436a7),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4a4249||{})});if(!_0x242749['ok']){const _0x20858a=await _0x242749['json']()['catch'](()=>({}));throw new Error(_0x20858a['message']||_0x20858a['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x242749['statusText']);}return await _0x242749['json']();},async 'deleteAutomation'(_0x3f6e2d){const _0x1f9db3=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3f6e2d),{'method':'DELETE'});if(!_0x1f9db3['ok']){const _0x27ece8=await _0x1f9db3['json']()['catch'](()=>({}));throw new Error(_0x27ece8['message']||_0x27ece8['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x1f9db3['statusText']);}return await _0x1f9db3['json']();},async 'triggerAutomation'(_0x25697c){const _0x52b74d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x25697c)+'/trigger',{'method':'POST'});if(!_0x52b74d['ok']){const _0x45bc0b=await _0x52b74d['json']()['catch'](()=>({}));throw new Error(_0x45bc0b['message']||_0x45bc0b['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x52b74d['statusText']);}return await _0x52b74d['json']();},async 'setAutomationEnabled'(_0x4fb7ea,_0x4bf6c5){const _0x419d8a=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4fb7ea)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x4bf6c5})});if(!_0x419d8a['ok']){const _0x548b13=await _0x419d8a['json']()['catch'](()=>({}));throw new Error(_0x548b13['message']||_0x548b13['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x419d8a['statusText']);}return await _0x419d8a['json']();},async 'getAutomationHistory'(_0x303de8,_0x477771=0x32){const _0x57dd0b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x303de8)+'/history?limit='+encodeURIComponent(String(_0x477771)));if(!_0x57dd0b['ok']){const _0x517dde=await _0x57dd0b['json']()['catch'](()=>({}));throw new Error(_0x517dde['message']||_0x517dde['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x57dd0b['statusText']);}return await _0x57dd0b['json']();},async 'getTask'(_0x11062f,_0x1d2f12={}){const _0x415e99=new URLSearchParams();if(_0x1d2f12['include']){const _0xaac307=Array['isArray'](_0x1d2f12['include'])?_0x1d2f12['include']['join'](','):String(_0x1d2f12['include']);if(_0xaac307)_0x415e99['set']('include',_0xaac307);}const _0x2c261f=await fetch(API_BASE+'/tasks/'+_0x11062f+(_0x415e99['toString']()?'?'+_0x415e99['toString']():''));if(!_0x2c261f['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x2c261f['statusText']);return await _0x2c261f['json']();},async 'getTaskResults'(_0x1172da){const _0x5d0676=await fetch(API_BASE+'/tasks/'+_0x1172da+'/results');if(!_0x5d0676['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x5d0676['statusText']);return await _0x5d0676['json']();},async 'getTaskPatches'(_0x29becd){const _0x5cd6b1=await fetch(API_BASE+'/tasks/'+_0x29becd+'/patches');if(!_0x5cd6b1['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x5cd6b1['statusText']);return await _0x5cd6b1['json']();},async 'getTaskAttachments'(_0x358514){const _0x3215c3=await fetch(API_BASE+'/tasks/'+_0x358514+'/attachments');if(!_0x3215c3['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x3215c3['statusText']);return await _0x3215c3['json']();},async 'uploadAttachments'(_0x5e5a8a,_0x44b932){const _0x5459fc=new FormData();for(const _0x562345 of _0x44b932){_0x5459fc['append']('attachments',_0x562345);}const _0x21c174=await fetch(API_BASE+'/tasks/'+_0x5e5a8a+'/attachments',{'method':'POST','body':_0x5459fc});if(!_0x21c174['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x21c174['statusText']);return await _0x21c174['json']();},async 'isAINameGenerationAvailable'(){try{const _0x5cb20c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x5cb20c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x5cb20c['json']();}catch(_0x36ac7e){return{'available':![],'reason':_0x36ac7e['message']};}},async 'generateTaskName'(_0x324614){try{const _0x223fe6=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x324614})});return await _0x223fe6['json']();}catch(_0x326303){return{'success':![],'error':_0x326303['message']};}},async 'createTask'(_0x21ae26){let _0x1f8caf,_0x5180b3={};if(_0x21ae26['files']&&_0x21ae26['files']['length']>0x0){const _0x3eb5b9=new FormData();for(const [_0x28f374,_0x24eb85]of Object['entries'](_0x21ae26)){if(_0x28f374!=='files'){if(_0x24eb85==null)continue;typeof _0x24eb85==='object'?_0x3eb5b9['append'](_0x28f374,JSON['stringify'](_0x24eb85)):_0x3eb5b9['append'](_0x28f374,String(_0x24eb85));}}for(const _0x1ed4b4 of _0x21ae26['files']){_0x3eb5b9['append']('attachments',_0x1ed4b4);}_0x1f8caf=_0x3eb5b9;}else _0x5180b3['Content-Type']='application/json',_0x1f8caf=JSON['stringify'](_0x21ae26);const _0x1a2df1=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x5180b3,'body':_0x1f8caf});if(!_0x1a2df1['ok']){const _0x30de75=await _0x1a2df1['json'](),_0x19a655=new Error(_0x30de75['error']||'Failed\x20to\x20create\x20task:\x20'+_0x1a2df1['statusText']),{message:_0x30aecb,..._0x4c0195}=_0x30de75;Object['assign'](_0x19a655,_0x4c0195);throw _0x19a655;}return await _0x1a2df1['json']();},async 'createTestTask'(_0x3b4fa3){const _0x29d177=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b4fa3)});if(!_0x29d177['ok']){const _0xb53e4f=await _0x29d177['json']();throw new Error(_0xb53e4f['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x29d177['statusText']);}return await _0x29d177['json']();},async 'createEphemeralTest'(_0x46fe72){const _0x93e6d9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46fe72)});if(!_0x93e6d9['ok']){const _0x3e50ea=await _0x93e6d9['json']();throw new Error(_0x3e50ea['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x93e6d9['statusText']);}return await _0x93e6d9['json']();},async 'createDeployTask'(_0xd45808){const _0x325fbf=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xd45808)});if(!_0x325fbf['ok']){const _0x27c24a=await _0x325fbf['json']();throw new Error(_0x27c24a['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x325fbf['statusText']);}return await _0x325fbf['json']();},async 'getEnvironments'(){const _0x436a56=await fetch(API_BASE+'/environments');if(!_0x436a56['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x436a56['statusText']);return await _0x436a56['json']();},async 'getEnvironment'(_0x440c82){const _0x16ff5e=await fetch(API_BASE+'/environments/'+_0x440c82);if(!_0x16ff5e['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x16ff5e['statusText']);return await _0x16ff5e['json']();},async 'getEnvironmentRepoHistory'(_0x378561,_0x506bcd,_0x552795={}){if(!_0x378561||!_0x506bcd)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2a28f8=new URLSearchParams();if(_0x552795['limit'])_0x2a28f8['set']('limit',String(_0x552795['limit']));if(_0x552795['offset'])_0x2a28f8['set']('offset',String(_0x552795['offset']));if(_0x552795['search'])_0x2a28f8['set']('search',String(_0x552795['search']));if(_0x552795['branch'])_0x2a28f8['set']('branch',String(_0x552795['branch']));const _0x2f925b=API_BASE+'/environments/'+encodeURIComponent(_0x378561)+'/repos/'+encodeURIComponent(_0x506bcd)+'/git/history',_0x45132c=await fetch(''+_0x2f925b+(_0x2a28f8['toString']()?'?'+_0x2a28f8['toString']():''));if(!_0x45132c['ok']){const _0x1174ea=await _0x45132c['json']()['catch'](()=>({}));throw new Error(_0x1174ea['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45132c['statusText']);}return await _0x45132c['json']();},async 'getEnvironmentRepoCommit'(_0xf57b4f,_0x396dc7,_0x5ee79c){if(!_0xf57b4f||!_0x396dc7||!_0x5ee79c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x19fe6e=API_BASE+'/environments/'+encodeURIComponent(_0xf57b4f)+'/repos/'+encodeURIComponent(_0x396dc7)+'/git/commits/'+encodeURIComponent(_0x5ee79c),_0x19f362=await fetch(_0x19fe6e);if(!_0x19f362['ok']){const _0x1cb463=await _0x19f362['json']()['catch'](()=>({}));throw new Error(_0x1cb463['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x19f362['statusText']);}return await _0x19f362['json']();},async 'getEnvironmentRepoBranches'(_0x3d22af,_0x5f51af){if(!_0x3d22af||!_0x5f51af)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2d5bf5=API_BASE+'/environments/'+encodeURIComponent(_0x3d22af)+'/repos/'+encodeURIComponent(_0x5f51af)+'/git/branches',_0xdb2c22=await fetch(_0x2d5bf5);if(!_0xdb2c22['ok']){const _0x4d7ca0=await _0xdb2c22['json']()['catch'](()=>({}));throw new Error(_0x4d7ca0['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0xdb2c22['statusText']);}return await _0xdb2c22['json']();},async 'revertEnvironmentRepoCommit'(_0x3ea476,_0x4dcfd5,_0x2df76c,_0x29748b={}){if(!_0x3ea476||!_0x4dcfd5||!_0x2df76c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x15943d=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x3ea476)+'/repos/'+encodeURIComponent(_0x4dcfd5)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2df76c,..._0x29748b})});if(!_0x15943d['ok']){const _0x4694cf=await _0x15943d['json']()['catch'](()=>({}));throw new Error(_0x4694cf['message']||_0x4694cf['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x15943d['statusText']);}return await _0x15943d['json']();},async 'getTemplates'(_0x4543fe={}){const _0xf9850c=new URLSearchParams();if(_0x4543fe['include']){const _0xf54944=Array['isArray'](_0x4543fe['include'])?_0x4543fe['include']['join'](','):String(_0x4543fe['include']);if(_0xf54944)_0xf9850c['set']('include',_0xf54944);}const _0x47d5bd=await fetch(API_BASE+'/templates'+(_0xf9850c['toString']()?'?'+_0xf9850c['toString']():''));if(!_0x47d5bd['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x47d5bd['statusText']);return await _0x47d5bd['json']();},async 'getTemplatesForEnvironment'(_0x404835,_0x2fd04f={}){if(!_0x404835)throw new Error('Environment\x20name\x20is\x20required');const _0x2ade78=new URLSearchParams();if(_0x2fd04f['include']){const _0x5b0ed7=Array['isArray'](_0x2fd04f['include'])?_0x2fd04f['include']['join'](','):String(_0x2fd04f['include']);if(_0x5b0ed7)_0x2ade78['set']('include',_0x5b0ed7);}const _0x14c75b=await fetch(API_BASE+'/templates/'+_0x404835+(_0x2ade78['toString']()?'?'+_0x2ade78['toString']():''));if(!_0x14c75b['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x404835+':\x20'+_0x14c75b['statusText']);return await _0x14c75b['json']();},async 'getTemplate'(_0x4f7fad,_0xd3ebc8,_0x3a6276={}){if(!_0x4f7fad||!_0xd3ebc8)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x4f6985=new URLSearchParams();if(_0x3a6276['include']){const _0x473064=Array['isArray'](_0x3a6276['include'])?_0x3a6276['include']['join'](','):String(_0x3a6276['include']);if(_0x473064)_0x4f6985['set']('include',_0x473064);}const _0x20c836=await fetch(API_BASE+'/templates/'+_0x4f7fad+'/'+_0xd3ebc8+(_0x4f6985['toString']()?'?'+_0x4f6985['toString']():''));if(!_0x20c836['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x20c836['statusText']);return await _0x20c836['json']();},async 'getTaskLogs'(_0x37f95e,_0x256826={}){if(!_0x37f95e)throw new Error('Task\x20ID\x20is\x20required');const _0x59cd10=new URLSearchParams();_0x256826['tail']&&_0x59cd10['set']('tail',String(_0x256826['tail']));const _0x4c43c8=await fetch(API_BASE+'/tasks/'+_0x37f95e+'/logs'+(_0x59cd10['toString']()?'?'+_0x59cd10['toString']():''));if(!_0x4c43c8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x4c43c8['statusText']);return await _0x4c43c8['text']();},async 'getContainers'(){const _0x5af201=await fetch(API_BASE+'/containers');if(!_0x5af201['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x5af201['statusText']);return await _0x5af201['json']();},async 'getContainer'(_0x277557){const _0x150288=await fetch(API_BASE+'/containers/'+_0x277557);if(!_0x150288['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x150288['statusText']);return await _0x150288['json']();},async 'startInteractiveContainer'(_0x11f179){const _0x9d59ae=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x11f179)});if(!_0x9d59ae['ok']){const _0x109bfa=await _0x9d59ae['json']()['catch'](()=>({}));throw new Error(_0x109bfa['message']||'Failed\x20to\x20start\x20container:\x20'+_0x9d59ae['statusText']);}return await _0x9d59ae['json']();},async 'startContainerCodeServer'(_0x393ab8,_0x29238c={}){if(!_0x393ab8)throw new Error('Container\x20ID\x20is\x20required');const _0x477cf2=new URLSearchParams();_0x29238c['theme']&&_0x477cf2['set']('theme',_0x29238c['theme']);const _0x3227f8=await fetch(API_BASE+'/containers/'+_0x393ab8+'/code-server'+(_0x477cf2['toString']()?'?'+_0x477cf2['toString']():'')),_0x518acd=await _0x3227f8['json']()['catch'](()=>({}));if(!_0x3227f8['ok'])throw new Error(_0x518acd['message']||_0x518acd['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3227f8['statusText']);return _0x518acd;},async 'stopContainer'(_0x21668a){const _0x5d25f4=await fetch(API_BASE+'/containers/'+_0x21668a,{'method':'DELETE'});if(!_0x5d25f4['ok']){const _0x32f083=await _0x5d25f4['json']()['catch'](()=>({}));throw new Error(_0x32f083['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x5d25f4['statusText']);}return await _0x5d25f4['json']();},async 'stopTask'(_0x859ab4){if(!_0x859ab4)throw new Error('Task\x20ID\x20is\x20required');const _0x5432d6=await fetch(API_BASE+'/tasks/'+_0x859ab4+'/stop',{'method':'POST'});if(!_0x5432d6['ok']){const _0x57ab62=await _0x5432d6['json']()['catch'](()=>({}));throw new Error(_0x57ab62['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x5432d6['statusText']);}return await _0x5432d6['json']();},async 'interruptTask'(_0x26e9ff){if(!_0x26e9ff)throw new Error('Task\x20ID\x20is\x20required');const _0x2eff78=await fetch(API_BASE+'/tasks/'+_0x26e9ff+'/interrupt',{'method':'POST'});if(!_0x2eff78['ok']){const _0x13f920=await _0x2eff78['json']()['catch'](()=>({}));throw new Error(_0x13f920['error']||_0x13f920['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2eff78['statusText']);}return await _0x2eff78['json']();},async 'startTask'(_0x4f49e9){if(!_0x4f49e9)throw new Error('Task\x20ID\x20is\x20required');const _0x4d9d91=await fetch(API_BASE+'/tasks/'+_0x4f49e9+'/start',{'method':'POST'});if(!_0x4d9d91['ok']){const _0x5e9883=await _0x4d9d91['json']()['catch'](()=>({}));throw new Error(_0x5e9883['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4d9d91['statusText']);}return await _0x4d9d91['json']();},async 'deleteTask'(_0x1a3b41){if(!_0x1a3b41)throw new Error('Task\x20ID\x20is\x20required');const _0x7ae8f=await fetch(API_BASE+'/tasks/'+_0x1a3b41,{'method':'DELETE'});if(!_0x7ae8f['ok']){const _0x48df12=await _0x7ae8f['json']()['catch'](()=>({}));throw new Error(_0x48df12['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x7ae8f['statusText']);}return await _0x7ae8f['json']();},async 'refreshTasksFromDisk'(){const _0x5cc3a2=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x5cc3a2['ok']){const _0x48a223=await _0x5cc3a2['json']()['catch'](()=>({}));throw new Error(_0x48a223['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x5cc3a2['statusText']);}return await _0x5cc3a2['json']();},async 'approveTask'(_0x1ab42b,_0x5b56d2={}){if(!_0x1ab42b)throw new Error('Task\x20ID\x20is\x20required');const _0x40e09d={'commit_message':_0x5b56d2['commit_message']||'','pull':_0x5b56d2['pull']??![],'push':_0x5b56d2['push']??![],'conflict_strategy':_0x5b56d2['conflict_strategy']||'rebase'};_0x5b56d2['new_branch']&&(_0x40e09d['new_branch']=_0x5b56d2['new_branch']);const _0x468b0=await fetch(API_BASE+'/tasks/'+_0x1ab42b+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x40e09d)});if(!_0x468b0['ok']){const _0x19dbb1=await _0x468b0['json']()['catch'](()=>({}));let _0x3f6264=_0x19dbb1['error']||_0x19dbb1['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x468b0['statusText'];if(_0x19dbb1['results']&&Array['isArray'](_0x19dbb1['results'])){const _0x306c0e=_0x19dbb1['results']['filter'](_0x15df27=>!_0x15df27['success']&&_0x15df27['error']);_0x306c0e['length']>0x0&&(_0x3f6264=_0x306c0e[0x0]['error']);}const _0x2fe70e=new Error(_0x3f6264);_0x2fe70e['hasConflicts']=_0x19dbb1['results']?.['some'](_0xc569d2=>_0xc569d2['conflict'])||![];throw _0x2fe70e;}return await _0x468b0['json']();},async 'getPullRequestInfo'(_0xd792a7){if(!_0xd792a7)throw new Error('Task\x20ID\x20is\x20required');const _0x4bd1b1=await fetch(API_BASE+'/tasks/'+_0xd792a7+'/pull-request-info');if(!_0x4bd1b1['ok']){const _0x129b6a=await _0x4bd1b1['json']()['catch'](()=>({}));throw new Error(_0x129b6a['error']||_0x129b6a['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4bd1b1['statusText']);}return await _0x4bd1b1['json']();},async 'createPullRequests'(_0x4c7044,_0x65af82){if(!_0x4c7044)throw new Error('Task\x20ID\x20is\x20required');if(!_0x65af82||!Array['isArray'](_0x65af82))throw new Error('repos\x20array\x20is\x20required');const _0x423981=await fetch(API_BASE+'/tasks/'+_0x4c7044+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x65af82})});if(!_0x423981['ok']){const _0x2d64a4=await _0x423981['json']()['catch'](()=>({}));let _0x1a8169=_0x2d64a4['error']||_0x2d64a4['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x423981['statusText'];if(_0x2d64a4['results']&&Array['isArray'](_0x2d64a4['results'])){const _0x4ef1fb=_0x2d64a4['results']['filter'](_0x4fd694=>!_0x4fd694['success']&&_0x4fd694['error']);_0x4ef1fb['length']>0x0&&(_0x1a8169=_0x4ef1fb[0x0]['error']);}throw new Error(_0x1a8169);}return await _0x423981['json']();},async 'syncRepos'(_0x390fc2){if(!_0x390fc2)throw new Error('Task\x20ID\x20is\x20required');const _0x4b310e=await fetch(API_BASE+'/tasks/'+_0x390fc2+'/sync-repos',{'method':'POST'});if(!_0x4b310e['ok']){const _0x1c9e0a=await _0x4b310e['json']()['catch'](()=>({}));throw new Error(_0x1c9e0a['error']||_0x1c9e0a['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x4b310e['statusText']);}return await _0x4b310e['json']();},async 'getIbmiSyncInfo'(_0x37839a){if(!_0x37839a)throw new Error('Task\x20ID\x20is\x20required');const _0x43103b=await fetch(API_BASE+'/tasks/'+_0x37839a+'/ibmi-sync-info');if(!_0x43103b['ok']){const _0x50fea1=await _0x43103b['json']()['catch'](()=>({}));throw new Error(_0x50fea1['error']||_0x50fea1['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x43103b['json']();},async 'getSyncFiles'(_0x3c97f2){if(!_0x3c97f2)throw new Error('Task\x20ID\x20is\x20required');const _0x52e625=await fetch(API_BASE+'/tasks/'+_0x3c97f2+'/sync-to-ibmi/files');if(!_0x52e625['ok']){const _0x5aba4f=await _0x52e625['json']()['catch'](()=>({}));throw new Error(_0x5aba4f['error']||_0x5aba4f['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x52e625['json']();},async 'syncToIbmi'(_0xc02062,_0x14a9d6,_0x17724d=null,_0x432104=null,_0x207d87=null){if(!_0xc02062)throw new Error('Task\x20ID\x20is\x20required');const _0x3ab9be={'library':_0x14a9d6};if(_0x17724d)_0x3ab9be['user']=_0x17724d;if(_0x432104)_0x3ab9be['password']=_0x432104;if(_0x207d87)_0x3ab9be['files']=_0x207d87;const _0x499dad=await fetch(API_BASE+'/tasks/'+_0xc02062+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ab9be)});if(!_0x499dad['ok']){const _0x2d93f1=await _0x499dad['json']()['catch'](()=>({}));throw new Error(_0x2d93f1['error']||_0x2d93f1['message']||'Sync\x20failed');}return await _0x499dad['json']();},async 'getIbmiSyncLog'(_0xbc09f2){if(!_0xbc09f2)throw new Error('Task\x20ID\x20is\x20required');const _0x2bde21=await fetch(API_BASE+'/tasks/'+_0xbc09f2+'/ibmi-sync-log');if(!_0x2bde21['ok']){const _0xc3eb7b=await _0x2bde21['json']()['catch'](()=>({}));throw new Error(_0xc3eb7b['error']||_0xc3eb7b['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x2bde21['json']();},async 'pullChanges'(_0x4acbd7){if(!_0x4acbd7)throw new Error('Task\x20ID\x20is\x20required');const _0x217ab4=await fetch(API_BASE+'/tasks/'+_0x4acbd7+'/pull-changes',{'method':'POST'});if(!_0x217ab4['ok']){const _0xcc3220=await _0x217ab4['json']()['catch'](()=>({}));throw new Error(_0xcc3220['error']||_0xcc3220['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x217ab4['statusText']);}return await _0x217ab4['json']();},async 'readFile'(_0x326c57,_0xc3b7c2){if(!_0x326c57)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc3b7c2)throw new Error('File\x20path\x20is\x20required');const _0x5cc736=await fetch(API_BASE+'/tasks/'+_0x326c57+'/files?path='+encodeURIComponent(_0xc3b7c2));if(!_0x5cc736['ok']){const _0x58afd8=await _0x5cc736['json']()['catch'](()=>({}));throw new Error(_0x58afd8['error']||_0x58afd8['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5cc736['statusText']);}return await _0x5cc736['json']();},'getTaskFileDownloadUrl'(_0xebb11e,_0x5bc19f){if(!_0xebb11e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5bc19f)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0xebb11e+'/files/download?path='+encodeURIComponent(_0x5bc19f);},async 'writeFile'(_0x1844c8,_0x392f4a,_0x2b0f02){if(!_0x1844c8)throw new Error('Task\x20ID\x20is\x20required');if(!_0x392f4a)throw new Error('File\x20path\x20is\x20required');if(_0x2b0f02===undefined)throw new Error('Content\x20is\x20required');const _0x4ec337=await fetch(API_BASE+'/tasks/'+_0x1844c8+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x392f4a,'content':_0x2b0f02})});if(!_0x4ec337['ok']){const _0xdfd098=await _0x4ec337['json']()['catch'](()=>({}));throw new Error(_0xdfd098['error']||_0xdfd098['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4ec337['statusText']);}return await _0x4ec337['json']();},async 'uploadTaskFiles'(_0xd7a97a,_0x394a0b,_0x4f35bd){if(!_0xd7a97a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x394a0b)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4f35bd||_0x4f35bd['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x5d7272=new FormData();_0x5d7272['append']('targetDir',_0x394a0b);for(const _0x4722a5 of _0x4f35bd){_0x5d7272['append']('files',_0x4722a5,_0x4722a5['name']);}const _0x374271=await fetch(API_BASE+'/tasks/'+_0xd7a97a+'/files/upload',{'method':'POST','body':_0x5d7272});if(!_0x374271['ok']){const _0x4a7b1c=await _0x374271['json']()['catch'](()=>({}));throw new Error(_0x4a7b1c['error']||_0x4a7b1c['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x374271['statusText']);}return await _0x374271['json']();},async 'createDirectory'(_0x14a2d8,_0x5ec86f){if(!_0x14a2d8)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ec86f)throw new Error('Directory\x20path\x20is\x20required');const _0x1c7459=await fetch(API_BASE+'/tasks/'+_0x14a2d8+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x5ec86f})});if(!_0x1c7459['ok']){const _0x96c722=await _0x1c7459['json']()['catch'](()=>({}));throw new Error(_0x96c722['error']||_0x96c722['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x1c7459['statusText']);}return await _0x1c7459['json']();},async 'renamePath'(_0x32f883,_0x1269ac,_0x291217){if(!_0x32f883)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1269ac)throw new Error('Source\x20path\x20is\x20required');if(!_0x291217)throw new Error('Destination\x20path\x20is\x20required');const _0x1c22e8=await fetch(API_BASE+'/tasks/'+_0x32f883+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x1269ac,'newPath':_0x291217})});if(!_0x1c22e8['ok']){const _0x5a8aaf=await _0x1c22e8['json']()['catch'](()=>({}));throw new Error(_0x5a8aaf['error']||_0x5a8aaf['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x1c22e8['statusText']);}return await _0x1c22e8['json']();},async 'deleteFile'(_0x1d2b41,_0x181fa0){if(!_0x1d2b41)throw new Error('Task\x20ID\x20is\x20required');if(!_0x181fa0)throw new Error('File\x20path\x20is\x20required');const _0x47f7de=await fetch(API_BASE+'/tasks/'+_0x1d2b41+'/files?path='+encodeURIComponent(_0x181fa0),{'method':'DELETE'});if(!_0x47f7de['ok']){const _0xbb8dcf=await _0x47f7de['json']()['catch'](()=>({}));throw new Error(_0xbb8dcf['error']||_0xbb8dcf['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x47f7de['statusText']);}return await _0x47f7de['json']();},async 'deleteDirectory'(_0xd3b936,_0x24590b){if(!_0xd3b936)throw new Error('Task\x20ID\x20is\x20required');if(!_0x24590b)throw new Error('Directory\x20path\x20is\x20required');const _0x5cdd8c=await fetch(API_BASE+'/tasks/'+_0xd3b936+'/files/directory?path='+encodeURIComponent(_0x24590b),{'method':'DELETE'});if(!_0x5cdd8c['ok']){const _0x5cde99=await _0x5cdd8c['json']()['catch'](()=>({}));throw new Error(_0x5cde99['error']||_0x5cde99['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5cdd8c['statusText']);}return await _0x5cdd8c['json']();},async 'discardFile'(_0x492201,_0x52bba4,_0x3f9a84){if(!_0x492201)throw new Error('Task\x20ID\x20is\x20required');if(!_0x52bba4)throw new Error('File\x20path\x20is\x20required');if(!_0x3f9a84)throw new Error('Repository\x20path\x20is\x20required');const _0x35294e=await fetch(API_BASE+'/tasks/'+_0x492201+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x52bba4,'repoPath':_0x3f9a84})});if(!_0x35294e['ok']){const _0x297438=await _0x35294e['json']()['catch'](()=>({}));throw new Error(_0x297438['error']||_0x297438['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x35294e['statusText']);}return await _0x35294e['json']();},async 'followUpTask'(_0x132cdf,_0x2730f4={}){if(!_0x132cdf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2730f4['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x43d54a,_0x1678e8={};if(_0x2730f4['files']&&_0x2730f4['files']['length']>0x0){const _0x19b5f6=new FormData();_0x19b5f6['append']('instructions',_0x2730f4['instructions']);for(const _0x35ce8b of _0x2730f4['files']){_0x19b5f6['append']('attachments',_0x35ce8b);}_0x43d54a=_0x19b5f6;}else _0x1678e8['Content-Type']='application/json',_0x43d54a=JSON['stringify']({'instructions':_0x2730f4['instructions']});const _0x598e4b=await fetch(API_BASE+'/tasks/'+_0x132cdf+'/follow-up',{'method':'POST','headers':_0x1678e8,'body':_0x43d54a});if(!_0x598e4b['ok']){const _0x321aea=await _0x598e4b['json']()['catch'](()=>({}));throw new Error(_0x321aea['error']||_0x321aea['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x598e4b['statusText']);}return await _0x598e4b['json']();},async 'getTaskRewindPoints'(_0x568274){if(!_0x568274)throw new Error('Task\x20ID\x20is\x20required');const _0x370e84=await fetch(API_BASE+'/tasks/'+_0x568274+'/rewind-points');if(!_0x370e84['ok']){const _0x2e99a0=await _0x370e84['json']()['catch'](()=>({}));throw new Error(_0x2e99a0['error']||_0x2e99a0['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x370e84['statusText']);}return await _0x370e84['json']();},async 'rewindTask'(_0x498774,_0x167fad={}){if(!_0x498774)throw new Error('Task\x20ID\x20is\x20required');const _0x5cf463=Number['isInteger'](_0x167fad['targetFollowUpCount'])?_0x167fad['targetFollowUpCount']:0x0,_0x231252={'targetFollowUpCount':_0x5cf463};typeof _0x167fad['instructions']==='string'&&_0x167fad['instructions']['trim']()&&(_0x231252['instructions']=_0x167fad['instructions']['trim']());typeof _0x167fad['rewindFiles']==='boolean'&&(_0x231252['rewindFiles']=_0x167fad['rewindFiles']);const _0x2b3db1=await fetch(API_BASE+'/tasks/'+_0x498774+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x231252)});if(!_0x2b3db1['ok']){const _0x5ecdd7=await _0x2b3db1['json']()['catch'](()=>({}));throw new Error(_0x5ecdd7['error']||_0x5ecdd7['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x2b3db1['statusText']);}return await _0x2b3db1['json']();},async 'login'(_0x4d06bd,_0x5a7599){const _0x38d0b8=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4d06bd,'password':_0x5a7599})});if(!_0x38d0b8['ok']){const _0x2d8354=await _0x38d0b8['json']();throw new Error(_0x2d8354['message']||'Login\x20failed');}return await _0x38d0b8['json']();},async 'logout'(){const _0x119dd4=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x119dd4['ok']){const _0x4ca176=await _0x119dd4['json']();throw new Error(_0x4ca176['message']||'Logout\x20failed');}return await _0x119dd4['json']();},async 'getCurrentUser'(){const _0x15f777=await fetch(API_BASE+'/auth/me');if(!_0x15f777['ok'])throw new Error('Not\x20authenticated');const _0xa7024a=await _0x15f777['json']();return _0xa7024a['user'];},async 'getRolesInfo'(){const _0x58579a=await fetch(API_BASE+'/users/roles');if(!_0x58579a['ok']){const _0x5a2ae6=await _0x58579a['json']();throw new Error(_0x5a2ae6['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x58579a['json']();},async 'getUsers'(){const _0x10bf5b=await fetch(API_BASE+'/users');if(!_0x10bf5b['ok']){const _0x3510f6=await _0x10bf5b['json']();throw new Error(_0x3510f6['message']||'Failed\x20to\x20get\x20users');}return await _0x10bf5b['json']();},async 'getUser'(_0x59eb10){const _0x8477f3=await fetch(API_BASE+'/users/'+_0x59eb10);if(!_0x8477f3['ok']){const _0x14486e=await _0x8477f3['json']();throw new Error(_0x14486e['message']||'Failed\x20to\x20get\x20user');}return await _0x8477f3['json']();},async 'createUser'(_0x2e9ab0){const _0x2e6050=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e9ab0)});if(!_0x2e6050['ok']){const _0x537388=await _0x2e6050['json']();throw new Error(_0x537388['message']||'Failed\x20to\x20create\x20user');}return await _0x2e6050['json']();},async 'updateUser'(_0x4075a7,_0x205716){const _0x35950a=await fetch(API_BASE+'/users/'+_0x4075a7,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x205716)});if(!_0x35950a['ok']){const _0x2850d8=await _0x35950a['json']();throw new Error(_0x2850d8['message']||'Failed\x20to\x20update\x20user');}return await _0x35950a['json']();},async 'deleteUser'(_0x3af39d){const _0x1e942c=await fetch(API_BASE+'/users/'+_0x3af39d,{'method':'DELETE'});if(!_0x1e942c['ok']){const _0x544804=await _0x1e942c['json']();throw new Error(_0x544804['message']||'Failed\x20to\x20delete\x20user');}return await _0x1e942c['json']();},async 'stopAllContainers'(){const _0x2bf075=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0xa1d6b3=await _0x2bf075['json']()['catch'](()=>({}));if(!_0x2bf075['ok'])throw new Error(_0xa1d6b3['message']||_0xa1d6b3['error']||'Failed\x20to\x20stop\x20containers');return _0xa1d6b3;},async 'removeStoppedContainers'(){const _0x21baed=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x215630=await _0x21baed['json']()['catch'](()=>({}));if(!_0x21baed['ok'])throw new Error(_0x215630['message']||_0x215630['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x215630;},async 'pruneDockerResources'(){const _0x3b0c3c=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x2994aa=await _0x3b0c3c['json']()['catch'](()=>({}));if(!_0x3b0c3c['ok'])throw new Error(_0x2994aa['message']||_0x2994aa['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x2994aa;},async 'getUpdateSettings'(){const _0x16d8e9=await fetch(API_BASE+'/health/update-settings'),_0x3ae47c=await _0x16d8e9['json']()['catch'](()=>({}));if(!_0x16d8e9['ok'])throw new Error(_0x3ae47c['message']||_0x3ae47c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x3ae47c;},async 'applyServerUpdate'(_0x1bd21e){const _0x435bd9=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1bd21e})}),_0x1c32ed=await _0x435bd9['json']()['catch'](()=>({}));if(!_0x435bd9['ok']){const _0x47ecb7=new Error(_0x1c32ed['message']||_0x1c32ed['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x1c32ed['output']!==undefined)_0x47ecb7['output']=_0x1c32ed['output'];if(_0x1c32ed['error']!==undefined)_0x47ecb7['commandError']=_0x1c32ed['error'];throw _0x47ecb7;}return _0x1c32ed;},async 'restartServer'(){const _0x1af04f=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x3b163e=await _0x1af04f['json']()['catch'](()=>({}));if(!_0x1af04f['ok'])throw new Error(_0x3b163e['message']||_0x3b163e['error']||'Failed\x20to\x20restart\x20server');return _0x3b163e;},async 'createPasswordToken'(_0x5f230f,_0x173c45='setup',_0x394128=![]){const _0xc4dd00=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5f230f,'type':_0x173c45,'sendEmail':_0x394128})});if(!_0xc4dd00['ok']){const _0x13ed1c=await _0xc4dd00['json']();throw new Error(_0x13ed1c['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0xc4dd00['json']();},async 'getEmailConfig'(){const _0x107370=await fetch(API_BASE+'/password/email-config');if(!_0x107370['ok']){const _0x4053df=await _0x107370['json']();throw new Error(_0x4053df['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x107370['json']();},async 'updateTaskName'(_0x4508ce,_0x36254a){const _0xcc23e=await fetch(API_BASE+'/tasks/'+_0x4508ce,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x36254a})});if(!_0xcc23e['ok']){const _0x3ddafe=await _0xcc23e['json']();throw new Error(_0x3ddafe['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0xcc23e['json']();},async 'pinTask'(_0x30ced4,_0x10b81e,_0x59dd3b=null){if(!_0x30ced4)throw new Error('Task\x20ID\x20is\x20required');const _0x2fcf8c={'pinned':_0x10b81e};_0x59dd3b&&_0x59dd3b['length']>0x0&&(_0x2fcf8c['additionalTaskIds']=_0x59dd3b);const _0x28a45c=await fetch(API_BASE+'/tasks/'+_0x30ced4+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2fcf8c)});if(!_0x28a45c['ok']){const _0x17571e=await _0x28a45c['json']();throw new Error(_0x17571e['error']||'Failed\x20to\x20pin\x20task');}return await _0x28a45c['json']();},async 'setTaskWinner'(_0x15089c,_0x44b18b,_0x1ae497=[]){if(!_0x15089c)throw new Error('Task\x20ID\x20is\x20required');const _0x5f37f=await fetch(API_BASE+'/tasks/'+_0x15089c+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x44b18b,'siblings':_0x1ae497})});if(!_0x5f37f['ok']){const _0xe52e03=await _0x5f37f['json']();throw new Error(_0xe52e03['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x5f37f['json']();},async 'setTaskLoser'(_0x2b8ebf,_0x88032){if(!_0x2b8ebf)throw new Error('Task\x20ID\x20is\x20required');const _0x31ea87=await fetch(API_BASE+'/tasks/'+_0x2b8ebf+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x88032})});if(!_0x31ea87['ok']){const _0x3b6467=await _0x31ea87['json']();throw new Error(_0x3b6467['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x31ea87['json']();},async 'createTaskGroup'(_0x7ff76a){const _0x1ad7bf=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x7ff76a)});if(!_0x1ad7bf['ok']){const _0x36037c=await _0x1ad7bf['json']();throw new Error(_0x36037c['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x1ad7bf['json']();},async 'getTaskGroups'(_0x46e4af={}){const _0x11b4b4=new URLSearchParams();if(_0x46e4af['userId'])_0x11b4b4['set']('userId',String(_0x46e4af['userId']));if(_0x46e4af['status'])_0x11b4b4['set']('status',String(_0x46e4af['status']));if(_0x46e4af['limit'])_0x11b4b4['set']('limit',String(_0x46e4af['limit']));const _0x28d4c0=API_BASE+'/tasks/groups'+(_0x11b4b4['toString']()?'?'+_0x11b4b4['toString']():''),_0x38251a=await fetch(_0x28d4c0);if(!_0x38251a['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x38251a['json']();},async 'getTaskGroup'(_0x453757){const _0x4f9942=await fetch(API_BASE+'/tasks/groups/'+_0x453757);if(!_0x4f9942['ok']){const _0x16b78c=await _0x4f9942['json']();throw new Error(_0x16b78c['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x4f9942['json']();},async 'updateTaskGroup'(_0x19b407,_0x558517,_0xfa1dd2){const _0x20ea29=await fetch(API_BASE+'/tasks/'+_0x19b407+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x558517,'groupIndex':_0xfa1dd2})});if(!_0x20ea29['ok']){const _0x329fa2=await _0x20ea29['json']();throw new Error(_0x329fa2['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x20ea29['json']();},async 'removeTaskFromGroup'(_0x172488){return this['updateTaskGroup'](_0x172488,null,null);},async 'deleteTaskGroup'(_0x11010b,_0x277deb=![]){const _0x3c2135=_0x277deb?'?deleteTasks=true':'',_0x278235=await fetch(API_BASE+'/tasks/groups/'+_0x11010b+_0x3c2135,{'method':'DELETE'});if(!_0x278235['ok']){const _0x2e526b=await _0x278235['json']();throw new Error(_0x2e526b['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3bfad0,_0x477ef7){const _0x33dc55=await fetch(API_BASE+'/tasks/groups/'+_0x3bfad0+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x477ef7})});if(!_0x33dc55['ok']){const _0x2748b4=await _0x33dc55['json']();throw new Error(_0x2748b4['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x33dc55['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x36fdb9){if(!_0x36fdb9)throw new Error('Task\x20ID\x20is\x20required');const _0xc3f8da=await fetch(API_BASE+'/tasks/'+_0x36fdb9+'/comments');if(!_0xc3f8da['ok']){const _0x6eb78e=await _0xc3f8da['json']()['catch'](()=>({}));throw new Error(_0x6eb78e['error']||'Failed\x20to\x20get\x20comments');}return await _0xc3f8da['json']();},async 'addComment'(_0x5da731,_0x2cf560){if(!_0x5da731)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2cf560)throw new Error('Comment\x20content\x20is\x20required');const _0x452dc8=await fetch(API_BASE+'/tasks/'+_0x5da731+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2cf560})});if(!_0x452dc8['ok']){const _0x4432a4=await _0x452dc8['json']()['catch'](()=>({}));throw new Error(_0x4432a4['error']||'Failed\x20to\x20add\x20comment');}return await _0x452dc8['json']();},async 'updateComment'(_0x25cab5,_0x4128b2,_0x1cd2db){if(!_0x25cab5)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4128b2)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x1cd2db)throw new Error('Comment\x20content\x20is\x20required');const _0x1bdd51=await fetch(API_BASE+'/tasks/'+_0x25cab5+'/comments/'+_0x4128b2,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x1cd2db})});if(!_0x1bdd51['ok']){const _0x5d9859=await _0x1bdd51['json']()['catch'](()=>({}));throw new Error(_0x5d9859['error']||'Failed\x20to\x20update\x20comment');}return await _0x1bdd51['json']();},async 'deleteComment'(_0xba5b86,_0x4e0a83){if(!_0xba5b86)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e0a83)throw new Error('Comment\x20ID\x20is\x20required');const _0x565db9=await fetch(API_BASE+'/tasks/'+_0xba5b86+'/comments/'+_0x4e0a83,{'method':'DELETE'});if(!_0x565db9['ok']){const _0x8775c7=await _0x565db9['json']()['catch'](()=>({}));throw new Error(_0x8775c7['error']||'Failed\x20to\x20delete\x20comment');}return await _0x565db9['json']();},async 'createObjective'(_0x2ec254){const _0x5df46b={'objective':!![],'name':_0x2ec254['name']||'','environment':_0x2ec254['environment']||null,'agents':_0x2ec254['agents']||[],'branches':_0x2ec254['branches']||{},'isPinned':_0x2ec254['isPinned']||![],'parentObjectiveId':_0x2ec254['parentObjectiveId']||null,'env_vars':_0x2ec254['envVars']||{},'parameters':{'instructions':_0x2ec254['instructions']||''},'files':_0x2ec254['files']||[],'jira':_0x2ec254['jira']||null};return this['createTask'](_0x5df46b);},async 'updateObjective'(_0x2eb935,_0x257884,_0x28b0a5=[],_0x4c3ee3=[]){let _0x456add,_0x15c150={};const _0x14efa4={..._0x257884};_0x4c3ee3&&_0x4c3ee3['length']>0x0&&(_0x14efa4['removeAttachments']=_0x4c3ee3);if(_0x28b0a5&&_0x28b0a5['length']>0x0){const _0x36a7fd=new FormData();for(const [_0x42f4e1,_0x4ea1a5]of Object['entries'](_0x14efa4)){if(_0x4ea1a5==null)continue;typeof _0x4ea1a5==='object'?_0x36a7fd['append'](_0x42f4e1,JSON['stringify'](_0x4ea1a5)):_0x36a7fd['append'](_0x42f4e1,String(_0x4ea1a5));}for(const _0x185d4e of _0x28b0a5){_0x36a7fd['append']('attachments',_0x185d4e);}_0x456add=_0x36a7fd;}else _0x15c150['Content-Type']='application/json',_0x456add=JSON['stringify'](_0x14efa4);const _0x228458=await fetch(API_BASE+'/tasks/'+_0x2eb935,{'method':'PATCH','headers':_0x15c150,'body':_0x456add});if(!_0x228458['ok']){const _0xcb9876=await _0x228458['json']();throw new Error(_0xcb9876['error']||'Failed\x20to\x20update\x20objective');}return await _0x228458['json']();},async 'deleteObjective'(_0x2b7a75){return this['deleteTask'](_0x2b7a75);},async 'launchObjective'(_0x175f97,_0x10895c={}){const _0x5da2e6=await fetch(API_BASE+'/tasks/'+_0x175f97+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x10895c)});if(!_0x5da2e6['ok']){const _0x3c9d54=await _0x5da2e6['json']();throw new Error(_0x3c9d54['error']||'Failed\x20to\x20launch\x20objective');}return await _0x5da2e6['json']();},async 'getObjectiveAttachments'(_0x24d573){return this['getTaskAttachments'](_0x24d573);},async 'createJudgeTask'({environment:_0x2c5734,judgeAgent:_0x1a7701,groupId:_0x2842f2,taskIds:_0x78b9d1,judgeCustomInstructions:_0x5c49d6,isPinned:_0x5907c1}){const _0x31d2ec=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2c5734,'judgeAgent':_0x1a7701,'groupId':_0x2842f2,'taskIds':_0x78b9d1,'judgeCustomInstructions':_0x5c49d6,'isPinned':_0x5907c1})});if(!_0x31d2ec['ok']){const _0xc83073=await _0x31d2ec['json']();throw new Error(_0xc83073['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x31d2ec['json']();},async 'getJudgeTasks'(_0x2c199e){const _0x288ce2=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x2c199e));if(!_0x288ce2['ok']){const _0x448650=await _0x288ce2['json']();throw new Error(_0x448650['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x288ce2['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x3a543f,_0x419b80,_0x2f0ef8=''){const _0x10a6c5=await fetch(API_BASE+'/tasks/'+_0x3a543f+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x419b80,'customPreamble':_0x2f0ef8})});if(!_0x10a6c5['ok']){const _0x6b6bd=await _0x10a6c5['json']();throw new Error(_0x6b6bd['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x10a6c5['json']();},async 'getJiraConfig'(){const _0x5d623b=await fetch(API_BASE+'/jira/config');if(!_0x5d623b['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x5d623b['json']();},async 'getJiraIssue'(_0x267a16){const _0x291834=await fetch(API_BASE+'/jira/issues/'+_0x267a16);if(!_0x291834['ok']){const _0x2c04e8=await _0x291834['json']()['catch'](()=>({}));throw new Error(_0x2c04e8['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x291834['statusText']);}return await _0x291834['json']();},async 'searchJiraIssues'(_0x4eb3f6,_0x34375a=0x14){const _0xb3475d=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4eb3f6,'maxResults':_0x34375a})});if(!_0xb3475d['ok']){const _0x558001=await _0xb3475d['json']()['catch'](()=>({}));throw new Error(_0x558001['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0xb3475d['statusText']);}return await _0xb3475d['json']();},async 'postJiraComment'(_0x1f1ed0,_0x5de446){const _0x14ddda=await fetch(API_BASE+'/jira/issues/'+_0x1f1ed0+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x5de446})});if(!_0x14ddda['ok']){const _0xe00db8=await _0x14ddda['json']()['catch'](()=>({}));throw new Error(_0xe00db8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x14ddda['statusText']);}return await _0x14ddda['json']();},async 'getJiraComments'(_0x428682){const _0x19751a=await fetch(API_BASE+'/jira/issues/'+_0x428682+'/comments');if(!_0x19751a['ok']){const _0x2f6e2c=await _0x19751a['json']()['catch'](()=>({}));throw new Error(_0x2f6e2c['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x19751a['statusText']);}return await _0x19751a['json']();},async 'promptParameter'({environment:_0x1c392c,command:_0x16fbd5,parser:parser='json'}){const _0x1aee32=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1c392c,'command':_0x16fbd5,'parser':parser})});if(!_0x1aee32['ok']){const _0x39d431=await _0x1aee32['json']()['catch'](()=>({}));throw new Error(_0x39d431['message']||_0x39d431['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x1aee32['statusText']);}return await _0x1aee32['json']();},async 'promptParameterStream'(_0x35e5e1,_0x89580d){const _0xf063e3=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35e5e1)});if(!_0xf063e3['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0xf063e3['statusText']);const _0x54a047=_0xf063e3['body']['getReader'](),_0x3aec60=new TextDecoder();let _0x49685b='';return new Promise((_0x14a634,_0x497b13)=>{const _0x5a7df5=async()=>{try{const {done:_0x46bed5,value:_0x18947e}=await _0x54a047['read']();if(_0x46bed5)return;_0x49685b+=_0x3aec60['decode'](_0x18947e,{'stream':!![]});const _0x6125ff=_0x49685b['split']('\x0a\x0a');_0x49685b=_0x6125ff['pop']()||'';for(const _0x358a69 of _0x6125ff){if(!_0x358a69['trim']())continue;const _0xaa1e68=_0x358a69['split']('\x0a');let _0x306bde='message',_0x399b2b='';for(const _0x5d7f72 of _0xaa1e68){if(_0x5d7f72['startsWith']('event:'))_0x306bde=_0x5d7f72['substring'](0x6)['trim']();else _0x5d7f72['startsWith']('data:')&&(_0x399b2b=_0x5d7f72['substring'](0x5)['trim']());}if(!_0x399b2b)continue;try{const _0x4401d4=JSON['parse'](_0x399b2b);if(_0x306bde==='progress'&&_0x89580d)_0x89580d(_0x4401d4['stage'],_0x4401d4['message']);else{if(_0x306bde==='result'){_0x14a634(_0x4401d4);return;}else{if(_0x306bde==='error'){let _0x4641c2=_0x4401d4['message']||_0x4401d4['error']||'Prompt\x20command\x20failed';_0x4401d4['rawOutput']&&(_0x4641c2+='\x0a\x0aRaw\x20output:\x0a'+_0x4401d4['rawOutput']);_0x497b13(new Error(_0x4641c2));return;}}}}catch(_0x5d772f){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x5d772f),console['error']('Event\x20type:',_0x306bde),console['error']('Event\x20data:',_0x399b2b),console['error']('First\x20200\x20chars:',_0x399b2b['substring'](0x0,0xc8)),_0x497b13(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x5d772f['message']+'\x0a\x0aData:\x20'+_0x399b2b['substring'](0x0,0x1f4)));return;}}_0x5a7df5();}catch(_0x17f1ca){_0x497b13(_0x17f1ca);}};_0x5a7df5();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x557ae4){const _0x11ae33=await fetch(''+API_BASE+_0x557ae4);if(!_0x11ae33['ok']){const _0x2d40a4=await _0x11ae33['json']()['catch'](()=>({'error':_0x11ae33['statusText']})),_0x3f47d6=new Error(_0x2d40a4['error']||_0x2d40a4['message']||_0x11ae33['statusText']);if(_0x2d40a4['detail']!==undefined)_0x3f47d6['detail']=_0x2d40a4['detail'];throw _0x3f47d6;}return await _0x11ae33['json']();},async 'post'(_0x4879d7,_0x4fc287){const _0x50da77=await fetch(''+API_BASE+_0x4879d7,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4fc287)});if(!_0x50da77['ok']){const _0xec453e=await _0x50da77['json']()['catch'](()=>({'error':_0x50da77['statusText']})),_0x62361f=new Error(_0xec453e['error']||_0xec453e['message']||_0x50da77['statusText']);if(_0xec453e['detail']!==undefined)_0x62361f['detail']=_0xec453e['detail'];throw _0x62361f;}return await _0x50da77['json']();},async 'put'(_0x355529,_0x36118e){const _0x22f1b1=await fetch(''+API_BASE+_0x355529,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36118e)});if(!_0x22f1b1['ok']){const _0x3c13c0=await _0x22f1b1['json']()['catch'](()=>({'error':_0x22f1b1['statusText']})),_0x47c3b8=new Error(_0x3c13c0['error']||_0x3c13c0['message']||_0x22f1b1['statusText']);if(_0x3c13c0['detail']!==undefined)_0x47c3b8['detail']=_0x3c13c0['detail'];throw _0x47c3b8;}return await _0x22f1b1['json']();},async 'delete'(_0x4476f6,_0x9083a9){const _0x200bc3={'method':'DELETE'};_0x9083a9&&(_0x200bc3['headers']={'Content-Type':'application/json'},_0x200bc3['body']=JSON['stringify'](_0x9083a9));const _0x3b1825=await fetch(''+API_BASE+_0x4476f6,_0x200bc3);if(!_0x3b1825['ok']){const _0x4b392c=await _0x3b1825['json']()['catch'](()=>({'error':_0x3b1825['statusText']})),_0x5821e5=new Error(_0x4b392c['error']||_0x4b392c['message']||_0x3b1825['statusText']);if(_0x4b392c['detail']!==undefined)_0x5821e5['detail']=_0x4b392c['detail'];throw _0x5821e5;}return await _0x3b1825['json']();},async 'getSkills'(){const _0x514a89=await fetch(API_BASE+'/skills');if(!_0x514a89['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x514a89['statusText']);return await _0x514a89['json']();},async 'getSkill'(_0x57a3e8){const _0x2711fb=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x57a3e8));if(!_0x2711fb['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x2711fb['statusText']);return await _0x2711fb['json']();},async 'createSkill'(_0x46baeb){const _0xf50fb2=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46baeb)});if(!_0xf50fb2['ok']){const _0x5e5e87=await _0xf50fb2['json']()['catch'](()=>({'error':_0xf50fb2['statusText']})),_0x277934=new Error(_0x5e5e87['error']||_0x5e5e87['message']||_0xf50fb2['statusText']);if(_0x5e5e87['detail']!==undefined)_0x277934['detail']=_0x5e5e87['detail'];throw _0x277934;}return await _0xf50fb2['json']();},async 'updateSkill'(_0x335648,_0x84ef1a){const _0x25c08c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x335648),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x84ef1a)});if(!_0x25c08c['ok']){const _0x3ad7f1=await _0x25c08c['json']()['catch'](()=>({'error':_0x25c08c['statusText']})),_0x22474b=new Error(_0x3ad7f1['error']||_0x3ad7f1['message']||_0x25c08c['statusText']);if(_0x3ad7f1['detail']!==undefined)_0x22474b['detail']=_0x3ad7f1['detail'];throw _0x22474b;}return await _0x25c08c['json']();},async 'deleteSkill'(_0x4e832f){const _0x259d19=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4e832f),{'method':'DELETE'});if(!_0x259d19['ok']){const _0x142b60=await _0x259d19['json']()['catch'](()=>({'error':_0x259d19['statusText']})),_0x325cdb=new Error(_0x142b60['error']||_0x142b60['message']||_0x259d19['statusText']);if(_0x142b60['detail']!==undefined)_0x325cdb['detail']=_0x142b60['detail'];throw _0x325cdb;}return await _0x259d19['json']();},async 'getSkillFile'(_0x296522,_0x1cff18){const _0x27a038=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x296522)+'/files/'+_0x1cff18);if(!_0x27a038['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x27a038['statusText']);return await _0x27a038['json']();},async 'saveSkillFile'(_0x189694,_0x13f027,_0x586dc5){const _0x13b910=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x189694)+'/files/'+_0x13f027,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x586dc5})});if(!_0x13b910['ok']){const _0x2514f5=await _0x13b910['json']()['catch'](()=>({'error':_0x13b910['statusText']})),_0x3e9121=new Error(_0x2514f5['error']||_0x2514f5['message']||_0x13b910['statusText']);if(_0x2514f5['detail']!==undefined)_0x3e9121['detail']=_0x2514f5['detail'];throw _0x3e9121;}return await _0x13b910['json']();},async 'deleteSkillFile'(_0xeaf214,_0x371b38){const _0x53aef7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xeaf214)+'/files/'+_0x371b38,{'method':'DELETE'});if(!_0x53aef7['ok']){const _0x15a32f=await _0x53aef7['json']()['catch'](()=>({'error':_0x53aef7['statusText']})),_0x225fdc=new Error(_0x15a32f['error']||_0x15a32f['message']||_0x53aef7['statusText']);if(_0x15a32f['detail']!==undefined)_0x225fdc['detail']=_0x15a32f['detail'];throw _0x225fdc;}return await _0x53aef7['json']();},async 'pullSkills'(){const _0x30fdde=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x30fdde['ok']){const _0x4681bf=await _0x30fdde['json']()['catch'](()=>({'error':_0x30fdde['statusText']})),_0x5800a5=new Error(_0x4681bf['error']||_0x4681bf['message']||_0x30fdde['statusText']);if(_0x4681bf['detail']!==undefined)_0x5800a5['detail']=_0x4681bf['detail'];throw _0x5800a5;}return await _0x30fdde['json']();},async 'commitSkills'(_0x436bfc,_0xca0cbd={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0xca0cbd,_0x7abf5d=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x436bfc,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x7abf5d['ok']){const _0xedadd3=await _0x7abf5d['json']()['catch'](()=>({'error':_0x7abf5d['statusText']})),_0xd462c0=new Error(_0xedadd3['error']||_0xedadd3['message']||_0x7abf5d['statusText']);if(_0xedadd3['detail']!==undefined)_0xd462c0['detail']=_0xedadd3['detail'];throw _0xd462c0;}return await _0x7abf5d['json']();},async 'discardSkillsChanges'(){const _0xd51edd=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0xd51edd['ok']){const _0x46bfbd=await _0xd51edd['json']()['catch'](()=>({'error':_0xd51edd['statusText']})),_0x2aee1b=new Error(_0x46bfbd['error']||_0x46bfbd['message']||_0xd51edd['statusText']);if(_0x46bfbd['detail']!==undefined)_0x2aee1b['detail']=_0x46bfbd['detail'];throw _0x2aee1b;}return await _0xd51edd['json']();},async 'getSkillCatalog'(){const _0x103522=await fetch(API_BASE+'/external-skills/catalog');if(!_0x103522['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x103522['statusText']);return await _0x103522['json']();},async 'getImportedSkillsRegistry'(){const _0x54b0ed=await fetch(API_BASE+'/external-skills/registry');if(!_0x54b0ed['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x54b0ed['statusText']);return await _0x54b0ed['json']();},async 'importCatalogSkill'(_0x2f430e){const _0x5a4635=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x2f430e})});if(!_0x5a4635['ok']){const _0x20f822=await _0x5a4635['json']()['catch'](()=>({'error':_0x5a4635['statusText']})),_0x4d9467=new Error(_0x20f822['error']||_0x20f822['message']||_0x5a4635['statusText']);if(_0x20f822['detail']!==undefined)_0x4d9467['detail']=_0x20f822['detail'];throw _0x4d9467;}return await _0x5a4635['json']();},async 'importSkillFromGit'(_0x4c2259,_0xdef8ee,_0x4a0a28='main',_0x5e362e=null){const _0x1a0ff2=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4c2259,'skillPath':_0xdef8ee,'branch':_0x4a0a28,'skillId':_0x5e362e})});if(!_0x1a0ff2['ok']){const _0x3ad91b=await _0x1a0ff2['json']()['catch'](()=>({'error':_0x1a0ff2['statusText']})),_0x22bea6=new Error(_0x3ad91b['error']||_0x3ad91b['message']||_0x1a0ff2['statusText']);if(_0x3ad91b['detail']!==undefined)_0x22bea6['detail']=_0x3ad91b['detail'];throw _0x22bea6;}return await _0x1a0ff2['json']();},async 'probeMarketplace'(_0x5e8a74,_0x3b0744='main'){const _0x330e72=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5e8a74,'branch':_0x3b0744})});if(!_0x330e72['ok']){const _0x1955b7=await _0x330e72['json']()['catch'](()=>({'error':_0x330e72['statusText']})),_0x4d2c55=new Error(_0x1955b7['error']||_0x1955b7['message']||_0x330e72['statusText']);if(_0x1955b7['detail']!==undefined)_0x4d2c55['detail']=_0x1955b7['detail'];throw _0x4d2c55;}return await _0x330e72['json']();},async 'importMarketplaceBundle'(_0xafe8f,_0x1c6b39,_0x41500f,_0xaa80ff=null){const _0x3f3848=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0xafe8f,'branch':_0x1c6b39,'bundleId':_0x41500f,'selectedSkills':_0xaa80ff})});if(!_0x3f3848['ok']){const _0x1aaa67=await _0x3f3848['json']()['catch'](()=>({'error':_0x3f3848['statusText']})),_0x1d222a=new Error(_0x1aaa67['error']||_0x1aaa67['message']||_0x3f3848['statusText']);if(_0x1aaa67['detail']!==undefined)_0x1d222a['detail']=_0x1aaa67['detail'];throw _0x1d222a;}return await _0x3f3848['json']();},async 'importSkillFromFolder'(_0x4bdf5b,_0x467c8a=null){const _0xabeb02=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4bdf5b,'skillId':_0x467c8a})});if(!_0xabeb02['ok']){const _0xa53d61=await _0xabeb02['json']()['catch'](()=>({'error':_0xabeb02['statusText']})),_0x57deba=new Error(_0xa53d61['error']||_0xa53d61['message']||_0xabeb02['statusText']);if(_0xa53d61['detail']!==undefined)_0x57deba['detail']=_0xa53d61['detail'];throw _0x57deba;}return await _0xabeb02['json']();},async 'importSkillFromNpm'(_0x38da80,_0x28c8fa='latest',_0x504674=null,_0x393266=null){const _0x39d6ca=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x38da80,'version':_0x28c8fa,'skillId':_0x504674,'registry':_0x393266})});if(!_0x39d6ca['ok']){const _0x5f1901=await _0x39d6ca['json']()['catch'](()=>({'error':_0x39d6ca['statusText']})),_0x4b04ae=new Error(_0x5f1901['error']||_0x5f1901['message']||_0x39d6ca['statusText']);if(_0x5f1901['detail']!==undefined)_0x4b04ae['detail']=_0x5f1901['detail'];throw _0x4b04ae;}return await _0x39d6ca['json']();},async 'checkSkillUpdates'(_0x201ce3){const _0x56385a=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x201ce3)+'/check-updates',{'method':'POST'});if(!_0x56385a['ok']){const _0x3b431f=await _0x56385a['json']()['catch'](()=>({'error':_0x56385a['statusText']})),_0x281688=new Error(_0x3b431f['error']||_0x3b431f['message']||_0x56385a['statusText']);if(_0x3b431f['detail']!==undefined)_0x281688['detail']=_0x3b431f['detail'];throw _0x281688;}return await _0x56385a['json']();},async 'updateExternalSkill'(_0x1c093d){const _0x511ec8=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1c093d)+'/update',{'method':'POST'});if(!_0x511ec8['ok']){const _0x5bf300=await _0x511ec8['json']()['catch'](()=>({'error':_0x511ec8['statusText']})),_0xb1af0=new Error(_0x5bf300['error']||_0x5bf300['message']||_0x511ec8['statusText']);if(_0x5bf300['detail']!==undefined)_0xb1af0['detail']=_0x5bf300['detail'];throw _0xb1af0;}return await _0x511ec8['json']();},async 'updateSkillFlags'(_0x5f1c6c,_0x10b370){const _0x1736aa=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x5f1c6c)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x10b370})});if(!_0x1736aa['ok']){const _0x5dc451=await _0x1736aa['json']()['catch'](()=>({'error':_0x1736aa['statusText']})),_0x1d1867=new Error(_0x5dc451['error']||_0x5dc451['message']||_0x1736aa['statusText']);if(_0x5dc451['detail']!==undefined)_0x1d1867['detail']=_0x5dc451['detail'];throw _0x1d1867;}return await _0x1736aa['json']();},async 'removeFromImportedRegistry'(_0x1f7770){const _0xadfbfe=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1f7770)+'/registry',{'method':'DELETE'});if(!_0xadfbfe['ok']){const _0x14ce1d=await _0xadfbfe['json']()['catch'](()=>({'error':_0xadfbfe['statusText']})),_0x56ebb6=new Error(_0x14ce1d['error']||_0x14ce1d['message']||_0xadfbfe['statusText']);if(_0x14ce1d['detail']!==undefined)_0x56ebb6['detail']=_0x14ce1d['detail'];throw _0x56ebb6;}return await _0xadfbfe['json']();},async 'getTeams'(){const _0xaf3f27=await fetch(API_BASE+'/teams');if(!_0xaf3f27['ok']){const _0x5b9737=await _0xaf3f27['json']()['catch'](()=>({'message':_0xaf3f27['statusText']}));throw new Error(_0x5b9737['message']||'Failed\x20to\x20get\x20teams');}return await _0xaf3f27['json']();},async 'getTeam'(_0x30cf6a){const _0x59e553=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x30cf6a));if(!_0x59e553['ok']){const _0x474e2f=await _0x59e553['json']()['catch'](()=>({'message':_0x59e553['statusText']}));throw new Error(_0x474e2f['message']||'Failed\x20to\x20get\x20team');}return await _0x59e553['json']();},async 'createTeam'(_0x3af969){const _0x37c00f=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3af969)});if(!_0x37c00f['ok']){const _0x4c8f3a=await _0x37c00f['json']()['catch'](()=>({'message':_0x37c00f['statusText']}));throw new Error(_0x4c8f3a['message']||'Failed\x20to\x20create\x20team');}return await _0x37c00f['json']();},async 'updateTeam'(_0x28fa82,_0x210917){const _0x3d9fde=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x28fa82),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x210917)});if(!_0x3d9fde['ok']){const _0x4120c9=await _0x3d9fde['json']()['catch'](()=>({'message':_0x3d9fde['statusText']}));throw new Error(_0x4120c9['message']||'Failed\x20to\x20update\x20team');}return await _0x3d9fde['json']();},async 'deleteTeam'(_0x4230cc){const _0x12e190=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4230cc),{'method':'DELETE'});if(!_0x12e190['ok']){const _0x40a5cd=await _0x12e190['json']()['catch'](()=>({'message':_0x12e190['statusText']}));throw new Error(_0x40a5cd['message']||'Failed\x20to\x20delete\x20team');}return await _0x12e190['json']();},async 'addTeamMember'(_0x33e94f,_0x44f69c){const _0x3d5537=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x33e94f)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x44f69c})});if(!_0x3d5537['ok']){const _0x24895b=await _0x3d5537['json']()['catch'](()=>({'message':_0x3d5537['statusText']}));throw new Error(_0x24895b['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x3d5537['json']();},async 'removeTeamMember'(_0x5b1e2e,_0x4c946c){const _0x367e2c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5b1e2e)+'/members/'+encodeURIComponent(_0x4c946c),{'method':'DELETE'});if(!_0x367e2c['ok']){const _0x300d3b=await _0x367e2c['json']()['catch'](()=>({'message':_0x367e2c['statusText']}));throw new Error(_0x300d3b['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x367e2c['json']();},async 'getBindings'(_0x2d8683={}){const _0x4817ce=new URLSearchParams();if(_0x2d8683['resource_type'])_0x4817ce['set']('resource_type',_0x2d8683['resource_type']);if(_0x2d8683['resource_id'])_0x4817ce['set']('resource_id',_0x2d8683['resource_id']);if(_0x2d8683['subject_type'])_0x4817ce['set']('subject_type',_0x2d8683['subject_type']);if(_0x2d8683['subject_id'])_0x4817ce['set']('subject_id',_0x2d8683['subject_id']);const _0x540091=_0x4817ce['toString'](),_0x2853e1=await fetch(API_BASE+'/bindings'+(_0x540091?'?'+_0x540091:''));if(!_0x2853e1['ok']){const _0x471126=await _0x2853e1['json']()['catch'](()=>({'message':_0x2853e1['statusText']}));throw new Error(_0x471126['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2853e1['json']();},async 'createBinding'(_0x97cbec){const _0x18f8a2=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x97cbec)});if(!_0x18f8a2['ok']){const _0x308da3=await _0x18f8a2['json']()['catch'](()=>({'message':_0x18f8a2['statusText']}));throw new Error(_0x308da3['message']||'Failed\x20to\x20create\x20binding');}return await _0x18f8a2['json']();},async 'updateBinding'(_0x3a6204,_0x2e63da){const _0x113935=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3a6204),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e63da)});if(!_0x113935['ok']){const _0x500522=await _0x113935['json']()['catch'](()=>({'message':_0x113935['statusText']}));throw new Error(_0x500522['message']||'Failed\x20to\x20update\x20binding');}return await _0x113935['json']();},async 'deleteBinding'(_0x1f0262){const _0x4f6b1e=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x1f0262),{'method':'DELETE'});if(!_0x4f6b1e['ok']){const _0x1b641f=await _0x4f6b1e['json']()['catch'](()=>({'message':_0x4f6b1e['statusText']}));throw new Error(_0x1b641f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4f6b1e['json']();},async 'getRoleDefinitions'(){const _0x89226c=await fetch(API_BASE+'/roles');if(!_0x89226c['ok']){const _0x2494c1=await _0x89226c['json']()['catch'](()=>({'message':_0x89226c['statusText']}));throw new Error(_0x2494c1['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x89226c['json']();},async 'getRoleDefinition'(_0x13afe7){const _0x2229dc=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x13afe7));if(!_0x2229dc['ok']){const _0x8ca62a=await _0x2229dc['json']()['catch'](()=>({'message':_0x2229dc['statusText']}));throw new Error(_0x8ca62a['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x2229dc['json']();},async 'createRoleDefinition'(_0x3f55a1){const _0x20c4b6=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f55a1)});if(!_0x20c4b6['ok']){const _0x3fdd89=await _0x20c4b6['json']()['catch'](()=>({'message':_0x20c4b6['statusText']}));throw new Error(_0x3fdd89['message']||_0x3fdd89['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x20c4b6['json']();},async 'updateRoleDefinition'(_0x2a1031,_0x559d47){const _0x36f450=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2a1031),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x559d47)});if(!_0x36f450['ok']){const _0x4b379f=await _0x36f450['json']()['catch'](()=>({'message':_0x36f450['statusText']}));throw new Error(_0x4b379f['message']||_0x4b379f['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x36f450['json']();},async 'deleteRoleDefinition'(_0x5df818){const _0x1150ef=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5df818),{'method':'DELETE'});if(!_0x1150ef['ok']){const _0x69b783=await _0x1150ef['json']()['catch'](()=>({'message':_0x1150ef['statusText']}));throw new Error(_0x69b783['message']||_0x69b783['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x1150ef['json']();},async 'getAvailablePermissions'(){const _0x4c11aa=await fetch(API_BASE+'/roles/available-permissions');if(!_0x4c11aa['ok']){const _0x43ecdb=await _0x4c11aa['json']()['catch'](()=>({'message':_0x4c11aa['statusText']}));throw new Error(_0x43ecdb['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x4c11aa['json']();},async 'getGitProviderAllowedTeams'(_0x13581a){const _0xe7bde6=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x13581a)+'/allowed-teams');if(!_0xe7bde6['ok']){const _0xc75856=await _0xe7bde6['json']()['catch'](()=>({'message':_0xe7bde6['statusText']}));throw new Error(_0xc75856['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0xe7bde6['json']();},async 'setGitProviderAllowedTeams'(_0x1e8bb7,_0x52af7d){const _0x12ded6=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x1e8bb7)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x52af7d})});if(!_0x12ded6['ok']){const _0x3736e4=await _0x12ded6['json']()['catch'](()=>({'message':_0x12ded6['statusText']}));throw new Error(_0x3736e4['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x12ded6['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x474751=toastState['baseBottom'];toastState['toasts']['forEach'](_0x314b20=>{_0x314b20['el']['style']['bottom']=_0x474751+'px';const _0xd2df26=_0x314b20['el']['offsetHeight']||toastState['defaultHeight'];_0x474751+=_0xd2df26+toastState['gap'];});});}function removeToastById(_0x751328){const _0x195afd=toastState['toasts']['findIndex'](_0x45f70a=>_0x45f70a['id']===_0x751328);if(_0x195afd===-0x1)return;const _0x4b94e9=toastState['toasts'][_0x195afd];if(_0x4b94e9['timeoutId'])clearTimeout(_0x4b94e9['timeoutId']);_0x4b94e9['el']['classList']['remove']('show'),setTimeout(()=>_0x4b94e9['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x195afd,0x1),repositionAllToasts();}function registerToast(_0x3383b3){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x3383b3),repositionAllToasts(),_0x3383b3['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x3b3c1e){if(_0x3b3c1e===null||_0x3b3c1e===undefined)return'';return String(_0x3b3c1e)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0xeb711f,_0x1ff66d){if(_0xeb711f&&typeof _0xeb711f==='object'&&!Array['isArray'](_0xeb711f))return{'code':typeof _0xeb711f['text']==='string'?_0xeb711f['text']:'','language':typeof _0xeb711f['lang']==='string'?_0xeb711f['lang']:''};return{'code':typeof _0xeb711f==='string'?_0xeb711f:'','language':typeof _0x1ff66d==='string'?_0x1ff66d:''};}function buildMermaidBlock(_0x40e69f){const _0x291604=String(_0x40e69f||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x291604))+'\x22>'+escapeHtmlValue(_0x291604)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1d5af2=new marked['Renderer'](),_0x3f8f5b=_0x1d5af2['code']['bind'](_0x1d5af2);return _0x1d5af2['code']=function(_0x221b70,_0x479582,..._0x2b7e08){const {code:_0x542039,language:_0x1267d3}=getMarkdownCodeBlockPayload(_0x221b70,_0x479582),_0x4bce8b=String(_0x1267d3||'')['trim']()['toLowerCase']();if(_0x4bce8b==='mermaid')return buildMermaidBlock(_0x542039);const _0x2ac2a4=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x2ac2a4&&_0x4bce8b)try{const _0x46e20b=_0x2ac2a4['getLanguage'](_0x4bce8b)?_0x4bce8b:'plaintext',_0x459e57=_0x2ac2a4['highlight'](_0x542039,{'language':_0x46e20b})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x4bce8b)+'\x22>'+_0x459e57+'</code></pre>';}catch(_0x38e774){console['error']('Syntax\x20highlighting\x20error:',_0x38e774);}return _0x3f8f5b(_0x221b70,_0x479582,..._0x2b7e08);},sharedMarkedRenderer=_0x1d5af2,_0x1d5af2;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x5c9461=window['mermaid'];if(!_0x5c9461||typeof _0x5c9461['initialize']!=='function')return _0x5c9461||null;return _0x5c9461['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x5c9461;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x32fe70,_0x2fe2f5)=>{const _0x220786=()=>_0x32fe70(configureMermaidInstance()),_0x58e200=()=>{mermaidLoadPromise=null,_0x2fe2f5(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0xb548b6=document['getElementById'](MERMAID_SCRIPT_ID);!_0xb548b6&&(_0xb548b6=document['createElement']('script'),_0xb548b6['id']=MERMAID_SCRIPT_ID,_0xb548b6['src']=MERMAID_SCRIPT_SRC,_0xb548b6['async']=!![],document['head']['appendChild'](_0xb548b6));if(window['mermaid']){_0x220786();return;}_0xb548b6['addEventListener']('load',_0x220786,{'once':!![]}),_0xb548b6['addEventListener']('error',_0x58e200,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x42a711){const _0x53df11=_0x42a711['getAttribute']('data-mermaid-source');if(!_0x53df11)return null;let _0x4079fd=_0x53df11;try{_0x4079fd=decodeURIComponent(_0x53df11);}catch{}return _0x42a711['textContent']=_0x4079fd,_0x42a711['removeAttribute']('data-processed'),_0x42a711['removeAttribute']('aria-roledescription'),_0x42a711['removeAttribute']('role'),_0x42a711['removeAttribute']('aria-label'),_0x4079fd;}function collectMermaidNodes(_0x4c81a2,_0x4318b1){if(!(_0x4c81a2 instanceof Element))return;_0x4c81a2['matches']('.mermaid[data-mermaid-source]')&&_0x4318b1['add'](_0x4c81a2),_0x4c81a2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x588522=>{_0x4318b1['add'](_0x588522);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x13c486=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x2e405f=>setTimeout(_0x2e405f,0x0);_0x13c486(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x538658=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x538658);});});}function queueMermaidRender(_0x2e2998){const _0x367b22=new Set();_0x2e2998 instanceof Document||_0x2e2998 instanceof DocumentFragment?_0x2e2998['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x58f3b6=>_0x367b22['add'](_0x58f3b6)):collectMermaidNodes(_0x2e2998,_0x367b22);if(_0x367b22['size']===0x0)return;_0x367b22['forEach'](_0x5e301d=>pendingMermaidNodes['add'](_0x5e301d)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x22dfb9=Array['from'](pendingMermaidNodes)['filter'](_0xaeb4cc=>_0xaeb4cc['isConnected']);pendingMermaidNodes['clear']();if(_0x22dfb9['length']===0x0)return;const _0x2587f0=await loadMermaid();if(!_0x2587f0)return;configureMermaidInstance();const _0x36fe3f=getMermaidTheme();for(const _0xd59214 of _0x22dfb9){const _0x1c5407=_0xd59214['getAttribute']('data-mermaid-source');if(!_0x1c5407)continue;const _0x3cd887=_0xd59214['getAttribute']('data-processed')==='true';if(_0x3cd887&&_0xd59214['dataset']['mermaidTheme']===_0x36fe3f)continue;restoreMermaidSource(_0xd59214);try{if(typeof _0x2587f0['run']==='function')await _0x2587f0['run']({'nodes':[_0xd59214]});else typeof _0x2587f0['init']==='function'&&_0x2587f0['init'](undefined,[_0xd59214]);_0xd59214['dataset']['mermaidTheme']=_0x36fe3f,delete _0xd59214['dataset']['mermaidError'];}catch(_0x4ebfcc){console['error']('Mermaid\x20render\x20failed:',_0x4ebfcc),restoreMermaidSource(_0xd59214),_0xd59214['dataset']['mermaidError']='true',delete _0xd59214['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1e535b=>{_0x1e535b['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x1e535b);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x493292=>{_0x493292['forEach'](_0x4d1ce6=>{_0x4d1ce6['addedNodes']['forEach'](_0x2f61f5=>{_0x2f61f5['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x2f61f5);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x229145){const _0x413363=new Date(_0x229145),_0x5240f7=new Date(),_0x59ccfe=_0x5240f7-_0x413363,_0x351787=Math['floor'](_0x59ccfe/0x3e8),_0x56a16e=Math['floor'](_0x351787/0x3c),_0x14b47e=Math['floor'](_0x56a16e/0x3c),_0x4785f6=Math['floor'](_0x14b47e/0x18);if(_0x351787<0x3c)return'now';if(_0x56a16e<0x3c)return _0x56a16e+'m\x20ago';if(_0x14b47e<0x18)return _0x14b47e+'h\x20ago';return _0x4785f6+'d\x20ago';},'getStatusIcon'(_0x5ab8b1){switch(_0x5ab8b1){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x188ec4){switch(_0x188ec4){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x279202,_0x3593ad=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x2febb9={};_0x2febb9['text/plain']=new Blob([_0x279202],{'type':'text/plain'});_0x3593ad&&(_0x2febb9['text/html']=new Blob([_0x3593ad],{'type':'text/html'}));const _0x5e163f=new ClipboardItem(_0x2febb9);return await navigator['clipboard']['write']([_0x5e163f]),!![];}catch(_0x3fd08a){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3fd08a);}try{const _0x544ea5=_0x384678=>{_0x384678['preventDefault'](),_0x384678['clipboardData']['setData']('text/plain',_0x279202),_0x3593ad&&_0x384678['clipboardData']['setData']('text/html',_0x3593ad);};document['addEventListener']('copy',_0x544ea5);const _0xfe586b=document['execCommand']('copy');document['removeEventListener']('copy',_0x544ea5);if(_0xfe586b)return!![];}catch(_0x287058){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x287058);}try{const _0x5469cb=document['createElement']('textarea');_0x5469cb['value']=_0x279202,_0x5469cb['style']['position']='fixed',_0x5469cb['style']['opacity']='0',_0x5469cb['style']['pointerEvents']='none',document['body']['appendChild'](_0x5469cb),_0x5469cb['select']();const _0x53fb52=document['execCommand']('copy');return document['body']['removeChild'](_0x5469cb),_0x53fb52;}catch(_0x45e4c5){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x45e4c5),![];}},'showToast'(_0x31f3e2,_0x534f00='info'){const _0x58dca4=getNextToastId(),_0x583aa8=document['createElement']('div');_0x583aa8['className']='toast\x20toast-'+_0x534f00,_0x583aa8['textContent']=_0x31f3e2,_0x583aa8['dataset']['toastId']=_0x58dca4,document['body']['appendChild'](_0x583aa8);const _0x5a1333=_0x534f00==='error'?0x2710:0xbb8,_0x571858=setTimeout(()=>{removeToastById(_0x58dca4);},_0x5a1333),_0x156dc4={'id':_0x58dca4,'el':_0x583aa8,'timeoutId':_0x571858};return registerToast(_0x156dc4),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x583aa8['classList']['add']('show');});}),_0x58dca4;},'showError'(_0x4b15ab){console['error'](_0x4b15ab);const _0x589181=typeof _0x4b15ab==='string'?_0x4b15ab:_0x4b15ab['message']||'An\x20error\x20occurred';this['showToast'](_0x589181,'error');},'showSuccess'(_0x570348){this['showToast'](_0x570348,'success');},'capitalize'(_0x32d076){if(!_0x32d076)return'';return _0x32d076['charAt'](0x0)['toUpperCase']()+_0x32d076['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x226c03){return escapeHtmlValue(_0x226c03);},'ansiToHtml'(_0x576313){if(_0x576313===null||_0x576313===undefined)return'';let _0x4fb8f7=this['escapeHtml'](_0x576313);const _0x147fac={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x3dc3af={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0xad9500=0x0;return _0x4fb8f7=_0x4fb8f7['replace'](/\x1b\[([0-9;]*)m/g,(_0x546fa3,_0x8d87ab)=>{if(!_0x8d87ab||_0x8d87ab==='0'){const _0x9b4905='</span>'['repeat'](_0xad9500);return _0xad9500=0x0,_0x9b4905;}const _0x15ffcb=_0x8d87ab['split'](';'),_0x492ee8=[];for(const _0x3af068 of _0x15ffcb){if(_0x3af068==='1')_0x492ee8['push']('font-weight:bold');else{if(_0x3af068==='2')_0x492ee8['push']('opacity:0.7');else{if(_0x3af068==='3')_0x492ee8['push']('font-style:italic');else{if(_0x3af068==='4')_0x492ee8['push']('text-decoration:underline');else{if(_0x3af068==='9')_0x492ee8['push']('text-decoration:line-through');else{if(_0x147fac[_0x3af068])_0x492ee8['push']('color:'+_0x147fac[_0x3af068]);else{if(_0x3dc3af[_0x3af068])_0x492ee8['push']('background-color:'+_0x3dc3af[_0x3af068]);}}}}}}}if(_0x492ee8['length']>0x0)return _0xad9500++,'<span\x20style=\x22'+_0x492ee8['join'](';')+'\x22>';return'';}),_0x4fb8f7+='</span>'['repeat'](_0xad9500),_0x4fb8f7=_0x4fb8f7['replace'](/\\u001b\[([0-9;]*)m/g,(_0x38a347,_0x345be0)=>{if(!_0x345be0||_0x345be0==='0')return'';const _0x2648c5=_0x345be0['split'](';'),_0x5a47ab=[];for(const _0x3b604b of _0x2648c5){if(_0x3b604b==='1')_0x5a47ab['push']('font-weight:bold');else{if(_0x147fac[_0x3b604b])_0x5a47ab['push']('color:'+_0x147fac[_0x3b604b]);else{if(_0x3dc3af[_0x3b604b])_0x5a47ab['push']('background-color:'+_0x3dc3af[_0x3b604b]);}}}if(_0x5a47ab['length']>0x0)return'<span\x20style=\x22'+_0x5a47ab['join'](';')+'\x22>';return'';}),_0x4fb8f7;},'showModal'({title:_0x320750,content:_0x115a4e,buttons:buttons=[]}){const _0x2485c2='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x320750)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x115a4e+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x56af11,_0x5ee159)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x56af11['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x5ee159+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x56af11['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x2dc56d=document['createElement']('div');_0x2dc56d['id']='utils-modal',_0x2dc56d['className']='modal',_0x2dc56d['innerHTML']=_0x2485c2,document['body']['appendChild'](_0x2dc56d);const _0x126d74=document['getElementById']('utils-modal-close');_0x126d74&&_0x126d74['addEventListener']('click',()=>this['hideModal']());const _0x4bc41a=_0x2dc56d['querySelectorAll']('[data-btn-index]');_0x4bc41a['forEach'](_0x2513f9=>{const _0x4e894c=parseInt(_0x2513f9['dataset']['btnIndex']);buttons[_0x4e894c]?.['onClick']&&_0x2513f9['addEventListener']('click',buttons[_0x4e894c]['onClick']);});const _0x5312e0=document['getElementById']('utils-modal-overlay');_0x5312e0&&_0x5312e0['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x29f55c=document['getElementById']('utils-modal');_0x29f55c&&_0x29f55c['remove']();},'parseKeyValuePairs'(_0x3d440b){const _0x30f729={};if(!_0x3d440b)return _0x30f729;return _0x3d440b['split'](/\r?\n/)['map'](_0x484661=>_0x484661['trim']())['filter'](Boolean)['forEach'](_0x186bf6=>{const _0x5bc070=_0x186bf6['indexOf']('=');if(_0x5bc070>0x0){const _0x50b6fa=_0x186bf6['slice'](0x0,_0x5bc070)['trim'](),_0x24ce03=_0x186bf6['slice'](_0x5bc070+0x1)['trim']();if(_0x50b6fa)_0x30f729[_0x50b6fa]=_0x24ce03;}}),_0x30f729;},'debounce'(_0x104b72,_0x247438=0xfa){let _0x4565c3=null;return(..._0x38c550)=>{clearTimeout(_0x4565c3),_0x4565c3=setTimeout(()=>_0x104b72['apply'](this,_0x38c550),_0x247438);};},'formatTimestamp'(_0x4d782e){if(!_0x4d782e)return'N/A';const _0x454fb1=new Date(_0x4d782e);return _0x454fb1['toLocaleDateString']()+'\x20'+_0x454fb1['toLocaleTimeString']();},'getQueryParams'(){const _0xbe18ca=new URLSearchParams(window['location']['search']),_0x5c44e6={};for(const [_0x3d1c16,_0x180084]of _0xbe18ca){_0x5c44e6[_0x3d1c16]=_0x180084;}return _0x5c44e6;},'formatDuration'(_0x1b50f4,_0x35603d){if(!_0x1b50f4)return'N/A';const _0x502213=new Date(_0x1b50f4),_0xd4e84=_0x35603d?new Date(_0x35603d):new Date(),_0x18d774=_0xd4e84-_0x502213;if(_0x18d774<0x0)return'0s';const _0x54671a=Math['floor'](_0x18d774/0x3e8),_0x5249d9=Math['floor'](_0x54671a/0x3c),_0xecc4f2=Math['floor'](_0x5249d9/0x3c),_0x36d97c=Math['floor'](_0xecc4f2/0x18);if(_0x54671a<0x3c)return _0x54671a+'s';if(_0x5249d9<0x3c)return _0x5249d9+'m\x20'+_0x54671a%0x3c+'s';if(_0xecc4f2<0x18)return _0xecc4f2+'h\x20'+_0x5249d9%0x3c+'m\x20'+_0x54671a%0x3c+'s';return _0x36d97c+'d\x20'+_0xecc4f2%0x18+'h\x20'+_0x5249d9%0x3c+'m';},'renderMarkdown'(_0x55e33e,_0x2d6c53={}){if(!_0x55e33e)return'';_0x55e33e=this['rewriteAttachmentLinks'](_0x55e33e,_0x2d6c53),_0x55e33e=this['rewriteColorSyntax'](_0x55e33e);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x55e33e,_0x2d6c53);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x55e33e);}catch(_0x450b1d){return console['error']('Markdown\x20parsing\x20error:',_0x450b1d),this['renderMarkdownFallback'](_0x55e33e,_0x2d6c53);}},'rewriteAttachmentLinks'(_0x21f8f4,_0x4e292a={}){const _0x2175e5=typeof _0x4e292a['resolveAttachmentUrl']==='function'?_0x4e292a['resolveAttachmentUrl']:_0x4e292a['taskId']?_0x473e39=>API_BASE+'/tasks/'+_0x4e292a['taskId']+'/attachments/'+encodeURIComponent(_0x473e39):null;if(!_0x2175e5)return _0x21f8f4;return String(_0x21f8f4)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x4c5d7e,_0x501878)=>{const _0x33a421=String(_0x501878||'')['trim']();if(!_0x33a421)return _0x4c5d7e;let _0x50d3d1=_0x33a421;try{_0x50d3d1=decodeURIComponent(_0x33a421);}catch{}const _0xdced81=_0x2175e5(_0x50d3d1);if(!_0xdced81)return _0x4c5d7e;return']('+_0xdced81+')';});},'rewriteColorSyntax'(_0x58b644){if(!_0x58b644)return _0x58b644;return String(_0x58b644)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x57e65b,_0x3bc4cf,_0x196792)=>{const _0x4784c0=this['rewriteColorSyntax'](_0x196792);return'<span\x20style=\x22color:\x20'+_0x3bc4cf+'\x22>'+_0x4784c0+'</span>';});},'renderMarkdownFallback'(_0x18c660,_0x2857c0={}){if(!_0x18c660)return'';_0x18c660=_0x18c660['replace'](/\r\n/g,'\x0a'),_0x18c660=_0x18c660['replace'](/\r/g,'\x0a'),_0x18c660=this['rewriteAttachmentLinks'](_0x18c660,_0x2857c0);let _0x72f7bc=this['escapeHtml'](_0x18c660);return _0x72f7bc=_0x72f7bc['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x72f7bc=_0x72f7bc['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x72f7bc=_0x72f7bc['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x72f7bc=_0x72f7bc['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x72f7bc=_0x72f7bc['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x72f7bc=_0x72f7bc['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x72f7bc=_0x72f7bc['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x72f7bc=_0x72f7bc['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x72f7bc=_0x72f7bc['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x72f7bc=_0x72f7bc['replace'](/\n\n/g,'</p><p>'),_0x72f7bc=_0x72f7bc['replace'](/\n/g,'<br>'),'<p>'+_0x72f7bc+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1274f7=new Uint8Array(0x10);crypto['getRandomValues'](_0x1274f7),_0x1274f7[0x6]=_0x1274f7[0x6]&0xf|0x40,_0x1274f7[0x8]=_0x1274f7[0x8]&0x3f|0x80;const _0x41a64e=Array['from'](_0x1274f7,_0xb513ba=>_0xb513ba['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x41a64e['slice'](0x0,0x8)+'-'+_0x41a64e['slice'](0x8,0xc)+'-'+_0x41a64e['slice'](0xc,0x10)+'-'+_0x41a64e['slice'](0x10,0x14)+'-'+_0x41a64e['slice'](0x14);}};export class CustomSelect{constructor(_0xc28931,_0x3fddd0={}){this['nativeSelect']=_0xc28931,this['options']=_0x3fddd0,this['isOpen']=![],this['selectedValue']=_0xc28931['value']||'',this['searchable']=_0x3fddd0['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x48b622=document['createElement']('div');_0x48b622['className']='custom-select';const _0x2b863a=document['createElement']('div');_0x2b863a['className']='custom-select-trigger',_0x2b863a['setAttribute']('tabindex','0'),_0x2b863a['setAttribute']('role','button'),_0x2b863a['setAttribute']('aria-haspopup','listbox');const _0x5ceb16=document['createElement']('span');_0x5ceb16['className']='custom-select-trigger-text';const _0x22c9e9=document['createElement']('span');_0x22c9e9['className']='custom-select-arrow',_0x22c9e9['textContent']='▼',_0x2b863a['appendChild'](_0x5ceb16),_0x2b863a['appendChild'](_0x22c9e9);const _0xf99040=document['createElement']('div');_0xf99040['className']='custom-select-dropdown',_0xf99040['setAttribute']('role','listbox');if(this['searchable']){const _0x3c4956=document['createElement']('div');_0x3c4956['className']='custom-select-search';const _0x5c42e2=document['createElement']('input');_0x5c42e2['type']='text',_0x5c42e2['className']='custom-select-search-input',_0x5c42e2['placeholder']='Type\x20to\x20search...',_0x5c42e2['setAttribute']('aria-label','Search\x20options'),_0x5c42e2['addEventListener']('input',_0x433e4f=>{this['searchQuery']=_0x433e4f['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x5c42e2['addEventListener']('keydown',_0x1e2a37=>{if(_0x1e2a37['key']==='Escape')_0x1e2a37['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x1e2a37['key']==='Enter'){_0x1e2a37['preventDefault'](),_0x1e2a37['stopPropagation']();const _0x426180=_0xf99040['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x426180){const _0x57613c=_0x426180['getAttribute']('data-value');this['select'](_0x57613c);}}}}),_0x3c4956['appendChild'](_0x5c42e2),_0xf99040['appendChild'](_0x3c4956),this['searchInput']=_0x5c42e2;}const _0x2c06bb=document['createElement']('div');_0x2c06bb['className']='custom-select-options',_0xf99040['appendChild'](_0x2c06bb),_0x48b622['appendChild'](_0x2b863a),_0x48b622['appendChild'](_0xf99040),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x48b622,this['nativeSelect']),this['wrapper']=_0x48b622,this['trigger']=_0x2b863a,this['triggerText']=_0x5ceb16,this['dropdown']=_0xf99040,this['optionsContainer']=_0x2c06bb,_0x2b863a['addEventListener']('click',()=>this['toggle']()),_0x2b863a['addEventListener']('keydown',_0x13669d=>this['handleKeydown'](_0x13669d)),document['addEventListener']('click',_0x731551=>{!_0x48b622['contains'](_0x731551['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x464508=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x464508['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x2550c9=new MutationObserver(()=>{this['updateDisabledState']();});_0x2550c9['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4ff47b=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4ff47b['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0xf384dd=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0xf384dd),this['trigger']['setAttribute']('aria-disabled',_0xf384dd?'true':'false'),this['trigger']['setAttribute']('tabindex',_0xf384dd?'-1':'0'),_0xf384dd&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x41f723=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x2975b0=_0x41f723['filter'](_0x528fab=>!_0x528fab['disabled']&&!_0x528fab['hidden']);_0x41f723['forEach']((_0x28f5ef,_0x3c3438)=>{const _0x488bd9=document['createElement']('div');_0x488bd9['className']='custom-select-option',_0x488bd9['textContent']=_0x28f5ef['textContent'],_0x488bd9['setAttribute']('data-value',_0x28f5ef['value']),_0x488bd9['setAttribute']('data-index',_0x3c3438),_0x488bd9['setAttribute']('role','option'),_0x28f5ef['disabled']?_0x488bd9['classList']['add']('disabled'):_0x488bd9['addEventListener']('click',()=>this['select'](_0x28f5ef['value'])),_0x28f5ef['value']===this['selectedValue']&&_0x488bd9['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x488bd9),this['allOptions']['push']({'element':_0x488bd9,'text':_0x28f5ef['textContent']['toLowerCase'](),'value':_0x28f5ef['value'],'disabled':_0x28f5ef['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3cdc50=this['searchInput']['parentElement'];_0x2975b0['length']>0x3?_0x3cdc50['style']['display']='':_0x3cdc50['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x1b8214=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x4c628d=>{if(!_0x1b8214||_0x4c628d['disabled'])_0x4c628d['element']['style']['display']='';else{const _0x2caad7=_0x4c628d['text']['includes'](_0x1b8214);_0x4c628d['element']['style']['display']=_0x2caad7?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x38502e){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x38502e,this['nativeSelect']['value']=_0x38502e;const _0x315c9b=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x315c9b),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x9e2cd9=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x9e2cd9&&(this['triggerText']['textContent']=_0x9e2cd9['textContent'],_0x9e2cd9['disabled']||_0x9e2cd9['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x1abe13=>{_0x1abe13['getAttribute']('data-value')===this['selectedValue']?_0x1abe13['classList']['add']('selected'):_0x1abe13['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x40e662=window['getComputedStyle'](this['dropdown']);if(_0x40e662['position']==='fixed'){const _0x12eaba=this['trigger']['getBoundingClientRect'](),_0x88643c=parseInt(_0x40e662['maxHeight'])||0xc8,_0x2ca19f=window['innerHeight'],_0x5e684e=_0x2ca19f-_0x12eaba['bottom'],_0x32c70a=_0x12eaba['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x289c53;_0x5e684e<_0x88643c&&_0x32c70a>_0x5e684e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x2ca19f-_0x12eaba['top']+'px',_0x289c53=Math['min'](_0x88643c,_0x32c70a-0xa),this['dropdown']['style']['maxHeight']=_0x289c53+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x12eaba['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x289c53=Math['min'](_0x88643c,_0x5e684e-0xa),this['dropdown']['style']['maxHeight']=_0x289c53+'px');if(this['optionsContainer']){let _0x4e1e65=_0x289c53;if(this['searchInput']){const _0x1b6623=this['searchInput']['parentElement'];_0x1b6623&&(_0x4e1e65-=_0x1b6623['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4e1e65)+'px';}this['dropdown']['style']['left']=_0x12eaba['left']+'px',this['dropdown']['style']['width']=_0x12eaba['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x5bce7e=this['searchInput']['parentElement'];_0x5bce7e&&_0x5bce7e['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x569cab){if(this['nativeSelect']['disabled'])return;if(_0x569cab['key']==='Enter'||_0x569cab['key']==='\x20')_0x569cab['preventDefault'](),this['toggle']();else _0x569cab['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x71be43='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x71be43),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x3fc348=document['getElementById']('confirm-dialog-close'),_0x161f9f=document['getElementById']('confirm-dialog-cancel'),_0x45522d=document['getElementById']('confirm-dialog-confirm'),_0x1ebcb3=this['_modal']['querySelector']('.modal-overlay');_0x3fc348['addEventListener']('click',()=>this['_resolve'](![])),_0x161f9f['addEventListener']('click',()=>this['_resolve'](![])),_0x45522d['addEventListener']('click',()=>this['_resolve'](!![])),_0x1ebcb3['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x422bc8=>{if(_0x422bc8['key']==='Escape')_0x422bc8['preventDefault'](),this['_resolve'](![]);else _0x422bc8['key']==='Enter'&&(_0x422bc8['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x175d5c,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x45aab7=>{this['_resolvePromise']=_0x45aab7,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x175d5c;const _0x2b6155=document['getElementById']('confirm-dialog-cancel'),_0x933108=document['getElementById']('confirm-dialog-confirm');_0x2b6155['textContent']=cancelText,_0x933108['textContent']=confirmText,_0x933108['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x933108['focus']();});},'_resolve'(_0x3f9d35){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x3f9d35),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x252fbb,_0x122e60={}){this['container']=_0x252fbb,this['options']={'placeholder':_0x122e60['placeholder']||'Type\x20to\x20search...','maxItems':_0x122e60['maxItems']||0x64,'loadItems':_0x122e60['loadItems']||(async()=>[]),'renderItem':_0x122e60['renderItem']||(_0x406fde=>({'primary':String(_0x406fde),'secondary':''})),'onSelect':_0x122e60['onSelect']||(()=>{}),'filterItems':_0x122e60['filterItems']||null,'getItemValue':_0x122e60['getItemValue']||(_0x2de5ae=>_0x2de5ae),'sortItems':_0x122e60['sortItems']||null,'debounceMs':_0x122e60['debounceMs']||0xc8,'minCharsForSearch':_0x122e60['minCharsForSearch']||0x0,'emptyMessage':_0x122e60['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x122e60['loadingMessage']||'Loading...','preload':_0x122e60['preload']!==![],'searchMode':_0x122e60['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x5b7d19=>this['onBlur'](_0x5b7d19)),this['input']['addEventListener']('input',_0xb7780b=>this['onInput'](_0xb7780b)),this['input']['addEventListener']('keydown',_0x48d970=>this['onKeydown'](_0x48d970)),this['clearBtn']['addEventListener']('mousedown',_0x124f76=>{_0x124f76['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x450e4f=>{_0x450e4f['preventDefault']();}),document['addEventListener']('click',_0x4e5223=>{!this['wrapper']['contains'](_0x4e5223['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x3a3031){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3a3031);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x31ae07){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x144964){const _0x2b7a71=_0x144964['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2b7a71);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2b7a71):this['loadAndShow'](_0x2b7a71);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x2cb1e7){switch(_0x2cb1e7['key']){case'ArrowDown':_0x2cb1e7['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x2cb1e7['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x2cb1e7['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x2cb1e7['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x20ccef){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0xfdeb04=this['selectedIndex']+_0x20ccef;if(_0xfdeb04>=0x0&&_0xfdeb04<this['filteredItems']['length']){this['selectedIndex']=_0xfdeb04,this['updateSelectionHighlight']();const _0x276728=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x276728[this['selectedIndex']]&&_0x276728[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1eb28b=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1eb28b['forEach']((_0x668896,_0x4b21c1)=>{_0x668896['classList']['toggle']('keyboard-selected',_0x4b21c1===this['selectedIndex']);});}async['loadAndShow'](_0x49b8cd){this['showLoading']();try{const _0x1d7c70=await this['options']['loadItems'](_0x49b8cd);if(this['options']['searchMode']==='server'){let _0x22d630=_0x1d7c70;this['options']['sortItems']&&(_0x22d630=this['options']['sortItems']([..._0x1d7c70]));this['filteredItems']=_0x22d630;const _0x36e3e1=this['filteredItems']['length']>=this['options']['maxItems'];_0x36e3e1&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x36e3e1),this['open']();}else this['allItems']=_0x1d7c70,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x49b8cd);}catch(_0x53d965){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x53d965),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x237c40){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x237c40):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x53f5fa=this['filteredItems']['length']>=this['options']['maxItems'];_0x53f5fa&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x53f5fa),this['open']();}['renderItems'](_0x2a224b){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x2835c5,_0x420add)=>{const _0x419928=document['createElement']('div');_0x419928['className']='autocomplete-select-item',_0x419928['setAttribute']('role','option'),_0x419928['setAttribute']('data-index',_0x420add);const _0x2e1001=this['options']['renderItem'](_0x2835c5);let _0x2664f2='';_0x2e1001['icon']&&(_0x2664f2='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x2e1001['iconClass']||'')+'\x22>'+_0x2e1001['icon']+'</span>'),_0x419928['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2664f2+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x2e1001['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2e1001['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x2e1001['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x419928['addEventListener']('click',()=>{this['selectItem'](_0x2835c5);}),_0x419928['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x420add,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x419928);}),_0x2a224b?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x54dcca){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x54dcca)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x49a79){this['selectedItem']=_0x49a79;const _0x315ed1=this['options']['renderItem'](_0x49a79);this['input']['value']=_0x315ed1['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x49a79);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0xaf5ea8){if(_0xaf5ea8){this['selectedItem']=_0xaf5ea8;const _0x136c61=this['options']['renderItem'](_0xaf5ea8);this['input']['value']=_0x136c61['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x40fc19){this['allItems']=_0x40fc19,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x5582e1){this['input']['placeholder']=_0x5582e1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x331a07=null){const _0xf003a7=document['getElementById']('admin-menu-container'),_0x38b236=document['getElementById']('admin-menu-btn'),_0x3207fd=document['getElementById']('admin-menu');if(!_0xf003a7||!_0x38b236||!_0x3207fd)return;try{!_0x331a07&&(_0x331a07=await API['getCurrentUser']());if(_0x331a07){const _0x5089a6=window['Permissions'],_0x4feb5e=_0x5089a6['hasServerPermission'](_0x331a07,'*')||_0x5089a6['hasEnvPermission'](_0x331a07,'environments:manage')||_0x5089a6['hasServerPermission'](_0x331a07,'users:create')||_0x5089a6['hasTeamPermission'](_0x331a07,'teams:manage')||_0x5089a6['hasEnvPermission'](_0x331a07,'environments:view_details');if(!_0x4feb5e)return;_0xf003a7['hidden']=![];if(!_0x5089a6['hasServerPermission'](_0x331a07,'*')){const _0x526978=_0x3207fd['querySelectorAll']('.admin-menu-item');_0x526978['forEach'](_0x10a3e8=>{const _0x5d8c2b=_0x10a3e8['querySelector']('.option-text')?.['textContent']?.['trim']();_0x5d8c2b==='Users'&&!_0x5089a6['hasServerPermission'](_0x331a07,'users:create')&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Skills'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Server\x20Settings'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Server\x20Administration'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Git\x20History'&&(_0x10a3e8['hidden']=!![]),_0x5d8c2b==='Roles'&&(_0x10a3e8['hidden']=!![]);});}_0x38b236['addEventListener']('click',_0x26529f=>{_0x26529f['stopPropagation']();const _0x56cb23=document['getElementById']('actions-menu');if(_0x56cb23)_0x56cb23['hidden']=!![];_0x3207fd['hidden']=!_0x3207fd['hidden'];}),document['addEventListener']('click',_0x1dfc1e=>{!_0x3207fd['hidden']&&!_0x38b236['contains'](_0x1dfc1e['target'])&&!_0x3207fd['contains'](_0x1dfc1e['target'])&&(_0x3207fd['hidden']=!![]);}),document['addEventListener']('keydown',_0x42da0f=>{_0x42da0f['key']==='Escape'&&!_0x3207fd['hidden']&&(_0x3207fd['hidden']=!![]);});}}catch(_0x5ee658){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x5ee658['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
1
+ function detectApiBase(){const _0xbabc90=window['location']['pathname'],_0x2c36a7=_0xbabc90['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x2c36a7)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x2c36a7[0x1]),_0x2c36a7[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xf38d32={}){const _0x2eada3=new URLSearchParams();_0xf38d32['userId']&&_0x2eada3['set']('userId',String(_0xf38d32['userId']));_0xf38d32['automation']&&_0x2eada3['set']('automation',String(_0xf38d32['automation']));const _0x323986=API_BASE+'/tasks/stats'+(_0x2eada3['toString']()?'?'+_0x2eada3['toString']():''),_0x5687d9=await fetch(_0x323986);if(!_0x5687d9['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5687d9['statusText']);return await _0x5687d9['json']();},async 'getTasks'(_0x30bc3f={}){const _0x37ae1a=new URLSearchParams();_0x30bc3f['status']&&_0x37ae1a['set']('status',String(_0x30bc3f['status']));_0x30bc3f['environment']&&_0x37ae1a['set']('environment',String(_0x30bc3f['environment']));_0x30bc3f['automation']&&_0x37ae1a['set']('automation',String(_0x30bc3f['automation']));if(_0x30bc3f['include']){const _0x3a2c7d=Array['isArray'](_0x30bc3f['include'])?_0x30bc3f['include']['join'](','):String(_0x30bc3f['include']);_0x3a2c7d&&_0x37ae1a['set']('include',_0x3a2c7d);}_0x30bc3f['filter']&&_0x37ae1a['set']('filter',String(_0x30bc3f['filter']));_0x30bc3f['page']&&_0x37ae1a['set']('page',String(_0x30bc3f['page']));_0x30bc3f['limit']&&_0x37ae1a['set']('limit',String(_0x30bc3f['limit']));_0x30bc3f['userId']&&_0x37ae1a['set']('userId',String(_0x30bc3f['userId']));_0x30bc3f['search']&&_0x37ae1a['set']('search',String(_0x30bc3f['search']));_0x30bc3f['includeChildTasks']&&_0x37ae1a['set']('includeChildTasks','true');const _0x5c388d=API_BASE+'/tasks'+(_0x37ae1a['toString']()?'?'+_0x37ae1a['toString']():''),_0x4f12f7=await fetch(_0x5c388d);if(!_0x4f12f7['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x4f12f7['statusText']);return await _0x4f12f7['json']();},async 'getAutomations'(_0x1eeb71={}){const _0x235902=new URLSearchParams();_0x1eeb71['environment']&&_0x235902['set']('environment',String(_0x1eeb71['environment']));const _0x9f0410=await fetch(API_BASE+'/api/automations'+(_0x235902['toString']()?'?'+_0x235902['toString']():''));if(!_0x9f0410['ok']){const _0x1b4924=await _0x9f0410['json']()['catch'](()=>({}));throw new Error(_0x1b4924['message']||_0x1b4924['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x9f0410['statusText']);}return await _0x9f0410['json']();},async 'getAutomation'(_0x7d699d){const _0x3a831b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x7d699d));if(!_0x3a831b['ok']){const _0x1b8531=await _0x3a831b['json']()['catch'](()=>({}));throw new Error(_0x1b8531['message']||_0x1b8531['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x3a831b['statusText']);}return await _0x3a831b['json']();},async 'createAutomation'(_0x54c520){const _0x31ea93=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x54c520||{})});if(!_0x31ea93['ok']){const _0x3772c1=await _0x31ea93['json']()['catch'](()=>({}));throw new Error(_0x3772c1['message']||_0x3772c1['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x31ea93['statusText']);}return await _0x31ea93['json']();},async 'updateAutomation'(_0x9c8e35,_0x46a99b){const _0x53cd12=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x9c8e35),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46a99b||{})});if(!_0x53cd12['ok']){const _0x5a5a66=await _0x53cd12['json']()['catch'](()=>({}));throw new Error(_0x5a5a66['message']||_0x5a5a66['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x53cd12['statusText']);}return await _0x53cd12['json']();},async 'deleteAutomation'(_0x36cbc1){const _0x1a7153=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36cbc1),{'method':'DELETE'});if(!_0x1a7153['ok']){const _0xd75c74=await _0x1a7153['json']()['catch'](()=>({}));throw new Error(_0xd75c74['message']||_0xd75c74['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x1a7153['statusText']);}return await _0x1a7153['json']();},async 'triggerAutomation'(_0x5102ed){const _0x42cb28=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5102ed)+'/trigger',{'method':'POST'});if(!_0x42cb28['ok']){const _0x17a1d0=await _0x42cb28['json']()['catch'](()=>({}));throw new Error(_0x17a1d0['message']||_0x17a1d0['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x42cb28['statusText']);}return await _0x42cb28['json']();},async 'setAutomationEnabled'(_0x468088,_0x8317e2){const _0x10c757=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x468088)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x8317e2})});if(!_0x10c757['ok']){const _0x2dd1d0=await _0x10c757['json']()['catch'](()=>({}));throw new Error(_0x2dd1d0['message']||_0x2dd1d0['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x10c757['statusText']);}return await _0x10c757['json']();},async 'getAutomationHistory'(_0x31edc8,_0x410140=0x32){const _0x21c1da=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x31edc8)+'/history?limit='+encodeURIComponent(String(_0x410140)));if(!_0x21c1da['ok']){const _0x52845d=await _0x21c1da['json']()['catch'](()=>({}));throw new Error(_0x52845d['message']||_0x52845d['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x21c1da['statusText']);}return await _0x21c1da['json']();},async 'getTask'(_0x5e0c9a,_0x31f84b={}){const _0x29f198=new URLSearchParams();if(_0x31f84b['include']){const _0x3080ad=Array['isArray'](_0x31f84b['include'])?_0x31f84b['include']['join'](','):String(_0x31f84b['include']);if(_0x3080ad)_0x29f198['set']('include',_0x3080ad);}const _0x246edd=await fetch(API_BASE+'/tasks/'+_0x5e0c9a+(_0x29f198['toString']()?'?'+_0x29f198['toString']():''));if(!_0x246edd['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x246edd['statusText']);return await _0x246edd['json']();},async 'getTaskResults'(_0x49b015){const _0x36bd93=await fetch(API_BASE+'/tasks/'+_0x49b015+'/results');if(!_0x36bd93['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x36bd93['statusText']);return await _0x36bd93['json']();},async 'getTaskPatches'(_0x3cf5b5){const _0x400dac=await fetch(API_BASE+'/tasks/'+_0x3cf5b5+'/patches');if(!_0x400dac['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x400dac['statusText']);return await _0x400dac['json']();},async 'getTaskAttachments'(_0x4dacea){const _0x595b4a=await fetch(API_BASE+'/tasks/'+_0x4dacea+'/attachments');if(!_0x595b4a['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x595b4a['statusText']);return await _0x595b4a['json']();},async 'uploadAttachments'(_0x23ee24,_0x17d3c2){const _0x3d2091=new FormData();for(const _0x256dd3 of _0x17d3c2){_0x3d2091['append']('attachments',_0x256dd3);}const _0x5253e2=await fetch(API_BASE+'/tasks/'+_0x23ee24+'/attachments',{'method':'POST','body':_0x3d2091});if(!_0x5253e2['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x5253e2['statusText']);return await _0x5253e2['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11a9ed=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11a9ed['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11a9ed['json']();}catch(_0xd33ec){return{'available':![],'reason':_0xd33ec['message']};}},async 'generateTaskName'(_0x16eaa3){try{const _0x18be3b=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x16eaa3})});return await _0x18be3b['json']();}catch(_0x31b3d6){return{'success':![],'error':_0x31b3d6['message']};}},async 'createTask'(_0x5a483f){let _0x445b41,_0x4ca2ec={};if(_0x5a483f['files']&&_0x5a483f['files']['length']>0x0){const _0x5594b4=new FormData();for(const [_0xd61fb4,_0x5f1245]of Object['entries'](_0x5a483f)){if(_0xd61fb4!=='files'){if(_0x5f1245==null)continue;typeof _0x5f1245==='object'?_0x5594b4['append'](_0xd61fb4,JSON['stringify'](_0x5f1245)):_0x5594b4['append'](_0xd61fb4,String(_0x5f1245));}}for(const _0x380db7 of _0x5a483f['files']){_0x5594b4['append']('attachments',_0x380db7);}_0x445b41=_0x5594b4;}else _0x4ca2ec['Content-Type']='application/json',_0x445b41=JSON['stringify'](_0x5a483f);const _0x20455d=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4ca2ec,'body':_0x445b41});if(!_0x20455d['ok']){const _0x4168c3=await _0x20455d['json'](),_0x54873a=new Error(_0x4168c3['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20455d['statusText']),{message:_0x3e9e8a,..._0x3ced4d}=_0x4168c3;Object['assign'](_0x54873a,_0x3ced4d);throw _0x54873a;}return await _0x20455d['json']();},async 'createTestTask'(_0x594c0e){const _0x1cedbc=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x594c0e)});if(!_0x1cedbc['ok']){const _0xdd11e6=await _0x1cedbc['json']();throw new Error(_0xdd11e6['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x1cedbc['statusText']);}return await _0x1cedbc['json']();},async 'createEphemeralTest'(_0x288095){const _0x1ed7a7=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x288095)});if(!_0x1ed7a7['ok']){const _0x489eed=await _0x1ed7a7['json']();throw new Error(_0x489eed['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x1ed7a7['statusText']);}return await _0x1ed7a7['json']();},async 'createDeployTask'(_0x249d25){const _0x32ef1a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x249d25)});if(!_0x32ef1a['ok']){const _0x2a08a6=await _0x32ef1a['json']();throw new Error(_0x2a08a6['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x32ef1a['statusText']);}return await _0x32ef1a['json']();},async 'getEnvironments'(){const _0x592312=await fetch(API_BASE+'/environments');if(!_0x592312['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x592312['statusText']);return await _0x592312['json']();},async 'getEnvironment'(_0x5d99b2){const _0x2f7565=await fetch(API_BASE+'/environments/'+_0x5d99b2);if(!_0x2f7565['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x2f7565['statusText']);return await _0x2f7565['json']();},async 'getEnvironmentRepoHistory'(_0x1327df,_0x1c98fd,_0x2bb249={}){if(!_0x1327df||!_0x1c98fd)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3b0730=new URLSearchParams();if(_0x2bb249['limit'])_0x3b0730['set']('limit',String(_0x2bb249['limit']));if(_0x2bb249['offset'])_0x3b0730['set']('offset',String(_0x2bb249['offset']));if(_0x2bb249['search'])_0x3b0730['set']('search',String(_0x2bb249['search']));if(_0x2bb249['branch'])_0x3b0730['set']('branch',String(_0x2bb249['branch']));const _0x3a60d1=API_BASE+'/environments/'+encodeURIComponent(_0x1327df)+'/repos/'+encodeURIComponent(_0x1c98fd)+'/git/history',_0xba887e=await fetch(''+_0x3a60d1+(_0x3b0730['toString']()?'?'+_0x3b0730['toString']():''));if(!_0xba887e['ok']){const _0x4bdc30=await _0xba887e['json']()['catch'](()=>({}));throw new Error(_0x4bdc30['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0xba887e['statusText']);}return await _0xba887e['json']();},async 'getEnvironmentRepoCommit'(_0x36ba4d,_0x324682,_0x24cb84){if(!_0x36ba4d||!_0x324682||!_0x24cb84)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xc083b6=API_BASE+'/environments/'+encodeURIComponent(_0x36ba4d)+'/repos/'+encodeURIComponent(_0x324682)+'/git/commits/'+encodeURIComponent(_0x24cb84),_0x1d65a2=await fetch(_0xc083b6);if(!_0x1d65a2['ok']){const _0x5ad44e=await _0x1d65a2['json']()['catch'](()=>({}));throw new Error(_0x5ad44e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d65a2['statusText']);}return await _0x1d65a2['json']();},async 'getEnvironmentRepoBranches'(_0x107482,_0x43f641){if(!_0x107482||!_0x43f641)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x425de8=API_BASE+'/environments/'+encodeURIComponent(_0x107482)+'/repos/'+encodeURIComponent(_0x43f641)+'/git/branches',_0x3ed290=await fetch(_0x425de8);if(!_0x3ed290['ok']){const _0x5c5403=await _0x3ed290['json']()['catch'](()=>({}));throw new Error(_0x5c5403['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x3ed290['statusText']);}return await _0x3ed290['json']();},async 'revertEnvironmentRepoCommit'(_0x1ec110,_0x2dd683,_0x28af5c,_0x2abcf6={}){if(!_0x1ec110||!_0x2dd683||!_0x28af5c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5af734=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x1ec110)+'/repos/'+encodeURIComponent(_0x2dd683)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x28af5c,..._0x2abcf6})});if(!_0x5af734['ok']){const _0x4df898=await _0x5af734['json']()['catch'](()=>({}));throw new Error(_0x4df898['message']||_0x4df898['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5af734['statusText']);}return await _0x5af734['json']();},async 'getTemplates'(_0x59342f={}){const _0x314437=new URLSearchParams();if(_0x59342f['include']){const _0x537eef=Array['isArray'](_0x59342f['include'])?_0x59342f['include']['join'](','):String(_0x59342f['include']);if(_0x537eef)_0x314437['set']('include',_0x537eef);}const _0x869a4a=await fetch(API_BASE+'/templates'+(_0x314437['toString']()?'?'+_0x314437['toString']():''));if(!_0x869a4a['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x869a4a['statusText']);return await _0x869a4a['json']();},async 'getTemplatesForEnvironment'(_0x3d5f94,_0x5a9b5e={}){if(!_0x3d5f94)throw new Error('Environment\x20name\x20is\x20required');const _0x4ac2e2=new URLSearchParams();if(_0x5a9b5e['include']){const _0x39cb5e=Array['isArray'](_0x5a9b5e['include'])?_0x5a9b5e['include']['join'](','):String(_0x5a9b5e['include']);if(_0x39cb5e)_0x4ac2e2['set']('include',_0x39cb5e);}const _0x426781=await fetch(API_BASE+'/templates/'+_0x3d5f94+(_0x4ac2e2['toString']()?'?'+_0x4ac2e2['toString']():''));if(!_0x426781['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x3d5f94+':\x20'+_0x426781['statusText']);return await _0x426781['json']();},async 'getTemplate'(_0x394f73,_0x15c937,_0x479005={}){if(!_0x394f73||!_0x15c937)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x1f4499=new URLSearchParams();if(_0x479005['include']){const _0xa32f9a=Array['isArray'](_0x479005['include'])?_0x479005['include']['join'](','):String(_0x479005['include']);if(_0xa32f9a)_0x1f4499['set']('include',_0xa32f9a);}const _0x9494f=await fetch(API_BASE+'/templates/'+_0x394f73+'/'+_0x15c937+(_0x1f4499['toString']()?'?'+_0x1f4499['toString']():''));if(!_0x9494f['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x9494f['statusText']);return await _0x9494f['json']();},async 'getTaskLogs'(_0x454230,_0x2ad465={}){if(!_0x454230)throw new Error('Task\x20ID\x20is\x20required');const _0x31ede0=new URLSearchParams();_0x2ad465['tail']&&_0x31ede0['set']('tail',String(_0x2ad465['tail']));const _0x44fe35=await fetch(API_BASE+'/tasks/'+_0x454230+'/logs'+(_0x31ede0['toString']()?'?'+_0x31ede0['toString']():''));if(!_0x44fe35['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x44fe35['statusText']);return await _0x44fe35['text']();},async 'getContainers'(){const _0x5ba29b=await fetch(API_BASE+'/containers');if(!_0x5ba29b['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x5ba29b['statusText']);return await _0x5ba29b['json']();},async 'getContainer'(_0x76aa53){const _0x4a0a0a=await fetch(API_BASE+'/containers/'+_0x76aa53);if(!_0x4a0a0a['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x4a0a0a['statusText']);return await _0x4a0a0a['json']();},async 'startInteractiveContainer'(_0x5435ee){const _0x494a3a=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5435ee)});if(!_0x494a3a['ok']){const _0x43f733=await _0x494a3a['json']()['catch'](()=>({}));throw new Error(_0x43f733['message']||'Failed\x20to\x20start\x20container:\x20'+_0x494a3a['statusText']);}return await _0x494a3a['json']();},async 'startContainerCodeServer'(_0x3d81a1,_0x1fa242={}){if(!_0x3d81a1)throw new Error('Container\x20ID\x20is\x20required');const _0x262301=new URLSearchParams();_0x1fa242['theme']&&_0x262301['set']('theme',_0x1fa242['theme']);const _0x11f3cd=await fetch(API_BASE+'/containers/'+_0x3d81a1+'/code-server'+(_0x262301['toString']()?'?'+_0x262301['toString']():'')),_0xe26e15=await _0x11f3cd['json']()['catch'](()=>({}));if(!_0x11f3cd['ok'])throw new Error(_0xe26e15['message']||_0xe26e15['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x11f3cd['statusText']);return _0xe26e15;},async 'stopContainer'(_0xa88d2a){const _0x22d4a6=await fetch(API_BASE+'/containers/'+_0xa88d2a,{'method':'DELETE'});if(!_0x22d4a6['ok']){const _0x5efb9e=await _0x22d4a6['json']()['catch'](()=>({}));throw new Error(_0x5efb9e['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x22d4a6['statusText']);}return await _0x22d4a6['json']();},async 'stopTask'(_0x9ccf72){if(!_0x9ccf72)throw new Error('Task\x20ID\x20is\x20required');const _0x4dc8de=await fetch(API_BASE+'/tasks/'+_0x9ccf72+'/stop',{'method':'POST'});if(!_0x4dc8de['ok']){const _0x2376cb=await _0x4dc8de['json']()['catch'](()=>({}));throw new Error(_0x2376cb['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x4dc8de['statusText']);}return await _0x4dc8de['json']();},async 'interruptTask'(_0xee208c){if(!_0xee208c)throw new Error('Task\x20ID\x20is\x20required');const _0x3d8636=await fetch(API_BASE+'/tasks/'+_0xee208c+'/interrupt',{'method':'POST'});if(!_0x3d8636['ok']){const _0x5e6162=await _0x3d8636['json']()['catch'](()=>({}));throw new Error(_0x5e6162['error']||_0x5e6162['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x3d8636['statusText']);}return await _0x3d8636['json']();},async 'startTask'(_0xdc2ff6){if(!_0xdc2ff6)throw new Error('Task\x20ID\x20is\x20required');const _0x53de6d=await fetch(API_BASE+'/tasks/'+_0xdc2ff6+'/start',{'method':'POST'});if(!_0x53de6d['ok']){const _0x2b8cbb=await _0x53de6d['json']()['catch'](()=>({}));throw new Error(_0x2b8cbb['error']||'Failed\x20to\x20start\x20task:\x20'+_0x53de6d['statusText']);}return await _0x53de6d['json']();},async 'deleteTask'(_0x54d914){if(!_0x54d914)throw new Error('Task\x20ID\x20is\x20required');const _0x280a30=await fetch(API_BASE+'/tasks/'+_0x54d914,{'method':'DELETE'});if(!_0x280a30['ok']){const _0x1f1bbd=await _0x280a30['json']()['catch'](()=>({}));throw new Error(_0x1f1bbd['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x280a30['statusText']);}return await _0x280a30['json']();},async 'refreshTasksFromDisk'(){const _0xafea4=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0xafea4['ok']){const _0x5ce4fd=await _0xafea4['json']()['catch'](()=>({}));throw new Error(_0x5ce4fd['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0xafea4['statusText']);}return await _0xafea4['json']();},async 'approveTask'(_0x759247,_0x2c9133={}){if(!_0x759247)throw new Error('Task\x20ID\x20is\x20required');const _0x42159d={'commit_message':_0x2c9133['commit_message']||'','pull':_0x2c9133['pull']??![],'push':_0x2c9133['push']??![],'conflict_strategy':_0x2c9133['conflict_strategy']||'rebase'};_0x2c9133['new_branch']&&(_0x42159d['new_branch']=_0x2c9133['new_branch']);const _0x2a6225=await fetch(API_BASE+'/tasks/'+_0x759247+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x42159d)});if(!_0x2a6225['ok']){const _0x5b5262=await _0x2a6225['json']()['catch'](()=>({}));let _0xa85a2d=_0x5b5262['error']||_0x5b5262['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x2a6225['statusText'];if(_0x5b5262['results']&&Array['isArray'](_0x5b5262['results'])){const _0x3bd9d4=_0x5b5262['results']['filter'](_0x222ae4=>!_0x222ae4['success']&&_0x222ae4['error']);_0x3bd9d4['length']>0x0&&(_0xa85a2d=_0x3bd9d4[0x0]['error']);}const _0x14c743=new Error(_0xa85a2d);_0x14c743['hasConflicts']=_0x5b5262['results']?.['some'](_0xc974e9=>_0xc974e9['conflict'])||![];throw _0x14c743;}return await _0x2a6225['json']();},async 'getPullRequestInfo'(_0x4fb2b6){if(!_0x4fb2b6)throw new Error('Task\x20ID\x20is\x20required');const _0x1336c6=await fetch(API_BASE+'/tasks/'+_0x4fb2b6+'/pull-request-info');if(!_0x1336c6['ok']){const _0x540de1=await _0x1336c6['json']()['catch'](()=>({}));throw new Error(_0x540de1['error']||_0x540de1['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x1336c6['statusText']);}return await _0x1336c6['json']();},async 'createPullRequests'(_0x255278,_0x58e98d){if(!_0x255278)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58e98d||!Array['isArray'](_0x58e98d))throw new Error('repos\x20array\x20is\x20required');const _0x1f7ad7=await fetch(API_BASE+'/tasks/'+_0x255278+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x58e98d})});if(!_0x1f7ad7['ok']){const _0x1c3fa1=await _0x1f7ad7['json']()['catch'](()=>({}));let _0x58bddb=_0x1c3fa1['error']||_0x1c3fa1['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x1f7ad7['statusText'];if(_0x1c3fa1['results']&&Array['isArray'](_0x1c3fa1['results'])){const _0x29d349=_0x1c3fa1['results']['filter'](_0x361e5c=>!_0x361e5c['success']&&_0x361e5c['error']);_0x29d349['length']>0x0&&(_0x58bddb=_0x29d349[0x0]['error']);}throw new Error(_0x58bddb);}return await _0x1f7ad7['json']();},async 'syncRepos'(_0x2f04dd){if(!_0x2f04dd)throw new Error('Task\x20ID\x20is\x20required');const _0x5763a6=await fetch(API_BASE+'/tasks/'+_0x2f04dd+'/sync-repos',{'method':'POST'});if(!_0x5763a6['ok']){const _0x3e7ff0=await _0x5763a6['json']()['catch'](()=>({}));throw new Error(_0x3e7ff0['error']||_0x3e7ff0['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5763a6['statusText']);}return await _0x5763a6['json']();},async 'getIbmiSyncInfo'(_0x191d27){if(!_0x191d27)throw new Error('Task\x20ID\x20is\x20required');const _0x3b94ca=await fetch(API_BASE+'/tasks/'+_0x191d27+'/ibmi-sync-info');if(!_0x3b94ca['ok']){const _0x445654=await _0x3b94ca['json']()['catch'](()=>({}));throw new Error(_0x445654['error']||_0x445654['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x3b94ca['json']();},async 'getSyncFiles'(_0x3d483a){if(!_0x3d483a)throw new Error('Task\x20ID\x20is\x20required');const _0x3a00f2=await fetch(API_BASE+'/tasks/'+_0x3d483a+'/sync-to-ibmi/files');if(!_0x3a00f2['ok']){const _0x19f7a5=await _0x3a00f2['json']()['catch'](()=>({}));throw new Error(_0x19f7a5['error']||_0x19f7a5['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x3a00f2['json']();},async 'syncToIbmi'(_0x2eafab,_0x49cbb9,_0x303d43=null,_0x43fc20=null,_0x21e252=null){if(!_0x2eafab)throw new Error('Task\x20ID\x20is\x20required');const _0x19521e={'library':_0x49cbb9};if(_0x303d43)_0x19521e['user']=_0x303d43;if(_0x43fc20)_0x19521e['password']=_0x43fc20;if(_0x21e252)_0x19521e['files']=_0x21e252;const _0x3300ef=await fetch(API_BASE+'/tasks/'+_0x2eafab+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19521e)});if(!_0x3300ef['ok']){const _0x22e1b8=await _0x3300ef['json']()['catch'](()=>({}));throw new Error(_0x22e1b8['error']||_0x22e1b8['message']||'Sync\x20failed');}return await _0x3300ef['json']();},async 'getIbmiSyncLog'(_0x16ab6b){if(!_0x16ab6b)throw new Error('Task\x20ID\x20is\x20required');const _0x2f986e=await fetch(API_BASE+'/tasks/'+_0x16ab6b+'/ibmi-sync-log');if(!_0x2f986e['ok']){const _0x1184f6=await _0x2f986e['json']()['catch'](()=>({}));throw new Error(_0x1184f6['error']||_0x1184f6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x2f986e['json']();},async 'pullChanges'(_0x181a9e){if(!_0x181a9e)throw new Error('Task\x20ID\x20is\x20required');const _0x19fa5d=await fetch(API_BASE+'/tasks/'+_0x181a9e+'/pull-changes',{'method':'POST'});if(!_0x19fa5d['ok']){const _0x3f049b=await _0x19fa5d['json']()['catch'](()=>({}));throw new Error(_0x3f049b['error']||_0x3f049b['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x19fa5d['statusText']);}return await _0x19fa5d['json']();},async 'readFile'(_0x3ae170,_0x2a157a){if(!_0x3ae170)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2a157a)throw new Error('File\x20path\x20is\x20required');const _0x5cd98a=await fetch(API_BASE+'/tasks/'+_0x3ae170+'/files?path='+encodeURIComponent(_0x2a157a));if(!_0x5cd98a['ok']){const _0x1a4966=await _0x5cd98a['json']()['catch'](()=>({}));throw new Error(_0x1a4966['error']||_0x1a4966['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5cd98a['statusText']);}return await _0x5cd98a['json']();},'getTaskFileDownloadUrl'(_0x259cb1,_0xc050f2){if(!_0x259cb1)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc050f2)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x259cb1+'/files/download?path='+encodeURIComponent(_0xc050f2);},async 'writeFile'(_0x352ccc,_0x284f3a,_0x4443b2){if(!_0x352ccc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x284f3a)throw new Error('File\x20path\x20is\x20required');if(_0x4443b2===undefined)throw new Error('Content\x20is\x20required');const _0x4e0abb=await fetch(API_BASE+'/tasks/'+_0x352ccc+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x284f3a,'content':_0x4443b2})});if(!_0x4e0abb['ok']){const _0x523b50=await _0x4e0abb['json']()['catch'](()=>({}));throw new Error(_0x523b50['error']||_0x523b50['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4e0abb['statusText']);}return await _0x4e0abb['json']();},async 'uploadTaskFiles'(_0x262f57,_0x57b457,_0x544c4a){if(!_0x262f57)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57b457)throw new Error('Target\x20directory\x20is\x20required');if(!_0x544c4a||_0x544c4a['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x3ae08f=new FormData();_0x3ae08f['append']('targetDir',_0x57b457);for(const _0x4d0871 of _0x544c4a){_0x3ae08f['append']('files',_0x4d0871,_0x4d0871['name']);}const _0x1bcab6=await fetch(API_BASE+'/tasks/'+_0x262f57+'/files/upload',{'method':'POST','body':_0x3ae08f});if(!_0x1bcab6['ok']){const _0x3550f3=await _0x1bcab6['json']()['catch'](()=>({}));throw new Error(_0x3550f3['error']||_0x3550f3['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x1bcab6['statusText']);}return await _0x1bcab6['json']();},async 'createDirectory'(_0x48cf5c,_0x511f96){if(!_0x48cf5c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x511f96)throw new Error('Directory\x20path\x20is\x20required');const _0x3f1bc8=await fetch(API_BASE+'/tasks/'+_0x48cf5c+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x511f96})});if(!_0x3f1bc8['ok']){const _0x205c75=await _0x3f1bc8['json']()['catch'](()=>({}));throw new Error(_0x205c75['error']||_0x205c75['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3f1bc8['statusText']);}return await _0x3f1bc8['json']();},async 'renamePath'(_0x3252dc,_0x3f8015,_0x1e37a6){if(!_0x3252dc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8015)throw new Error('Source\x20path\x20is\x20required');if(!_0x1e37a6)throw new Error('Destination\x20path\x20is\x20required');const _0x578f92=await fetch(API_BASE+'/tasks/'+_0x3252dc+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x3f8015,'newPath':_0x1e37a6})});if(!_0x578f92['ok']){const _0x266b98=await _0x578f92['json']()['catch'](()=>({}));throw new Error(_0x266b98['error']||_0x266b98['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x578f92['statusText']);}return await _0x578f92['json']();},async 'deleteFile'(_0x4077f0,_0x9e3465){if(!_0x4077f0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x9e3465)throw new Error('File\x20path\x20is\x20required');const _0x538b60=await fetch(API_BASE+'/tasks/'+_0x4077f0+'/files?path='+encodeURIComponent(_0x9e3465),{'method':'DELETE'});if(!_0x538b60['ok']){const _0x1c8719=await _0x538b60['json']()['catch'](()=>({}));throw new Error(_0x1c8719['error']||_0x1c8719['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x538b60['statusText']);}return await _0x538b60['json']();},async 'deleteDirectory'(_0x26251b,_0x3efc04){if(!_0x26251b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3efc04)throw new Error('Directory\x20path\x20is\x20required');const _0x17d990=await fetch(API_BASE+'/tasks/'+_0x26251b+'/files/directory?path='+encodeURIComponent(_0x3efc04),{'method':'DELETE'});if(!_0x17d990['ok']){const _0xe94af5=await _0x17d990['json']()['catch'](()=>({}));throw new Error(_0xe94af5['error']||_0xe94af5['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x17d990['statusText']);}return await _0x17d990['json']();},async 'discardFile'(_0x56e431,_0x4a2407,_0x5c2b60){if(!_0x56e431)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4a2407)throw new Error('File\x20path\x20is\x20required');if(!_0x5c2b60)throw new Error('Repository\x20path\x20is\x20required');const _0x284c1a=await fetch(API_BASE+'/tasks/'+_0x56e431+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4a2407,'repoPath':_0x5c2b60})});if(!_0x284c1a['ok']){const _0x503e57=await _0x284c1a['json']()['catch'](()=>({}));throw new Error(_0x503e57['error']||_0x503e57['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x284c1a['statusText']);}return await _0x284c1a['json']();},async 'followUpTask'(_0x22af91,_0x56e59c={}){if(!_0x22af91)throw new Error('Task\x20ID\x20is\x20required');if(!_0x56e59c['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x413418,_0x12ea86={};if(_0x56e59c['files']&&_0x56e59c['files']['length']>0x0){const _0x30006d=new FormData();_0x30006d['append']('instructions',_0x56e59c['instructions']);for(const _0x68d3ba of _0x56e59c['files']){_0x30006d['append']('attachments',_0x68d3ba);}_0x413418=_0x30006d;}else _0x12ea86['Content-Type']='application/json',_0x413418=JSON['stringify']({'instructions':_0x56e59c['instructions']});const _0x1e6166=await fetch(API_BASE+'/tasks/'+_0x22af91+'/follow-up',{'method':'POST','headers':_0x12ea86,'body':_0x413418});if(!_0x1e6166['ok']){const _0x394f5b=await _0x1e6166['json']()['catch'](()=>({}));throw new Error(_0x394f5b['error']||_0x394f5b['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1e6166['statusText']);}return await _0x1e6166['json']();},async 'getTaskRewindPoints'(_0x4c337b){if(!_0x4c337b)throw new Error('Task\x20ID\x20is\x20required');const _0x296ad1=await fetch(API_BASE+'/tasks/'+_0x4c337b+'/rewind-points');if(!_0x296ad1['ok']){const _0x449dc3=await _0x296ad1['json']()['catch'](()=>({}));throw new Error(_0x449dc3['error']||_0x449dc3['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x296ad1['statusText']);}return await _0x296ad1['json']();},async 'rewindTask'(_0x31a429,_0xe610e2={}){if(!_0x31a429)throw new Error('Task\x20ID\x20is\x20required');const _0x2ea5b6=Number['isInteger'](_0xe610e2['targetFollowUpCount'])?_0xe610e2['targetFollowUpCount']:0x0,_0x19cbaa={'targetFollowUpCount':_0x2ea5b6};typeof _0xe610e2['instructions']==='string'&&_0xe610e2['instructions']['trim']()&&(_0x19cbaa['instructions']=_0xe610e2['instructions']['trim']());typeof _0xe610e2['rewindFiles']==='boolean'&&(_0x19cbaa['rewindFiles']=_0xe610e2['rewindFiles']);const _0x17f0b2=await fetch(API_BASE+'/tasks/'+_0x31a429+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19cbaa)});if(!_0x17f0b2['ok']){const _0x4ce694=await _0x17f0b2['json']()['catch'](()=>({}));throw new Error(_0x4ce694['error']||_0x4ce694['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x17f0b2['statusText']);}return await _0x17f0b2['json']();},async 'login'(_0x43300e,_0x2a8588){const _0x199444=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x43300e,'password':_0x2a8588})});if(!_0x199444['ok']){const _0x1ff4cf=await _0x199444['json']();throw new Error(_0x1ff4cf['message']||'Login\x20failed');}return await _0x199444['json']();},async 'logout'(){const _0x34cf30=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x34cf30['ok']){const _0x5bf06b=await _0x34cf30['json']();throw new Error(_0x5bf06b['message']||'Logout\x20failed');}return await _0x34cf30['json']();},async 'getCurrentUser'(){const _0x399f7b=await fetch(API_BASE+'/auth/me');if(!_0x399f7b['ok'])throw new Error('Not\x20authenticated');const _0x33bdd1=await _0x399f7b['json']();return _0x33bdd1['user'];},async 'getRolesInfo'(){const _0x1b7298=await fetch(API_BASE+'/users/roles');if(!_0x1b7298['ok']){const _0x24f9cc=await _0x1b7298['json']();throw new Error(_0x24f9cc['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1b7298['json']();},async 'getUsers'(){const _0x256afb=await fetch(API_BASE+'/users');if(!_0x256afb['ok']){const _0x52d2f2=await _0x256afb['json']();throw new Error(_0x52d2f2['message']||'Failed\x20to\x20get\x20users');}return await _0x256afb['json']();},async 'getUser'(_0x2d1d58){const _0x5cc1b5=await fetch(API_BASE+'/users/'+_0x2d1d58);if(!_0x5cc1b5['ok']){const _0x1e9c50=await _0x5cc1b5['json']();throw new Error(_0x1e9c50['message']||'Failed\x20to\x20get\x20user');}return await _0x5cc1b5['json']();},async 'createUser'(_0x3a8314){const _0x4e9bca=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a8314)});if(!_0x4e9bca['ok']){const _0x409df0=await _0x4e9bca['json']();throw new Error(_0x409df0['message']||'Failed\x20to\x20create\x20user');}return await _0x4e9bca['json']();},async 'updateUser'(_0x19f662,_0x1b9240){const _0x27957b=await fetch(API_BASE+'/users/'+_0x19f662,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b9240)});if(!_0x27957b['ok']){const _0x56e776=await _0x27957b['json']();throw new Error(_0x56e776['message']||'Failed\x20to\x20update\x20user');}return await _0x27957b['json']();},async 'deleteUser'(_0x3f86e2){const _0x2ff7b9=await fetch(API_BASE+'/users/'+_0x3f86e2,{'method':'DELETE'});if(!_0x2ff7b9['ok']){const _0x41f491=await _0x2ff7b9['json']();throw new Error(_0x41f491['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ff7b9['json']();},async 'stopAllContainers'(){const _0x2f9548=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x1d2b55=await _0x2f9548['json']()['catch'](()=>({}));if(!_0x2f9548['ok'])throw new Error(_0x1d2b55['message']||_0x1d2b55['error']||'Failed\x20to\x20stop\x20containers');return _0x1d2b55;},async 'removeStoppedContainers'(){const _0x5cad37=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x19d687=await _0x5cad37['json']()['catch'](()=>({}));if(!_0x5cad37['ok'])throw new Error(_0x19d687['message']||_0x19d687['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x19d687;},async 'pruneDockerResources'(){const _0x113783=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x5f3ccd=await _0x113783['json']()['catch'](()=>({}));if(!_0x113783['ok'])throw new Error(_0x5f3ccd['message']||_0x5f3ccd['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x5f3ccd;},async 'getUpdateSettings'(){const _0x26ef41=await fetch(API_BASE+'/health/update-settings'),_0x30b179=await _0x26ef41['json']()['catch'](()=>({}));if(!_0x26ef41['ok'])throw new Error(_0x30b179['message']||_0x30b179['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x30b179;},async 'applyServerUpdate'(_0x5c7944){const _0x1dc7bd=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x5c7944})}),_0x52a1aa=await _0x1dc7bd['json']()['catch'](()=>({}));if(!_0x1dc7bd['ok']){const _0xe68cff=new Error(_0x52a1aa['message']||_0x52a1aa['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x52a1aa['output']!==undefined)_0xe68cff['output']=_0x52a1aa['output'];if(_0x52a1aa['error']!==undefined)_0xe68cff['commandError']=_0x52a1aa['error'];throw _0xe68cff;}return _0x52a1aa;},async 'restartServer'(){const _0x58b24b=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x32e304=await _0x58b24b['json']()['catch'](()=>({}));if(!_0x58b24b['ok'])throw new Error(_0x32e304['message']||_0x32e304['error']||'Failed\x20to\x20restart\x20server');return _0x32e304;},async 'createPasswordToken'(_0x1eaef3,_0x1652a3='setup',_0x324374=![]){const _0x19a79e=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x1eaef3,'type':_0x1652a3,'sendEmail':_0x324374})});if(!_0x19a79e['ok']){const _0x29bb2f=await _0x19a79e['json']();throw new Error(_0x29bb2f['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x19a79e['json']();},async 'getEmailConfig'(){const _0x1f213b=await fetch(API_BASE+'/password/email-config');if(!_0x1f213b['ok']){const _0x49c4b4=await _0x1f213b['json']();throw new Error(_0x49c4b4['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x1f213b['json']();},async 'updateTaskName'(_0x412501,_0x953b73){const _0x2ea2fa=await fetch(API_BASE+'/tasks/'+_0x412501,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x953b73})});if(!_0x2ea2fa['ok']){const _0x51a22c=await _0x2ea2fa['json']();throw new Error(_0x51a22c['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x2ea2fa['json']();},async 'pinTask'(_0x1038dc,_0x454a8d,_0x17eb82=null){if(!_0x1038dc)throw new Error('Task\x20ID\x20is\x20required');const _0x36e66c={'pinned':_0x454a8d};_0x17eb82&&_0x17eb82['length']>0x0&&(_0x36e66c['additionalTaskIds']=_0x17eb82);const _0x4574b5=await fetch(API_BASE+'/tasks/'+_0x1038dc+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36e66c)});if(!_0x4574b5['ok']){const _0x49c9f2=await _0x4574b5['json']();throw new Error(_0x49c9f2['error']||'Failed\x20to\x20pin\x20task');}return await _0x4574b5['json']();},async 'setTaskWinner'(_0x2a2ea1,_0x3c4163,_0xf17619=[]){if(!_0x2a2ea1)throw new Error('Task\x20ID\x20is\x20required');const _0xa7f671=await fetch(API_BASE+'/tasks/'+_0x2a2ea1+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x3c4163,'siblings':_0xf17619})});if(!_0xa7f671['ok']){const _0x23e7d3=await _0xa7f671['json']();throw new Error(_0x23e7d3['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0xa7f671['json']();},async 'setTaskLoser'(_0xd6735b,_0x48af0f){if(!_0xd6735b)throw new Error('Task\x20ID\x20is\x20required');const _0x19bb7c=await fetch(API_BASE+'/tasks/'+_0xd6735b+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x48af0f})});if(!_0x19bb7c['ok']){const _0x486c0f=await _0x19bb7c['json']();throw new Error(_0x486c0f['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x19bb7c['json']();},async 'createTaskGroup'(_0x20acb2){const _0x41d931=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20acb2)});if(!_0x41d931['ok']){const _0xe50172=await _0x41d931['json']();throw new Error(_0xe50172['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x41d931['json']();},async 'getTaskGroups'(_0x16ee38={}){const _0x4bb728=new URLSearchParams();if(_0x16ee38['userId'])_0x4bb728['set']('userId',String(_0x16ee38['userId']));if(_0x16ee38['status'])_0x4bb728['set']('status',String(_0x16ee38['status']));if(_0x16ee38['limit'])_0x4bb728['set']('limit',String(_0x16ee38['limit']));const _0x4adb6b=API_BASE+'/tasks/groups'+(_0x4bb728['toString']()?'?'+_0x4bb728['toString']():''),_0x52c19f=await fetch(_0x4adb6b);if(!_0x52c19f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x52c19f['json']();},async 'getTaskGroup'(_0x1284c5){const _0x30d4da=await fetch(API_BASE+'/tasks/groups/'+_0x1284c5);if(!_0x30d4da['ok']){const _0x7327c8=await _0x30d4da['json']();throw new Error(_0x7327c8['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x30d4da['json']();},async 'updateTaskGroup'(_0x4325a3,_0x2ab1e8,_0x5cf83d){const _0x61721c=await fetch(API_BASE+'/tasks/'+_0x4325a3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2ab1e8,'groupIndex':_0x5cf83d})});if(!_0x61721c['ok']){const _0x3e37a1=await _0x61721c['json']();throw new Error(_0x3e37a1['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x61721c['json']();},async 'removeTaskFromGroup'(_0x17bfd3){return this['updateTaskGroup'](_0x17bfd3,null,null);},async 'deleteTaskGroup'(_0x453f1b,_0x1db5b2=![]){const _0x4ee903=_0x1db5b2?'?deleteTasks=true':'',_0x4d22cc=await fetch(API_BASE+'/tasks/groups/'+_0x453f1b+_0x4ee903,{'method':'DELETE'});if(!_0x4d22cc['ok']){const _0x107f02=await _0x4d22cc['json']();throw new Error(_0x107f02['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x4ad74f,_0x1615a8){const _0x2716fa=await fetch(API_BASE+'/tasks/groups/'+_0x4ad74f+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1615a8})});if(!_0x2716fa['ok']){const _0xb18e21=await _0x2716fa['json']();throw new Error(_0xb18e21['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x2716fa['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3beab1){if(!_0x3beab1)throw new Error('Task\x20ID\x20is\x20required');const _0x5b9de5=await fetch(API_BASE+'/tasks/'+_0x3beab1+'/comments');if(!_0x5b9de5['ok']){const _0x2c04d8=await _0x5b9de5['json']()['catch'](()=>({}));throw new Error(_0x2c04d8['error']||'Failed\x20to\x20get\x20comments');}return await _0x5b9de5['json']();},async 'addComment'(_0x1e7a85,_0x28bab6){if(!_0x1e7a85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28bab6)throw new Error('Comment\x20content\x20is\x20required');const _0x4dfc11=await fetch(API_BASE+'/tasks/'+_0x1e7a85+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x28bab6})});if(!_0x4dfc11['ok']){const _0x1147be=await _0x4dfc11['json']()['catch'](()=>({}));throw new Error(_0x1147be['error']||'Failed\x20to\x20add\x20comment');}return await _0x4dfc11['json']();},async 'updateComment'(_0x3bf2c9,_0x43c1f2,_0x1759d8){if(!_0x3bf2c9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x43c1f2)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x1759d8)throw new Error('Comment\x20content\x20is\x20required');const _0x368ff0=await fetch(API_BASE+'/tasks/'+_0x3bf2c9+'/comments/'+_0x43c1f2,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x1759d8})});if(!_0x368ff0['ok']){const _0x4e39ab=await _0x368ff0['json']()['catch'](()=>({}));throw new Error(_0x4e39ab['error']||'Failed\x20to\x20update\x20comment');}return await _0x368ff0['json']();},async 'deleteComment'(_0x21e483,_0x1c2591){if(!_0x21e483)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c2591)throw new Error('Comment\x20ID\x20is\x20required');const _0x117a0a=await fetch(API_BASE+'/tasks/'+_0x21e483+'/comments/'+_0x1c2591,{'method':'DELETE'});if(!_0x117a0a['ok']){const _0x4fd4dd=await _0x117a0a['json']()['catch'](()=>({}));throw new Error(_0x4fd4dd['error']||'Failed\x20to\x20delete\x20comment');}return await _0x117a0a['json']();},async 'createObjective'(_0x35c186){const _0x8078f1={'objective':!![],'name':_0x35c186['name']||'','environment':_0x35c186['environment']||null,'agents':_0x35c186['agents']||[],'branches':_0x35c186['branches']||{},'isPinned':_0x35c186['isPinned']||![],'parentObjectiveId':_0x35c186['parentObjectiveId']||null,'env_vars':_0x35c186['envVars']||{},'parameters':{'instructions':_0x35c186['instructions']||''},'files':_0x35c186['files']||[],'jira':_0x35c186['jira']||null};return this['createTask'](_0x8078f1);},async 'updateObjective'(_0x4eaacb,_0x1f85f8,_0x3a6d94=[],_0x1ff377=[]){let _0x17a3d3,_0xcf0093={};const _0x1b2ee0={..._0x1f85f8};_0x1ff377&&_0x1ff377['length']>0x0&&(_0x1b2ee0['removeAttachments']=_0x1ff377);if(_0x3a6d94&&_0x3a6d94['length']>0x0){const _0x52d26b=new FormData();for(const [_0x4c7ca6,_0xb36e17]of Object['entries'](_0x1b2ee0)){if(_0xb36e17==null)continue;typeof _0xb36e17==='object'?_0x52d26b['append'](_0x4c7ca6,JSON['stringify'](_0xb36e17)):_0x52d26b['append'](_0x4c7ca6,String(_0xb36e17));}for(const _0x42c04f of _0x3a6d94){_0x52d26b['append']('attachments',_0x42c04f);}_0x17a3d3=_0x52d26b;}else _0xcf0093['Content-Type']='application/json',_0x17a3d3=JSON['stringify'](_0x1b2ee0);const _0x26e7c6=await fetch(API_BASE+'/tasks/'+_0x4eaacb,{'method':'PATCH','headers':_0xcf0093,'body':_0x17a3d3});if(!_0x26e7c6['ok']){const _0x1c386a=await _0x26e7c6['json']();throw new Error(_0x1c386a['error']||'Failed\x20to\x20update\x20objective');}return await _0x26e7c6['json']();},async 'deleteObjective'(_0x41d5aa){return this['deleteTask'](_0x41d5aa);},async 'launchObjective'(_0x4ca7b5,_0x41cc20={}){const _0xd443b5=await fetch(API_BASE+'/tasks/'+_0x4ca7b5+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41cc20)});if(!_0xd443b5['ok']){const _0x1632f1=await _0xd443b5['json']();throw new Error(_0x1632f1['error']||'Failed\x20to\x20launch\x20objective');}return await _0xd443b5['json']();},async 'getObjectiveAttachments'(_0x282238){return this['getTaskAttachments'](_0x282238);},async 'createJudgeTask'({environment:_0x186d45,judgeAgent:_0x1c7b44,groupId:_0x3a7181,taskIds:_0x12c1aa,judgeCustomInstructions:_0x65daa2,isPinned:_0x2396ac}){const _0x11e0ac=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x186d45,'judgeAgent':_0x1c7b44,'groupId':_0x3a7181,'taskIds':_0x12c1aa,'judgeCustomInstructions':_0x65daa2,'isPinned':_0x2396ac})});if(!_0x11e0ac['ok']){const _0x3c2699=await _0x11e0ac['json']();throw new Error(_0x3c2699['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x11e0ac['json']();},async 'getJudgeTasks'(_0x5dcfa0){const _0x2df833=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5dcfa0));if(!_0x2df833['ok']){const _0x2bdd6c=await _0x2df833['json']();throw new Error(_0x2bdd6c['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x2df833['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4a498d,_0x534ca2,_0x276325=''){const _0x46e02d=await fetch(API_BASE+'/tasks/'+_0x4a498d+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x534ca2,'customPreamble':_0x276325})});if(!_0x46e02d['ok']){const _0x32815e=await _0x46e02d['json']();throw new Error(_0x32815e['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x46e02d['json']();},async 'getJiraConfig'(){const _0x4ef621=await fetch(API_BASE+'/jira/config');if(!_0x4ef621['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4ef621['json']();},async 'getJiraIssue'(_0x5f39b5){const _0x2fc090=await fetch(API_BASE+'/jira/issues/'+_0x5f39b5);if(!_0x2fc090['ok']){const _0x3e3027=await _0x2fc090['json']()['catch'](()=>({}));throw new Error(_0x3e3027['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2fc090['statusText']);}return await _0x2fc090['json']();},async 'searchJiraIssues'(_0x414692,_0x453d80=0x14){const _0x953c13=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x414692,'maxResults':_0x453d80})});if(!_0x953c13['ok']){const _0x556f16=await _0x953c13['json']()['catch'](()=>({}));throw new Error(_0x556f16['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x953c13['statusText']);}return await _0x953c13['json']();},async 'postJiraComment'(_0x1618eb,_0x81d1be){const _0x5b1acd=await fetch(API_BASE+'/jira/issues/'+_0x1618eb+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x81d1be})});if(!_0x5b1acd['ok']){const _0x28fb80=await _0x5b1acd['json']()['catch'](()=>({}));throw new Error(_0x28fb80['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x5b1acd['statusText']);}return await _0x5b1acd['json']();},async 'getJiraComments'(_0x25b4a0){const _0x2fe78f=await fetch(API_BASE+'/jira/issues/'+_0x25b4a0+'/comments');if(!_0x2fe78f['ok']){const _0x2061ba=await _0x2fe78f['json']()['catch'](()=>({}));throw new Error(_0x2061ba['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x2fe78f['statusText']);}return await _0x2fe78f['json']();},async 'promptParameter'({environment:_0x1f943b,command:_0x27fff5,parser:parser='json'}){const _0x26723d=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1f943b,'command':_0x27fff5,'parser':parser})});if(!_0x26723d['ok']){const _0x62ceca=await _0x26723d['json']()['catch'](()=>({}));throw new Error(_0x62ceca['message']||_0x62ceca['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x26723d['statusText']);}return await _0x26723d['json']();},async 'promptParameterStream'(_0x219bf4,_0x4fe28d){const _0x52f3c3=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x219bf4)});if(!_0x52f3c3['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x52f3c3['statusText']);const _0x3e7192=_0x52f3c3['body']['getReader'](),_0x1986c9=new TextDecoder();let _0x906fce='';return new Promise((_0x395f85,_0x137292)=>{const _0x3d78da=async()=>{try{const {done:_0x8c746e,value:_0x55521d}=await _0x3e7192['read']();if(_0x8c746e)return;_0x906fce+=_0x1986c9['decode'](_0x55521d,{'stream':!![]});const _0xe4c645=_0x906fce['split']('\x0a\x0a');_0x906fce=_0xe4c645['pop']()||'';for(const _0x542b53 of _0xe4c645){if(!_0x542b53['trim']())continue;const _0x49ea39=_0x542b53['split']('\x0a');let _0x582632='message',_0x49823a='';for(const _0x42c48c of _0x49ea39){if(_0x42c48c['startsWith']('event:'))_0x582632=_0x42c48c['substring'](0x6)['trim']();else _0x42c48c['startsWith']('data:')&&(_0x49823a=_0x42c48c['substring'](0x5)['trim']());}if(!_0x49823a)continue;try{const _0x2e631b=JSON['parse'](_0x49823a);if(_0x582632==='progress'&&_0x4fe28d)_0x4fe28d(_0x2e631b['stage'],_0x2e631b['message']);else{if(_0x582632==='result'){_0x395f85(_0x2e631b);return;}else{if(_0x582632==='error'){let _0x195d8c=_0x2e631b['message']||_0x2e631b['error']||'Prompt\x20command\x20failed';_0x2e631b['rawOutput']&&(_0x195d8c+='\x0a\x0aRaw\x20output:\x0a'+_0x2e631b['rawOutput']);_0x137292(new Error(_0x195d8c));return;}}}}catch(_0x245ac7){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x245ac7),console['error']('Event\x20type:',_0x582632),console['error']('Event\x20data:',_0x49823a),console['error']('First\x20200\x20chars:',_0x49823a['substring'](0x0,0xc8)),_0x137292(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x245ac7['message']+'\x0a\x0aData:\x20'+_0x49823a['substring'](0x0,0x1f4)));return;}}_0x3d78da();}catch(_0x5ba70d){_0x137292(_0x5ba70d);}};_0x3d78da();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x2d8a73){const _0x10c448=await fetch(''+API_BASE+_0x2d8a73);if(!_0x10c448['ok']){const _0x547400=await _0x10c448['json']()['catch'](()=>({'error':_0x10c448['statusText']})),_0x312496=new Error(_0x547400['error']||_0x547400['message']||_0x10c448['statusText']);if(_0x547400['detail']!==undefined)_0x312496['detail']=_0x547400['detail'];throw _0x312496;}return await _0x10c448['json']();},async 'post'(_0x905d49,_0x49d2b9){const _0x31da26=await fetch(''+API_BASE+_0x905d49,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x49d2b9)});if(!_0x31da26['ok']){const _0x1d2466=await _0x31da26['json']()['catch'](()=>({'error':_0x31da26['statusText']})),_0xe16d70=new Error(_0x1d2466['error']||_0x1d2466['message']||_0x31da26['statusText']);if(_0x1d2466['detail']!==undefined)_0xe16d70['detail']=_0x1d2466['detail'];throw _0xe16d70;}return await _0x31da26['json']();},async 'put'(_0x5ab473,_0x23c0a7){const _0x1decc7=await fetch(''+API_BASE+_0x5ab473,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23c0a7)});if(!_0x1decc7['ok']){const _0x56149e=await _0x1decc7['json']()['catch'](()=>({'error':_0x1decc7['statusText']})),_0x31ebc8=new Error(_0x56149e['error']||_0x56149e['message']||_0x1decc7['statusText']);if(_0x56149e['detail']!==undefined)_0x31ebc8['detail']=_0x56149e['detail'];throw _0x31ebc8;}return await _0x1decc7['json']();},async 'delete'(_0x3b05af,_0xda411b){const _0x57aa17={'method':'DELETE'};_0xda411b&&(_0x57aa17['headers']={'Content-Type':'application/json'},_0x57aa17['body']=JSON['stringify'](_0xda411b));const _0x49bd65=await fetch(''+API_BASE+_0x3b05af,_0x57aa17);if(!_0x49bd65['ok']){const _0x42417b=await _0x49bd65['json']()['catch'](()=>({'error':_0x49bd65['statusText']})),_0x3ef207=new Error(_0x42417b['error']||_0x42417b['message']||_0x49bd65['statusText']);if(_0x42417b['detail']!==undefined)_0x3ef207['detail']=_0x42417b['detail'];throw _0x3ef207;}return await _0x49bd65['json']();},async 'getSkills'(){const _0x598114=await fetch(API_BASE+'/skills');if(!_0x598114['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x598114['statusText']);return await _0x598114['json']();},async 'getSkill'(_0x28abe7){const _0x5ac6b7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x28abe7));if(!_0x5ac6b7['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5ac6b7['statusText']);return await _0x5ac6b7['json']();},async 'createSkill'(_0x396de2){const _0xeb9d65=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x396de2)});if(!_0xeb9d65['ok']){const _0x33ead1=await _0xeb9d65['json']()['catch'](()=>({'error':_0xeb9d65['statusText']})),_0x11021b=new Error(_0x33ead1['error']||_0x33ead1['message']||_0xeb9d65['statusText']);if(_0x33ead1['detail']!==undefined)_0x11021b['detail']=_0x33ead1['detail'];throw _0x11021b;}return await _0xeb9d65['json']();},async 'updateSkill'(_0xaf8f47,_0xa8b73b){const _0x1d1238=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xaf8f47),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa8b73b)});if(!_0x1d1238['ok']){const _0x1623b1=await _0x1d1238['json']()['catch'](()=>({'error':_0x1d1238['statusText']})),_0x5e74a8=new Error(_0x1623b1['error']||_0x1623b1['message']||_0x1d1238['statusText']);if(_0x1623b1['detail']!==undefined)_0x5e74a8['detail']=_0x1623b1['detail'];throw _0x5e74a8;}return await _0x1d1238['json']();},async 'deleteSkill'(_0x2b16c1){const _0x1efce0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2b16c1),{'method':'DELETE'});if(!_0x1efce0['ok']){const _0x4be874=await _0x1efce0['json']()['catch'](()=>({'error':_0x1efce0['statusText']})),_0x4c288b=new Error(_0x4be874['error']||_0x4be874['message']||_0x1efce0['statusText']);if(_0x4be874['detail']!==undefined)_0x4c288b['detail']=_0x4be874['detail'];throw _0x4c288b;}return await _0x1efce0['json']();},async 'getSkillFile'(_0xcde190,_0x64567e){const _0x516b20=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xcde190)+'/files/'+_0x64567e);if(!_0x516b20['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x516b20['statusText']);return await _0x516b20['json']();},async 'saveSkillFile'(_0x30e134,_0x2d06fd,_0x105fb9){const _0x2aafdc=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x30e134)+'/files/'+_0x2d06fd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x105fb9})});if(!_0x2aafdc['ok']){const _0x5aa32c=await _0x2aafdc['json']()['catch'](()=>({'error':_0x2aafdc['statusText']})),_0x9935ff=new Error(_0x5aa32c['error']||_0x5aa32c['message']||_0x2aafdc['statusText']);if(_0x5aa32c['detail']!==undefined)_0x9935ff['detail']=_0x5aa32c['detail'];throw _0x9935ff;}return await _0x2aafdc['json']();},async 'deleteSkillFile'(_0x5317c3,_0x397836){const _0x1caff6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5317c3)+'/files/'+_0x397836,{'method':'DELETE'});if(!_0x1caff6['ok']){const _0x3b624e=await _0x1caff6['json']()['catch'](()=>({'error':_0x1caff6['statusText']})),_0x1a6415=new Error(_0x3b624e['error']||_0x3b624e['message']||_0x1caff6['statusText']);if(_0x3b624e['detail']!==undefined)_0x1a6415['detail']=_0x3b624e['detail'];throw _0x1a6415;}return await _0x1caff6['json']();},async 'pullSkills'(){const _0x3d444c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x3d444c['ok']){const _0x227bea=await _0x3d444c['json']()['catch'](()=>({'error':_0x3d444c['statusText']})),_0x105a4e=new Error(_0x227bea['error']||_0x227bea['message']||_0x3d444c['statusText']);if(_0x227bea['detail']!==undefined)_0x105a4e['detail']=_0x227bea['detail'];throw _0x105a4e;}return await _0x3d444c['json']();},async 'commitSkills'(_0x4251a8,_0xe28768={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0xe28768,_0x53d0bf=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x4251a8,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x53d0bf['ok']){const _0x586550=await _0x53d0bf['json']()['catch'](()=>({'error':_0x53d0bf['statusText']})),_0x1a53ca=new Error(_0x586550['error']||_0x586550['message']||_0x53d0bf['statusText']);if(_0x586550['detail']!==undefined)_0x1a53ca['detail']=_0x586550['detail'];throw _0x1a53ca;}return await _0x53d0bf['json']();},async 'discardSkillsChanges'(){const _0x1201f1=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1201f1['ok']){const _0x3ae836=await _0x1201f1['json']()['catch'](()=>({'error':_0x1201f1['statusText']})),_0x73c4e=new Error(_0x3ae836['error']||_0x3ae836['message']||_0x1201f1['statusText']);if(_0x3ae836['detail']!==undefined)_0x73c4e['detail']=_0x3ae836['detail'];throw _0x73c4e;}return await _0x1201f1['json']();},async 'getSkillCatalog'(){const _0x1bea44=await fetch(API_BASE+'/external-skills/catalog');if(!_0x1bea44['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x1bea44['statusText']);return await _0x1bea44['json']();},async 'getImportedSkillsRegistry'(){const _0x14e19f=await fetch(API_BASE+'/external-skills/registry');if(!_0x14e19f['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x14e19f['statusText']);return await _0x14e19f['json']();},async 'importCatalogSkill'(_0x4c1167){const _0x1a9717=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x4c1167})});if(!_0x1a9717['ok']){const _0x484d5b=await _0x1a9717['json']()['catch'](()=>({'error':_0x1a9717['statusText']})),_0x4d8951=new Error(_0x484d5b['error']||_0x484d5b['message']||_0x1a9717['statusText']);if(_0x484d5b['detail']!==undefined)_0x4d8951['detail']=_0x484d5b['detail'];throw _0x4d8951;}return await _0x1a9717['json']();},async 'importSkillFromGit'(_0x3e7de3,_0x13278c,_0x1a0d96='main',_0x4c3d29=null){const _0x49d8e5=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3e7de3,'skillPath':_0x13278c,'branch':_0x1a0d96,'skillId':_0x4c3d29})});if(!_0x49d8e5['ok']){const _0x3bfc77=await _0x49d8e5['json']()['catch'](()=>({'error':_0x49d8e5['statusText']})),_0x2de801=new Error(_0x3bfc77['error']||_0x3bfc77['message']||_0x49d8e5['statusText']);if(_0x3bfc77['detail']!==undefined)_0x2de801['detail']=_0x3bfc77['detail'];throw _0x2de801;}return await _0x49d8e5['json']();},async 'probeMarketplace'(_0x465645,_0x4df8ec='main'){const _0x56beaa=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x465645,'branch':_0x4df8ec})});if(!_0x56beaa['ok']){const _0x1262a5=await _0x56beaa['json']()['catch'](()=>({'error':_0x56beaa['statusText']})),_0xaa5968=new Error(_0x1262a5['error']||_0x1262a5['message']||_0x56beaa['statusText']);if(_0x1262a5['detail']!==undefined)_0xaa5968['detail']=_0x1262a5['detail'];throw _0xaa5968;}return await _0x56beaa['json']();},async 'importMarketplaceBundle'(_0x338b73,_0x562cfc,_0x1d5d5b,_0x2cd38d=null){const _0x87d90c=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x338b73,'branch':_0x562cfc,'bundleId':_0x1d5d5b,'selectedSkills':_0x2cd38d})});if(!_0x87d90c['ok']){const _0x2ae6b3=await _0x87d90c['json']()['catch'](()=>({'error':_0x87d90c['statusText']})),_0x561ba9=new Error(_0x2ae6b3['error']||_0x2ae6b3['message']||_0x87d90c['statusText']);if(_0x2ae6b3['detail']!==undefined)_0x561ba9['detail']=_0x2ae6b3['detail'];throw _0x561ba9;}return await _0x87d90c['json']();},async 'importSkillFromFolder'(_0x253d8c,_0x3fcbed=null){const _0x6a3970=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x253d8c,'skillId':_0x3fcbed})});if(!_0x6a3970['ok']){const _0x3cb88a=await _0x6a3970['json']()['catch'](()=>({'error':_0x6a3970['statusText']})),_0x16b963=new Error(_0x3cb88a['error']||_0x3cb88a['message']||_0x6a3970['statusText']);if(_0x3cb88a['detail']!==undefined)_0x16b963['detail']=_0x3cb88a['detail'];throw _0x16b963;}return await _0x6a3970['json']();},async 'importSkillFromNpm'(_0x348ef3,_0x4743c7='latest',_0x19022f=null,_0x28c953=null){const _0x2d71dd=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x348ef3,'version':_0x4743c7,'skillId':_0x19022f,'registry':_0x28c953})});if(!_0x2d71dd['ok']){const _0x2743d=await _0x2d71dd['json']()['catch'](()=>({'error':_0x2d71dd['statusText']})),_0x4f29d5=new Error(_0x2743d['error']||_0x2743d['message']||_0x2d71dd['statusText']);if(_0x2743d['detail']!==undefined)_0x4f29d5['detail']=_0x2743d['detail'];throw _0x4f29d5;}return await _0x2d71dd['json']();},async 'checkSkillUpdates'(_0x1a6cad){const _0x25ed9b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1a6cad)+'/check-updates',{'method':'POST'});if(!_0x25ed9b['ok']){const _0x4c7281=await _0x25ed9b['json']()['catch'](()=>({'error':_0x25ed9b['statusText']})),_0x1a7799=new Error(_0x4c7281['error']||_0x4c7281['message']||_0x25ed9b['statusText']);if(_0x4c7281['detail']!==undefined)_0x1a7799['detail']=_0x4c7281['detail'];throw _0x1a7799;}return await _0x25ed9b['json']();},async 'updateExternalSkill'(_0x2176ff){const _0x1d5ca5=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2176ff)+'/update',{'method':'POST'});if(!_0x1d5ca5['ok']){const _0xf6429b=await _0x1d5ca5['json']()['catch'](()=>({'error':_0x1d5ca5['statusText']})),_0x4859fd=new Error(_0xf6429b['error']||_0xf6429b['message']||_0x1d5ca5['statusText']);if(_0xf6429b['detail']!==undefined)_0x4859fd['detail']=_0xf6429b['detail'];throw _0x4859fd;}return await _0x1d5ca5['json']();},async 'updateSkillFlags'(_0x2313e7,_0x2429c9){const _0x4ba68e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2313e7)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2429c9})});if(!_0x4ba68e['ok']){const _0x40cecd=await _0x4ba68e['json']()['catch'](()=>({'error':_0x4ba68e['statusText']})),_0x11d67d=new Error(_0x40cecd['error']||_0x40cecd['message']||_0x4ba68e['statusText']);if(_0x40cecd['detail']!==undefined)_0x11d67d['detail']=_0x40cecd['detail'];throw _0x11d67d;}return await _0x4ba68e['json']();},async 'removeFromImportedRegistry'(_0x4631ce){const _0x45c3b3=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4631ce)+'/registry',{'method':'DELETE'});if(!_0x45c3b3['ok']){const _0x303ab9=await _0x45c3b3['json']()['catch'](()=>({'error':_0x45c3b3['statusText']})),_0x39ede2=new Error(_0x303ab9['error']||_0x303ab9['message']||_0x45c3b3['statusText']);if(_0x303ab9['detail']!==undefined)_0x39ede2['detail']=_0x303ab9['detail'];throw _0x39ede2;}return await _0x45c3b3['json']();},async 'getTeams'(){const _0x333074=await fetch(API_BASE+'/teams');if(!_0x333074['ok']){const _0x30a881=await _0x333074['json']()['catch'](()=>({'message':_0x333074['statusText']}));throw new Error(_0x30a881['message']||'Failed\x20to\x20get\x20teams');}return await _0x333074['json']();},async 'getTeam'(_0x461f02){const _0x5be0c8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x461f02));if(!_0x5be0c8['ok']){const _0x49138e=await _0x5be0c8['json']()['catch'](()=>({'message':_0x5be0c8['statusText']}));throw new Error(_0x49138e['message']||'Failed\x20to\x20get\x20team');}return await _0x5be0c8['json']();},async 'createTeam'(_0xc4e45){const _0x2ead22=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xc4e45)});if(!_0x2ead22['ok']){const _0x11dbde=await _0x2ead22['json']()['catch'](()=>({'message':_0x2ead22['statusText']}));throw new Error(_0x11dbde['message']||'Failed\x20to\x20create\x20team');}return await _0x2ead22['json']();},async 'updateTeam'(_0x4cbc1d,_0x232464){const _0x48cfcb=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4cbc1d),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x232464)});if(!_0x48cfcb['ok']){const _0x236b55=await _0x48cfcb['json']()['catch'](()=>({'message':_0x48cfcb['statusText']}));throw new Error(_0x236b55['message']||'Failed\x20to\x20update\x20team');}return await _0x48cfcb['json']();},async 'deleteTeam'(_0xce186f){const _0x352d3c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xce186f),{'method':'DELETE'});if(!_0x352d3c['ok']){const _0x45806f=await _0x352d3c['json']()['catch'](()=>({'message':_0x352d3c['statusText']}));throw new Error(_0x45806f['message']||'Failed\x20to\x20delete\x20team');}return await _0x352d3c['json']();},async 'addTeamMember'(_0x5bb458,_0x2f8126){const _0x160dba=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5bb458)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x2f8126})});if(!_0x160dba['ok']){const _0x2cc04c=await _0x160dba['json']()['catch'](()=>({'message':_0x160dba['statusText']}));throw new Error(_0x2cc04c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x160dba['json']();},async 'removeTeamMember'(_0xf4166,_0x192320){const _0x1790db=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xf4166)+'/members/'+encodeURIComponent(_0x192320),{'method':'DELETE'});if(!_0x1790db['ok']){const _0x38362f=await _0x1790db['json']()['catch'](()=>({'message':_0x1790db['statusText']}));throw new Error(_0x38362f['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1790db['json']();},async 'getBindings'(_0x13529a={}){const _0x44cf16=new URLSearchParams();if(_0x13529a['resource_type'])_0x44cf16['set']('resource_type',_0x13529a['resource_type']);if(_0x13529a['resource_id'])_0x44cf16['set']('resource_id',_0x13529a['resource_id']);if(_0x13529a['subject_type'])_0x44cf16['set']('subject_type',_0x13529a['subject_type']);if(_0x13529a['subject_id'])_0x44cf16['set']('subject_id',_0x13529a['subject_id']);const _0x47cbe7=_0x44cf16['toString'](),_0x2e5145=await fetch(API_BASE+'/bindings'+(_0x47cbe7?'?'+_0x47cbe7:''));if(!_0x2e5145['ok']){const _0x2a9518=await _0x2e5145['json']()['catch'](()=>({'message':_0x2e5145['statusText']}));throw new Error(_0x2a9518['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2e5145['json']();},async 'createBinding'(_0x239117){const _0x12fb0d=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239117)});if(!_0x12fb0d['ok']){const _0x5bbf8d=await _0x12fb0d['json']()['catch'](()=>({'message':_0x12fb0d['statusText']}));throw new Error(_0x5bbf8d['message']||'Failed\x20to\x20create\x20binding');}return await _0x12fb0d['json']();},async 'updateBinding'(_0x268806,_0x5bfe3a){const _0x1228dd=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x268806),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5bfe3a)});if(!_0x1228dd['ok']){const _0x60ffa4=await _0x1228dd['json']()['catch'](()=>({'message':_0x1228dd['statusText']}));throw new Error(_0x60ffa4['message']||'Failed\x20to\x20update\x20binding');}return await _0x1228dd['json']();},async 'deleteBinding'(_0x2a629d){const _0x599214=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a629d),{'method':'DELETE'});if(!_0x599214['ok']){const _0x12f4c5=await _0x599214['json']()['catch'](()=>({'message':_0x599214['statusText']}));throw new Error(_0x12f4c5['message']||'Failed\x20to\x20delete\x20binding');}return await _0x599214['json']();},async 'getRoleDefinitions'(){const _0x349591=await fetch(API_BASE+'/roles');if(!_0x349591['ok']){const _0x1a7e20=await _0x349591['json']()['catch'](()=>({'message':_0x349591['statusText']}));throw new Error(_0x1a7e20['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x349591['json']();},async 'getRoleDefinition'(_0x280ccc){const _0x5d6976=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x280ccc));if(!_0x5d6976['ok']){const _0x49016d=await _0x5d6976['json']()['catch'](()=>({'message':_0x5d6976['statusText']}));throw new Error(_0x49016d['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x5d6976['json']();},async 'createRoleDefinition'(_0x22fa89){const _0x26615a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x22fa89)});if(!_0x26615a['ok']){const _0x53310d=await _0x26615a['json']()['catch'](()=>({'message':_0x26615a['statusText']}));throw new Error(_0x53310d['message']||_0x53310d['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x26615a['json']();},async 'updateRoleDefinition'(_0x3b4be4,_0x4a1542){const _0x36b1d8=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3b4be4),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4a1542)});if(!_0x36b1d8['ok']){const _0x747ec1=await _0x36b1d8['json']()['catch'](()=>({'message':_0x36b1d8['statusText']}));throw new Error(_0x747ec1['message']||_0x747ec1['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x36b1d8['json']();},async 'deleteRoleDefinition'(_0x5cd809){const _0x69a523=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5cd809),{'method':'DELETE'});if(!_0x69a523['ok']){const _0x5a55dd=await _0x69a523['json']()['catch'](()=>({'message':_0x69a523['statusText']}));throw new Error(_0x5a55dd['message']||_0x5a55dd['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x69a523['json']();},async 'getAvailablePermissions'(){const _0x175566=await fetch(API_BASE+'/roles/available-permissions');if(!_0x175566['ok']){const _0x3d2a5b=await _0x175566['json']()['catch'](()=>({'message':_0x175566['statusText']}));throw new Error(_0x3d2a5b['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x175566['json']();},async 'getGitProviderAllowedTeams'(_0x2093ae){const _0x289c48=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2093ae)+'/allowed-teams');if(!_0x289c48['ok']){const _0x38f340=await _0x289c48['json']()['catch'](()=>({'message':_0x289c48['statusText']}));throw new Error(_0x38f340['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x289c48['json']();},async 'setGitProviderAllowedTeams'(_0x63a6e,_0x2af5c1){const _0x2d3f98=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x63a6e)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2af5c1})});if(!_0x2d3f98['ok']){const _0x29b6df=await _0x2d3f98['json']()['catch'](()=>({'message':_0x2d3f98['statusText']}));throw new Error(_0x29b6df['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x2d3f98['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x397fbe=toastState['baseBottom'];toastState['toasts']['forEach'](_0x37a663=>{_0x37a663['el']['style']['bottom']=_0x397fbe+'px';const _0x4d46a4=_0x37a663['el']['offsetHeight']||toastState['defaultHeight'];_0x397fbe+=_0x4d46a4+toastState['gap'];});});}function removeToastById(_0x352b53){const _0x381748=toastState['toasts']['findIndex'](_0x1c54d4=>_0x1c54d4['id']===_0x352b53);if(_0x381748===-0x1)return;const _0x4668ee=toastState['toasts'][_0x381748];if(_0x4668ee['timeoutId'])clearTimeout(_0x4668ee['timeoutId']);_0x4668ee['el']['classList']['remove']('show'),setTimeout(()=>_0x4668ee['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x381748,0x1),repositionAllToasts();}function registerToast(_0x4d1ea4){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4d1ea4),repositionAllToasts(),_0x4d1ea4['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x22fb51){if(_0x22fb51===null||_0x22fb51===undefined)return'';return String(_0x22fb51)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x265148,_0x2e95d8){if(_0x265148&&typeof _0x265148==='object'&&!Array['isArray'](_0x265148))return{'code':typeof _0x265148['text']==='string'?_0x265148['text']:'','language':typeof _0x265148['lang']==='string'?_0x265148['lang']:''};return{'code':typeof _0x265148==='string'?_0x265148:'','language':typeof _0x2e95d8==='string'?_0x2e95d8:''};}function buildMermaidBlock(_0x3c8c25){const _0x2f3e8e=String(_0x3c8c25||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2f3e8e))+'\x22>'+escapeHtmlValue(_0x2f3e8e)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1df4d0=new marked['Renderer'](),_0x3e383a=_0x1df4d0['code']['bind'](_0x1df4d0);return _0x1df4d0['code']=function(_0x4ac354,_0x3d9993,..._0x3bc7a8){const {code:_0x5144e7,language:_0x2dbbdb}=getMarkdownCodeBlockPayload(_0x4ac354,_0x3d9993),_0xc0c321=String(_0x2dbbdb||'')['trim']()['toLowerCase']();if(_0xc0c321==='mermaid')return buildMermaidBlock(_0x5144e7);const _0x47410e=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x47410e&&_0xc0c321)try{const _0x3bb8c2=_0x47410e['getLanguage'](_0xc0c321)?_0xc0c321:'plaintext',_0x2e902d=_0x47410e['highlight'](_0x5144e7,{'language':_0x3bb8c2})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0xc0c321)+'\x22>'+_0x2e902d+'</code></pre>';}catch(_0x38ae95){console['error']('Syntax\x20highlighting\x20error:',_0x38ae95);}return _0x3e383a(_0x4ac354,_0x3d9993,..._0x3bc7a8);},sharedMarkedRenderer=_0x1df4d0,_0x1df4d0;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x21013c=window['mermaid'];if(!_0x21013c||typeof _0x21013c['initialize']!=='function')return _0x21013c||null;return _0x21013c['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x21013c;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0xabeb55,_0x3ca6db)=>{const _0xae3cfa=()=>_0xabeb55(configureMermaidInstance()),_0x405b8d=()=>{mermaidLoadPromise=null,_0x3ca6db(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0xae5f07=document['getElementById'](MERMAID_SCRIPT_ID);!_0xae5f07&&(_0xae5f07=document['createElement']('script'),_0xae5f07['id']=MERMAID_SCRIPT_ID,_0xae5f07['src']=MERMAID_SCRIPT_SRC,_0xae5f07['async']=!![],document['head']['appendChild'](_0xae5f07));if(window['mermaid']){_0xae3cfa();return;}_0xae5f07['addEventListener']('load',_0xae3cfa,{'once':!![]}),_0xae5f07['addEventListener']('error',_0x405b8d,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x913d6){const _0x2857c0=_0x913d6['getAttribute']('data-mermaid-source');if(!_0x2857c0)return null;let _0x366de1=_0x2857c0;try{_0x366de1=decodeURIComponent(_0x2857c0);}catch{}return _0x913d6['textContent']=_0x366de1,_0x913d6['removeAttribute']('data-processed'),_0x913d6['removeAttribute']('aria-roledescription'),_0x913d6['removeAttribute']('role'),_0x913d6['removeAttribute']('aria-label'),_0x366de1;}function collectMermaidNodes(_0x5b2f81,_0x382ff9){if(!(_0x5b2f81 instanceof Element))return;_0x5b2f81['matches']('.mermaid[data-mermaid-source]')&&_0x382ff9['add'](_0x5b2f81),_0x5b2f81['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x18ef2e=>{_0x382ff9['add'](_0x18ef2e);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x4f0259=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x580a6f=>setTimeout(_0x580a6f,0x0);_0x4f0259(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1ab9e8=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1ab9e8);});});}function queueMermaidRender(_0x199db0){const _0x234dc5=new Set();_0x199db0 instanceof Document||_0x199db0 instanceof DocumentFragment?_0x199db0['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1a7f6c=>_0x234dc5['add'](_0x1a7f6c)):collectMermaidNodes(_0x199db0,_0x234dc5);if(_0x234dc5['size']===0x0)return;_0x234dc5['forEach'](_0x5d8d29=>pendingMermaidNodes['add'](_0x5d8d29)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x569f5f=Array['from'](pendingMermaidNodes)['filter'](_0x522e50=>_0x522e50['isConnected']);pendingMermaidNodes['clear']();if(_0x569f5f['length']===0x0)return;const _0xb8b465=await loadMermaid();if(!_0xb8b465)return;configureMermaidInstance();const _0x559f3a=getMermaidTheme();for(const _0x1ad796 of _0x569f5f){const _0x1b08bd=_0x1ad796['getAttribute']('data-mermaid-source');if(!_0x1b08bd)continue;const _0x4c169f=_0x1ad796['getAttribute']('data-processed')==='true';if(_0x4c169f&&_0x1ad796['dataset']['mermaidTheme']===_0x559f3a)continue;restoreMermaidSource(_0x1ad796);try{if(typeof _0xb8b465['run']==='function')await _0xb8b465['run']({'nodes':[_0x1ad796]});else typeof _0xb8b465['init']==='function'&&_0xb8b465['init'](undefined,[_0x1ad796]);_0x1ad796['dataset']['mermaidTheme']=_0x559f3a,delete _0x1ad796['dataset']['mermaidError'];}catch(_0x5d1418){console['error']('Mermaid\x20render\x20failed:',_0x5d1418),restoreMermaidSource(_0x1ad796),_0x1ad796['dataset']['mermaidError']='true',delete _0x1ad796['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5437ea=>{_0x5437ea['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5437ea);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x2fd390=>{_0x2fd390['forEach'](_0x1efe80=>{_0x1efe80['addedNodes']['forEach'](_0x4b63be=>{_0x4b63be['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x4b63be);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x1dd5a6){const _0x39a414=new Date(_0x1dd5a6),_0x16c3fb=new Date(),_0x5def6a=_0x16c3fb-_0x39a414,_0x4e9593=Math['floor'](_0x5def6a/0x3e8),_0x196029=Math['floor'](_0x4e9593/0x3c),_0x4f59ca=Math['floor'](_0x196029/0x3c),_0x35df77=Math['floor'](_0x4f59ca/0x18);if(_0x4e9593<0x3c)return'now';if(_0x196029<0x3c)return _0x196029+'m\x20ago';if(_0x4f59ca<0x18)return _0x4f59ca+'h\x20ago';return _0x35df77+'d\x20ago';},'getStatusIcon'(_0x403d7d){switch(_0x403d7d){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x5ecab5){switch(_0x5ecab5){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x17a591,_0x36102b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x149c7c={};_0x149c7c['text/plain']=new Blob([_0x17a591],{'type':'text/plain'});_0x36102b&&(_0x149c7c['text/html']=new Blob([_0x36102b],{'type':'text/html'}));const _0x42868b=new ClipboardItem(_0x149c7c);return await navigator['clipboard']['write']([_0x42868b]),!![];}catch(_0x180847){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x180847);}try{const _0x31fe6d=_0x2637b2=>{_0x2637b2['preventDefault'](),_0x2637b2['clipboardData']['setData']('text/plain',_0x17a591),_0x36102b&&_0x2637b2['clipboardData']['setData']('text/html',_0x36102b);};document['addEventListener']('copy',_0x31fe6d);const _0x441a63=document['execCommand']('copy');document['removeEventListener']('copy',_0x31fe6d);if(_0x441a63)return!![];}catch(_0x32a697){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x32a697);}try{const _0x3a9040=document['createElement']('textarea');_0x3a9040['value']=_0x17a591,_0x3a9040['style']['position']='fixed',_0x3a9040['style']['opacity']='0',_0x3a9040['style']['pointerEvents']='none',document['body']['appendChild'](_0x3a9040),_0x3a9040['select']();const _0x4c7fe3=document['execCommand']('copy');return document['body']['removeChild'](_0x3a9040),_0x4c7fe3;}catch(_0x5dd822){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x5dd822),![];}},'showToast'(_0x40c5b5,_0x3f5692='info'){const _0xb016d6=getNextToastId(),_0x2c9ef0=document['createElement']('div');_0x2c9ef0['className']='toast\x20toast-'+_0x3f5692,_0x2c9ef0['textContent']=_0x40c5b5,_0x2c9ef0['dataset']['toastId']=_0xb016d6,document['body']['appendChild'](_0x2c9ef0);const _0x2bc878=_0x3f5692==='error'?0x2710:0xbb8,_0x191dbb=setTimeout(()=>{removeToastById(_0xb016d6);},_0x2bc878),_0x335a01={'id':_0xb016d6,'el':_0x2c9ef0,'timeoutId':_0x191dbb};return registerToast(_0x335a01),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2c9ef0['classList']['add']('show');});}),_0xb016d6;},'showError'(_0x544eda){console['error'](_0x544eda);const _0x25de3b=typeof _0x544eda==='string'?_0x544eda:_0x544eda['message']||'An\x20error\x20occurred';this['showToast'](_0x25de3b,'error');},'showSuccess'(_0x42a08c){this['showToast'](_0x42a08c,'success');},'capitalize'(_0x3b73c1){if(!_0x3b73c1)return'';return _0x3b73c1['charAt'](0x0)['toUpperCase']()+_0x3b73c1['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4b000b){return escapeHtmlValue(_0x4b000b);},'ansiToHtml'(_0x3ab6f9){if(_0x3ab6f9===null||_0x3ab6f9===undefined)return'';let _0x5452b7=this['escapeHtml'](_0x3ab6f9);const _0x49b7b2={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x1f8cec={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x4948f4=0x0;return _0x5452b7=_0x5452b7['replace'](/\x1b\[([0-9;]*)m/g,(_0x36ebc9,_0x404bf7)=>{if(!_0x404bf7||_0x404bf7==='0'){const _0x23bd6c='</span>'['repeat'](_0x4948f4);return _0x4948f4=0x0,_0x23bd6c;}const _0x50d8f0=_0x404bf7['split'](';'),_0x2b086f=[];for(const _0x3a3c31 of _0x50d8f0){if(_0x3a3c31==='1')_0x2b086f['push']('font-weight:bold');else{if(_0x3a3c31==='2')_0x2b086f['push']('opacity:0.7');else{if(_0x3a3c31==='3')_0x2b086f['push']('font-style:italic');else{if(_0x3a3c31==='4')_0x2b086f['push']('text-decoration:underline');else{if(_0x3a3c31==='9')_0x2b086f['push']('text-decoration:line-through');else{if(_0x49b7b2[_0x3a3c31])_0x2b086f['push']('color:'+_0x49b7b2[_0x3a3c31]);else{if(_0x1f8cec[_0x3a3c31])_0x2b086f['push']('background-color:'+_0x1f8cec[_0x3a3c31]);}}}}}}}if(_0x2b086f['length']>0x0)return _0x4948f4++,'<span\x20style=\x22'+_0x2b086f['join'](';')+'\x22>';return'';}),_0x5452b7+='</span>'['repeat'](_0x4948f4),_0x5452b7=_0x5452b7['replace'](/\\u001b\[([0-9;]*)m/g,(_0xedd6fa,_0x4544a0)=>{if(!_0x4544a0||_0x4544a0==='0')return'';const _0x2afbb0=_0x4544a0['split'](';'),_0x594832=[];for(const _0x4e320b of _0x2afbb0){if(_0x4e320b==='1')_0x594832['push']('font-weight:bold');else{if(_0x49b7b2[_0x4e320b])_0x594832['push']('color:'+_0x49b7b2[_0x4e320b]);else{if(_0x1f8cec[_0x4e320b])_0x594832['push']('background-color:'+_0x1f8cec[_0x4e320b]);}}}if(_0x594832['length']>0x0)return'<span\x20style=\x22'+_0x594832['join'](';')+'\x22>';return'';}),_0x5452b7;},'showModal'({title:_0x5bd1a4,content:_0x286766,buttons:buttons=[]}){const _0x3c7dc3='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x5bd1a4)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x286766+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x39d223,_0x347d6b)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x39d223['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x347d6b+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x39d223['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x2f9c28=document['createElement']('div');_0x2f9c28['id']='utils-modal',_0x2f9c28['className']='modal',_0x2f9c28['innerHTML']=_0x3c7dc3,document['body']['appendChild'](_0x2f9c28);const _0x1e9c2b=document['getElementById']('utils-modal-close');_0x1e9c2b&&_0x1e9c2b['addEventListener']('click',()=>this['hideModal']());const _0x228277=_0x2f9c28['querySelectorAll']('[data-btn-index]');_0x228277['forEach'](_0x5b66e7=>{const _0x284f30=parseInt(_0x5b66e7['dataset']['btnIndex']);buttons[_0x284f30]?.['onClick']&&_0x5b66e7['addEventListener']('click',buttons[_0x284f30]['onClick']);});const _0x259d6a=document['getElementById']('utils-modal-overlay');_0x259d6a&&_0x259d6a['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x21426e=document['getElementById']('utils-modal');_0x21426e&&_0x21426e['remove']();},'parseKeyValuePairs'(_0x124bc0){const _0x3c0f2f={};if(!_0x124bc0)return _0x3c0f2f;return _0x124bc0['split'](/\r?\n/)['map'](_0x2a7486=>_0x2a7486['trim']())['filter'](Boolean)['forEach'](_0x87d29d=>{const _0x3e1287=_0x87d29d['indexOf']('=');if(_0x3e1287>0x0){const _0x176181=_0x87d29d['slice'](0x0,_0x3e1287)['trim'](),_0x13d12b=_0x87d29d['slice'](_0x3e1287+0x1)['trim']();if(_0x176181)_0x3c0f2f[_0x176181]=_0x13d12b;}}),_0x3c0f2f;},'debounce'(_0x5d8eea,_0x4683f3=0xfa){let _0x3f3c96=null;return(..._0x22b7e6)=>{clearTimeout(_0x3f3c96),_0x3f3c96=setTimeout(()=>_0x5d8eea['apply'](this,_0x22b7e6),_0x4683f3);};},'formatTimestamp'(_0x32eaf9){if(!_0x32eaf9)return'N/A';const _0x2ea2ce=new Date(_0x32eaf9);return _0x2ea2ce['toLocaleDateString']()+'\x20'+_0x2ea2ce['toLocaleTimeString']();},'getQueryParams'(){const _0x376977=new URLSearchParams(window['location']['search']),_0x5641af={};for(const [_0x36053f,_0x25fd3b]of _0x376977){_0x5641af[_0x36053f]=_0x25fd3b;}return _0x5641af;},'formatDuration'(_0xa955b7,_0x4dbfbc){if(!_0xa955b7)return'N/A';const _0x476d46=new Date(_0xa955b7),_0x4f35af=_0x4dbfbc?new Date(_0x4dbfbc):new Date(),_0x5a6ccb=_0x4f35af-_0x476d46;if(_0x5a6ccb<0x0)return'0s';const _0x2daf99=Math['floor'](_0x5a6ccb/0x3e8),_0x125eae=Math['floor'](_0x2daf99/0x3c),_0x242f3d=Math['floor'](_0x125eae/0x3c),_0x9e785d=Math['floor'](_0x242f3d/0x18);if(_0x2daf99<0x3c)return _0x2daf99+'s';if(_0x125eae<0x3c)return _0x125eae+'m\x20'+_0x2daf99%0x3c+'s';if(_0x242f3d<0x18)return _0x242f3d+'h\x20'+_0x125eae%0x3c+'m\x20'+_0x2daf99%0x3c+'s';return _0x9e785d+'d\x20'+_0x242f3d%0x18+'h\x20'+_0x125eae%0x3c+'m';},'renderMarkdown'(_0x29e1c1,_0x5e20bd={}){if(!_0x29e1c1)return'';_0x29e1c1=this['rewriteAttachmentLinks'](_0x29e1c1,_0x5e20bd),_0x29e1c1=this['rewriteColorSyntax'](_0x29e1c1);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x29e1c1);}catch(_0xd01caa){return console['error']('Markdown\x20parsing\x20error:',_0xd01caa),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);}},'rewriteAttachmentLinks'(_0x597157,_0x1d5fc3={}){const _0x196c7c=typeof _0x1d5fc3['resolveAttachmentUrl']==='function'?_0x1d5fc3['resolveAttachmentUrl']:_0x1d5fc3['taskId']?_0x8e0dfe=>API_BASE+'/tasks/'+_0x1d5fc3['taskId']+'/attachments/'+encodeURIComponent(_0x8e0dfe):null;if(!_0x196c7c)return _0x597157;return String(_0x597157)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x343aee,_0x12dc48)=>{const _0x3055ca=String(_0x12dc48||'')['trim']();if(!_0x3055ca)return _0x343aee;let _0x476dc7=_0x3055ca;try{_0x476dc7=decodeURIComponent(_0x3055ca);}catch{}const _0x3466f3=_0x196c7c(_0x476dc7);if(!_0x3466f3)return _0x343aee;return']('+_0x3466f3+')';});},'rewriteColorSyntax'(_0x3a1ddf){if(!_0x3a1ddf)return _0x3a1ddf;return String(_0x3a1ddf)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x188856,_0x4d3fd2,_0xfca833)=>{const _0x399888=this['rewriteColorSyntax'](_0xfca833);return'<span\x20style=\x22color:\x20'+_0x4d3fd2+'\x22>'+_0x399888+'</span>';});},'renderMarkdownFallback'(_0x3faf98,_0x1d74c2={}){if(!_0x3faf98)return'';_0x3faf98=_0x3faf98['replace'](/\r\n/g,'\x0a'),_0x3faf98=_0x3faf98['replace'](/\r/g,'\x0a'),_0x3faf98=this['rewriteAttachmentLinks'](_0x3faf98,_0x1d74c2);let _0x490c79=this['escapeHtml'](_0x3faf98);return _0x490c79=_0x490c79['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x490c79=_0x490c79['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x490c79=_0x490c79['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x490c79=_0x490c79['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x490c79=_0x490c79['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x490c79=_0x490c79['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x490c79=_0x490c79['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x490c79=_0x490c79['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x490c79=_0x490c79['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x490c79=_0x490c79['replace'](/\n\n/g,'</p><p>'),_0x490c79=_0x490c79['replace'](/\n/g,'<br>'),'<p>'+_0x490c79+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8424=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8424),_0x1a8424[0x6]=_0x1a8424[0x6]&0xf|0x40,_0x1a8424[0x8]=_0x1a8424[0x8]&0x3f|0x80;const _0x2d679c=Array['from'](_0x1a8424,_0x1bbe0c=>_0x1bbe0c['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x2d679c['slice'](0x0,0x8)+'-'+_0x2d679c['slice'](0x8,0xc)+'-'+_0x2d679c['slice'](0xc,0x10)+'-'+_0x2d679c['slice'](0x10,0x14)+'-'+_0x2d679c['slice'](0x14);}};export class CustomSelect{constructor(_0x44c560,_0x44691d={}){this['nativeSelect']=_0x44c560,this['options']=_0x44691d,this['isOpen']=![],this['selectedValue']=_0x44c560['value']||'',this['searchable']=_0x44691d['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5e6efa=document['createElement']('div');_0x5e6efa['className']='custom-select';const _0x5eea3b=document['createElement']('div');_0x5eea3b['className']='custom-select-trigger',_0x5eea3b['setAttribute']('tabindex','0'),_0x5eea3b['setAttribute']('role','button'),_0x5eea3b['setAttribute']('aria-haspopup','listbox');const _0x13e2d4=document['createElement']('span');_0x13e2d4['className']='custom-select-trigger-text';const _0xe96584=document['createElement']('span');_0xe96584['className']='custom-select-arrow',_0xe96584['textContent']='▼',_0x5eea3b['appendChild'](_0x13e2d4),_0x5eea3b['appendChild'](_0xe96584);const _0xd64ea4=document['createElement']('div');_0xd64ea4['className']='custom-select-dropdown',_0xd64ea4['setAttribute']('role','listbox');if(this['searchable']){const _0x3f8a16=document['createElement']('div');_0x3f8a16['className']='custom-select-search';const _0x4b1c16=document['createElement']('input');_0x4b1c16['type']='text',_0x4b1c16['className']='custom-select-search-input',_0x4b1c16['placeholder']='Type\x20to\x20search...',_0x4b1c16['setAttribute']('aria-label','Search\x20options'),_0x4b1c16['addEventListener']('input',_0x518d9b=>{this['searchQuery']=_0x518d9b['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x4b1c16['addEventListener']('keydown',_0x559b1c=>{if(_0x559b1c['key']==='Escape')_0x559b1c['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x559b1c['key']==='Enter'){_0x559b1c['preventDefault'](),_0x559b1c['stopPropagation']();const _0x434935=_0xd64ea4['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x434935){const _0x432a2f=_0x434935['getAttribute']('data-value');this['select'](_0x432a2f);}}}}),_0x3f8a16['appendChild'](_0x4b1c16),_0xd64ea4['appendChild'](_0x3f8a16),this['searchInput']=_0x4b1c16;}const _0x108bfb=document['createElement']('div');_0x108bfb['className']='custom-select-options',_0xd64ea4['appendChild'](_0x108bfb),_0x5e6efa['appendChild'](_0x5eea3b),_0x5e6efa['appendChild'](_0xd64ea4),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5e6efa,this['nativeSelect']),this['wrapper']=_0x5e6efa,this['trigger']=_0x5eea3b,this['triggerText']=_0x13e2d4,this['dropdown']=_0xd64ea4,this['optionsContainer']=_0x108bfb,_0x5eea3b['addEventListener']('click',()=>this['toggle']()),_0x5eea3b['addEventListener']('keydown',_0x221ccb=>this['handleKeydown'](_0x221ccb)),document['addEventListener']('click',_0x522681=>{!_0x5e6efa['contains'](_0x522681['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0xe1384=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0xe1384['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x5d5861=new MutationObserver(()=>{this['updateDisabledState']();});_0x5d5861['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xb0533e=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xb0533e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x48c5c1=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x48c5c1),this['trigger']['setAttribute']('aria-disabled',_0x48c5c1?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x48c5c1?'-1':'0'),_0x48c5c1&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x43500c=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x4a33fa=_0x43500c['filter'](_0x27f185=>!_0x27f185['disabled']&&!_0x27f185['hidden']);_0x43500c['forEach']((_0x3053f7,_0x2513a7)=>{const _0x461d7e=document['createElement']('div');_0x461d7e['className']='custom-select-option',_0x461d7e['textContent']=_0x3053f7['textContent'],_0x461d7e['setAttribute']('data-value',_0x3053f7['value']),_0x461d7e['setAttribute']('data-index',_0x2513a7),_0x461d7e['setAttribute']('role','option'),_0x3053f7['disabled']?_0x461d7e['classList']['add']('disabled'):_0x461d7e['addEventListener']('click',()=>this['select'](_0x3053f7['value'])),_0x3053f7['value']===this['selectedValue']&&_0x461d7e['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x461d7e),this['allOptions']['push']({'element':_0x461d7e,'text':_0x3053f7['textContent']['toLowerCase'](),'value':_0x3053f7['value'],'disabled':_0x3053f7['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4959fa=this['searchInput']['parentElement'];_0x4a33fa['length']>0x3?_0x4959fa['style']['display']='':_0x4959fa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x4f2326=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x16a8c5=>{if(!_0x4f2326||_0x16a8c5['disabled'])_0x16a8c5['element']['style']['display']='';else{const _0x5b936f=_0x16a8c5['text']['includes'](_0x4f2326);_0x16a8c5['element']['style']['display']=_0x5b936f?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x280097){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x280097,this['nativeSelect']['value']=_0x280097;const _0x395714=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x395714),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x5de15b=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x5de15b&&(this['triggerText']['textContent']=_0x5de15b['textContent'],_0x5de15b['disabled']||_0x5de15b['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x15f041=>{_0x15f041['getAttribute']('data-value')===this['selectedValue']?_0x15f041['classList']['add']('selected'):_0x15f041['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0xb1bd4e=window['getComputedStyle'](this['dropdown']);if(_0xb1bd4e['position']==='fixed'){const _0x2d2798=this['trigger']['getBoundingClientRect'](),_0x427669=parseInt(_0xb1bd4e['maxHeight'])||0xc8,_0x26e092=window['innerHeight'],_0x51b730=_0x26e092-_0x2d2798['bottom'],_0x4d341f=_0x2d2798['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x276fae;_0x51b730<_0x427669&&_0x4d341f>_0x51b730?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x26e092-_0x2d2798['top']+'px',_0x276fae=Math['min'](_0x427669,_0x4d341f-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2d2798['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x276fae=Math['min'](_0x427669,_0x51b730-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px');if(this['optionsContainer']){let _0x579cec=_0x276fae;if(this['searchInput']){const _0x2114ec=this['searchInput']['parentElement'];_0x2114ec&&(_0x579cec-=_0x2114ec['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x579cec)+'px';}this['dropdown']['style']['left']=_0x2d2798['left']+'px',this['dropdown']['style']['width']=_0x2d2798['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x10eabe=this['searchInput']['parentElement'];_0x10eabe&&_0x10eabe['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x1ff6a0){if(this['nativeSelect']['disabled'])return;if(_0x1ff6a0['key']==='Enter'||_0x1ff6a0['key']==='\x20')_0x1ff6a0['preventDefault'](),this['toggle']();else _0x1ff6a0['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x600dad='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x600dad),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x156b35=document['getElementById']('confirm-dialog-close'),_0x221e2e=document['getElementById']('confirm-dialog-cancel'),_0x1ae9f0=document['getElementById']('confirm-dialog-confirm'),_0x361648=this['_modal']['querySelector']('.modal-overlay');_0x156b35['addEventListener']('click',()=>this['_resolve'](![])),_0x221e2e['addEventListener']('click',()=>this['_resolve'](![])),_0x1ae9f0['addEventListener']('click',()=>this['_resolve'](!![])),_0x361648['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x102d60=>{if(_0x102d60['key']==='Escape')_0x102d60['preventDefault'](),this['_resolve'](![]);else _0x102d60['key']==='Enter'&&(_0x102d60['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x50dc0e,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x591fd3=>{this['_resolvePromise']=_0x591fd3,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x50dc0e;const _0x2adb81=document['getElementById']('confirm-dialog-cancel'),_0x344653=document['getElementById']('confirm-dialog-confirm');_0x2adb81['textContent']=cancelText,_0x344653['textContent']=confirmText,_0x344653['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x344653['focus']();});},'_resolve'(_0x362bc2){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x362bc2),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x2476d1,_0x58ee6e={}){this['container']=_0x2476d1,this['options']={'placeholder':_0x58ee6e['placeholder']||'Type\x20to\x20search...','maxItems':_0x58ee6e['maxItems']||0x64,'loadItems':_0x58ee6e['loadItems']||(async()=>[]),'renderItem':_0x58ee6e['renderItem']||(_0x36688c=>({'primary':String(_0x36688c),'secondary':''})),'onSelect':_0x58ee6e['onSelect']||(()=>{}),'filterItems':_0x58ee6e['filterItems']||null,'getItemValue':_0x58ee6e['getItemValue']||(_0x139cc6=>_0x139cc6),'sortItems':_0x58ee6e['sortItems']||null,'debounceMs':_0x58ee6e['debounceMs']||0xc8,'minCharsForSearch':_0x58ee6e['minCharsForSearch']||0x0,'emptyMessage':_0x58ee6e['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x58ee6e['loadingMessage']||'Loading...','preload':_0x58ee6e['preload']!==![],'searchMode':_0x58ee6e['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x3b0aaa=>this['onBlur'](_0x3b0aaa)),this['input']['addEventListener']('input',_0x54e172=>this['onInput'](_0x54e172)),this['input']['addEventListener']('keydown',_0x24f036=>this['onKeydown'](_0x24f036)),this['clearBtn']['addEventListener']('mousedown',_0x56922b=>{_0x56922b['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1147ce=>{_0x1147ce['preventDefault']();}),document['addEventListener']('click',_0x131ee8=>{!this['wrapper']['contains'](_0x131ee8['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x33869d){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x33869d);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x4d9065){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x5b7858){const _0x468864=_0x5b7858['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x468864);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x468864):this['loadAndShow'](_0x468864);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x4b841b){switch(_0x4b841b['key']){case'ArrowDown':_0x4b841b['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x4b841b['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x4b841b['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x4b841b['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x3acc77){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3b33=this['selectedIndex']+_0x3acc77;if(_0x1a3b33>=0x0&&_0x1a3b33<this['filteredItems']['length']){this['selectedIndex']=_0x1a3b33,this['updateSelectionHighlight']();const _0x58cb27=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x58cb27[this['selectedIndex']]&&_0x58cb27[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x56536b=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x56536b['forEach']((_0x2eb0ce,_0x2a32b4)=>{_0x2eb0ce['classList']['toggle']('keyboard-selected',_0x2a32b4===this['selectedIndex']);});}async['loadAndShow'](_0x1f472e){this['showLoading']();try{const _0x56bf75=await this['options']['loadItems'](_0x1f472e);if(this['options']['searchMode']==='server'){let _0x59e08a=_0x56bf75;this['options']['sortItems']&&(_0x59e08a=this['options']['sortItems']([..._0x56bf75]));this['filteredItems']=_0x59e08a;const _0x1a574e=this['filteredItems']['length']>=this['options']['maxItems'];_0x1a574e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x1a574e),this['open']();}else this['allItems']=_0x56bf75,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x1f472e);}catch(_0x592b2d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x592b2d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x217d4b){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x217d4b):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x40af54=this['filteredItems']['length']>=this['options']['maxItems'];_0x40af54&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x40af54),this['open']();}['renderItems'](_0x2adb11){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x59845a,_0x2e40a9)=>{const _0x5c486d=document['createElement']('div');_0x5c486d['className']='autocomplete-select-item',_0x5c486d['setAttribute']('role','option'),_0x5c486d['setAttribute']('data-index',_0x2e40a9);const _0x3663b1=this['options']['renderItem'](_0x59845a);let _0x3801af='';_0x3663b1['icon']&&(_0x3801af='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x3663b1['iconClass']||'')+'\x22>'+_0x3663b1['icon']+'</span>'),_0x5c486d['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3801af+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x3663b1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3663b1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x3663b1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5c486d['addEventListener']('click',()=>{this['selectItem'](_0x59845a);}),_0x5c486d['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x2e40a9,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5c486d);}),_0x2adb11?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x53b22b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x53b22b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x1ca856){this['selectedItem']=_0x1ca856;const _0x37a56a=this['options']['renderItem'](_0x1ca856);this['input']['value']=_0x37a56a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x1ca856);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x550b8c){if(_0x550b8c){this['selectedItem']=_0x550b8c;const _0x5c70e5=this['options']['renderItem'](_0x550b8c);this['input']['value']=_0x5c70e5['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x8da578){this['allItems']=_0x8da578,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x403eb1){this['input']['placeholder']=_0x403eb1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x520bc8=null){const _0x530015=document['getElementById']('admin-menu-container'),_0x3745f9=document['getElementById']('admin-menu-btn'),_0x1284c6=document['getElementById']('admin-menu');if(!_0x530015||!_0x3745f9||!_0x1284c6)return;try{!_0x520bc8&&(_0x520bc8=await API['getCurrentUser']());if(_0x520bc8){const _0x1b8ad5=window['Permissions'],_0x45863c=_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:manage')||_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')||_0x1b8ad5['hasTeamPermission'](_0x520bc8,'teams:manage')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:view_details');if(!_0x45863c)return;_0x530015['hidden']=![];if(!_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')){const _0x422bf9=_0x1284c6['querySelectorAll']('.admin-menu-item');_0x422bf9['forEach'](_0x2a8ffb=>{const _0x50a83c=_0x2a8ffb['querySelector']('.option-text')?.['textContent']?.['trim']();_0x50a83c==='Users'&&!_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Skills'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Settings'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Administration'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Git\x20History'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Roles'&&(_0x2a8ffb['hidden']=!![]);});}_0x3745f9['addEventListener']('click',_0x360252=>{_0x360252['stopPropagation']();const _0x16eb6d=document['getElementById']('actions-menu');if(_0x16eb6d)_0x16eb6d['hidden']=!![];_0x1284c6['hidden']=!_0x1284c6['hidden'];}),document['addEventListener']('click',_0x30e080=>{!_0x1284c6['hidden']&&!_0x3745f9['contains'](_0x30e080['target'])&&!_0x1284c6['contains'](_0x30e080['target'])&&(_0x1284c6['hidden']=!![]);}),document['addEventListener']('keydown',_0x1fc82e=>{_0x1fc82e['key']==='Escape'&&!_0x1284c6['hidden']&&(_0x1284c6['hidden']=!![]);});}}catch(_0x1fb56b){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x1fb56b['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};