@profoundlogic/coderflow-server 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config/skill-catalog.json +1 -1
  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/session-file-store.js +1 -0
  84. package/dist/lib/setup-repo-git-auth.js +1 -1
  85. package/dist/lib/slack-service.js +1 -1
  86. package/dist/lib/state-capture.js +1 -1
  87. package/dist/lib/static-files.js +1 -1
  88. package/dist/lib/task-aliases.js +1 -1
  89. package/dist/lib/task-container-init.js +1 -1
  90. package/dist/lib/task-context-usage.js +1 -1
  91. package/dist/lib/task-git-auth-errors.js +1 -1
  92. package/dist/lib/task-name-format.js +1 -1
  93. package/dist/lib/task-name-generator.js +1 -1
  94. package/dist/lib/task-source-metadata.js +1 -1
  95. package/dist/lib/teams.js +1 -1
  96. package/dist/lib/user-git-oauth.js +1 -1
  97. package/dist/lib/user-git-tokens.js +1 -1
  98. package/dist/lib/users.js +1 -1
  99. package/dist/middleware/requireAuth.js +1 -1
  100. package/dist/middleware/requireInit.js +1 -1
  101. package/dist/middleware/requirePermission.js +1 -1
  102. package/dist/package.json +1 -1
  103. package/dist/playwright.config.js +1 -1
  104. package/dist/playwright.task-terminal.config.js +1 -1
  105. package/dist/routes/apiKeys.js +1 -1
  106. package/dist/routes/auth-oidc.js +1 -1
  107. package/dist/routes/auth.js +1 -1
  108. package/dist/routes/automations.js +1 -1
  109. package/dist/routes/bindings.js +1 -1
  110. package/dist/routes/build.js +1 -1
  111. package/dist/routes/containers.js +1 -1
  112. package/dist/routes/deploy-task.js +1 -1
  113. package/dist/routes/environment-management.js +1 -1
  114. package/dist/routes/environments.js +1 -1
  115. package/dist/routes/external-skills.js +1 -1
  116. package/dist/routes/git-credentials.js +1 -1
  117. package/dist/routes/git-oauth.js +1 -1
  118. package/dist/routes/git-provider-setup.js +1 -1
  119. package/dist/routes/health.js +1 -1
  120. package/dist/routes/jira.js +1 -1
  121. package/dist/routes/logs.js +1 -1
  122. package/dist/routes/objective-management.js +1 -1
  123. package/dist/routes/password.js +1 -1
  124. package/dist/routes/prompt.js +1 -1
  125. package/dist/routes/provider-auth.js +1 -1
  126. package/dist/routes/qa.js +1 -1
  127. package/dist/routes/roles.js +1 -1
  128. package/dist/routes/settings.js +1 -1
  129. package/dist/routes/skill-management.js +1 -1
  130. package/dist/routes/skills.js +1 -1
  131. package/dist/routes/slack.js +1 -1
  132. package/dist/routes/stats.js +1 -1
  133. package/dist/routes/tasks.js +1 -1
  134. package/dist/routes/teams.js +1 -1
  135. package/dist/routes/templates.js +1 -1
  136. package/dist/routes/test-task.js +1 -1
  137. package/dist/routes/test.js +1 -1
  138. package/dist/routes/users.js +1 -1
  139. package/dist/routes/visualizations.js +1 -1
  140. package/dist/scripts/create-user.js +1 -1
  141. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  142. package/dist/start.js +1 -1
  143. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  144. package/dist/web-ui/public/activity-feed.js +1 -1
  145. package/dist/web-ui/public/activity-formatters.js +1 -1
  146. package/dist/web-ui/public/admin.html +6 -6
  147. package/dist/web-ui/public/admin.js +1 -1
  148. package/dist/web-ui/public/agent-event-parser.js +1 -1
  149. package/dist/web-ui/public/app.js +1 -1
  150. package/dist/web-ui/public/approve-dialog.js +1 -1
  151. package/dist/web-ui/public/automation-links.js +1 -1
  152. package/dist/web-ui/public/automation-schedule.js +1 -1
  153. package/dist/web-ui/public/comments-widget.js +1 -1
  154. package/dist/web-ui/public/diff-utils.js +1 -1
  155. package/dist/web-ui/public/docs/admin/automations.md +2 -1
  156. package/dist/web-ui/public/docs/admin/environments.md +2 -0
  157. package/dist/web-ui/public/docs/code/files-and-editing.md +1 -4
  158. package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
  159. package/dist/web-ui/public/environments.css +28 -0
  160. package/dist/web-ui/public/environments.html +33 -7
  161. package/dist/web-ui/public/environments.js +1 -1
  162. package/dist/web-ui/public/feedback-widget.js +1 -1
  163. package/dist/web-ui/public/file-selection-tree.js +1 -1
  164. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  165. package/dist/web-ui/public/git-history.html +1 -1
  166. package/dist/web-ui/public/git-history.js +1 -1
  167. package/dist/web-ui/public/git-status.js +1 -1
  168. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  169. package/dist/web-ui/public/index.html +1 -1
  170. package/dist/web-ui/public/index.js +1 -1
  171. package/dist/web-ui/public/login.js +1 -1
  172. package/dist/web-ui/public/markdown-editor.js +1 -1
  173. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  174. package/dist/web-ui/public/modal-maximize.js +1 -1
  175. package/dist/web-ui/public/notifications.js +1 -1
  176. package/dist/web-ui/public/permissions.js +1 -1
  177. package/dist/web-ui/public/pr-dialog.js +1 -1
  178. package/dist/web-ui/public/roles.html +1 -1
  179. package/dist/web-ui/public/roles.js +1 -1
  180. package/dist/web-ui/public/settings.html +1 -1
  181. package/dist/web-ui/public/settings.js +1 -1
  182. package/dist/web-ui/public/setup-password.js +1 -1
  183. package/dist/web-ui/public/skills.html +1 -1
  184. package/dist/web-ui/public/skills.js +1 -1
  185. package/dist/web-ui/public/sse-client.js +1 -1
  186. package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
  187. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  188. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  189. package/dist/web-ui/public/task.js +1 -1
  190. package/dist/web-ui/public/teams.html +2 -2
  191. package/dist/web-ui/public/teams.js +1 -1
  192. package/dist/web-ui/public/terminal.js +1 -1
  193. package/dist/web-ui/public/theme.js +1 -1
  194. package/dist/web-ui/public/users.html +2 -2
  195. package/dist/web-ui/public/users.js +1 -1
  196. package/dist/web-ui/public/variant-grouping.js +1 -1
  197. package/package.json +1 -1
