@profoundlogic/coderflow-server 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config/skill-catalog.json +9 -0
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -1
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -1
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/cleanup-users.js +1 -1
  21. package/dist/lib/cli/config-command.js +1 -1
  22. package/dist/lib/cli/config.js +1 -1
  23. package/dist/lib/cli/create-user.js +1 -1
  24. package/dist/lib/cli/grant-admin.js +1 -1
  25. package/dist/lib/cli/init.js +1 -1
  26. package/dist/lib/cli/jira.js +1 -1
  27. package/dist/lib/cli/license.js +1 -1
  28. package/dist/lib/cli/list-roles.js +1 -1
  29. package/dist/lib/cli/list-users.js +1 -1
  30. package/dist/lib/cli/server-manager.js +1 -1
  31. package/dist/lib/cli/set-password.js +1 -1
  32. package/dist/lib/compression-filter.js +1 -1
  33. package/dist/lib/config-migration.js +1 -1
  34. package/dist/lib/container-credential-sync.js +1 -1
  35. package/dist/lib/container-tokens.js +1 -1
  36. package/dist/lib/data-dir.js +1 -1
  37. package/dist/lib/deployment-history.js +1 -1
  38. package/dist/lib/deployment-service.js +1 -1
  39. package/dist/lib/docker-utils.js +1 -1
  40. package/dist/lib/email.js +1 -1
  41. package/dist/lib/emailTemplates.js +1 -1
  42. package/dist/lib/entitlement.js +1 -1
  43. package/dist/lib/external-connections.js +1 -1
  44. package/dist/lib/fetch-utils.js +1 -1
  45. package/dist/lib/git-commit-details-route.js +1 -1
  46. package/dist/lib/git-history-diff-guardrails.js +1 -1
  47. package/dist/lib/git-provider-service.js +1 -1
  48. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  49. package/dist/lib/git-provider-setup/index.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  51. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  52. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  53. package/dist/lib/git-providers/github-app-provider.js +1 -1
  54. package/dist/lib/git-providers/index.js +1 -1
  55. package/dist/lib/git-providers/provider-factory.js +1 -1
  56. package/dist/lib/git-providers/provider-interface.js +1 -1
  57. package/dist/lib/github-urls.js +1 -1
  58. package/dist/lib/group-objective-linking.js +1 -1
  59. package/dist/lib/ibmi-sync.js +1 -1
  60. package/dist/lib/jira-client.js +1 -1
  61. package/dist/lib/judge-blinding.js +1 -1
  62. package/dist/lib/logger.js +1 -1
  63. package/dist/lib/memory-utils.js +1 -1
  64. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  65. package/dist/lib/model-fetcher.js +1 -1
  66. package/dist/lib/notifications.js +1 -1
  67. package/dist/lib/objective-context.js +1 -1
  68. package/dist/lib/oidc-auth.js +1 -1
  69. package/dist/lib/oidc-device-flow.js +1 -1
  70. package/dist/lib/passwordTokens.js +1 -1
  71. package/dist/lib/permission-resolver.js +1 -1
  72. package/dist/lib/pin-cascade.js +1 -1
  73. package/dist/lib/provider-accounts.js +1 -1
  74. package/dist/lib/provider-oauth.js +1 -1
  75. package/dist/lib/provider-profile.js +1 -1
  76. package/dist/lib/provider-token-refresh.js +1 -1
  77. package/dist/lib/rbac-user-state.js +1 -1
  78. package/dist/lib/request-url.js +1 -1
  79. package/dist/lib/rewind.js +1 -1
  80. package/dist/lib/role-definitions.js +1 -1
  81. package/dist/lib/roles.js +1 -1
  82. package/dist/lib/secrets.js +1 -1
  83. package/dist/lib/setup-repo-git-auth.js +1 -1
  84. package/dist/lib/slack-service.js +1 -1
  85. package/dist/lib/state-capture.js +1 -1
  86. package/dist/lib/static-files.js +1 -1
  87. package/dist/lib/task-aliases.js +1 -1
  88. package/dist/lib/task-container-init.js +1 -1
  89. package/dist/lib/task-context-usage.js +1 -1
  90. package/dist/lib/task-git-auth-errors.js +1 -1
  91. package/dist/lib/task-name-format.js +1 -1
  92. package/dist/lib/task-name-generator.js +1 -1
  93. package/dist/lib/task-source-metadata.js +1 -1
  94. package/dist/lib/teams.js +1 -1
  95. package/dist/lib/user-git-oauth.js +1 -1
  96. package/dist/lib/user-git-tokens.js +1 -1
  97. package/dist/lib/users.js +1 -1
  98. package/dist/middleware/requireAuth.js +1 -1
  99. package/dist/middleware/requireInit.js +1 -1
  100. package/dist/middleware/requirePermission.js +1 -1
  101. package/dist/package.json +1 -1
  102. package/dist/playwright.config.js +1 -1
  103. package/dist/playwright.task-terminal.config.js +1 -1
  104. package/dist/routes/apiKeys.js +1 -1
  105. package/dist/routes/auth-oidc.js +1 -1
  106. package/dist/routes/auth.js +1 -1
  107. package/dist/routes/automations.js +1 -1
  108. package/dist/routes/bindings.js +1 -1
  109. package/dist/routes/build.js +1 -1
  110. package/dist/routes/containers.js +1 -1
  111. package/dist/routes/deploy-task.js +1 -1
  112. package/dist/routes/environment-management.js +1 -1
  113. package/dist/routes/environments.js +1 -1
  114. package/dist/routes/external-skills.js +1 -1
  115. package/dist/routes/git-credentials.js +1 -1
  116. package/dist/routes/git-oauth.js +1 -1
  117. package/dist/routes/git-provider-setup.js +1 -1
  118. package/dist/routes/health.js +1 -1
  119. package/dist/routes/jira.js +1 -1
  120. package/dist/routes/logs.js +1 -1
  121. package/dist/routes/objective-management.js +1 -1
  122. package/dist/routes/password.js +1 -1
  123. package/dist/routes/prompt.js +1 -1
  124. package/dist/routes/provider-auth.js +1 -1
  125. package/dist/routes/qa.js +1 -1
  126. package/dist/routes/roles.js +1 -1
  127. package/dist/routes/settings.js +1 -1
  128. package/dist/routes/skill-management.js +1 -1
  129. package/dist/routes/skills.js +1 -1
  130. package/dist/routes/slack.js +1 -1
  131. package/dist/routes/stats.js +1 -1
  132. package/dist/routes/tasks.js +1 -1
  133. package/dist/routes/teams.js +1 -1
  134. package/dist/routes/templates.js +1 -1
  135. package/dist/routes/test-task.js +1 -1
  136. package/dist/routes/test.js +1 -1
  137. package/dist/routes/users.js +1 -1
  138. package/dist/routes/visualizations.js +1 -1
  139. package/dist/scripts/create-user.js +1 -1
  140. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  141. package/dist/start.js +1 -1
  142. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  143. package/dist/web-ui/public/activity-feed.js +1 -1
  144. package/dist/web-ui/public/activity-formatters.js +1 -1
  145. package/dist/web-ui/public/admin.js +1 -1
  146. package/dist/web-ui/public/agent-event-parser.js +1 -1
  147. package/dist/web-ui/public/app.js +1 -1
  148. package/dist/web-ui/public/approve-dialog.js +1 -1
  149. package/dist/web-ui/public/automation-links.js +1 -1
  150. package/dist/web-ui/public/automation-schedule.js +1 -1
  151. package/dist/web-ui/public/comments-widget.js +1 -1
  152. package/dist/web-ui/public/diff-utils.js +1 -1
  153. package/dist/web-ui/public/docs/admin/automations.md +2 -1
  154. package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
  155. package/dist/web-ui/public/environments.css +5 -0
  156. package/dist/web-ui/public/environments.html +4 -3
  157. package/dist/web-ui/public/environments.js +1 -1
  158. package/dist/web-ui/public/feedback-widget.js +1 -1
  159. package/dist/web-ui/public/file-selection-tree.js +1 -1
  160. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  161. package/dist/web-ui/public/git-history.js +1 -1
  162. package/dist/web-ui/public/git-status.js +1 -1
  163. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  164. package/dist/web-ui/public/index.js +1 -1
  165. package/dist/web-ui/public/login.js +1 -1
  166. package/dist/web-ui/public/markdown-editor.js +1 -1
  167. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  168. package/dist/web-ui/public/modal-maximize.js +1 -1
  169. package/dist/web-ui/public/notifications.js +1 -1
  170. package/dist/web-ui/public/permissions.js +1 -1
  171. package/dist/web-ui/public/pr-dialog.js +1 -1
  172. package/dist/web-ui/public/roles.js +1 -1
  173. package/dist/web-ui/public/settings.js +1 -1
  174. package/dist/web-ui/public/setup-password.js +1 -1
  175. package/dist/web-ui/public/skills.js +1 -1
  176. package/dist/web-ui/public/sse-client.js +1 -1
  177. package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
  178. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  179. package/dist/web-ui/public/styles.css +111 -0
  180. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  181. package/dist/web-ui/public/task.html +1 -1
  182. package/dist/web-ui/public/task.js +1 -1
  183. package/dist/web-ui/public/teams.js +1 -1
  184. package/dist/web-ui/public/terminal.js +1 -1
  185. package/dist/web-ui/public/theme.js +1 -1
  186. package/dist/web-ui/public/users.js +1 -1
  187. package/dist/web-ui/public/variant-grouping.js +1 -1
  188. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x462b5b=window['location']['pathname'],_0x1d3428=_0x462b5b['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x1d3428)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x1d3428[0x1]),_0x1d3428[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x54b4ce={}){const _0x22204d=new URLSearchParams();_0x54b4ce['userId']&&_0x22204d['set']('userId',String(_0x54b4ce['userId']));_0x54b4ce['automation']&&_0x22204d['set']('automation',String(_0x54b4ce['automation']));const _0x21f5a2=API_BASE+'/tasks/stats'+(_0x22204d['toString']()?'?'+_0x22204d['toString']():''),_0x37fe84=await fetch(_0x21f5a2);if(!_0x37fe84['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x37fe84['statusText']);return await _0x37fe84['json']();},async 'getTasks'(_0x2fc1a3={}){const _0x2ff1d8=new URLSearchParams();_0x2fc1a3['status']&&_0x2ff1d8['set']('status',String(_0x2fc1a3['status']));_0x2fc1a3['environment']&&_0x2ff1d8['set']('environment',String(_0x2fc1a3['environment']));_0x2fc1a3['automation']&&_0x2ff1d8['set']('automation',String(_0x2fc1a3['automation']));if(_0x2fc1a3['include']){const _0x48b3ea=Array['isArray'](_0x2fc1a3['include'])?_0x2fc1a3['include']['join'](','):String(_0x2fc1a3['include']);_0x48b3ea&&_0x2ff1d8['set']('include',_0x48b3ea);}_0x2fc1a3['filter']&&_0x2ff1d8['set']('filter',String(_0x2fc1a3['filter']));_0x2fc1a3['page']&&_0x2ff1d8['set']('page',String(_0x2fc1a3['page']));_0x2fc1a3['limit']&&_0x2ff1d8['set']('limit',String(_0x2fc1a3['limit']));_0x2fc1a3['userId']&&_0x2ff1d8['set']('userId',String(_0x2fc1a3['userId']));_0x2fc1a3['search']&&_0x2ff1d8['set']('search',String(_0x2fc1a3['search']));_0x2fc1a3['includeChildTasks']&&_0x2ff1d8['set']('includeChildTasks','true');const _0x11667d=API_BASE+'/tasks'+(_0x2ff1d8['toString']()?'?'+_0x2ff1d8['toString']():''),_0x465f92=await fetch(_0x11667d);if(!_0x465f92['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x465f92['statusText']);return await _0x465f92['json']();},async 'getAutomations'(_0x14ad2a={}){const _0x4d4171=new URLSearchParams();_0x14ad2a['environment']&&_0x4d4171['set']('environment',String(_0x14ad2a['environment']));const _0x34d594=await fetch(API_BASE+'/api/automations'+(_0x4d4171['toString']()?'?'+_0x4d4171['toString']():''));if(!_0x34d594['ok']){const _0x26cfcd=await _0x34d594['json']()['catch'](()=>({}));throw new Error(_0x26cfcd['message']||_0x26cfcd['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x34d594['statusText']);}return await _0x34d594['json']();},async 'getAutomation'(_0x1aeeb7){const _0x27e844=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1aeeb7));if(!_0x27e844['ok']){const _0x176831=await _0x27e844['json']()['catch'](()=>({}));throw new Error(_0x176831['message']||_0x176831['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x27e844['statusText']);}return await _0x27e844['json']();},async 'createAutomation'(_0x4c1a07){const _0x3e7f1d=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c1a07||{})});if(!_0x3e7f1d['ok']){const _0xcd0855=await _0x3e7f1d['json']()['catch'](()=>({}));throw new Error(_0xcd0855['message']||_0xcd0855['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3e7f1d['statusText']);}return await _0x3e7f1d['json']();},async 'updateAutomation'(_0xb20c4f,_0x5e80d2){const _0x5536d2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xb20c4f),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e80d2||{})});if(!_0x5536d2['ok']){const _0x5a6d25=await _0x5536d2['json']()['catch'](()=>({}));throw new Error(_0x5a6d25['message']||_0x5a6d25['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5536d2['statusText']);}return await _0x5536d2['json']();},async 'deleteAutomation'(_0x588198){const _0xcf5335=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x588198),{'method':'DELETE'});if(!_0xcf5335['ok']){const _0x5c1dc7=await _0xcf5335['json']()['catch'](()=>({}));throw new Error(_0x5c1dc7['message']||_0x5c1dc7['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xcf5335['statusText']);}return await _0xcf5335['json']();},async 'triggerAutomation'(_0x4dd50f){const _0x3f7088=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4dd50f)+'/trigger',{'method':'POST'});if(!_0x3f7088['ok']){const _0x2acd60=await _0x3f7088['json']()['catch'](()=>({}));throw new Error(_0x2acd60['message']||_0x2acd60['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3f7088['statusText']);}return await _0x3f7088['json']();},async 'setAutomationEnabled'(_0xc2ce79,_0x3622df){const _0x2fbdda=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc2ce79)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3622df})});if(!_0x2fbdda['ok']){const _0x363c4e=await _0x2fbdda['json']()['catch'](()=>({}));throw new Error(_0x363c4e['message']||_0x363c4e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2fbdda['statusText']);}return await _0x2fbdda['json']();},async 'getAutomationHistory'(_0x38127b,_0x1b5eec=0x32){const _0x497193=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x38127b)+'/history?limit='+encodeURIComponent(String(_0x1b5eec)));if(!_0x497193['ok']){const _0x17cb71=await _0x497193['json']()['catch'](()=>({}));throw new Error(_0x17cb71['message']||_0x17cb71['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x497193['statusText']);}return await _0x497193['json']();},async 'getTask'(_0x5551d7,_0x43a4b8={}){const _0x263628=new URLSearchParams();if(_0x43a4b8['include']){const _0x31c33d=Array['isArray'](_0x43a4b8['include'])?_0x43a4b8['include']['join'](','):String(_0x43a4b8['include']);if(_0x31c33d)_0x263628['set']('include',_0x31c33d);}const _0x5eaf62=await fetch(API_BASE+'/tasks/'+_0x5551d7+(_0x263628['toString']()?'?'+_0x263628['toString']():''));if(!_0x5eaf62['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5eaf62['statusText']);return await _0x5eaf62['json']();},async 'getTaskResults'(_0xcc9986){const _0x46b81e=await fetch(API_BASE+'/tasks/'+_0xcc9986+'/results');if(!_0x46b81e['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x46b81e['statusText']);return await _0x46b81e['json']();},async 'getTaskPatches'(_0xed2e97){const _0x43d7f7=await fetch(API_BASE+'/tasks/'+_0xed2e97+'/patches');if(!_0x43d7f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x43d7f7['statusText']);return await _0x43d7f7['json']();},async 'getTaskAttachments'(_0x22acd3){const _0x501c16=await fetch(API_BASE+'/tasks/'+_0x22acd3+'/attachments');if(!_0x501c16['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x501c16['statusText']);return await _0x501c16['json']();},async 'uploadAttachments'(_0x37bb58,_0x123f03){const _0x2d2053=new FormData();for(const _0x189d6d of _0x123f03){_0x2d2053['append']('attachments',_0x189d6d);}const _0xf2eef6=await fetch(API_BASE+'/tasks/'+_0x37bb58+'/attachments',{'method':'POST','body':_0x2d2053});if(!_0xf2eef6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0xf2eef6['statusText']);return await _0xf2eef6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11228d=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11228d['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11228d['json']();}catch(_0xca9e82){return{'available':![],'reason':_0xca9e82['message']};}},async 'generateTaskName'(_0x2b725c){try{const _0x28cef5=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x2b725c})});return await _0x28cef5['json']();}catch(_0x471b43){return{'success':![],'error':_0x471b43['message']};}},async 'createTask'(_0x2ea6b2){let _0x2ff1d0,_0xe5ff50={};if(_0x2ea6b2['files']&&_0x2ea6b2['files']['length']>0x0){const _0x230da2=new FormData();for(const [_0x3c9b3b,_0x327279]of Object['entries'](_0x2ea6b2)){if(_0x3c9b3b!=='files'){if(_0x327279==null)continue;typeof _0x327279==='object'?_0x230da2['append'](_0x3c9b3b,JSON['stringify'](_0x327279)):_0x230da2['append'](_0x3c9b3b,String(_0x327279));}}for(const _0xfc72d0 of _0x2ea6b2['files']){_0x230da2['append']('attachments',_0xfc72d0);}_0x2ff1d0=_0x230da2;}else _0xe5ff50['Content-Type']='application/json',_0x2ff1d0=JSON['stringify'](_0x2ea6b2);const _0x392022=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0xe5ff50,'body':_0x2ff1d0});if(!_0x392022['ok']){const _0x37836e=await _0x392022['json'](),_0x36a9ce=new Error(_0x37836e['error']||'Failed\x20to\x20create\x20task:\x20'+_0x392022['statusText']),{message:_0x42c6b5,..._0x20db15}=_0x37836e;Object['assign'](_0x36a9ce,_0x20db15);throw _0x36a9ce;}return await _0x392022['json']();},async 'createTestTask'(_0xb4b94){const _0xeaa10e=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xb4b94)});if(!_0xeaa10e['ok']){const _0x3f24d9=await _0xeaa10e['json']();throw new Error(_0x3f24d9['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xeaa10e['statusText']);}return await _0xeaa10e['json']();},async 'createEphemeralTest'(_0x5d0f6b){const _0x509338=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5d0f6b)});if(!_0x509338['ok']){const _0x1cfcbf=await _0x509338['json']();throw new Error(_0x1cfcbf['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x509338['statusText']);}return await _0x509338['json']();},async 'createDeployTask'(_0x2079af){const _0x3a6d5a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2079af)});if(!_0x3a6d5a['ok']){const _0x302b74=await _0x3a6d5a['json']();throw new Error(_0x302b74['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3a6d5a['statusText']);}return await _0x3a6d5a['json']();},async 'getEnvironments'(){const _0x358aa7=await fetch(API_BASE+'/environments');if(!_0x358aa7['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x358aa7['statusText']);return await _0x358aa7['json']();},async 'getEnvironment'(_0x38da71){const _0x546c2f=await fetch(API_BASE+'/environments/'+_0x38da71);if(!_0x546c2f['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x546c2f['statusText']);return await _0x546c2f['json']();},async 'getEnvironmentRepoHistory'(_0xb0bb17,_0x3f113,_0x57ff90={}){if(!_0xb0bb17||!_0x3f113)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3f932d=new URLSearchParams();if(_0x57ff90['limit'])_0x3f932d['set']('limit',String(_0x57ff90['limit']));if(_0x57ff90['offset'])_0x3f932d['set']('offset',String(_0x57ff90['offset']));if(_0x57ff90['search'])_0x3f932d['set']('search',String(_0x57ff90['search']));if(_0x57ff90['branch'])_0x3f932d['set']('branch',String(_0x57ff90['branch']));const _0x1907e7=API_BASE+'/environments/'+encodeURIComponent(_0xb0bb17)+'/repos/'+encodeURIComponent(_0x3f113)+'/git/history',_0x45234b=await fetch(''+_0x1907e7+(_0x3f932d['toString']()?'?'+_0x3f932d['toString']():''));if(!_0x45234b['ok']){const _0x28aa1c=await _0x45234b['json']()['catch'](()=>({}));throw new Error(_0x28aa1c['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45234b['statusText']);}return await _0x45234b['json']();},async 'getEnvironmentRepoCommit'(_0x2fcea5,_0xa6b767,_0x21c21b){if(!_0x2fcea5||!_0xa6b767||!_0x21c21b)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x50b2f4=API_BASE+'/environments/'+encodeURIComponent(_0x2fcea5)+'/repos/'+encodeURIComponent(_0xa6b767)+'/git/commits/'+encodeURIComponent(_0x21c21b),_0x4c6f74=await fetch(_0x50b2f4);if(!_0x4c6f74['ok']){const _0x543fb3=await _0x4c6f74['json']()['catch'](()=>({}));throw new Error(_0x543fb3['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x4c6f74['statusText']);}return await _0x4c6f74['json']();},async 'getEnvironmentRepoBranches'(_0x3c53f2,_0x49917e){if(!_0x3c53f2||!_0x49917e)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5f521b=API_BASE+'/environments/'+encodeURIComponent(_0x3c53f2)+'/repos/'+encodeURIComponent(_0x49917e)+'/git/branches',_0x273bd9=await fetch(_0x5f521b);if(!_0x273bd9['ok']){const _0x630b09=await _0x273bd9['json']()['catch'](()=>({}));throw new Error(_0x630b09['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x273bd9['statusText']);}return await _0x273bd9['json']();},async 'revertEnvironmentRepoCommit'(_0x14d765,_0x43c36f,_0x1ea393,_0x4459b4={}){if(!_0x14d765||!_0x43c36f||!_0x1ea393)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x377715=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x14d765)+'/repos/'+encodeURIComponent(_0x43c36f)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x1ea393,..._0x4459b4})});if(!_0x377715['ok']){const _0x38995c=await _0x377715['json']()['catch'](()=>({}));throw new Error(_0x38995c['message']||_0x38995c['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x377715['statusText']);}return await _0x377715['json']();},async 'getTemplates'(_0x1966d8={}){const _0x11f9ee=new URLSearchParams();if(_0x1966d8['include']){const _0xe01e55=Array['isArray'](_0x1966d8['include'])?_0x1966d8['include']['join'](','):String(_0x1966d8['include']);if(_0xe01e55)_0x11f9ee['set']('include',_0xe01e55);}const _0x20cbfb=await fetch(API_BASE+'/templates'+(_0x11f9ee['toString']()?'?'+_0x11f9ee['toString']():''));if(!_0x20cbfb['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x20cbfb['statusText']);return await _0x20cbfb['json']();},async 'getTemplatesForEnvironment'(_0x268615,_0x3005b9={}){if(!_0x268615)throw new Error('Environment\x20name\x20is\x20required');const _0x286f56=new URLSearchParams();if(_0x3005b9['include']){const _0x8138fb=Array['isArray'](_0x3005b9['include'])?_0x3005b9['include']['join'](','):String(_0x3005b9['include']);if(_0x8138fb)_0x286f56['set']('include',_0x8138fb);}const _0x263337=await fetch(API_BASE+'/templates/'+_0x268615+(_0x286f56['toString']()?'?'+_0x286f56['toString']():''));if(!_0x263337['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x268615+':\x20'+_0x263337['statusText']);return await _0x263337['json']();},async 'getTemplate'(_0x122a01,_0x2314a6,_0xff7399={}){if(!_0x122a01||!_0x2314a6)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x47a26f=new URLSearchParams();if(_0xff7399['include']){const _0x709fed=Array['isArray'](_0xff7399['include'])?_0xff7399['include']['join'](','):String(_0xff7399['include']);if(_0x709fed)_0x47a26f['set']('include',_0x709fed);}const _0x3dd675=await fetch(API_BASE+'/templates/'+_0x122a01+'/'+_0x2314a6+(_0x47a26f['toString']()?'?'+_0x47a26f['toString']():''));if(!_0x3dd675['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dd675['statusText']);return await _0x3dd675['json']();},async 'getTaskLogs'(_0x145f1a,_0x4f8412={}){if(!_0x145f1a)throw new Error('Task\x20ID\x20is\x20required');const _0x5dc25c=new URLSearchParams();_0x4f8412['tail']&&_0x5dc25c['set']('tail',String(_0x4f8412['tail']));const _0x415383=await fetch(API_BASE+'/tasks/'+_0x145f1a+'/logs'+(_0x5dc25c['toString']()?'?'+_0x5dc25c['toString']():''));if(!_0x415383['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x415383['statusText']);return await _0x415383['text']();},async 'getContainers'(){const _0x3798f7=await fetch(API_BASE+'/containers');if(!_0x3798f7['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x3798f7['statusText']);return await _0x3798f7['json']();},async 'getContainer'(_0x57f1e1){const _0xb01543=await fetch(API_BASE+'/containers/'+_0x57f1e1);if(!_0xb01543['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xb01543['statusText']);return await _0xb01543['json']();},async 'startInteractiveContainer'(_0x2b9161){const _0x1568e7=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2b9161)});if(!_0x1568e7['ok']){const _0x11d532=await _0x1568e7['json']()['catch'](()=>({}));throw new Error(_0x11d532['message']||'Failed\x20to\x20start\x20container:\x20'+_0x1568e7['statusText']);}return await _0x1568e7['json']();},async 'startContainerCodeServer'(_0x273a65,_0x54d450={}){if(!_0x273a65)throw new Error('Container\x20ID\x20is\x20required');const _0x218216=new URLSearchParams();_0x54d450['theme']&&_0x218216['set']('theme',_0x54d450['theme']);const _0x426f40=await fetch(API_BASE+'/containers/'+_0x273a65+'/code-server'+(_0x218216['toString']()?'?'+_0x218216['toString']():'')),_0x297b0c=await _0x426f40['json']()['catch'](()=>({}));if(!_0x426f40['ok'])throw new Error(_0x297b0c['message']||_0x297b0c['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x426f40['statusText']);return _0x297b0c;},async 'stopContainer'(_0x3f6c36){const _0x546453=await fetch(API_BASE+'/containers/'+_0x3f6c36,{'method':'DELETE'});if(!_0x546453['ok']){const _0xc83c58=await _0x546453['json']()['catch'](()=>({}));throw new Error(_0xc83c58['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x546453['statusText']);}return await _0x546453['json']();},async 'stopTask'(_0x342d81){if(!_0x342d81)throw new Error('Task\x20ID\x20is\x20required');const _0x348680=await fetch(API_BASE+'/tasks/'+_0x342d81+'/stop',{'method':'POST'});if(!_0x348680['ok']){const _0x20c107=await _0x348680['json']()['catch'](()=>({}));throw new Error(_0x20c107['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x348680['statusText']);}return await _0x348680['json']();},async 'interruptTask'(_0x445fb7){if(!_0x445fb7)throw new Error('Task\x20ID\x20is\x20required');const _0xa22ff1=await fetch(API_BASE+'/tasks/'+_0x445fb7+'/interrupt',{'method':'POST'});if(!_0xa22ff1['ok']){const _0x53312a=await _0xa22ff1['json']()['catch'](()=>({}));throw new Error(_0x53312a['error']||_0x53312a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0xa22ff1['statusText']);}return await _0xa22ff1['json']();},async 'startTask'(_0x1660c2){if(!_0x1660c2)throw new Error('Task\x20ID\x20is\x20required');const _0x4e5ff1=await fetch(API_BASE+'/tasks/'+_0x1660c2+'/start',{'method':'POST'});if(!_0x4e5ff1['ok']){const _0x5e2986=await _0x4e5ff1['json']()['catch'](()=>({}));throw new Error(_0x5e2986['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4e5ff1['statusText']);}return await _0x4e5ff1['json']();},async 'deleteTask'(_0x122547){if(!_0x122547)throw new Error('Task\x20ID\x20is\x20required');const _0x9b9b4=await fetch(API_BASE+'/tasks/'+_0x122547,{'method':'DELETE'});if(!_0x9b9b4['ok']){const _0x369e8e=await _0x9b9b4['json']()['catch'](()=>({}));throw new Error(_0x369e8e['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x9b9b4['statusText']);}return await _0x9b9b4['json']();},async 'refreshTasksFromDisk'(){const _0x46a907=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x46a907['ok']){const _0x315f35=await _0x46a907['json']()['catch'](()=>({}));throw new Error(_0x315f35['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x46a907['statusText']);}return await _0x46a907['json']();},async 'approveTask'(_0x4a3695,_0x5117f3={}){if(!_0x4a3695)throw new Error('Task\x20ID\x20is\x20required');const _0x443b16={'commit_message':_0x5117f3['commit_message']||'','pull':_0x5117f3['pull']??![],'push':_0x5117f3['push']??![],'conflict_strategy':_0x5117f3['conflict_strategy']||'rebase'};_0x5117f3['new_branch']&&(_0x443b16['new_branch']=_0x5117f3['new_branch']);const _0x1ac458=await fetch(API_BASE+'/tasks/'+_0x4a3695+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x443b16)});if(!_0x1ac458['ok']){const _0x3a3865=await _0x1ac458['json']()['catch'](()=>({})),_0x1229a6=Array['isArray'](_0x3a3865['results'])?_0x3a3865['results']['filter'](_0xb6d06=>!_0xb6d06['success']&&(_0xb6d06['error']||_0xb6d06['error_code'])):[],_0xf99089=_0x1229a6[0x0]||null;let _0x36c223=_0x3a3865['error']||_0x3a3865['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1ac458['statusText'];if(_0xf99089?.['error'])_0x36c223=_0xf99089['error'];else _0x3a3865['message']&&(_0x36c223=_0x3a3865['message']);const _0x50104e=new Error(_0x36c223);_0x50104e['code']=_0xf99089?.['error_code']||_0x3a3865['error_code']||null,_0x50104e['details']=_0xf99089?.['details']||_0x3a3865['details']||null,_0x50104e['tokenExpiryDays']=_0xf99089?.['token_expiry_days']||_0x3a3865['token_expiry_days']||null,_0x50104e['hasConflicts']=_0x3a3865['results']?.['some'](_0x4df1b7=>_0x4df1b7['conflict'])||![];throw _0x50104e;}return await _0x1ac458['json']();},async 'getPullRequestInfo'(_0xfb4f8){if(!_0xfb4f8)throw new Error('Task\x20ID\x20is\x20required');const _0x9a47b3=await fetch(API_BASE+'/tasks/'+_0xfb4f8+'/pull-request-info');if(!_0x9a47b3['ok']){const _0x143845=await _0x9a47b3['json']()['catch'](()=>({}));throw new Error(_0x143845['error']||_0x143845['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x9a47b3['statusText']);}return await _0x9a47b3['json']();},async 'createPullRequests'(_0x1263e6,_0x3fef14){if(!_0x1263e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3fef14||!Array['isArray'](_0x3fef14))throw new Error('repos\x20array\x20is\x20required');const _0x14d881=await fetch(API_BASE+'/tasks/'+_0x1263e6+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3fef14})});if(!_0x14d881['ok']){const _0x21b1b9=await _0x14d881['json']()['catch'](()=>({}));let _0x357e48=_0x21b1b9['error']||_0x21b1b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x14d881['statusText'];if(_0x21b1b9['results']&&Array['isArray'](_0x21b1b9['results'])){const _0x57296f=_0x21b1b9['results']['filter'](_0x5917fe=>!_0x5917fe['success']&&_0x5917fe['error']);_0x57296f['length']>0x0&&(_0x357e48=_0x57296f[0x0]['error']);}throw new Error(_0x357e48);}return await _0x14d881['json']();},async 'syncRepos'(_0x3d4d9c){if(!_0x3d4d9c)throw new Error('Task\x20ID\x20is\x20required');const _0x591bd9=await fetch(API_BASE+'/tasks/'+_0x3d4d9c+'/sync-repos',{'method':'POST'});if(!_0x591bd9['ok']){const _0xb68bec=await _0x591bd9['json']()['catch'](()=>({}));throw new Error(_0xb68bec['error']||_0xb68bec['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x591bd9['statusText']);}return await _0x591bd9['json']();},async 'getIbmiSyncInfo'(_0x3224a0){if(!_0x3224a0)throw new Error('Task\x20ID\x20is\x20required');const _0x422fcc=await fetch(API_BASE+'/tasks/'+_0x3224a0+'/ibmi-sync-info');if(!_0x422fcc['ok']){const _0x3ab76d=await _0x422fcc['json']()['catch'](()=>({}));throw new Error(_0x3ab76d['error']||_0x3ab76d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x422fcc['json']();},async 'getSyncFiles'(_0x2bbe29){if(!_0x2bbe29)throw new Error('Task\x20ID\x20is\x20required');const _0x2a934a=await fetch(API_BASE+'/tasks/'+_0x2bbe29+'/sync-to-ibmi/files');if(!_0x2a934a['ok']){const _0x201223=await _0x2a934a['json']()['catch'](()=>({}));throw new Error(_0x201223['error']||_0x201223['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x2a934a['json']();},async 'syncToIbmi'(_0x49db33,_0x29ff7d,_0x4037bf=null,_0x45fcaa=null,_0x5196df=null){if(!_0x49db33)throw new Error('Task\x20ID\x20is\x20required');const _0x375095={'library':_0x29ff7d};if(_0x4037bf)_0x375095['user']=_0x4037bf;if(_0x45fcaa)_0x375095['password']=_0x45fcaa;if(_0x5196df)_0x375095['files']=_0x5196df;const _0x32d5d5=await fetch(API_BASE+'/tasks/'+_0x49db33+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x375095)});if(!_0x32d5d5['ok']){const _0x2b076d=await _0x32d5d5['json']()['catch'](()=>({}));throw new Error(_0x2b076d['error']||_0x2b076d['message']||'Sync\x20failed');}return await _0x32d5d5['json']();},async 'getIbmiSyncLog'(_0x53ac96){if(!_0x53ac96)throw new Error('Task\x20ID\x20is\x20required');const _0x52a419=await fetch(API_BASE+'/tasks/'+_0x53ac96+'/ibmi-sync-log');if(!_0x52a419['ok']){const _0x38fcf8=await _0x52a419['json']()['catch'](()=>({}));throw new Error(_0x38fcf8['error']||_0x38fcf8['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x52a419['json']();},async 'pullChanges'(_0x5dc4bc){if(!_0x5dc4bc)throw new Error('Task\x20ID\x20is\x20required');const _0x523a31=await fetch(API_BASE+'/tasks/'+_0x5dc4bc+'/pull-changes',{'method':'POST'});if(!_0x523a31['ok']){const _0x4f2311=await _0x523a31['json']()['catch'](()=>({})),_0x57a8c9=new Error(_0x4f2311['message']||_0x4f2311['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x523a31['statusText']);_0x57a8c9['code']=_0x4f2311['error_code']||null,_0x57a8c9['details']=_0x4f2311['details']||null,_0x57a8c9['tokenExpiryDays']=_0x4f2311['token_expiry_days']||null;throw _0x57a8c9;}return await _0x523a31['json']();},async 'readFile'(_0x251e3c,_0x278bdc){if(!_0x251e3c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x278bdc)throw new Error('File\x20path\x20is\x20required');const _0x5915b8=await fetch(API_BASE+'/tasks/'+_0x251e3c+'/files?path='+encodeURIComponent(_0x278bdc));if(!_0x5915b8['ok']){const _0x4178ee=await _0x5915b8['json']()['catch'](()=>({}));throw new Error(_0x4178ee['error']||_0x4178ee['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5915b8['statusText']);}return await _0x5915b8['json']();},'getTaskFileDownloadUrl'(_0x242161,_0x3c662c){if(!_0x242161)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3c662c)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242161+'/files/download?path='+encodeURIComponent(_0x3c662c);},async 'writeFile'(_0x2c854f,_0x1d0999,_0x432ecd){if(!_0x2c854f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d0999)throw new Error('File\x20path\x20is\x20required');if(_0x432ecd===undefined)throw new Error('Content\x20is\x20required');const _0x52118e=await fetch(API_BASE+'/tasks/'+_0x2c854f+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1d0999,'content':_0x432ecd})});if(!_0x52118e['ok']){const _0x3c88f0=await _0x52118e['json']()['catch'](()=>({}));throw new Error(_0x3c88f0['error']||_0x3c88f0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x52118e['statusText']);}return await _0x52118e['json']();},async 'uploadTaskFiles'(_0x38c033,_0x5dc0b4,_0x3e8ada){if(!_0x38c033)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5dc0b4)throw new Error('Target\x20directory\x20is\x20required');if(!_0x3e8ada||_0x3e8ada['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x76371d=new FormData();_0x76371d['append']('targetDir',_0x5dc0b4);for(const _0x59a448 of _0x3e8ada){_0x76371d['append']('files',_0x59a448,_0x59a448['name']);}const _0x3d4f2b=await fetch(API_BASE+'/tasks/'+_0x38c033+'/files/upload',{'method':'POST','body':_0x76371d});if(!_0x3d4f2b['ok']){const _0x5b8182=await _0x3d4f2b['json']()['catch'](()=>({}));throw new Error(_0x5b8182['error']||_0x5b8182['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3d4f2b['statusText']);}return await _0x3d4f2b['json']();},async 'createDirectory'(_0x1662c7,_0x58bbae){if(!_0x1662c7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58bbae)throw new Error('Directory\x20path\x20is\x20required');const _0x3d92b7=await fetch(API_BASE+'/tasks/'+_0x1662c7+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x58bbae})});if(!_0x3d92b7['ok']){const _0x9924b6=await _0x3d92b7['json']()['catch'](()=>({}));throw new Error(_0x9924b6['error']||_0x9924b6['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3d92b7['statusText']);}return await _0x3d92b7['json']();},async 'renamePath'(_0x14192a,_0x592d6c,_0x86dba6){if(!_0x14192a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x592d6c)throw new Error('Source\x20path\x20is\x20required');if(!_0x86dba6)throw new Error('Destination\x20path\x20is\x20required');const _0x33fcb5=await fetch(API_BASE+'/tasks/'+_0x14192a+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x592d6c,'newPath':_0x86dba6})});if(!_0x33fcb5['ok']){const _0x59c00b=await _0x33fcb5['json']()['catch'](()=>({}));throw new Error(_0x59c00b['error']||_0x59c00b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x33fcb5['statusText']);}return await _0x33fcb5['json']();},async 'deleteFile'(_0x1b1028,_0x53cfd1){if(!_0x1b1028)throw new Error('Task\x20ID\x20is\x20required');if(!_0x53cfd1)throw new Error('File\x20path\x20is\x20required');const _0x5906f3=await fetch(API_BASE+'/tasks/'+_0x1b1028+'/files?path='+encodeURIComponent(_0x53cfd1),{'method':'DELETE'});if(!_0x5906f3['ok']){const _0x35ad05=await _0x5906f3['json']()['catch'](()=>({}));throw new Error(_0x35ad05['error']||_0x35ad05['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5906f3['statusText']);}return await _0x5906f3['json']();},async 'deleteDirectory'(_0x1453c2,_0x3e37b6){if(!_0x1453c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e37b6)throw new Error('Directory\x20path\x20is\x20required');const _0x23ecac=await fetch(API_BASE+'/tasks/'+_0x1453c2+'/files/directory?path='+encodeURIComponent(_0x3e37b6),{'method':'DELETE'});if(!_0x23ecac['ok']){const _0x221543=await _0x23ecac['json']()['catch'](()=>({}));throw new Error(_0x221543['error']||_0x221543['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x23ecac['statusText']);}return await _0x23ecac['json']();},async 'discardFile'(_0x8bf9a7,_0x57e57a,_0x352fcf){if(!_0x8bf9a7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57e57a)throw new Error('File\x20path\x20is\x20required');if(!_0x352fcf)throw new Error('Repository\x20path\x20is\x20required');const _0x466686=await fetch(API_BASE+'/tasks/'+_0x8bf9a7+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x57e57a,'repoPath':_0x352fcf})});if(!_0x466686['ok']){const _0x3dc0ef=await _0x466686['json']()['catch'](()=>({}));throw new Error(_0x3dc0ef['error']||_0x3dc0ef['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x466686['statusText']);}return await _0x466686['json']();},async 'followUpTask'(_0x18ab66,_0x48ea5a={}){if(!_0x18ab66)throw new Error('Task\x20ID\x20is\x20required');if(!_0x48ea5a['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2621b8,_0x3a37ab={};if(_0x48ea5a['files']&&_0x48ea5a['files']['length']>0x0){const _0x2f1206=new FormData();_0x2f1206['append']('instructions',_0x48ea5a['instructions']);for(const _0xc3a5ee of _0x48ea5a['files']){_0x2f1206['append']('attachments',_0xc3a5ee);}_0x2621b8=_0x2f1206;}else _0x3a37ab['Content-Type']='application/json',_0x2621b8=JSON['stringify']({'instructions':_0x48ea5a['instructions']});const _0x32698f=await fetch(API_BASE+'/tasks/'+_0x18ab66+'/follow-up',{'method':'POST','headers':_0x3a37ab,'body':_0x2621b8});if(!_0x32698f['ok']){const _0x46899d=await _0x32698f['json']()['catch'](()=>({}));throw new Error(_0x46899d['error']||_0x46899d['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x32698f['statusText']);}return await _0x32698f['json']();},async 'getTaskRewindPoints'(_0x487538){if(!_0x487538)throw new Error('Task\x20ID\x20is\x20required');const _0x34cbe5=await fetch(API_BASE+'/tasks/'+_0x487538+'/rewind-points');if(!_0x34cbe5['ok']){const _0x1538d6=await _0x34cbe5['json']()['catch'](()=>({}));throw new Error(_0x1538d6['error']||_0x1538d6['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x34cbe5['statusText']);}return await _0x34cbe5['json']();},async 'rewindTask'(_0x8a782f,_0x2efa57={}){if(!_0x8a782f)throw new Error('Task\x20ID\x20is\x20required');const _0x45c2e1=Number['isInteger'](_0x2efa57['targetFollowUpCount'])?_0x2efa57['targetFollowUpCount']:0x0,_0x522029={'targetFollowUpCount':_0x45c2e1};typeof _0x2efa57['instructions']==='string'&&_0x2efa57['instructions']['trim']()&&(_0x522029['instructions']=_0x2efa57['instructions']['trim']());typeof _0x2efa57['rewindFiles']==='boolean'&&(_0x522029['rewindFiles']=_0x2efa57['rewindFiles']);const _0x290e67=await fetch(API_BASE+'/tasks/'+_0x8a782f+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x522029)});if(!_0x290e67['ok']){const _0x3a244e=await _0x290e67['json']()['catch'](()=>({}));throw new Error(_0x3a244e['error']||_0x3a244e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x290e67['statusText']);}return await _0x290e67['json']();},async 'login'(_0x3c9230,_0x16f8d8){const _0xa2b900=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3c9230,'password':_0x16f8d8})});if(!_0xa2b900['ok']){const _0x27c257=await _0xa2b900['json']();throw new Error(_0x27c257['message']||'Login\x20failed');}return await _0xa2b900['json']();},async 'logout'(){const _0xd4489=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0xd4489['ok']){const _0x395a9f=await _0xd4489['json']();throw new Error(_0x395a9f['message']||'Logout\x20failed');}return await _0xd4489['json']();},async 'getCurrentUser'(){const _0x22a174=await fetch(API_BASE+'/auth/me');if(!_0x22a174['ok'])throw new Error('Not\x20authenticated');const _0x5805ba=await _0x22a174['json']();return _0x5805ba['user'];},async 'getRolesInfo'(){const _0x2b908=await fetch(API_BASE+'/users/roles');if(!_0x2b908['ok']){const _0x3c7f29=await _0x2b908['json']();throw new Error(_0x3c7f29['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2b908['json']();},async 'getUsers'(){const _0x3a271d=await fetch(API_BASE+'/users');if(!_0x3a271d['ok']){const _0x1612fc=await _0x3a271d['json']();throw new Error(_0x1612fc['message']||'Failed\x20to\x20get\x20users');}return await _0x3a271d['json']();},async 'getUser'(_0x50ed7b){const _0xc9e253=await fetch(API_BASE+'/users/'+_0x50ed7b);if(!_0xc9e253['ok']){const _0x379e6e=await _0xc9e253['json']();throw new Error(_0x379e6e['message']||'Failed\x20to\x20get\x20user');}return await _0xc9e253['json']();},async 'createUser'(_0x150cb4){const _0x4a357e=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x150cb4)});if(!_0x4a357e['ok']){const _0x19b4e3=await _0x4a357e['json']();throw new Error(_0x19b4e3['message']||'Failed\x20to\x20create\x20user');}return await _0x4a357e['json']();},async 'updateUser'(_0x3b2135,_0x518f03){const _0x3e09bb=await fetch(API_BASE+'/users/'+_0x3b2135,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x518f03)});if(!_0x3e09bb['ok']){const _0x8c6cbc=await _0x3e09bb['json']();throw new Error(_0x8c6cbc['message']||'Failed\x20to\x20update\x20user');}return await _0x3e09bb['json']();},async 'deleteUser'(_0x22b3d3){const _0x1ed06f=await fetch(API_BASE+'/users/'+_0x22b3d3,{'method':'DELETE'});if(!_0x1ed06f['ok']){const _0x583886=await _0x1ed06f['json']();throw new Error(_0x583886['message']||'Failed\x20to\x20delete\x20user');}return await _0x1ed06f['json']();},async 'stopAllContainers'(){const _0x192ddc=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x42a06d=await _0x192ddc['json']()['catch'](()=>({}));if(!_0x192ddc['ok'])throw new Error(_0x42a06d['message']||_0x42a06d['error']||'Failed\x20to\x20stop\x20containers');return _0x42a06d;},async 'removeStoppedContainers'(){const _0x25c492=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x43dc93=await _0x25c492['json']()['catch'](()=>({}));if(!_0x25c492['ok'])throw new Error(_0x43dc93['message']||_0x43dc93['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x43dc93;},async 'pruneDockerResources'(){const _0x3f6515=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x589f5c=await _0x3f6515['json']()['catch'](()=>({}));if(!_0x3f6515['ok'])throw new Error(_0x589f5c['message']||_0x589f5c['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x589f5c;},async 'getUpdateSettings'(){const _0x56438a=await fetch(API_BASE+'/health/update-settings'),_0x46938c=await _0x56438a['json']()['catch'](()=>({}));if(!_0x56438a['ok'])throw new Error(_0x46938c['message']||_0x46938c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x46938c;},async 'applyServerUpdate'(_0x34d991){const _0x52b85f=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x34d991})}),_0x4c193a=await _0x52b85f['json']()['catch'](()=>({}));if(!_0x52b85f['ok']){const _0x196e6d=new Error(_0x4c193a['message']||_0x4c193a['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x4c193a['output']!==undefined)_0x196e6d['output']=_0x4c193a['output'];if(_0x4c193a['error']!==undefined)_0x196e6d['commandError']=_0x4c193a['error'];throw _0x196e6d;}return _0x4c193a;},async 'restartServer'(){const _0x231206=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x16bd84=await _0x231206['json']()['catch'](()=>({}));if(!_0x231206['ok'])throw new Error(_0x16bd84['message']||_0x16bd84['error']||'Failed\x20to\x20restart\x20server');return _0x16bd84;},async 'getDockerContainers'(){const _0x570009=await fetch(API_BASE+'/health/containers'),_0x2e68d8=await _0x570009['json']()['catch'](()=>({}));if(!_0x570009['ok'])throw new Error(_0x2e68d8['message']||_0x2e68d8['error']||'Failed\x20to\x20load\x20containers');return _0x2e68d8;},async 'getDockerImages'(){const _0x155535=await fetch(API_BASE+'/health/docker/images'),_0x59c3d1=await _0x155535['json']()['catch'](()=>({}));if(!_0x155535['ok'])throw new Error(_0x59c3d1['message']||_0x59c3d1['error']||'Failed\x20to\x20load\x20images');return _0x59c3d1;},async 'getDockerVolumes'(){const _0x1ec1dd=await fetch(API_BASE+'/health/docker/volumes'),_0x43c469=await _0x1ec1dd['json']()['catch'](()=>({}));if(!_0x1ec1dd['ok'])throw new Error(_0x43c469['message']||_0x43c469['error']||'Failed\x20to\x20load\x20volumes');return _0x43c469;},async 'getActiveSessions'(){const _0x513839=await fetch(API_BASE+'/health/sessions'),_0x1d2b67=await _0x513839['json']()['catch'](()=>({}));if(!_0x513839['ok'])throw new Error(_0x1d2b67['message']||_0x1d2b67['error']||'Failed\x20to\x20load\x20sessions');return _0x1d2b67;},async 'getSystemInfo'(){const _0x412270=await fetch(API_BASE+'/health/system'),_0x962ba0=await _0x412270['json']()['catch'](()=>({}));if(!_0x412270['ok'])throw new Error(_0x962ba0['message']||_0x962ba0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x962ba0;},async 'stopDockerContainer'(_0x5b8f2a){const _0x48533f=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x5b8f2a)+'/stop',{'method':'POST'}),_0x39edfe=await _0x48533f['json']()['catch'](()=>({}));if(!_0x48533f['ok'])throw new Error(_0x39edfe['message']||_0x39edfe['error']||'Failed\x20to\x20stop\x20container');return _0x39edfe;},async 'removeDockerContainer'(_0xda02fb){const _0x10b66c=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0xda02fb),{'method':'DELETE'}),_0x349030=await _0x10b66c['json']()['catch'](()=>({}));if(!_0x10b66c['ok'])throw new Error(_0x349030['message']||_0x349030['error']||'Failed\x20to\x20remove\x20container');return _0x349030;},async 'createPasswordToken'(_0x5c00b2,_0x3dc312='setup',_0x382fb5=![]){const _0x5120a5=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5c00b2,'type':_0x3dc312,'sendEmail':_0x382fb5})});if(!_0x5120a5['ok']){const _0x34d267=await _0x5120a5['json']();throw new Error(_0x34d267['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x5120a5['json']();},async 'getEmailConfig'(){const _0x692f02=await fetch(API_BASE+'/password/email-config');if(!_0x692f02['ok']){const _0xc08817=await _0x692f02['json']();throw new Error(_0xc08817['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x692f02['json']();},async 'updateTaskName'(_0xbf1bb3,_0x4d4aa6){const _0x4736dd=await fetch(API_BASE+'/tasks/'+_0xbf1bb3,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4d4aa6})});if(!_0x4736dd['ok']){const _0x812c57=await _0x4736dd['json']();throw new Error(_0x812c57['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4736dd['json']();},async 'pinTask'(_0x5eb475,_0x159974,_0x2f727b=null){if(!_0x5eb475)throw new Error('Task\x20ID\x20is\x20required');const _0xdbf53c={'pinned':_0x159974};_0x2f727b&&_0x2f727b['length']>0x0&&(_0xdbf53c['additionalTaskIds']=_0x2f727b);const _0x1260d9=await fetch(API_BASE+'/tasks/'+_0x5eb475+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xdbf53c)});if(!_0x1260d9['ok']){const _0xf7eb6c=await _0x1260d9['json']();throw new Error(_0xf7eb6c['error']||'Failed\x20to\x20pin\x20task');}return await _0x1260d9['json']();},async 'setTaskWinner'(_0x180cae,_0x459ac4,_0x38ddc9=[]){if(!_0x180cae)throw new Error('Task\x20ID\x20is\x20required');const _0x58b27b=await fetch(API_BASE+'/tasks/'+_0x180cae+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x459ac4,'siblings':_0x38ddc9})});if(!_0x58b27b['ok']){const _0x384eb1=await _0x58b27b['json']();throw new Error(_0x384eb1['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x58b27b['json']();},async 'setTaskLoser'(_0x275412,_0x23b696){if(!_0x275412)throw new Error('Task\x20ID\x20is\x20required');const _0x49a895=await fetch(API_BASE+'/tasks/'+_0x275412+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x23b696})});if(!_0x49a895['ok']){const _0xb43988=await _0x49a895['json']();throw new Error(_0xb43988['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x49a895['json']();},async 'createTaskGroup'(_0x1e8d73){const _0xa98131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e8d73)});if(!_0xa98131['ok']){const _0x1c9d36=await _0xa98131['json']();throw new Error(_0x1c9d36['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0xa98131['json']();},async 'getTaskGroups'(_0x54afa8={}){const _0x182a43=new URLSearchParams();if(_0x54afa8['userId'])_0x182a43['set']('userId',String(_0x54afa8['userId']));if(_0x54afa8['status'])_0x182a43['set']('status',String(_0x54afa8['status']));if(_0x54afa8['limit'])_0x182a43['set']('limit',String(_0x54afa8['limit']));const _0x979967=API_BASE+'/tasks/groups'+(_0x182a43['toString']()?'?'+_0x182a43['toString']():''),_0xdd490f=await fetch(_0x979967);if(!_0xdd490f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdd490f['json']();},async 'getTaskGroup'(_0x264563){const _0x419a98=await fetch(API_BASE+'/tasks/groups/'+_0x264563);if(!_0x419a98['ok']){const _0x5c61c3=await _0x419a98['json']();throw new Error(_0x5c61c3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x419a98['json']();},async 'updateTaskGroup'(_0x4b5012,_0x2d71c0,_0x441145){const _0x4c13f1=await fetch(API_BASE+'/tasks/'+_0x4b5012+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2d71c0,'groupIndex':_0x441145})});if(!_0x4c13f1['ok']){const _0x5f2b5c=await _0x4c13f1['json']();throw new Error(_0x5f2b5c['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4c13f1['json']();},async 'removeTaskFromGroup'(_0x2099bf){return this['updateTaskGroup'](_0x2099bf,null,null);},async 'deleteTaskGroup'(_0x5ce0d2,_0x5f1e34=![]){const _0xd104ee=_0x5f1e34?'?deleteTasks=true':'',_0xf31432=await fetch(API_BASE+'/tasks/groups/'+_0x5ce0d2+_0xd104ee,{'method':'DELETE'});if(!_0xf31432['ok']){const _0x1623f9=await _0xf31432['json']();throw new Error(_0x1623f9['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x521891,_0x2b4d05){const _0x5e4ed8=await fetch(API_BASE+'/tasks/groups/'+_0x521891+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x2b4d05})});if(!_0x5e4ed8['ok']){const _0x2f61e9=await _0x5e4ed8['json']();throw new Error(_0x2f61e9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5e4ed8['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4827bd){if(!_0x4827bd)throw new Error('Task\x20ID\x20is\x20required');const _0x1baf17=await fetch(API_BASE+'/tasks/'+_0x4827bd+'/comments');if(!_0x1baf17['ok']){const _0xf35610=await _0x1baf17['json']()['catch'](()=>({}));throw new Error(_0xf35610['error']||'Failed\x20to\x20get\x20comments');}return await _0x1baf17['json']();},async 'addComment'(_0x5d0ef9,_0x17aac3){if(!_0x5d0ef9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17aac3)throw new Error('Comment\x20content\x20is\x20required');const _0x1af11e=await fetch(API_BASE+'/tasks/'+_0x5d0ef9+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17aac3})});if(!_0x1af11e['ok']){const _0x257150=await _0x1af11e['json']()['catch'](()=>({}));throw new Error(_0x257150['error']||'Failed\x20to\x20add\x20comment');}return await _0x1af11e['json']();},async 'updateComment'(_0x31ff8c,_0x59185f,_0x17cf98){if(!_0x31ff8c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x59185f)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x17cf98)throw new Error('Comment\x20content\x20is\x20required');const _0x20ed5f=await fetch(API_BASE+'/tasks/'+_0x31ff8c+'/comments/'+_0x59185f,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17cf98})});if(!_0x20ed5f['ok']){const _0x103ff5=await _0x20ed5f['json']()['catch'](()=>({}));throw new Error(_0x103ff5['error']||'Failed\x20to\x20update\x20comment');}return await _0x20ed5f['json']();},async 'deleteComment'(_0x25263d,_0x25b7d4){if(!_0x25263d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x25b7d4)throw new Error('Comment\x20ID\x20is\x20required');const _0xb2f2d4=await fetch(API_BASE+'/tasks/'+_0x25263d+'/comments/'+_0x25b7d4,{'method':'DELETE'});if(!_0xb2f2d4['ok']){const _0x262cce=await _0xb2f2d4['json']()['catch'](()=>({}));throw new Error(_0x262cce['error']||'Failed\x20to\x20delete\x20comment');}return await _0xb2f2d4['json']();},async 'createObjective'(_0x5dc368){const _0x528643={'objective':!![],'name':_0x5dc368['name']||'','environment':_0x5dc368['environment']||null,'agents':_0x5dc368['agents']||[],'branches':_0x5dc368['branches']||{},'isPinned':_0x5dc368['isPinned']||![],'parentObjectiveId':_0x5dc368['parentObjectiveId']||null,'env_vars':_0x5dc368['envVars']||{},'parameters':{'instructions':_0x5dc368['instructions']||''},'files':_0x5dc368['files']||[],'jira':_0x5dc368['jira']||null};return this['createTask'](_0x528643);},async 'updateObjective'(_0x1d20da,_0x577464,_0x89de2b=[],_0x549f3e=[]){let _0x181bb2,_0x548ace={};const _0x1183a8={..._0x577464};_0x549f3e&&_0x549f3e['length']>0x0&&(_0x1183a8['removeAttachments']=_0x549f3e);if(_0x89de2b&&_0x89de2b['length']>0x0){const _0x57a81d=new FormData();for(const [_0x4b9932,_0x35f821]of Object['entries'](_0x1183a8)){if(_0x35f821==null)continue;typeof _0x35f821==='object'?_0x57a81d['append'](_0x4b9932,JSON['stringify'](_0x35f821)):_0x57a81d['append'](_0x4b9932,String(_0x35f821));}for(const _0x5b658c of _0x89de2b){_0x57a81d['append']('attachments',_0x5b658c);}_0x181bb2=_0x57a81d;}else _0x548ace['Content-Type']='application/json',_0x181bb2=JSON['stringify'](_0x1183a8);const _0x503e83=await fetch(API_BASE+'/tasks/'+_0x1d20da,{'method':'PATCH','headers':_0x548ace,'body':_0x181bb2});if(!_0x503e83['ok']){const _0x3a2e4e=await _0x503e83['json']();throw new Error(_0x3a2e4e['error']||'Failed\x20to\x20update\x20objective');}return await _0x503e83['json']();},async 'deleteObjective'(_0xa0789f){return this['deleteTask'](_0xa0789f);},async 'launchObjective'(_0x1f8f12,_0x603e97={}){const _0x316ec5=await fetch(API_BASE+'/tasks/'+_0x1f8f12+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x603e97)});if(!_0x316ec5['ok']){const _0x540c5a=await _0x316ec5['json']();throw new Error(_0x540c5a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x316ec5['json']();},async 'getObjectiveAttachments'(_0x118371){return this['getTaskAttachments'](_0x118371);},async 'createJudgeTask'({environment:_0x20e579,judgeAgent:_0x15058f,groupId:_0x15e4e3,taskIds:_0x4e3a26,judgeCustomInstructions:_0x2324bf,isPinned:_0x4eb87b}){const _0x559c92=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x20e579,'judgeAgent':_0x15058f,'groupId':_0x15e4e3,'taskIds':_0x4e3a26,'judgeCustomInstructions':_0x2324bf,'isPinned':_0x4eb87b})});if(!_0x559c92['ok']){const _0x20671f=await _0x559c92['json']();throw new Error(_0x20671f['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x559c92['json']();},async 'getJudgeTasks'(_0x30acac){const _0x39c545=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x30acac));if(!_0x39c545['ok']){const _0x1ed5db=await _0x39c545['json']();throw new Error(_0x1ed5db['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39c545['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4c6a6b,_0x29c4fd,_0x443a7a=''){const _0x25c61f=await fetch(API_BASE+'/tasks/'+_0x4c6a6b+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x29c4fd,'customPreamble':_0x443a7a})});if(!_0x25c61f['ok']){const _0x1b2d46=await _0x25c61f['json']();throw new Error(_0x1b2d46['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x25c61f['json']();},async 'getJiraConfig'(){const _0x37b20d=await fetch(API_BASE+'/jira/config');if(!_0x37b20d['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x37b20d['json']();},async 'getJiraIssue'(_0x113124){const _0xc8d72c=await fetch(API_BASE+'/jira/issues/'+_0x113124);if(!_0xc8d72c['ok']){const _0x5a3e3c=await _0xc8d72c['json']()['catch'](()=>({}));throw new Error(_0x5a3e3c['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0xc8d72c['statusText']);}return await _0xc8d72c['json']();},async 'searchJiraIssues'(_0x4f16da,_0x46d5ae=0x14){const _0x598a72=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4f16da,'maxResults':_0x46d5ae})});if(!_0x598a72['ok']){const _0x55f00f=await _0x598a72['json']()['catch'](()=>({}));throw new Error(_0x55f00f['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x598a72['statusText']);}return await _0x598a72['json']();},async 'postJiraComment'(_0xdc6282,_0x10009f){const _0x305394=await fetch(API_BASE+'/jira/issues/'+_0xdc6282+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x10009f})});if(!_0x305394['ok']){const _0x1572d8=await _0x305394['json']()['catch'](()=>({}));throw new Error(_0x1572d8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x305394['statusText']);}return await _0x305394['json']();},async 'getJiraComments'(_0x2424ec){const _0x153cf3=await fetch(API_BASE+'/jira/issues/'+_0x2424ec+'/comments');if(!_0x153cf3['ok']){const _0x343525=await _0x153cf3['json']()['catch'](()=>({}));throw new Error(_0x343525['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x153cf3['statusText']);}return await _0x153cf3['json']();},async 'promptParameter'({environment:_0x42303e,command:_0x51c6a2,parser:parser='json'}){const _0x572256=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x42303e,'command':_0x51c6a2,'parser':parser})});if(!_0x572256['ok']){const _0x2804db=await _0x572256['json']()['catch'](()=>({}));throw new Error(_0x2804db['message']||_0x2804db['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x572256['statusText']);}return await _0x572256['json']();},async 'promptParameterStream'(_0x558e39,_0x8b7ba2){const _0x2efc36=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558e39)});if(!_0x2efc36['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x2efc36['statusText']);const _0x13d8de=_0x2efc36['body']['getReader'](),_0x340f12=new TextDecoder();let _0x227185='';return new Promise((_0x756eda,_0x6a40ca)=>{const _0x4ac77e=async()=>{try{const {done:_0x2ccec2,value:_0x2baca5}=await _0x13d8de['read']();if(_0x2ccec2)return;_0x227185+=_0x340f12['decode'](_0x2baca5,{'stream':!![]});const _0x4308f7=_0x227185['split']('\x0a\x0a');_0x227185=_0x4308f7['pop']()||'';for(const _0x420d29 of _0x4308f7){if(!_0x420d29['trim']())continue;const _0x128e64=_0x420d29['split']('\x0a');let _0x20a200='message',_0x26cbfa='';for(const _0x241392 of _0x128e64){if(_0x241392['startsWith']('event:'))_0x20a200=_0x241392['substring'](0x6)['trim']();else _0x241392['startsWith']('data:')&&(_0x26cbfa=_0x241392['substring'](0x5)['trim']());}if(!_0x26cbfa)continue;try{const _0x2e04e3=JSON['parse'](_0x26cbfa);if(_0x20a200==='progress'&&_0x8b7ba2)_0x8b7ba2(_0x2e04e3['stage'],_0x2e04e3['message']);else{if(_0x20a200==='result'){_0x756eda(_0x2e04e3);return;}else{if(_0x20a200==='error'){let _0x1db43f=_0x2e04e3['message']||_0x2e04e3['error']||'Prompt\x20command\x20failed';_0x2e04e3['rawOutput']&&(_0x1db43f+='\x0a\x0aRaw\x20output:\x0a'+_0x2e04e3['rawOutput']);_0x6a40ca(new Error(_0x1db43f));return;}}}}catch(_0x283dab){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x283dab),console['error']('Event\x20type:',_0x20a200),console['error']('Event\x20data:',_0x26cbfa),console['error']('First\x20200\x20chars:',_0x26cbfa['substring'](0x0,0xc8)),_0x6a40ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x283dab['message']+'\x0a\x0aData:\x20'+_0x26cbfa['substring'](0x0,0x1f4)));return;}}_0x4ac77e();}catch(_0x26abd9){_0x6a40ca(_0x26abd9);}};_0x4ac77e();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3e652d){const _0x384fab=await fetch(''+API_BASE+_0x3e652d);if(!_0x384fab['ok']){const _0x2380a6=await _0x384fab['json']()['catch'](()=>({'error':_0x384fab['statusText']})),_0xffcad4=new Error(_0x2380a6['error']||_0x2380a6['message']||_0x384fab['statusText']);if(_0x2380a6['detail']!==undefined)_0xffcad4['detail']=_0x2380a6['detail'];throw _0xffcad4;}return await _0x384fab['json']();},async 'post'(_0xaf8132,_0x4308da){const _0x3a93d3=await fetch(''+API_BASE+_0xaf8132,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4308da)});if(!_0x3a93d3['ok']){const _0x6b4744=await _0x3a93d3['json']()['catch'](()=>({'error':_0x3a93d3['statusText']})),_0x11e28d=new Error(_0x6b4744['error']||_0x6b4744['message']||_0x3a93d3['statusText']);if(_0x6b4744['detail']!==undefined)_0x11e28d['detail']=_0x6b4744['detail'];throw _0x11e28d;}return await _0x3a93d3['json']();},async 'put'(_0x2e5fe6,_0x239cc6){const _0x575730=await fetch(''+API_BASE+_0x2e5fe6,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239cc6)});if(!_0x575730['ok']){const _0x1c9477=await _0x575730['json']()['catch'](()=>({'error':_0x575730['statusText']})),_0x23aab0=new Error(_0x1c9477['error']||_0x1c9477['message']||_0x575730['statusText']);if(_0x1c9477['detail']!==undefined)_0x23aab0['detail']=_0x1c9477['detail'];throw _0x23aab0;}return await _0x575730['json']();},async 'delete'(_0x50ccbb,_0x4051e2){const _0x3d3b1b={'method':'DELETE'};_0x4051e2&&(_0x3d3b1b['headers']={'Content-Type':'application/json'},_0x3d3b1b['body']=JSON['stringify'](_0x4051e2));const _0x342548=await fetch(''+API_BASE+_0x50ccbb,_0x3d3b1b);if(!_0x342548['ok']){const _0x5214fd=await _0x342548['json']()['catch'](()=>({'error':_0x342548['statusText']})),_0x24b2c0=new Error(_0x5214fd['error']||_0x5214fd['message']||_0x342548['statusText']);if(_0x5214fd['detail']!==undefined)_0x24b2c0['detail']=_0x5214fd['detail'];throw _0x24b2c0;}return await _0x342548['json']();},async 'getSkills'(){const _0x31c7cd=await fetch(API_BASE+'/skills');if(!_0x31c7cd['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x31c7cd['statusText']);return await _0x31c7cd['json']();},async 'getSkill'(_0x49eb5f){const _0x55e637=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49eb5f));if(!_0x55e637['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x55e637['statusText']);return await _0x55e637['json']();},async 'createSkill'(_0x415a91){const _0x244ddb=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x415a91)});if(!_0x244ddb['ok']){const _0x56fd74=await _0x244ddb['json']()['catch'](()=>({'error':_0x244ddb['statusText']})),_0x25a024=new Error(_0x56fd74['error']||_0x56fd74['message']||_0x244ddb['statusText']);if(_0x56fd74['detail']!==undefined)_0x25a024['detail']=_0x56fd74['detail'];throw _0x25a024;}return await _0x244ddb['json']();},async 'updateSkill'(_0x14bf1e,_0x1b96ed){const _0xf09a79=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x14bf1e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b96ed)});if(!_0xf09a79['ok']){const _0x31e849=await _0xf09a79['json']()['catch'](()=>({'error':_0xf09a79['statusText']})),_0x377cda=new Error(_0x31e849['error']||_0x31e849['message']||_0xf09a79['statusText']);if(_0x31e849['detail']!==undefined)_0x377cda['detail']=_0x31e849['detail'];throw _0x377cda;}return await _0xf09a79['json']();},async 'deleteSkill'(_0x2ce235){const _0x4bce38=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ce235),{'method':'DELETE'});if(!_0x4bce38['ok']){const _0x3f39fb=await _0x4bce38['json']()['catch'](()=>({'error':_0x4bce38['statusText']})),_0x51ba36=new Error(_0x3f39fb['error']||_0x3f39fb['message']||_0x4bce38['statusText']);if(_0x3f39fb['detail']!==undefined)_0x51ba36['detail']=_0x3f39fb['detail'];throw _0x51ba36;}return await _0x4bce38['json']();},async 'getSkillFile'(_0x3e4b75,_0x368590){const _0xa07a9d=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3e4b75)+'/files/'+_0x368590);if(!_0xa07a9d['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xa07a9d['statusText']);return await _0xa07a9d['json']();},async 'saveSkillFile'(_0x577070,_0x4e95cd,_0x19f7cc){const _0x596f6a=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x577070)+'/files/'+_0x4e95cd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x19f7cc})});if(!_0x596f6a['ok']){const _0xed9c18=await _0x596f6a['json']()['catch'](()=>({'error':_0x596f6a['statusText']})),_0x22de43=new Error(_0xed9c18['error']||_0xed9c18['message']||_0x596f6a['statusText']);if(_0xed9c18['detail']!==undefined)_0x22de43['detail']=_0xed9c18['detail'];throw _0x22de43;}return await _0x596f6a['json']();},async 'deleteSkillFile'(_0x26539c,_0x5e2d6b){const _0xe4f4e9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x26539c)+'/files/'+_0x5e2d6b,{'method':'DELETE'});if(!_0xe4f4e9['ok']){const _0x3d1dff=await _0xe4f4e9['json']()['catch'](()=>({'error':_0xe4f4e9['statusText']})),_0x3d51e9=new Error(_0x3d1dff['error']||_0x3d1dff['message']||_0xe4f4e9['statusText']);if(_0x3d1dff['detail']!==undefined)_0x3d51e9['detail']=_0x3d1dff['detail'];throw _0x3d51e9;}return await _0xe4f4e9['json']();},async 'pullSkills'(){const _0x200a7c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x200a7c['ok']){const _0x3c04c5=await _0x200a7c['json']()['catch'](()=>({'error':_0x200a7c['statusText']})),_0x13ad7b=new Error(_0x3c04c5['error']||_0x3c04c5['message']||_0x200a7c['statusText']);if(_0x3c04c5['detail']!==undefined)_0x13ad7b['detail']=_0x3c04c5['detail'];throw _0x13ad7b;}return await _0x200a7c['json']();},async 'commitSkills'(_0x5d1764,_0x28b744={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x28b744,_0x9a229b=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x5d1764,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x9a229b['ok']){const _0x4974b7=await _0x9a229b['json']()['catch'](()=>({'error':_0x9a229b['statusText']})),_0x1ea460=new Error(_0x4974b7['error']||_0x4974b7['message']||_0x9a229b['statusText']);if(_0x4974b7['detail']!==undefined)_0x1ea460['detail']=_0x4974b7['detail'];throw _0x1ea460;}return await _0x9a229b['json']();},async 'discardSkillsChanges'(){const _0x1bc21b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1bc21b['ok']){const _0x3a15d8=await _0x1bc21b['json']()['catch'](()=>({'error':_0x1bc21b['statusText']})),_0x4a6b7d=new Error(_0x3a15d8['error']||_0x3a15d8['message']||_0x1bc21b['statusText']);if(_0x3a15d8['detail']!==undefined)_0x4a6b7d['detail']=_0x3a15d8['detail'];throw _0x4a6b7d;}return await _0x1bc21b['json']();},async 'getSkillCatalog'(){const _0x47722e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x47722e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x47722e['statusText']);return await _0x47722e['json']();},async 'getImportedSkillsRegistry'(){const _0x65633e=await fetch(API_BASE+'/external-skills/registry');if(!_0x65633e['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x65633e['statusText']);return await _0x65633e['json']();},async 'importCatalogSkill'(_0x56805f){const _0x319afc=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x56805f})});if(!_0x319afc['ok']){const _0x385faa=await _0x319afc['json']()['catch'](()=>({'error':_0x319afc['statusText']})),_0x24ceee=new Error(_0x385faa['error']||_0x385faa['message']||_0x319afc['statusText']);if(_0x385faa['detail']!==undefined)_0x24ceee['detail']=_0x385faa['detail'];throw _0x24ceee;}return await _0x319afc['json']();},async 'importSkillFromGit'(_0x590d0a,_0x48a982,_0x39fa69='main',_0x3f6fb2=null){const _0x114c8e=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x590d0a,'skillPath':_0x48a982,'branch':_0x39fa69,'skillId':_0x3f6fb2})});if(!_0x114c8e['ok']){const _0x398fd=await _0x114c8e['json']()['catch'](()=>({'error':_0x114c8e['statusText']})),_0x3fdc3d=new Error(_0x398fd['error']||_0x398fd['message']||_0x114c8e['statusText']);if(_0x398fd['detail']!==undefined)_0x3fdc3d['detail']=_0x398fd['detail'];throw _0x3fdc3d;}return await _0x114c8e['json']();},async 'probeMarketplace'(_0x566352,_0x28d9ee='main'){const _0x10d082=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x566352,'branch':_0x28d9ee})});if(!_0x10d082['ok']){const _0x12d5f1=await _0x10d082['json']()['catch'](()=>({'error':_0x10d082['statusText']})),_0x1fd582=new Error(_0x12d5f1['error']||_0x12d5f1['message']||_0x10d082['statusText']);if(_0x12d5f1['detail']!==undefined)_0x1fd582['detail']=_0x12d5f1['detail'];throw _0x1fd582;}return await _0x10d082['json']();},async 'importMarketplaceBundle'(_0x4f5d05,_0xfcdd63,_0x5323c6,_0x5b575c=null){const _0x7325a6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f5d05,'branch':_0xfcdd63,'bundleId':_0x5323c6,'selectedSkills':_0x5b575c})});if(!_0x7325a6['ok']){const _0x54878b=await _0x7325a6['json']()['catch'](()=>({'error':_0x7325a6['statusText']})),_0x409798=new Error(_0x54878b['error']||_0x54878b['message']||_0x7325a6['statusText']);if(_0x54878b['detail']!==undefined)_0x409798['detail']=_0x54878b['detail'];throw _0x409798;}return await _0x7325a6['json']();},async 'importSkillFromFolder'(_0x4d827f,_0x32e2c9=null){const _0x3c21c1=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4d827f,'skillId':_0x32e2c9})});if(!_0x3c21c1['ok']){const _0x3502cc=await _0x3c21c1['json']()['catch'](()=>({'error':_0x3c21c1['statusText']})),_0x313346=new Error(_0x3502cc['error']||_0x3502cc['message']||_0x3c21c1['statusText']);if(_0x3502cc['detail']!==undefined)_0x313346['detail']=_0x3502cc['detail'];throw _0x313346;}return await _0x3c21c1['json']();},async 'importSkillFromNpm'(_0x4f1218,_0x4dde69='latest',_0x41e664=null,_0x84b2e7=null){const _0x44f74e=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x4f1218,'version':_0x4dde69,'skillId':_0x41e664,'registry':_0x84b2e7})});if(!_0x44f74e['ok']){const _0x4ee51f=await _0x44f74e['json']()['catch'](()=>({'error':_0x44f74e['statusText']})),_0x6aa5c6=new Error(_0x4ee51f['error']||_0x4ee51f['message']||_0x44f74e['statusText']);if(_0x4ee51f['detail']!==undefined)_0x6aa5c6['detail']=_0x4ee51f['detail'];throw _0x6aa5c6;}return await _0x44f74e['json']();},async 'checkSkillUpdates'(_0x395c7c){const _0x485184=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x395c7c)+'/check-updates',{'method':'POST'});if(!_0x485184['ok']){const _0x144807=await _0x485184['json']()['catch'](()=>({'error':_0x485184['statusText']})),_0x420bed=new Error(_0x144807['error']||_0x144807['message']||_0x485184['statusText']);if(_0x144807['detail']!==undefined)_0x420bed['detail']=_0x144807['detail'];throw _0x420bed;}return await _0x485184['json']();},async 'updateExternalSkill'(_0x256368){const _0x1a6a22=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x256368)+'/update',{'method':'POST'});if(!_0x1a6a22['ok']){const _0x552bc4=await _0x1a6a22['json']()['catch'](()=>({'error':_0x1a6a22['statusText']})),_0x4960f8=new Error(_0x552bc4['error']||_0x552bc4['message']||_0x1a6a22['statusText']);if(_0x552bc4['detail']!==undefined)_0x4960f8['detail']=_0x552bc4['detail'];throw _0x4960f8;}return await _0x1a6a22['json']();},async 'updateSkillFlags'(_0x26ae6a,_0x256bf9){const _0x55d61b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x26ae6a)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x256bf9})});if(!_0x55d61b['ok']){const _0x2ce8c1=await _0x55d61b['json']()['catch'](()=>({'error':_0x55d61b['statusText']})),_0x5eb6f2=new Error(_0x2ce8c1['error']||_0x2ce8c1['message']||_0x55d61b['statusText']);if(_0x2ce8c1['detail']!==undefined)_0x5eb6f2['detail']=_0x2ce8c1['detail'];throw _0x5eb6f2;}return await _0x55d61b['json']();},async 'removeFromImportedRegistry'(_0x486683){const _0x281773=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x486683)+'/registry',{'method':'DELETE'});if(!_0x281773['ok']){const _0x590f75=await _0x281773['json']()['catch'](()=>({'error':_0x281773['statusText']})),_0x2e6d3d=new Error(_0x590f75['error']||_0x590f75['message']||_0x281773['statusText']);if(_0x590f75['detail']!==undefined)_0x2e6d3d['detail']=_0x590f75['detail'];throw _0x2e6d3d;}return await _0x281773['json']();},async 'getTeams'(){const _0x569bd8=await fetch(API_BASE+'/teams');if(!_0x569bd8['ok']){const _0x37e714=await _0x569bd8['json']()['catch'](()=>({'message':_0x569bd8['statusText']}));throw new Error(_0x37e714['message']||'Failed\x20to\x20get\x20teams');}return await _0x569bd8['json']();},async 'getTeam'(_0x372614){const _0x3773d4=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x372614));if(!_0x3773d4['ok']){const _0x6df004=await _0x3773d4['json']()['catch'](()=>({'message':_0x3773d4['statusText']}));throw new Error(_0x6df004['message']||'Failed\x20to\x20get\x20team');}return await _0x3773d4['json']();},async 'createTeam'(_0x527de8){const _0x55608b=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x527de8)});if(!_0x55608b['ok']){const _0xce21fc=await _0x55608b['json']()['catch'](()=>({'message':_0x55608b['statusText']}));throw new Error(_0xce21fc['message']||'Failed\x20to\x20create\x20team');}return await _0x55608b['json']();},async 'updateTeam'(_0x1aeb6c,_0x332458){const _0x425dce=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1aeb6c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x332458)});if(!_0x425dce['ok']){const _0x5f046c=await _0x425dce['json']()['catch'](()=>({'message':_0x425dce['statusText']}));throw new Error(_0x5f046c['message']||'Failed\x20to\x20update\x20team');}return await _0x425dce['json']();},async 'deleteTeam'(_0x125e88){const _0x59db85=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x125e88),{'method':'DELETE'});if(!_0x59db85['ok']){const _0x2f6d20=await _0x59db85['json']()['catch'](()=>({'message':_0x59db85['statusText']}));throw new Error(_0x2f6d20['message']||'Failed\x20to\x20delete\x20team');}return await _0x59db85['json']();},async 'addTeamMember'(_0x173f8a,_0x5bfe61){const _0x20017e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x173f8a)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5bfe61})});if(!_0x20017e['ok']){const _0x4f091d=await _0x20017e['json']()['catch'](()=>({'message':_0x20017e['statusText']}));throw new Error(_0x4f091d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x20017e['json']();},async 'removeTeamMember'(_0x116e2c,_0x1bd98c){const _0x3af8e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x116e2c)+'/members/'+encodeURIComponent(_0x1bd98c),{'method':'DELETE'});if(!_0x3af8e8['ok']){const _0x180bfb=await _0x3af8e8['json']()['catch'](()=>({'message':_0x3af8e8['statusText']}));throw new Error(_0x180bfb['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x3af8e8['json']();},async 'getBindings'(_0x52c738={}){const _0x5310ec=new URLSearchParams();if(_0x52c738['resource_type'])_0x5310ec['set']('resource_type',_0x52c738['resource_type']);if(_0x52c738['resource_id'])_0x5310ec['set']('resource_id',_0x52c738['resource_id']);if(_0x52c738['subject_type'])_0x5310ec['set']('subject_type',_0x52c738['subject_type']);if(_0x52c738['subject_id'])_0x5310ec['set']('subject_id',_0x52c738['subject_id']);const _0x385a52=_0x5310ec['toString'](),_0x2d6274=await fetch(API_BASE+'/bindings'+(_0x385a52?'?'+_0x385a52:''));if(!_0x2d6274['ok']){const _0x5edfcb=await _0x2d6274['json']()['catch'](()=>({'message':_0x2d6274['statusText']}));throw new Error(_0x5edfcb['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2d6274['json']();},async 'createBinding'(_0x826fa0){const _0x4fed28=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x826fa0)});if(!_0x4fed28['ok']){const _0x3df509=await _0x4fed28['json']()['catch'](()=>({'message':_0x4fed28['statusText']}));throw new Error(_0x3df509['message']||'Failed\x20to\x20create\x20binding');}return await _0x4fed28['json']();},async 'updateBinding'(_0x2fa754,_0x35a649){const _0xcb4f79=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2fa754),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35a649)});if(!_0xcb4f79['ok']){const _0x48bc0d=await _0xcb4f79['json']()['catch'](()=>({'message':_0xcb4f79['statusText']}));throw new Error(_0x48bc0d['message']||'Failed\x20to\x20update\x20binding');}return await _0xcb4f79['json']();},async 'deleteBinding'(_0x4f83dc){const _0x4c2efc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4f83dc),{'method':'DELETE'});if(!_0x4c2efc['ok']){const _0x5d8a2f=await _0x4c2efc['json']()['catch'](()=>({'message':_0x4c2efc['statusText']}));throw new Error(_0x5d8a2f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4c2efc['json']();},async 'getRoleDefinitions'(){const _0x45c2b2=await fetch(API_BASE+'/roles');if(!_0x45c2b2['ok']){const _0x53ed29=await _0x45c2b2['json']()['catch'](()=>({'message':_0x45c2b2['statusText']}));throw new Error(_0x53ed29['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x45c2b2['json']();},async 'getRoleDefinition'(_0x5f2f6e){const _0x60365b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5f2f6e));if(!_0x60365b['ok']){const _0x51fa9c=await _0x60365b['json']()['catch'](()=>({'message':_0x60365b['statusText']}));throw new Error(_0x51fa9c['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x60365b['json']();},async 'createRoleDefinition'(_0x3f46e7){const _0x3bb1ee=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f46e7)});if(!_0x3bb1ee['ok']){const _0x5bbeb6=await _0x3bb1ee['json']()['catch'](()=>({'message':_0x3bb1ee['statusText']}));throw new Error(_0x5bbeb6['message']||_0x5bbeb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3bb1ee['json']();},async 'updateRoleDefinition'(_0x197124,_0x455fea){const _0x54cc45=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x197124),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x455fea)});if(!_0x54cc45['ok']){const _0x38f830=await _0x54cc45['json']()['catch'](()=>({'message':_0x54cc45['statusText']}));throw new Error(_0x38f830['message']||_0x38f830['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x54cc45['json']();},async 'deleteRoleDefinition'(_0x476c26){const _0x31650e=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x476c26),{'method':'DELETE'});if(!_0x31650e['ok']){const _0x21c23f=await _0x31650e['json']()['catch'](()=>({'message':_0x31650e['statusText']}));throw new Error(_0x21c23f['message']||_0x21c23f['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x31650e['json']();},async 'getAvailablePermissions'(){const _0x30d705=await fetch(API_BASE+'/roles/available-permissions');if(!_0x30d705['ok']){const _0x70fb18=await _0x30d705['json']()['catch'](()=>({'message':_0x30d705['statusText']}));throw new Error(_0x70fb18['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x30d705['json']();},async 'getGitProviderAllowedTeams'(_0x3d1f4b){const _0x372000=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3d1f4b)+'/allowed-teams');if(!_0x372000['ok']){const _0x4a17ef=await _0x372000['json']()['catch'](()=>({'message':_0x372000['statusText']}));throw new Error(_0x4a17ef['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x372000['json']();},async 'setGitProviderAllowedTeams'(_0x3b718b,_0x65876f){const _0x30d766=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3b718b)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x65876f})});if(!_0x30d766['ok']){const _0x1dfd35=await _0x30d766['json']()['catch'](()=>({'message':_0x30d766['statusText']}));throw new Error(_0x1dfd35['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x30d766['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x41a54f=toastState['baseBottom'];toastState['toasts']['forEach'](_0x4f6049=>{_0x4f6049['el']['style']['bottom']=_0x41a54f+'px';const _0x2842ec=_0x4f6049['el']['offsetHeight']||toastState['defaultHeight'];_0x41a54f+=_0x2842ec+toastState['gap'];});});}function removeToastById(_0xb6cc44){const _0x3c0e5b=toastState['toasts']['findIndex'](_0x1835c3=>_0x1835c3['id']===_0xb6cc44);if(_0x3c0e5b===-0x1)return;const _0x1f6a79=toastState['toasts'][_0x3c0e5b];if(_0x1f6a79['timeoutId'])clearTimeout(_0x1f6a79['timeoutId']);_0x1f6a79['el']['classList']['remove']('show'),setTimeout(()=>_0x1f6a79['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3c0e5b,0x1),repositionAllToasts();}function registerToast(_0x17eba2){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x17eba2),repositionAllToasts(),_0x17eba2['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x1c43bb){if(_0x1c43bb===null||_0x1c43bb===undefined)return'';return String(_0x1c43bb)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x59df75,_0x361732){if(_0x59df75&&typeof _0x59df75==='object'&&!Array['isArray'](_0x59df75))return{'code':typeof _0x59df75['text']==='string'?_0x59df75['text']:'','language':typeof _0x59df75['lang']==='string'?_0x59df75['lang']:''};return{'code':typeof _0x59df75==='string'?_0x59df75:'','language':typeof _0x361732==='string'?_0x361732:''};}function buildMermaidBlock(_0x3c8d40){const _0x2094c6=String(_0x3c8d40||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2094c6))+'\x22>'+escapeHtmlValue(_0x2094c6)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1a1bab=new marked['Renderer'](),_0x21a019=_0x1a1bab['code']['bind'](_0x1a1bab);return _0x1a1bab['code']=function(_0x3e2aa2,_0x229cdb,..._0x56fe8a){const {code:_0x288fbe,language:_0x3c0ace}=getMarkdownCodeBlockPayload(_0x3e2aa2,_0x229cdb),_0x5dda8c=String(_0x3c0ace||'')['trim']()['toLowerCase']();if(_0x5dda8c==='mermaid')return buildMermaidBlock(_0x288fbe);const _0x15f7a3=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x15f7a3&&_0x5dda8c)try{const _0x3461b5=_0x15f7a3['getLanguage'](_0x5dda8c)?_0x5dda8c:'plaintext',_0x3d7b93=_0x15f7a3['highlight'](_0x288fbe,{'language':_0x3461b5})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dda8c)+'\x22>'+_0x3d7b93+'</code></pre>';}catch(_0x497f23){console['error']('Syntax\x20highlighting\x20error:',_0x497f23);}return _0x21a019(_0x3e2aa2,_0x229cdb,..._0x56fe8a);},sharedMarkedRenderer=_0x1a1bab,_0x1a1bab;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x351e00=window['mermaid'];if(!_0x351e00||typeof _0x351e00['initialize']!=='function')return _0x351e00||null;return _0x351e00['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x351e00;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1e7d55,_0xf63295)=>{const _0x2d1156=()=>_0x1e7d55(configureMermaidInstance()),_0x35b6dc=()=>{mermaidLoadPromise=null,_0xf63295(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x3064a9=document['getElementById'](MERMAID_SCRIPT_ID);!_0x3064a9&&(_0x3064a9=document['createElement']('script'),_0x3064a9['id']=MERMAID_SCRIPT_ID,_0x3064a9['src']=MERMAID_SCRIPT_SRC,_0x3064a9['async']=!![],document['head']['appendChild'](_0x3064a9));if(window['mermaid']){_0x2d1156();return;}_0x3064a9['addEventListener']('load',_0x2d1156,{'once':!![]}),_0x3064a9['addEventListener']('error',_0x35b6dc,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x17ea46){const _0x3b3843=_0x17ea46['getAttribute']('data-mermaid-source');if(!_0x3b3843)return null;let _0x1d183f=_0x3b3843;try{_0x1d183f=decodeURIComponent(_0x3b3843);}catch{}return _0x17ea46['textContent']=_0x1d183f,_0x17ea46['removeAttribute']('data-processed'),_0x17ea46['removeAttribute']('aria-roledescription'),_0x17ea46['removeAttribute']('role'),_0x17ea46['removeAttribute']('aria-label'),_0x1d183f;}function collectMermaidNodes(_0x32bc3a,_0x3b98bf){if(!(_0x32bc3a instanceof Element))return;_0x32bc3a['matches']('.mermaid[data-mermaid-source]')&&_0x3b98bf['add'](_0x32bc3a),_0x32bc3a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3704a7=>{_0x3b98bf['add'](_0x3704a7);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x210577=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xb87dd0=>setTimeout(_0xb87dd0,0x0);_0x210577(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1827ca=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1827ca);});});}function queueMermaidRender(_0x3d3581){const _0xec21a3=new Set();_0x3d3581 instanceof Document||_0x3d3581 instanceof DocumentFragment?_0x3d3581['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xfc4ff=>_0xec21a3['add'](_0xfc4ff)):collectMermaidNodes(_0x3d3581,_0xec21a3);if(_0xec21a3['size']===0x0)return;_0xec21a3['forEach'](_0x4bf564=>pendingMermaidNodes['add'](_0x4bf564)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x4e98b9=Array['from'](pendingMermaidNodes)['filter'](_0x22c3ef=>_0x22c3ef['isConnected']);pendingMermaidNodes['clear']();if(_0x4e98b9['length']===0x0)return;const _0x3428dc=await loadMermaid();if(!_0x3428dc)return;configureMermaidInstance();const _0x339d3e=getMermaidTheme();for(const _0x418cdc of _0x4e98b9){const _0x663a35=_0x418cdc['getAttribute']('data-mermaid-source');if(!_0x663a35)continue;const _0x260c5d=_0x418cdc['getAttribute']('data-processed')==='true';if(_0x260c5d&&_0x418cdc['dataset']['mermaidTheme']===_0x339d3e)continue;restoreMermaidSource(_0x418cdc);try{if(typeof _0x3428dc['run']==='function')await _0x3428dc['run']({'nodes':[_0x418cdc]});else typeof _0x3428dc['init']==='function'&&_0x3428dc['init'](undefined,[_0x418cdc]);_0x418cdc['dataset']['mermaidTheme']=_0x339d3e,delete _0x418cdc['dataset']['mermaidError'];}catch(_0x4062f5){console['error']('Mermaid\x20render\x20failed:',_0x4062f5),restoreMermaidSource(_0x418cdc),_0x418cdc['dataset']['mermaidError']='true',delete _0x418cdc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5d2670=>{_0x5d2670['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5d2670);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x554fe3=>{_0x554fe3['forEach'](_0x2911db=>{_0x2911db['addedNodes']['forEach'](_0x3f5697=>{_0x3f5697['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3f5697);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x551a7f){const _0x28016f=new Date(_0x551a7f),_0x172c99=new Date(),_0x5ea65f=_0x172c99-_0x28016f,_0x2acc42=Math['floor'](_0x5ea65f/0x3e8),_0x2cc7d9=Math['floor'](_0x2acc42/0x3c),_0x3208a6=Math['floor'](_0x2cc7d9/0x3c),_0x303aaf=Math['floor'](_0x3208a6/0x18);if(_0x2acc42<0x3c)return'now';if(_0x2cc7d9<0x3c)return _0x2cc7d9+'m\x20ago';if(_0x3208a6<0x18)return _0x3208a6+'h\x20ago';return _0x303aaf+'d\x20ago';},'getStatusIcon'(_0x48ee09){switch(_0x48ee09){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1d506d){switch(_0x1d506d){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x18bb31,_0x287000=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x1c68ae={};_0x1c68ae['text/plain']=new Blob([_0x18bb31],{'type':'text/plain'});_0x287000&&(_0x1c68ae['text/html']=new Blob([_0x287000],{'type':'text/html'}));const _0x26aef9=new ClipboardItem(_0x1c68ae);return await navigator['clipboard']['write']([_0x26aef9]),!![];}catch(_0x1b21ef){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x1b21ef);}try{const _0x14f0a3=_0xdf898c=>{_0xdf898c['preventDefault'](),_0xdf898c['clipboardData']['setData']('text/plain',_0x18bb31),_0x287000&&_0xdf898c['clipboardData']['setData']('text/html',_0x287000);};document['addEventListener']('copy',_0x14f0a3);const _0x1ae596=document['execCommand']('copy');document['removeEventListener']('copy',_0x14f0a3);if(_0x1ae596)return!![];}catch(_0x96a24){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x96a24);}try{const _0x19ba72=document['createElement']('textarea');_0x19ba72['value']=_0x18bb31,_0x19ba72['style']['position']='fixed',_0x19ba72['style']['opacity']='0',_0x19ba72['style']['pointerEvents']='none',document['body']['appendChild'](_0x19ba72),_0x19ba72['select']();const _0x3eca1c=document['execCommand']('copy');return document['body']['removeChild'](_0x19ba72),_0x3eca1c;}catch(_0x49b70a){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x49b70a),![];}},'showToast'(_0x179eec,_0x88fcdb='info'){const _0x1905dd=getNextToastId(),_0x5d10fd=document['createElement']('div');_0x5d10fd['className']='toast\x20toast-'+_0x88fcdb,_0x5d10fd['textContent']=_0x179eec,_0x5d10fd['dataset']['toastId']=_0x1905dd,document['body']['appendChild'](_0x5d10fd);const _0x490704=_0x88fcdb==='error'?0x2710:0xbb8,_0x4645c0=setTimeout(()=>{removeToastById(_0x1905dd);},_0x490704),_0x590e35={'id':_0x1905dd,'el':_0x5d10fd,'timeoutId':_0x4645c0};return registerToast(_0x590e35),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5d10fd['classList']['add']('show');});}),_0x1905dd;},'showError'(_0x12da99){console['error'](_0x12da99);const _0x2c1e71=typeof _0x12da99==='string'?_0x12da99:_0x12da99['message']||'An\x20error\x20occurred';this['showToast'](_0x2c1e71,'error');},'showSuccess'(_0x3690c4){this['showToast'](_0x3690c4,'success');},'capitalize'(_0x221af9){if(!_0x221af9)return'';return _0x221af9['charAt'](0x0)['toUpperCase']()+_0x221af9['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3ca005){return escapeHtmlValue(_0x3ca005);},'ansiToHtml'(_0x10094f){if(_0x10094f===null||_0x10094f===undefined)return'';let _0x43a2d8=this['escapeHtml'](_0x10094f);const _0x1c267d={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2c3d3e={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x1f27c9=0x0;return _0x43a2d8=_0x43a2d8['replace'](/\x1b\[([0-9;]*)m/g,(_0x47f662,_0x27a6e9)=>{if(!_0x27a6e9||_0x27a6e9==='0'){const _0x15b7da='</span>'['repeat'](_0x1f27c9);return _0x1f27c9=0x0,_0x15b7da;}const _0x559be9=_0x27a6e9['split'](';'),_0x39e261=[];for(const _0x45dfc0 of _0x559be9){if(_0x45dfc0==='1')_0x39e261['push']('font-weight:bold');else{if(_0x45dfc0==='2')_0x39e261['push']('opacity:0.7');else{if(_0x45dfc0==='3')_0x39e261['push']('font-style:italic');else{if(_0x45dfc0==='4')_0x39e261['push']('text-decoration:underline');else{if(_0x45dfc0==='9')_0x39e261['push']('text-decoration:line-through');else{if(_0x1c267d[_0x45dfc0])_0x39e261['push']('color:'+_0x1c267d[_0x45dfc0]);else{if(_0x2c3d3e[_0x45dfc0])_0x39e261['push']('background-color:'+_0x2c3d3e[_0x45dfc0]);}}}}}}}if(_0x39e261['length']>0x0)return _0x1f27c9++,'<span\x20style=\x22'+_0x39e261['join'](';')+'\x22>';return'';}),_0x43a2d8+='</span>'['repeat'](_0x1f27c9),_0x43a2d8=_0x43a2d8['replace'](/\\u001b\[([0-9;]*)m/g,(_0x453a9f,_0x4fb797)=>{if(!_0x4fb797||_0x4fb797==='0')return'';const _0x31f8be=_0x4fb797['split'](';'),_0x19737a=[];for(const _0x394e4c of _0x31f8be){if(_0x394e4c==='1')_0x19737a['push']('font-weight:bold');else{if(_0x1c267d[_0x394e4c])_0x19737a['push']('color:'+_0x1c267d[_0x394e4c]);else{if(_0x2c3d3e[_0x394e4c])_0x19737a['push']('background-color:'+_0x2c3d3e[_0x394e4c]);}}}if(_0x19737a['length']>0x0)return'<span\x20style=\x22'+_0x19737a['join'](';')+'\x22>';return'';}),_0x43a2d8;},'showModal'({title:_0x205aa4,content:_0x198bcd,buttons:buttons=[]}){const _0x542e07='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x205aa4)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x198bcd+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x5a7b82,_0x3b078e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x5a7b82['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3b078e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x5a7b82['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x259342=document['createElement']('div');_0x259342['id']='utils-modal',_0x259342['className']='modal',_0x259342['innerHTML']=_0x542e07,document['body']['appendChild'](_0x259342);const _0x252dcd=document['getElementById']('utils-modal-close');_0x252dcd&&_0x252dcd['addEventListener']('click',()=>this['hideModal']());const _0xf0d880=_0x259342['querySelectorAll']('[data-btn-index]');_0xf0d880['forEach'](_0x57be92=>{const _0x274d69=parseInt(_0x57be92['dataset']['btnIndex']);buttons[_0x274d69]?.['onClick']&&_0x57be92['addEventListener']('click',buttons[_0x274d69]['onClick']);});const _0x556eeb=document['getElementById']('utils-modal-overlay');_0x556eeb&&_0x556eeb['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x40007e=document['getElementById']('utils-modal');_0x40007e&&_0x40007e['remove']();},'parseKeyValuePairs'(_0x42ec47){const _0x4ce900={};if(!_0x42ec47)return _0x4ce900;return _0x42ec47['split'](/\r?\n/)['map'](_0x2c0150=>_0x2c0150['trim']())['filter'](Boolean)['forEach'](_0xef59fc=>{const _0x56aa0b=_0xef59fc['indexOf']('=');if(_0x56aa0b>0x0){const _0x4073c6=_0xef59fc['slice'](0x0,_0x56aa0b)['trim'](),_0xac2162=_0xef59fc['slice'](_0x56aa0b+0x1)['trim']();if(_0x4073c6)_0x4ce900[_0x4073c6]=_0xac2162;}}),_0x4ce900;},'debounce'(_0x180351,_0x975276=0xfa){let _0x4f1371=null;return(..._0x187e98)=>{clearTimeout(_0x4f1371),_0x4f1371=setTimeout(()=>_0x180351['apply'](this,_0x187e98),_0x975276);};},'formatTimestamp'(_0x1ca4a1){if(!_0x1ca4a1)return'N/A';const _0x1d238d=new Date(_0x1ca4a1);return _0x1d238d['toLocaleDateString']()+'\x20'+_0x1d238d['toLocaleTimeString']();},'getQueryParams'(){const _0x5ef3fa=new URLSearchParams(window['location']['search']),_0xf0ba24={};for(const [_0x319097,_0xae80a7]of _0x5ef3fa){_0xf0ba24[_0x319097]=_0xae80a7;}return _0xf0ba24;},'formatDuration'(_0x10ba81,_0x378176){if(!_0x10ba81)return'N/A';const _0xe7f9ed=new Date(_0x10ba81),_0x28dcd3=_0x378176?new Date(_0x378176):new Date(),_0x2bfbc6=_0x28dcd3-_0xe7f9ed;if(_0x2bfbc6<0x0)return'0s';const _0x56903f=Math['floor'](_0x2bfbc6/0x3e8),_0x331624=Math['floor'](_0x56903f/0x3c),_0x2910b9=Math['floor'](_0x331624/0x3c),_0x1775e2=Math['floor'](_0x2910b9/0x18);if(_0x56903f<0x3c)return _0x56903f+'s';if(_0x331624<0x3c)return _0x331624+'m\x20'+_0x56903f%0x3c+'s';if(_0x2910b9<0x18)return _0x2910b9+'h\x20'+_0x331624%0x3c+'m\x20'+_0x56903f%0x3c+'s';return _0x1775e2+'d\x20'+_0x2910b9%0x18+'h\x20'+_0x331624%0x3c+'m';},'renderMarkdown'(_0x52c577,_0x2b3858={}){if(!_0x52c577)return'';_0x52c577=this['rewriteAttachmentLinks'](_0x52c577,_0x2b3858),_0x52c577=this['rewriteColorSyntax'](_0x52c577);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x52c577);}catch(_0x82ddd9){return console['error']('Markdown\x20parsing\x20error:',_0x82ddd9),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);}},'rewriteAttachmentLinks'(_0x2e860d,_0x529353={}){const _0x2d523a=typeof _0x529353['resolveAttachmentUrl']==='function'?_0x529353['resolveAttachmentUrl']:_0x529353['taskId']?_0x4b513c=>API_BASE+'/tasks/'+_0x529353['taskId']+'/attachments/'+encodeURIComponent(_0x4b513c):null;if(!_0x2d523a)return _0x2e860d;return String(_0x2e860d)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x2cd23d,_0x2f94da)=>{const _0x67ce56=String(_0x2f94da||'')['trim']();if(!_0x67ce56)return _0x2cd23d;let _0x454627=_0x67ce56;try{_0x454627=decodeURIComponent(_0x67ce56);}catch{}const _0x3c96ea=_0x2d523a(_0x454627);if(!_0x3c96ea)return _0x2cd23d;return']('+_0x3c96ea+')';});},'rewriteColorSyntax'(_0x50daef){if(!_0x50daef)return _0x50daef;return String(_0x50daef)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x329a26,_0x453618,_0x454585)=>{const _0x41c7db=this['rewriteColorSyntax'](_0x454585);return'<span\x20style=\x22color:\x20'+_0x453618+'\x22>'+_0x41c7db+'</span>';});},'renderMarkdownFallback'(_0x33b976,_0x1a9dcd={}){if(!_0x33b976)return'';_0x33b976=_0x33b976['replace'](/\r\n/g,'\x0a'),_0x33b976=_0x33b976['replace'](/\r/g,'\x0a'),_0x33b976=this['rewriteAttachmentLinks'](_0x33b976,_0x1a9dcd);let _0xe28d96=this['escapeHtml'](_0x33b976);return _0xe28d96=_0xe28d96['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0xe28d96=_0xe28d96['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0xe28d96=_0xe28d96['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0xe28d96=_0xe28d96['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0xe28d96=_0xe28d96['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0xe28d96=_0xe28d96['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0xe28d96=_0xe28d96['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0xe28d96=_0xe28d96['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0xe28d96=_0xe28d96['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0xe28d96=_0xe28d96['replace'](/\n\n/g,'</p><p>'),_0xe28d96=_0xe28d96['replace'](/\n/g,'<br>'),'<p>'+_0xe28d96+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8b70=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8b70),_0x1a8b70[0x6]=_0x1a8b70[0x6]&0xf|0x40,_0x1a8b70[0x8]=_0x1a8b70[0x8]&0x3f|0x80;const _0x5f3113=Array['from'](_0x1a8b70,_0x3d78fa=>_0x3d78fa['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5f3113['slice'](0x0,0x8)+'-'+_0x5f3113['slice'](0x8,0xc)+'-'+_0x5f3113['slice'](0xc,0x10)+'-'+_0x5f3113['slice'](0x10,0x14)+'-'+_0x5f3113['slice'](0x14);}};export class CustomSelect{constructor(_0xed9135,_0x25e107={}){this['nativeSelect']=_0xed9135,this['options']=_0x25e107,this['isOpen']=![],this['selectedValue']=_0xed9135['value']||'',this['searchable']=_0x25e107['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x586047=document['createElement']('div');_0x586047['className']='custom-select';const _0xef80e8=document['createElement']('div');_0xef80e8['className']='custom-select-trigger',_0xef80e8['setAttribute']('tabindex','0'),_0xef80e8['setAttribute']('role','button'),_0xef80e8['setAttribute']('aria-haspopup','listbox');const _0x602e0e=document['createElement']('span');_0x602e0e['className']='custom-select-trigger-text';const _0x6ef88a=document['createElement']('span');_0x6ef88a['className']='custom-select-arrow',_0x6ef88a['textContent']='▼',_0xef80e8['appendChild'](_0x602e0e),_0xef80e8['appendChild'](_0x6ef88a);const _0x1db61b=document['createElement']('div');_0x1db61b['className']='custom-select-dropdown',_0x1db61b['setAttribute']('role','listbox');if(this['searchable']){const _0x521a55=document['createElement']('div');_0x521a55['className']='custom-select-search';const _0x458e34=document['createElement']('input');_0x458e34['type']='text',_0x458e34['className']='custom-select-search-input',_0x458e34['placeholder']='Type\x20to\x20search...',_0x458e34['setAttribute']('aria-label','Search\x20options'),_0x458e34['addEventListener']('input',_0x30bf8c=>{this['searchQuery']=_0x30bf8c['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x458e34['addEventListener']('keydown',_0x55e031=>{if(_0x55e031['key']==='Escape')_0x55e031['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x55e031['key']==='Enter'){_0x55e031['preventDefault'](),_0x55e031['stopPropagation']();const _0x217481=_0x1db61b['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x217481){const _0x3fc79e=_0x217481['getAttribute']('data-value');this['select'](_0x3fc79e);}}}}),_0x521a55['appendChild'](_0x458e34),_0x1db61b['appendChild'](_0x521a55),this['searchInput']=_0x458e34;}const _0x2df9ba=document['createElement']('div');_0x2df9ba['className']='custom-select-options',_0x1db61b['appendChild'](_0x2df9ba),_0x586047['appendChild'](_0xef80e8),_0x586047['appendChild'](_0x1db61b),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x586047,this['nativeSelect']),this['wrapper']=_0x586047,this['trigger']=_0xef80e8,this['triggerText']=_0x602e0e,this['dropdown']=_0x1db61b,this['optionsContainer']=_0x2df9ba,_0xef80e8['addEventListener']('click',()=>this['toggle']()),_0xef80e8['addEventListener']('keydown',_0x395930=>this['handleKeydown'](_0x395930)),document['addEventListener']('click',_0x17c6b4=>{!_0x586047['contains'](_0x17c6b4['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4464f5=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4464f5['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x57acee=new MutationObserver(()=>{this['updateDisabledState']();});_0x57acee['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xf1fe60=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xf1fe60['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x37df9c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x37df9c),this['trigger']['setAttribute']('aria-disabled',_0x37df9c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x37df9c?'-1':'0'),_0x37df9c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x1c6756=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x377ca8=_0x1c6756['filter'](_0x27b679=>!_0x27b679['disabled']&&!_0x27b679['hidden']);_0x1c6756['forEach']((_0x3a245a,_0x31e76c)=>{const _0x35182f=document['createElement']('div');_0x35182f['className']='custom-select-option',_0x35182f['textContent']=_0x3a245a['textContent'],_0x35182f['setAttribute']('data-value',_0x3a245a['value']),_0x35182f['setAttribute']('data-index',_0x31e76c),_0x35182f['setAttribute']('role','option'),_0x3a245a['disabled']?_0x35182f['classList']['add']('disabled'):_0x35182f['addEventListener']('click',()=>this['select'](_0x3a245a['value'])),_0x3a245a['value']===this['selectedValue']&&_0x35182f['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x35182f),this['allOptions']['push']({'element':_0x35182f,'text':_0x3a245a['textContent']['toLowerCase'](),'value':_0x3a245a['value'],'disabled':_0x3a245a['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3b9207=this['searchInput']['parentElement'];_0x377ca8['length']>0x3?_0x3b9207['style']['display']='':_0x3b9207['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2951b9=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x2cf616=>{if(!_0x2951b9||_0x2cf616['disabled'])_0x2cf616['element']['style']['display']='';else{const _0x467e26=_0x2cf616['text']['includes'](_0x2951b9);_0x2cf616['element']['style']['display']=_0x467e26?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x4f2c00){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x4f2c00,this['nativeSelect']['value']=_0x4f2c00;const _0x20901f=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x20901f),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x505cd3=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x505cd3&&(this['triggerText']['textContent']=_0x505cd3['textContent'],_0x505cd3['disabled']||_0x505cd3['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x285275=>{_0x285275['getAttribute']('data-value')===this['selectedValue']?_0x285275['classList']['add']('selected'):_0x285275['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x4af203=window['getComputedStyle'](this['dropdown']);if(_0x4af203['position']==='fixed'){const _0x40868e=this['trigger']['getBoundingClientRect'](),_0x3d1226=parseInt(_0x4af203['maxHeight'])||0xc8,_0x362012=window['innerHeight'],_0x3f636e=_0x362012-_0x40868e['bottom'],_0x147212=_0x40868e['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x729355;_0x3f636e<_0x3d1226&&_0x147212>_0x3f636e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x362012-_0x40868e['top']+'px',_0x729355=Math['min'](_0x3d1226,_0x147212-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x40868e['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x729355=Math['min'](_0x3d1226,_0x3f636e-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px');if(this['optionsContainer']){let _0x4596fa=_0x729355;if(this['searchInput']){const _0x2c1595=this['searchInput']['parentElement'];_0x2c1595&&(_0x4596fa-=_0x2c1595['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4596fa)+'px';}this['dropdown']['style']['left']=_0x40868e['left']+'px',this['dropdown']['style']['width']=_0x40868e['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x3b47ea=this['searchInput']['parentElement'];_0x3b47ea&&_0x3b47ea['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x309c77){if(this['nativeSelect']['disabled'])return;if(_0x309c77['key']==='Enter'||_0x309c77['key']==='\x20')_0x309c77['preventDefault'](),this['toggle']();else _0x309c77['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x114369='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>&times;</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x114369),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fa50e=document['getElementById']('confirm-dialog-close'),_0x49200f=document['getElementById']('confirm-dialog-cancel'),_0x22f265=document['getElementById']('confirm-dialog-confirm'),_0x48433a=this['_modal']['querySelector']('.modal-overlay');_0x1fa50e['addEventListener']('click',()=>this['_resolve'](![])),_0x49200f['addEventListener']('click',()=>this['_resolve'](![])),_0x22f265['addEventListener']('click',()=>this['_resolve'](!![])),_0x48433a['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x463151=>{if(_0x463151['key']==='Escape')_0x463151['preventDefault'](),this['_resolve'](![]);else _0x463151['key']==='Enter'&&(_0x463151['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x4ee99b,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5120c9=>{this['_resolvePromise']=_0x5120c9,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x4ee99b;const _0x1245c0=document['getElementById']('confirm-dialog-cancel'),_0x410791=document['getElementById']('confirm-dialog-confirm');_0x1245c0['textContent']=cancelText,_0x410791['textContent']=confirmText,_0x410791['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x410791['focus']();});},'_resolve'(_0x40e725){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40e725),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x30e6f9,_0x56589d={}){this['container']=_0x30e6f9,this['options']={'placeholder':_0x56589d['placeholder']||'Type\x20to\x20search...','maxItems':_0x56589d['maxItems']||0x64,'loadItems':_0x56589d['loadItems']||(async()=>[]),'renderItem':_0x56589d['renderItem']||(_0x34174d=>({'primary':String(_0x34174d),'secondary':''})),'onSelect':_0x56589d['onSelect']||(()=>{}),'filterItems':_0x56589d['filterItems']||null,'getItemValue':_0x56589d['getItemValue']||(_0x4932ad=>_0x4932ad),'sortItems':_0x56589d['sortItems']||null,'debounceMs':_0x56589d['debounceMs']||0xc8,'minCharsForSearch':_0x56589d['minCharsForSearch']||0x0,'emptyMessage':_0x56589d['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x56589d['loadingMessage']||'Loading...','preload':_0x56589d['preload']!==![],'searchMode':_0x56589d['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='&times;',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x42eac9=>this['onBlur'](_0x42eac9)),this['input']['addEventListener']('input',_0x2d0072=>this['onInput'](_0x2d0072)),this['input']['addEventListener']('keydown',_0x2b4541=>this['onKeydown'](_0x2b4541)),this['clearBtn']['addEventListener']('mousedown',_0x52b4be=>{_0x52b4be['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x2ef3b1=>{_0x2ef3b1['preventDefault']();}),document['addEventListener']('click',_0x5c5a26=>{!this['wrapper']['contains'](_0x5c5a26['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x2aaefa){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x2aaefa);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x1191e8){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x21e2ba){const _0x4f8664=_0x21e2ba['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4f8664);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4f8664):this['loadAndShow'](_0x4f8664);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x24f7c0){switch(_0x24f7c0['key']){case'ArrowDown':_0x24f7c0['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x24f7c0['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x24f7c0['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x24f7c0['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2f71c3){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3500=this['selectedIndex']+_0x2f71c3;if(_0x1a3500>=0x0&&_0x1a3500<this['filteredItems']['length']){this['selectedIndex']=_0x1a3500,this['updateSelectionHighlight']();const _0x25c747=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x25c747[this['selectedIndex']]&&_0x25c747[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1353a5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1353a5['forEach']((_0x319289,_0x365bb0)=>{_0x319289['classList']['toggle']('keyboard-selected',_0x365bb0===this['selectedIndex']);});}async['loadAndShow'](_0x3e4cb0){this['showLoading']();try{const _0x32ed23=await this['options']['loadItems'](_0x3e4cb0);if(this['options']['searchMode']==='server'){let _0x2cd123=_0x32ed23;this['options']['sortItems']&&(_0x2cd123=this['options']['sortItems']([..._0x32ed23]));this['filteredItems']=_0x2cd123;const _0x52ccad=this['filteredItems']['length']>=this['options']['maxItems'];_0x52ccad&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x52ccad),this['open']();}else this['allItems']=_0x32ed23,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x3e4cb0);}catch(_0x62ebd1){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x62ebd1),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x5ca140){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x5ca140):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x24b99b=this['filteredItems']['length']>=this['options']['maxItems'];_0x24b99b&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x24b99b),this['open']();}['renderItems'](_0xb21a23){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x4039ba,_0x534c5c)=>{const _0x492e31=document['createElement']('div');_0x492e31['className']='autocomplete-select-item',_0x492e31['setAttribute']('role','option'),_0x492e31['setAttribute']('data-index',_0x534c5c);const _0x311b19=this['options']['renderItem'](_0x4039ba);let _0x18aefc='';_0x311b19['icon']&&(_0x18aefc='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x311b19['iconClass']||'')+'\x22>'+_0x311b19['icon']+'</span>'),_0x492e31['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x18aefc+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x311b19['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x311b19['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x311b19['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x492e31['addEventListener']('click',()=>{this['selectItem'](_0x4039ba);}),_0x492e31['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x534c5c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x492e31);}),_0xb21a23?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x3cb7a4){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x3cb7a4)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2e1095){this['selectedItem']=_0x2e1095;const _0x4d3636=this['options']['renderItem'](_0x2e1095);this['input']['value']=_0x4d3636['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2e1095);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x2831d9){if(_0x2831d9){this['selectedItem']=_0x2831d9;const _0x550b7a=this['options']['renderItem'](_0x2831d9);this['input']['value']=_0x550b7a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x68c1ba){this['allItems']=_0x68c1ba,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x57ccc1){this['input']['placeholder']=_0x57ccc1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4c2eef=null){const _0x46cc7a=document['getElementById']('admin-menu-container'),_0x5d0cdb=document['getElementById']('admin-menu-btn'),_0x4f3c51=document['getElementById']('admin-menu');if(!_0x46cc7a||!_0x5d0cdb||!_0x4f3c51)return;try{!_0x4c2eef&&(_0x4c2eef=await API['getCurrentUser']());if(_0x4c2eef){const _0x47a494=window['Permissions'],_0x3e87ca=_0x47a494['hasServerPermission'](_0x4c2eef,'*')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:manage')||_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')||_0x47a494['hasTeamPermission'](_0x4c2eef,'teams:manage')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:view_details');if(!_0x3e87ca)return;_0x46cc7a['hidden']=![];if(!_0x47a494['hasServerPermission'](_0x4c2eef,'*')){const _0x261545=_0x4f3c51['querySelectorAll']('.admin-menu-item');_0x261545['forEach'](_0x30dfc4=>{const _0x4759e1=_0x30dfc4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x4759e1==='Users'&&!_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Skills'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Settings'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Administration'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Git\x20History'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Roles'&&(_0x30dfc4['hidden']=!![]);});}_0x5d0cdb['addEventListener']('click',_0x2a3816=>{_0x2a3816['stopPropagation']();const _0x5290cc=document['getElementById']('actions-menu');if(_0x5290cc)_0x5290cc['hidden']=!![];_0x4f3c51['hidden']=!_0x4f3c51['hidden'];}),document['addEventListener']('click',_0x363a39=>{!_0x4f3c51['hidden']&&!_0x5d0cdb['contains'](_0x363a39['target'])&&!_0x4f3c51['contains'](_0x363a39['target'])&&(_0x4f3c51['hidden']=!![]);}),document['addEventListener']('keydown',_0x22c2aa=>{_0x22c2aa['key']==='Escape'&&!_0x4f3c51['hidden']&&(_0x4f3c51['hidden']=!![]);});}}catch(_0x460654){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x460654['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
1
+ function detectApiBase(){const _0x4d0025=window['location']['pathname'],_0x37e170=_0x4d0025['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x37e170)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x37e170[0x1]),_0x37e170[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x1ea08e={}){const _0x33e4cc=new URLSearchParams();_0x1ea08e['userId']&&_0x33e4cc['set']('userId',String(_0x1ea08e['userId']));_0x1ea08e['automation']&&_0x33e4cc['set']('automation',String(_0x1ea08e['automation']));const _0x339de3=API_BASE+'/tasks/stats'+(_0x33e4cc['toString']()?'?'+_0x33e4cc['toString']():''),_0x29b1e7=await fetch(_0x339de3);if(!_0x29b1e7['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x29b1e7['statusText']);return await _0x29b1e7['json']();},async 'getTasks'(_0x5ee5d6={}){const _0x588618=new URLSearchParams();_0x5ee5d6['status']&&_0x588618['set']('status',String(_0x5ee5d6['status']));_0x5ee5d6['environment']&&_0x588618['set']('environment',String(_0x5ee5d6['environment']));_0x5ee5d6['automation']&&_0x588618['set']('automation',String(_0x5ee5d6['automation']));if(_0x5ee5d6['include']){const _0x5b628b=Array['isArray'](_0x5ee5d6['include'])?_0x5ee5d6['include']['join'](','):String(_0x5ee5d6['include']);_0x5b628b&&_0x588618['set']('include',_0x5b628b);}_0x5ee5d6['filter']&&_0x588618['set']('filter',String(_0x5ee5d6['filter']));_0x5ee5d6['page']&&_0x588618['set']('page',String(_0x5ee5d6['page']));_0x5ee5d6['limit']&&_0x588618['set']('limit',String(_0x5ee5d6['limit']));_0x5ee5d6['userId']&&_0x588618['set']('userId',String(_0x5ee5d6['userId']));_0x5ee5d6['search']&&_0x588618['set']('search',String(_0x5ee5d6['search']));_0x5ee5d6['includeChildTasks']&&_0x588618['set']('includeChildTasks','true');const _0xe6820d=API_BASE+'/tasks'+(_0x588618['toString']()?'?'+_0x588618['toString']():''),_0x956e87=await fetch(_0xe6820d);if(!_0x956e87['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x956e87['statusText']);return await _0x956e87['json']();},async 'getAutomations'(_0x3774ae={}){const _0x342cc7=new URLSearchParams();_0x3774ae['environment']&&_0x342cc7['set']('environment',String(_0x3774ae['environment']));const _0x24931c=await fetch(API_BASE+'/api/automations'+(_0x342cc7['toString']()?'?'+_0x342cc7['toString']():''));if(!_0x24931c['ok']){const _0x1c7972=await _0x24931c['json']()['catch'](()=>({}));throw new Error(_0x1c7972['message']||_0x1c7972['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x24931c['statusText']);}return await _0x24931c['json']();},async 'getAutomation'(_0x3bd36a){const _0x5387a4=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3bd36a));if(!_0x5387a4['ok']){const _0xf1d300=await _0x5387a4['json']()['catch'](()=>({}));throw new Error(_0xf1d300['message']||_0xf1d300['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x5387a4['statusText']);}return await _0x5387a4['json']();},async 'createAutomation'(_0x508fd6){const _0x2b6506=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x508fd6||{})});if(!_0x2b6506['ok']){const _0x46df95=await _0x2b6506['json']()['catch'](()=>({}));throw new Error(_0x46df95['message']||_0x46df95['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x2b6506['statusText']);}return await _0x2b6506['json']();},async 'updateAutomation'(_0x4f76e4,_0x285bb4){const _0x2ca5d3=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4f76e4),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x285bb4||{})});if(!_0x2ca5d3['ok']){const _0x3d2ac4=await _0x2ca5d3['json']()['catch'](()=>({}));throw new Error(_0x3d2ac4['message']||_0x3d2ac4['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x2ca5d3['statusText']);}return await _0x2ca5d3['json']();},async 'deleteAutomation'(_0xc5ea09){const _0x21f2a1=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc5ea09),{'method':'DELETE'});if(!_0x21f2a1['ok']){const _0x43581c=await _0x21f2a1['json']()['catch'](()=>({}));throw new Error(_0x43581c['message']||_0x43581c['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x21f2a1['statusText']);}return await _0x21f2a1['json']();},async 'triggerAutomation'(_0x1298b0){const _0x2e1aa0=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1298b0)+'/trigger',{'method':'POST'});if(!_0x2e1aa0['ok']){const _0x1feca8=await _0x2e1aa0['json']()['catch'](()=>({}));throw new Error(_0x1feca8['message']||_0x1feca8['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x2e1aa0['statusText']);}return await _0x2e1aa0['json']();},async 'setAutomationEnabled'(_0x5c3bc4,_0x409c88){const _0x20fe22=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5c3bc4)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x409c88})});if(!_0x20fe22['ok']){const _0x72a70=await _0x20fe22['json']()['catch'](()=>({}));throw new Error(_0x72a70['message']||_0x72a70['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x20fe22['statusText']);}return await _0x20fe22['json']();},async 'getAutomationHistory'(_0x46d7b6,_0x34775c=0x32){const _0x53c7fb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x46d7b6)+'/history?limit='+encodeURIComponent(String(_0x34775c)));if(!_0x53c7fb['ok']){const _0xbcad49=await _0x53c7fb['json']()['catch'](()=>({}));throw new Error(_0xbcad49['message']||_0xbcad49['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x53c7fb['statusText']);}return await _0x53c7fb['json']();},async 'getTask'(_0x5dc687,_0x1357b6={}){const _0x508877=new URLSearchParams();if(_0x1357b6['include']){const _0x1988e9=Array['isArray'](_0x1357b6['include'])?_0x1357b6['include']['join'](','):String(_0x1357b6['include']);if(_0x1988e9)_0x508877['set']('include',_0x1988e9);}const _0x1d1ea5=await fetch(API_BASE+'/tasks/'+_0x5dc687+(_0x508877['toString']()?'?'+_0x508877['toString']():''));if(!_0x1d1ea5['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x1d1ea5['statusText']);return await _0x1d1ea5['json']();},async 'getTaskResults'(_0x4935da){const _0xb93ba4=await fetch(API_BASE+'/tasks/'+_0x4935da+'/results');if(!_0xb93ba4['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0xb93ba4['statusText']);return await _0xb93ba4['json']();},async 'getTaskPatches'(_0x2045e7){const _0x2943f7=await fetch(API_BASE+'/tasks/'+_0x2045e7+'/patches');if(!_0x2943f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x2943f7['statusText']);return await _0x2943f7['json']();},async 'getTaskAttachments'(_0x45a44d){const _0x784152=await fetch(API_BASE+'/tasks/'+_0x45a44d+'/attachments');if(!_0x784152['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x784152['statusText']);return await _0x784152['json']();},async 'uploadAttachments'(_0x59a6ef,_0x2e1bdf){const _0x28b2c3=new FormData();for(const _0x495d14 of _0x2e1bdf){_0x28b2c3['append']('attachments',_0x495d14);}const _0x113448=await fetch(API_BASE+'/tasks/'+_0x59a6ef+'/attachments',{'method':'POST','body':_0x28b2c3});if(!_0x113448['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x113448['statusText']);return await _0x113448['json']();},async 'isAINameGenerationAvailable'(){try{const _0x1be920=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x1be920['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x1be920['json']();}catch(_0xaff11c){return{'available':![],'reason':_0xaff11c['message']};}},async 'generateTaskName'(_0x701777){try{const _0xf2acac=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x701777})});return await _0xf2acac['json']();}catch(_0xca857d){return{'success':![],'error':_0xca857d['message']};}},async 'createTask'(_0x4641bb){let _0x274c50,_0x5b1460={};if(_0x4641bb['files']&&_0x4641bb['files']['length']>0x0){const _0x583bf9=new FormData();for(const [_0x59266d,_0x26ba82]of Object['entries'](_0x4641bb)){if(_0x59266d!=='files'){if(_0x26ba82==null)continue;typeof _0x26ba82==='object'?_0x583bf9['append'](_0x59266d,JSON['stringify'](_0x26ba82)):_0x583bf9['append'](_0x59266d,String(_0x26ba82));}}for(const _0x4d985a of _0x4641bb['files']){_0x583bf9['append']('attachments',_0x4d985a);}_0x274c50=_0x583bf9;}else _0x5b1460['Content-Type']='application/json',_0x274c50=JSON['stringify'](_0x4641bb);const _0x107f65=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x5b1460,'body':_0x274c50});if(!_0x107f65['ok']){const _0x32ab65=await _0x107f65['json'](),_0x4cb5de=new Error(_0x32ab65['error']||'Failed\x20to\x20create\x20task:\x20'+_0x107f65['statusText']),{message:_0x5910e0,..._0x2095dd}=_0x32ab65;Object['assign'](_0x4cb5de,_0x2095dd);throw _0x4cb5de;}return await _0x107f65['json']();},async 'createTestTask'(_0x5b2a1d){const _0x98183d=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5b2a1d)});if(!_0x98183d['ok']){const _0x4d0922=await _0x98183d['json']();throw new Error(_0x4d0922['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x98183d['statusText']);}return await _0x98183d['json']();},async 'createEphemeralTest'(_0x25fab1){const _0x472ba9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25fab1)});if(!_0x472ba9['ok']){const _0x583408=await _0x472ba9['json']();throw new Error(_0x583408['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x472ba9['statusText']);}return await _0x472ba9['json']();},async 'createDeployTask'(_0x1075f9){const _0x135169=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1075f9)});if(!_0x135169['ok']){const _0x27780f=await _0x135169['json']();throw new Error(_0x27780f['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x135169['statusText']);}return await _0x135169['json']();},async 'getEnvironments'(){const _0xc13bd6=await fetch(API_BASE+'/environments');if(!_0xc13bd6['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0xc13bd6['statusText']);return await _0xc13bd6['json']();},async 'getEnvironment'(_0x3987b6){const _0x4bff4b=await fetch(API_BASE+'/environments/'+_0x3987b6);if(!_0x4bff4b['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x4bff4b['statusText']);return await _0x4bff4b['json']();},async 'getEnvironmentRepoHistory'(_0x389f5f,_0x3bfcdf,_0x2087a4={}){if(!_0x389f5f||!_0x3bfcdf)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x568dfe=new URLSearchParams();if(_0x2087a4['limit'])_0x568dfe['set']('limit',String(_0x2087a4['limit']));if(_0x2087a4['offset'])_0x568dfe['set']('offset',String(_0x2087a4['offset']));if(_0x2087a4['search'])_0x568dfe['set']('search',String(_0x2087a4['search']));if(_0x2087a4['branch'])_0x568dfe['set']('branch',String(_0x2087a4['branch']));const _0x230e64=API_BASE+'/environments/'+encodeURIComponent(_0x389f5f)+'/repos/'+encodeURIComponent(_0x3bfcdf)+'/git/history',_0x1ae5a6=await fetch(''+_0x230e64+(_0x568dfe['toString']()?'?'+_0x568dfe['toString']():''));if(!_0x1ae5a6['ok']){const _0x47afc1=await _0x1ae5a6['json']()['catch'](()=>({}));throw new Error(_0x47afc1['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x1ae5a6['statusText']);}return await _0x1ae5a6['json']();},async 'getEnvironmentRepoCommit'(_0x1f0d31,_0x101630,_0x534f84){if(!_0x1f0d31||!_0x101630||!_0x534f84)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xcac219=API_BASE+'/environments/'+encodeURIComponent(_0x1f0d31)+'/repos/'+encodeURIComponent(_0x101630)+'/git/commits/'+encodeURIComponent(_0x534f84),_0xd0cc62=await fetch(_0xcac219);if(!_0xd0cc62['ok']){const _0x3d919b=await _0xd0cc62['json']()['catch'](()=>({}));throw new Error(_0x3d919b['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0xd0cc62['statusText']);}return await _0xd0cc62['json']();},async 'getEnvironmentRepoBranches'(_0x5e83f3,_0x4d3d7d){if(!_0x5e83f3||!_0x4d3d7d)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3aac37=API_BASE+'/environments/'+encodeURIComponent(_0x5e83f3)+'/repos/'+encodeURIComponent(_0x4d3d7d)+'/git/branches',_0x3c8e34=await fetch(_0x3aac37);if(!_0x3c8e34['ok']){const _0x533fe1=await _0x3c8e34['json']()['catch'](()=>({}));throw new Error(_0x533fe1['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x3c8e34['statusText']);}return await _0x3c8e34['json']();},async 'revertEnvironmentRepoCommit'(_0x491e0f,_0x43c89d,_0x280e70,_0x399422={}){if(!_0x491e0f||!_0x43c89d||!_0x280e70)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5f5265=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x491e0f)+'/repos/'+encodeURIComponent(_0x43c89d)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x280e70,..._0x399422})});if(!_0x5f5265['ok']){const _0x352b72=await _0x5f5265['json']()['catch'](()=>({}));throw new Error(_0x352b72['message']||_0x352b72['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5f5265['statusText']);}return await _0x5f5265['json']();},async 'getTemplates'(_0x602b41={}){const _0x2be8b2=new URLSearchParams();if(_0x602b41['include']){const _0x11038d=Array['isArray'](_0x602b41['include'])?_0x602b41['include']['join'](','):String(_0x602b41['include']);if(_0x11038d)_0x2be8b2['set']('include',_0x11038d);}const _0x802e55=await fetch(API_BASE+'/templates'+(_0x2be8b2['toString']()?'?'+_0x2be8b2['toString']():''));if(!_0x802e55['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x802e55['statusText']);return await _0x802e55['json']();},async 'getTemplatesForEnvironment'(_0x48e045,_0x268354={}){if(!_0x48e045)throw new Error('Environment\x20name\x20is\x20required');const _0x42ca4d=new URLSearchParams();if(_0x268354['include']){const _0x12e7f8=Array['isArray'](_0x268354['include'])?_0x268354['include']['join'](','):String(_0x268354['include']);if(_0x12e7f8)_0x42ca4d['set']('include',_0x12e7f8);}const _0x1773fa=await fetch(API_BASE+'/templates/'+_0x48e045+(_0x42ca4d['toString']()?'?'+_0x42ca4d['toString']():''));if(!_0x1773fa['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x48e045+':\x20'+_0x1773fa['statusText']);return await _0x1773fa['json']();},async 'getTemplate'(_0x114846,_0x4ad761,_0x2e19ae={}){if(!_0x114846||!_0x4ad761)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x21bde2=new URLSearchParams();if(_0x2e19ae['include']){const _0x2597bd=Array['isArray'](_0x2e19ae['include'])?_0x2e19ae['include']['join'](','):String(_0x2e19ae['include']);if(_0x2597bd)_0x21bde2['set']('include',_0x2597bd);}const _0x1c6628=await fetch(API_BASE+'/templates/'+_0x114846+'/'+_0x4ad761+(_0x21bde2['toString']()?'?'+_0x21bde2['toString']():''));if(!_0x1c6628['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x1c6628['statusText']);return await _0x1c6628['json']();},async 'getTaskLogs'(_0x2b5640,_0x145b1b={}){if(!_0x2b5640)throw new Error('Task\x20ID\x20is\x20required');const _0x45cec7=new URLSearchParams();_0x145b1b['tail']&&_0x45cec7['set']('tail',String(_0x145b1b['tail']));const _0x52e878=await fetch(API_BASE+'/tasks/'+_0x2b5640+'/logs'+(_0x45cec7['toString']()?'?'+_0x45cec7['toString']():''));if(!_0x52e878['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x52e878['statusText']);return await _0x52e878['text']();},async 'getContainers'(){const _0x56f26a=await fetch(API_BASE+'/containers');if(!_0x56f26a['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x56f26a['statusText']);return await _0x56f26a['json']();},async 'getContainer'(_0x1331c0){const _0x18cae9=await fetch(API_BASE+'/containers/'+_0x1331c0);if(!_0x18cae9['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x18cae9['statusText']);return await _0x18cae9['json']();},async 'startInteractiveContainer'(_0x3a2268){const _0x36ef32=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a2268)});if(!_0x36ef32['ok']){const _0x4cb00c=await _0x36ef32['json']()['catch'](()=>({}));throw new Error(_0x4cb00c['message']||'Failed\x20to\x20start\x20container:\x20'+_0x36ef32['statusText']);}return await _0x36ef32['json']();},async 'startContainerCodeServer'(_0x158d3d,_0x55fd36={}){if(!_0x158d3d)throw new Error('Container\x20ID\x20is\x20required');const _0x38e2a9=new URLSearchParams();_0x55fd36['theme']&&_0x38e2a9['set']('theme',_0x55fd36['theme']);const _0x5a3bcf=await fetch(API_BASE+'/containers/'+_0x158d3d+'/code-server'+(_0x38e2a9['toString']()?'?'+_0x38e2a9['toString']():'')),_0x3e441=await _0x5a3bcf['json']()['catch'](()=>({}));if(!_0x5a3bcf['ok'])throw new Error(_0x3e441['message']||_0x3e441['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x5a3bcf['statusText']);return _0x3e441;},async 'stopContainer'(_0x199a22){const _0x47c742=await fetch(API_BASE+'/containers/'+_0x199a22,{'method':'DELETE'});if(!_0x47c742['ok']){const _0x3b50ad=await _0x47c742['json']()['catch'](()=>({}));throw new Error(_0x3b50ad['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x47c742['statusText']);}return await _0x47c742['json']();},async 'stopTask'(_0x3cdba9){if(!_0x3cdba9)throw new Error('Task\x20ID\x20is\x20required');const _0x190be8=await fetch(API_BASE+'/tasks/'+_0x3cdba9+'/stop',{'method':'POST'});if(!_0x190be8['ok']){const _0xf358b6=await _0x190be8['json']()['catch'](()=>({}));throw new Error(_0xf358b6['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x190be8['statusText']);}return await _0x190be8['json']();},async 'interruptTask'(_0x33e457){if(!_0x33e457)throw new Error('Task\x20ID\x20is\x20required');const _0x2cc6fd=await fetch(API_BASE+'/tasks/'+_0x33e457+'/interrupt',{'method':'POST'});if(!_0x2cc6fd['ok']){const _0x3d5c93=await _0x2cc6fd['json']()['catch'](()=>({}));throw new Error(_0x3d5c93['error']||_0x3d5c93['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2cc6fd['statusText']);}return await _0x2cc6fd['json']();},async 'startTask'(_0x9bf59e){if(!_0x9bf59e)throw new Error('Task\x20ID\x20is\x20required');const _0xddf118=await fetch(API_BASE+'/tasks/'+_0x9bf59e+'/start',{'method':'POST'});if(!_0xddf118['ok']){const _0x30344a=await _0xddf118['json']()['catch'](()=>({}));throw new Error(_0x30344a['error']||'Failed\x20to\x20start\x20task:\x20'+_0xddf118['statusText']);}return await _0xddf118['json']();},async 'deleteTask'(_0x22ec36){if(!_0x22ec36)throw new Error('Task\x20ID\x20is\x20required');const _0x5acb17=await fetch(API_BASE+'/tasks/'+_0x22ec36,{'method':'DELETE'});if(!_0x5acb17['ok']){const _0x505c4f=await _0x5acb17['json']()['catch'](()=>({}));throw new Error(_0x505c4f['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x5acb17['statusText']);}return await _0x5acb17['json']();},async 'refreshTasksFromDisk'(){const _0x1b1089=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x1b1089['ok']){const _0x1bb1bb=await _0x1b1089['json']()['catch'](()=>({}));throw new Error(_0x1bb1bb['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x1b1089['statusText']);}return await _0x1b1089['json']();},async 'approveTask'(_0x50e70a,_0x4c7670={}){if(!_0x50e70a)throw new Error('Task\x20ID\x20is\x20required');const _0x1b11c6={'commit_message':_0x4c7670['commit_message']||'','pull':_0x4c7670['pull']??![],'push':_0x4c7670['push']??![],'conflict_strategy':_0x4c7670['conflict_strategy']||'rebase'};_0x4c7670['new_branch']&&(_0x1b11c6['new_branch']=_0x4c7670['new_branch']);const _0x56a6a9=await fetch(API_BASE+'/tasks/'+_0x50e70a+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b11c6)});if(!_0x56a6a9['ok']){const _0x2c0a0f=await _0x56a6a9['json']()['catch'](()=>({})),_0x54a171=Array['isArray'](_0x2c0a0f['results'])?_0x2c0a0f['results']['filter'](_0x1ebe73=>!_0x1ebe73['success']&&(_0x1ebe73['error']||_0x1ebe73['error_code'])):[],_0x1b3bc6=_0x54a171[0x0]||null;let _0x2d5820=_0x2c0a0f['error']||_0x2c0a0f['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56a6a9['statusText'];if(_0x1b3bc6?.['error'])_0x2d5820=_0x1b3bc6['error'];else _0x2c0a0f['message']&&(_0x2d5820=_0x2c0a0f['message']);const _0x478052=new Error(_0x2d5820);_0x478052['code']=_0x1b3bc6?.['error_code']||_0x2c0a0f['error_code']||null,_0x478052['details']=_0x1b3bc6?.['details']||_0x2c0a0f['details']||null,_0x478052['tokenExpiryDays']=_0x1b3bc6?.['token_expiry_days']||_0x2c0a0f['token_expiry_days']||null,_0x478052['hasConflicts']=_0x2c0a0f['results']?.['some'](_0x4e0b88=>_0x4e0b88['conflict'])||![];throw _0x478052;}return await _0x56a6a9['json']();},async 'getPullRequestInfo'(_0x3c99c3){if(!_0x3c99c3)throw new Error('Task\x20ID\x20is\x20required');const _0x426402=await fetch(API_BASE+'/tasks/'+_0x3c99c3+'/pull-request-info');if(!_0x426402['ok']){const _0x2e3a00=await _0x426402['json']()['catch'](()=>({}));throw new Error(_0x2e3a00['error']||_0x2e3a00['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x426402['statusText']);}return await _0x426402['json']();},async 'createPullRequests'(_0x5bc4e7,_0x234e87){if(!_0x5bc4e7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x234e87||!Array['isArray'](_0x234e87))throw new Error('repos\x20array\x20is\x20required');const _0x322a84=await fetch(API_BASE+'/tasks/'+_0x5bc4e7+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x234e87})});if(!_0x322a84['ok']){const _0x2b3d81=await _0x322a84['json']()['catch'](()=>({}));let _0x549fad=_0x2b3d81['error']||_0x2b3d81['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x322a84['statusText'];if(_0x2b3d81['results']&&Array['isArray'](_0x2b3d81['results'])){const _0x282632=_0x2b3d81['results']['filter'](_0x19edce=>!_0x19edce['success']&&_0x19edce['error']);_0x282632['length']>0x0&&(_0x549fad=_0x282632[0x0]['error']);}throw new Error(_0x549fad);}return await _0x322a84['json']();},async 'syncRepos'(_0x293aa4){if(!_0x293aa4)throw new Error('Task\x20ID\x20is\x20required');const _0x2f38e3=await fetch(API_BASE+'/tasks/'+_0x293aa4+'/sync-repos',{'method':'POST'});if(!_0x2f38e3['ok']){const _0x3e2d71=await _0x2f38e3['json']()['catch'](()=>({}));throw new Error(_0x3e2d71['error']||_0x3e2d71['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2f38e3['statusText']);}return await _0x2f38e3['json']();},async 'getIbmiSyncInfo'(_0x53c586){if(!_0x53c586)throw new Error('Task\x20ID\x20is\x20required');const _0x2c419c=await fetch(API_BASE+'/tasks/'+_0x53c586+'/ibmi-sync-info');if(!_0x2c419c['ok']){const _0x32acf4=await _0x2c419c['json']()['catch'](()=>({}));throw new Error(_0x32acf4['error']||_0x32acf4['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x2c419c['json']();},async 'getSyncFiles'(_0x59664b){if(!_0x59664b)throw new Error('Task\x20ID\x20is\x20required');const _0x261e32=await fetch(API_BASE+'/tasks/'+_0x59664b+'/sync-to-ibmi/files');if(!_0x261e32['ok']){const _0x127b2d=await _0x261e32['json']()['catch'](()=>({}));throw new Error(_0x127b2d['error']||_0x127b2d['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x261e32['json']();},async 'syncToIbmi'(_0x472ab2,_0x18942e,_0x2052ef=null,_0x2a314a=null,_0xf2a450=null){if(!_0x472ab2)throw new Error('Task\x20ID\x20is\x20required');const _0x3fe1b9={'library':_0x18942e};if(_0x2052ef)_0x3fe1b9['user']=_0x2052ef;if(_0x2a314a)_0x3fe1b9['password']=_0x2a314a;if(_0xf2a450)_0x3fe1b9['files']=_0xf2a450;const _0x4feeb7=await fetch(API_BASE+'/tasks/'+_0x472ab2+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3fe1b9)});if(!_0x4feeb7['ok']){const _0x4ffd39=await _0x4feeb7['json']()['catch'](()=>({}));throw new Error(_0x4ffd39['error']||_0x4ffd39['message']||'Sync\x20failed');}return await _0x4feeb7['json']();},async 'getIbmiSyncLog'(_0x2dc130){if(!_0x2dc130)throw new Error('Task\x20ID\x20is\x20required');const _0x3ccd84=await fetch(API_BASE+'/tasks/'+_0x2dc130+'/ibmi-sync-log');if(!_0x3ccd84['ok']){const _0x56a523=await _0x3ccd84['json']()['catch'](()=>({}));throw new Error(_0x56a523['error']||_0x56a523['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x3ccd84['json']();},async 'pullChanges'(_0x5cfaf9){if(!_0x5cfaf9)throw new Error('Task\x20ID\x20is\x20required');const _0x10ad5b=await fetch(API_BASE+'/tasks/'+_0x5cfaf9+'/pull-changes',{'method':'POST'});if(!_0x10ad5b['ok']){const _0x2997b8=await _0x10ad5b['json']()['catch'](()=>({})),_0x59a7f2=new Error(_0x2997b8['message']||_0x2997b8['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x10ad5b['statusText']);_0x59a7f2['code']=_0x2997b8['error_code']||null,_0x59a7f2['details']=_0x2997b8['details']||null,_0x59a7f2['tokenExpiryDays']=_0x2997b8['token_expiry_days']||null;throw _0x59a7f2;}return await _0x10ad5b['json']();},async 'readFile'(_0x4c4b4c,_0x216070){if(!_0x4c4b4c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x216070)throw new Error('File\x20path\x20is\x20required');const _0xdec4c9=await fetch(API_BASE+'/tasks/'+_0x4c4b4c+'/files?path='+encodeURIComponent(_0x216070));if(!_0xdec4c9['ok']){const _0x370a0a=await _0xdec4c9['json']()['catch'](()=>({}));throw new Error(_0x370a0a['error']||_0x370a0a['message']||'Failed\x20to\x20read\x20file:\x20'+_0xdec4c9['statusText']);}return await _0xdec4c9['json']();},'getTaskFileDownloadUrl'(_0x5acdab,_0x34ce46){if(!_0x5acdab)throw new Error('Task\x20ID\x20is\x20required');if(!_0x34ce46)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x5acdab+'/files/download?path='+encodeURIComponent(_0x34ce46);},async 'writeFile'(_0x526f3e,_0x13921a,_0x5c7c03){if(!_0x526f3e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x13921a)throw new Error('File\x20path\x20is\x20required');if(_0x5c7c03===undefined)throw new Error('Content\x20is\x20required');const _0x599f6c=await fetch(API_BASE+'/tasks/'+_0x526f3e+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x13921a,'content':_0x5c7c03})});if(!_0x599f6c['ok']){const _0xd07f0f=await _0x599f6c['json']()['catch'](()=>({}));throw new Error(_0xd07f0f['error']||_0xd07f0f['message']||'Failed\x20to\x20write\x20file:\x20'+_0x599f6c['statusText']);}return await _0x599f6c['json']();},async 'uploadTaskFiles'(_0x2c6fea,_0xc1580c,_0x25ce1f){if(!_0x2c6fea)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc1580c)throw new Error('Target\x20directory\x20is\x20required');if(!_0x25ce1f||_0x25ce1f['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x5ebda8=new FormData();_0x5ebda8['append']('targetDir',_0xc1580c);for(const _0x10cf76 of _0x25ce1f){_0x5ebda8['append']('files',_0x10cf76,_0x10cf76['name']);}const _0x268ce6=await fetch(API_BASE+'/tasks/'+_0x2c6fea+'/files/upload',{'method':'POST','body':_0x5ebda8});if(!_0x268ce6['ok']){const _0x2eae5e=await _0x268ce6['json']()['catch'](()=>({}));throw new Error(_0x2eae5e['error']||_0x2eae5e['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x268ce6['statusText']);}return await _0x268ce6['json']();},async 'createDirectory'(_0x5e755a,_0x236be1){if(!_0x5e755a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x236be1)throw new Error('Directory\x20path\x20is\x20required');const _0x2ce446=await fetch(API_BASE+'/tasks/'+_0x5e755a+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x236be1})});if(!_0x2ce446['ok']){const _0x85c94e=await _0x2ce446['json']()['catch'](()=>({}));throw new Error(_0x85c94e['error']||_0x85c94e['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x2ce446['statusText']);}return await _0x2ce446['json']();},async 'renamePath'(_0x3dde71,_0x490325,_0x207b02){if(!_0x3dde71)throw new Error('Task\x20ID\x20is\x20required');if(!_0x490325)throw new Error('Source\x20path\x20is\x20required');if(!_0x207b02)throw new Error('Destination\x20path\x20is\x20required');const _0x40bad7=await fetch(API_BASE+'/tasks/'+_0x3dde71+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x490325,'newPath':_0x207b02})});if(!_0x40bad7['ok']){const _0x14aa4d=await _0x40bad7['json']()['catch'](()=>({}));throw new Error(_0x14aa4d['error']||_0x14aa4d['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x40bad7['statusText']);}return await _0x40bad7['json']();},async 'deleteFile'(_0x2cc63a,_0x27d423){if(!_0x2cc63a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x27d423)throw new Error('File\x20path\x20is\x20required');const _0x34b45f=await fetch(API_BASE+'/tasks/'+_0x2cc63a+'/files?path='+encodeURIComponent(_0x27d423),{'method':'DELETE'});if(!_0x34b45f['ok']){const _0x30d181=await _0x34b45f['json']()['catch'](()=>({}));throw new Error(_0x30d181['error']||_0x30d181['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x34b45f['statusText']);}return await _0x34b45f['json']();},async 'deleteDirectory'(_0x1b819b,_0x371f98){if(!_0x1b819b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x371f98)throw new Error('Directory\x20path\x20is\x20required');const _0x42ea8e=await fetch(API_BASE+'/tasks/'+_0x1b819b+'/files/directory?path='+encodeURIComponent(_0x371f98),{'method':'DELETE'});if(!_0x42ea8e['ok']){const _0x59c66c=await _0x42ea8e['json']()['catch'](()=>({}));throw new Error(_0x59c66c['error']||_0x59c66c['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x42ea8e['statusText']);}return await _0x42ea8e['json']();},async 'discardFile'(_0x325ec4,_0x3b139e,_0x263e17){if(!_0x325ec4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3b139e)throw new Error('File\x20path\x20is\x20required');if(!_0x263e17)throw new Error('Repository\x20path\x20is\x20required');const _0x538ba9=await fetch(API_BASE+'/tasks/'+_0x325ec4+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x3b139e,'repoPath':_0x263e17})});if(!_0x538ba9['ok']){const _0x5e7a06=await _0x538ba9['json']()['catch'](()=>({}));throw new Error(_0x5e7a06['error']||_0x5e7a06['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x538ba9['statusText']);}return await _0x538ba9['json']();},async 'followUpTask'(_0x5c67a5,_0x7542c2={}){if(!_0x5c67a5)throw new Error('Task\x20ID\x20is\x20required');if(!_0x7542c2['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x4822af,_0x3ffa53={};if(_0x7542c2['files']&&_0x7542c2['files']['length']>0x0){const _0x4d668d=new FormData();_0x4d668d['append']('instructions',_0x7542c2['instructions']);for(const _0x847da of _0x7542c2['files']){_0x4d668d['append']('attachments',_0x847da);}_0x4822af=_0x4d668d;}else _0x3ffa53['Content-Type']='application/json',_0x4822af=JSON['stringify']({'instructions':_0x7542c2['instructions']});const _0x6c8fd8=await fetch(API_BASE+'/tasks/'+_0x5c67a5+'/follow-up',{'method':'POST','headers':_0x3ffa53,'body':_0x4822af});if(!_0x6c8fd8['ok']){const _0x35f300=await _0x6c8fd8['json']()['catch'](()=>({}));throw new Error(_0x35f300['error']||_0x35f300['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x6c8fd8['statusText']);}return await _0x6c8fd8['json']();},async 'getTaskRewindPoints'(_0x37a7c1){if(!_0x37a7c1)throw new Error('Task\x20ID\x20is\x20required');const _0x490480=await fetch(API_BASE+'/tasks/'+_0x37a7c1+'/rewind-points');if(!_0x490480['ok']){const _0x2a49de=await _0x490480['json']()['catch'](()=>({}));throw new Error(_0x2a49de['error']||_0x2a49de['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x490480['statusText']);}return await _0x490480['json']();},async 'rewindTask'(_0x42fb6e,_0x4b0930={}){if(!_0x42fb6e)throw new Error('Task\x20ID\x20is\x20required');const _0x3b092e=Number['isInteger'](_0x4b0930['targetFollowUpCount'])?_0x4b0930['targetFollowUpCount']:0x0,_0x205726={'targetFollowUpCount':_0x3b092e};typeof _0x4b0930['instructions']==='string'&&_0x4b0930['instructions']['trim']()&&(_0x205726['instructions']=_0x4b0930['instructions']['trim']());typeof _0x4b0930['rewindFiles']==='boolean'&&(_0x205726['rewindFiles']=_0x4b0930['rewindFiles']);const _0x15539a=await fetch(API_BASE+'/tasks/'+_0x42fb6e+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x205726)});if(!_0x15539a['ok']){const _0x430a36=await _0x15539a['json']()['catch'](()=>({}));throw new Error(_0x430a36['error']||_0x430a36['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x15539a['statusText']);}return await _0x15539a['json']();},async 'login'(_0x3dc6b7,_0x58f9f5){const _0x569a26=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3dc6b7,'password':_0x58f9f5})});if(!_0x569a26['ok']){const _0x495fe7=await _0x569a26['json']();throw new Error(_0x495fe7['message']||'Login\x20failed');}return await _0x569a26['json']();},async 'logout'(){const _0x225e04=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x225e04['ok']){const _0x4e4947=await _0x225e04['json']();throw new Error(_0x4e4947['message']||'Logout\x20failed');}return await _0x225e04['json']();},async 'getCurrentUser'(){const _0x2fa654=await fetch(API_BASE+'/auth/me');if(!_0x2fa654['ok'])throw new Error('Not\x20authenticated');const _0x8c5a76=await _0x2fa654['json']();return _0x8c5a76['user'];},async 'getRolesInfo'(){const _0x305012=await fetch(API_BASE+'/users/roles');if(!_0x305012['ok']){const _0x1f9a79=await _0x305012['json']();throw new Error(_0x1f9a79['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x305012['json']();},async 'getUsers'(){const _0x4724b7=await fetch(API_BASE+'/users');if(!_0x4724b7['ok']){const _0x427fd8=await _0x4724b7['json']();throw new Error(_0x427fd8['message']||'Failed\x20to\x20get\x20users');}return await _0x4724b7['json']();},async 'getUser'(_0x2b9901){const _0x4412ce=await fetch(API_BASE+'/users/'+_0x2b9901);if(!_0x4412ce['ok']){const _0x4e5b03=await _0x4412ce['json']();throw new Error(_0x4e5b03['message']||'Failed\x20to\x20get\x20user');}return await _0x4412ce['json']();},async 'createUser'(_0x5394f5){const _0x4722a6=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5394f5)});if(!_0x4722a6['ok']){const _0x537357=await _0x4722a6['json']();throw new Error(_0x537357['message']||'Failed\x20to\x20create\x20user');}return await _0x4722a6['json']();},async 'updateUser'(_0x107887,_0x4cb57c){const _0xbeafcb=await fetch(API_BASE+'/users/'+_0x107887,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4cb57c)});if(!_0xbeafcb['ok']){const _0x269a8b=await _0xbeafcb['json']();throw new Error(_0x269a8b['message']||'Failed\x20to\x20update\x20user');}return await _0xbeafcb['json']();},async 'deleteUser'(_0x29623e){const _0x2a3452=await fetch(API_BASE+'/users/'+_0x29623e,{'method':'DELETE'});if(!_0x2a3452['ok']){const _0xc104e=await _0x2a3452['json']();throw new Error(_0xc104e['message']||'Failed\x20to\x20delete\x20user');}return await _0x2a3452['json']();},async 'stopAllContainers'(){const _0x49758b=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x363423=await _0x49758b['json']()['catch'](()=>({}));if(!_0x49758b['ok'])throw new Error(_0x363423['message']||_0x363423['error']||'Failed\x20to\x20stop\x20containers');return _0x363423;},async 'removeStoppedContainers'(){const _0x56f90f=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x35320a=await _0x56f90f['json']()['catch'](()=>({}));if(!_0x56f90f['ok'])throw new Error(_0x35320a['message']||_0x35320a['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x35320a;},async 'pruneDockerResources'(){const _0x204f45=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x1d2a95=await _0x204f45['json']()['catch'](()=>({}));if(!_0x204f45['ok'])throw new Error(_0x1d2a95['message']||_0x1d2a95['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x1d2a95;},async 'getUpdateSettings'(){const _0x3bb3f0=await fetch(API_BASE+'/health/update-settings'),_0x57ed49=await _0x3bb3f0['json']()['catch'](()=>({}));if(!_0x3bb3f0['ok'])throw new Error(_0x57ed49['message']||_0x57ed49['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x57ed49;},async 'applyServerUpdate'(_0x12f7ea){const _0x1b5268=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x12f7ea})}),_0x55353f=await _0x1b5268['json']()['catch'](()=>({}));if(!_0x1b5268['ok']){const _0x3b6f25=new Error(_0x55353f['message']||_0x55353f['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x55353f['output']!==undefined)_0x3b6f25['output']=_0x55353f['output'];if(_0x55353f['error']!==undefined)_0x3b6f25['commandError']=_0x55353f['error'];throw _0x3b6f25;}return _0x55353f;},async 'restartServer'(){const _0x505d37=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x1554b0=await _0x505d37['json']()['catch'](()=>({}));if(!_0x505d37['ok'])throw new Error(_0x1554b0['message']||_0x1554b0['error']||'Failed\x20to\x20restart\x20server');return _0x1554b0;},async 'getDockerContainers'(){const _0x471a14=await fetch(API_BASE+'/health/containers'),_0x566a40=await _0x471a14['json']()['catch'](()=>({}));if(!_0x471a14['ok'])throw new Error(_0x566a40['message']||_0x566a40['error']||'Failed\x20to\x20load\x20containers');return _0x566a40;},async 'getDockerImages'(){const _0x409317=await fetch(API_BASE+'/health/docker/images'),_0x4f98db=await _0x409317['json']()['catch'](()=>({}));if(!_0x409317['ok'])throw new Error(_0x4f98db['message']||_0x4f98db['error']||'Failed\x20to\x20load\x20images');return _0x4f98db;},async 'getDockerVolumes'(){const _0x3ddf8b=await fetch(API_BASE+'/health/docker/volumes'),_0x19c690=await _0x3ddf8b['json']()['catch'](()=>({}));if(!_0x3ddf8b['ok'])throw new Error(_0x19c690['message']||_0x19c690['error']||'Failed\x20to\x20load\x20volumes');return _0x19c690;},async 'getActiveSessions'(){const _0x696bf=await fetch(API_BASE+'/health/sessions'),_0x31a3ec=await _0x696bf['json']()['catch'](()=>({}));if(!_0x696bf['ok'])throw new Error(_0x31a3ec['message']||_0x31a3ec['error']||'Failed\x20to\x20load\x20sessions');return _0x31a3ec;},async 'getSystemInfo'(){const _0x425264=await fetch(API_BASE+'/health/system'),_0x3b0a0d=await _0x425264['json']()['catch'](()=>({}));if(!_0x425264['ok'])throw new Error(_0x3b0a0d['message']||_0x3b0a0d['error']||'Failed\x20to\x20load\x20system\x20info');return _0x3b0a0d;},async 'stopDockerContainer'(_0x35cf04){const _0x10e0ed=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x35cf04)+'/stop',{'method':'POST'}),_0x4986f6=await _0x10e0ed['json']()['catch'](()=>({}));if(!_0x10e0ed['ok'])throw new Error(_0x4986f6['message']||_0x4986f6['error']||'Failed\x20to\x20stop\x20container');return _0x4986f6;},async 'removeDockerContainer'(_0x3d6296){const _0x54de55=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x3d6296),{'method':'DELETE'}),_0xdea527=await _0x54de55['json']()['catch'](()=>({}));if(!_0x54de55['ok'])throw new Error(_0xdea527['message']||_0xdea527['error']||'Failed\x20to\x20remove\x20container');return _0xdea527;},async 'createPasswordToken'(_0x6640e6,_0x3098fe='setup',_0x316753=![]){const _0x4b2181=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x6640e6,'type':_0x3098fe,'sendEmail':_0x316753})});if(!_0x4b2181['ok']){const _0x454bb4=await _0x4b2181['json']();throw new Error(_0x454bb4['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x4b2181['json']();},async 'getEmailConfig'(){const _0x309fd4=await fetch(API_BASE+'/password/email-config');if(!_0x309fd4['ok']){const _0x234be7=await _0x309fd4['json']();throw new Error(_0x234be7['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x309fd4['json']();},async 'updateTaskName'(_0x4db062,_0xf59155){const _0x2507dd=await fetch(API_BASE+'/tasks/'+_0x4db062,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xf59155})});if(!_0x2507dd['ok']){const _0xe34c0a=await _0x2507dd['json']();throw new Error(_0xe34c0a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x2507dd['json']();},async 'updateTaskAlias'(_0xff2c6c,_0x22947c){const _0x120b9a=await fetch(API_BASE+'/tasks/'+_0xff2c6c,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'alias':_0x22947c})});if(!_0x120b9a['ok']){const _0x560480=await _0x120b9a['json']();throw new Error(_0x560480['error']||'Failed\x20to\x20update\x20task\x20alias');}return await _0x120b9a['json']();},async 'pinTask'(_0x521c69,_0x5631e6,_0x3b8685=null){if(!_0x521c69)throw new Error('Task\x20ID\x20is\x20required');const _0x47e3f1={'pinned':_0x5631e6};_0x3b8685&&_0x3b8685['length']>0x0&&(_0x47e3f1['additionalTaskIds']=_0x3b8685);const _0x10ea3e=await fetch(API_BASE+'/tasks/'+_0x521c69+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x47e3f1)});if(!_0x10ea3e['ok']){const _0x284237=await _0x10ea3e['json']();throw new Error(_0x284237['error']||'Failed\x20to\x20pin\x20task');}return await _0x10ea3e['json']();},async 'setTaskWinner'(_0xcecc81,_0x24a39f,_0x5dc515=[]){if(!_0xcecc81)throw new Error('Task\x20ID\x20is\x20required');const _0x4e8b1d=await fetch(API_BASE+'/tasks/'+_0xcecc81+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x24a39f,'siblings':_0x5dc515})});if(!_0x4e8b1d['ok']){const _0x231630=await _0x4e8b1d['json']();throw new Error(_0x231630['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x4e8b1d['json']();},async 'setTaskLoser'(_0x478936,_0x185710){if(!_0x478936)throw new Error('Task\x20ID\x20is\x20required');const _0x14f7fe=await fetch(API_BASE+'/tasks/'+_0x478936+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x185710})});if(!_0x14f7fe['ok']){const _0x439bb6=await _0x14f7fe['json']();throw new Error(_0x439bb6['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x14f7fe['json']();},async 'createTaskGroup'(_0x401623){const _0x1a2207=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x401623)});if(!_0x1a2207['ok']){const _0x369ec8=await _0x1a2207['json']();throw new Error(_0x369ec8['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x1a2207['json']();},async 'getTaskGroups'(_0xd355b8={}){const _0x4e292a=new URLSearchParams();if(_0xd355b8['userId'])_0x4e292a['set']('userId',String(_0xd355b8['userId']));if(_0xd355b8['status'])_0x4e292a['set']('status',String(_0xd355b8['status']));if(_0xd355b8['limit'])_0x4e292a['set']('limit',String(_0xd355b8['limit']));const _0x21e123=API_BASE+'/tasks/groups'+(_0x4e292a['toString']()?'?'+_0x4e292a['toString']():''),_0x3c8970=await fetch(_0x21e123);if(!_0x3c8970['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x3c8970['json']();},async 'getTaskGroup'(_0xe80bfa){const _0x13987a=await fetch(API_BASE+'/tasks/groups/'+_0xe80bfa);if(!_0x13987a['ok']){const _0x29b402=await _0x13987a['json']();throw new Error(_0x29b402['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x13987a['json']();},async 'updateTaskGroup'(_0x8fb81a,_0x1fbfa8,_0x452acd){const _0x170997=await fetch(API_BASE+'/tasks/'+_0x8fb81a+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x1fbfa8,'groupIndex':_0x452acd})});if(!_0x170997['ok']){const _0x259735=await _0x170997['json']();throw new Error(_0x259735['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x170997['json']();},async 'removeTaskFromGroup'(_0x21c0fe){return this['updateTaskGroup'](_0x21c0fe,null,null);},async 'deleteTaskGroup'(_0x14b3c9,_0x3d82bb=![]){const _0x43ad33=_0x3d82bb?'?deleteTasks=true':'',_0x79a99=await fetch(API_BASE+'/tasks/groups/'+_0x14b3c9+_0x43ad33,{'method':'DELETE'});if(!_0x79a99['ok']){const _0x2ee463=await _0x79a99['json']();throw new Error(_0x2ee463['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3a3afb,_0x1797dd){const _0x5041c3=await fetch(API_BASE+'/tasks/groups/'+_0x3a3afb+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1797dd})});if(!_0x5041c3['ok']){const _0x28ffb7=await _0x5041c3['json']();throw new Error(_0x28ffb7['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5041c3['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3c7a52){if(!_0x3c7a52)throw new Error('Task\x20ID\x20is\x20required');const _0x28bbd8=await fetch(API_BASE+'/tasks/'+_0x3c7a52+'/comments');if(!_0x28bbd8['ok']){const _0x59550e=await _0x28bbd8['json']()['catch'](()=>({}));throw new Error(_0x59550e['error']||'Failed\x20to\x20get\x20comments');}return await _0x28bbd8['json']();},async 'addComment'(_0x437151,_0x21b1bc){if(!_0x437151)throw new Error('Task\x20ID\x20is\x20required');if(!_0x21b1bc)throw new Error('Comment\x20content\x20is\x20required');const _0x8c839=await fetch(API_BASE+'/tasks/'+_0x437151+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x21b1bc})});if(!_0x8c839['ok']){const _0x2dc437=await _0x8c839['json']()['catch'](()=>({}));throw new Error(_0x2dc437['error']||'Failed\x20to\x20add\x20comment');}return await _0x8c839['json']();},async 'updateComment'(_0x5dbdaa,_0x3ad2d1,_0x2d0839){if(!_0x5dbdaa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3ad2d1)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x2d0839)throw new Error('Comment\x20content\x20is\x20required');const _0x4e8054=await fetch(API_BASE+'/tasks/'+_0x5dbdaa+'/comments/'+_0x3ad2d1,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2d0839})});if(!_0x4e8054['ok']){const _0x7d12d6=await _0x4e8054['json']()['catch'](()=>({}));throw new Error(_0x7d12d6['error']||'Failed\x20to\x20update\x20comment');}return await _0x4e8054['json']();},async 'deleteComment'(_0x4b44c2,_0x427f94){if(!_0x4b44c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x427f94)throw new Error('Comment\x20ID\x20is\x20required');const _0x5313c5=await fetch(API_BASE+'/tasks/'+_0x4b44c2+'/comments/'+_0x427f94,{'method':'DELETE'});if(!_0x5313c5['ok']){const _0x53dd5e=await _0x5313c5['json']()['catch'](()=>({}));throw new Error(_0x53dd5e['error']||'Failed\x20to\x20delete\x20comment');}return await _0x5313c5['json']();},async 'createObjective'(_0x337ca4){const _0x37f6ba={'objective':!![],'name':_0x337ca4['name']||'','environment':_0x337ca4['environment']||null,'agents':_0x337ca4['agents']||[],'branches':_0x337ca4['branches']||{},'isPinned':_0x337ca4['isPinned']||![],'parentObjectiveId':_0x337ca4['parentObjectiveId']||null,'env_vars':_0x337ca4['envVars']||{},'parameters':{'instructions':_0x337ca4['instructions']||''},'files':_0x337ca4['files']||[],'jira':_0x337ca4['jira']||null};return this['createTask'](_0x37f6ba);},async 'updateObjective'(_0x17b8be,_0x3f9d64,_0x269a97=[],_0x2d6dad=[]){let _0x37c493,_0x1adde0={};const _0x25847d={..._0x3f9d64};_0x2d6dad&&_0x2d6dad['length']>0x0&&(_0x25847d['removeAttachments']=_0x2d6dad);if(_0x269a97&&_0x269a97['length']>0x0){const _0x3ba461=new FormData();for(const [_0x4c057e,_0x594da2]of Object['entries'](_0x25847d)){if(_0x594da2==null)continue;typeof _0x594da2==='object'?_0x3ba461['append'](_0x4c057e,JSON['stringify'](_0x594da2)):_0x3ba461['append'](_0x4c057e,String(_0x594da2));}for(const _0x210a4a of _0x269a97){_0x3ba461['append']('attachments',_0x210a4a);}_0x37c493=_0x3ba461;}else _0x1adde0['Content-Type']='application/json',_0x37c493=JSON['stringify'](_0x25847d);const _0x132bef=await fetch(API_BASE+'/tasks/'+_0x17b8be,{'method':'PATCH','headers':_0x1adde0,'body':_0x37c493});if(!_0x132bef['ok']){const _0x4b2877=await _0x132bef['json']();throw new Error(_0x4b2877['error']||'Failed\x20to\x20update\x20objective');}return await _0x132bef['json']();},async 'deleteObjective'(_0x41969a){return this['deleteTask'](_0x41969a);},async 'launchObjective'(_0x48f54e,_0x4e93a9={}){const _0x54f6c4=await fetch(API_BASE+'/tasks/'+_0x48f54e+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e93a9)});if(!_0x54f6c4['ok']){const _0x18547a=await _0x54f6c4['json']();throw new Error(_0x18547a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x54f6c4['json']();},async 'getObjectiveAttachments'(_0xc81c64){return this['getTaskAttachments'](_0xc81c64);},async 'createJudgeTask'({environment:_0x12ff16,judgeAgent:_0x424319,groupId:_0x40fe9e,taskIds:_0x3e36af,judgeCustomInstructions:_0xb8b9d,isPinned:_0x3d3686}){const _0x74dbb6=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x12ff16,'judgeAgent':_0x424319,'groupId':_0x40fe9e,'taskIds':_0x3e36af,'judgeCustomInstructions':_0xb8b9d,'isPinned':_0x3d3686})});if(!_0x74dbb6['ok']){const _0x4abc96=await _0x74dbb6['json']();throw new Error(_0x4abc96['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x74dbb6['json']();},async 'getJudgeTasks'(_0x4fa7ad){const _0x188953=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x4fa7ad));if(!_0x188953['ok']){const _0x5bbebf=await _0x188953['json']();throw new Error(_0x5bbebf['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x188953['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x209c0a,_0x104141,_0x4b2972=''){const _0x13380b=await fetch(API_BASE+'/tasks/'+_0x209c0a+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x104141,'customPreamble':_0x4b2972})});if(!_0x13380b['ok']){const _0xbb208d=await _0x13380b['json']();throw new Error(_0xbb208d['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x13380b['json']();},async 'getJiraConfig'(){const _0x2d5be5=await fetch(API_BASE+'/jira/config');if(!_0x2d5be5['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x2d5be5['json']();},async 'getJiraIssue'(_0x3de965){const _0x127e6a=await fetch(API_BASE+'/jira/issues/'+_0x3de965);if(!_0x127e6a['ok']){const _0x20e2e5=await _0x127e6a['json']()['catch'](()=>({}));throw new Error(_0x20e2e5['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x127e6a['statusText']);}return await _0x127e6a['json']();},async 'searchJiraIssues'(_0x1ce0e1,_0x1857e5=0x14){const _0x53dee2=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x1ce0e1,'maxResults':_0x1857e5})});if(!_0x53dee2['ok']){const _0x1ea355=await _0x53dee2['json']()['catch'](()=>({}));throw new Error(_0x1ea355['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x53dee2['statusText']);}return await _0x53dee2['json']();},async 'postJiraComment'(_0x53f0ab,_0x57f6bf){const _0x4fd86c=await fetch(API_BASE+'/jira/issues/'+_0x53f0ab+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x57f6bf})});if(!_0x4fd86c['ok']){const _0x3cd6eb=await _0x4fd86c['json']()['catch'](()=>({}));throw new Error(_0x3cd6eb['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x4fd86c['statusText']);}return await _0x4fd86c['json']();},async 'getJiraComments'(_0x1a3a2d){const _0x56f1cb=await fetch(API_BASE+'/jira/issues/'+_0x1a3a2d+'/comments');if(!_0x56f1cb['ok']){const _0x542f64=await _0x56f1cb['json']()['catch'](()=>({}));throw new Error(_0x542f64['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x56f1cb['statusText']);}return await _0x56f1cb['json']();},async 'promptParameter'({environment:_0x53e2c1,command:_0x32b2e8,parser:parser='json'}){const _0x28a3fe=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x53e2c1,'command':_0x32b2e8,'parser':parser})});if(!_0x28a3fe['ok']){const _0x5204cd=await _0x28a3fe['json']()['catch'](()=>({}));throw new Error(_0x5204cd['message']||_0x5204cd['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x28a3fe['statusText']);}return await _0x28a3fe['json']();},async 'promptParameterStream'(_0x3aa325,_0x4fa9de){const _0x16cc03=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3aa325)});if(!_0x16cc03['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x16cc03['statusText']);const _0x2d4122=_0x16cc03['body']['getReader'](),_0xdd995f=new TextDecoder();let _0x4d61d3='';return new Promise((_0x48a540,_0x2f9e61)=>{const _0x2cb5c7=async()=>{try{const {done:_0x42b4d2,value:_0x29e39d}=await _0x2d4122['read']();if(_0x42b4d2)return;_0x4d61d3+=_0xdd995f['decode'](_0x29e39d,{'stream':!![]});const _0x1c31c1=_0x4d61d3['split']('\x0a\x0a');_0x4d61d3=_0x1c31c1['pop']()||'';for(const _0x364ae5 of _0x1c31c1){if(!_0x364ae5['trim']())continue;const _0x296c57=_0x364ae5['split']('\x0a');let _0x48eaac='message',_0x34efc0='';for(const _0x1e1220 of _0x296c57){if(_0x1e1220['startsWith']('event:'))_0x48eaac=_0x1e1220['substring'](0x6)['trim']();else _0x1e1220['startsWith']('data:')&&(_0x34efc0=_0x1e1220['substring'](0x5)['trim']());}if(!_0x34efc0)continue;try{const _0x464dbf=JSON['parse'](_0x34efc0);if(_0x48eaac==='progress'&&_0x4fa9de)_0x4fa9de(_0x464dbf['stage'],_0x464dbf['message']);else{if(_0x48eaac==='result'){_0x48a540(_0x464dbf);return;}else{if(_0x48eaac==='error'){let _0x13aee8=_0x464dbf['message']||_0x464dbf['error']||'Prompt\x20command\x20failed';_0x464dbf['rawOutput']&&(_0x13aee8+='\x0a\x0aRaw\x20output:\x0a'+_0x464dbf['rawOutput']);_0x2f9e61(new Error(_0x13aee8));return;}}}}catch(_0x3bbdfb){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x3bbdfb),console['error']('Event\x20type:',_0x48eaac),console['error']('Event\x20data:',_0x34efc0),console['error']('First\x20200\x20chars:',_0x34efc0['substring'](0x0,0xc8)),_0x2f9e61(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x3bbdfb['message']+'\x0a\x0aData:\x20'+_0x34efc0['substring'](0x0,0x1f4)));return;}}_0x2cb5c7();}catch(_0x25db19){_0x2f9e61(_0x25db19);}};_0x2cb5c7();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x2b8a30){const _0x5bafde=await fetch(''+API_BASE+_0x2b8a30);if(!_0x5bafde['ok']){const _0x5687a1=await _0x5bafde['json']()['catch'](()=>({'error':_0x5bafde['statusText']})),_0x31ef76=new Error(_0x5687a1['error']||_0x5687a1['message']||_0x5bafde['statusText']);if(_0x5687a1['detail']!==undefined)_0x31ef76['detail']=_0x5687a1['detail'];throw _0x31ef76;}return await _0x5bafde['json']();},async 'post'(_0x1f0839,_0x5c91f5){const _0x2ebeaa=await fetch(''+API_BASE+_0x1f0839,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c91f5)});if(!_0x2ebeaa['ok']){const _0x537c19=await _0x2ebeaa['json']()['catch'](()=>({'error':_0x2ebeaa['statusText']})),_0x4548e5=new Error(_0x537c19['error']||_0x537c19['message']||_0x2ebeaa['statusText']);if(_0x537c19['detail']!==undefined)_0x4548e5['detail']=_0x537c19['detail'];throw _0x4548e5;}return await _0x2ebeaa['json']();},async 'put'(_0x176a3f,_0x1639a3){const _0x3df903=await fetch(''+API_BASE+_0x176a3f,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1639a3)});if(!_0x3df903['ok']){const _0x255c27=await _0x3df903['json']()['catch'](()=>({'error':_0x3df903['statusText']})),_0x211135=new Error(_0x255c27['error']||_0x255c27['message']||_0x3df903['statusText']);if(_0x255c27['detail']!==undefined)_0x211135['detail']=_0x255c27['detail'];throw _0x211135;}return await _0x3df903['json']();},async 'delete'(_0x2257be,_0x2a49ee){const _0x53beec={'method':'DELETE'};_0x2a49ee&&(_0x53beec['headers']={'Content-Type':'application/json'},_0x53beec['body']=JSON['stringify'](_0x2a49ee));const _0x47dfda=await fetch(''+API_BASE+_0x2257be,_0x53beec);if(!_0x47dfda['ok']){const _0x107e96=await _0x47dfda['json']()['catch'](()=>({'error':_0x47dfda['statusText']})),_0x3f364a=new Error(_0x107e96['error']||_0x107e96['message']||_0x47dfda['statusText']);if(_0x107e96['detail']!==undefined)_0x3f364a['detail']=_0x107e96['detail'];throw _0x3f364a;}return await _0x47dfda['json']();},async 'getSkills'(){const _0x2a0f67=await fetch(API_BASE+'/skills');if(!_0x2a0f67['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x2a0f67['statusText']);return await _0x2a0f67['json']();},async 'getSkill'(_0xb35db8){const _0x37d8a5=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xb35db8));if(!_0x37d8a5['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x37d8a5['statusText']);return await _0x37d8a5['json']();},async 'createSkill'(_0x558093){const _0x201250=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558093)});if(!_0x201250['ok']){const _0x583811=await _0x201250['json']()['catch'](()=>({'error':_0x201250['statusText']})),_0x5a8779=new Error(_0x583811['error']||_0x583811['message']||_0x201250['statusText']);if(_0x583811['detail']!==undefined)_0x5a8779['detail']=_0x583811['detail'];throw _0x5a8779;}return await _0x201250['json']();},async 'updateSkill'(_0x2ac04c,_0x84eb56){const _0xda524b=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ac04c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x84eb56)});if(!_0xda524b['ok']){const _0x46ea7f=await _0xda524b['json']()['catch'](()=>({'error':_0xda524b['statusText']})),_0x23bdce=new Error(_0x46ea7f['error']||_0x46ea7f['message']||_0xda524b['statusText']);if(_0x46ea7f['detail']!==undefined)_0x23bdce['detail']=_0x46ea7f['detail'];throw _0x23bdce;}return await _0xda524b['json']();},async 'deleteSkill'(_0x5a9909){const _0x3a23d0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5a9909),{'method':'DELETE'});if(!_0x3a23d0['ok']){const _0x2c1b12=await _0x3a23d0['json']()['catch'](()=>({'error':_0x3a23d0['statusText']})),_0x1fd29f=new Error(_0x2c1b12['error']||_0x2c1b12['message']||_0x3a23d0['statusText']);if(_0x2c1b12['detail']!==undefined)_0x1fd29f['detail']=_0x2c1b12['detail'];throw _0x1fd29f;}return await _0x3a23d0['json']();},async 'getSkillFile'(_0x44d39b,_0x4f5ea2){const _0x3ac31f=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x44d39b)+'/files/'+_0x4f5ea2);if(!_0x3ac31f['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x3ac31f['statusText']);return await _0x3ac31f['json']();},async 'saveSkillFile'(_0x34c6e3,_0x7a40d0,_0x34400a){const _0xad0dcb=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x34c6e3)+'/files/'+_0x7a40d0,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x34400a})});if(!_0xad0dcb['ok']){const _0x18a6ee=await _0xad0dcb['json']()['catch'](()=>({'error':_0xad0dcb['statusText']})),_0x45dd41=new Error(_0x18a6ee['error']||_0x18a6ee['message']||_0xad0dcb['statusText']);if(_0x18a6ee['detail']!==undefined)_0x45dd41['detail']=_0x18a6ee['detail'];throw _0x45dd41;}return await _0xad0dcb['json']();},async 'deleteSkillFile'(_0x256a69,_0x12576d){const _0x268dcf=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x256a69)+'/files/'+_0x12576d,{'method':'DELETE'});if(!_0x268dcf['ok']){const _0x1b812e=await _0x268dcf['json']()['catch'](()=>({'error':_0x268dcf['statusText']})),_0x439e53=new Error(_0x1b812e['error']||_0x1b812e['message']||_0x268dcf['statusText']);if(_0x1b812e['detail']!==undefined)_0x439e53['detail']=_0x1b812e['detail'];throw _0x439e53;}return await _0x268dcf['json']();},async 'pullSkills'(){const _0x58a3c5=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x58a3c5['ok']){const _0x3d2ced=await _0x58a3c5['json']()['catch'](()=>({'error':_0x58a3c5['statusText']})),_0x22bc4f=new Error(_0x3d2ced['error']||_0x3d2ced['message']||_0x58a3c5['statusText']);if(_0x3d2ced['detail']!==undefined)_0x22bc4f['detail']=_0x3d2ced['detail'];throw _0x22bc4f;}return await _0x58a3c5['json']();},async 'commitSkills'(_0x4c9381,_0x13ba07={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x13ba07,_0x384936=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x4c9381,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x384936['ok']){const _0x558e7a=await _0x384936['json']()['catch'](()=>({'error':_0x384936['statusText']})),_0x368ea0=new Error(_0x558e7a['error']||_0x558e7a['message']||_0x384936['statusText']);if(_0x558e7a['detail']!==undefined)_0x368ea0['detail']=_0x558e7a['detail'];throw _0x368ea0;}return await _0x384936['json']();},async 'discardSkillsChanges'(){const _0xac7726=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0xac7726['ok']){const _0x456270=await _0xac7726['json']()['catch'](()=>({'error':_0xac7726['statusText']})),_0x56274d=new Error(_0x456270['error']||_0x456270['message']||_0xac7726['statusText']);if(_0x456270['detail']!==undefined)_0x56274d['detail']=_0x456270['detail'];throw _0x56274d;}return await _0xac7726['json']();},async 'getSkillCatalog'(){const _0x28574e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x28574e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x28574e['statusText']);return await _0x28574e['json']();},async 'getImportedSkillsRegistry'(){const _0x4f495f=await fetch(API_BASE+'/external-skills/registry');if(!_0x4f495f['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x4f495f['statusText']);return await _0x4f495f['json']();},async 'importCatalogSkill'(_0x54b6c3){const _0x3c15a1=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x54b6c3})});if(!_0x3c15a1['ok']){const _0x4002bc=await _0x3c15a1['json']()['catch'](()=>({'error':_0x3c15a1['statusText']})),_0x2f126f=new Error(_0x4002bc['error']||_0x4002bc['message']||_0x3c15a1['statusText']);if(_0x4002bc['detail']!==undefined)_0x2f126f['detail']=_0x4002bc['detail'];throw _0x2f126f;}return await _0x3c15a1['json']();},async 'importSkillFromGit'(_0x58b656,_0x489a08,_0x52169f='main',_0x286d7c=null){const _0x3b4d4b=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x58b656,'skillPath':_0x489a08,'branch':_0x52169f,'skillId':_0x286d7c})});if(!_0x3b4d4b['ok']){const _0x2c8605=await _0x3b4d4b['json']()['catch'](()=>({'error':_0x3b4d4b['statusText']})),_0x4f8bf4=new Error(_0x2c8605['error']||_0x2c8605['message']||_0x3b4d4b['statusText']);if(_0x2c8605['detail']!==undefined)_0x4f8bf4['detail']=_0x2c8605['detail'];throw _0x4f8bf4;}return await _0x3b4d4b['json']();},async 'probeMarketplace'(_0x4f0cdb,_0x54fde0='main'){const _0x57b9bc=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f0cdb,'branch':_0x54fde0})});if(!_0x57b9bc['ok']){const _0x33d0fe=await _0x57b9bc['json']()['catch'](()=>({'error':_0x57b9bc['statusText']})),_0x43ccdb=new Error(_0x33d0fe['error']||_0x33d0fe['message']||_0x57b9bc['statusText']);if(_0x33d0fe['detail']!==undefined)_0x43ccdb['detail']=_0x33d0fe['detail'];throw _0x43ccdb;}return await _0x57b9bc['json']();},async 'importMarketplaceBundle'(_0x472381,_0x35fce6,_0x5415f9,_0x5f307b=null){const _0x18ed18=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x472381,'branch':_0x35fce6,'bundleId':_0x5415f9,'selectedSkills':_0x5f307b})});if(!_0x18ed18['ok']){const _0x43aac0=await _0x18ed18['json']()['catch'](()=>({'error':_0x18ed18['statusText']})),_0x5b7d57=new Error(_0x43aac0['error']||_0x43aac0['message']||_0x18ed18['statusText']);if(_0x43aac0['detail']!==undefined)_0x5b7d57['detail']=_0x43aac0['detail'];throw _0x5b7d57;}return await _0x18ed18['json']();},async 'importSkillFromFolder'(_0x17d74c,_0x5a9d4c=null){const _0x518326=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x17d74c,'skillId':_0x5a9d4c})});if(!_0x518326['ok']){const _0x266cc=await _0x518326['json']()['catch'](()=>({'error':_0x518326['statusText']})),_0x395c66=new Error(_0x266cc['error']||_0x266cc['message']||_0x518326['statusText']);if(_0x266cc['detail']!==undefined)_0x395c66['detail']=_0x266cc['detail'];throw _0x395c66;}return await _0x518326['json']();},async 'importSkillFromNpm'(_0xf8795f,_0x2bfb1c='latest',_0x583bda=null,_0x37d348=null){const _0x4ef937=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0xf8795f,'version':_0x2bfb1c,'skillId':_0x583bda,'registry':_0x37d348})});if(!_0x4ef937['ok']){const _0x214863=await _0x4ef937['json']()['catch'](()=>({'error':_0x4ef937['statusText']})),_0x9dfbd6=new Error(_0x214863['error']||_0x214863['message']||_0x4ef937['statusText']);if(_0x214863['detail']!==undefined)_0x9dfbd6['detail']=_0x214863['detail'];throw _0x9dfbd6;}return await _0x4ef937['json']();},async 'checkSkillUpdates'(_0x16c78d){const _0x63f077=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x16c78d)+'/check-updates',{'method':'POST'});if(!_0x63f077['ok']){const _0x4d4395=await _0x63f077['json']()['catch'](()=>({'error':_0x63f077['statusText']})),_0x361254=new Error(_0x4d4395['error']||_0x4d4395['message']||_0x63f077['statusText']);if(_0x4d4395['detail']!==undefined)_0x361254['detail']=_0x4d4395['detail'];throw _0x361254;}return await _0x63f077['json']();},async 'updateExternalSkill'(_0x496afc){const _0x3c73b0=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x496afc)+'/update',{'method':'POST'});if(!_0x3c73b0['ok']){const _0x4f43ee=await _0x3c73b0['json']()['catch'](()=>({'error':_0x3c73b0['statusText']})),_0x2438d8=new Error(_0x4f43ee['error']||_0x4f43ee['message']||_0x3c73b0['statusText']);if(_0x4f43ee['detail']!==undefined)_0x2438d8['detail']=_0x4f43ee['detail'];throw _0x2438d8;}return await _0x3c73b0['json']();},async 'updateSkillFlags'(_0x14b4e6,_0x2c06ba){const _0x3a5d81=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x14b4e6)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2c06ba})});if(!_0x3a5d81['ok']){const _0x4d36fb=await _0x3a5d81['json']()['catch'](()=>({'error':_0x3a5d81['statusText']})),_0x5a9159=new Error(_0x4d36fb['error']||_0x4d36fb['message']||_0x3a5d81['statusText']);if(_0x4d36fb['detail']!==undefined)_0x5a9159['detail']=_0x4d36fb['detail'];throw _0x5a9159;}return await _0x3a5d81['json']();},async 'removeFromImportedRegistry'(_0x32a261){const _0x567b30=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x32a261)+'/registry',{'method':'DELETE'});if(!_0x567b30['ok']){const _0x403f65=await _0x567b30['json']()['catch'](()=>({'error':_0x567b30['statusText']})),_0x3cb009=new Error(_0x403f65['error']||_0x403f65['message']||_0x567b30['statusText']);if(_0x403f65['detail']!==undefined)_0x3cb009['detail']=_0x403f65['detail'];throw _0x3cb009;}return await _0x567b30['json']();},async 'getTeams'(){const _0x200e5a=await fetch(API_BASE+'/teams');if(!_0x200e5a['ok']){const _0x9b60b1=await _0x200e5a['json']()['catch'](()=>({'message':_0x200e5a['statusText']}));throw new Error(_0x9b60b1['message']||'Failed\x20to\x20get\x20teams');}return await _0x200e5a['json']();},async 'getTeam'(_0x2346ca){const _0x369e18=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2346ca));if(!_0x369e18['ok']){const _0x372239=await _0x369e18['json']()['catch'](()=>({'message':_0x369e18['statusText']}));throw new Error(_0x372239['message']||'Failed\x20to\x20get\x20team');}return await _0x369e18['json']();},async 'createTeam'(_0x36685b){const _0x79b209=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36685b)});if(!_0x79b209['ok']){const _0x457d41=await _0x79b209['json']()['catch'](()=>({'message':_0x79b209['statusText']}));throw new Error(_0x457d41['message']||'Failed\x20to\x20create\x20team');}return await _0x79b209['json']();},async 'updateTeam'(_0x40dced,_0x192330){const _0x2a7036=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x40dced),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x192330)});if(!_0x2a7036['ok']){const _0x1771cf=await _0x2a7036['json']()['catch'](()=>({'message':_0x2a7036['statusText']}));throw new Error(_0x1771cf['message']||'Failed\x20to\x20update\x20team');}return await _0x2a7036['json']();},async 'deleteTeam'(_0x1dc369){const _0x1a3be6=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1dc369),{'method':'DELETE'});if(!_0x1a3be6['ok']){const _0x3c6ecb=await _0x1a3be6['json']()['catch'](()=>({'message':_0x1a3be6['statusText']}));throw new Error(_0x3c6ecb['message']||'Failed\x20to\x20delete\x20team');}return await _0x1a3be6['json']();},async 'addTeamMember'(_0x47a7d0,_0xcc754c){const _0x4ee2ab=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x47a7d0)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0xcc754c})});if(!_0x4ee2ab['ok']){const _0xa790b7=await _0x4ee2ab['json']()['catch'](()=>({'message':_0x4ee2ab['statusText']}));throw new Error(_0xa790b7['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x4ee2ab['json']();},async 'removeTeamMember'(_0x1ba059,_0x5e525d){const _0x2339bf=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1ba059)+'/members/'+encodeURIComponent(_0x5e525d),{'method':'DELETE'});if(!_0x2339bf['ok']){const _0x1b8c61=await _0x2339bf['json']()['catch'](()=>({'message':_0x2339bf['statusText']}));throw new Error(_0x1b8c61['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x2339bf['json']();},async 'getBindings'(_0x1d65d4={}){const _0x579939=new URLSearchParams();if(_0x1d65d4['resource_type'])_0x579939['set']('resource_type',_0x1d65d4['resource_type']);if(_0x1d65d4['resource_id'])_0x579939['set']('resource_id',_0x1d65d4['resource_id']);if(_0x1d65d4['subject_type'])_0x579939['set']('subject_type',_0x1d65d4['subject_type']);if(_0x1d65d4['subject_id'])_0x579939['set']('subject_id',_0x1d65d4['subject_id']);const _0x321410=_0x579939['toString'](),_0x582e78=await fetch(API_BASE+'/bindings'+(_0x321410?'?'+_0x321410:''));if(!_0x582e78['ok']){const _0x3af077=await _0x582e78['json']()['catch'](()=>({'message':_0x582e78['statusText']}));throw new Error(_0x3af077['message']||'Failed\x20to\x20get\x20bindings');}return await _0x582e78['json']();},async 'createBinding'(_0x393921){const _0x31776f=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x393921)});if(!_0x31776f['ok']){const _0x2c5ec5=await _0x31776f['json']()['catch'](()=>({'message':_0x31776f['statusText']}));throw new Error(_0x2c5ec5['message']||'Failed\x20to\x20create\x20binding');}return await _0x31776f['json']();},async 'updateBinding'(_0x111b3e,_0x55bbff){const _0x59bcb6=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x111b3e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x55bbff)});if(!_0x59bcb6['ok']){const _0x84cba0=await _0x59bcb6['json']()['catch'](()=>({'message':_0x59bcb6['statusText']}));throw new Error(_0x84cba0['message']||'Failed\x20to\x20update\x20binding');}return await _0x59bcb6['json']();},async 'deleteBinding'(_0x28c718){const _0x46a9bb=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x28c718),{'method':'DELETE'});if(!_0x46a9bb['ok']){const _0x382d8c=await _0x46a9bb['json']()['catch'](()=>({'message':_0x46a9bb['statusText']}));throw new Error(_0x382d8c['message']||'Failed\x20to\x20delete\x20binding');}return await _0x46a9bb['json']();},async 'getRoleDefinitions'(){const _0x458e46=await fetch(API_BASE+'/roles');if(!_0x458e46['ok']){const _0x305923=await _0x458e46['json']()['catch'](()=>({'message':_0x458e46['statusText']}));throw new Error(_0x305923['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x458e46['json']();},async 'getRoleDefinition'(_0x3e0f8d){const _0x214107=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3e0f8d));if(!_0x214107['ok']){const _0x43fb52=await _0x214107['json']()['catch'](()=>({'message':_0x214107['statusText']}));throw new Error(_0x43fb52['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x214107['json']();},async 'createRoleDefinition'(_0x1084bc){const _0x5bae4a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1084bc)});if(!_0x5bae4a['ok']){const _0x106654=await _0x5bae4a['json']()['catch'](()=>({'message':_0x5bae4a['statusText']}));throw new Error(_0x106654['message']||_0x106654['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x5bae4a['json']();},async 'updateRoleDefinition'(_0x58354a,_0x30e8dd){const _0x28c77c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x58354a),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x30e8dd)});if(!_0x28c77c['ok']){const _0x102a4b=await _0x28c77c['json']()['catch'](()=>({'message':_0x28c77c['statusText']}));throw new Error(_0x102a4b['message']||_0x102a4b['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x28c77c['json']();},async 'deleteRoleDefinition'(_0x3dbbf2){const _0x5b2c13=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3dbbf2),{'method':'DELETE'});if(!_0x5b2c13['ok']){const _0x5f3a1a=await _0x5b2c13['json']()['catch'](()=>({'message':_0x5b2c13['statusText']}));throw new Error(_0x5f3a1a['message']||_0x5f3a1a['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x5b2c13['json']();},async 'getAvailablePermissions'(){const _0x23e151=await fetch(API_BASE+'/roles/available-permissions');if(!_0x23e151['ok']){const _0x49531e=await _0x23e151['json']()['catch'](()=>({'message':_0x23e151['statusText']}));throw new Error(_0x49531e['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x23e151['json']();},async 'getGitProviderAllowedTeams'(_0x3f725e){const _0x523ce5=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3f725e)+'/allowed-teams');if(!_0x523ce5['ok']){const _0x45a815=await _0x523ce5['json']()['catch'](()=>({'message':_0x523ce5['statusText']}));throw new Error(_0x45a815['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x523ce5['json']();},async 'setGitProviderAllowedTeams'(_0x2fbba2,_0x1c065d){const _0x22d813=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2fbba2)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x1c065d})});if(!_0x22d813['ok']){const _0xa7673b=await _0x22d813['json']()['catch'](()=>({'message':_0x22d813['statusText']}));throw new Error(_0xa7673b['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x22d813['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 _0x366235=toastState['baseBottom'];toastState['toasts']['forEach'](_0x1697c2=>{_0x1697c2['el']['style']['bottom']=_0x366235+'px';const _0x32a47f=_0x1697c2['el']['offsetHeight']||toastState['defaultHeight'];_0x366235+=_0x32a47f+toastState['gap'];});});}function removeToastById(_0x3f98d7){const _0x24889d=toastState['toasts']['findIndex'](_0x14ddfd=>_0x14ddfd['id']===_0x3f98d7);if(_0x24889d===-0x1)return;const _0xbd4e0b=toastState['toasts'][_0x24889d];if(_0xbd4e0b['timeoutId'])clearTimeout(_0xbd4e0b['timeoutId']);_0xbd4e0b['el']['classList']['remove']('show'),setTimeout(()=>_0xbd4e0b['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x24889d,0x1),repositionAllToasts();}function registerToast(_0x5346b7){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x5346b7),repositionAllToasts(),_0x5346b7['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(_0x3770a1){if(_0x3770a1===null||_0x3770a1===undefined)return'';return String(_0x3770a1)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x326698,_0x271327){if(_0x326698&&typeof _0x326698==='object'&&!Array['isArray'](_0x326698))return{'code':typeof _0x326698['text']==='string'?_0x326698['text']:'','language':typeof _0x326698['lang']==='string'?_0x326698['lang']:''};return{'code':typeof _0x326698==='string'?_0x326698:'','language':typeof _0x271327==='string'?_0x271327:''};}function buildMermaidBlock(_0xa8de97){const _0xd0a292=String(_0xa8de97||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0xd0a292))+'\x22>'+escapeHtmlValue(_0xd0a292)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x41070f=new marked['Renderer'](),_0x10a4bd=_0x41070f['code']['bind'](_0x41070f);return _0x41070f['code']=function(_0x347302,_0x1e563c,..._0x448620){const {code:_0x149472,language:_0x3b06fe}=getMarkdownCodeBlockPayload(_0x347302,_0x1e563c),_0x1610bc=String(_0x3b06fe||'')['trim']()['toLowerCase']();if(_0x1610bc==='mermaid')return buildMermaidBlock(_0x149472);const _0x4913ce=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x4913ce&&_0x1610bc)try{const _0x43166b=_0x4913ce['getLanguage'](_0x1610bc)?_0x1610bc:'plaintext',_0x45233f=_0x4913ce['highlight'](_0x149472,{'language':_0x43166b})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1610bc)+'\x22>'+_0x45233f+'</code></pre>';}catch(_0x5d832e){console['error']('Syntax\x20highlighting\x20error:',_0x5d832e);}return _0x10a4bd(_0x347302,_0x1e563c,..._0x448620);},sharedMarkedRenderer=_0x41070f,_0x41070f;}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 _0x569203=window['mermaid'];if(!_0x569203||typeof _0x569203['initialize']!=='function')return _0x569203||null;return _0x569203['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x569203;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x32bce5,_0x185511)=>{const _0xecb45d=()=>_0x32bce5(configureMermaidInstance()),_0x52c4aa=()=>{mermaidLoadPromise=null,_0x185511(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x200c35=document['getElementById'](MERMAID_SCRIPT_ID);!_0x200c35&&(_0x200c35=document['createElement']('script'),_0x200c35['id']=MERMAID_SCRIPT_ID,_0x200c35['src']=MERMAID_SCRIPT_SRC,_0x200c35['async']=!![],document['head']['appendChild'](_0x200c35));if(window['mermaid']){_0xecb45d();return;}_0x200c35['addEventListener']('load',_0xecb45d,{'once':!![]}),_0x200c35['addEventListener']('error',_0x52c4aa,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x717ac2){const _0x43115b=_0x717ac2['getAttribute']('data-mermaid-source');if(!_0x43115b)return null;let _0x2ace42=_0x43115b;try{_0x2ace42=decodeURIComponent(_0x43115b);}catch{}return _0x717ac2['textContent']=_0x2ace42,_0x717ac2['removeAttribute']('data-processed'),_0x717ac2['removeAttribute']('aria-roledescription'),_0x717ac2['removeAttribute']('role'),_0x717ac2['removeAttribute']('aria-label'),_0x2ace42;}function collectMermaidNodes(_0x521399,_0x357a90){if(!(_0x521399 instanceof Element))return;_0x521399['matches']('.mermaid[data-mermaid-source]')&&_0x357a90['add'](_0x521399),_0x521399['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x44c8cd=>{_0x357a90['add'](_0x44c8cd);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x12a129=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x17b378=>setTimeout(_0x17b378,0x0);_0x12a129(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x30d246=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x30d246);});});}function queueMermaidRender(_0x4795d2){const _0x58bc4a=new Set();_0x4795d2 instanceof Document||_0x4795d2 instanceof DocumentFragment?_0x4795d2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x224b86=>_0x58bc4a['add'](_0x224b86)):collectMermaidNodes(_0x4795d2,_0x58bc4a);if(_0x58bc4a['size']===0x0)return;_0x58bc4a['forEach'](_0x34cb21=>pendingMermaidNodes['add'](_0x34cb21)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0xe44f25=Array['from'](pendingMermaidNodes)['filter'](_0x32000f=>_0x32000f['isConnected']);pendingMermaidNodes['clear']();if(_0xe44f25['length']===0x0)return;const _0xd0c15=await loadMermaid();if(!_0xd0c15)return;configureMermaidInstance();const _0x1d2a5d=getMermaidTheme();for(const _0x1f6498 of _0xe44f25){const _0x19abdb=_0x1f6498['getAttribute']('data-mermaid-source');if(!_0x19abdb)continue;const _0x4fef3c=_0x1f6498['getAttribute']('data-processed')==='true';if(_0x4fef3c&&_0x1f6498['dataset']['mermaidTheme']===_0x1d2a5d)continue;restoreMermaidSource(_0x1f6498);try{if(typeof _0xd0c15['run']==='function')await _0xd0c15['run']({'nodes':[_0x1f6498]});else typeof _0xd0c15['init']==='function'&&_0xd0c15['init'](undefined,[_0x1f6498]);_0x1f6498['dataset']['mermaidTheme']=_0x1d2a5d,delete _0x1f6498['dataset']['mermaidError'];}catch(_0x81364e){console['error']('Mermaid\x20render\x20failed:',_0x81364e),restoreMermaidSource(_0x1f6498),_0x1f6498['dataset']['mermaidError']='true',delete _0x1f6498['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x244a4b=>{_0x244a4b['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x244a4b);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x569971=>{_0x569971['forEach'](_0x149ee=>{_0x149ee['addedNodes']['forEach'](_0x3c6ea5=>{_0x3c6ea5['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3c6ea5);});});}),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'(_0x5d6ee4){const _0xc29358=new Date(_0x5d6ee4),_0x451899=new Date(),_0x1118e5=_0x451899-_0xc29358,_0x451483=Math['floor'](_0x1118e5/0x3e8),_0x4306d2=Math['floor'](_0x451483/0x3c),_0x38540a=Math['floor'](_0x4306d2/0x3c),_0x2bec07=Math['floor'](_0x38540a/0x18);if(_0x451483<0x3c)return'now';if(_0x4306d2<0x3c)return _0x4306d2+'m\x20ago';if(_0x38540a<0x18)return _0x38540a+'h\x20ago';return _0x2bec07+'d\x20ago';},'getStatusIcon'(_0x230552){switch(_0x230552){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x3415bd){switch(_0x3415bd){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'(_0xeeae37,_0x30af5e=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x4a033a={};_0x4a033a['text/plain']=new Blob([_0xeeae37],{'type':'text/plain'});_0x30af5e&&(_0x4a033a['text/html']=new Blob([_0x30af5e],{'type':'text/html'}));const _0x416421=new ClipboardItem(_0x4a033a);return await navigator['clipboard']['write']([_0x416421]),!![];}catch(_0x441b90){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x441b90);}try{const _0x30badb=_0x3d6565=>{_0x3d6565['preventDefault'](),_0x3d6565['clipboardData']['setData']('text/plain',_0xeeae37),_0x30af5e&&_0x3d6565['clipboardData']['setData']('text/html',_0x30af5e);};document['addEventListener']('copy',_0x30badb);const _0x651e42=document['execCommand']('copy');document['removeEventListener']('copy',_0x30badb);if(_0x651e42)return!![];}catch(_0x20dc14){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x20dc14);}try{const _0x2ba4cd=document['createElement']('textarea');_0x2ba4cd['value']=_0xeeae37,_0x2ba4cd['style']['position']='fixed',_0x2ba4cd['style']['opacity']='0',_0x2ba4cd['style']['pointerEvents']='none',document['body']['appendChild'](_0x2ba4cd),_0x2ba4cd['select']();const _0x2fd85c=document['execCommand']('copy');return document['body']['removeChild'](_0x2ba4cd),_0x2fd85c;}catch(_0x259525){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x259525),![];}},'showToast'(_0x9521e3,_0x4dc6cf='info'){const _0x212a8c=getNextToastId(),_0xcc6ff9=document['createElement']('div');_0xcc6ff9['className']='toast\x20toast-'+_0x4dc6cf,_0xcc6ff9['textContent']=_0x9521e3,_0xcc6ff9['dataset']['toastId']=_0x212a8c,document['body']['appendChild'](_0xcc6ff9);const _0x2aaee5=_0x4dc6cf==='error'?0x2710:0xbb8,_0x7f5922=setTimeout(()=>{removeToastById(_0x212a8c);},_0x2aaee5),_0x36be3b={'id':_0x212a8c,'el':_0xcc6ff9,'timeoutId':_0x7f5922};return registerToast(_0x36be3b),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0xcc6ff9['classList']['add']('show');});}),_0x212a8c;},'showError'(_0x224ab9){console['error'](_0x224ab9);const _0x266e15=typeof _0x224ab9==='string'?_0x224ab9:_0x224ab9['message']||'An\x20error\x20occurred';this['showToast'](_0x266e15,'error');},'showSuccess'(_0x4b489a){this['showToast'](_0x4b489a,'success');},'capitalize'(_0x15b4ae){if(!_0x15b4ae)return'';return _0x15b4ae['charAt'](0x0)['toUpperCase']()+_0x15b4ae['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3f6e12){return escapeHtmlValue(_0x3f6e12);},'ansiToHtml'(_0x59129c){if(_0x59129c===null||_0x59129c===undefined)return'';let _0xba0c77=this['escapeHtml'](_0x59129c);const _0x5300eb={'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'},_0x29c88a={'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 _0x47f3b4=0x0;return _0xba0c77=_0xba0c77['replace'](/\x1b\[([0-9;]*)m/g,(_0x39fc7c,_0x292ec8)=>{if(!_0x292ec8||_0x292ec8==='0'){const _0x343f2a='</span>'['repeat'](_0x47f3b4);return _0x47f3b4=0x0,_0x343f2a;}const _0x264908=_0x292ec8['split'](';'),_0x3ab76b=[];for(const _0x1125c of _0x264908){if(_0x1125c==='1')_0x3ab76b['push']('font-weight:bold');else{if(_0x1125c==='2')_0x3ab76b['push']('opacity:0.7');else{if(_0x1125c==='3')_0x3ab76b['push']('font-style:italic');else{if(_0x1125c==='4')_0x3ab76b['push']('text-decoration:underline');else{if(_0x1125c==='9')_0x3ab76b['push']('text-decoration:line-through');else{if(_0x5300eb[_0x1125c])_0x3ab76b['push']('color:'+_0x5300eb[_0x1125c]);else{if(_0x29c88a[_0x1125c])_0x3ab76b['push']('background-color:'+_0x29c88a[_0x1125c]);}}}}}}}if(_0x3ab76b['length']>0x0)return _0x47f3b4++,'<span\x20style=\x22'+_0x3ab76b['join'](';')+'\x22>';return'';}),_0xba0c77+='</span>'['repeat'](_0x47f3b4),_0xba0c77=_0xba0c77['replace'](/\\u001b\[([0-9;]*)m/g,(_0x1595aa,_0x162250)=>{if(!_0x162250||_0x162250==='0')return'';const _0xcd97dd=_0x162250['split'](';'),_0x27812b=[];for(const _0x307687 of _0xcd97dd){if(_0x307687==='1')_0x27812b['push']('font-weight:bold');else{if(_0x5300eb[_0x307687])_0x27812b['push']('color:'+_0x5300eb[_0x307687]);else{if(_0x29c88a[_0x307687])_0x27812b['push']('background-color:'+_0x29c88a[_0x307687]);}}}if(_0x27812b['length']>0x0)return'<span\x20style=\x22'+_0x27812b['join'](';')+'\x22>';return'';}),_0xba0c77;},'showModal'({title:_0x246cb7,content:_0x1357d2,buttons:buttons=[]}){const _0x3259d0='\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'](_0x246cb7)+'</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'+_0x1357d2+'\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']((_0xa0ea0c,_0x1b2fac)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0xa0ea0c['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x1b2fac+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0xa0ea0c['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',_0x10031f=document['createElement']('div');_0x10031f['id']='utils-modal',_0x10031f['className']='modal',_0x10031f['innerHTML']=_0x3259d0,document['body']['appendChild'](_0x10031f);const _0x400525=document['getElementById']('utils-modal-close');_0x400525&&_0x400525['addEventListener']('click',()=>this['hideModal']());const _0x388296=_0x10031f['querySelectorAll']('[data-btn-index]');_0x388296['forEach'](_0x1c89a2=>{const _0x120c55=parseInt(_0x1c89a2['dataset']['btnIndex']);buttons[_0x120c55]?.['onClick']&&_0x1c89a2['addEventListener']('click',buttons[_0x120c55]['onClick']);});const _0x4e8a87=document['getElementById']('utils-modal-overlay');_0x4e8a87&&_0x4e8a87['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x5b3bea=document['getElementById']('utils-modal');_0x5b3bea&&_0x5b3bea['remove']();},'parseKeyValuePairs'(_0x3e75c4){const _0x564327={};if(!_0x3e75c4)return _0x564327;return _0x3e75c4['split'](/\r?\n/)['map'](_0x39f554=>_0x39f554['trim']())['filter'](Boolean)['forEach'](_0x173b84=>{const _0x1403ce=_0x173b84['indexOf']('=');if(_0x1403ce>0x0){const _0x2d5289=_0x173b84['slice'](0x0,_0x1403ce)['trim'](),_0x5e2590=_0x173b84['slice'](_0x1403ce+0x1)['trim']();if(_0x2d5289)_0x564327[_0x2d5289]=_0x5e2590;}}),_0x564327;},'debounce'(_0x4fb4c4,_0x10a689=0xfa){let _0x83a22a=null;return(..._0x3ba8e3)=>{clearTimeout(_0x83a22a),_0x83a22a=setTimeout(()=>_0x4fb4c4['apply'](this,_0x3ba8e3),_0x10a689);};},'formatTimestamp'(_0x5703e1){if(!_0x5703e1)return'N/A';const _0x32e98f=new Date(_0x5703e1);return _0x32e98f['toLocaleDateString']()+'\x20'+_0x32e98f['toLocaleTimeString']();},'getQueryParams'(){const _0x2e5205=new URLSearchParams(window['location']['search']),_0x4caeaf={};for(const [_0xc3f919,_0x472520]of _0x2e5205){_0x4caeaf[_0xc3f919]=_0x472520;}return _0x4caeaf;},'formatDuration'(_0xa0bc03,_0x4d0183){if(!_0xa0bc03)return'N/A';const _0x45060c=new Date(_0xa0bc03),_0x3eab29=_0x4d0183?new Date(_0x4d0183):new Date(),_0x361d37=_0x3eab29-_0x45060c;if(_0x361d37<0x0)return'0s';const _0x1a022c=Math['floor'](_0x361d37/0x3e8),_0x49bedb=Math['floor'](_0x1a022c/0x3c),_0x4c06a8=Math['floor'](_0x49bedb/0x3c),_0x40f381=Math['floor'](_0x4c06a8/0x18);if(_0x1a022c<0x3c)return _0x1a022c+'s';if(_0x49bedb<0x3c)return _0x49bedb+'m\x20'+_0x1a022c%0x3c+'s';if(_0x4c06a8<0x18)return _0x4c06a8+'h\x20'+_0x49bedb%0x3c+'m\x20'+_0x1a022c%0x3c+'s';return _0x40f381+'d\x20'+_0x4c06a8%0x18+'h\x20'+_0x49bedb%0x3c+'m';},'renderMarkdown'(_0x5827c2,_0x492143={}){if(!_0x5827c2)return'';_0x5827c2=this['rewriteAttachmentLinks'](_0x5827c2,_0x492143),_0x5827c2=this['rewriteColorSyntax'](_0x5827c2);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x5827c2,_0x492143);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x5827c2);}catch(_0x194858){return console['error']('Markdown\x20parsing\x20error:',_0x194858),this['renderMarkdownFallback'](_0x5827c2,_0x492143);}},'rewriteAttachmentLinks'(_0x158619,_0x1cf7a8={}){const _0x538b68=typeof _0x1cf7a8['resolveAttachmentUrl']==='function'?_0x1cf7a8['resolveAttachmentUrl']:_0x1cf7a8['taskId']?_0x9ee773=>API_BASE+'/tasks/'+_0x1cf7a8['taskId']+'/attachments/'+encodeURIComponent(_0x9ee773):null;if(!_0x538b68)return _0x158619;return String(_0x158619)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x33d3f3,_0x4cb653)=>{const _0xa686b=String(_0x4cb653||'')['trim']();if(!_0xa686b)return _0x33d3f3;let _0x109a98=_0xa686b;try{_0x109a98=decodeURIComponent(_0xa686b);}catch{}const _0x1733e4=_0x538b68(_0x109a98);if(!_0x1733e4)return _0x33d3f3;return']('+_0x1733e4+')';});},'rewriteColorSyntax'(_0x376e3c){if(!_0x376e3c)return _0x376e3c;return String(_0x376e3c)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0xa05a3f,_0x4d96e6,_0x4472b7)=>{const _0x493c5d=this['rewriteColorSyntax'](_0x4472b7);return'<span\x20style=\x22color:\x20'+_0x4d96e6+'\x22>'+_0x493c5d+'</span>';});},'renderMarkdownFallback'(_0x4e5045,_0x56a405={}){if(!_0x4e5045)return'';_0x4e5045=_0x4e5045['replace'](/\r\n/g,'\x0a'),_0x4e5045=_0x4e5045['replace'](/\r/g,'\x0a'),_0x4e5045=this['rewriteAttachmentLinks'](_0x4e5045,_0x56a405);let _0x474dae=this['escapeHtml'](_0x4e5045);return _0x474dae=_0x474dae['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x474dae=_0x474dae['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x474dae=_0x474dae['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x474dae=_0x474dae['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x474dae=_0x474dae['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x474dae=_0x474dae['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x474dae=_0x474dae['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x474dae=_0x474dae['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x474dae=_0x474dae['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x474dae=_0x474dae['replace'](/\n\n/g,'</p><p>'),_0x474dae=_0x474dae['replace'](/\n/g,'<br>'),'<p>'+_0x474dae+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1e4a57=new Uint8Array(0x10);crypto['getRandomValues'](_0x1e4a57),_0x1e4a57[0x6]=_0x1e4a57[0x6]&0xf|0x40,_0x1e4a57[0x8]=_0x1e4a57[0x8]&0x3f|0x80;const _0x207ccd=Array['from'](_0x1e4a57,_0xc477bb=>_0xc477bb['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x207ccd['slice'](0x0,0x8)+'-'+_0x207ccd['slice'](0x8,0xc)+'-'+_0x207ccd['slice'](0xc,0x10)+'-'+_0x207ccd['slice'](0x10,0x14)+'-'+_0x207ccd['slice'](0x14);}};export class CustomSelect{constructor(_0x237716,_0x22d6dc={}){this['nativeSelect']=_0x237716,this['options']=_0x22d6dc,this['isOpen']=![],this['selectedValue']=_0x237716['value']||'',this['searchable']=_0x22d6dc['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x302a68=document['createElement']('div');_0x302a68['className']='custom-select';const _0x3247ad=document['createElement']('div');_0x3247ad['className']='custom-select-trigger',_0x3247ad['setAttribute']('tabindex','0'),_0x3247ad['setAttribute']('role','button'),_0x3247ad['setAttribute']('aria-haspopup','listbox');const _0x1367c2=document['createElement']('span');_0x1367c2['className']='custom-select-trigger-text';const _0x2b48e1=document['createElement']('span');_0x2b48e1['className']='custom-select-arrow',_0x2b48e1['textContent']='▼',_0x3247ad['appendChild'](_0x1367c2),_0x3247ad['appendChild'](_0x2b48e1);const _0x204288=document['createElement']('div');_0x204288['className']='custom-select-dropdown',_0x204288['setAttribute']('role','listbox');if(this['searchable']){const _0x84c2c5=document['createElement']('div');_0x84c2c5['className']='custom-select-search';const _0xd8f76c=document['createElement']('input');_0xd8f76c['type']='text',_0xd8f76c['className']='custom-select-search-input',_0xd8f76c['placeholder']='Type\x20to\x20search...',_0xd8f76c['setAttribute']('aria-label','Search\x20options'),_0xd8f76c['addEventListener']('input',_0x287eee=>{this['searchQuery']=_0x287eee['target']['value']['toLowerCase'](),this['filterOptions']();}),_0xd8f76c['addEventListener']('keydown',_0x32b058=>{if(_0x32b058['key']==='Escape')_0x32b058['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x32b058['key']==='Enter'){_0x32b058['preventDefault'](),_0x32b058['stopPropagation']();const _0x450e0d=_0x204288['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x450e0d){const _0x476edb=_0x450e0d['getAttribute']('data-value');this['select'](_0x476edb);}}}}),_0x84c2c5['appendChild'](_0xd8f76c),_0x204288['appendChild'](_0x84c2c5),this['searchInput']=_0xd8f76c;}const _0x3173bc=document['createElement']('div');_0x3173bc['className']='custom-select-options',_0x204288['appendChild'](_0x3173bc),_0x302a68['appendChild'](_0x3247ad),_0x302a68['appendChild'](_0x204288),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x302a68,this['nativeSelect']),this['wrapper']=_0x302a68,this['trigger']=_0x3247ad,this['triggerText']=_0x1367c2,this['dropdown']=_0x204288,this['optionsContainer']=_0x3173bc,_0x3247ad['addEventListener']('click',()=>this['toggle']()),_0x3247ad['addEventListener']('keydown',_0x21e7b9=>this['handleKeydown'](_0x21e7b9)),document['addEventListener']('click',_0x589171=>{!_0x302a68['contains'](_0x589171['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x1b2269=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x1b2269['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x39deec=new MutationObserver(()=>{this['updateDisabledState']();});_0x39deec['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x361bcc=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x361bcc['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x13d45e=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x13d45e),this['trigger']['setAttribute']('aria-disabled',_0x13d45e?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x13d45e?'-1':'0'),_0x13d45e&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x5a3262=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x1d9f03=_0x5a3262['filter'](_0x339278=>!_0x339278['disabled']&&!_0x339278['hidden']);_0x5a3262['forEach']((_0x333e53,_0x4f7628)=>{const _0x14bac7=document['createElement']('div');_0x14bac7['className']='custom-select-option',_0x14bac7['textContent']=_0x333e53['textContent'],_0x14bac7['setAttribute']('data-value',_0x333e53['value']),_0x14bac7['setAttribute']('data-index',_0x4f7628),_0x14bac7['setAttribute']('role','option'),_0x333e53['disabled']?_0x14bac7['classList']['add']('disabled'):_0x14bac7['addEventListener']('click',()=>this['select'](_0x333e53['value'])),_0x333e53['value']===this['selectedValue']&&_0x14bac7['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x14bac7),this['allOptions']['push']({'element':_0x14bac7,'text':_0x333e53['textContent']['toLowerCase'](),'value':_0x333e53['value'],'disabled':_0x333e53['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3eea46=this['searchInput']['parentElement'];_0x1d9f03['length']>0x3?_0x3eea46['style']['display']='':_0x3eea46['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x1bfb90=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x1dbef1=>{if(!_0x1bfb90||_0x1dbef1['disabled'])_0x1dbef1['element']['style']['display']='';else{const _0x27cd29=_0x1dbef1['text']['includes'](_0x1bfb90);_0x1dbef1['element']['style']['display']=_0x27cd29?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x17dda8){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x17dda8,this['nativeSelect']['value']=_0x17dda8;const _0x527d7d=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x527d7d),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x5070f2=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x5070f2&&(this['triggerText']['textContent']=_0x5070f2['textContent'],_0x5070f2['disabled']||_0x5070f2['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x3abd76=>{_0x3abd76['getAttribute']('data-value')===this['selectedValue']?_0x3abd76['classList']['add']('selected'):_0x3abd76['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 _0x33b53c=window['getComputedStyle'](this['dropdown']);if(_0x33b53c['position']==='fixed'){const _0x1f038=this['trigger']['getBoundingClientRect'](),_0x235e7b=parseInt(_0x33b53c['maxHeight'])||0xc8,_0x2455fc=window['innerHeight'],_0x571b08=_0x2455fc-_0x1f038['bottom'],_0x2b1b1=_0x1f038['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x375624;_0x571b08<_0x235e7b&&_0x2b1b1>_0x571b08?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x2455fc-_0x1f038['top']+'px',_0x375624=Math['min'](_0x235e7b,_0x2b1b1-0xa),this['dropdown']['style']['maxHeight']=_0x375624+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x1f038['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x375624=Math['min'](_0x235e7b,_0x571b08-0xa),this['dropdown']['style']['maxHeight']=_0x375624+'px');if(this['optionsContainer']){let _0x2056d9=_0x375624;if(this['searchInput']){const _0x2aa577=this['searchInput']['parentElement'];_0x2aa577&&(_0x2056d9-=_0x2aa577['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x2056d9)+'px';}this['dropdown']['style']['left']=_0x1f038['left']+'px',this['dropdown']['style']['width']=_0x1f038['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x171d22=this['searchInput']['parentElement'];_0x171d22&&_0x171d22['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'](_0x5964c8){if(this['nativeSelect']['disabled'])return;if(_0x5964c8['key']==='Enter'||_0x5964c8['key']==='\x20')_0x5964c8['preventDefault'](),this['toggle']();else _0x5964c8['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x48593b='\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',_0x48593b),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fe391=document['getElementById']('confirm-dialog-close'),_0x3091e2=document['getElementById']('confirm-dialog-cancel'),_0x3ce0f8=document['getElementById']('confirm-dialog-confirm'),_0x5e445d=this['_modal']['querySelector']('.modal-overlay');_0x1fe391['addEventListener']('click',()=>this['_resolve'](![])),_0x3091e2['addEventListener']('click',()=>this['_resolve'](![])),_0x3ce0f8['addEventListener']('click',()=>this['_resolve'](!![])),_0x5e445d['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x3934c7=>{if(_0x3934c7['key']==='Escape')_0x3934c7['preventDefault'](),this['_resolve'](![]);else _0x3934c7['key']==='Enter'&&(_0x3934c7['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x279099,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x2ed497=>{this['_resolvePromise']=_0x2ed497,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x279099;const _0x3d3f57=document['getElementById']('confirm-dialog-cancel'),_0x43f37f=document['getElementById']('confirm-dialog-confirm');_0x3d3f57['textContent']=cancelText,_0x43f37f['textContent']=confirmText,_0x43f37f['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x43f37f['focus']();});},'_resolve'(_0x4f72f5){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x4f72f5),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x4c19c1,_0x4b58c4={}){this['container']=_0x4c19c1,this['options']={'placeholder':_0x4b58c4['placeholder']||'Type\x20to\x20search...','maxItems':_0x4b58c4['maxItems']||0x64,'loadItems':_0x4b58c4['loadItems']||(async()=>[]),'renderItem':_0x4b58c4['renderItem']||(_0x795c74=>({'primary':String(_0x795c74),'secondary':''})),'onSelect':_0x4b58c4['onSelect']||(()=>{}),'filterItems':_0x4b58c4['filterItems']||null,'getItemValue':_0x4b58c4['getItemValue']||(_0x364307=>_0x364307),'sortItems':_0x4b58c4['sortItems']||null,'debounceMs':_0x4b58c4['debounceMs']||0xc8,'minCharsForSearch':_0x4b58c4['minCharsForSearch']||0x0,'emptyMessage':_0x4b58c4['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x4b58c4['loadingMessage']||'Loading...','preload':_0x4b58c4['preload']!==![],'searchMode':_0x4b58c4['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',_0x131550=>this['onBlur'](_0x131550)),this['input']['addEventListener']('input',_0x54a242=>this['onInput'](_0x54a242)),this['input']['addEventListener']('keydown',_0x3783f8=>this['onKeydown'](_0x3783f8)),this['clearBtn']['addEventListener']('mousedown',_0x355a45=>{_0x355a45['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1ee654=>{_0x1ee654['preventDefault']();}),document['addEventListener']('click',_0x5b79e7=>{!this['wrapper']['contains'](_0x5b79e7['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(_0x27aa71){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x27aa71);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x192bd3){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x4d7796){const _0x25f5ed=_0x4d7796['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x25f5ed);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x25f5ed):this['loadAndShow'](_0x25f5ed);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x304643){switch(_0x304643['key']){case'ArrowDown':_0x304643['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x304643['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x304643['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x304643['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x44227c){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x225291=this['selectedIndex']+_0x44227c;if(_0x225291>=0x0&&_0x225291<this['filteredItems']['length']){this['selectedIndex']=_0x225291,this['updateSelectionHighlight']();const _0x363af2=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x363af2[this['selectedIndex']]&&_0x363af2[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x57ece0=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x57ece0['forEach']((_0x45b5da,_0x19acde)=>{_0x45b5da['classList']['toggle']('keyboard-selected',_0x19acde===this['selectedIndex']);});}async['loadAndShow'](_0x5e9337){this['showLoading']();try{const _0x4dcc2f=await this['options']['loadItems'](_0x5e9337);if(this['options']['searchMode']==='server'){let _0x342624=_0x4dcc2f;this['options']['sortItems']&&(_0x342624=this['options']['sortItems']([..._0x4dcc2f]));this['filteredItems']=_0x342624;const _0x3ef712=this['filteredItems']['length']>=this['options']['maxItems'];_0x3ef712&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x3ef712),this['open']();}else this['allItems']=_0x4dcc2f,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x5e9337);}catch(_0x5e28ec){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x5e28ec),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x2405da){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x2405da):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x46ed42=this['filteredItems']['length']>=this['options']['maxItems'];_0x46ed42&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x46ed42),this['open']();}['renderItems'](_0x304e8c){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']((_0x2b8413,_0x55ef33)=>{const _0x39b77d=document['createElement']('div');_0x39b77d['className']='autocomplete-select-item',_0x39b77d['setAttribute']('role','option'),_0x39b77d['setAttribute']('data-index',_0x55ef33);const _0x54cac4=this['options']['renderItem'](_0x2b8413);let _0x2a5943='';_0x54cac4['icon']&&(_0x2a5943='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x54cac4['iconClass']||'')+'\x22>'+_0x54cac4['icon']+'</span>'),_0x39b77d['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a5943+'\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'](_0x54cac4['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x54cac4['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x54cac4['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x39b77d['addEventListener']('click',()=>{this['selectItem'](_0x2b8413);}),_0x39b77d['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x55ef33,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x39b77d);}),_0x304e8c?(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'](_0x5c2c48){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x5c2c48)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0xc43012){this['selectedItem']=_0xc43012;const _0x56bbba=this['options']['renderItem'](_0xc43012);this['input']['value']=_0x56bbba['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0xc43012);}['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'](_0x4fe9c7){if(_0x4fe9c7){this['selectedItem']=_0x4fe9c7;const _0x59c168=this['options']['renderItem'](_0x4fe9c7);this['input']['value']=_0x59c168['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x2e87ef){this['allItems']=_0x2e87ef,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'](_0x393145){this['input']['placeholder']=_0x393145;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4a9aeb=null){const _0x403b78=document['getElementById']('admin-menu-container'),_0x37c284=document['getElementById']('admin-menu-btn'),_0x1dc3f6=document['getElementById']('admin-menu');if(!_0x403b78||!_0x37c284||!_0x1dc3f6)return;try{!_0x4a9aeb&&(_0x4a9aeb=await API['getCurrentUser']());if(_0x4a9aeb){const _0x594397=window['Permissions'],_0x1074c9=_0x594397['hasServerPermission'](_0x4a9aeb,'*')||_0x594397['hasEnvPermission'](_0x4a9aeb,'environments:manage')||_0x594397['hasServerPermission'](_0x4a9aeb,'users:create')||_0x594397['hasTeamPermission'](_0x4a9aeb,'teams:manage')||_0x594397['hasEnvPermission'](_0x4a9aeb,'environments:view_details');if(!_0x1074c9)return;_0x403b78['hidden']=![];if(!_0x594397['hasServerPermission'](_0x4a9aeb,'*')){const _0x433daa=_0x1dc3f6['querySelectorAll']('.admin-menu-item');_0x433daa['forEach'](_0x8719d5=>{const _0x550372=_0x8719d5['querySelector']('.option-text')?.['textContent']?.['trim']();_0x550372==='Users'&&!_0x594397['hasServerPermission'](_0x4a9aeb,'users:create')&&(_0x8719d5['hidden']=!![]),_0x550372==='Skills'&&(_0x8719d5['hidden']=!![]),_0x550372==='Server\x20Settings'&&(_0x8719d5['hidden']=!![]),_0x550372==='Server\x20Administration'&&(_0x8719d5['hidden']=!![]),_0x550372==='Git\x20History'&&(_0x8719d5['hidden']=!![]),_0x550372==='Roles'&&(_0x8719d5['hidden']=!![]);});}_0x37c284['addEventListener']('click',_0x54b13d=>{_0x54b13d['stopPropagation']();const _0x28566f=document['getElementById']('actions-menu');if(_0x28566f)_0x28566f['hidden']=!![];_0x1dc3f6['hidden']=!_0x1dc3f6['hidden'];}),document['addEventListener']('click',_0x1213f1=>{!_0x1dc3f6['hidden']&&!_0x37c284['contains'](_0x1213f1['target'])&&!_0x1dc3f6['contains'](_0x1213f1['target'])&&(_0x1dc3f6['hidden']=!![]);}),document['addEventListener']('keydown',_0x379bbb=>{_0x379bbb['key']==='Escape'&&!_0x1dc3f6['hidden']&&(_0x1dc3f6['hidden']=!![]);});}}catch(_0x4a9a47){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x4a9a47['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};