@@ -1 +1 @@
1
- function detectApiBase(){const _0x4bd1e4=window['location']['pathname'],_0x913249=_0x4bd1e4['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x913249)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x913249[0x1]),_0x913249[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x17981e={}){const _0x45e830=new URLSearchParams();_0x17981e['userId']&&_0x45e830['set']('userId',String(_0x17981e['userId']));_0x17981e['automation']&&_0x45e830['set']('automation',String(_0x17981e['automation']));const _0x22808c=API_BASE+'/tasks/stats'+(_0x45e830['toString']()?'?'+_0x45e830['toString']():''),_0x50886a=await fetch(_0x22808c);if(!_0x50886a['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x50886a['statusText']);return await _0x50886a['json']();},async 'getTasks'(_0x32a59e={}){const _0xf0b970=new URLSearchParams();_0x32a59e['status']&&_0xf0b970['set']('status',String(_0x32a59e['status']));_0x32a59e['environment']&&_0xf0b970['set']('environment',String(_0x32a59e['environment']));_0x32a59e['automation']&&_0xf0b970['set']('automation',String(_0x32a59e['automation']));if(_0x32a59e['include']){const _0x1fa866=Array['isArray'](_0x32a59e['include'])?_0x32a59e['include']['join'](','):String(_0x32a59e['include']);_0x1fa866&&_0xf0b970['set']('include',_0x1fa866);}_0x32a59e['filter']&&_0xf0b970['set']('filter',String(_0x32a59e['filter']));_0x32a59e['page']&&_0xf0b970['set']('page',String(_0x32a59e['page']));_0x32a59e['limit']&&_0xf0b970['set']('limit',String(_0x32a59e['limit']));_0x32a59e['userId']&&_0xf0b970['set']('userId',String(_0x32a59e['userId']));_0x32a59e['search']&&_0xf0b970['set']('search',String(_0x32a59e['search']));_0x32a59e['includeChildTasks']&&_0xf0b970['set']('includeChildTasks','true');const _0x536e3a=API_BASE+'/tasks'+(_0xf0b970['toString']()?'?'+_0xf0b970['toString']():''),_0x51a334=await fetch(_0x536e3a);if(!_0x51a334['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x51a334['statusText']);return await _0x51a334['json']();},async 'getAutomations'(_0x2990bd={}){const _0xb3ba45=new URLSearchParams();_0x2990bd['environment']&&_0xb3ba45['set']('environment',String(_0x2990bd['environment']));const _0x1a99a0=await fetch(API_BASE+'/api/automations'+(_0xb3ba45['toString']()?'?'+_0xb3ba45['toString']():''));if(!_0x1a99a0['ok']){const _0x29c2b0=await _0x1a99a0['json']()['catch'](()=>({}));throw new Error(_0x29c2b0['message']||_0x29c2b0['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x1a99a0['statusText']);}return await _0x1a99a0['json']();},async 'getAutomation'(_0x2c76d9){const _0x409487=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2c76d9));if(!_0x409487['ok']){const _0x25560f=await _0x409487['json']()['catch'](()=>({}));throw new Error(_0x25560f['message']||_0x25560f['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x409487['statusText']);}return await _0x409487['json']();},async 'createAutomation'(_0x4775df){const _0x1769ad=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4775df||{})});if(!_0x1769ad['ok']){const _0x5c6b2b=await _0x1769ad['json']()['catch'](()=>({}));throw new Error(_0x5c6b2b['message']||_0x5c6b2b['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x1769ad['statusText']);}return await _0x1769ad['json']();},async 'updateAutomation'(_0x621775,_0x1d1f66){const _0x5a94ab=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x621775),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1d1f66||{})});if(!_0x5a94ab['ok']){const _0x4a8c70=await _0x5a94ab['json']()['catch'](()=>({}));throw new Error(_0x4a8c70['message']||_0x4a8c70['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5a94ab['statusText']);}return await _0x5a94ab['json']();},async 'deleteAutomation'(_0x57bb56){const _0x341dc6=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x57bb56),{'method':'DELETE'});if(!_0x341dc6['ok']){const _0x220f58=await _0x341dc6['json']()['catch'](()=>({}));throw new Error(_0x220f58['message']||_0x220f58['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x341dc6['statusText']);}return await _0x341dc6['json']();},async 'triggerAutomation'(_0x3496c2){const _0x26a2c0=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3496c2)+'/trigger',{'method':'POST'});if(!_0x26a2c0['ok']){const _0x3289d1=await _0x26a2c0['json']()['catch'](()=>({}));throw new Error(_0x3289d1['message']||_0x3289d1['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x26a2c0['statusText']);}return await _0x26a2c0['json']();},async 'setAutomationEnabled'(_0x5dad51,_0x57345b){const _0x11b61b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5dad51)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x57345b})});if(!_0x11b61b['ok']){const _0x5ecd6e=await _0x11b61b['json']()['catch'](()=>({}));throw new Error(_0x5ecd6e['message']||_0x5ecd6e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x11b61b['statusText']);}return await _0x11b61b['json']();},async 'getAutomationHistory'(_0x1ecd4a,_0x3ecd09=0x32){const _0x2e7f03=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1ecd4a)+'/history?limit='+encodeURIComponent(String(_0x3ecd09)));if(!_0x2e7f03['ok']){const _0x291db1=await _0x2e7f03['json']()['catch'](()=>({}));throw new Error(_0x291db1['message']||_0x291db1['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x2e7f03['statusText']);}return await _0x2e7f03['json']();},async 'getTask'(_0x1b287b,_0x3da580={}){const _0x257a84=new URLSearchParams();if(_0x3da580['include']){const _0x4f43c7=Array['isArray'](_0x3da580['include'])?_0x3da580['include']['join'](','):String(_0x3da580['include']);if(_0x4f43c7)_0x257a84['set']('include',_0x4f43c7);}const _0x59af6f=await fetch(API_BASE+'/tasks/'+_0x1b287b+(_0x257a84['toString']()?'?'+_0x257a84['toString']():''));if(!_0x59af6f['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x59af6f['statusText']);return await _0x59af6f['json']();},async 'getTaskResults'(_0x784daf){const _0xf95d00=await fetch(API_BASE+'/tasks/'+_0x784daf+'/results');if(!_0xf95d00['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0xf95d00['statusText']);return await _0xf95d00['json']();},async 'getTaskPatches'(_0x21098c){const _0x319671=await fetch(API_BASE+'/tasks/'+_0x21098c+'/patches');if(!_0x319671['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x319671['statusText']);return await _0x319671['json']();},async 'getTaskAttachments'(_0x10ca8a){const _0x5cc092=await fetch(API_BASE+'/tasks/'+_0x10ca8a+'/attachments');if(!_0x5cc092['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x5cc092['statusText']);return await _0x5cc092['json']();},async 'uploadAttachments'(_0x15193a,_0x19e0e3){const _0x474e49=new FormData();for(const _0x5369bd of _0x19e0e3){_0x474e49['append']('attachments',_0x5369bd);}const _0x4207e4=await fetch(API_BASE+'/tasks/'+_0x15193a+'/attachments',{'method':'POST','body':_0x474e49});if(!_0x4207e4['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x4207e4['statusText']);return await _0x4207e4['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2c0d9c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2c0d9c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2c0d9c['json']();}catch(_0x39a76f){return{'available':![],'reason':_0x39a76f['message']};}},async 'generateTaskName'(_0x47a153){try{const _0x1189dd=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x47a153})});return await _0x1189dd['json']();}catch(_0x3c51f5){return{'success':![],'error':_0x3c51f5['message']};}},async 'createTask'(_0x5e9f10){let _0x901171,_0x23e898={};if(_0x5e9f10['files']&&_0x5e9f10['files']['length']>0x0){const _0x124aa3=new FormData();for(const [_0x1f6084,_0x147e3c]of Object['entries'](_0x5e9f10)){if(_0x1f6084!=='files'){if(_0x147e3c==null)continue;typeof _0x147e3c==='object'?_0x124aa3['append'](_0x1f6084,JSON['stringify'](_0x147e3c)):_0x124aa3['append'](_0x1f6084,String(_0x147e3c));}}for(const _0x17ffbb of _0x5e9f10['files']){_0x124aa3['append']('attachments',_0x17ffbb);}_0x901171=_0x124aa3;}else _0x23e898['Content-Type']='application/json',_0x901171=JSON['stringify'](_0x5e9f10);const _0x59bf21=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x23e898,'body':_0x901171});if(!_0x59bf21['ok']){const _0x5a8b5a=await _0x59bf21['json'](),_0x624fd2=new Error(_0x5a8b5a['error']||'Failed\x20to\x20create\x20task:\x20'+_0x59bf21['statusText']),{message:_0x5d8729,..._0x4df766}=_0x5a8b5a;Object['assign'](_0x624fd2,_0x4df766);throw _0x624fd2;}return await _0x59bf21['json']();},async 'createTestTask'(_0x26ce61){const _0xed67e6=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x26ce61)});if(!_0xed67e6['ok']){const _0x3e17da=await _0xed67e6['json']();throw new Error(_0x3e17da['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xed67e6['statusText']);}return await _0xed67e6['json']();},async 'createEphemeralTest'(_0x678050){const _0x5c5365=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x678050)});if(!_0x5c5365['ok']){const _0x1afd2a=await _0x5c5365['json']();throw new Error(_0x1afd2a['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x5c5365['statusText']);}return await _0x5c5365['json']();},async 'createDeployTask'(_0x30cae8){const _0xe9fb86=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x30cae8)});if(!_0xe9fb86['ok']){const _0x4168f8=await _0xe9fb86['json']();throw new Error(_0x4168f8['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0xe9fb86['statusText']);}return await _0xe9fb86['json']();},async 'getEnvironments'(){const _0x9fee57=await fetch(API_BASE+'/environments');if(!_0x9fee57['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x9fee57['statusText']);return await _0x9fee57['json']();},async 'getEnvironment'(_0x556b94){const _0x1638d8=await fetch(API_BASE+'/environments/'+_0x556b94);if(!_0x1638d8['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x1638d8['statusText']);return await _0x1638d8['json']();},async 'getEnvironmentRepoHistory'(_0x1d6ed7,_0x19aaa6,_0x171bd4={}){if(!_0x1d6ed7||!_0x19aaa6)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x4a2844=new URLSearchParams();if(_0x171bd4['limit'])_0x4a2844['set']('limit',String(_0x171bd4['limit']));if(_0x171bd4['offset'])_0x4a2844['set']('offset',String(_0x171bd4['offset']));if(_0x171bd4['search'])_0x4a2844['set']('search',String(_0x171bd4['search']));if(_0x171bd4['branch'])_0x4a2844['set']('branch',String(_0x171bd4['branch']));const _0x2b6fb1=API_BASE+'/environments/'+encodeURIComponent(_0x1d6ed7)+'/repos/'+encodeURIComponent(_0x19aaa6)+'/git/history',_0x47f3b9=await fetch(''+_0x2b6fb1+(_0x4a2844['toString']()?'?'+_0x4a2844['toString']():''));if(!_0x47f3b9['ok']){const _0x248cd1=await _0x47f3b9['json']()['catch'](()=>({}));throw new Error(_0x248cd1['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x47f3b9['statusText']);}return await _0x47f3b9['json']();},async 'getEnvironmentRepoCommit'(_0x3c5694,_0x55b269,_0x2fd319){if(!_0x3c5694||!_0x55b269||!_0x2fd319)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xfe06a5=API_BASE+'/environments/'+encodeURIComponent(_0x3c5694)+'/repos/'+encodeURIComponent(_0x55b269)+'/git/commits/'+encodeURIComponent(_0x2fd319),_0x864cd3=await fetch(_0xfe06a5);if(!_0x864cd3['ok']){const _0x3be633=await _0x864cd3['json']()['catch'](()=>({}));throw new Error(_0x3be633['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x864cd3['statusText']);}return await _0x864cd3['json']();},async 'getEnvironmentRepoBranches'(_0x581522,_0xd7601){if(!_0x581522||!_0xd7601)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x54e01=API_BASE+'/environments/'+encodeURIComponent(_0x581522)+'/repos/'+encodeURIComponent(_0xd7601)+'/git/branches',_0x1fee0f=await fetch(_0x54e01);if(!_0x1fee0f['ok']){const _0x3acae4=await _0x1fee0f['json']()['catch'](()=>({}));throw new Error(_0x3acae4['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x1fee0f['statusText']);}return await _0x1fee0f['json']();},async 'revertEnvironmentRepoCommit'(_0x5777fe,_0x179975,_0x2ebe46,_0x3d05c9={}){if(!_0x5777fe||!_0x179975||!_0x2ebe46)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x2a09a7=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x5777fe)+'/repos/'+encodeURIComponent(_0x179975)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2ebe46,..._0x3d05c9})});if(!_0x2a09a7['ok']){const _0x3badeb=await _0x2a09a7['json']()['catch'](()=>({}));throw new Error(_0x3badeb['message']||_0x3badeb['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x2a09a7['statusText']);}return await _0x2a09a7['json']();},async 'getTemplates'(_0x166e1a={}){const _0x4035f9=new URLSearchParams();if(_0x166e1a['include']){const _0x24cde3=Array['isArray'](_0x166e1a['include'])?_0x166e1a['include']['join'](','):String(_0x166e1a['include']);if(_0x24cde3)_0x4035f9['set']('include',_0x24cde3);}const _0x13d35d=await fetch(API_BASE+'/templates'+(_0x4035f9['toString']()?'?'+_0x4035f9['toString']():''));if(!_0x13d35d['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x13d35d['statusText']);return await _0x13d35d['json']();},async 'getTemplatesForEnvironment'(_0x55e2c4,_0x168198={}){if(!_0x55e2c4)throw new Error('Environment\x20name\x20is\x20required');const _0x5b6091=new URLSearchParams();if(_0x168198['include']){const _0x5ae757=Array['isArray'](_0x168198['include'])?_0x168198['include']['join'](','):String(_0x168198['include']);if(_0x5ae757)_0x5b6091['set']('include',_0x5ae757);}const _0x3233fc=await fetch(API_BASE+'/templates/'+_0x55e2c4+(_0x5b6091['toString']()?'?'+_0x5b6091['toString']():''));if(!_0x3233fc['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x55e2c4+':\x20'+_0x3233fc['statusText']);return await _0x3233fc['json']();},async 'getTemplate'(_0x2c548d,_0x4a2a0b,_0x2f0ad4={}){if(!_0x2c548d||!_0x4a2a0b)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x2131cb=new URLSearchParams();if(_0x2f0ad4['include']){const _0x24519f=Array['isArray'](_0x2f0ad4['include'])?_0x2f0ad4['include']['join'](','):String(_0x2f0ad4['include']);if(_0x24519f)_0x2131cb['set']('include',_0x24519f);}const _0x3dc464=await fetch(API_BASE+'/templates/'+_0x2c548d+'/'+_0x4a2a0b+(_0x2131cb['toString']()?'?'+_0x2131cb['toString']():''));if(!_0x3dc464['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dc464['statusText']);return await _0x3dc464['json']();},async 'getTaskLogs'(_0x17f1e5,_0x20cd4e={}){if(!_0x17f1e5)throw new Error('Task\x20ID\x20is\x20required');const _0x35ea78=new URLSearchParams();_0x20cd4e['tail']&&_0x35ea78['set']('tail',String(_0x20cd4e['tail']));const _0x3493e8=await fetch(API_BASE+'/tasks/'+_0x17f1e5+'/logs'+(_0x35ea78['toString']()?'?'+_0x35ea78['toString']():''));if(!_0x3493e8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x3493e8['statusText']);return await _0x3493e8['text']();},async 'getContainers'(){const _0x198a95=await fetch(API_BASE+'/containers');if(!_0x198a95['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x198a95['statusText']);return await _0x198a95['json']();},async 'getContainer'(_0x5212d0){const _0x35c38c=await fetch(API_BASE+'/containers/'+_0x5212d0);if(!_0x35c38c['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x35c38c['statusText']);return await _0x35c38c['json']();},async 'startInteractiveContainer'(_0x11a25f){const _0xf00b5f=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x11a25f)});if(!_0xf00b5f['ok']){const _0x2326ff=await _0xf00b5f['json']()['catch'](()=>({}));throw new Error(_0x2326ff['message']||'Failed\x20to\x20start\x20container:\x20'+_0xf00b5f['statusText']);}return await _0xf00b5f['json']();},async 'startContainerCodeServer'(_0x325d5c,_0x2fce36={}){if(!_0x325d5c)throw new Error('Container\x20ID\x20is\x20required');const _0x216a01=new URLSearchParams();_0x2fce36['theme']&&_0x216a01['set']('theme',_0x2fce36['theme']);const _0x3feaaa=await fetch(API_BASE+'/containers/'+_0x325d5c+'/code-server'+(_0x216a01['toString']()?'?'+_0x216a01['toString']():'')),_0x79d359=await _0x3feaaa['json']()['catch'](()=>({}));if(!_0x3feaaa['ok'])throw new Error(_0x79d359['message']||_0x79d359['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3feaaa['statusText']);return _0x79d359;},async 'stopContainer'(_0x459c95){const _0x289487=await fetch(API_BASE+'/containers/'+_0x459c95,{'method':'DELETE'});if(!_0x289487['ok']){const _0x2a1a68=await _0x289487['json']()['catch'](()=>({}));throw new Error(_0x2a1a68['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x289487['statusText']);}return await _0x289487['json']();},async 'stopTask'(_0x251c1c){if(!_0x251c1c)throw new Error('Task\x20ID\x20is\x20required');const _0x277837=await fetch(API_BASE+'/tasks/'+_0x251c1c+'/stop',{'method':'POST'});if(!_0x277837['ok']){const _0x2bedf1=await _0x277837['json']()['catch'](()=>({}));throw new Error(_0x2bedf1['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x277837['statusText']);}return await _0x277837['json']();},async 'interruptTask'(_0x5a620a){if(!_0x5a620a)throw new Error('Task\x20ID\x20is\x20required');const _0x210c2a=await fetch(API_BASE+'/tasks/'+_0x5a620a+'/interrupt',{'method':'POST'});if(!_0x210c2a['ok']){const _0x5c3195=await _0x210c2a['json']()['catch'](()=>({}));throw new Error(_0x5c3195['error']||_0x5c3195['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x210c2a['statusText']);}return await _0x210c2a['json']();},async 'startTask'(_0x33065b){if(!_0x33065b)throw new Error('Task\x20ID\x20is\x20required');const _0xe12d9e=await fetch(API_BASE+'/tasks/'+_0x33065b+'/start',{'method':'POST'});if(!_0xe12d9e['ok']){const _0x18d49c=await _0xe12d9e['json']()['catch'](()=>({}));throw new Error(_0x18d49c['error']||'Failed\x20to\x20start\x20task:\x20'+_0xe12d9e['statusText']);}return await _0xe12d9e['json']();},async 'deleteTask'(_0x3ca33d){if(!_0x3ca33d)throw new Error('Task\x20ID\x20is\x20required');const _0x358cbf=await fetch(API_BASE+'/tasks/'+_0x3ca33d,{'method':'DELETE'});if(!_0x358cbf['ok']){const _0x46d940=await _0x358cbf['json']()['catch'](()=>({}));throw new Error(_0x46d940['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x358cbf['statusText']);}return await _0x358cbf['json']();},async 'refreshTasksFromDisk'(){const _0x1fa2ee=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x1fa2ee['ok']){const _0x59741d=await _0x1fa2ee['json']()['catch'](()=>({}));throw new Error(_0x59741d['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x1fa2ee['statusText']);}return await _0x1fa2ee['json']();},async 'approveTask'(_0x47673f,_0x4ec41d={}){if(!_0x47673f)throw new Error('Task\x20ID\x20is\x20required');const _0x13bc09={'commit_message':_0x4ec41d['commit_message']||'','pull':_0x4ec41d['pull']??![],'push':_0x4ec41d['push']??![],'conflict_strategy':_0x4ec41d['conflict_strategy']||'rebase'};_0x4ec41d['new_branch']&&(_0x13bc09['new_branch']=_0x4ec41d['new_branch']);const _0x1013bf=await fetch(API_BASE+'/tasks/'+_0x47673f+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13bc09)});if(!_0x1013bf['ok']){const _0x11b2ce=await _0x1013bf['json']()['catch'](()=>({})),_0x18bfa4=Array['isArray'](_0x11b2ce['results'])?_0x11b2ce['results']['filter'](_0xb1f3b4=>!_0xb1f3b4['success']&&(_0xb1f3b4['error']||_0xb1f3b4['error_code'])):[],_0x498f6f=_0x18bfa4[0x0]||null;let _0x3e7e60=_0x11b2ce['error']||_0x11b2ce['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1013bf['statusText'];if(_0x498f6f?.['error'])_0x3e7e60=_0x498f6f['error'];else _0x11b2ce['message']&&(_0x3e7e60=_0x11b2ce['message']);const _0x4ad3d4=new Error(_0x3e7e60);_0x4ad3d4['code']=_0x498f6f?.['error_code']||_0x11b2ce['error_code']||null,_0x4ad3d4['details']=_0x498f6f?.['details']||_0x11b2ce['details']||null,_0x4ad3d4['tokenExpiryDays']=_0x498f6f?.['token_expiry_days']||_0x11b2ce['token_expiry_days']||null,_0x4ad3d4['hasConflicts']=_0x11b2ce['results']?.['some'](_0x562108=>_0x562108['conflict'])||![];throw _0x4ad3d4;}return await _0x1013bf['json']();},async 'getPullRequestInfo'(_0x187ec5){if(!_0x187ec5)throw new Error('Task\x20ID\x20is\x20required');const _0x5d13af=await fetch(API_BASE+'/tasks/'+_0x187ec5+'/pull-request-info');if(!_0x5d13af['ok']){const _0xbd61bd=await _0x5d13af['json']()['catch'](()=>({}));throw new Error(_0xbd61bd['error']||_0xbd61bd['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x5d13af['statusText']);}return await _0x5d13af['json']();},async 'createPullRequests'(_0x199923,_0x3359a8){if(!_0x199923)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3359a8||!Array['isArray'](_0x3359a8))throw new Error('repos\x20array\x20is\x20required');const _0x66bc15=await fetch(API_BASE+'/tasks/'+_0x199923+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3359a8})});if(!_0x66bc15['ok']){const _0x27b5a6=await _0x66bc15['json']()['catch'](()=>({}));let _0x398be0=_0x27b5a6['error']||_0x27b5a6['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x66bc15['statusText'];if(_0x27b5a6['results']&&Array['isArray'](_0x27b5a6['results'])){const _0x190181=_0x27b5a6['results']['filter'](_0x5c40c6=>!_0x5c40c6['success']&&_0x5c40c6['error']);_0x190181['length']>0x0&&(_0x398be0=_0x190181[0x0]['error']);}throw new Error(_0x398be0);}return await _0x66bc15['json']();},async 'syncRepos'(_0x2bfd7c){if(!_0x2bfd7c)throw new Error('Task\x20ID\x20is\x20required');const _0x5da443=await fetch(API_BASE+'/tasks/'+_0x2bfd7c+'/sync-repos',{'method':'POST'});if(!_0x5da443['ok']){const _0x1a9b82=await _0x5da443['json']()['catch'](()=>({}));throw new Error(_0x1a9b82['error']||_0x1a9b82['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5da443['statusText']);}return await _0x5da443['json']();},async 'getIbmiSyncInfo'(_0x45a4e7){if(!_0x45a4e7)throw new Error('Task\x20ID\x20is\x20required');const _0x40588f=await fetch(API_BASE+'/tasks/'+_0x45a4e7+'/ibmi-sync-info');if(!_0x40588f['ok']){const _0x1ba46b=await _0x40588f['json']()['catch'](()=>({}));throw new Error(_0x1ba46b['error']||_0x1ba46b['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x40588f['json']();},async 'getSyncFiles'(_0x519da5){if(!_0x519da5)throw new Error('Task\x20ID\x20is\x20required');const _0x3e4df=await fetch(API_BASE+'/tasks/'+_0x519da5+'/sync-to-ibmi/files');if(!_0x3e4df['ok']){const _0x2c4e1a=await _0x3e4df['json']()['catch'](()=>({}));throw new Error(_0x2c4e1a['error']||_0x2c4e1a['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x3e4df['json']();},async 'syncToIbmi'(_0x4a22b1,_0x5795b2,_0x121ce1=null,_0x468ed9=null,_0x450da5=null){if(!_0x4a22b1)throw new Error('Task\x20ID\x20is\x20required');const _0x391318={'library':_0x5795b2};if(_0x121ce1)_0x391318['user']=_0x121ce1;if(_0x468ed9)_0x391318['password']=_0x468ed9;if(_0x450da5)_0x391318['files']=_0x450da5;const _0x29313c=await fetch(API_BASE+'/tasks/'+_0x4a22b1+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x391318)});if(!_0x29313c['ok']){const _0x1d11b1=await _0x29313c['json']()['catch'](()=>({}));throw new Error(_0x1d11b1['error']||_0x1d11b1['message']||'Sync\x20failed');}return await _0x29313c['json']();},async 'getIbmiSyncLog'(_0x3d052f){if(!_0x3d052f)throw new Error('Task\x20ID\x20is\x20required');const _0x576e63=await fetch(API_BASE+'/tasks/'+_0x3d052f+'/ibmi-sync-log');if(!_0x576e63['ok']){const _0xfa9e38=await _0x576e63['json']()['catch'](()=>({}));throw new Error(_0xfa9e38['error']||_0xfa9e38['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x576e63['json']();},async 'pullChanges'(_0x3fc093){if(!_0x3fc093)throw new Error('Task\x20ID\x20is\x20required');const _0xacb0c5=await fetch(API_BASE+'/tasks/'+_0x3fc093+'/pull-changes',{'method':'POST'});if(!_0xacb0c5['ok']){const _0x4cf45c=await _0xacb0c5['json']()['catch'](()=>({})),_0x174380=new Error(_0x4cf45c['message']||_0x4cf45c['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0xacb0c5['statusText']);_0x174380['code']=_0x4cf45c['error_code']||null,_0x174380['details']=_0x4cf45c['details']||null,_0x174380['tokenExpiryDays']=_0x4cf45c['token_expiry_days']||null;throw _0x174380;}return await _0xacb0c5['json']();},async 'readFile'(_0x271533,_0x2bd817){if(!_0x271533)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2bd817)throw new Error('File\x20path\x20is\x20required');const _0x56bf45=await fetch(API_BASE+'/tasks/'+_0x271533+'/files?path='+encodeURIComponent(_0x2bd817));if(!_0x56bf45['ok']){const _0xa886a7=await _0x56bf45['json']()['catch'](()=>({}));throw new Error(_0xa886a7['error']||_0xa886a7['message']||'Failed\x20to\x20read\x20file:\x20'+_0x56bf45['statusText']);}return await _0x56bf45['json']();},'getTaskFileDownloadUrl'(_0x961e0a,_0x304684){if(!_0x961e0a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x304684)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x961e0a+'/files/download?path='+encodeURIComponent(_0x304684);},async 'writeFile'(_0x56e33c,_0x2a0821,_0x16dc8b){if(!_0x56e33c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2a0821)throw new Error('File\x20path\x20is\x20required');if(_0x16dc8b===undefined)throw new Error('Content\x20is\x20required');const _0x10d4fe=await fetch(API_BASE+'/tasks/'+_0x56e33c+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x2a0821,'content':_0x16dc8b})});if(!_0x10d4fe['ok']){const _0x37fdd0=await _0x10d4fe['json']()['catch'](()=>({}));throw new Error(_0x37fdd0['error']||_0x37fdd0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x10d4fe['statusText']);}return await _0x10d4fe['json']();},async 'uploadTaskFiles'(_0x2b25a0,_0x1eec49,_0x421a9d){if(!_0x2b25a0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1eec49)throw new Error('Target\x20directory\x20is\x20required');if(!_0x421a9d||_0x421a9d['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x3b4663=new FormData();_0x3b4663['append']('targetDir',_0x1eec49);for(const _0x42d6a8 of _0x421a9d){_0x3b4663['append']('files',_0x42d6a8,_0x42d6a8['name']);}const _0x3689d4=await fetch(API_BASE+'/tasks/'+_0x2b25a0+'/files/upload',{'method':'POST','body':_0x3b4663});if(!_0x3689d4['ok']){const _0x38dd65=await _0x3689d4['json']()['catch'](()=>({}));throw new Error(_0x38dd65['error']||_0x38dd65['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3689d4['statusText']);}return await _0x3689d4['json']();},async 'createDirectory'(_0x430de3,_0xbde17e){if(!_0x430de3)throw new Error('Task\x20ID\x20is\x20required');if(!_0xbde17e)throw new Error('Directory\x20path\x20is\x20required');const _0x3bc373=await fetch(API_BASE+'/tasks/'+_0x430de3+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xbde17e})});if(!_0x3bc373['ok']){const _0x503f93=await _0x3bc373['json']()['catch'](()=>({}));throw new Error(_0x503f93['error']||_0x503f93['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3bc373['statusText']);}return await _0x3bc373['json']();},async 'renamePath'(_0x2a7b32,_0x5ef647,_0x502785){if(!_0x2a7b32)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ef647)throw new Error('Source\x20path\x20is\x20required');if(!_0x502785)throw new Error('Destination\x20path\x20is\x20required');const _0x2e3321=await fetch(API_BASE+'/tasks/'+_0x2a7b32+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x5ef647,'newPath':_0x502785})});if(!_0x2e3321['ok']){const _0x5ca36b=await _0x2e3321['json']()['catch'](()=>({}));throw new Error(_0x5ca36b['error']||_0x5ca36b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x2e3321['statusText']);}return await _0x2e3321['json']();},async 'deleteFile'(_0x46ef02,_0x731a39){if(!_0x46ef02)throw new Error('Task\x20ID\x20is\x20required');if(!_0x731a39)throw new Error('File\x20path\x20is\x20required');const _0x4f159d=await fetch(API_BASE+'/tasks/'+_0x46ef02+'/files?path='+encodeURIComponent(_0x731a39),{'method':'DELETE'});if(!_0x4f159d['ok']){const _0x45e069=await _0x4f159d['json']()['catch'](()=>({}));throw new Error(_0x45e069['error']||_0x45e069['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x4f159d['statusText']);}return await _0x4f159d['json']();},async 'deleteDirectory'(_0x53a4cc,_0x175cc0){if(!_0x53a4cc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x175cc0)throw new Error('Directory\x20path\x20is\x20required');const _0x29ee47=await fetch(API_BASE+'/tasks/'+_0x53a4cc+'/files/directory?path='+encodeURIComponent(_0x175cc0),{'method':'DELETE'});if(!_0x29ee47['ok']){const _0x4bea1f=await _0x29ee47['json']()['catch'](()=>({}));throw new Error(_0x4bea1f['error']||_0x4bea1f['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x29ee47['statusText']);}return await _0x29ee47['json']();},async 'discardFile'(_0x58831a,_0x237b20,_0x19f695){if(!_0x58831a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x237b20)throw new Error('File\x20path\x20is\x20required');if(!_0x19f695)throw new Error('Repository\x20path\x20is\x20required');const _0x113dd8=await fetch(API_BASE+'/tasks/'+_0x58831a+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x237b20,'repoPath':_0x19f695})});if(!_0x113dd8['ok']){const _0x486a72=await _0x113dd8['json']()['catch'](()=>({}));throw new Error(_0x486a72['error']||_0x486a72['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x113dd8['statusText']);}return await _0x113dd8['json']();},async 'followUpTask'(_0x298bc3,_0x3e01a0={}){if(!_0x298bc3)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e01a0['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x26c07d,_0x388b23={};if(_0x3e01a0['files']&&_0x3e01a0['files']['length']>0x0){const _0x23bfdd=new FormData();_0x23bfdd['append']('instructions',_0x3e01a0['instructions']);for(const _0x1f2810 of _0x3e01a0['files']){_0x23bfdd['append']('attachments',_0x1f2810);}_0x26c07d=_0x23bfdd;}else _0x388b23['Content-Type']='application/json',_0x26c07d=JSON['stringify']({'instructions':_0x3e01a0['instructions']});const _0x38edb3=await fetch(API_BASE+'/tasks/'+_0x298bc3+'/follow-up',{'method':'POST','headers':_0x388b23,'body':_0x26c07d});if(!_0x38edb3['ok']){const _0x32119c=await _0x38edb3['json']()['catch'](()=>({}));throw new Error(_0x32119c['error']||_0x32119c['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x38edb3['statusText']);}return await _0x38edb3['json']();},async 'getTaskRewindPoints'(_0x2f0b95){if(!_0x2f0b95)throw new Error('Task\x20ID\x20is\x20required');const _0x2b667a=await fetch(API_BASE+'/tasks/'+_0x2f0b95+'/rewind-points');if(!_0x2b667a['ok']){const _0x13251f=await _0x2b667a['json']()['catch'](()=>({}));throw new Error(_0x13251f['error']||_0x13251f['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x2b667a['statusText']);}return await _0x2b667a['json']();},async 'rewindTask'(_0x4e23d4,_0x394220={}){if(!_0x4e23d4)throw new Error('Task\x20ID\x20is\x20required');const _0x288cc1=Number['isInteger'](_0x394220['targetFollowUpCount'])?_0x394220['targetFollowUpCount']:0x0,_0x31994f={'targetFollowUpCount':_0x288cc1};typeof _0x394220['instructions']==='string'&&_0x394220['instructions']['trim']()&&(_0x31994f['instructions']=_0x394220['instructions']['trim']());typeof _0x394220['rewindFiles']==='boolean'&&(_0x31994f['rewindFiles']=_0x394220['rewindFiles']);const _0x3e9a34=await fetch(API_BASE+'/tasks/'+_0x4e23d4+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x31994f)});if(!_0x3e9a34['ok']){const _0x2a934e=await _0x3e9a34['json']()['catch'](()=>({}));throw new Error(_0x2a934e['error']||_0x2a934e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x3e9a34['statusText']);}return await _0x3e9a34['json']();},async 'login'(_0x21b0be,_0x2f2edd){const _0x1d6327=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x21b0be,'password':_0x2f2edd})});if(!_0x1d6327['ok']){const _0x7d4f87=await _0x1d6327['json']();throw new Error(_0x7d4f87['message']||'Login\x20failed');}return await _0x1d6327['json']();},async 'logout'(){const _0x37b89=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x37b89['ok']){const _0x568852=await _0x37b89['json']();throw new Error(_0x568852['message']||'Logout\x20failed');}return await _0x37b89['json']();},async 'getCurrentUser'(){const _0x9a4594=await fetch(API_BASE+'/auth/me');if(!_0x9a4594['ok'])throw new Error('Not\x20authenticated');const _0x25f91a=await _0x9a4594['json']();return _0x25f91a['user'];},async 'getRolesInfo'(){const _0x4aa5d0=await fetch(API_BASE+'/users/roles');if(!_0x4aa5d0['ok']){const _0x5d3fe2=await _0x4aa5d0['json']();throw new Error(_0x5d3fe2['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x4aa5d0['json']();},async 'getUsers'(){const _0x1b404a=await fetch(API_BASE+'/users');if(!_0x1b404a['ok']){const _0x356222=await _0x1b404a['json']();throw new Error(_0x356222['message']||'Failed\x20to\x20get\x20users');}return await _0x1b404a['json']();},async 'getUser'(_0x1ae7a0){const _0x1a08dc=await fetch(API_BASE+'/users/'+_0x1ae7a0);if(!_0x1a08dc['ok']){const _0x218b68=await _0x1a08dc['json']();throw new Error(_0x218b68['message']||'Failed\x20to\x20get\x20user');}return await _0x1a08dc['json']();},async 'createUser'(_0x43196d){const _0x3255f4=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43196d)});if(!_0x3255f4['ok']){const _0x366d12=await _0x3255f4['json']();throw new Error(_0x366d12['message']||'Failed\x20to\x20create\x20user');}return await _0x3255f4['json']();},async 'updateUser'(_0x3f1708,_0x598158){const _0x315ae0=await fetch(API_BASE+'/users/'+_0x3f1708,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x598158)});if(!_0x315ae0['ok']){const _0x35af9d=await _0x315ae0['json']();throw new Error(_0x35af9d['message']||'Failed\x20to\x20update\x20user');}return await _0x315ae0['json']();},async 'deleteUser'(_0x122072){const _0x5b409a=await fetch(API_BASE+'/users/'+_0x122072,{'method':'DELETE'});if(!_0x5b409a['ok']){const _0x49a880=await _0x5b409a['json']();throw new Error(_0x49a880['message']||'Failed\x20to\x20delete\x20user');}return await _0x5b409a['json']();},async 'stopAllContainers'(){const _0x2a1999=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x331294=await _0x2a1999['json']()['catch'](()=>({}));if(!_0x2a1999['ok'])throw new Error(_0x331294['message']||_0x331294['error']||'Failed\x20to\x20stop\x20containers');return _0x331294;},async 'removeStoppedContainers'(){const _0x2b64ef=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x3b539c=await _0x2b64ef['json']()['catch'](()=>({}));if(!_0x2b64ef['ok'])throw new Error(_0x3b539c['message']||_0x3b539c['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x3b539c;},async 'pruneDockerResources'(){const _0x1df644=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x17364a=await _0x1df644['json']()['catch'](()=>({}));if(!_0x1df644['ok'])throw new Error(_0x17364a['message']||_0x17364a['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x17364a;},async 'getUpdateSettings'(){const _0x4ac69a=await fetch(API_BASE+'/health/update-settings'),_0x277808=await _0x4ac69a['json']()['catch'](()=>({}));if(!_0x4ac69a['ok'])throw new Error(_0x277808['message']||_0x277808['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x277808;},async 'applyServerUpdate'(_0x51e768){const _0x501720=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x51e768})}),_0x5e2802=await _0x501720['json']()['catch'](()=>({}));if(!_0x501720['ok']){const _0x66cae4=new Error(_0x5e2802['message']||_0x5e2802['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x5e2802['output']!==undefined)_0x66cae4['output']=_0x5e2802['output'];if(_0x5e2802['error']!==undefined)_0x66cae4['commandError']=_0x5e2802['error'];throw _0x66cae4;}return _0x5e2802;},async 'restartServer'(){const _0x588cbb=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0xfe9328=await _0x588cbb['json']()['catch'](()=>({}));if(!_0x588cbb['ok'])throw new Error(_0xfe9328['message']||_0xfe9328['error']||'Failed\x20to\x20restart\x20server');return _0xfe9328;},async 'getDockerContainers'(){const _0x53de52=await fetch(API_BASE+'/health/containers'),_0x34f664=await _0x53de52['json']()['catch'](()=>({}));if(!_0x53de52['ok'])throw new Error(_0x34f664['message']||_0x34f664['error']||'Failed\x20to\x20load\x20containers');return _0x34f664;},async 'getDockerImages'(){const _0x5600ae=await fetch(API_BASE+'/health/docker/images'),_0x5a1e7d=await _0x5600ae['json']()['catch'](()=>({}));if(!_0x5600ae['ok'])throw new Error(_0x5a1e7d['message']||_0x5a1e7d['error']||'Failed\x20to\x20load\x20images');return _0x5a1e7d;},async 'getDockerVolumes'(){const _0x532656=await fetch(API_BASE+'/health/docker/volumes'),_0x482e34=await _0x532656['json']()['catch'](()=>({}));if(!_0x532656['ok'])throw new Error(_0x482e34['message']||_0x482e34['error']||'Failed\x20to\x20load\x20volumes');return _0x482e34;},async 'getActiveSessions'(){const _0x2c14e3=await fetch(API_BASE+'/health/sessions'),_0x2b4d23=await _0x2c14e3['json']()['catch'](()=>({}));if(!_0x2c14e3['ok'])throw new Error(_0x2b4d23['message']||_0x2b4d23['error']||'Failed\x20to\x20load\x20sessions');return _0x2b4d23;},async 'getSystemInfo'(){const _0x5e5fd5=await fetch(API_BASE+'/health/system'),_0x2d6237=await _0x5e5fd5['json']()['catch'](()=>({}));if(!_0x5e5fd5['ok'])throw new Error(_0x2d6237['message']||_0x2d6237['error']||'Failed\x20to\x20load\x20system\x20info');return _0x2d6237;},async 'stopDockerContainer'(_0x53fd38){const _0x2c6357=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x53fd38)+'/stop',{'method':'POST'}),_0x5cd856=await _0x2c6357['json']()['catch'](()=>({}));if(!_0x2c6357['ok'])throw new Error(_0x5cd856['message']||_0x5cd856['error']||'Failed\x20to\x20stop\x20container');return _0x5cd856;},async 'removeDockerContainer'(_0x1d6bdf){const _0x13230d=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x1d6bdf),{'method':'DELETE'}),_0x34bbd6=await _0x13230d['json']()['catch'](()=>({}));if(!_0x13230d['ok'])throw new Error(_0x34bbd6['message']||_0x34bbd6['error']||'Failed\x20to\x20remove\x20container');return _0x34bbd6;},async 'createPasswordToken'(_0x15cbc1,_0x38117c='setup',_0x21bfb2=![]){const _0x70ba4f=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x15cbc1,'type':_0x38117c,'sendEmail':_0x21bfb2})});if(!_0x70ba4f['ok']){const _0x2344dd=await _0x70ba4f['json']();throw new Error(_0x2344dd['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x70ba4f['json']();},async 'getEmailConfig'(){const _0x227328=await fetch(API_BASE+'/password/email-config');if(!_0x227328['ok']){const _0x347d4e=await _0x227328['json']();throw new Error(_0x347d4e['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x227328['json']();},async 'updateTaskName'(_0x377277,_0xbda96d){const _0x4b282e=await fetch(API_BASE+'/tasks/'+_0x377277,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xbda96d})});if(!_0x4b282e['ok']){const _0x4f2c34=await _0x4b282e['json']();throw new Error(_0x4f2c34['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4b282e['json']();},async 'updateTaskAlias'(_0x58958b,_0x2d1e63){const _0x5e4939=await fetch(API_BASE+'/tasks/'+_0x58958b,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'alias':_0x2d1e63})});if(!_0x5e4939['ok']){const _0x246547=await _0x5e4939['json']();throw new Error(_0x246547['error']||'Failed\x20to\x20update\x20task\x20alias');}return await _0x5e4939['json']();},async 'pinTask'(_0x3d4a21,_0x5d2cdd,_0x29f15d=null){if(!_0x3d4a21)throw new Error('Task\x20ID\x20is\x20required');const _0x44bac3={'pinned':_0x5d2cdd};_0x29f15d&&_0x29f15d['length']>0x0&&(_0x44bac3['additionalTaskIds']=_0x29f15d);const _0x42db16=await fetch(API_BASE+'/tasks/'+_0x3d4a21+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x44bac3)});if(!_0x42db16['ok']){const _0xc94ead=await _0x42db16['json']();throw new Error(_0xc94ead['error']||'Failed\x20to\x20pin\x20task');}return await _0x42db16['json']();},async 'setTaskWinner'(_0x539543,_0x1f4cf4,_0x5eca0b=[]){if(!_0x539543)throw new Error('Task\x20ID\x20is\x20required');const _0x1be926=await fetch(API_BASE+'/tasks/'+_0x539543+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x1f4cf4,'siblings':_0x5eca0b})});if(!_0x1be926['ok']){const _0x2b2a43=await _0x1be926['json']();throw new Error(_0x2b2a43['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x1be926['json']();},async 'setTaskLoser'(_0x43187a,_0x1482d1){if(!_0x43187a)throw new Error('Task\x20ID\x20is\x20required');const _0x53fd6d=await fetch(API_BASE+'/tasks/'+_0x43187a+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x1482d1})});if(!_0x53fd6d['ok']){const _0x42bfc8=await _0x53fd6d['json']();throw new Error(_0x42bfc8['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x53fd6d['json']();},async 'createTaskGroup'(_0x369f0b){const _0x349a92=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x369f0b)});if(!_0x349a92['ok']){const _0x69f803=await _0x349a92['json']();throw new Error(_0x69f803['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x349a92['json']();},async 'getTaskGroups'(_0x12bfa2={}){const _0x549198=new URLSearchParams();if(_0x12bfa2['userId'])_0x549198['set']('userId',String(_0x12bfa2['userId']));if(_0x12bfa2['status'])_0x549198['set']('status',String(_0x12bfa2['status']));if(_0x12bfa2['limit'])_0x549198['set']('limit',String(_0x12bfa2['limit']));const _0x1b880d=API_BASE+'/tasks/groups'+(_0x549198['toString']()?'?'+_0x549198['toString']():''),_0xdcec3b=await fetch(_0x1b880d);if(!_0xdcec3b['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdcec3b['json']();},async 'getTaskGroup'(_0x26fa80){const _0x92f628=await fetch(API_BASE+'/tasks/groups/'+_0x26fa80);if(!_0x92f628['ok']){const _0x12dd49=await _0x92f628['json']();throw new Error(_0x12dd49['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x92f628['json']();},async 'updateTaskGroup'(_0x57ab7b,_0x21ad50,_0x36d614){const _0x13e530=await fetch(API_BASE+'/tasks/'+_0x57ab7b+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x21ad50,'groupIndex':_0x36d614})});if(!_0x13e530['ok']){const _0x1e7475=await _0x13e530['json']();throw new Error(_0x1e7475['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x13e530['json']();},async 'removeTaskFromGroup'(_0x4aade1){return this['updateTaskGroup'](_0x4aade1,null,null);},async 'deleteTaskGroup'(_0x3fd244,_0xde7227=![]){const _0xeaac07=_0xde7227?'?deleteTasks=true':'',_0x5e5a26=await fetch(API_BASE+'/tasks/groups/'+_0x3fd244+_0xeaac07,{'method':'DELETE'});if(!_0x5e5a26['ok']){const _0x5ad249=await _0x5e5a26['json']();throw new Error(_0x5ad249['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x156551,_0x570bfe){const _0x4662ba=await fetch(API_BASE+'/tasks/groups/'+_0x156551+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x570bfe})});if(!_0x4662ba['ok']){const _0x46f76a=await _0x4662ba['json']();throw new Error(_0x46f76a['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x4662ba['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x527407){if(!_0x527407)throw new Error('Task\x20ID\x20is\x20required');const _0x23c65c=await fetch(API_BASE+'/tasks/'+_0x527407+'/comments');if(!_0x23c65c['ok']){const _0x370386=await _0x23c65c['json']()['catch'](()=>({}));throw new Error(_0x370386['error']||'Failed\x20to\x20get\x20comments');}return await _0x23c65c['json']();},async 'addComment'(_0x2ffb35,_0x52c79c){if(!_0x2ffb35)throw new Error('Task\x20ID\x20is\x20required');if(!_0x52c79c)throw new Error('Comment\x20content\x20is\x20required');const _0x44c712=await fetch(API_BASE+'/tasks/'+_0x2ffb35+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x52c79c})});if(!_0x44c712['ok']){const _0x2375da=await _0x44c712['json']()['catch'](()=>({}));throw new Error(_0x2375da['error']||'Failed\x20to\x20add\x20comment');}return await _0x44c712['json']();},async 'updateComment'(_0x4ab6a4,_0x291eb5,_0x3adf9b){if(!_0x4ab6a4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x291eb5)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x3adf9b)throw new Error('Comment\x20content\x20is\x20required');const _0x15b4e8=await fetch(API_BASE+'/tasks/'+_0x4ab6a4+'/comments/'+_0x291eb5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3adf9b})});if(!_0x15b4e8['ok']){const _0x5b09ad=await _0x15b4e8['json']()['catch'](()=>({}));throw new Error(_0x5b09ad['error']||'Failed\x20to\x20update\x20comment');}return await _0x15b4e8['json']();},async 'deleteComment'(_0x2f3e85,_0x598fc1){if(!_0x2f3e85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x598fc1)throw new Error('Comment\x20ID\x20is\x20required');const _0x19d5d0=await fetch(API_BASE+'/tasks/'+_0x2f3e85+'/comments/'+_0x598fc1,{'method':'DELETE'});if(!_0x19d5d0['ok']){const _0x2fb3e0=await _0x19d5d0['json']()['catch'](()=>({}));throw new Error(_0x2fb3e0['error']||'Failed\x20to\x20delete\x20comment');}return await _0x19d5d0['json']();},async 'createObjective'(_0x42c84b){const _0x55810d={'objective':!![],'name':_0x42c84b['name']||'','environment':_0x42c84b['environment']||null,'agents':_0x42c84b['agents']||[],'branches':_0x42c84b['branches']||{},'isPinned':_0x42c84b['isPinned']||![],'parentObjectiveId':_0x42c84b['parentObjectiveId']||null,'env_vars':_0x42c84b['envVars']||{},'parameters':{'instructions':_0x42c84b['instructions']||''},'files':_0x42c84b['files']||[],'jira':_0x42c84b['jira']||null};return this['createTask'](_0x55810d);},async 'updateObjective'(_0x19aaee,_0x16cb02,_0x65740f=[],_0x4d9346=[]){let _0x2852c3,_0x3ae779={};const _0x51a8f8={..._0x16cb02};_0x4d9346&&_0x4d9346['length']>0x0&&(_0x51a8f8['removeAttachments']=_0x4d9346);if(_0x65740f&&_0x65740f['length']>0x0){const _0x658ece=new FormData();for(const [_0x6a5475,_0x156d68]of Object['entries'](_0x51a8f8)){if(_0x156d68==null)continue;typeof _0x156d68==='object'?_0x658ece['append'](_0x6a5475,JSON['stringify'](_0x156d68)):_0x658ece['append'](_0x6a5475,String(_0x156d68));}for(const _0x1d9f68 of _0x65740f){_0x658ece['append']('attachments',_0x1d9f68);}_0x2852c3=_0x658ece;}else _0x3ae779['Content-Type']='application/json',_0x2852c3=JSON['stringify'](_0x51a8f8);const _0x396880=await fetch(API_BASE+'/tasks/'+_0x19aaee,{'method':'PATCH','headers':_0x3ae779,'body':_0x2852c3});if(!_0x396880['ok']){const _0x1abedf=await _0x396880['json']();throw new Error(_0x1abedf['error']||'Failed\x20to\x20update\x20objective');}return await _0x396880['json']();},async 'deleteObjective'(_0x221a5a){return this['deleteTask'](_0x221a5a);},async 'launchObjective'(_0xeea5d,_0x192816={}){const _0x55413d=await fetch(API_BASE+'/tasks/'+_0xeea5d+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x192816)});if(!_0x55413d['ok']){const _0x472039=await _0x55413d['json']();throw new Error(_0x472039['error']||'Failed\x20to\x20launch\x20objective');}return await _0x55413d['json']();},async 'getObjectiveAttachments'(_0x1f2db7){return this['getTaskAttachments'](_0x1f2db7);},async 'createJudgeTask'({environment:_0x1c87dd,judgeAgent:_0x49434d,groupId:_0x1cfa5e,taskIds:_0x1ef4eb,judgeCustomInstructions:_0x40a7c0,isPinned:_0xe7ca0f}){const _0xf26427=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1c87dd,'judgeAgent':_0x49434d,'groupId':_0x1cfa5e,'taskIds':_0x1ef4eb,'judgeCustomInstructions':_0x40a7c0,'isPinned':_0xe7ca0f})});if(!_0xf26427['ok']){const _0xc957cf=await _0xf26427['json']();throw new Error(_0xc957cf['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0xf26427['json']();},async 'getJudgeTasks'(_0x2a7a3c){const _0x3e8263=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x2a7a3c));if(!_0x3e8263['ok']){const _0x53e1aa=await _0x3e8263['json']();throw new Error(_0x53e1aa['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x3e8263['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1e0e3d,_0x431d67,_0x5ab4a6=''){const _0x202f71=await fetch(API_BASE+'/tasks/'+_0x1e0e3d+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x431d67,'customPreamble':_0x5ab4a6})});if(!_0x202f71['ok']){const _0x47c576=await _0x202f71['json']();throw new Error(_0x47c576['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x202f71['json']();},async 'getJiraConfig'(){const _0x4f0317=await fetch(API_BASE+'/jira/config');if(!_0x4f0317['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4f0317['json']();},async 'getJiraIssue'(_0x2f9470){const _0x2b2cbe=await fetch(API_BASE+'/jira/issues/'+_0x2f9470);if(!_0x2b2cbe['ok']){const _0x419373=await _0x2b2cbe['json']()['catch'](()=>({}));throw new Error(_0x419373['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2b2cbe['statusText']);}return await _0x2b2cbe['json']();},async 'searchJiraIssues'(_0x239aca,_0x3304c0=0x14){const _0x46c542=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x239aca,'maxResults':_0x3304c0})});if(!_0x46c542['ok']){const _0x35b988=await _0x46c542['json']()['catch'](()=>({}));throw new Error(_0x35b988['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x46c542['statusText']);}return await _0x46c542['json']();},async 'postJiraComment'(_0x3c0fd5,_0x13c31b){const _0x3a0cd8=await fetch(API_BASE+'/jira/issues/'+_0x3c0fd5+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x13c31b})});if(!_0x3a0cd8['ok']){const _0x320b53=await _0x3a0cd8['json']()['catch'](()=>({}));throw new Error(_0x320b53['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x3a0cd8['statusText']);}return await _0x3a0cd8['json']();},async 'getJiraComments'(_0x54d1dc){const _0x1caf4c=await fetch(API_BASE+'/jira/issues/'+_0x54d1dc+'/comments');if(!_0x1caf4c['ok']){const _0x2b47f4=await _0x1caf4c['json']()['catch'](()=>({}));throw new Error(_0x2b47f4['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x1caf4c['statusText']);}return await _0x1caf4c['json']();},async 'promptParameter'({environment:_0x3abe84,command:_0x263485,parser:parser='json'}){const _0x1a3b40=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x3abe84,'command':_0x263485,'parser':parser})});if(!_0x1a3b40['ok']){const _0x200c1e=await _0x1a3b40['json']()['catch'](()=>({}));throw new Error(_0x200c1e['message']||_0x200c1e['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x1a3b40['statusText']);}return await _0x1a3b40['json']();},async 'promptParameterStream'(_0x3b59cc,_0x23b75e){const _0x3b96e7=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b59cc)});if(!_0x3b96e7['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x3b96e7['statusText']);const _0x58890a=_0x3b96e7['body']['getReader'](),_0x3e4cd8=new TextDecoder();let _0x2269ac='';return new Promise((_0x29082e,_0x44e1ca)=>{const _0x4e9ac7=async()=>{try{const {done:_0x5d9334,value:_0x151834}=await _0x58890a['read']();if(_0x5d9334)return;_0x2269ac+=_0x3e4cd8['decode'](_0x151834,{'stream':!![]});const _0x4afc8b=_0x2269ac['split']('\x0a\x0a');_0x2269ac=_0x4afc8b['pop']()||'';for(const _0x3a03c2 of _0x4afc8b){if(!_0x3a03c2['trim']())continue;const _0xf5fbb6=_0x3a03c2['split']('\x0a');let _0x4cd41b='message',_0xb3a82c='';for(const _0x2273d3 of _0xf5fbb6){if(_0x2273d3['startsWith']('event:'))_0x4cd41b=_0x2273d3['substring'](0x6)['trim']();else _0x2273d3['startsWith']('data:')&&(_0xb3a82c=_0x2273d3['substring'](0x5)['trim']());}if(!_0xb3a82c)continue;try{const _0x39cc2c=JSON['parse'](_0xb3a82c);if(_0x4cd41b==='progress'&&_0x23b75e)_0x23b75e(_0x39cc2c['stage'],_0x39cc2c['message']);else{if(_0x4cd41b==='result'){_0x29082e(_0x39cc2c);return;}else{if(_0x4cd41b==='error'){let _0x1bcf83=_0x39cc2c['message']||_0x39cc2c['error']||'Prompt\x20command\x20failed';_0x39cc2c['rawOutput']&&(_0x1bcf83+='\x0a\x0aRaw\x20output:\x0a'+_0x39cc2c['rawOutput']);_0x44e1ca(new Error(_0x1bcf83));return;}}}}catch(_0x555f46){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x555f46),console['error']('Event\x20type:',_0x4cd41b),console['error']('Event\x20data:',_0xb3a82c),console['error']('First\x20200\x20chars:',_0xb3a82c['substring'](0x0,0xc8)),_0x44e1ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x555f46['message']+'\x0a\x0aData:\x20'+_0xb3a82c['substring'](0x0,0x1f4)));return;}}_0x4e9ac7();}catch(_0x573436){_0x44e1ca(_0x573436);}};_0x4e9ac7();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3eae8b){const _0x4b7e17=await fetch(''+API_BASE+_0x3eae8b);if(!_0x4b7e17['ok']){const _0x5cbc79=await _0x4b7e17['json']()['catch'](()=>({'error':_0x4b7e17['statusText']})),_0x4b85da=new Error(_0x5cbc79['error']||_0x5cbc79['message']||_0x4b7e17['statusText']);if(_0x5cbc79['detail']!==undefined)_0x4b85da['detail']=_0x5cbc79['detail'];throw _0x4b85da;}return await _0x4b7e17['json']();},async 'post'(_0x2bb87c,_0x3d0e04){const _0x204c97=await fetch(''+API_BASE+_0x2bb87c,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3d0e04)});if(!_0x204c97['ok']){const _0x435b6e=await _0x204c97['json']()['catch'](()=>({'error':_0x204c97['statusText']})),_0x436ead=new Error(_0x435b6e['error']||_0x435b6e['message']||_0x204c97['statusText']);if(_0x435b6e['detail']!==undefined)_0x436ead['detail']=_0x435b6e['detail'];throw _0x436ead;}return await _0x204c97['json']();},async 'put'(_0x4afb92,_0x2878b3){const _0x3ca507=await fetch(''+API_BASE+_0x4afb92,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2878b3)});if(!_0x3ca507['ok']){const _0x425df6=await _0x3ca507['json']()['catch'](()=>({'error':_0x3ca507['statusText']})),_0x86f142=new Error(_0x425df6['error']||_0x425df6['message']||_0x3ca507['statusText']);if(_0x425df6['detail']!==undefined)_0x86f142['detail']=_0x425df6['detail'];throw _0x86f142;}return await _0x3ca507['json']();},async 'delete'(_0xbbf4d4,_0x163414){const _0x15cbe4={'method':'DELETE'};_0x163414&&(_0x15cbe4['headers']={'Content-Type':'application/json'},_0x15cbe4['body']=JSON['stringify'](_0x163414));const _0x1f45f5=await fetch(''+API_BASE+_0xbbf4d4,_0x15cbe4);if(!_0x1f45f5['ok']){const _0x4b05e7=await _0x1f45f5['json']()['catch'](()=>({'error':_0x1f45f5['statusText']})),_0x47f954=new Error(_0x4b05e7['error']||_0x4b05e7['message']||_0x1f45f5['statusText']);if(_0x4b05e7['detail']!==undefined)_0x47f954['detail']=_0x4b05e7['detail'];throw _0x47f954;}return await _0x1f45f5['json']();},async 'getSkills'(){const _0x49f712=await fetch(API_BASE+'/skills');if(!_0x49f712['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x49f712['statusText']);return await _0x49f712['json']();},async 'getSkill'(_0x1abca0){const _0x54c669=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1abca0));if(!_0x54c669['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x54c669['statusText']);return await _0x54c669['json']();},async 'createSkill'(_0xaa3ac0){const _0x2154b9=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xaa3ac0)});if(!_0x2154b9['ok']){const _0x8a1209=await _0x2154b9['json']()['catch'](()=>({'error':_0x2154b9['statusText']})),_0x13ee86=new Error(_0x8a1209['error']||_0x8a1209['message']||_0x2154b9['statusText']);if(_0x8a1209['detail']!==undefined)_0x13ee86['detail']=_0x8a1209['detail'];throw _0x13ee86;}return await _0x2154b9['json']();},async 'updateSkill'(_0x563aba,_0x557fad){const _0x2119fe=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x563aba),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x557fad)});if(!_0x2119fe['ok']){const _0x8bc149=await _0x2119fe['json']()['catch'](()=>({'error':_0x2119fe['statusText']})),_0x2d84f1=new Error(_0x8bc149['error']||_0x8bc149['message']||_0x2119fe['statusText']);if(_0x8bc149['detail']!==undefined)_0x2d84f1['detail']=_0x8bc149['detail'];throw _0x2d84f1;}return await _0x2119fe['json']();},async 'deleteSkill'(_0xe8060d){const _0x13041f=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xe8060d),{'method':'DELETE'});if(!_0x13041f['ok']){const _0x24f7bb=await _0x13041f['json']()['catch'](()=>({'error':_0x13041f['statusText']})),_0x3052da=new Error(_0x24f7bb['error']||_0x24f7bb['message']||_0x13041f['statusText']);if(_0x24f7bb['detail']!==undefined)_0x3052da['detail']=_0x24f7bb['detail'];throw _0x3052da;}return await _0x13041f['json']();},async 'getSkillFile'(_0x4b58b3,_0x307fa7){const _0x5ada85=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4b58b3)+'/files/'+_0x307fa7);if(!_0x5ada85['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x5ada85['statusText']);return await _0x5ada85['json']();},async 'saveSkillFile'(_0x3a2c85,_0x23967b,_0x3394c9){const _0x349c2b=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3a2c85)+'/files/'+_0x23967b,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3394c9})});if(!_0x349c2b['ok']){const _0xadb18c=await _0x349c2b['json']()['catch'](()=>({'error':_0x349c2b['statusText']})),_0x3e11b8=new Error(_0xadb18c['error']||_0xadb18c['message']||_0x349c2b['statusText']);if(_0xadb18c['detail']!==undefined)_0x3e11b8['detail']=_0xadb18c['detail'];throw _0x3e11b8;}return await _0x349c2b['json']();},async 'deleteSkillFile'(_0x1db72b,_0xf4ef9d){const _0x562fc6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1db72b)+'/files/'+_0xf4ef9d,{'method':'DELETE'});if(!_0x562fc6['ok']){const _0x5c0fcc=await _0x562fc6['json']()['catch'](()=>({'error':_0x562fc6['statusText']})),_0x3c0687=new Error(_0x5c0fcc['error']||_0x5c0fcc['message']||_0x562fc6['statusText']);if(_0x5c0fcc['detail']!==undefined)_0x3c0687['detail']=_0x5c0fcc['detail'];throw _0x3c0687;}return await _0x562fc6['json']();},async 'pullSkills'(){const _0xcf5f24=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xcf5f24['ok']){const _0x515ab3=await _0xcf5f24['json']()['catch'](()=>({'error':_0xcf5f24['statusText']})),_0x14596d=new Error(_0x515ab3['error']||_0x515ab3['message']||_0xcf5f24['statusText']);if(_0x515ab3['detail']!==undefined)_0x14596d['detail']=_0x515ab3['detail'];throw _0x14596d;}return await _0xcf5f24['json']();},async 'commitSkills'(_0x580dcc,_0x57bc53={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x57bc53,_0x2900e7=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x580dcc,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x2900e7['ok']){const _0x15fd32=await _0x2900e7['json']()['catch'](()=>({'error':_0x2900e7['statusText']})),_0x5c67bd=new Error(_0x15fd32['error']||_0x15fd32['message']||_0x2900e7['statusText']);if(_0x15fd32['detail']!==undefined)_0x5c67bd['detail']=_0x15fd32['detail'];throw _0x5c67bd;}return await _0x2900e7['json']();},async 'discardSkillsChanges'(){const _0x452452=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x452452['ok']){const _0x124246=await _0x452452['json']()['catch'](()=>({'error':_0x452452['statusText']})),_0x23f437=new Error(_0x124246['error']||_0x124246['message']||_0x452452['statusText']);if(_0x124246['detail']!==undefined)_0x23f437['detail']=_0x124246['detail'];throw _0x23f437;}return await _0x452452['json']();},async 'getSkillCatalog'(){const _0x36d194=await fetch(API_BASE+'/external-skills/catalog');if(!_0x36d194['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x36d194['statusText']);return await _0x36d194['json']();},async 'getImportedSkillsRegistry'(){const _0xa957dd=await fetch(API_BASE+'/external-skills/registry');if(!_0xa957dd['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0xa957dd['statusText']);return await _0xa957dd['json']();},async 'importCatalogSkill'(_0x45bc6d){const _0x3aa8da=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x45bc6d})});if(!_0x3aa8da['ok']){const _0x1c4387=await _0x3aa8da['json']()['catch'](()=>({'error':_0x3aa8da['statusText']})),_0x4c827d=new Error(_0x1c4387['error']||_0x1c4387['message']||_0x3aa8da['statusText']);if(_0x1c4387['detail']!==undefined)_0x4c827d['detail']=_0x1c4387['detail'];throw _0x4c827d;}return await _0x3aa8da['json']();},async 'importSkillFromGit'(_0x968825,_0x40410f,_0x1c9993='main',_0x25bb56=null){const _0x2b17c5=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x968825,'skillPath':_0x40410f,'branch':_0x1c9993,'skillId':_0x25bb56})});if(!_0x2b17c5['ok']){const _0x10e2d5=await _0x2b17c5['json']()['catch'](()=>({'error':_0x2b17c5['statusText']})),_0x16115a=new Error(_0x10e2d5['error']||_0x10e2d5['message']||_0x2b17c5['statusText']);if(_0x10e2d5['detail']!==undefined)_0x16115a['detail']=_0x10e2d5['detail'];throw _0x16115a;}return await _0x2b17c5['json']();},async 'probeMarketplace'(_0x2ee8f7,_0x336485='main'){const _0x48d439=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x2ee8f7,'branch':_0x336485})});if(!_0x48d439['ok']){const _0x297272=await _0x48d439['json']()['catch'](()=>({'error':_0x48d439['statusText']})),_0x5f3ad8=new Error(_0x297272['error']||_0x297272['message']||_0x48d439['statusText']);if(_0x297272['detail']!==undefined)_0x5f3ad8['detail']=_0x297272['detail'];throw _0x5f3ad8;}return await _0x48d439['json']();},async 'importMarketplaceBundle'(_0x5ba096,_0x209a67,_0x4e6532,_0x151b6a=null){const _0x4c1d7f=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5ba096,'branch':_0x209a67,'bundleId':_0x4e6532,'selectedSkills':_0x151b6a})});if(!_0x4c1d7f['ok']){const _0x580f62=await _0x4c1d7f['json']()['catch'](()=>({'error':_0x4c1d7f['statusText']})),_0x5bfaa3=new Error(_0x580f62['error']||_0x580f62['message']||_0x4c1d7f['statusText']);if(_0x580f62['detail']!==undefined)_0x5bfaa3['detail']=_0x580f62['detail'];throw _0x5bfaa3;}return await _0x4c1d7f['json']();},async 'importSkillFromFolder'(_0x792217,_0x3e6fb9=null){const _0x59a641=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x792217,'skillId':_0x3e6fb9})});if(!_0x59a641['ok']){const _0x4ab320=await _0x59a641['json']()['catch'](()=>({'error':_0x59a641['statusText']})),_0x5394ff=new Error(_0x4ab320['error']||_0x4ab320['message']||_0x59a641['statusText']);if(_0x4ab320['detail']!==undefined)_0x5394ff['detail']=_0x4ab320['detail'];throw _0x5394ff;}return await _0x59a641['json']();},async 'importSkillFromNpm'(_0x2c34fd,_0x16d601='latest',_0x490942=null,_0x2e3c96=null){const _0x22d340=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x2c34fd,'version':_0x16d601,'skillId':_0x490942,'registry':_0x2e3c96})});if(!_0x22d340['ok']){const _0x15c055=await _0x22d340['json']()['catch'](()=>({'error':_0x22d340['statusText']})),_0x2fa266=new Error(_0x15c055['error']||_0x15c055['message']||_0x22d340['statusText']);if(_0x15c055['detail']!==undefined)_0x2fa266['detail']=_0x15c055['detail'];throw _0x2fa266;}return await _0x22d340['json']();},async 'checkSkillUpdates'(_0x214521){const _0x1dbe07=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x214521)+'/check-updates',{'method':'POST'});if(!_0x1dbe07['ok']){const _0x334f82=await _0x1dbe07['json']()['catch'](()=>({'error':_0x1dbe07['statusText']})),_0x55fe78=new Error(_0x334f82['error']||_0x334f82['message']||_0x1dbe07['statusText']);if(_0x334f82['detail']!==undefined)_0x55fe78['detail']=_0x334f82['detail'];throw _0x55fe78;}return await _0x1dbe07['json']();},async 'updateExternalSkill'(_0x1856e4){const _0x30c183=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1856e4)+'/update',{'method':'POST'});if(!_0x30c183['ok']){const _0xf744f6=await _0x30c183['json']()['catch'](()=>({'error':_0x30c183['statusText']})),_0x5d8f8b=new Error(_0xf744f6['error']||_0xf744f6['message']||_0x30c183['statusText']);if(_0xf744f6['detail']!==undefined)_0x5d8f8b['detail']=_0xf744f6['detail'];throw _0x5d8f8b;}return await _0x30c183['json']();},async 'updateSkillFlags'(_0x298e7d,_0xda7089){const _0x82f4c2=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x298e7d)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0xda7089})});if(!_0x82f4c2['ok']){const _0x21497d=await _0x82f4c2['json']()['catch'](()=>({'error':_0x82f4c2['statusText']})),_0xa64e4e=new Error(_0x21497d['error']||_0x21497d['message']||_0x82f4c2['statusText']);if(_0x21497d['detail']!==undefined)_0xa64e4e['detail']=_0x21497d['detail'];throw _0xa64e4e;}return await _0x82f4c2['json']();},async 'removeFromImportedRegistry'(_0x317405){const _0x288666=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x317405)+'/registry',{'method':'DELETE'});if(!_0x288666['ok']){const _0x2949a1=await _0x288666['json']()['catch'](()=>({'error':_0x288666['statusText']})),_0x357159=new Error(_0x2949a1['error']||_0x2949a1['message']||_0x288666['statusText']);if(_0x2949a1['detail']!==undefined)_0x357159['detail']=_0x2949a1['detail'];throw _0x357159;}return await _0x288666['json']();},async 'getTeams'(){const _0x3d2b1d=await fetch(API_BASE+'/teams');if(!_0x3d2b1d['ok']){const _0x55f701=await _0x3d2b1d['json']()['catch'](()=>({'message':_0x3d2b1d['statusText']}));throw new Error(_0x55f701['message']||'Failed\x20to\x20get\x20teams');}return await _0x3d2b1d['json']();},async 'getTeam'(_0x2fb8cc){const _0x4a58e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2fb8cc));if(!_0x4a58e8['ok']){const _0x2f64a6=await _0x4a58e8['json']()['catch'](()=>({'message':_0x4a58e8['statusText']}));throw new Error(_0x2f64a6['message']||'Failed\x20to\x20get\x20team');}return await _0x4a58e8['json']();},async 'createTeam'(_0x2f9114){const _0x5c1e8d=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f9114)});if(!_0x5c1e8d['ok']){const _0x4edf02=await _0x5c1e8d['json']()['catch'](()=>({'message':_0x5c1e8d['statusText']}));throw new Error(_0x4edf02['message']||'Failed\x20to\x20create\x20team');}return await _0x5c1e8d['json']();},async 'updateTeam'(_0x688d4b,_0x12c8e7){const _0x5aa8fc=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x688d4b),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x12c8e7)});if(!_0x5aa8fc['ok']){const _0xe556e5=await _0x5aa8fc['json']()['catch'](()=>({'message':_0x5aa8fc['statusText']}));throw new Error(_0xe556e5['message']||'Failed\x20to\x20update\x20team');}return await _0x5aa8fc['json']();},async 'deleteTeam'(_0x181bec){const _0xd042a3=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x181bec),{'method':'DELETE'});if(!_0xd042a3['ok']){const _0x179a35=await _0xd042a3['json']()['catch'](()=>({'message':_0xd042a3['statusText']}));throw new Error(_0x179a35['message']||'Failed\x20to\x20delete\x20team');}return await _0xd042a3['json']();},async 'addTeamMember'(_0x58325c,_0x41ee68){const _0x18e517=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x58325c)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x41ee68})});if(!_0x18e517['ok']){const _0x2d923c=await _0x18e517['json']()['catch'](()=>({'message':_0x18e517['statusText']}));throw new Error(_0x2d923c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x18e517['json']();},async 'removeTeamMember'(_0x21dbf4,_0x24e221){const _0x4baa9d=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x21dbf4)+'/members/'+encodeURIComponent(_0x24e221),{'method':'DELETE'});if(!_0x4baa9d['ok']){const _0x24703f=await _0x4baa9d['json']()['catch'](()=>({'message':_0x4baa9d['statusText']}));throw new Error(_0x24703f['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x4baa9d['json']();},async 'getBindings'(_0x2e3722={}){const _0x43fefb=new URLSearchParams();if(_0x2e3722['resource_type'])_0x43fefb['set']('resource_type',_0x2e3722['resource_type']);if(_0x2e3722['resource_id'])_0x43fefb['set']('resource_id',_0x2e3722['resource_id']);if(_0x2e3722['subject_type'])_0x43fefb['set']('subject_type',_0x2e3722['subject_type']);if(_0x2e3722['subject_id'])_0x43fefb['set']('subject_id',_0x2e3722['subject_id']);const _0x282c78=_0x43fefb['toString'](),_0x266d9d=await fetch(API_BASE+'/bindings'+(_0x282c78?'?'+_0x282c78:''));if(!_0x266d9d['ok']){const _0x14ff5b=await _0x266d9d['json']()['catch'](()=>({'message':_0x266d9d['statusText']}));throw new Error(_0x14ff5b['message']||'Failed\x20to\x20get\x20bindings');}return await _0x266d9d['json']();},async 'createBinding'(_0x5674ec){const _0x3b6813=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5674ec)});if(!_0x3b6813['ok']){const _0x3e17f2=await _0x3b6813['json']()['catch'](()=>({'message':_0x3b6813['statusText']}));throw new Error(_0x3e17f2['message']||'Failed\x20to\x20create\x20binding');}return await _0x3b6813['json']();},async 'updateBinding'(_0x3f1613,_0x42a5ea){const _0x2372d2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3f1613),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x42a5ea)});if(!_0x2372d2['ok']){const _0xec9090=await _0x2372d2['json']()['catch'](()=>({'message':_0x2372d2['statusText']}));throw new Error(_0xec9090['message']||'Failed\x20to\x20update\x20binding');}return await _0x2372d2['json']();},async 'deleteBinding'(_0x5c0238){const _0xf744e0=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x5c0238),{'method':'DELETE'});if(!_0xf744e0['ok']){const _0x2b07ba=await _0xf744e0['json']()['catch'](()=>({'message':_0xf744e0['statusText']}));throw new Error(_0x2b07ba['message']||'Failed\x20to\x20delete\x20binding');}return await _0xf744e0['json']();},async 'getRoleDefinitions'(){const _0x5e0f80=await fetch(API_BASE+'/roles');if(!_0x5e0f80['ok']){const _0x145366=await _0x5e0f80['json']()['catch'](()=>({'message':_0x5e0f80['statusText']}));throw new Error(_0x145366['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x5e0f80['json']();},async 'getRoleDefinition'(_0x2ea1fe){const _0x1648f2=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2ea1fe));if(!_0x1648f2['ok']){const _0x3ca499=await _0x1648f2['json']()['catch'](()=>({'message':_0x1648f2['statusText']}));throw new Error(_0x3ca499['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x1648f2['json']();},async 'createRoleDefinition'(_0x5c5ab8){const _0x5969ac=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c5ab8)});if(!_0x5969ac['ok']){const _0xe5fa99=await _0x5969ac['json']()['catch'](()=>({'message':_0x5969ac['statusText']}));throw new Error(_0xe5fa99['message']||_0xe5fa99['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x5969ac['json']();},async 'updateRoleDefinition'(_0xc0c0c0,_0x38fb0e){const _0x2a7aab=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0xc0c0c0),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x38fb0e)});if(!_0x2a7aab['ok']){const _0x3de188=await _0x2a7aab['json']()['catch'](()=>({'message':_0x2a7aab['statusText']}));throw new Error(_0x3de188['message']||_0x3de188['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x2a7aab['json']();},async 'deleteRoleDefinition'(_0x884c40){const _0x501323=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x884c40),{'method':'DELETE'});if(!_0x501323['ok']){const _0x34a2fc=await _0x501323['json']()['catch'](()=>({'message':_0x501323['statusText']}));throw new Error(_0x34a2fc['message']||_0x34a2fc['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x501323['json']();},async 'getAvailablePermissions'(){const _0x3f3b23=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3f3b23['ok']){const _0x5a5e00=await _0x3f3b23['json']()['catch'](()=>({'message':_0x3f3b23['statusText']}));throw new Error(_0x5a5e00['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3f3b23['json']();},async 'getGitProviderAllowedTeams'(_0x3436bb){const _0x5d0cb3=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3436bb)+'/allowed-teams');if(!_0x5d0cb3['ok']){const _0x2ea891=await _0x5d0cb3['json']()['catch'](()=>({'message':_0x5d0cb3['statusText']}));throw new Error(_0x2ea891['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x5d0cb3['json']();},async 'setGitProviderAllowedTeams'(_0x4d2de0,_0x37b96f){const _0x1335e9=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x4d2de0)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x37b96f})});if(!_0x1335e9['ok']){const _0x30647a=await _0x1335e9['json']()['catch'](()=>({'message':_0x1335e9['statusText']}));throw new Error(_0x30647a['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x1335e9['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 _0x507330=toastState['baseBottom'];toastState['toasts']['forEach'](_0x53abfa=>{_0x53abfa['el']['style']['bottom']=_0x507330+'px';const _0x5b4cc3=_0x53abfa['el']['offsetHeight']||toastState['defaultHeight'];_0x507330+=_0x5b4cc3+toastState['gap'];});});}function removeToastById(_0x4e1791){const _0x2a4716=toastState['toasts']['findIndex'](_0x1c30e4=>_0x1c30e4['id']===_0x4e1791);if(_0x2a4716===-0x1)return;const _0x312ed7=toastState['toasts'][_0x2a4716];if(_0x312ed7['timeoutId'])clearTimeout(_0x312ed7['timeoutId']);_0x312ed7['el']['classList']['remove']('show'),setTimeout(()=>_0x312ed7['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x2a4716,0x1),repositionAllToasts();}function registerToast(_0x220b98){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x220b98),repositionAllToasts(),_0x220b98['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(_0x15b80e){if(_0x15b80e===null||_0x15b80e===undefined)return'';return String(_0x15b80e)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x39381b,_0x5d594b){if(_0x39381b&&typeof _0x39381b==='object'&&!Array['isArray'](_0x39381b))return{'code':typeof _0x39381b['text']==='string'?_0x39381b['text']:'','language':typeof _0x39381b['lang']==='string'?_0x39381b['lang']:''};return{'code':typeof _0x39381b==='string'?_0x39381b:'','language':typeof _0x5d594b==='string'?_0x5d594b:''};}function buildMermaidBlock(_0x26d7f3){const _0x3093b2=String(_0x26d7f3||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x3093b2))+'\x22>'+escapeHtmlValue(_0x3093b2)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x8552b6=new marked['Renderer'](),_0x37480a=_0x8552b6['code']['bind'](_0x8552b6);return _0x8552b6['code']=function(_0xf419dd,_0x5abcd6,..._0x3c277c){const {code:_0x42bd71,language:_0x176b27}=getMarkdownCodeBlockPayload(_0xf419dd,_0x5abcd6),_0x2ef0e9=String(_0x176b27||'')['trim']()['toLowerCase']();if(_0x2ef0e9==='mermaid')return buildMermaidBlock(_0x42bd71);const _0x1ff85c=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x1ff85c&&_0x2ef0e9)try{const _0x29dfb8=_0x1ff85c['getLanguage'](_0x2ef0e9)?_0x2ef0e9:'plaintext',_0x2461a1=_0x1ff85c['highlight'](_0x42bd71,{'language':_0x29dfb8})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x2ef0e9)+'\x22>'+_0x2461a1+'</code></pre>';}catch(_0x3f5485){console['error']('Syntax\x20highlighting\x20error:',_0x3f5485);}return _0x37480a(_0xf419dd,_0x5abcd6,..._0x3c277c);},sharedMarkedRenderer=_0x8552b6,_0x8552b6;}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 _0x5ab095=window['mermaid'];if(!_0x5ab095||typeof _0x5ab095['initialize']!=='function')return _0x5ab095||null;return _0x5ab095['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x5ab095;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0xe512c3,_0x55254a)=>{const _0x18c6ed=()=>_0xe512c3(configureMermaidInstance()),_0x54198a=()=>{mermaidLoadPromise=null,_0x55254a(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x5b7edb=document['getElementById'](MERMAID_SCRIPT_ID);!_0x5b7edb&&(_0x5b7edb=document['createElement']('script'),_0x5b7edb['id']=MERMAID_SCRIPT_ID,_0x5b7edb['src']=MERMAID_SCRIPT_SRC,_0x5b7edb['async']=!![],document['head']['appendChild'](_0x5b7edb));if(window['mermaid']){_0x18c6ed();return;}_0x5b7edb['addEventListener']('load',_0x18c6ed,{'once':!![]}),_0x5b7edb['addEventListener']('error',_0x54198a,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x151577){const _0x5bc10c=_0x151577['getAttribute']('data-mermaid-source');if(!_0x5bc10c)return null;let _0x119fe4=_0x5bc10c;try{_0x119fe4=decodeURIComponent(_0x5bc10c);}catch{}return _0x151577['textContent']=_0x119fe4,_0x151577['removeAttribute']('data-processed'),_0x151577['removeAttribute']('aria-roledescription'),_0x151577['removeAttribute']('role'),_0x151577['removeAttribute']('aria-label'),_0x119fe4;}function collectMermaidNodes(_0x2ce62a,_0x2c0e57){if(!(_0x2ce62a instanceof Element))return;_0x2ce62a['matches']('.mermaid[data-mermaid-source]')&&_0x2c0e57['add'](_0x2ce62a),_0x2ce62a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x546d66=>{_0x2c0e57['add'](_0x546d66);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x196316=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x1f1733=>setTimeout(_0x1f1733,0x0);_0x196316(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x24f664=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x24f664);});});}function queueMermaidRender(_0x18ae75){const _0x389fe5=new Set();_0x18ae75 instanceof Document||_0x18ae75 instanceof DocumentFragment?_0x18ae75['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5483eb=>_0x389fe5['add'](_0x5483eb)):collectMermaidNodes(_0x18ae75,_0x389fe5);if(_0x389fe5['size']===0x0)return;_0x389fe5['forEach'](_0x5422c8=>pendingMermaidNodes['add'](_0x5422c8)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x1e076d=Array['from'](pendingMermaidNodes)['filter'](_0xeaee97=>_0xeaee97['isConnected']);pendingMermaidNodes['clear']();if(_0x1e076d['length']===0x0)return;const _0x212e51=await loadMermaid();if(!_0x212e51)return;configureMermaidInstance();const _0x4e3d9e=getMermaidTheme();for(const _0x4f816a of _0x1e076d){const _0x3bc4cc=_0x4f816a['getAttribute']('data-mermaid-source');if(!_0x3bc4cc)continue;const _0x285473=_0x4f816a['getAttribute']('data-processed')==='true';if(_0x285473&&_0x4f816a['dataset']['mermaidTheme']===_0x4e3d9e)continue;restoreMermaidSource(_0x4f816a);try{if(typeof _0x212e51['run']==='function')await _0x212e51['run']({'nodes':[_0x4f816a]});else typeof _0x212e51['init']==='function'&&_0x212e51['init'](undefined,[_0x4f816a]);_0x4f816a['dataset']['mermaidTheme']=_0x4e3d9e,delete _0x4f816a['dataset']['mermaidError'];}catch(_0x54c532){console['error']('Mermaid\x20render\x20failed:',_0x54c532),restoreMermaidSource(_0x4f816a),_0x4f816a['dataset']['mermaidError']='true',delete _0x4f816a['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3fc323=>{_0x3fc323['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x3fc323);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x23a7c0=>{_0x23a7c0['forEach'](_0x46de8b=>{_0x46de8b['addedNodes']['forEach'](_0x591b71=>{_0x591b71['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x591b71);});});}),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'(_0x13d49c){const _0x175f9a=new Date(_0x13d49c),_0x2d824b=new Date(),_0x3c802d=_0x2d824b-_0x175f9a,_0x8ab564=Math['floor'](_0x3c802d/0x3e8),_0x49b081=Math['floor'](_0x8ab564/0x3c),_0x54c093=Math['floor'](_0x49b081/0x3c),_0x39cf9d=Math['floor'](_0x54c093/0x18);if(_0x8ab564<0x3c)return'now';if(_0x49b081<0x3c)return _0x49b081+'m\x20ago';if(_0x54c093<0x18)return _0x54c093+'h\x20ago';return _0x39cf9d+'d\x20ago';},'getStatusIcon'(_0x20d209){switch(_0x20d209){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x5f21e2){switch(_0x5f21e2){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'(_0x22bc88,_0x3e2b5b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x558061={};_0x558061['text/plain']=new Blob([_0x22bc88],{'type':'text/plain'});_0x3e2b5b&&(_0x558061['text/html']=new Blob([_0x3e2b5b],{'type':'text/html'}));const _0x1a42ed=new ClipboardItem(_0x558061);return await navigator['clipboard']['write']([_0x1a42ed]),!![];}catch(_0x3d797b){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3d797b);}try{const _0x40ae9c=_0x11df78=>{_0x11df78['preventDefault'](),_0x11df78['clipboardData']['setData']('text/plain',_0x22bc88),_0x3e2b5b&&_0x11df78['clipboardData']['setData']('text/html',_0x3e2b5b);};document['addEventListener']('copy',_0x40ae9c);const _0x4dd0d7=document['execCommand']('copy');document['removeEventListener']('copy',_0x40ae9c);if(_0x4dd0d7)return!![];}catch(_0x41da05){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x41da05);}try{const _0x31fb9b=document['createElement']('textarea');_0x31fb9b['value']=_0x22bc88,_0x31fb9b['style']['position']='fixed',_0x31fb9b['style']['opacity']='0',_0x31fb9b['style']['pointerEvents']='none',document['body']['appendChild'](_0x31fb9b),_0x31fb9b['select']();const _0x2c7286=document['execCommand']('copy');return document['body']['removeChild'](_0x31fb9b),_0x2c7286;}catch(_0x285c44){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x285c44),![];}},'showToast'(_0x276094,_0x51577d='info'){const _0x41f0bc=getNextToastId(),_0x5fed52=document['createElement']('div');_0x5fed52['className']='toast\x20toast-'+_0x51577d,_0x5fed52['textContent']=_0x276094,_0x5fed52['dataset']['toastId']=_0x41f0bc,document['body']['appendChild'](_0x5fed52);const _0x1d1078=_0x51577d==='error'?0x2710:0xbb8,_0x22c89f=setTimeout(()=>{removeToastById(_0x41f0bc);},_0x1d1078),_0x4b2988={'id':_0x41f0bc,'el':_0x5fed52,'timeoutId':_0x22c89f};return registerToast(_0x4b2988),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5fed52['classList']['add']('show');});}),_0x41f0bc;},'showError'(_0x5cbba2){console['error'](_0x5cbba2);const _0x57eb4b=typeof _0x5cbba2==='string'?_0x5cbba2:_0x5cbba2['message']||'An\x20error\x20occurred';this['showToast'](_0x57eb4b,'error');},'showSuccess'(_0x543bd1){this['showToast'](_0x543bd1,'success');},'capitalize'(_0x522995){if(!_0x522995)return'';return _0x522995['charAt'](0x0)['toUpperCase']()+_0x522995['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x492b53){return escapeHtmlValue(_0x492b53);},'ansiToHtml'(_0xb9a9b9){if(_0xb9a9b9===null||_0xb9a9b9===undefined)return'';let _0x12f745=this['escapeHtml'](_0xb9a9b9);const _0x1d3bf0={'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'},_0x37705a={'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 _0x3fb9dd=0x0;return _0x12f745=_0x12f745['replace'](/\x1b\[([0-9;]*)m/g,(_0xba0829,_0x32d0db)=>{if(!_0x32d0db||_0x32d0db==='0'){const _0x377b46='</span>'['repeat'](_0x3fb9dd);return _0x3fb9dd=0x0,_0x377b46;}const _0x185d4c=_0x32d0db['split'](';'),_0x5d2730=[];for(const _0x59624d of _0x185d4c){if(_0x59624d==='1')_0x5d2730['push']('font-weight:bold');else{if(_0x59624d==='2')_0x5d2730['push']('opacity:0.7');else{if(_0x59624d==='3')_0x5d2730['push']('font-style:italic');else{if(_0x59624d==='4')_0x5d2730['push']('text-decoration:underline');else{if(_0x59624d==='9')_0x5d2730['push']('text-decoration:line-through');else{if(_0x1d3bf0[_0x59624d])_0x5d2730['push']('color:'+_0x1d3bf0[_0x59624d]);else{if(_0x37705a[_0x59624d])_0x5d2730['push']('background-color:'+_0x37705a[_0x59624d]);}}}}}}}if(_0x5d2730['length']>0x0)return _0x3fb9dd++,'<span\x20style=\x22'+_0x5d2730['join'](';')+'\x22>';return'';}),_0x12f745+='</span>'['repeat'](_0x3fb9dd),_0x12f745=_0x12f745['replace'](/\\u001b\[([0-9;]*)m/g,(_0x9e41af,_0x33f838)=>{if(!_0x33f838||_0x33f838==='0')return'';const _0x3fe2bf=_0x33f838['split'](';'),_0x55c456=[];for(const _0x4810a2 of _0x3fe2bf){if(_0x4810a2==='1')_0x55c456['push']('font-weight:bold');else{if(_0x1d3bf0[_0x4810a2])_0x55c456['push']('color:'+_0x1d3bf0[_0x4810a2]);else{if(_0x37705a[_0x4810a2])_0x55c456['push']('background-color:'+_0x37705a[_0x4810a2]);}}}if(_0x55c456['length']>0x0)return'<span\x20style=\x22'+_0x55c456['join'](';')+'\x22>';return'';}),_0x12f745;},'showModal'({title:_0x7f621,content:_0x309176,buttons:buttons=[]}){const _0x55fe31='\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'](_0x7f621)+'</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'+_0x309176+'\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']((_0x4dfcc7,_0x3bf561)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x4dfcc7['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3bf561+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x4dfcc7['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',_0xd2c824=document['createElement']('div');_0xd2c824['id']='utils-modal',_0xd2c824['className']='modal',_0xd2c824['innerHTML']=_0x55fe31,document['body']['appendChild'](_0xd2c824);const _0xe951ff=document['getElementById']('utils-modal-close');_0xe951ff&&_0xe951ff['addEventListener']('click',()=>this['hideModal']());const _0x345495=_0xd2c824['querySelectorAll']('[data-btn-index]');_0x345495['forEach'](_0x4c9532=>{const _0x3c50b6=parseInt(_0x4c9532['dataset']['btnIndex']);buttons[_0x3c50b6]?.['onClick']&&_0x4c9532['addEventListener']('click',buttons[_0x3c50b6]['onClick']);});const _0xf4520=document['getElementById']('utils-modal-overlay');_0xf4520&&_0xf4520['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x19191b=document['getElementById']('utils-modal');_0x19191b&&_0x19191b['remove']();},'parseKeyValuePairs'(_0x27c220){const _0x6e7960={};if(!_0x27c220)return _0x6e7960;return _0x27c220['split'](/\r?\n/)['map'](_0x570310=>_0x570310['trim']())['filter'](Boolean)['forEach'](_0x5a0627=>{const _0x1e04e3=_0x5a0627['indexOf']('=');if(_0x1e04e3>0x0){const _0x18ee4d=_0x5a0627['slice'](0x0,_0x1e04e3)['trim'](),_0x4acee8=_0x5a0627['slice'](_0x1e04e3+0x1)['trim']();if(_0x18ee4d)_0x6e7960[_0x18ee4d]=_0x4acee8;}}),_0x6e7960;},'debounce'(_0x5d65dd,_0x15aaa4=0xfa){let _0x283cba=null;return(..._0x3681eb)=>{clearTimeout(_0x283cba),_0x283cba=setTimeout(()=>_0x5d65dd['apply'](this,_0x3681eb),_0x15aaa4);};},'formatTimestamp'(_0x35699c){if(!_0x35699c)return'N/A';const _0xacef7d=new Date(_0x35699c);return _0xacef7d['toLocaleDateString']()+'\x20'+_0xacef7d['toLocaleTimeString']();},'getQueryParams'(){const _0x176c32=new URLSearchParams(window['location']['search']),_0x5c18b3={};for(const [_0x2dc024,_0x1d0deb]of _0x176c32){_0x5c18b3[_0x2dc024]=_0x1d0deb;}return _0x5c18b3;},'formatDuration'(_0x5a805f,_0x2c85d0){if(!_0x5a805f)return'N/A';const _0x2ae3a2=new Date(_0x5a805f),_0x42fc78=_0x2c85d0?new Date(_0x2c85d0):new Date(),_0x10f7c7=_0x42fc78-_0x2ae3a2;if(_0x10f7c7<0x0)return'0s';const _0x36e1f0=Math['floor'](_0x10f7c7/0x3e8),_0x2474bc=Math['floor'](_0x36e1f0/0x3c),_0x79bf09=Math['floor'](_0x2474bc/0x3c),_0x2e43df=Math['floor'](_0x79bf09/0x18);if(_0x36e1f0<0x3c)return _0x36e1f0+'s';if(_0x2474bc<0x3c)return _0x2474bc+'m\x20'+_0x36e1f0%0x3c+'s';if(_0x79bf09<0x18)return _0x79bf09+'h\x20'+_0x2474bc%0x3c+'m\x20'+_0x36e1f0%0x3c+'s';return _0x2e43df+'d\x20'+_0x79bf09%0x18+'h\x20'+_0x2474bc%0x3c+'m';},'renderMarkdown'(_0x35aaf3,_0x1201e7={}){if(!_0x35aaf3)return'';_0x35aaf3=this['rewriteAttachmentLinks'](_0x35aaf3,_0x1201e7),_0x35aaf3=this['rewriteColorSyntax'](_0x35aaf3);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x35aaf3,_0x1201e7);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x35aaf3);}catch(_0x184858){return console['error']('Markdown\x20parsing\x20error:',_0x184858),this['renderMarkdownFallback'](_0x35aaf3,_0x1201e7);}},'rewriteAttachmentLinks'(_0x290b07,_0x4be781={}){const _0x41426b=typeof _0x4be781['resolveAttachmentUrl']==='function'?_0x4be781['resolveAttachmentUrl']:_0x4be781['taskId']?_0x5dfc73=>API_BASE+'/tasks/'+_0x4be781['taskId']+'/attachments/'+encodeURIComponent(_0x5dfc73):null;if(!_0x41426b)return _0x290b07;return String(_0x290b07)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x38cfb4,_0x50d99b)=>{const _0xc62411=String(_0x50d99b||'')['trim']();if(!_0xc62411)return _0x38cfb4;let _0x392712=_0xc62411;try{_0x392712=decodeURIComponent(_0xc62411);}catch{}const _0x29db82=_0x41426b(_0x392712);if(!_0x29db82)return _0x38cfb4;return']('+_0x29db82+')';});},'rewriteColorSyntax'(_0x3c00ce){if(!_0x3c00ce)return _0x3c00ce;return String(_0x3c00ce)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x569b9c,_0x2f143e,_0x26c7d8)=>{const _0x46e45f=this['rewriteColorSyntax'](_0x26c7d8);return'<span\x20style=\x22color:\x20'+_0x2f143e+'\x22>'+_0x46e45f+'</span>';});},'renderMarkdownFallback'(_0x4d7b2c,_0x2bd97f={}){if(!_0x4d7b2c)return'';_0x4d7b2c=_0x4d7b2c['replace'](/\r\n/g,'\x0a'),_0x4d7b2c=_0x4d7b2c['replace'](/\r/g,'\x0a'),_0x4d7b2c=this['rewriteAttachmentLinks'](_0x4d7b2c,_0x2bd97f);let _0x29a955=this['escapeHtml'](_0x4d7b2c);return _0x29a955=_0x29a955['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x29a955=_0x29a955['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x29a955=_0x29a955['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x29a955=_0x29a955['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x29a955=_0x29a955['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x29a955=_0x29a955['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x29a955=_0x29a955['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x29a955=_0x29a955['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x29a955=_0x29a955['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x29a955=_0x29a955['replace'](/\n\n/g,'</p><p>'),_0x29a955=_0x29a955['replace'](/\n/g,'<br>'),'<p>'+_0x29a955+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1d47ad=new Uint8Array(0x10);crypto['getRandomValues'](_0x1d47ad),_0x1d47ad[0x6]=_0x1d47ad[0x6]&0xf|0x40,_0x1d47ad[0x8]=_0x1d47ad[0x8]&0x3f|0x80;const _0x46d2d8=Array['from'](_0x1d47ad,_0x3aac97=>_0x3aac97['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x46d2d8['slice'](0x0,0x8)+'-'+_0x46d2d8['slice'](0x8,0xc)+'-'+_0x46d2d8['slice'](0xc,0x10)+'-'+_0x46d2d8['slice'](0x10,0x14)+'-'+_0x46d2d8['slice'](0x14);}};export class CustomSelect{constructor(_0x38bda0,_0x37bd88={}){this['nativeSelect']=_0x38bda0,this['options']=_0x37bd88,this['isOpen']=![],this['selectedValue']=_0x38bda0['value']||'',this['searchable']=_0x37bd88['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x14d81d=document['createElement']('div');_0x14d81d['className']='custom-select';const _0x5163fb=document['createElement']('div');_0x5163fb['className']='custom-select-trigger',_0x5163fb['setAttribute']('tabindex','0'),_0x5163fb['setAttribute']('role','button'),_0x5163fb['setAttribute']('aria-haspopup','listbox');const _0x353d91=document['createElement']('span');_0x353d91['className']='custom-select-trigger-text';const _0x448b3d=document['createElement']('span');_0x448b3d['className']='custom-select-arrow',_0x448b3d['textContent']='▼',_0x5163fb['appendChild'](_0x353d91),_0x5163fb['appendChild'](_0x448b3d);const _0x2e9f5f=document['createElement']('div');_0x2e9f5f['className']='custom-select-dropdown',_0x2e9f5f['setAttribute']('role','listbox');if(this['searchable']){const _0x495ca0=document['createElement']('div');_0x495ca0['className']='custom-select-search';const _0x4ccee1=document['createElement']('input');_0x4ccee1['type']='text',_0x4ccee1['className']='custom-select-search-input',_0x4ccee1['placeholder']='Type\x20to\x20search...',_0x4ccee1['setAttribute']('aria-label','Search\x20options'),_0x4ccee1['addEventListener']('input',_0x152f0d=>{this['searchQuery']=_0x152f0d['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x4ccee1['addEventListener']('keydown',_0x56274f=>{if(_0x56274f['key']==='Escape')_0x56274f['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x56274f['key']==='Enter'){_0x56274f['preventDefault'](),_0x56274f['stopPropagation']();const _0x2cb453=_0x2e9f5f['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x2cb453){const _0x2ebd5f=_0x2cb453['getAttribute']('data-value');this['select'](_0x2ebd5f);}}}}),_0x495ca0['appendChild'](_0x4ccee1),_0x2e9f5f['appendChild'](_0x495ca0),this['searchInput']=_0x4ccee1;}const _0x2d7453=document['createElement']('div');_0x2d7453['className']='custom-select-options',_0x2e9f5f['appendChild'](_0x2d7453),_0x14d81d['appendChild'](_0x5163fb),_0x14d81d['appendChild'](_0x2e9f5f),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x14d81d,this['nativeSelect']),this['wrapper']=_0x14d81d,this['trigger']=_0x5163fb,this['triggerText']=_0x353d91,this['dropdown']=_0x2e9f5f,this['optionsContainer']=_0x2d7453,_0x5163fb['addEventListener']('click',()=>this['toggle']()),_0x5163fb['addEventListener']('keydown',_0xda45ee=>this['handleKeydown'](_0xda45ee)),document['addEventListener']('click',_0x8a0071=>{!_0x14d81d['contains'](_0x8a0071['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x33fde8=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x33fde8['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x1060dd=new MutationObserver(()=>{this['updateDisabledState']();});_0x1060dd['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4191df=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4191df['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x30b04c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x30b04c),this['trigger']['setAttribute']('aria-disabled',_0x30b04c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x30b04c?'-1':'0'),_0x30b04c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x472ff9=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x2e00c1=_0x472ff9['filter'](_0x364973=>!_0x364973['disabled']&&!_0x364973['hidden']);_0x472ff9['forEach']((_0x131f66,_0x29e1b5)=>{const _0xa8fac3=document['createElement']('div');_0xa8fac3['className']='custom-select-option',_0xa8fac3['textContent']=_0x131f66['textContent'],_0xa8fac3['setAttribute']('data-value',_0x131f66['value']),_0xa8fac3['setAttribute']('data-index',_0x29e1b5),_0xa8fac3['setAttribute']('role','option'),_0x131f66['disabled']?_0xa8fac3['classList']['add']('disabled'):_0xa8fac3['addEventListener']('click',()=>this['select'](_0x131f66['value'])),_0x131f66['value']===this['selectedValue']&&_0xa8fac3['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0xa8fac3),this['allOptions']['push']({'element':_0xa8fac3,'text':_0x131f66['textContent']['toLowerCase'](),'value':_0x131f66['value'],'disabled':_0x131f66['disabled']});});if(this['searchable']&&this['searchInput']){const _0x37aba9=this['searchInput']['parentElement'];_0x2e00c1['length']>0x3?_0x37aba9['style']['display']='':_0x37aba9['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x347c8b=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x56f553=>{if(!_0x347c8b||_0x56f553['disabled'])_0x56f553['element']['style']['display']='';else{const _0x13185a=_0x56f553['text']['includes'](_0x347c8b);_0x56f553['element']['style']['display']=_0x13185a?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x5d6990){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x5d6990,this['nativeSelect']['value']=_0x5d6990;const _0x315e6a=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x315e6a),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x2adffb=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x2adffb&&(this['triggerText']['textContent']=_0x2adffb['textContent'],_0x2adffb['disabled']||_0x2adffb['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0xcd2542=>{_0xcd2542['getAttribute']('data-value')===this['selectedValue']?_0xcd2542['classList']['add']('selected'):_0xcd2542['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 _0x36e6e2=window['getComputedStyle'](this['dropdown']);if(_0x36e6e2['position']==='fixed'){const _0x1d5628=this['trigger']['getBoundingClientRect'](),_0x2a227b=parseInt(_0x36e6e2['maxHeight'])||0xc8,_0xf712d8=window['innerHeight'],_0x2ea9b1=_0xf712d8-_0x1d5628['bottom'],_0x4c747a=_0x1d5628['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x47bb88;_0x2ea9b1<_0x2a227b&&_0x4c747a>_0x2ea9b1?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0xf712d8-_0x1d5628['top']+'px',_0x47bb88=Math['min'](_0x2a227b,_0x4c747a-0xa),this['dropdown']['style']['maxHeight']=_0x47bb88+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x1d5628['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x47bb88=Math['min'](_0x2a227b,_0x2ea9b1-0xa),this['dropdown']['style']['maxHeight']=_0x47bb88+'px');if(this['optionsContainer']){let _0xb924ff=_0x47bb88;if(this['searchInput']){const _0x3357c9=this['searchInput']['parentElement'];_0x3357c9&&(_0xb924ff-=_0x3357c9['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0xb924ff)+'px';}this['dropdown']['style']['left']=_0x1d5628['left']+'px',this['dropdown']['style']['width']=_0x1d5628['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x107c88=this['searchInput']['parentElement'];_0x107c88&&_0x107c88['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'](_0x4dd9b5){if(this['nativeSelect']['disabled'])return;if(_0x4dd9b5['key']==='Enter'||_0x4dd9b5['key']==='\x20')_0x4dd9b5['preventDefault'](),this['toggle']();else _0x4dd9b5['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x49b366='\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',_0x49b366),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x36898f=document['getElementById']('confirm-dialog-close'),_0x120df1=document['getElementById']('confirm-dialog-cancel'),_0x4648dc=document['getElementById']('confirm-dialog-confirm'),_0x5cdfa1=this['_modal']['querySelector']('.modal-overlay');_0x36898f['addEventListener']('click',()=>this['_resolve'](![])),_0x120df1['addEventListener']('click',()=>this['_resolve'](![])),_0x4648dc['addEventListener']('click',()=>this['_resolve'](!![])),_0x5cdfa1['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1a9a2e=>{if(_0x1a9a2e['key']==='Escape')_0x1a9a2e['preventDefault'](),this['_resolve'](![]);else _0x1a9a2e['key']==='Enter'&&(_0x1a9a2e['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x1a1d50,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5e7670=>{this['_resolvePromise']=_0x5e7670,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x1a1d50;const _0x38c85c=document['getElementById']('confirm-dialog-cancel'),_0x257abb=document['getElementById']('confirm-dialog-confirm');_0x38c85c['textContent']=cancelText,_0x257abb['textContent']=confirmText,_0x257abb['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x257abb['focus']();});},'_resolve'(_0x1c965e){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x1c965e),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x55f375,_0x3e73a9={}){this['container']=_0x55f375,this['options']={'placeholder':_0x3e73a9['placeholder']||'Type\x20to\x20search...','maxItems':_0x3e73a9['maxItems']||0x64,'loadItems':_0x3e73a9['loadItems']||(async()=>[]),'renderItem':_0x3e73a9['renderItem']||(_0x38ba42=>({'primary':String(_0x38ba42),'secondary':''})),'onSelect':_0x3e73a9['onSelect']||(()=>{}),'filterItems':_0x3e73a9['filterItems']||null,'getItemValue':_0x3e73a9['getItemValue']||(_0x48e5e0=>_0x48e5e0),'sortItems':_0x3e73a9['sortItems']||null,'debounceMs':_0x3e73a9['debounceMs']||0xc8,'minCharsForSearch':_0x3e73a9['minCharsForSearch']||0x0,'emptyMessage':_0x3e73a9['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x3e73a9['loadingMessage']||'Loading...','preload':_0x3e73a9['preload']!==![],'searchMode':_0x3e73a9['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',_0xc8d94e=>this['onBlur'](_0xc8d94e)),this['input']['addEventListener']('input',_0x230232=>this['onInput'](_0x230232)),this['input']['addEventListener']('keydown',_0x33dc13=>this['onKeydown'](_0x33dc13)),this['clearBtn']['addEventListener']('mousedown',_0x4139ed=>{_0x4139ed['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x3cb9f5=>{_0x3cb9f5['preventDefault']();}),document['addEventListener']('click',_0x412dd1=>{!this['wrapper']['contains'](_0x412dd1['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(_0x3f448a){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3f448a);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5f35c5){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x45d001){const _0x2aa064=_0x45d001['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2aa064);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2aa064):this['loadAndShow'](_0x2aa064);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x569662){switch(_0x569662['key']){case'ArrowDown':_0x569662['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x569662['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x569662['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x569662['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x4f19dd){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x412a97=this['selectedIndex']+_0x4f19dd;if(_0x412a97>=0x0&&_0x412a97<this['filteredItems']['length']){this['selectedIndex']=_0x412a97,this['updateSelectionHighlight']();const _0x4aed3d=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x4aed3d[this['selectedIndex']]&&_0x4aed3d[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x212a8c=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x212a8c['forEach']((_0x1305ab,_0x1eba69)=>{_0x1305ab['classList']['toggle']('keyboard-selected',_0x1eba69===this['selectedIndex']);});}async['loadAndShow'](_0x37a5db){this['showLoading']();try{const _0x170512=await this['options']['loadItems'](_0x37a5db);if(this['options']['searchMode']==='server'){let _0x315da6=_0x170512;this['options']['sortItems']&&(_0x315da6=this['options']['sortItems']([..._0x170512]));this['filteredItems']=_0x315da6;const _0x397142=this['filteredItems']['length']>=this['options']['maxItems'];_0x397142&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x397142),this['open']();}else this['allItems']=_0x170512,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x37a5db);}catch(_0x3cc956){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x3cc956),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0xd9f0d6){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0xd9f0d6):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x18bdfc=this['filteredItems']['length']>=this['options']['maxItems'];_0x18bdfc&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x18bdfc),this['open']();}['renderItems'](_0x5c90b3){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']((_0x107f4a,_0x4e1996)=>{const _0x344af0=document['createElement']('div');_0x344af0['className']='autocomplete-select-item',_0x344af0['setAttribute']('role','option'),_0x344af0['setAttribute']('data-index',_0x4e1996);const _0x48cdf6=this['options']['renderItem'](_0x107f4a);let _0x25115d='';_0x48cdf6['icon']&&(_0x25115d='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x48cdf6['iconClass']||'')+'\x22>'+_0x48cdf6['icon']+'</span>'),_0x344af0['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x25115d+'\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'](_0x48cdf6['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x48cdf6['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x48cdf6['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x344af0['addEventListener']('click',()=>{this['selectItem'](_0x107f4a);}),_0x344af0['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x4e1996,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x344af0);}),_0x5c90b3?(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'](_0xdc2b72){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0xdc2b72)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x38894f){this['selectedItem']=_0x38894f;const _0x24933f=this['options']['renderItem'](_0x38894f);this['input']['value']=_0x24933f['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x38894f);}['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'](_0x33cb0b){if(_0x33cb0b){this['selectedItem']=_0x33cb0b;const _0x4b25a9=this['options']['renderItem'](_0x33cb0b);this['input']['value']=_0x4b25a9['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x4bc1d2){this['allItems']=_0x4bc1d2,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'](_0x3dcb23){this['input']['placeholder']=_0x3dcb23;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x39b31d=null){const _0x3747c5=document['getElementById']('admin-menu-container'),_0x7c9a63=document['getElementById']('admin-menu-btn'),_0x3fd47e=document['getElementById']('admin-menu');if(!_0x3747c5||!_0x7c9a63||!_0x3fd47e)return;try{!_0x39b31d&&(_0x39b31d=await API['getCurrentUser']());if(_0x39b31d){const _0x32c2cf=window['Permissions'],_0x5c151b=_0x32c2cf['hasServerPermission'](_0x39b31d,'*')||_0x32c2cf['hasEnvPermission'](_0x39b31d,'environments:manage')||_0x32c2cf['hasServerPermission'](_0x39b31d,'users:create')||_0x32c2cf['hasTeamPermission'](_0x39b31d,'teams:manage')||_0x32c2cf['hasEnvPermission'](_0x39b31d,'environments:view_details');if(!_0x5c151b)return;_0x3747c5['hidden']=![];if(!_0x32c2cf['hasServerPermission'](_0x39b31d,'*')){const _0x1b3b0e=_0x3fd47e['querySelectorAll']('.admin-menu-item');_0x1b3b0e['forEach'](_0x4e9cb0=>{const _0x3f2af1=_0x4e9cb0['querySelector']('.option-text')?.['textContent']?.['trim']();_0x3f2af1==='Users'&&!_0x32c2cf['hasServerPermission'](_0x39b31d,'users:create')&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Skills'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Server\x20Settings'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Server\x20Administration'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Git\x20History'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Roles'&&(_0x4e9cb0['hidden']=!![]);});}_0x7c9a63['addEventListener']('click',_0x566d24=>{_0x566d24['stopPropagation']();const _0x5845ef=document['getElementById']('actions-menu');if(_0x5845ef)_0x5845ef['hidden']=!![];_0x3fd47e['hidden']=!_0x3fd47e['hidden'];}),document['addEventListener']('click',_0x6f9a08=>{!_0x3fd47e['hidden']&&!_0x7c9a63['contains'](_0x6f9a08['target'])&&!_0x3fd47e['contains'](_0x6f9a08['target'])&&(_0x3fd47e['hidden']=!![]);}),document['addEventListener']('keydown',_0x575a3e=>{_0x575a3e['key']==='Escape'&&!_0x3fd47e['hidden']&&(_0x3fd47e['hidden']=!![]);});}}catch(_0x5e662e){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x5e662e['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 _0x4cb6d6=window['location']['pathname'],_0x5b0fd5=_0x4cb6d6['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x5b0fd5)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x5b0fd5[0x1]),_0x5b0fd5[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xbff53={}){const _0x2ee61b=new URLSearchParams();_0xbff53['userId']&&_0x2ee61b['set']('userId',String(_0xbff53['userId']));_0xbff53['automation']&&_0x2ee61b['set']('automation',String(_0xbff53['automation']));const _0x25ec4e=API_BASE+'/tasks/stats'+(_0x2ee61b['toString']()?'?'+_0x2ee61b['toString']():''),_0x5b82c9=await fetch(_0x25ec4e);if(!_0x5b82c9['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5b82c9['statusText']);return await _0x5b82c9['json']();},async 'getTasks'(_0x28dbf5={}){const _0x352058=new URLSearchParams();_0x28dbf5['status']&&_0x352058['set']('status',String(_0x28dbf5['status']));_0x28dbf5['environment']&&_0x352058['set']('environment',String(_0x28dbf5['environment']));_0x28dbf5['automation']&&_0x352058['set']('automation',String(_0x28dbf5['automation']));if(_0x28dbf5['include']){const _0x38e4fb=Array['isArray'](_0x28dbf5['include'])?_0x28dbf5['include']['join'](','):String(_0x28dbf5['include']);_0x38e4fb&&_0x352058['set']('include',_0x38e4fb);}_0x28dbf5['filter']&&_0x352058['set']('filter',String(_0x28dbf5['filter']));_0x28dbf5['page']&&_0x352058['set']('page',String(_0x28dbf5['page']));_0x28dbf5['limit']&&_0x352058['set']('limit',String(_0x28dbf5['limit']));_0x28dbf5['userId']&&_0x352058['set']('userId',String(_0x28dbf5['userId']));_0x28dbf5['search']&&_0x352058['set']('search',String(_0x28dbf5['search']));_0x28dbf5['includeChildTasks']&&_0x352058['set']('includeChildTasks','true');const _0x285e43=API_BASE+'/tasks'+(_0x352058['toString']()?'?'+_0x352058['toString']():''),_0x3e992b=await fetch(_0x285e43);if(!_0x3e992b['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x3e992b['statusText']);return await _0x3e992b['json']();},async 'getAutomations'(_0x283163={}){const _0x49e542=new URLSearchParams();_0x283163['environment']&&_0x49e542['set']('environment',String(_0x283163['environment']));const _0x4a2624=await fetch(API_BASE+'/api/automations'+(_0x49e542['toString']()?'?'+_0x49e542['toString']():''));if(!_0x4a2624['ok']){const _0xffec71=await _0x4a2624['json']()['catch'](()=>({}));throw new Error(_0xffec71['message']||_0xffec71['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x4a2624['statusText']);}return await _0x4a2624['json']();},async 'getAutomation'(_0x206c1d){const _0x475939=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x206c1d));if(!_0x475939['ok']){const _0x32e33d=await _0x475939['json']()['catch'](()=>({}));throw new Error(_0x32e33d['message']||_0x32e33d['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x475939['statusText']);}return await _0x475939['json']();},async 'createAutomation'(_0x34c8cc){const _0x7ae8a8=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x34c8cc||{})});if(!_0x7ae8a8['ok']){const _0x48f5a3=await _0x7ae8a8['json']()['catch'](()=>({}));throw new Error(_0x48f5a3['message']||_0x48f5a3['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x7ae8a8['statusText']);}return await _0x7ae8a8['json']();},async 'updateAutomation'(_0x212d56,_0x23c8e0){const _0x3ef2a2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x212d56),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23c8e0||{})});if(!_0x3ef2a2['ok']){const _0xeb6644=await _0x3ef2a2['json']()['catch'](()=>({}));throw new Error(_0xeb6644['message']||_0xeb6644['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x3ef2a2['statusText']);}return await _0x3ef2a2['json']();},async 'deleteAutomation'(_0x2df276){const _0x17b215=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2df276),{'method':'DELETE'});if(!_0x17b215['ok']){const _0x203379=await _0x17b215['json']()['catch'](()=>({}));throw new Error(_0x203379['message']||_0x203379['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x17b215['statusText']);}return await _0x17b215['json']();},async 'triggerAutomation'(_0x1b4790){const _0x1ae56f=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1b4790)+'/trigger',{'method':'POST'});if(!_0x1ae56f['ok']){const _0x1912d9=await _0x1ae56f['json']()['catch'](()=>({}));throw new Error(_0x1912d9['message']||_0x1912d9['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x1ae56f['statusText']);}return await _0x1ae56f['json']();},async 'setAutomationEnabled'(_0x2bf829,_0x1f2acd){const _0x4ded29=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2bf829)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x1f2acd})});if(!_0x4ded29['ok']){const _0x4c8913=await _0x4ded29['json']()['catch'](()=>({}));throw new Error(_0x4c8913['message']||_0x4c8913['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x4ded29['statusText']);}return await _0x4ded29['json']();},async 'getAutomationHistory'(_0x2fad5a,_0x5cc41d=0x32){const _0x5dc9f1=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2fad5a)+'/history?limit='+encodeURIComponent(String(_0x5cc41d)));if(!_0x5dc9f1['ok']){const _0x572ec9=await _0x5dc9f1['json']()['catch'](()=>({}));throw new Error(_0x572ec9['message']||_0x572ec9['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x5dc9f1['statusText']);}return await _0x5dc9f1['json']();},async 'getTask'(_0x168ccd,_0x7b30dc={}){const _0x443269=new URLSearchParams();if(_0x7b30dc['include']){const _0x48ec07=Array['isArray'](_0x7b30dc['include'])?_0x7b30dc['include']['join'](','):String(_0x7b30dc['include']);if(_0x48ec07)_0x443269['set']('include',_0x48ec07);}const _0xadae44=await fetch(API_BASE+'/tasks/'+_0x168ccd+(_0x443269['toString']()?'?'+_0x443269['toString']():''));if(!_0xadae44['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0xadae44['statusText']);return await _0xadae44['json']();},async 'getTaskResults'(_0x423b2d){const _0x52c1c1=await fetch(API_BASE+'/tasks/'+_0x423b2d+'/results');if(!_0x52c1c1['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x52c1c1['statusText']);return await _0x52c1c1['json']();},async 'getTaskPatches'(_0x41be37){const _0x2779af=await fetch(API_BASE+'/tasks/'+_0x41be37+'/patches');if(!_0x2779af['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x2779af['statusText']);return await _0x2779af['json']();},async 'getTaskAttachments'(_0x4adce7){const _0x416d26=await fetch(API_BASE+'/tasks/'+_0x4adce7+'/attachments');if(!_0x416d26['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x416d26['statusText']);return await _0x416d26['json']();},async 'uploadAttachments'(_0x6242a7,_0x2c8339){const _0x465695=new FormData();for(const _0x31c238 of _0x2c8339){_0x465695['append']('attachments',_0x31c238);}const _0x6b0c34=await fetch(API_BASE+'/tasks/'+_0x6242a7+'/attachments',{'method':'POST','body':_0x465695});if(!_0x6b0c34['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x6b0c34['statusText']);return await _0x6b0c34['json']();},async 'isAINameGenerationAvailable'(){try{const _0x209878=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x209878['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x209878['json']();}catch(_0x30d40a){return{'available':![],'reason':_0x30d40a['message']};}},async 'generateTaskName'(_0x106bd8){try{const _0x35843d=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x106bd8})});return await _0x35843d['json']();}catch(_0x3d4611){return{'success':![],'error':_0x3d4611['message']};}},async 'createTask'(_0x1ca5dc){let _0x291ade,_0x15c7ff={};if(_0x1ca5dc['files']&&_0x1ca5dc['files']['length']>0x0){const _0x27e390=new FormData();for(const [_0xc389,_0x2c61ba]of Object['entries'](_0x1ca5dc)){if(_0xc389!=='files'){if(_0x2c61ba==null)continue;typeof _0x2c61ba==='object'?_0x27e390['append'](_0xc389,JSON['stringify'](_0x2c61ba)):_0x27e390['append'](_0xc389,String(_0x2c61ba));}}for(const _0xc2f4db of _0x1ca5dc['files']){_0x27e390['append']('attachments',_0xc2f4db);}_0x291ade=_0x27e390;}else _0x15c7ff['Content-Type']='application/json',_0x291ade=JSON['stringify'](_0x1ca5dc);const _0x54533b=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x15c7ff,'body':_0x291ade});if(!_0x54533b['ok']){const _0x404e24=await _0x54533b['json'](),_0x3c6730=new Error(_0x404e24['error']||'Failed\x20to\x20create\x20task:\x20'+_0x54533b['statusText']),{message:_0x250a14,..._0x43c49e}=_0x404e24;Object['assign'](_0x3c6730,_0x43c49e);throw _0x3c6730;}return await _0x54533b['json']();},async 'createTestTask'(_0x12aecc){const _0x4a2d81=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x12aecc)});if(!_0x4a2d81['ok']){const _0x42c919=await _0x4a2d81['json']();throw new Error(_0x42c919['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x4a2d81['statusText']);}return await _0x4a2d81['json']();},async 'createEphemeralTest'(_0x4f285b){const _0x19603f=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4f285b)});if(!_0x19603f['ok']){const _0xb4a698=await _0x19603f['json']();throw new Error(_0xb4a698['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x19603f['statusText']);}return await _0x19603f['json']();},async 'createDeployTask'(_0x2424c0){const _0x1b9423=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2424c0)});if(!_0x1b9423['ok']){const _0x45fd1f=await _0x1b9423['json']();throw new Error(_0x45fd1f['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x1b9423['statusText']);}return await _0x1b9423['json']();},async 'getEnvironments'(){const _0x1ced97=await fetch(API_BASE+'/environments');if(!_0x1ced97['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x1ced97['statusText']);return await _0x1ced97['json']();},async 'getEnvironment'(_0x5933de){const _0x2e620a=await fetch(API_BASE+'/environments/'+_0x5933de);if(!_0x2e620a['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x2e620a['statusText']);return await _0x2e620a['json']();},async 'getEnvironmentRepoHistory'(_0x28277a,_0x33f0c6,_0x137511={}){if(!_0x28277a||!_0x33f0c6)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5a009c=new URLSearchParams();if(_0x137511['limit'])_0x5a009c['set']('limit',String(_0x137511['limit']));if(_0x137511['offset'])_0x5a009c['set']('offset',String(_0x137511['offset']));if(_0x137511['search'])_0x5a009c['set']('search',String(_0x137511['search']));if(_0x137511['branch'])_0x5a009c['set']('branch',String(_0x137511['branch']));const _0x1c2763=API_BASE+'/environments/'+encodeURIComponent(_0x28277a)+'/repos/'+encodeURIComponent(_0x33f0c6)+'/git/history',_0x48606b=await fetch(''+_0x1c2763+(_0x5a009c['toString']()?'?'+_0x5a009c['toString']():''));if(!_0x48606b['ok']){const _0x5ab780=await _0x48606b['json']()['catch'](()=>({}));throw new Error(_0x5ab780['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x48606b['statusText']);}return await _0x48606b['json']();},async 'getEnvironmentRepoCommit'(_0x4f0097,_0x3773a5,_0x4bc1a2){if(!_0x4f0097||!_0x3773a5||!_0x4bc1a2)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x46ed47=API_BASE+'/environments/'+encodeURIComponent(_0x4f0097)+'/repos/'+encodeURIComponent(_0x3773a5)+'/git/commits/'+encodeURIComponent(_0x4bc1a2),_0x4ae6be=await fetch(_0x46ed47);if(!_0x4ae6be['ok']){const _0x141990=await _0x4ae6be['json']()['catch'](()=>({}));throw new Error(_0x141990['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x4ae6be['statusText']);}return await _0x4ae6be['json']();},async 'getEnvironmentRepoBranches'(_0x18389f,_0x258d82){if(!_0x18389f||!_0x258d82)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x30a661=API_BASE+'/environments/'+encodeURIComponent(_0x18389f)+'/repos/'+encodeURIComponent(_0x258d82)+'/git/branches',_0x5803da=await fetch(_0x30a661);if(!_0x5803da['ok']){const _0x4f09e3=await _0x5803da['json']()['catch'](()=>({}));throw new Error(_0x4f09e3['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x5803da['statusText']);}return await _0x5803da['json']();},async 'revertEnvironmentRepoCommit'(_0x46e6a3,_0x19decf,_0x21aeb9,_0x12c868={}){if(!_0x46e6a3||!_0x19decf||!_0x21aeb9)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x4d9c68=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x46e6a3)+'/repos/'+encodeURIComponent(_0x19decf)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x21aeb9,..._0x12c868})});if(!_0x4d9c68['ok']){const _0xfe23d8=await _0x4d9c68['json']()['catch'](()=>({}));throw new Error(_0xfe23d8['message']||_0xfe23d8['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x4d9c68['statusText']);}return await _0x4d9c68['json']();},async 'getTemplates'(_0x4593fa={}){const _0x42516b=new URLSearchParams();if(_0x4593fa['include']){const _0x197299=Array['isArray'](_0x4593fa['include'])?_0x4593fa['include']['join'](','):String(_0x4593fa['include']);if(_0x197299)_0x42516b['set']('include',_0x197299);}const _0x30e218=await fetch(API_BASE+'/templates'+(_0x42516b['toString']()?'?'+_0x42516b['toString']():''));if(!_0x30e218['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x30e218['statusText']);return await _0x30e218['json']();},async 'getTemplatesForEnvironment'(_0x4662b3,_0x4aa961={}){if(!_0x4662b3)throw new Error('Environment\x20name\x20is\x20required');const _0x5f43cf=new URLSearchParams();if(_0x4aa961['include']){const _0x2ad045=Array['isArray'](_0x4aa961['include'])?_0x4aa961['include']['join'](','):String(_0x4aa961['include']);if(_0x2ad045)_0x5f43cf['set']('include',_0x2ad045);}const _0x1136ff=await fetch(API_BASE+'/templates/'+_0x4662b3+(_0x5f43cf['toString']()?'?'+_0x5f43cf['toString']():''));if(!_0x1136ff['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x4662b3+':\x20'+_0x1136ff['statusText']);return await _0x1136ff['json']();},async 'getTemplate'(_0x3046b0,_0x592c5a,_0x52a7a5={}){if(!_0x3046b0||!_0x592c5a)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x28ae34=new URLSearchParams();if(_0x52a7a5['include']){const _0x46c42c=Array['isArray'](_0x52a7a5['include'])?_0x52a7a5['include']['join'](','):String(_0x52a7a5['include']);if(_0x46c42c)_0x28ae34['set']('include',_0x46c42c);}const _0x275098=await fetch(API_BASE+'/templates/'+_0x3046b0+'/'+_0x592c5a+(_0x28ae34['toString']()?'?'+_0x28ae34['toString']():''));if(!_0x275098['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x275098['statusText']);return await _0x275098['json']();},async 'getTaskLogs'(_0x2ec060,_0x5c1734={}){if(!_0x2ec060)throw new Error('Task\x20ID\x20is\x20required');const _0x4db565=new URLSearchParams();_0x5c1734['tail']&&_0x4db565['set']('tail',String(_0x5c1734['tail']));const _0x350a55=await fetch(API_BASE+'/tasks/'+_0x2ec060+'/logs'+(_0x4db565['toString']()?'?'+_0x4db565['toString']():''));if(!_0x350a55['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x350a55['statusText']);return await _0x350a55['text']();},async 'getContainers'(){const _0x579d16=await fetch(API_BASE+'/containers');if(!_0x579d16['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x579d16['statusText']);return await _0x579d16['json']();},async 'getContainer'(_0x41901b){const _0x302f38=await fetch(API_BASE+'/containers/'+_0x41901b);if(!_0x302f38['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x302f38['statusText']);return await _0x302f38['json']();},async 'startInteractiveContainer'(_0x1cc3d4){const _0x205637=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1cc3d4)});if(!_0x205637['ok']){const _0x128e13=await _0x205637['json']()['catch'](()=>({}));throw new Error(_0x128e13['message']||'Failed\x20to\x20start\x20container:\x20'+_0x205637['statusText']);}return await _0x205637['json']();},async 'startContainerCodeServer'(_0x3de29e,_0x58ba51={}){if(!_0x3de29e)throw new Error('Container\x20ID\x20is\x20required');const _0x14e686=new URLSearchParams();_0x58ba51['theme']&&_0x14e686['set']('theme',_0x58ba51['theme']);const _0x1cab7e=await fetch(API_BASE+'/containers/'+_0x3de29e+'/code-server'+(_0x14e686['toString']()?'?'+_0x14e686['toString']():'')),_0x5718a9=await _0x1cab7e['json']()['catch'](()=>({}));if(!_0x1cab7e['ok'])throw new Error(_0x5718a9['message']||_0x5718a9['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x1cab7e['statusText']);return _0x5718a9;},async 'stopContainer'(_0x4604eb){const _0x4536af=await fetch(API_BASE+'/containers/'+_0x4604eb,{'method':'DELETE'});if(!_0x4536af['ok']){const _0x490bb0=await _0x4536af['json']()['catch'](()=>({}));throw new Error(_0x490bb0['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x4536af['statusText']);}return await _0x4536af['json']();},async 'stopTask'(_0x3c29f9){if(!_0x3c29f9)throw new Error('Task\x20ID\x20is\x20required');const _0x319bed=await fetch(API_BASE+'/tasks/'+_0x3c29f9+'/stop',{'method':'POST'});if(!_0x319bed['ok']){const _0x5127d4=await _0x319bed['json']()['catch'](()=>({}));throw new Error(_0x5127d4['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x319bed['statusText']);}return await _0x319bed['json']();},async 'interruptTask'(_0x362a5e){if(!_0x362a5e)throw new Error('Task\x20ID\x20is\x20required');const _0x288294=await fetch(API_BASE+'/tasks/'+_0x362a5e+'/interrupt',{'method':'POST'});if(!_0x288294['ok']){const _0x2eccec=await _0x288294['json']()['catch'](()=>({}));throw new Error(_0x2eccec['error']||_0x2eccec['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x288294['statusText']);}return await _0x288294['json']();},async 'startTask'(_0x500def){if(!_0x500def)throw new Error('Task\x20ID\x20is\x20required');const _0x19e67f=await fetch(API_BASE+'/tasks/'+_0x500def+'/start',{'method':'POST'});if(!_0x19e67f['ok']){const _0x127944=await _0x19e67f['json']()['catch'](()=>({}));throw new Error(_0x127944['error']||'Failed\x20to\x20start\x20task:\x20'+_0x19e67f['statusText']);}return await _0x19e67f['json']();},async 'deleteTask'(_0x277b70){if(!_0x277b70)throw new Error('Task\x20ID\x20is\x20required');const _0x296e05=await fetch(API_BASE+'/tasks/'+_0x277b70,{'method':'DELETE'});if(!_0x296e05['ok']){const _0x27d7b2=await _0x296e05['json']()['catch'](()=>({}));throw new Error(_0x27d7b2['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x296e05['statusText']);}return await _0x296e05['json']();},async 'refreshTasksFromDisk'(){const _0x4f3ec6=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x4f3ec6['ok']){const _0x35b5ab=await _0x4f3ec6['json']()['catch'](()=>({}));throw new Error(_0x35b5ab['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x4f3ec6['statusText']);}return await _0x4f3ec6['json']();},async 'approveTask'(_0x175c3d,_0x462803={}){if(!_0x175c3d)throw new Error('Task\x20ID\x20is\x20required');const _0x27404c={'commit_message':_0x462803['commit_message']||'','pull':_0x462803['pull']??![],'push':_0x462803['push']??![],'conflict_strategy':_0x462803['conflict_strategy']||'rebase'};_0x462803['new_branch']&&(_0x27404c['new_branch']=_0x462803['new_branch']);const _0x45ba18=await fetch(API_BASE+'/tasks/'+_0x175c3d+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x27404c)});if(!_0x45ba18['ok']){const _0x59a047=await _0x45ba18['json']()['catch'](()=>({})),_0x12e2b3=Array['isArray'](_0x59a047['results'])?_0x59a047['results']['filter'](_0x43fdb6=>!_0x43fdb6['success']&&(_0x43fdb6['error']||_0x43fdb6['error_code'])):[],_0x1c0ffa=_0x12e2b3[0x0]||null;let _0x1fbd7c=_0x59a047['error']||_0x59a047['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x45ba18['statusText'];if(_0x1c0ffa?.['error'])_0x1fbd7c=_0x1c0ffa['error'];else _0x59a047['message']&&(_0x1fbd7c=_0x59a047['message']);const _0x1c1492=new Error(_0x1fbd7c);_0x1c1492['code']=_0x1c0ffa?.['error_code']||_0x59a047['error_code']||null,_0x1c1492['details']=_0x1c0ffa?.['details']||_0x59a047['details']||null,_0x1c1492['tokenExpiryDays']=_0x1c0ffa?.['token_expiry_days']||_0x59a047['token_expiry_days']||null,_0x1c1492['hasConflicts']=_0x59a047['results']?.['some'](_0x91bece=>_0x91bece['conflict'])||![];throw _0x1c1492;}return await _0x45ba18['json']();},async 'getPullRequestInfo'(_0x596b00){if(!_0x596b00)throw new Error('Task\x20ID\x20is\x20required');const _0xf27cb8=await fetch(API_BASE+'/tasks/'+_0x596b00+'/pull-request-info');if(!_0xf27cb8['ok']){const _0x5e371d=await _0xf27cb8['json']()['catch'](()=>({}));throw new Error(_0x5e371d['error']||_0x5e371d['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0xf27cb8['statusText']);}return await _0xf27cb8['json']();},async 'createPullRequests'(_0x27ffec,_0x1ebf5e){if(!_0x27ffec)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1ebf5e||!Array['isArray'](_0x1ebf5e))throw new Error('repos\x20array\x20is\x20required');const _0x3d7f31=await fetch(API_BASE+'/tasks/'+_0x27ffec+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x1ebf5e})});if(!_0x3d7f31['ok']){const _0x52a3ba=await _0x3d7f31['json']()['catch'](()=>({}));let _0x3a3724=_0x52a3ba['error']||_0x52a3ba['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x3d7f31['statusText'];if(_0x52a3ba['results']&&Array['isArray'](_0x52a3ba['results'])){const _0x348dd8=_0x52a3ba['results']['filter'](_0x47cd60=>!_0x47cd60['success']&&_0x47cd60['error']);_0x348dd8['length']>0x0&&(_0x3a3724=_0x348dd8[0x0]['error']);}throw new Error(_0x3a3724);}return await _0x3d7f31['json']();},async 'syncRepos'(_0x5644af){if(!_0x5644af)throw new Error('Task\x20ID\x20is\x20required');const _0xfcd9c4=await fetch(API_BASE+'/tasks/'+_0x5644af+'/sync-repos',{'method':'POST'});if(!_0xfcd9c4['ok']){const _0x27712d=await _0xfcd9c4['json']()['catch'](()=>({}));throw new Error(_0x27712d['error']||_0x27712d['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0xfcd9c4['statusText']);}return await _0xfcd9c4['json']();},async 'getIbmiSyncInfo'(_0x5d79ed){if(!_0x5d79ed)throw new Error('Task\x20ID\x20is\x20required');const _0x1690e1=await fetch(API_BASE+'/tasks/'+_0x5d79ed+'/ibmi-sync-info');if(!_0x1690e1['ok']){const _0x2e4680=await _0x1690e1['json']()['catch'](()=>({}));throw new Error(_0x2e4680['error']||_0x2e4680['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x1690e1['json']();},async 'getSyncFiles'(_0x46dda8){if(!_0x46dda8)throw new Error('Task\x20ID\x20is\x20required');const _0x1fb05e=await fetch(API_BASE+'/tasks/'+_0x46dda8+'/sync-to-ibmi/files');if(!_0x1fb05e['ok']){const _0x13d51a=await _0x1fb05e['json']()['catch'](()=>({}));throw new Error(_0x13d51a['error']||_0x13d51a['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x1fb05e['json']();},async 'syncToIbmi'(_0x2b5fba,_0x2b4920,_0x4271f9=null,_0x1f0b24=null,_0x33ee75=null){if(!_0x2b5fba)throw new Error('Task\x20ID\x20is\x20required');const _0xeeb9a0={'library':_0x2b4920};if(_0x4271f9)_0xeeb9a0['user']=_0x4271f9;if(_0x1f0b24)_0xeeb9a0['password']=_0x1f0b24;if(_0x33ee75)_0xeeb9a0['files']=_0x33ee75;const _0x494302=await fetch(API_BASE+'/tasks/'+_0x2b5fba+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xeeb9a0)});if(!_0x494302['ok']){const _0x41adb7=await _0x494302['json']()['catch'](()=>({}));throw new Error(_0x41adb7['error']||_0x41adb7['message']||'Sync\x20failed');}return await _0x494302['json']();},async 'getIbmiSyncLog'(_0x17de86){if(!_0x17de86)throw new Error('Task\x20ID\x20is\x20required');const _0x578612=await fetch(API_BASE+'/tasks/'+_0x17de86+'/ibmi-sync-log');if(!_0x578612['ok']){const _0x689a86=await _0x578612['json']()['catch'](()=>({}));throw new Error(_0x689a86['error']||_0x689a86['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x578612['json']();},async 'pullChanges'(_0x5a9350){if(!_0x5a9350)throw new Error('Task\x20ID\x20is\x20required');const _0x19af51=await fetch(API_BASE+'/tasks/'+_0x5a9350+'/pull-changes',{'method':'POST'});if(!_0x19af51['ok']){const _0x3c6b1e=await _0x19af51['json']()['catch'](()=>({})),_0x44ac76=new Error(_0x3c6b1e['message']||_0x3c6b1e['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x19af51['statusText']);_0x44ac76['code']=_0x3c6b1e['error_code']||null,_0x44ac76['details']=_0x3c6b1e['details']||null,_0x44ac76['tokenExpiryDays']=_0x3c6b1e['token_expiry_days']||null;throw _0x44ac76;}return await _0x19af51['json']();},async 'readFile'(_0x2a1ba8,_0x5c0e00){if(!_0x2a1ba8)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5c0e00)throw new Error('File\x20path\x20is\x20required');const _0x245e73=await fetch(API_BASE+'/tasks/'+_0x2a1ba8+'/files?path='+encodeURIComponent(_0x5c0e00));if(!_0x245e73['ok']){const _0x1a1d8c=await _0x245e73['json']()['catch'](()=>({}));throw new Error(_0x1a1d8c['error']||_0x1a1d8c['message']||'Failed\x20to\x20read\x20file:\x20'+_0x245e73['statusText']);}return await _0x245e73['json']();},'getTaskFileDownloadUrl'(_0x401926,_0x421520){if(!_0x401926)throw new Error('Task\x20ID\x20is\x20required');if(!_0x421520)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x401926+'/files/download?path='+encodeURIComponent(_0x421520);},async 'writeFile'(_0x28b04a,_0x46151f,_0x57655a){if(!_0x28b04a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x46151f)throw new Error('File\x20path\x20is\x20required');if(_0x57655a===undefined)throw new Error('Content\x20is\x20required');const _0x4aea77=await fetch(API_BASE+'/tasks/'+_0x28b04a+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x46151f,'content':_0x57655a})});if(!_0x4aea77['ok']){const _0x119daf=await _0x4aea77['json']()['catch'](()=>({}));throw new Error(_0x119daf['error']||_0x119daf['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4aea77['statusText']);}return await _0x4aea77['json']();},async 'uploadTaskFiles'(_0x2b26ec,_0x20d0de,_0x4576f4){if(!_0x2b26ec)throw new Error('Task\x20ID\x20is\x20required');if(!_0x20d0de)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4576f4||_0x4576f4['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x462d92=new FormData();_0x462d92['append']('targetDir',_0x20d0de);for(const _0x137ca2 of _0x4576f4){_0x462d92['append']('files',_0x137ca2,_0x137ca2['name']);}const _0x72c212=await fetch(API_BASE+'/tasks/'+_0x2b26ec+'/files/upload',{'method':'POST','body':_0x462d92});if(!_0x72c212['ok']){const _0x38e94e=await _0x72c212['json']()['catch'](()=>({}));throw new Error(_0x38e94e['error']||_0x38e94e['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x72c212['statusText']);}return await _0x72c212['json']();},async 'createDirectory'(_0x50433f,_0x18764b){if(!_0x50433f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x18764b)throw new Error('Directory\x20path\x20is\x20required');const _0x59040a=await fetch(API_BASE+'/tasks/'+_0x50433f+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x18764b})});if(!_0x59040a['ok']){const _0x197a2e=await _0x59040a['json']()['catch'](()=>({}));throw new Error(_0x197a2e['error']||_0x197a2e['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x59040a['statusText']);}return await _0x59040a['json']();},async 'renamePath'(_0xfebe11,_0x3d00b9,_0x7eda6a){if(!_0xfebe11)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3d00b9)throw new Error('Source\x20path\x20is\x20required');if(!_0x7eda6a)throw new Error('Destination\x20path\x20is\x20required');const _0x2e8c3a=await fetch(API_BASE+'/tasks/'+_0xfebe11+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x3d00b9,'newPath':_0x7eda6a})});if(!_0x2e8c3a['ok']){const _0xa1103c=await _0x2e8c3a['json']()['catch'](()=>({}));throw new Error(_0xa1103c['error']||_0xa1103c['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x2e8c3a['statusText']);}return await _0x2e8c3a['json']();},async 'deleteFile'(_0x11f18d,_0x463616){if(!_0x11f18d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x463616)throw new Error('File\x20path\x20is\x20required');const _0x2e1f68=await fetch(API_BASE+'/tasks/'+_0x11f18d+'/files?path='+encodeURIComponent(_0x463616),{'method':'DELETE'});if(!_0x2e1f68['ok']){const _0x1eafb0=await _0x2e1f68['json']()['catch'](()=>({}));throw new Error(_0x1eafb0['error']||_0x1eafb0['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x2e1f68['statusText']);}return await _0x2e1f68['json']();},async 'deleteDirectory'(_0x5e76e6,_0x2f260a){if(!_0x5e76e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2f260a)throw new Error('Directory\x20path\x20is\x20required');const _0x5ec2cc=await fetch(API_BASE+'/tasks/'+_0x5e76e6+'/files/directory?path='+encodeURIComponent(_0x2f260a),{'method':'DELETE'});if(!_0x5ec2cc['ok']){const _0x1a5035=await _0x5ec2cc['json']()['catch'](()=>({}));throw new Error(_0x1a5035['error']||_0x1a5035['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5ec2cc['statusText']);}return await _0x5ec2cc['json']();},async 'discardFile'(_0x40fcae,_0x1a001d,_0x47b795){if(!_0x40fcae)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1a001d)throw new Error('File\x20path\x20is\x20required');if(!_0x47b795)throw new Error('Repository\x20path\x20is\x20required');const _0x4fc1f0=await fetch(API_BASE+'/tasks/'+_0x40fcae+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1a001d,'repoPath':_0x47b795})});if(!_0x4fc1f0['ok']){const _0x47192f=await _0x4fc1f0['json']()['catch'](()=>({}));throw new Error(_0x47192f['error']||_0x47192f['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x4fc1f0['statusText']);}return await _0x4fc1f0['json']();},async 'followUpTask'(_0x40696c,_0x5747c7={}){if(!_0x40696c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5747c7['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0xa8c50b,_0x103520={};if(_0x5747c7['files']&&_0x5747c7['files']['length']>0x0){const _0x21ab63=new FormData();_0x21ab63['append']('instructions',_0x5747c7['instructions']);for(const _0x4b1e06 of _0x5747c7['files']){_0x21ab63['append']('attachments',_0x4b1e06);}_0xa8c50b=_0x21ab63;}else _0x103520['Content-Type']='application/json',_0xa8c50b=JSON['stringify']({'instructions':_0x5747c7['instructions']});const _0x50a1e1=await fetch(API_BASE+'/tasks/'+_0x40696c+'/follow-up',{'method':'POST','headers':_0x103520,'body':_0xa8c50b});if(!_0x50a1e1['ok']){const _0x2de891=await _0x50a1e1['json']()['catch'](()=>({}));throw new Error(_0x2de891['error']||_0x2de891['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x50a1e1['statusText']);}return await _0x50a1e1['json']();},async 'getTaskRewindPoints'(_0x1171cc){if(!_0x1171cc)throw new Error('Task\x20ID\x20is\x20required');const _0x266759=await fetch(API_BASE+'/tasks/'+_0x1171cc+'/rewind-points');if(!_0x266759['ok']){const _0x390f9e=await _0x266759['json']()['catch'](()=>({}));throw new Error(_0x390f9e['error']||_0x390f9e['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x266759['statusText']);}return await _0x266759['json']();},async 'rewindTask'(_0x39e36c,_0x5e4a56={}){if(!_0x39e36c)throw new Error('Task\x20ID\x20is\x20required');const _0x81c7a8=Number['isInteger'](_0x5e4a56['targetFollowUpCount'])?_0x5e4a56['targetFollowUpCount']:0x0,_0x14d4cc={'targetFollowUpCount':_0x81c7a8};typeof _0x5e4a56['instructions']==='string'&&_0x5e4a56['instructions']['trim']()&&(_0x14d4cc['instructions']=_0x5e4a56['instructions']['trim']());typeof _0x5e4a56['rewindFiles']==='boolean'&&(_0x14d4cc['rewindFiles']=_0x5e4a56['rewindFiles']);const _0x2b835b=await fetch(API_BASE+'/tasks/'+_0x39e36c+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x14d4cc)});if(!_0x2b835b['ok']){const _0x2ec70d=await _0x2b835b['json']()['catch'](()=>({}));throw new Error(_0x2ec70d['error']||_0x2ec70d['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x2b835b['statusText']);}return await _0x2b835b['json']();},async 'login'(_0x5f3013,_0x518d7d){const _0x9ceba0=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x5f3013,'password':_0x518d7d})});if(!_0x9ceba0['ok']){const _0x538d5c=await _0x9ceba0['json']();throw new Error(_0x538d5c['message']||'Login\x20failed');}return await _0x9ceba0['json']();},async 'logout'(){const _0x3c1e7f=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x3c1e7f['ok']){const _0x41ba1a=await _0x3c1e7f['json']();throw new Error(_0x41ba1a['message']||'Logout\x20failed');}return await _0x3c1e7f['json']();},async 'getCurrentUser'(){const _0xe9dff1=await fetch(API_BASE+'/auth/me');if(!_0xe9dff1['ok'])throw new Error('Not\x20authenticated');const _0x5a9123=await _0xe9dff1['json']();return _0x5a9123['user'];},async 'getRolesInfo'(){const _0x21d643=await fetch(API_BASE+'/users/roles');if(!_0x21d643['ok']){const _0x457d64=await _0x21d643['json']();throw new Error(_0x457d64['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x21d643['json']();},async 'getUsers'(){const _0xd77890=await fetch(API_BASE+'/users');if(!_0xd77890['ok']){const _0x5d073a=await _0xd77890['json']();throw new Error(_0x5d073a['message']||'Failed\x20to\x20get\x20users');}return await _0xd77890['json']();},async 'getUser'(_0x467dbf){const _0xb47b11=await fetch(API_BASE+'/users/'+_0x467dbf);if(!_0xb47b11['ok']){const _0x545f55=await _0xb47b11['json']();throw new Error(_0x545f55['message']||'Failed\x20to\x20get\x20user');}return await _0xb47b11['json']();},async 'createUser'(_0x53002e){const _0x1af158=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x53002e)});if(!_0x1af158['ok']){const _0x3c30e2=await _0x1af158['json']();throw new Error(_0x3c30e2['message']||'Failed\x20to\x20create\x20user');}return await _0x1af158['json']();},async 'updateUser'(_0x5ce10d,_0x41d08c){const _0x2f883f=await fetch(API_BASE+'/users/'+_0x5ce10d,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41d08c)});if(!_0x2f883f['ok']){const _0x22b3b1=await _0x2f883f['json']();throw new Error(_0x22b3b1['message']||'Failed\x20to\x20update\x20user');}return await _0x2f883f['json']();},async 'deleteUser'(_0x59ba48){const _0x79f277=await fetch(API_BASE+'/users/'+_0x59ba48,{'method':'DELETE'});if(!_0x79f277['ok']){const _0x4f26bc=await _0x79f277['json']();throw new Error(_0x4f26bc['message']||'Failed\x20to\x20delete\x20user');}return await _0x79f277['json']();},async 'stopAllContainers'(){const _0xf923d1=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x55eec7=await _0xf923d1['json']()['catch'](()=>({}));if(!_0xf923d1['ok'])throw new Error(_0x55eec7['message']||_0x55eec7['error']||'Failed\x20to\x20stop\x20containers');return _0x55eec7;},async 'removeStoppedContainers'(){const _0x2eb35e=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x57791d=await _0x2eb35e['json']()['catch'](()=>({}));if(!_0x2eb35e['ok'])throw new Error(_0x57791d['message']||_0x57791d['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x57791d;},async 'pruneDockerResources'(){const _0x5dcbf2=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x184913=await _0x5dcbf2['json']()['catch'](()=>({}));if(!_0x5dcbf2['ok'])throw new Error(_0x184913['message']||_0x184913['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x184913;},async 'getUpdateSettings'(){const _0x3cb1e3=await fetch(API_BASE+'/health/update-settings'),_0x4d5b37=await _0x3cb1e3['json']()['catch'](()=>({}));if(!_0x3cb1e3['ok'])throw new Error(_0x4d5b37['message']||_0x4d5b37['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x4d5b37;},async 'applyServerUpdate'(_0x1a4d09){const _0x4c5285=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1a4d09})}),_0x3ccf45=await _0x4c5285['json']()['catch'](()=>({}));if(!_0x4c5285['ok']){const _0x369a4e=new Error(_0x3ccf45['message']||_0x3ccf45['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x3ccf45['output']!==undefined)_0x369a4e['output']=_0x3ccf45['output'];if(_0x3ccf45['error']!==undefined)_0x369a4e['commandError']=_0x3ccf45['error'];throw _0x369a4e;}return _0x3ccf45;},async 'restartServer'(){const _0x5ed36f=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x297ab0=await _0x5ed36f['json']()['catch'](()=>({}));if(!_0x5ed36f['ok'])throw new Error(_0x297ab0['message']||_0x297ab0['error']||'Failed\x20to\x20restart\x20server');return _0x297ab0;},async 'getDockerContainers'(){const _0x107b7b=await fetch(API_BASE+'/health/containers'),_0x31b325=await _0x107b7b['json']()['catch'](()=>({}));if(!_0x107b7b['ok'])throw new Error(_0x31b325['message']||_0x31b325['error']||'Failed\x20to\x20load\x20containers');return _0x31b325;},async 'getDockerImages'(){const _0x178c20=await fetch(API_BASE+'/health/docker/images'),_0x5b8d33=await _0x178c20['json']()['catch'](()=>({}));if(!_0x178c20['ok'])throw new Error(_0x5b8d33['message']||_0x5b8d33['error']||'Failed\x20to\x20load\x20images');return _0x5b8d33;},async 'getDockerVolumes'(){const _0x17536b=await fetch(API_BASE+'/health/docker/volumes'),_0x3c0f04=await _0x17536b['json']()['catch'](()=>({}));if(!_0x17536b['ok'])throw new Error(_0x3c0f04['message']||_0x3c0f04['error']||'Failed\x20to\x20load\x20volumes');return _0x3c0f04;},async 'getActiveSessions'(){const _0x4893f8=await fetch(API_BASE+'/health/sessions'),_0x311157=await _0x4893f8['json']()['catch'](()=>({}));if(!_0x4893f8['ok'])throw new Error(_0x311157['message']||_0x311157['error']||'Failed\x20to\x20load\x20sessions');return _0x311157;},async 'getSystemInfo'(){const _0x96ac7f=await fetch(API_BASE+'/health/system'),_0x228479=await _0x96ac7f['json']()['catch'](()=>({}));if(!_0x96ac7f['ok'])throw new Error(_0x228479['message']||_0x228479['error']||'Failed\x20to\x20load\x20system\x20info');return _0x228479;},async 'stopDockerContainer'(_0x59468b){const _0x12dd42=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x59468b)+'/stop',{'method':'POST'}),_0x26bfc5=await _0x12dd42['json']()['catch'](()=>({}));if(!_0x12dd42['ok'])throw new Error(_0x26bfc5['message']||_0x26bfc5['error']||'Failed\x20to\x20stop\x20container');return _0x26bfc5;},async 'removeDockerContainer'(_0x305815){const _0xb5a85f=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x305815),{'method':'DELETE'}),_0x5484c6=await _0xb5a85f['json']()['catch'](()=>({}));if(!_0xb5a85f['ok'])throw new Error(_0x5484c6['message']||_0x5484c6['error']||'Failed\x20to\x20remove\x20container');return _0x5484c6;},async 'createPasswordToken'(_0x1f4812,_0x49b3e2='setup',_0x21b8c6=![]){const _0xfe0e01=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x1f4812,'type':_0x49b3e2,'sendEmail':_0x21b8c6})});if(!_0xfe0e01['ok']){const _0x529804=await _0xfe0e01['json']();throw new Error(_0x529804['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0xfe0e01['json']();},async 'getEmailConfig'(){const _0x71597a=await fetch(API_BASE+'/password/email-config');if(!_0x71597a['ok']){const _0xb698e3=await _0x71597a['json']();throw new Error(_0xb698e3['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x71597a['json']();},async 'updateTaskName'(_0x36cb99,_0x205fe3){const _0x374e65=await fetch(API_BASE+'/tasks/'+_0x36cb99,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x205fe3})});if(!_0x374e65['ok']){const _0x8b051a=await _0x374e65['json']();throw new Error(_0x8b051a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x374e65['json']();},async 'updateTaskAlias'(_0x94667a,_0x1bcbf2){const _0x1e4c18=await fetch(API_BASE+'/tasks/'+_0x94667a,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'alias':_0x1bcbf2})});if(!_0x1e4c18['ok']){const _0x49ab08=await _0x1e4c18['json']();throw new Error(_0x49ab08['error']||'Failed\x20to\x20update\x20task\x20alias');}return await _0x1e4c18['json']();},async 'pinTask'(_0x2a9b85,_0x487138,_0x236455=null){if(!_0x2a9b85)throw new Error('Task\x20ID\x20is\x20required');const _0x24a6cb={'pinned':_0x487138};_0x236455&&_0x236455['length']>0x0&&(_0x24a6cb['additionalTaskIds']=_0x236455);const _0xf9869f=await fetch(API_BASE+'/tasks/'+_0x2a9b85+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x24a6cb)});if(!_0xf9869f['ok']){const _0x3976db=await _0xf9869f['json']();throw new Error(_0x3976db['error']||'Failed\x20to\x20pin\x20task');}return await _0xf9869f['json']();},async 'setTaskWinner'(_0x4c0b8c,_0xf77015,_0x3b141a=[]){if(!_0x4c0b8c)throw new Error('Task\x20ID\x20is\x20required');const _0x2f4e48=await fetch(API_BASE+'/tasks/'+_0x4c0b8c+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0xf77015,'siblings':_0x3b141a})});if(!_0x2f4e48['ok']){const _0x51fec8=await _0x2f4e48['json']();throw new Error(_0x51fec8['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x2f4e48['json']();},async 'setTaskLoser'(_0x59f950,_0x14921a){if(!_0x59f950)throw new Error('Task\x20ID\x20is\x20required');const _0x1c7a3c=await fetch(API_BASE+'/tasks/'+_0x59f950+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x14921a})});if(!_0x1c7a3c['ok']){const _0x2ec06c=await _0x1c7a3c['json']();throw new Error(_0x2ec06c['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x1c7a3c['json']();},async 'createTaskGroup'(_0x26d348){const _0x27f87c=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x26d348)});if(!_0x27f87c['ok']){const _0x1ca07d=await _0x27f87c['json']();throw new Error(_0x1ca07d['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x27f87c['json']();},async 'getTaskGroups'(_0x1be9a9={}){const _0x3fe85b=new URLSearchParams();if(_0x1be9a9['userId'])_0x3fe85b['set']('userId',String(_0x1be9a9['userId']));if(_0x1be9a9['status'])_0x3fe85b['set']('status',String(_0x1be9a9['status']));if(_0x1be9a9['limit'])_0x3fe85b['set']('limit',String(_0x1be9a9['limit']));const _0x112c62=API_BASE+'/tasks/groups'+(_0x3fe85b['toString']()?'?'+_0x3fe85b['toString']():''),_0x17d023=await fetch(_0x112c62);if(!_0x17d023['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x17d023['json']();},async 'getTaskGroup'(_0xc7d733){const _0x3c9db5=await fetch(API_BASE+'/tasks/groups/'+_0xc7d733);if(!_0x3c9db5['ok']){const _0x165add=await _0x3c9db5['json']();throw new Error(_0x165add['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x3c9db5['json']();},async 'updateTaskGroup'(_0x157e10,_0x515c01,_0x88876f){const _0x3c9fda=await fetch(API_BASE+'/tasks/'+_0x157e10+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x515c01,'groupIndex':_0x88876f})});if(!_0x3c9fda['ok']){const _0x3c87d9=await _0x3c9fda['json']();throw new Error(_0x3c87d9['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x3c9fda['json']();},async 'removeTaskFromGroup'(_0x2e2b01){return this['updateTaskGroup'](_0x2e2b01,null,null);},async 'deleteTaskGroup'(_0x565ab3,_0x3d1cda=![]){const _0x3c4031=_0x3d1cda?'?deleteTasks=true':'',_0xbe51de=await fetch(API_BASE+'/tasks/groups/'+_0x565ab3+_0x3c4031,{'method':'DELETE'});if(!_0xbe51de['ok']){const _0x41569d=await _0xbe51de['json']();throw new Error(_0x41569d['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x24d533,_0x5d9d00){const _0x34100f=await fetch(API_BASE+'/tasks/groups/'+_0x24d533+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x5d9d00})});if(!_0x34100f['ok']){const _0x6b121c=await _0x34100f['json']();throw new Error(_0x6b121c['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x34100f['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x42eea8){if(!_0x42eea8)throw new Error('Task\x20ID\x20is\x20required');const _0x2ed7c8=await fetch(API_BASE+'/tasks/'+_0x42eea8+'/comments');if(!_0x2ed7c8['ok']){const _0x3f327c=await _0x2ed7c8['json']()['catch'](()=>({}));throw new Error(_0x3f327c['error']||'Failed\x20to\x20get\x20comments');}return await _0x2ed7c8['json']();},async 'addComment'(_0x22dc22,_0x2d5db0){if(!_0x22dc22)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2d5db0)throw new Error('Comment\x20content\x20is\x20required');const _0x54dc5c=await fetch(API_BASE+'/tasks/'+_0x22dc22+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2d5db0})});if(!_0x54dc5c['ok']){const _0x2d8e67=await _0x54dc5c['json']()['catch'](()=>({}));throw new Error(_0x2d8e67['error']||'Failed\x20to\x20add\x20comment');}return await _0x54dc5c['json']();},async 'updateComment'(_0x480d67,_0x35bcc4,_0x3f7f7d){if(!_0x480d67)throw new Error('Task\x20ID\x20is\x20required');if(!_0x35bcc4)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x3f7f7d)throw new Error('Comment\x20content\x20is\x20required');const _0x1dfd2c=await fetch(API_BASE+'/tasks/'+_0x480d67+'/comments/'+_0x35bcc4,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3f7f7d})});if(!_0x1dfd2c['ok']){const _0x59f5a0=await _0x1dfd2c['json']()['catch'](()=>({}));throw new Error(_0x59f5a0['error']||'Failed\x20to\x20update\x20comment');}return await _0x1dfd2c['json']();},async 'deleteComment'(_0x2d8ac0,_0x22886a){if(!_0x2d8ac0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x22886a)throw new Error('Comment\x20ID\x20is\x20required');const _0x122664=await fetch(API_BASE+'/tasks/'+_0x2d8ac0+'/comments/'+_0x22886a,{'method':'DELETE'});if(!_0x122664['ok']){const _0x5e7a36=await _0x122664['json']()['catch'](()=>({}));throw new Error(_0x5e7a36['error']||'Failed\x20to\x20delete\x20comment');}return await _0x122664['json']();},async 'createObjective'(_0x3bf548){const _0x3a422a={'objective':!![],'name':_0x3bf548['name']||'','environment':_0x3bf548['environment']||null,'agents':_0x3bf548['agents']||[],'branches':_0x3bf548['branches']||{},'isPinned':_0x3bf548['isPinned']||![],'parentObjectiveId':_0x3bf548['parentObjectiveId']||null,'env_vars':_0x3bf548['envVars']||{},'parameters':{'instructions':_0x3bf548['instructions']||''},'files':_0x3bf548['files']||[],'jira':_0x3bf548['jira']||null};return this['createTask'](_0x3a422a);},async 'updateObjective'(_0x414817,_0x265592,_0x4b9707=[],_0x422371=[]){let _0x26ca1d,_0x43b714={};const _0x32c709={..._0x265592};_0x422371&&_0x422371['length']>0x0&&(_0x32c709['removeAttachments']=_0x422371);if(_0x4b9707&&_0x4b9707['length']>0x0){const _0x339a86=new FormData();for(const [_0x290c77,_0x1ea941]of Object['entries'](_0x32c709)){if(_0x1ea941==null)continue;typeof _0x1ea941==='object'?_0x339a86['append'](_0x290c77,JSON['stringify'](_0x1ea941)):_0x339a86['append'](_0x290c77,String(_0x1ea941));}for(const _0x42126c of _0x4b9707){_0x339a86['append']('attachments',_0x42126c);}_0x26ca1d=_0x339a86;}else _0x43b714['Content-Type']='application/json',_0x26ca1d=JSON['stringify'](_0x32c709);const _0x57f32c=await fetch(API_BASE+'/tasks/'+_0x414817,{'method':'PATCH','headers':_0x43b714,'body':_0x26ca1d});if(!_0x57f32c['ok']){const _0x3c5a9e=await _0x57f32c['json']();throw new Error(_0x3c5a9e['error']||'Failed\x20to\x20update\x20objective');}return await _0x57f32c['json']();},async 'deleteObjective'(_0x51cd3e){return this['deleteTask'](_0x51cd3e);},async 'launchObjective'(_0x5d41bc,_0x2fd754={}){const _0xd7af64=await fetch(API_BASE+'/tasks/'+_0x5d41bc+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2fd754)});if(!_0xd7af64['ok']){const _0x134bee=await _0xd7af64['json']();throw new Error(_0x134bee['error']||'Failed\x20to\x20launch\x20objective');}return await _0xd7af64['json']();},async 'getObjectiveAttachments'(_0x29b8aa){return this['getTaskAttachments'](_0x29b8aa);},async 'createJudgeTask'({environment:_0x3a53c7,judgeAgent:_0x3389b5,groupId:_0x128fb3,taskIds:_0x4423a6,judgeCustomInstructions:_0xeb56c9,isPinned:_0x398bf1}){const _0x17d8cf=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x3a53c7,'judgeAgent':_0x3389b5,'groupId':_0x128fb3,'taskIds':_0x4423a6,'judgeCustomInstructions':_0xeb56c9,'isPinned':_0x398bf1})});if(!_0x17d8cf['ok']){const _0x28e0f1=await _0x17d8cf['json']();throw new Error(_0x28e0f1['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x17d8cf['json']();},async 'getJudgeTasks'(_0x3c7601){const _0x4826b9=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x3c7601));if(!_0x4826b9['ok']){const _0x4f4fe4=await _0x4826b9['json']();throw new Error(_0x4f4fe4['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4826b9['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x40f5a1,_0x5da45b,_0x369a8b=''){const _0xb1c66e=await fetch(API_BASE+'/tasks/'+_0x40f5a1+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x5da45b,'customPreamble':_0x369a8b})});if(!_0xb1c66e['ok']){const _0x288dec=await _0xb1c66e['json']();throw new Error(_0x288dec['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0xb1c66e['json']();},async 'getJiraConfig'(){const _0x331244=await fetch(API_BASE+'/jira/config');if(!_0x331244['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x331244['json']();},async 'getJiraIssue'(_0x24d861){const _0x342c8e=await fetch(API_BASE+'/jira/issues/'+_0x24d861);if(!_0x342c8e['ok']){const _0x5a9b58=await _0x342c8e['json']()['catch'](()=>({}));throw new Error(_0x5a9b58['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x342c8e['statusText']);}return await _0x342c8e['json']();},async 'searchJiraIssues'(_0x2de3d3,_0x871696=0x14){const _0x32f8a8=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x2de3d3,'maxResults':_0x871696})});if(!_0x32f8a8['ok']){const _0x3fdf4e=await _0x32f8a8['json']()['catch'](()=>({}));throw new Error(_0x3fdf4e['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x32f8a8['statusText']);}return await _0x32f8a8['json']();},async 'postJiraComment'(_0x39c89,_0x1d01fc){const _0x17561a=await fetch(API_BASE+'/jira/issues/'+_0x39c89+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x1d01fc})});if(!_0x17561a['ok']){const _0xd20ca=await _0x17561a['json']()['catch'](()=>({}));throw new Error(_0xd20ca['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x17561a['statusText']);}return await _0x17561a['json']();},async 'getJiraComments'(_0x2126b6){const _0x27f56e=await fetch(API_BASE+'/jira/issues/'+_0x2126b6+'/comments');if(!_0x27f56e['ok']){const _0xbf0cfc=await _0x27f56e['json']()['catch'](()=>({}));throw new Error(_0xbf0cfc['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x27f56e['statusText']);}return await _0x27f56e['json']();},async 'promptParameter'({environment:_0x48dc01,command:_0x12d7b5,parser:parser='json'}){const _0x42f758=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x48dc01,'command':_0x12d7b5,'parser':parser})});if(!_0x42f758['ok']){const _0x14b141=await _0x42f758['json']()['catch'](()=>({}));throw new Error(_0x14b141['message']||_0x14b141['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x42f758['statusText']);}return await _0x42f758['json']();},async 'promptParameterStream'(_0x5d59a8,_0x5aa2d2){const _0x936509=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5d59a8)});if(!_0x936509['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x936509['statusText']);const _0xa84a27=_0x936509['body']['getReader'](),_0xf4bfd4=new TextDecoder();let _0x4ed5de='';return new Promise((_0x229ee6,_0x5d7960)=>{const _0x2b3cba=async()=>{try{const {done:_0x578def,value:_0x44937e}=await _0xa84a27['read']();if(_0x578def)return;_0x4ed5de+=_0xf4bfd4['decode'](_0x44937e,{'stream':!![]});const _0x3417bb=_0x4ed5de['split']('\x0a\x0a');_0x4ed5de=_0x3417bb['pop']()||'';for(const _0x2e1529 of _0x3417bb){if(!_0x2e1529['trim']())continue;const _0x151387=_0x2e1529['split']('\x0a');let _0x11e605='message',_0x40d726='';for(const _0x7b0ec1 of _0x151387){if(_0x7b0ec1['startsWith']('event:'))_0x11e605=_0x7b0ec1['substring'](0x6)['trim']();else _0x7b0ec1['startsWith']('data:')&&(_0x40d726=_0x7b0ec1['substring'](0x5)['trim']());}if(!_0x40d726)continue;try{const _0x146bbe=JSON['parse'](_0x40d726);if(_0x11e605==='progress'&&_0x5aa2d2)_0x5aa2d2(_0x146bbe['stage'],_0x146bbe['message']);else{if(_0x11e605==='result'){_0x229ee6(_0x146bbe);return;}else{if(_0x11e605==='error'){let _0x4f880d=_0x146bbe['message']||_0x146bbe['error']||'Prompt\x20command\x20failed';_0x146bbe['rawOutput']&&(_0x4f880d+='\x0a\x0aRaw\x20output:\x0a'+_0x146bbe['rawOutput']);_0x5d7960(new Error(_0x4f880d));return;}}}}catch(_0x35619d){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x35619d),console['error']('Event\x20type:',_0x11e605),console['error']('Event\x20data:',_0x40d726),console['error']('First\x20200\x20chars:',_0x40d726['substring'](0x0,0xc8)),_0x5d7960(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x35619d['message']+'\x0a\x0aData:\x20'+_0x40d726['substring'](0x0,0x1f4)));return;}}_0x2b3cba();}catch(_0xccab4){_0x5d7960(_0xccab4);}};_0x2b3cba();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x26c2a1){const _0x344601=await fetch(''+API_BASE+_0x26c2a1);if(!_0x344601['ok']){const _0x419afd=await _0x344601['json']()['catch'](()=>({'error':_0x344601['statusText']})),_0x1c025b=new Error(_0x419afd['error']||_0x419afd['message']||_0x344601['statusText']);if(_0x419afd['detail']!==undefined)_0x1c025b['detail']=_0x419afd['detail'];throw _0x1c025b;}return await _0x344601['json']();},async 'post'(_0x3c2ea9,_0xdfc9bc){const _0x4e7a2f=await fetch(''+API_BASE+_0x3c2ea9,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xdfc9bc)});if(!_0x4e7a2f['ok']){const _0x1bd59d=await _0x4e7a2f['json']()['catch'](()=>({'error':_0x4e7a2f['statusText']})),_0x1f905b=new Error(_0x1bd59d['error']||_0x1bd59d['message']||_0x4e7a2f['statusText']);if(_0x1bd59d['detail']!==undefined)_0x1f905b['detail']=_0x1bd59d['detail'];throw _0x1f905b;}return await _0x4e7a2f['json']();},async 'put'(_0x394393,_0x375a85){const _0x3efe50=await fetch(''+API_BASE+_0x394393,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x375a85)});if(!_0x3efe50['ok']){const _0x2d2c25=await _0x3efe50['json']()['catch'](()=>({'error':_0x3efe50['statusText']})),_0x367cc1=new Error(_0x2d2c25['error']||_0x2d2c25['message']||_0x3efe50['statusText']);if(_0x2d2c25['detail']!==undefined)_0x367cc1['detail']=_0x2d2c25['detail'];throw _0x367cc1;}return await _0x3efe50['json']();},async 'delete'(_0x289ec5,_0x5e1396){const _0x53a2f2={'method':'DELETE'};_0x5e1396&&(_0x53a2f2['headers']={'Content-Type':'application/json'},_0x53a2f2['body']=JSON['stringify'](_0x5e1396));const _0x34f076=await fetch(''+API_BASE+_0x289ec5,_0x53a2f2);if(!_0x34f076['ok']){const _0x560913=await _0x34f076['json']()['catch'](()=>({'error':_0x34f076['statusText']})),_0x41647d=new Error(_0x560913['error']||_0x560913['message']||_0x34f076['statusText']);if(_0x560913['detail']!==undefined)_0x41647d['detail']=_0x560913['detail'];throw _0x41647d;}return await _0x34f076['json']();},async 'getSkills'(){const _0x7e7ae=await fetch(API_BASE+'/skills');if(!_0x7e7ae['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x7e7ae['statusText']);return await _0x7e7ae['json']();},async 'getSkill'(_0x2b9bb0){const _0x3292f7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2b9bb0));if(!_0x3292f7['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x3292f7['statusText']);return await _0x3292f7['json']();},async 'createSkill'(_0x383953){const _0x1b5cc5=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x383953)});if(!_0x1b5cc5['ok']){const _0x18d695=await _0x1b5cc5['json']()['catch'](()=>({'error':_0x1b5cc5['statusText']})),_0x93014a=new Error(_0x18d695['error']||_0x18d695['message']||_0x1b5cc5['statusText']);if(_0x18d695['detail']!==undefined)_0x93014a['detail']=_0x18d695['detail'];throw _0x93014a;}return await _0x1b5cc5['json']();},async 'updateSkill'(_0x104404,_0x5a63cb){const _0xcb8422=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x104404),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5a63cb)});if(!_0xcb8422['ok']){const _0x30a7a3=await _0xcb8422['json']()['catch'](()=>({'error':_0xcb8422['statusText']})),_0xcd901c=new Error(_0x30a7a3['error']||_0x30a7a3['message']||_0xcb8422['statusText']);if(_0x30a7a3['detail']!==undefined)_0xcd901c['detail']=_0x30a7a3['detail'];throw _0xcd901c;}return await _0xcb8422['json']();},async 'deleteSkill'(_0x5b1072){const _0x5b6768=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5b1072),{'method':'DELETE'});if(!_0x5b6768['ok']){const _0xbf4dca=await _0x5b6768['json']()['catch'](()=>({'error':_0x5b6768['statusText']})),_0x171e35=new Error(_0xbf4dca['error']||_0xbf4dca['message']||_0x5b6768['statusText']);if(_0xbf4dca['detail']!==undefined)_0x171e35['detail']=_0xbf4dca['detail'];throw _0x171e35;}return await _0x5b6768['json']();},async 'getSkillFile'(_0x3ec3db,_0xd6e067){const _0x3028c5=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3ec3db)+'/files/'+_0xd6e067);if(!_0x3028c5['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x3028c5['statusText']);return await _0x3028c5['json']();},async 'saveSkillFile'(_0x30383f,_0x448801,_0x4c4e8d){const _0x28c702=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x30383f)+'/files/'+_0x448801,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4c4e8d})});if(!_0x28c702['ok']){const _0x43cdf2=await _0x28c702['json']()['catch'](()=>({'error':_0x28c702['statusText']})),_0x4549f4=new Error(_0x43cdf2['error']||_0x43cdf2['message']||_0x28c702['statusText']);if(_0x43cdf2['detail']!==undefined)_0x4549f4['detail']=_0x43cdf2['detail'];throw _0x4549f4;}return await _0x28c702['json']();},async 'deleteSkillFile'(_0x2a6746,_0x23c780){const _0x1ecbed=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2a6746)+'/files/'+_0x23c780,{'method':'DELETE'});if(!_0x1ecbed['ok']){const _0x4a968d=await _0x1ecbed['json']()['catch'](()=>({'error':_0x1ecbed['statusText']})),_0x411ea6=new Error(_0x4a968d['error']||_0x4a968d['message']||_0x1ecbed['statusText']);if(_0x4a968d['detail']!==undefined)_0x411ea6['detail']=_0x4a968d['detail'];throw _0x411ea6;}return await _0x1ecbed['json']();},async 'pullSkills'(){const _0xb80b52=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xb80b52['ok']){const _0x570887=await _0xb80b52['json']()['catch'](()=>({'error':_0xb80b52['statusText']})),_0x4eddaf=new Error(_0x570887['error']||_0x570887['message']||_0xb80b52['statusText']);if(_0x570887['detail']!==undefined)_0x4eddaf['detail']=_0x570887['detail'];throw _0x4eddaf;}return await _0xb80b52['json']();},async 'commitSkills'(_0x502a4c,_0x25402a={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x25402a,_0x391898=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x502a4c,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x391898['ok']){const _0x4d3fb4=await _0x391898['json']()['catch'](()=>({'error':_0x391898['statusText']})),_0x44d6f1=new Error(_0x4d3fb4['error']||_0x4d3fb4['message']||_0x391898['statusText']);if(_0x4d3fb4['detail']!==undefined)_0x44d6f1['detail']=_0x4d3fb4['detail'];throw _0x44d6f1;}return await _0x391898['json']();},async 'discardSkillsChanges'(){const _0x5523fb=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x5523fb['ok']){const _0x45b9a2=await _0x5523fb['json']()['catch'](()=>({'error':_0x5523fb['statusText']})),_0x125a31=new Error(_0x45b9a2['error']||_0x45b9a2['message']||_0x5523fb['statusText']);if(_0x45b9a2['detail']!==undefined)_0x125a31['detail']=_0x45b9a2['detail'];throw _0x125a31;}return await _0x5523fb['json']();},async 'getSkillCatalog'(){const _0x2334b4=await fetch(API_BASE+'/external-skills/catalog');if(!_0x2334b4['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x2334b4['statusText']);return await _0x2334b4['json']();},async 'getImportedSkillsRegistry'(){const _0x39ea9=await fetch(API_BASE+'/external-skills/registry');if(!_0x39ea9['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x39ea9['statusText']);return await _0x39ea9['json']();},async 'importCatalogSkill'(_0xd3b3b4){const _0x30dad8=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0xd3b3b4})});if(!_0x30dad8['ok']){const _0x3ec0f1=await _0x30dad8['json']()['catch'](()=>({'error':_0x30dad8['statusText']})),_0x13b7ff=new Error(_0x3ec0f1['error']||_0x3ec0f1['message']||_0x30dad8['statusText']);if(_0x3ec0f1['detail']!==undefined)_0x13b7ff['detail']=_0x3ec0f1['detail'];throw _0x13b7ff;}return await _0x30dad8['json']();},async 'importSkillFromGit'(_0xf67deb,_0x14f525,_0x12aff0='main',_0x781b68=null){const _0x5d509a=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0xf67deb,'skillPath':_0x14f525,'branch':_0x12aff0,'skillId':_0x781b68})});if(!_0x5d509a['ok']){const _0x41bee2=await _0x5d509a['json']()['catch'](()=>({'error':_0x5d509a['statusText']})),_0x25d38d=new Error(_0x41bee2['error']||_0x41bee2['message']||_0x5d509a['statusText']);if(_0x41bee2['detail']!==undefined)_0x25d38d['detail']=_0x41bee2['detail'];throw _0x25d38d;}return await _0x5d509a['json']();},async 'probeMarketplace'(_0x2bbc43,_0x1c5853='main'){const _0x522399=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x2bbc43,'branch':_0x1c5853})});if(!_0x522399['ok']){const _0x1159b2=await _0x522399['json']()['catch'](()=>({'error':_0x522399['statusText']})),_0x370f5c=new Error(_0x1159b2['error']||_0x1159b2['message']||_0x522399['statusText']);if(_0x1159b2['detail']!==undefined)_0x370f5c['detail']=_0x1159b2['detail'];throw _0x370f5c;}return await _0x522399['json']();},async 'importMarketplaceBundle'(_0x2b97e1,_0x4421b8,_0x20bfdb,_0x137f74=null){const _0x3c7c53=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x2b97e1,'branch':_0x4421b8,'bundleId':_0x20bfdb,'selectedSkills':_0x137f74})});if(!_0x3c7c53['ok']){const _0x10d22f=await _0x3c7c53['json']()['catch'](()=>({'error':_0x3c7c53['statusText']})),_0x20a10b=new Error(_0x10d22f['error']||_0x10d22f['message']||_0x3c7c53['statusText']);if(_0x10d22f['detail']!==undefined)_0x20a10b['detail']=_0x10d22f['detail'];throw _0x20a10b;}return await _0x3c7c53['json']();},async 'importSkillFromFolder'(_0x5b2d32,_0x279d2e=null){const _0x5b2c31=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x5b2d32,'skillId':_0x279d2e})});if(!_0x5b2c31['ok']){const _0x29e581=await _0x5b2c31['json']()['catch'](()=>({'error':_0x5b2c31['statusText']})),_0xa5d53d=new Error(_0x29e581['error']||_0x29e581['message']||_0x5b2c31['statusText']);if(_0x29e581['detail']!==undefined)_0xa5d53d['detail']=_0x29e581['detail'];throw _0xa5d53d;}return await _0x5b2c31['json']();},async 'importSkillFromNpm'(_0x375b14,_0x536a97='latest',_0x581c88=null,_0x329786=null){const _0x3a4e8a=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x375b14,'version':_0x536a97,'skillId':_0x581c88,'registry':_0x329786})});if(!_0x3a4e8a['ok']){const _0x105986=await _0x3a4e8a['json']()['catch'](()=>({'error':_0x3a4e8a['statusText']})),_0x7803f7=new Error(_0x105986['error']||_0x105986['message']||_0x3a4e8a['statusText']);if(_0x105986['detail']!==undefined)_0x7803f7['detail']=_0x105986['detail'];throw _0x7803f7;}return await _0x3a4e8a['json']();},async 'checkSkillUpdates'(_0x4c4a96){const _0x2d40fa=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4c4a96)+'/check-updates',{'method':'POST'});if(!_0x2d40fa['ok']){const _0x784cc=await _0x2d40fa['json']()['catch'](()=>({'error':_0x2d40fa['statusText']})),_0x184699=new Error(_0x784cc['error']||_0x784cc['message']||_0x2d40fa['statusText']);if(_0x784cc['detail']!==undefined)_0x184699['detail']=_0x784cc['detail'];throw _0x184699;}return await _0x2d40fa['json']();},async 'updateExternalSkill'(_0x17ef32){const _0x96f39e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x17ef32)+'/update',{'method':'POST'});if(!_0x96f39e['ok']){const _0x372e61=await _0x96f39e['json']()['catch'](()=>({'error':_0x96f39e['statusText']})),_0x1091e1=new Error(_0x372e61['error']||_0x372e61['message']||_0x96f39e['statusText']);if(_0x372e61['detail']!==undefined)_0x1091e1['detail']=_0x372e61['detail'];throw _0x1091e1;}return await _0x96f39e['json']();},async 'updateSkillFlags'(_0x41e778,_0x30fc6d){const _0x177311=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x41e778)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x30fc6d})});if(!_0x177311['ok']){const _0x540541=await _0x177311['json']()['catch'](()=>({'error':_0x177311['statusText']})),_0x14fb1b=new Error(_0x540541['error']||_0x540541['message']||_0x177311['statusText']);if(_0x540541['detail']!==undefined)_0x14fb1b['detail']=_0x540541['detail'];throw _0x14fb1b;}return await _0x177311['json']();},async 'removeFromImportedRegistry'(_0x26d2f1){const _0x8af6cd=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x26d2f1)+'/registry',{'method':'DELETE'});if(!_0x8af6cd['ok']){const _0xbd231b=await _0x8af6cd['json']()['catch'](()=>({'error':_0x8af6cd['statusText']})),_0x4b059e=new Error(_0xbd231b['error']||_0xbd231b['message']||_0x8af6cd['statusText']);if(_0xbd231b['detail']!==undefined)_0x4b059e['detail']=_0xbd231b['detail'];throw _0x4b059e;}return await _0x8af6cd['json']();},async 'getTeams'(){const _0x3b6546=await fetch(API_BASE+'/teams');if(!_0x3b6546['ok']){const _0x48a05e=await _0x3b6546['json']()['catch'](()=>({'message':_0x3b6546['statusText']}));throw new Error(_0x48a05e['message']||'Failed\x20to\x20get\x20teams');}return await _0x3b6546['json']();},async 'getTeam'(_0x42162e){const _0x1134c0=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x42162e));if(!_0x1134c0['ok']){const _0x2dfe46=await _0x1134c0['json']()['catch'](()=>({'message':_0x1134c0['statusText']}));throw new Error(_0x2dfe46['message']||'Failed\x20to\x20get\x20team');}return await _0x1134c0['json']();},async 'createTeam'(_0x1cac76){const _0x1089f9=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1cac76)});if(!_0x1089f9['ok']){const _0x3873e8=await _0x1089f9['json']()['catch'](()=>({'message':_0x1089f9['statusText']}));throw new Error(_0x3873e8['message']||'Failed\x20to\x20create\x20team');}return await _0x1089f9['json']();},async 'updateTeam'(_0x2cf4eb,_0x55d183){const _0x49ac14=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2cf4eb),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x55d183)});if(!_0x49ac14['ok']){const _0x3e2382=await _0x49ac14['json']()['catch'](()=>({'message':_0x49ac14['statusText']}));throw new Error(_0x3e2382['message']||'Failed\x20to\x20update\x20team');}return await _0x49ac14['json']();},async 'deleteTeam'(_0x5ad348){const _0x3c5c06=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5ad348),{'method':'DELETE'});if(!_0x3c5c06['ok']){const _0x44b185=await _0x3c5c06['json']()['catch'](()=>({'message':_0x3c5c06['statusText']}));throw new Error(_0x44b185['message']||'Failed\x20to\x20delete\x20team');}return await _0x3c5c06['json']();},async 'addTeamMember'(_0x3f29b3,_0x207104){const _0x25fb0e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x3f29b3)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x207104})});if(!_0x25fb0e['ok']){const _0x5c13a1=await _0x25fb0e['json']()['catch'](()=>({'message':_0x25fb0e['statusText']}));throw new Error(_0x5c13a1['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x25fb0e['json']();},async 'removeTeamMember'(_0x1b5fa6,_0x14d577){const _0x41ce68=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1b5fa6)+'/members/'+encodeURIComponent(_0x14d577),{'method':'DELETE'});if(!_0x41ce68['ok']){const _0x55e154=await _0x41ce68['json']()['catch'](()=>({'message':_0x41ce68['statusText']}));throw new Error(_0x55e154['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x41ce68['json']();},async 'getBindings'(_0x22cab4={}){const _0x288b54=new URLSearchParams();if(_0x22cab4['resource_type'])_0x288b54['set']('resource_type',_0x22cab4['resource_type']);if(_0x22cab4['resource_id'])_0x288b54['set']('resource_id',_0x22cab4['resource_id']);if(_0x22cab4['subject_type'])_0x288b54['set']('subject_type',_0x22cab4['subject_type']);if(_0x22cab4['subject_id'])_0x288b54['set']('subject_id',_0x22cab4['subject_id']);const _0x1fe9a1=_0x288b54['toString'](),_0x110520=await fetch(API_BASE+'/bindings'+(_0x1fe9a1?'?'+_0x1fe9a1:''));if(!_0x110520['ok']){const _0x4f49fe=await _0x110520['json']()['catch'](()=>({'message':_0x110520['statusText']}));throw new Error(_0x4f49fe['message']||'Failed\x20to\x20get\x20bindings');}return await _0x110520['json']();},async 'createBinding'(_0x3097de){const _0x29aeab=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3097de)});if(!_0x29aeab['ok']){const _0xa1a360=await _0x29aeab['json']()['catch'](()=>({'message':_0x29aeab['statusText']}));throw new Error(_0xa1a360['message']||'Failed\x20to\x20create\x20binding');}return await _0x29aeab['json']();},async 'updateBinding'(_0x137b8c,_0x19e332){const _0x2d37af=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x137b8c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19e332)});if(!_0x2d37af['ok']){const _0x378e45=await _0x2d37af['json']()['catch'](()=>({'message':_0x2d37af['statusText']}));throw new Error(_0x378e45['message']||'Failed\x20to\x20update\x20binding');}return await _0x2d37af['json']();},async 'deleteBinding'(_0x2dfc9d){const _0x4a015c=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2dfc9d),{'method':'DELETE'});if(!_0x4a015c['ok']){const _0x5137ac=await _0x4a015c['json']()['catch'](()=>({'message':_0x4a015c['statusText']}));throw new Error(_0x5137ac['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4a015c['json']();},async 'getRoleDefinitions'(){const _0x1b5407=await fetch(API_BASE+'/roles');if(!_0x1b5407['ok']){const _0x29678c=await _0x1b5407['json']()['catch'](()=>({'message':_0x1b5407['statusText']}));throw new Error(_0x29678c['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x1b5407['json']();},async 'getRoleDefinition'(_0x20d9ef){const _0x147fac=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x20d9ef));if(!_0x147fac['ok']){const _0x370813=await _0x147fac['json']()['catch'](()=>({'message':_0x147fac['statusText']}));throw new Error(_0x370813['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x147fac['json']();},async 'createRoleDefinition'(_0x5c7e2f){const _0x4fa86a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c7e2f)});if(!_0x4fa86a['ok']){const _0x5a37ff=await _0x4fa86a['json']()['catch'](()=>({'message':_0x4fa86a['statusText']}));throw new Error(_0x5a37ff['message']||_0x5a37ff['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x4fa86a['json']();},async 'updateRoleDefinition'(_0x2194bb,_0x47fd97){const _0x2cf169=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2194bb),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x47fd97)});if(!_0x2cf169['ok']){const _0x59cddb=await _0x2cf169['json']()['catch'](()=>({'message':_0x2cf169['statusText']}));throw new Error(_0x59cddb['message']||_0x59cddb['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x2cf169['json']();},async 'deleteRoleDefinition'(_0x365dab){const _0x46a2a4=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x365dab),{'method':'DELETE'});if(!_0x46a2a4['ok']){const _0x8f82b3=await _0x46a2a4['json']()['catch'](()=>({'message':_0x46a2a4['statusText']}));throw new Error(_0x8f82b3['message']||_0x8f82b3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x46a2a4['json']();},async 'getAvailablePermissions'(){const _0x4e8eb3=await fetch(API_BASE+'/roles/available-permissions');if(!_0x4e8eb3['ok']){const _0x19af9a=await _0x4e8eb3['json']()['catch'](()=>({'message':_0x4e8eb3['statusText']}));throw new Error(_0x19af9a['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x4e8eb3['json']();},async 'getGitProviderAllowedTeams'(_0x142cd3){const _0x4ebc75=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x142cd3)+'/allowed-teams');if(!_0x4ebc75['ok']){const _0x4f1e32=await _0x4ebc75['json']()['catch'](()=>({'message':_0x4ebc75['statusText']}));throw new Error(_0x4f1e32['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x4ebc75['json']();},async 'setGitProviderAllowedTeams'(_0x13e1cb,_0x4640b7){const _0x12dbad=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x13e1cb)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x4640b7})});if(!_0x12dbad['ok']){const _0x5d9868=await _0x12dbad['json']()['catch'](()=>({'message':_0x12dbad['statusText']}));throw new Error(_0x5d9868['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x12dbad['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 _0x51c157=toastState['baseBottom'];toastState['toasts']['forEach'](_0x1d5f14=>{_0x1d5f14['el']['style']['bottom']=_0x51c157+'px';const _0x3ae3e3=_0x1d5f14['el']['offsetHeight']||toastState['defaultHeight'];_0x51c157+=_0x3ae3e3+toastState['gap'];});});}function removeToastById(_0x267e42){const _0x5b3519=toastState['toasts']['findIndex'](_0x39151b=>_0x39151b['id']===_0x267e42);if(_0x5b3519===-0x1)return;const _0x35f3dd=toastState['toasts'][_0x5b3519];if(_0x35f3dd['timeoutId'])clearTimeout(_0x35f3dd['timeoutId']);_0x35f3dd['el']['classList']['remove']('show'),setTimeout(()=>_0x35f3dd['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x5b3519,0x1),repositionAllToasts();}function registerToast(_0x589034){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x589034),repositionAllToasts(),_0x589034['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(_0x5f3178){if(_0x5f3178===null||_0x5f3178===undefined)return'';return String(_0x5f3178)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#39;');}function getMarkdownCodeBlockPayload(_0x3becdb,_0x584d00){if(_0x3becdb&&typeof _0x3becdb==='object'&&!Array['isArray'](_0x3becdb))return{'code':typeof _0x3becdb['text']==='string'?_0x3becdb['text']:'','language':typeof _0x3becdb['lang']==='string'?_0x3becdb['lang']:''};return{'code':typeof _0x3becdb==='string'?_0x3becdb:'','language':typeof _0x584d00==='string'?_0x584d00:''};}function buildMermaidBlock(_0xb50a06){const _0x24dd17=String(_0xb50a06||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x24dd17))+'\x22>'+escapeHtmlValue(_0x24dd17)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x13899e=new marked['Renderer'](),_0x405262=_0x13899e['code']['bind'](_0x13899e);return _0x13899e['code']=function(_0x49c66c,_0x12004b,..._0x515071){const {code:_0x3a1290,language:_0x22e677}=getMarkdownCodeBlockPayload(_0x49c66c,_0x12004b),_0x157248=String(_0x22e677||'')['trim']()['toLowerCase']();if(_0x157248==='mermaid')return buildMermaidBlock(_0x3a1290);const _0x5ca902=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x5ca902&&_0x157248)try{const _0xa1cc66=_0x5ca902['getLanguage'](_0x157248)?_0x157248:'plaintext',_0x36fdfd=_0x5ca902['highlight'](_0x3a1290,{'language':_0xa1cc66})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x157248)+'\x22>'+_0x36fdfd+'</code></pre>';}catch(_0xaa7d6b){console['error']('Syntax\x20highlighting\x20error:',_0xaa7d6b);}return _0x405262(_0x49c66c,_0x12004b,..._0x515071);},sharedMarkedRenderer=_0x13899e,_0x13899e;}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 _0x3802bc=window['mermaid'];if(!_0x3802bc||typeof _0x3802bc['initialize']!=='function')return _0x3802bc||null;return _0x3802bc['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x3802bc;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x295a72,_0x4cdcd2)=>{const _0x1a3480=()=>_0x295a72(configureMermaidInstance()),_0xe271d1=()=>{mermaidLoadPromise=null,_0x4cdcd2(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x2fe251=document['getElementById'](MERMAID_SCRIPT_ID);!_0x2fe251&&(_0x2fe251=document['createElement']('script'),_0x2fe251['id']=MERMAID_SCRIPT_ID,_0x2fe251['src']=MERMAID_SCRIPT_SRC,_0x2fe251['async']=!![],document['head']['appendChild'](_0x2fe251));if(window['mermaid']){_0x1a3480();return;}_0x2fe251['addEventListener']('load',_0x1a3480,{'once':!![]}),_0x2fe251['addEventListener']('error',_0xe271d1,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x5ef508){const _0x3203ee=_0x5ef508['getAttribute']('data-mermaid-source');if(!_0x3203ee)return null;let _0x543192=_0x3203ee;try{_0x543192=decodeURIComponent(_0x3203ee);}catch{}return _0x5ef508['textContent']=_0x543192,_0x5ef508['removeAttribute']('data-processed'),_0x5ef508['removeAttribute']('aria-roledescription'),_0x5ef508['removeAttribute']('role'),_0x5ef508['removeAttribute']('aria-label'),_0x543192;}function collectMermaidNodes(_0x1641f2,_0x309508){if(!(_0x1641f2 instanceof Element))return;_0x1641f2['matches']('.mermaid[data-mermaid-source]')&&_0x309508['add'](_0x1641f2),_0x1641f2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x10e7c6=>{_0x309508['add'](_0x10e7c6);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x5bcd5c=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x2e98d1=>setTimeout(_0x2e98d1,0x0);_0x5bcd5c(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0xed0a05=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0xed0a05);});});}function queueMermaidRender(_0x52ad0d){const _0x3c84ef=new Set();_0x52ad0d instanceof Document||_0x52ad0d instanceof DocumentFragment?_0x52ad0d['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x54b90f=>_0x3c84ef['add'](_0x54b90f)):collectMermaidNodes(_0x52ad0d,_0x3c84ef);if(_0x3c84ef['size']===0x0)return;_0x3c84ef['forEach'](_0x49954e=>pendingMermaidNodes['add'](_0x49954e)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x45995f=Array['from'](pendingMermaidNodes)['filter'](_0x1c5dea=>_0x1c5dea['isConnected']);pendingMermaidNodes['clear']();if(_0x45995f['length']===0x0)return;const _0x556f69=await loadMermaid();if(!_0x556f69)return;configureMermaidInstance();const _0x171748=getMermaidTheme();for(const _0x1bd0d9 of _0x45995f){const _0x3a90e5=_0x1bd0d9['getAttribute']('data-mermaid-source');if(!_0x3a90e5)continue;const _0x8356d9=_0x1bd0d9['getAttribute']('data-processed')==='true';if(_0x8356d9&&_0x1bd0d9['dataset']['mermaidTheme']===_0x171748)continue;restoreMermaidSource(_0x1bd0d9);try{if(typeof _0x556f69['run']==='function')await _0x556f69['run']({'nodes':[_0x1bd0d9]});else typeof _0x556f69['init']==='function'&&_0x556f69['init'](undefined,[_0x1bd0d9]);_0x1bd0d9['dataset']['mermaidTheme']=_0x171748,delete _0x1bd0d9['dataset']['mermaidError'];}catch(_0x5ac053){console['error']('Mermaid\x20render\x20failed:',_0x5ac053),restoreMermaidSource(_0x1bd0d9),_0x1bd0d9['dataset']['mermaidError']='true',delete _0x1bd0d9['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xc297bc=>{_0xc297bc['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0xc297bc);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x1ea3e6=>{_0x1ea3e6['forEach'](_0x44d87e=>{_0x44d87e['addedNodes']['forEach'](_0xd119f5=>{_0xd119f5['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0xd119f5);});});}),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'(_0x239f42){const _0x176029=new Date(_0x239f42),_0x96e596=new Date(),_0x66bb2=_0x96e596-_0x176029,_0x132266=Math['floor'](_0x66bb2/0x3e8),_0x258f60=Math['floor'](_0x132266/0x3c),_0x5a715d=Math['floor'](_0x258f60/0x3c),_0xe5327d=Math['floor'](_0x5a715d/0x18);if(_0x132266<0x3c)return'now';if(_0x258f60<0x3c)return _0x258f60+'m\x20ago';if(_0x5a715d<0x18)return _0x5a715d+'h\x20ago';return _0xe5327d+'d\x20ago';},'getStatusIcon'(_0x328157){switch(_0x328157){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x38327e){switch(_0x38327e){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'(_0x26a2ed,_0x40d99f=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0xa71c38={};_0xa71c38['text/plain']=new Blob([_0x26a2ed],{'type':'text/plain'});_0x40d99f&&(_0xa71c38['text/html']=new Blob([_0x40d99f],{'type':'text/html'}));const _0x2cf157=new ClipboardItem(_0xa71c38);return await navigator['clipboard']['write']([_0x2cf157]),!![];}catch(_0x5a7db8){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x5a7db8);}try{const _0x5a6140=_0x1c679f=>{_0x1c679f['preventDefault'](),_0x1c679f['clipboardData']['setData']('text/plain',_0x26a2ed),_0x40d99f&&_0x1c679f['clipboardData']['setData']('text/html',_0x40d99f);};document['addEventListener']('copy',_0x5a6140);const _0x376e63=document['execCommand']('copy');document['removeEventListener']('copy',_0x5a6140);if(_0x376e63)return!![];}catch(_0x427442){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x427442);}try{const _0x2ac23d=document['createElement']('textarea');_0x2ac23d['value']=_0x26a2ed,_0x2ac23d['style']['position']='fixed',_0x2ac23d['style']['opacity']='0',_0x2ac23d['style']['pointerEvents']='none',document['body']['appendChild'](_0x2ac23d),_0x2ac23d['select']();const _0x58506c=document['execCommand']('copy');return document['body']['removeChild'](_0x2ac23d),_0x58506c;}catch(_0xdc4741){return console['error']('All\x20clipboard\x20methods\x20failed:',_0xdc4741),![];}},'showToast'(_0x4c8e19,_0x123215='info'){const _0x1aac44=getNextToastId(),_0x24851b=document['createElement']('div');_0x24851b['className']='toast\x20toast-'+_0x123215,_0x24851b['textContent']=_0x4c8e19,_0x24851b['dataset']['toastId']=_0x1aac44,document['body']['appendChild'](_0x24851b);const _0x39ab82=_0x123215==='error'?0x2710:0xbb8,_0x17232c=setTimeout(()=>{removeToastById(_0x1aac44);},_0x39ab82),_0x8cb70a={'id':_0x1aac44,'el':_0x24851b,'timeoutId':_0x17232c};return registerToast(_0x8cb70a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x24851b['classList']['add']('show');});}),_0x1aac44;},'showError'(_0x5899c2){console['error'](_0x5899c2);const _0x12aa8d=typeof _0x5899c2==='string'?_0x5899c2:_0x5899c2['message']||'An\x20error\x20occurred';this['showToast'](_0x12aa8d,'error');},'showSuccess'(_0x26090b){this['showToast'](_0x26090b,'success');},'capitalize'(_0x113278){if(!_0x113278)return'';return _0x113278['charAt'](0x0)['toUpperCase']()+_0x113278['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x5df16d){return escapeHtmlValue(_0x5df16d);},'ansiToHtml'(_0x51e57f){if(_0x51e57f===null||_0x51e57f===undefined)return'';let _0x28cd14=this['escapeHtml'](_0x51e57f);const _0x2ea31e={'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'},_0x59effc={'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 _0x464cb9=0x0;return _0x28cd14=_0x28cd14['replace'](/\x1b\[([0-9;]*)m/g,(_0x430db6,_0x27b5d2)=>{if(!_0x27b5d2||_0x27b5d2==='0'){const _0x24211e='</span>'['repeat'](_0x464cb9);return _0x464cb9=0x0,_0x24211e;}const _0x2009db=_0x27b5d2['split'](';'),_0x184a2f=[];for(const _0x27117d of _0x2009db){if(_0x27117d==='1')_0x184a2f['push']('font-weight:bold');else{if(_0x27117d==='2')_0x184a2f['push']('opacity:0.7');else{if(_0x27117d==='3')_0x184a2f['push']('font-style:italic');else{if(_0x27117d==='4')_0x184a2f['push']('text-decoration:underline');else{if(_0x27117d==='9')_0x184a2f['push']('text-decoration:line-through');else{if(_0x2ea31e[_0x27117d])_0x184a2f['push']('color:'+_0x2ea31e[_0x27117d]);else{if(_0x59effc[_0x27117d])_0x184a2f['push']('background-color:'+_0x59effc[_0x27117d]);}}}}}}}if(_0x184a2f['length']>0x0)return _0x464cb9++,'<span\x20style=\x22'+_0x184a2f['join'](';')+'\x22>';return'';}),_0x28cd14+='</span>'['repeat'](_0x464cb9),_0x28cd14=_0x28cd14['replace'](/\\u001b\[([0-9;]*)m/g,(_0x1526c9,_0xd3c4f6)=>{if(!_0xd3c4f6||_0xd3c4f6==='0')return'';const _0x5c9134=_0xd3c4f6['split'](';'),_0x1fa0b9=[];for(const _0x15de2a of _0x5c9134){if(_0x15de2a==='1')_0x1fa0b9['push']('font-weight:bold');else{if(_0x2ea31e[_0x15de2a])_0x1fa0b9['push']('color:'+_0x2ea31e[_0x15de2a]);else{if(_0x59effc[_0x15de2a])_0x1fa0b9['push']('background-color:'+_0x59effc[_0x15de2a]);}}}if(_0x1fa0b9['length']>0x0)return'<span\x20style=\x22'+_0x1fa0b9['join'](';')+'\x22>';return'';}),_0x28cd14;},'showModal'({title:_0x556e07,content:_0x307897,buttons:buttons=[]}){const _0x27b031='\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'](_0x556e07)+'</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'+_0x307897+'\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']((_0xb074e9,_0x146af4)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0xb074e9['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x146af4+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0xb074e9['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',_0x524482=document['createElement']('div');_0x524482['id']='utils-modal',_0x524482['className']='modal',_0x524482['innerHTML']=_0x27b031,document['body']['appendChild'](_0x524482);const _0x167dca=document['getElementById']('utils-modal-close');_0x167dca&&_0x167dca['addEventListener']('click',()=>this['hideModal']());const _0x508e2a=_0x524482['querySelectorAll']('[data-btn-index]');_0x508e2a['forEach'](_0x2ce52f=>{const _0x540ed9=parseInt(_0x2ce52f['dataset']['btnIndex']);buttons[_0x540ed9]?.['onClick']&&_0x2ce52f['addEventListener']('click',buttons[_0x540ed9]['onClick']);});const _0xca23dd=document['getElementById']('utils-modal-overlay');_0xca23dd&&_0xca23dd['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x564665=document['getElementById']('utils-modal');_0x564665&&_0x564665['remove']();},'parseKeyValuePairs'(_0x889cc8){const _0x55256d={};if(!_0x889cc8)return _0x55256d;return _0x889cc8['split'](/\r?\n/)['map'](_0x355921=>_0x355921['trim']())['filter'](Boolean)['forEach'](_0xa598a7=>{const _0xa39f82=_0xa598a7['indexOf']('=');if(_0xa39f82>0x0){const _0x5c4000=_0xa598a7['slice'](0x0,_0xa39f82)['trim'](),_0x2c9686=_0xa598a7['slice'](_0xa39f82+0x1)['trim']();if(_0x5c4000)_0x55256d[_0x5c4000]=_0x2c9686;}}),_0x55256d;},'debounce'(_0x444d39,_0x3020af=0xfa){let _0x494d11=null;return(..._0x81fcdd)=>{clearTimeout(_0x494d11),_0x494d11=setTimeout(()=>_0x444d39['apply'](this,_0x81fcdd),_0x3020af);};},'formatTimestamp'(_0x42ae34){if(!_0x42ae34)return'N/A';const _0x11663e=new Date(_0x42ae34);return _0x11663e['toLocaleDateString']()+'\x20'+_0x11663e['toLocaleTimeString']();},'getQueryParams'(){const _0x5160d6=new URLSearchParams(window['location']['search']),_0x2c7f96={};for(const [_0x360da6,_0x4aeba9]of _0x5160d6){_0x2c7f96[_0x360da6]=_0x4aeba9;}return _0x2c7f96;},'formatDuration'(_0x2182cf,_0x4ea677){if(!_0x2182cf)return'N/A';const _0x3987b3=new Date(_0x2182cf),_0x18a9eb=_0x4ea677?new Date(_0x4ea677):new Date(),_0x7759b4=_0x18a9eb-_0x3987b3;if(_0x7759b4<0x0)return'0s';const _0x4b5746=Math['floor'](_0x7759b4/0x3e8),_0x2a741b=Math['floor'](_0x4b5746/0x3c),_0x2a1246=Math['floor'](_0x2a741b/0x3c),_0x4b53ae=Math['floor'](_0x2a1246/0x18);if(_0x4b5746<0x3c)return _0x4b5746+'s';if(_0x2a741b<0x3c)return _0x2a741b+'m\x20'+_0x4b5746%0x3c+'s';if(_0x2a1246<0x18)return _0x2a1246+'h\x20'+_0x2a741b%0x3c+'m\x20'+_0x4b5746%0x3c+'s';return _0x4b53ae+'d\x20'+_0x2a1246%0x18+'h\x20'+_0x2a741b%0x3c+'m';},'renderMarkdown'(_0x47f19c,_0x18df59={}){if(!_0x47f19c)return'';_0x47f19c=this['rewriteAttachmentLinks'](_0x47f19c,_0x18df59),_0x47f19c=this['rewriteColorSyntax'](_0x47f19c);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x47f19c,_0x18df59);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x47f19c);}catch(_0x118055){return console['error']('Markdown\x20parsing\x20error:',_0x118055),this['renderMarkdownFallback'](_0x47f19c,_0x18df59);}},'rewriteAttachmentLinks'(_0x5187e0,_0x458297={}){const _0xb13da6=typeof _0x458297['resolveAttachmentUrl']==='function'?_0x458297['resolveAttachmentUrl']:_0x458297['taskId']?_0x3f537b=>API_BASE+'/tasks/'+_0x458297['taskId']+'/attachments/'+encodeURIComponent(_0x3f537b):null;if(!_0xb13da6)return _0x5187e0;return String(_0x5187e0)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x50cf55,_0x2f9758)=>{const _0x41be5a=String(_0x2f9758||'')['trim']();if(!_0x41be5a)return _0x50cf55;let _0xc535d7=_0x41be5a;try{_0xc535d7=decodeURIComponent(_0x41be5a);}catch{}const _0xd25495=_0xb13da6(_0xc535d7);if(!_0xd25495)return _0x50cf55;return']('+_0xd25495+')';});},'rewriteColorSyntax'(_0x1971a){if(!_0x1971a)return _0x1971a;return String(_0x1971a)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x5de268,_0x23657d,_0x2d83af)=>{const _0xc7abe2=this['rewriteColorSyntax'](_0x2d83af);return'<span\x20style=\x22color:\x20'+_0x23657d+'\x22>'+_0xc7abe2+'</span>';});},'renderMarkdownFallback'(_0x3df181,_0x55dccb={}){if(!_0x3df181)return'';_0x3df181=_0x3df181['replace'](/\r\n/g,'\x0a'),_0x3df181=_0x3df181['replace'](/\r/g,'\x0a'),_0x3df181=this['rewriteAttachmentLinks'](_0x3df181,_0x55dccb);let _0x3af278=this['escapeHtml'](_0x3df181);return _0x3af278=_0x3af278['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3af278=_0x3af278['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3af278=_0x3af278['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3af278=_0x3af278['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3af278=_0x3af278['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3af278=_0x3af278['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3af278=_0x3af278['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3af278=_0x3af278['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3af278=_0x3af278['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3af278=_0x3af278['replace'](/\n\n/g,'</p><p>'),_0x3af278=_0x3af278['replace'](/\n/g,'<br>'),'<p>'+_0x3af278+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x20bacc=new Uint8Array(0x10);crypto['getRandomValues'](_0x20bacc),_0x20bacc[0x6]=_0x20bacc[0x6]&0xf|0x40,_0x20bacc[0x8]=_0x20bacc[0x8]&0x3f|0x80;const _0x2ff230=Array['from'](_0x20bacc,_0x144784=>_0x144784['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x2ff230['slice'](0x0,0x8)+'-'+_0x2ff230['slice'](0x8,0xc)+'-'+_0x2ff230['slice'](0xc,0x10)+'-'+_0x2ff230['slice'](0x10,0x14)+'-'+_0x2ff230['slice'](0x14);}};export class CustomSelect{constructor(_0x237048,_0xfa2cff={}){this['nativeSelect']=_0x237048,this['options']=_0xfa2cff,this['isOpen']=![],this['selectedValue']=_0x237048['value']||'',this['searchable']=_0xfa2cff['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x40bed8=document['createElement']('div');_0x40bed8['className']='custom-select';const _0x17df33=document['createElement']('div');_0x17df33['className']='custom-select-trigger',_0x17df33['setAttribute']('tabindex','0'),_0x17df33['setAttribute']('role','button'),_0x17df33['setAttribute']('aria-haspopup','listbox');const _0x2bb256=document['createElement']('span');_0x2bb256['className']='custom-select-trigger-text';const _0x86cd6f=document['createElement']('span');_0x86cd6f['className']='custom-select-arrow',_0x86cd6f['textContent']='▼',_0x17df33['appendChild'](_0x2bb256),_0x17df33['appendChild'](_0x86cd6f);const _0x2481d4=document['createElement']('div');_0x2481d4['className']='custom-select-dropdown',_0x2481d4['setAttribute']('role','listbox');if(this['searchable']){const _0x620256=document['createElement']('div');_0x620256['className']='custom-select-search';const _0x1fff23=document['createElement']('input');_0x1fff23['type']='text',_0x1fff23['className']='custom-select-search-input',_0x1fff23['placeholder']='Type\x20to\x20search...',_0x1fff23['setAttribute']('aria-label','Search\x20options'),_0x1fff23['addEventListener']('input',_0x45fefa=>{this['searchQuery']=_0x45fefa['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x1fff23['addEventListener']('keydown',_0x56cb9f=>{if(_0x56cb9f['key']==='Escape')_0x56cb9f['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x56cb9f['key']==='Enter'){_0x56cb9f['preventDefault'](),_0x56cb9f['stopPropagation']();const _0xccb04b=_0x2481d4['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0xccb04b){const _0x23fa2e=_0xccb04b['getAttribute']('data-value');this['select'](_0x23fa2e);}}}}),_0x620256['appendChild'](_0x1fff23),_0x2481d4['appendChild'](_0x620256),this['searchInput']=_0x1fff23;}const _0x5b3073=document['createElement']('div');_0x5b3073['className']='custom-select-options',_0x2481d4['appendChild'](_0x5b3073),_0x40bed8['appendChild'](_0x17df33),_0x40bed8['appendChild'](_0x2481d4),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x40bed8,this['nativeSelect']),this['wrapper']=_0x40bed8,this['trigger']=_0x17df33,this['triggerText']=_0x2bb256,this['dropdown']=_0x2481d4,this['optionsContainer']=_0x5b3073,_0x17df33['addEventListener']('click',()=>this['toggle']()),_0x17df33['addEventListener']('keydown',_0x100c85=>this['handleKeydown'](_0x100c85)),document['addEventListener']('click',_0x3ff40f=>{!_0x40bed8['contains'](_0x3ff40f['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x8f7428=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x8f7428['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x3c03ff=new MutationObserver(()=>{this['updateDisabledState']();});_0x3c03ff['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x25653d=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x25653d['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x5b823f=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x5b823f),this['trigger']['setAttribute']('aria-disabled',_0x5b823f?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x5b823f?'-1':'0'),_0x5b823f&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x2f56ad=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0xc3e416=_0x2f56ad['filter'](_0x5bf3ba=>!_0x5bf3ba['disabled']&&!_0x5bf3ba['hidden']);_0x2f56ad['forEach']((_0xcca01a,_0x49f38b)=>{const _0x27ecc6=document['createElement']('div');_0x27ecc6['className']='custom-select-option',_0x27ecc6['textContent']=_0xcca01a['textContent'],_0x27ecc6['setAttribute']('data-value',_0xcca01a['value']),_0x27ecc6['setAttribute']('data-index',_0x49f38b),_0x27ecc6['setAttribute']('role','option'),_0xcca01a['disabled']?_0x27ecc6['classList']['add']('disabled'):_0x27ecc6['addEventListener']('click',()=>this['select'](_0xcca01a['value'])),_0xcca01a['value']===this['selectedValue']&&_0x27ecc6['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x27ecc6),this['allOptions']['push']({'element':_0x27ecc6,'text':_0xcca01a['textContent']['toLowerCase'](),'value':_0xcca01a['value'],'disabled':_0xcca01a['disabled']});});if(this['searchable']&&this['searchInput']){const _0x5cf34c=this['searchInput']['parentElement'];_0xc3e416['length']>0x3?_0x5cf34c['style']['display']='':_0x5cf34c['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x7fc5b4=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x5d246e=>{if(!_0x7fc5b4||_0x5d246e['disabled'])_0x5d246e['element']['style']['display']='';else{const _0x3d51cd=_0x5d246e['text']['includes'](_0x7fc5b4);_0x5d246e['element']['style']['display']=_0x3d51cd?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x2b5431){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x2b5431,this['nativeSelect']['value']=_0x2b5431;const _0x2a2088=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x2a2088),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x468ff8=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x468ff8&&(this['triggerText']['textContent']=_0x468ff8['textContent'],_0x468ff8['disabled']||_0x468ff8['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x1e33ab=>{_0x1e33ab['getAttribute']('data-value')===this['selectedValue']?_0x1e33ab['classList']['add']('selected'):_0x1e33ab['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 _0x536059=window['getComputedStyle'](this['dropdown']);if(_0x536059['position']==='fixed'){const _0x43793c=this['trigger']['getBoundingClientRect'](),_0x24a53f=parseInt(_0x536059['maxHeight'])||0xc8,_0x135fab=window['innerHeight'],_0x24ea9f=_0x135fab-_0x43793c['bottom'],_0x5b3a10=_0x43793c['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x150c5b;_0x24ea9f<_0x24a53f&&_0x5b3a10>_0x24ea9f?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x135fab-_0x43793c['top']+'px',_0x150c5b=Math['min'](_0x24a53f,_0x5b3a10-0xa),this['dropdown']['style']['maxHeight']=_0x150c5b+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x43793c['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x150c5b=Math['min'](_0x24a53f,_0x24ea9f-0xa),this['dropdown']['style']['maxHeight']=_0x150c5b+'px');if(this['optionsContainer']){let _0x4135db=_0x150c5b;if(this['searchInput']){const _0x50e3b5=this['searchInput']['parentElement'];_0x50e3b5&&(_0x4135db-=_0x50e3b5['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4135db)+'px';}this['dropdown']['style']['left']=_0x43793c['left']+'px',this['dropdown']['style']['width']=_0x43793c['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x3f2383=this['searchInput']['parentElement'];_0x3f2383&&_0x3f2383['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'](_0x20694a){if(this['nativeSelect']['disabled'])return;if(_0x20694a['key']==='Enter'||_0x20694a['key']==='\x20')_0x20694a['preventDefault'](),this['toggle']();else _0x20694a['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x3ef990='\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',_0x3ef990),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x26d2b0=document['getElementById']('confirm-dialog-close'),_0x430969=document['getElementById']('confirm-dialog-cancel'),_0x2c4837=document['getElementById']('confirm-dialog-confirm'),_0x518e93=this['_modal']['querySelector']('.modal-overlay');_0x26d2b0['addEventListener']('click',()=>this['_resolve'](![])),_0x430969['addEventListener']('click',()=>this['_resolve'](![])),_0x2c4837['addEventListener']('click',()=>this['_resolve'](!![])),_0x518e93['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x262f4f=>{if(_0x262f4f['key']==='Escape')_0x262f4f['preventDefault'](),this['_resolve'](![]);else _0x262f4f['key']==='Enter'&&(_0x262f4f['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x322748,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x204620=>{this['_resolvePromise']=_0x204620,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x322748;const _0x1c8236=document['getElementById']('confirm-dialog-cancel'),_0x43d6d7=document['getElementById']('confirm-dialog-confirm');_0x1c8236['textContent']=cancelText,_0x43d6d7['textContent']=confirmText,_0x43d6d7['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x43d6d7['focus']();});},'_resolve'(_0x32dee3){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x32dee3),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x211c80,_0x15234c={}){this['container']=_0x211c80,this['options']={'placeholder':_0x15234c['placeholder']||'Type\x20to\x20search...','maxItems':_0x15234c['maxItems']||0x64,'loadItems':_0x15234c['loadItems']||(async()=>[]),'renderItem':_0x15234c['renderItem']||(_0x1bdd1f=>({'primary':String(_0x1bdd1f),'secondary':''})),'onSelect':_0x15234c['onSelect']||(()=>{}),'filterItems':_0x15234c['filterItems']||null,'getItemValue':_0x15234c['getItemValue']||(_0x22de06=>_0x22de06),'sortItems':_0x15234c['sortItems']||null,'debounceMs':_0x15234c['debounceMs']||0xc8,'minCharsForSearch':_0x15234c['minCharsForSearch']||0x0,'emptyMessage':_0x15234c['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x15234c['loadingMessage']||'Loading...','preload':_0x15234c['preload']!==![],'searchMode':_0x15234c['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',_0x5bc4db=>this['onBlur'](_0x5bc4db)),this['input']['addEventListener']('input',_0x534c13=>this['onInput'](_0x534c13)),this['input']['addEventListener']('keydown',_0x4c5735=>this['onKeydown'](_0x4c5735)),this['clearBtn']['addEventListener']('mousedown',_0x478a12=>{_0x478a12['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1c8889=>{_0x1c8889['preventDefault']();}),document['addEventListener']('click',_0x59966e=>{!this['wrapper']['contains'](_0x59966e['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(_0x4323ce){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x4323ce);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x47b2f7){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x2b369a){const _0x2cbfea=_0x2b369a['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2cbfea);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2cbfea):this['loadAndShow'](_0x2cbfea);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x2d825c){switch(_0x2d825c['key']){case'ArrowDown':_0x2d825c['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x2d825c['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x2d825c['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x2d825c['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x57e4cf){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x4ef3cc=this['selectedIndex']+_0x57e4cf;if(_0x4ef3cc>=0x0&&_0x4ef3cc<this['filteredItems']['length']){this['selectedIndex']=_0x4ef3cc,this['updateSelectionHighlight']();const _0x2e1a5f=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x2e1a5f[this['selectedIndex']]&&_0x2e1a5f[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x2ab86f=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x2ab86f['forEach']((_0x2976c7,_0x15c115)=>{_0x2976c7['classList']['toggle']('keyboard-selected',_0x15c115===this['selectedIndex']);});}async['loadAndShow'](_0x415012){this['showLoading']();try{const _0x3d8bb5=await this['options']['loadItems'](_0x415012);if(this['options']['searchMode']==='server'){let _0x3bb022=_0x3d8bb5;this['options']['sortItems']&&(_0x3bb022=this['options']['sortItems']([..._0x3d8bb5]));this['filteredItems']=_0x3bb022;const _0x2b144f=this['filteredItems']['length']>=this['options']['maxItems'];_0x2b144f&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x2b144f),this['open']();}else this['allItems']=_0x3d8bb5,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x415012);}catch(_0x441632){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x441632),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x3741e0){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x3741e0):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x549103=this['filteredItems']['length']>=this['options']['maxItems'];_0x549103&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549103),this['open']();}['renderItems'](_0x1cbd10){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']((_0x207ca7,_0x397b54)=>{const _0x2c3af3=document['createElement']('div');_0x2c3af3['className']='autocomplete-select-item',_0x2c3af3['setAttribute']('role','option'),_0x2c3af3['setAttribute']('data-index',_0x397b54);const _0x53ceb8=this['options']['renderItem'](_0x207ca7);let _0x191427='';_0x53ceb8['icon']&&(_0x191427='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x53ceb8['iconClass']||'')+'\x22>'+_0x53ceb8['icon']+'</span>'),_0x2c3af3['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x191427+'\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'](_0x53ceb8['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x53ceb8['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x53ceb8['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x2c3af3['addEventListener']('click',()=>{this['selectItem'](_0x207ca7);}),_0x2c3af3['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x397b54,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x2c3af3);}),_0x1cbd10?(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'](_0x512748){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x512748)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x42aac0){this['selectedItem']=_0x42aac0;const _0x32eb4d=this['options']['renderItem'](_0x42aac0);this['input']['value']=_0x32eb4d['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x42aac0);}['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'](_0x2ae0cb){if(_0x2ae0cb){this['selectedItem']=_0x2ae0cb;const _0x4c9c67=this['options']['renderItem'](_0x2ae0cb);this['input']['value']=_0x4c9c67['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x24d4e4){this['allItems']=_0x24d4e4,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'](_0x3bf9e0){this['input']['placeholder']=_0x3bf9e0;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x29781b=null){const _0x406e8b=document['getElementById']('admin-menu-container'),_0x1bd5b2=document['getElementById']('admin-menu-btn'),_0x22b266=document['getElementById']('admin-menu');if(!_0x406e8b||!_0x1bd5b2||!_0x22b266)return;try{!_0x29781b&&(_0x29781b=await API['getCurrentUser']());if(_0x29781b){const _0x5cd4f6=window['Permissions'],_0x1ef4a5=_0x5cd4f6['hasServerPermission'](_0x29781b,'*')||_0x5cd4f6['hasEnvPermission'](_0x29781b,'environments:manage')||_0x5cd4f6['hasServerPermission'](_0x29781b,'users:create')||_0x5cd4f6['hasTeamPermission'](_0x29781b,'teams:manage')||_0x5cd4f6['hasEnvPermission'](_0x29781b,'environments:view_details');if(!_0x1ef4a5)return;_0x406e8b['hidden']=![];if(!_0x5cd4f6['hasServerPermission'](_0x29781b,'*')){const _0x5dfedf=_0x22b266['querySelectorAll']('.admin-menu-item');_0x5dfedf['forEach'](_0x12c282=>{const _0x22c6ef=_0x12c282['querySelector']('.option-text')?.['textContent']?.['trim']();_0x22c6ef==='Users'&&!_0x5cd4f6['hasServerPermission'](_0x29781b,'users:create')&&(_0x12c282['hidden']=!![]),_0x22c6ef==='Skills'&&(_0x12c282['hidden']=!![]),_0x22c6ef==='Server\x20Settings'&&(_0x12c282['hidden']=!![]),_0x22c6ef==='Server\x20Administration'&&(_0x12c282['hidden']=!![]),_0x22c6ef==='Git\x20History'&&(_0x12c282['hidden']=!![]),_0x22c6ef==='Roles'&&(_0x12c282['hidden']=!![]);});}_0x1bd5b2['addEventListener']('click',_0x9507b8=>{_0x9507b8['stopPropagation']();const _0x4c841a=document['getElementById']('actions-menu');if(_0x4c841a)_0x4c841a['hidden']=!![];_0x22b266['hidden']=!_0x22b266['hidden'];}),document['addEventListener']('click',_0x4cfa2e=>{!_0x22b266['hidden']&&!_0x1bd5b2['contains'](_0x4cfa2e['target'])&&!_0x22b266['contains'](_0x4cfa2e['target'])&&(_0x22b266['hidden']=!![]);}),document['addEventListener']('keydown',_0x378687=>{_0x378687['key']==='Escape'&&!_0x22b266['hidden']&&(_0x22b266['hidden']=!![]);});}}catch(_0x15768e){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x15768e['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};