@profoundlogic/coderflow-server 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coder-server.js +1 -1
- package/dist/config/skill-catalog.json +1 -1
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/cleanup-users.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/grant-admin.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/list-roles.js +1 -1
- package/dist/lib/cli/list-users.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -1
- package/dist/lib/compression-filter.js +1 -1
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/external-connections.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/ibmi-sync.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/memory-utils.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/permission-resolver.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/slack-service.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-aliases.js +1 -1
- package/dist/lib/task-container-init.js +1 -1
- package/dist/lib/task-context-usage.js +1 -1
- package/dist/lib/task-git-auth-errors.js +1 -1
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/playwright.config.js +1 -1
- package/dist/playwright.task-terminal.config.js +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/automations.js +1 -1
- package/dist/routes/bindings.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/logs.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/roles.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/slack.js +1 -1
- package/dist/routes/stats.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/scripts/migrate-config-to-data-dir.js +1 -1
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/admin.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/docs/admin/automations.md +2 -1
- package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
- package/dist/web-ui/public/environments.css +5 -0
- package/dist/web-ui/public/environments.html +4 -3
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/file-selection-tree.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/ibmi-file-filter.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/permissions.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- 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,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}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>×</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>×</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']='×',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 _0x4d0025=window['location']['pathname'],_0x37e170=_0x4d0025['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x37e170)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x37e170[0x1]),_0x37e170[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x1ea08e={}){const _0x33e4cc=new URLSearchParams();_0x1ea08e['userId']&&_0x33e4cc['set']('userId',String(_0x1ea08e['userId']));_0x1ea08e['automation']&&_0x33e4cc['set']('automation',String(_0x1ea08e['automation']));const _0x339de3=API_BASE+'/tasks/stats'+(_0x33e4cc['toString']()?'?'+_0x33e4cc['toString']():''),_0x29b1e7=await fetch(_0x339de3);if(!_0x29b1e7['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x29b1e7['statusText']);return await _0x29b1e7['json']();},async 'getTasks'(_0x5ee5d6={}){const _0x588618=new URLSearchParams();_0x5ee5d6['status']&&_0x588618['set']('status',String(_0x5ee5d6['status']));_0x5ee5d6['environment']&&_0x588618['set']('environment',String(_0x5ee5d6['environment']));_0x5ee5d6['automation']&&_0x588618['set']('automation',String(_0x5ee5d6['automation']));if(_0x5ee5d6['include']){const _0x5b628b=Array['isArray'](_0x5ee5d6['include'])?_0x5ee5d6['include']['join'](','):String(_0x5ee5d6['include']);_0x5b628b&&_0x588618['set']('include',_0x5b628b);}_0x5ee5d6['filter']&&_0x588618['set']('filter',String(_0x5ee5d6['filter']));_0x5ee5d6['page']&&_0x588618['set']('page',String(_0x5ee5d6['page']));_0x5ee5d6['limit']&&_0x588618['set']('limit',String(_0x5ee5d6['limit']));_0x5ee5d6['userId']&&_0x588618['set']('userId',String(_0x5ee5d6['userId']));_0x5ee5d6['search']&&_0x588618['set']('search',String(_0x5ee5d6['search']));_0x5ee5d6['includeChildTasks']&&_0x588618['set']('includeChildTasks','true');const _0xe6820d=API_BASE+'/tasks'+(_0x588618['toString']()?'?'+_0x588618['toString']():''),_0x956e87=await fetch(_0xe6820d);if(!_0x956e87['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x956e87['statusText']);return await _0x956e87['json']();},async 'getAutomations'(_0x3774ae={}){const _0x342cc7=new URLSearchParams();_0x3774ae['environment']&&_0x342cc7['set']('environment',String(_0x3774ae['environment']));const _0x24931c=await fetch(API_BASE+'/api/automations'+(_0x342cc7['toString']()?'?'+_0x342cc7['toString']():''));if(!_0x24931c['ok']){const _0x1c7972=await _0x24931c['json']()['catch'](()=>({}));throw new Error(_0x1c7972['message']||_0x1c7972['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x24931c['statusText']);}return await _0x24931c['json']();},async 'getAutomation'(_0x3bd36a){const _0x5387a4=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3bd36a));if(!_0x5387a4['ok']){const _0xf1d300=await _0x5387a4['json']()['catch'](()=>({}));throw new Error(_0xf1d300['message']||_0xf1d300['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x5387a4['statusText']);}return await _0x5387a4['json']();},async 'createAutomation'(_0x508fd6){const _0x2b6506=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x508fd6||{})});if(!_0x2b6506['ok']){const _0x46df95=await _0x2b6506['json']()['catch'](()=>({}));throw new Error(_0x46df95['message']||_0x46df95['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x2b6506['statusText']);}return await _0x2b6506['json']();},async 'updateAutomation'(_0x4f76e4,_0x285bb4){const _0x2ca5d3=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4f76e4),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x285bb4||{})});if(!_0x2ca5d3['ok']){const _0x3d2ac4=await _0x2ca5d3['json']()['catch'](()=>({}));throw new Error(_0x3d2ac4['message']||_0x3d2ac4['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x2ca5d3['statusText']);}return await _0x2ca5d3['json']();},async 'deleteAutomation'(_0xc5ea09){const _0x21f2a1=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc5ea09),{'method':'DELETE'});if(!_0x21f2a1['ok']){const _0x43581c=await _0x21f2a1['json']()['catch'](()=>({}));throw new Error(_0x43581c['message']||_0x43581c['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x21f2a1['statusText']);}return await _0x21f2a1['json']();},async 'triggerAutomation'(_0x1298b0){const _0x2e1aa0=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1298b0)+'/trigger',{'method':'POST'});if(!_0x2e1aa0['ok']){const _0x1feca8=await _0x2e1aa0['json']()['catch'](()=>({}));throw new Error(_0x1feca8['message']||_0x1feca8['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x2e1aa0['statusText']);}return await _0x2e1aa0['json']();},async 'setAutomationEnabled'(_0x5c3bc4,_0x409c88){const _0x20fe22=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5c3bc4)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x409c88})});if(!_0x20fe22['ok']){const _0x72a70=await _0x20fe22['json']()['catch'](()=>({}));throw new Error(_0x72a70['message']||_0x72a70['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x20fe22['statusText']);}return await _0x20fe22['json']();},async 'getAutomationHistory'(_0x46d7b6,_0x34775c=0x32){const _0x53c7fb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x46d7b6)+'/history?limit='+encodeURIComponent(String(_0x34775c)));if(!_0x53c7fb['ok']){const _0xbcad49=await _0x53c7fb['json']()['catch'](()=>({}));throw new Error(_0xbcad49['message']||_0xbcad49['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x53c7fb['statusText']);}return await _0x53c7fb['json']();},async 'getTask'(_0x5dc687,_0x1357b6={}){const _0x508877=new URLSearchParams();if(_0x1357b6['include']){const _0x1988e9=Array['isArray'](_0x1357b6['include'])?_0x1357b6['include']['join'](','):String(_0x1357b6['include']);if(_0x1988e9)_0x508877['set']('include',_0x1988e9);}const _0x1d1ea5=await fetch(API_BASE+'/tasks/'+_0x5dc687+(_0x508877['toString']()?'?'+_0x508877['toString']():''));if(!_0x1d1ea5['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x1d1ea5['statusText']);return await _0x1d1ea5['json']();},async 'getTaskResults'(_0x4935da){const _0xb93ba4=await fetch(API_BASE+'/tasks/'+_0x4935da+'/results');if(!_0xb93ba4['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0xb93ba4['statusText']);return await _0xb93ba4['json']();},async 'getTaskPatches'(_0x2045e7){const _0x2943f7=await fetch(API_BASE+'/tasks/'+_0x2045e7+'/patches');if(!_0x2943f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x2943f7['statusText']);return await _0x2943f7['json']();},async 'getTaskAttachments'(_0x45a44d){const _0x784152=await fetch(API_BASE+'/tasks/'+_0x45a44d+'/attachments');if(!_0x784152['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x784152['statusText']);return await _0x784152['json']();},async 'uploadAttachments'(_0x59a6ef,_0x2e1bdf){const _0x28b2c3=new FormData();for(const _0x495d14 of _0x2e1bdf){_0x28b2c3['append']('attachments',_0x495d14);}const _0x113448=await fetch(API_BASE+'/tasks/'+_0x59a6ef+'/attachments',{'method':'POST','body':_0x28b2c3});if(!_0x113448['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x113448['statusText']);return await _0x113448['json']();},async 'isAINameGenerationAvailable'(){try{const _0x1be920=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x1be920['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x1be920['json']();}catch(_0xaff11c){return{'available':![],'reason':_0xaff11c['message']};}},async 'generateTaskName'(_0x701777){try{const _0xf2acac=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x701777})});return await _0xf2acac['json']();}catch(_0xca857d){return{'success':![],'error':_0xca857d['message']};}},async 'createTask'(_0x4641bb){let _0x274c50,_0x5b1460={};if(_0x4641bb['files']&&_0x4641bb['files']['length']>0x0){const _0x583bf9=new FormData();for(const [_0x59266d,_0x26ba82]of Object['entries'](_0x4641bb)){if(_0x59266d!=='files'){if(_0x26ba82==null)continue;typeof _0x26ba82==='object'?_0x583bf9['append'](_0x59266d,JSON['stringify'](_0x26ba82)):_0x583bf9['append'](_0x59266d,String(_0x26ba82));}}for(const _0x4d985a of _0x4641bb['files']){_0x583bf9['append']('attachments',_0x4d985a);}_0x274c50=_0x583bf9;}else _0x5b1460['Content-Type']='application/json',_0x274c50=JSON['stringify'](_0x4641bb);const _0x107f65=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x5b1460,'body':_0x274c50});if(!_0x107f65['ok']){const _0x32ab65=await _0x107f65['json'](),_0x4cb5de=new Error(_0x32ab65['error']||'Failed\x20to\x20create\x20task:\x20'+_0x107f65['statusText']),{message:_0x5910e0,..._0x2095dd}=_0x32ab65;Object['assign'](_0x4cb5de,_0x2095dd);throw _0x4cb5de;}return await _0x107f65['json']();},async 'createTestTask'(_0x5b2a1d){const _0x98183d=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5b2a1d)});if(!_0x98183d['ok']){const _0x4d0922=await _0x98183d['json']();throw new Error(_0x4d0922['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x98183d['statusText']);}return await _0x98183d['json']();},async 'createEphemeralTest'(_0x25fab1){const _0x472ba9=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25fab1)});if(!_0x472ba9['ok']){const _0x583408=await _0x472ba9['json']();throw new Error(_0x583408['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x472ba9['statusText']);}return await _0x472ba9['json']();},async 'createDeployTask'(_0x1075f9){const _0x135169=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1075f9)});if(!_0x135169['ok']){const _0x27780f=await _0x135169['json']();throw new Error(_0x27780f['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x135169['statusText']);}return await _0x135169['json']();},async 'getEnvironments'(){const _0xc13bd6=await fetch(API_BASE+'/environments');if(!_0xc13bd6['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0xc13bd6['statusText']);return await _0xc13bd6['json']();},async 'getEnvironment'(_0x3987b6){const _0x4bff4b=await fetch(API_BASE+'/environments/'+_0x3987b6);if(!_0x4bff4b['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x4bff4b['statusText']);return await _0x4bff4b['json']();},async 'getEnvironmentRepoHistory'(_0x389f5f,_0x3bfcdf,_0x2087a4={}){if(!_0x389f5f||!_0x3bfcdf)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x568dfe=new URLSearchParams();if(_0x2087a4['limit'])_0x568dfe['set']('limit',String(_0x2087a4['limit']));if(_0x2087a4['offset'])_0x568dfe['set']('offset',String(_0x2087a4['offset']));if(_0x2087a4['search'])_0x568dfe['set']('search',String(_0x2087a4['search']));if(_0x2087a4['branch'])_0x568dfe['set']('branch',String(_0x2087a4['branch']));const _0x230e64=API_BASE+'/environments/'+encodeURIComponent(_0x389f5f)+'/repos/'+encodeURIComponent(_0x3bfcdf)+'/git/history',_0x1ae5a6=await fetch(''+_0x230e64+(_0x568dfe['toString']()?'?'+_0x568dfe['toString']():''));if(!_0x1ae5a6['ok']){const _0x47afc1=await _0x1ae5a6['json']()['catch'](()=>({}));throw new Error(_0x47afc1['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x1ae5a6['statusText']);}return await _0x1ae5a6['json']();},async 'getEnvironmentRepoCommit'(_0x1f0d31,_0x101630,_0x534f84){if(!_0x1f0d31||!_0x101630||!_0x534f84)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xcac219=API_BASE+'/environments/'+encodeURIComponent(_0x1f0d31)+'/repos/'+encodeURIComponent(_0x101630)+'/git/commits/'+encodeURIComponent(_0x534f84),_0xd0cc62=await fetch(_0xcac219);if(!_0xd0cc62['ok']){const _0x3d919b=await _0xd0cc62['json']()['catch'](()=>({}));throw new Error(_0x3d919b['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0xd0cc62['statusText']);}return await _0xd0cc62['json']();},async 'getEnvironmentRepoBranches'(_0x5e83f3,_0x4d3d7d){if(!_0x5e83f3||!_0x4d3d7d)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3aac37=API_BASE+'/environments/'+encodeURIComponent(_0x5e83f3)+'/repos/'+encodeURIComponent(_0x4d3d7d)+'/git/branches',_0x3c8e34=await fetch(_0x3aac37);if(!_0x3c8e34['ok']){const _0x533fe1=await _0x3c8e34['json']()['catch'](()=>({}));throw new Error(_0x533fe1['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x3c8e34['statusText']);}return await _0x3c8e34['json']();},async 'revertEnvironmentRepoCommit'(_0x491e0f,_0x43c89d,_0x280e70,_0x399422={}){if(!_0x491e0f||!_0x43c89d||!_0x280e70)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5f5265=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x491e0f)+'/repos/'+encodeURIComponent(_0x43c89d)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x280e70,..._0x399422})});if(!_0x5f5265['ok']){const _0x352b72=await _0x5f5265['json']()['catch'](()=>({}));throw new Error(_0x352b72['message']||_0x352b72['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5f5265['statusText']);}return await _0x5f5265['json']();},async 'getTemplates'(_0x602b41={}){const _0x2be8b2=new URLSearchParams();if(_0x602b41['include']){const _0x11038d=Array['isArray'](_0x602b41['include'])?_0x602b41['include']['join'](','):String(_0x602b41['include']);if(_0x11038d)_0x2be8b2['set']('include',_0x11038d);}const _0x802e55=await fetch(API_BASE+'/templates'+(_0x2be8b2['toString']()?'?'+_0x2be8b2['toString']():''));if(!_0x802e55['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x802e55['statusText']);return await _0x802e55['json']();},async 'getTemplatesForEnvironment'(_0x48e045,_0x268354={}){if(!_0x48e045)throw new Error('Environment\x20name\x20is\x20required');const _0x42ca4d=new URLSearchParams();if(_0x268354['include']){const _0x12e7f8=Array['isArray'](_0x268354['include'])?_0x268354['include']['join'](','):String(_0x268354['include']);if(_0x12e7f8)_0x42ca4d['set']('include',_0x12e7f8);}const _0x1773fa=await fetch(API_BASE+'/templates/'+_0x48e045+(_0x42ca4d['toString']()?'?'+_0x42ca4d['toString']():''));if(!_0x1773fa['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x48e045+':\x20'+_0x1773fa['statusText']);return await _0x1773fa['json']();},async 'getTemplate'(_0x114846,_0x4ad761,_0x2e19ae={}){if(!_0x114846||!_0x4ad761)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x21bde2=new URLSearchParams();if(_0x2e19ae['include']){const _0x2597bd=Array['isArray'](_0x2e19ae['include'])?_0x2e19ae['include']['join'](','):String(_0x2e19ae['include']);if(_0x2597bd)_0x21bde2['set']('include',_0x2597bd);}const _0x1c6628=await fetch(API_BASE+'/templates/'+_0x114846+'/'+_0x4ad761+(_0x21bde2['toString']()?'?'+_0x21bde2['toString']():''));if(!_0x1c6628['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x1c6628['statusText']);return await _0x1c6628['json']();},async 'getTaskLogs'(_0x2b5640,_0x145b1b={}){if(!_0x2b5640)throw new Error('Task\x20ID\x20is\x20required');const _0x45cec7=new URLSearchParams();_0x145b1b['tail']&&_0x45cec7['set']('tail',String(_0x145b1b['tail']));const _0x52e878=await fetch(API_BASE+'/tasks/'+_0x2b5640+'/logs'+(_0x45cec7['toString']()?'?'+_0x45cec7['toString']():''));if(!_0x52e878['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x52e878['statusText']);return await _0x52e878['text']();},async 'getContainers'(){const _0x56f26a=await fetch(API_BASE+'/containers');if(!_0x56f26a['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x56f26a['statusText']);return await _0x56f26a['json']();},async 'getContainer'(_0x1331c0){const _0x18cae9=await fetch(API_BASE+'/containers/'+_0x1331c0);if(!_0x18cae9['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x18cae9['statusText']);return await _0x18cae9['json']();},async 'startInteractiveContainer'(_0x3a2268){const _0x36ef32=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a2268)});if(!_0x36ef32['ok']){const _0x4cb00c=await _0x36ef32['json']()['catch'](()=>({}));throw new Error(_0x4cb00c['message']||'Failed\x20to\x20start\x20container:\x20'+_0x36ef32['statusText']);}return await _0x36ef32['json']();},async 'startContainerCodeServer'(_0x158d3d,_0x55fd36={}){if(!_0x158d3d)throw new Error('Container\x20ID\x20is\x20required');const _0x38e2a9=new URLSearchParams();_0x55fd36['theme']&&_0x38e2a9['set']('theme',_0x55fd36['theme']);const _0x5a3bcf=await fetch(API_BASE+'/containers/'+_0x158d3d+'/code-server'+(_0x38e2a9['toString']()?'?'+_0x38e2a9['toString']():'')),_0x3e441=await _0x5a3bcf['json']()['catch'](()=>({}));if(!_0x5a3bcf['ok'])throw new Error(_0x3e441['message']||_0x3e441['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x5a3bcf['statusText']);return _0x3e441;},async 'stopContainer'(_0x199a22){const _0x47c742=await fetch(API_BASE+'/containers/'+_0x199a22,{'method':'DELETE'});if(!_0x47c742['ok']){const _0x3b50ad=await _0x47c742['json']()['catch'](()=>({}));throw new Error(_0x3b50ad['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x47c742['statusText']);}return await _0x47c742['json']();},async 'stopTask'(_0x3cdba9){if(!_0x3cdba9)throw new Error('Task\x20ID\x20is\x20required');const _0x190be8=await fetch(API_BASE+'/tasks/'+_0x3cdba9+'/stop',{'method':'POST'});if(!_0x190be8['ok']){const _0xf358b6=await _0x190be8['json']()['catch'](()=>({}));throw new Error(_0xf358b6['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x190be8['statusText']);}return await _0x190be8['json']();},async 'interruptTask'(_0x33e457){if(!_0x33e457)throw new Error('Task\x20ID\x20is\x20required');const _0x2cc6fd=await fetch(API_BASE+'/tasks/'+_0x33e457+'/interrupt',{'method':'POST'});if(!_0x2cc6fd['ok']){const _0x3d5c93=await _0x2cc6fd['json']()['catch'](()=>({}));throw new Error(_0x3d5c93['error']||_0x3d5c93['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2cc6fd['statusText']);}return await _0x2cc6fd['json']();},async 'startTask'(_0x9bf59e){if(!_0x9bf59e)throw new Error('Task\x20ID\x20is\x20required');const _0xddf118=await fetch(API_BASE+'/tasks/'+_0x9bf59e+'/start',{'method':'POST'});if(!_0xddf118['ok']){const _0x30344a=await _0xddf118['json']()['catch'](()=>({}));throw new Error(_0x30344a['error']||'Failed\x20to\x20start\x20task:\x20'+_0xddf118['statusText']);}return await _0xddf118['json']();},async 'deleteTask'(_0x22ec36){if(!_0x22ec36)throw new Error('Task\x20ID\x20is\x20required');const _0x5acb17=await fetch(API_BASE+'/tasks/'+_0x22ec36,{'method':'DELETE'});if(!_0x5acb17['ok']){const _0x505c4f=await _0x5acb17['json']()['catch'](()=>({}));throw new Error(_0x505c4f['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x5acb17['statusText']);}return await _0x5acb17['json']();},async 'refreshTasksFromDisk'(){const _0x1b1089=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x1b1089['ok']){const _0x1bb1bb=await _0x1b1089['json']()['catch'](()=>({}));throw new Error(_0x1bb1bb['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x1b1089['statusText']);}return await _0x1b1089['json']();},async 'approveTask'(_0x50e70a,_0x4c7670={}){if(!_0x50e70a)throw new Error('Task\x20ID\x20is\x20required');const _0x1b11c6={'commit_message':_0x4c7670['commit_message']||'','pull':_0x4c7670['pull']??![],'push':_0x4c7670['push']??![],'conflict_strategy':_0x4c7670['conflict_strategy']||'rebase'};_0x4c7670['new_branch']&&(_0x1b11c6['new_branch']=_0x4c7670['new_branch']);const _0x56a6a9=await fetch(API_BASE+'/tasks/'+_0x50e70a+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b11c6)});if(!_0x56a6a9['ok']){const _0x2c0a0f=await _0x56a6a9['json']()['catch'](()=>({})),_0x54a171=Array['isArray'](_0x2c0a0f['results'])?_0x2c0a0f['results']['filter'](_0x1ebe73=>!_0x1ebe73['success']&&(_0x1ebe73['error']||_0x1ebe73['error_code'])):[],_0x1b3bc6=_0x54a171[0x0]||null;let _0x2d5820=_0x2c0a0f['error']||_0x2c0a0f['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56a6a9['statusText'];if(_0x1b3bc6?.['error'])_0x2d5820=_0x1b3bc6['error'];else _0x2c0a0f['message']&&(_0x2d5820=_0x2c0a0f['message']);const _0x478052=new Error(_0x2d5820);_0x478052['code']=_0x1b3bc6?.['error_code']||_0x2c0a0f['error_code']||null,_0x478052['details']=_0x1b3bc6?.['details']||_0x2c0a0f['details']||null,_0x478052['tokenExpiryDays']=_0x1b3bc6?.['token_expiry_days']||_0x2c0a0f['token_expiry_days']||null,_0x478052['hasConflicts']=_0x2c0a0f['results']?.['some'](_0x4e0b88=>_0x4e0b88['conflict'])||![];throw _0x478052;}return await _0x56a6a9['json']();},async 'getPullRequestInfo'(_0x3c99c3){if(!_0x3c99c3)throw new Error('Task\x20ID\x20is\x20required');const _0x426402=await fetch(API_BASE+'/tasks/'+_0x3c99c3+'/pull-request-info');if(!_0x426402['ok']){const _0x2e3a00=await _0x426402['json']()['catch'](()=>({}));throw new Error(_0x2e3a00['error']||_0x2e3a00['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x426402['statusText']);}return await _0x426402['json']();},async 'createPullRequests'(_0x5bc4e7,_0x234e87){if(!_0x5bc4e7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x234e87||!Array['isArray'](_0x234e87))throw new Error('repos\x20array\x20is\x20required');const _0x322a84=await fetch(API_BASE+'/tasks/'+_0x5bc4e7+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x234e87})});if(!_0x322a84['ok']){const _0x2b3d81=await _0x322a84['json']()['catch'](()=>({}));let _0x549fad=_0x2b3d81['error']||_0x2b3d81['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x322a84['statusText'];if(_0x2b3d81['results']&&Array['isArray'](_0x2b3d81['results'])){const _0x282632=_0x2b3d81['results']['filter'](_0x19edce=>!_0x19edce['success']&&_0x19edce['error']);_0x282632['length']>0x0&&(_0x549fad=_0x282632[0x0]['error']);}throw new Error(_0x549fad);}return await _0x322a84['json']();},async 'syncRepos'(_0x293aa4){if(!_0x293aa4)throw new Error('Task\x20ID\x20is\x20required');const _0x2f38e3=await fetch(API_BASE+'/tasks/'+_0x293aa4+'/sync-repos',{'method':'POST'});if(!_0x2f38e3['ok']){const _0x3e2d71=await _0x2f38e3['json']()['catch'](()=>({}));throw new Error(_0x3e2d71['error']||_0x3e2d71['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2f38e3['statusText']);}return await _0x2f38e3['json']();},async 'getIbmiSyncInfo'(_0x53c586){if(!_0x53c586)throw new Error('Task\x20ID\x20is\x20required');const _0x2c419c=await fetch(API_BASE+'/tasks/'+_0x53c586+'/ibmi-sync-info');if(!_0x2c419c['ok']){const _0x32acf4=await _0x2c419c['json']()['catch'](()=>({}));throw new Error(_0x32acf4['error']||_0x32acf4['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x2c419c['json']();},async 'getSyncFiles'(_0x59664b){if(!_0x59664b)throw new Error('Task\x20ID\x20is\x20required');const _0x261e32=await fetch(API_BASE+'/tasks/'+_0x59664b+'/sync-to-ibmi/files');if(!_0x261e32['ok']){const _0x127b2d=await _0x261e32['json']()['catch'](()=>({}));throw new Error(_0x127b2d['error']||_0x127b2d['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x261e32['json']();},async 'syncToIbmi'(_0x472ab2,_0x18942e,_0x2052ef=null,_0x2a314a=null,_0xf2a450=null){if(!_0x472ab2)throw new Error('Task\x20ID\x20is\x20required');const _0x3fe1b9={'library':_0x18942e};if(_0x2052ef)_0x3fe1b9['user']=_0x2052ef;if(_0x2a314a)_0x3fe1b9['password']=_0x2a314a;if(_0xf2a450)_0x3fe1b9['files']=_0xf2a450;const _0x4feeb7=await fetch(API_BASE+'/tasks/'+_0x472ab2+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3fe1b9)});if(!_0x4feeb7['ok']){const _0x4ffd39=await _0x4feeb7['json']()['catch'](()=>({}));throw new Error(_0x4ffd39['error']||_0x4ffd39['message']||'Sync\x20failed');}return await _0x4feeb7['json']();},async 'getIbmiSyncLog'(_0x2dc130){if(!_0x2dc130)throw new Error('Task\x20ID\x20is\x20required');const _0x3ccd84=await fetch(API_BASE+'/tasks/'+_0x2dc130+'/ibmi-sync-log');if(!_0x3ccd84['ok']){const _0x56a523=await _0x3ccd84['json']()['catch'](()=>({}));throw new Error(_0x56a523['error']||_0x56a523['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x3ccd84['json']();},async 'pullChanges'(_0x5cfaf9){if(!_0x5cfaf9)throw new Error('Task\x20ID\x20is\x20required');const _0x10ad5b=await fetch(API_BASE+'/tasks/'+_0x5cfaf9+'/pull-changes',{'method':'POST'});if(!_0x10ad5b['ok']){const _0x2997b8=await _0x10ad5b['json']()['catch'](()=>({})),_0x59a7f2=new Error(_0x2997b8['message']||_0x2997b8['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x10ad5b['statusText']);_0x59a7f2['code']=_0x2997b8['error_code']||null,_0x59a7f2['details']=_0x2997b8['details']||null,_0x59a7f2['tokenExpiryDays']=_0x2997b8['token_expiry_days']||null;throw _0x59a7f2;}return await _0x10ad5b['json']();},async 'readFile'(_0x4c4b4c,_0x216070){if(!_0x4c4b4c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x216070)throw new Error('File\x20path\x20is\x20required');const _0xdec4c9=await fetch(API_BASE+'/tasks/'+_0x4c4b4c+'/files?path='+encodeURIComponent(_0x216070));if(!_0xdec4c9['ok']){const _0x370a0a=await _0xdec4c9['json']()['catch'](()=>({}));throw new Error(_0x370a0a['error']||_0x370a0a['message']||'Failed\x20to\x20read\x20file:\x20'+_0xdec4c9['statusText']);}return await _0xdec4c9['json']();},'getTaskFileDownloadUrl'(_0x5acdab,_0x34ce46){if(!_0x5acdab)throw new Error('Task\x20ID\x20is\x20required');if(!_0x34ce46)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x5acdab+'/files/download?path='+encodeURIComponent(_0x34ce46);},async 'writeFile'(_0x526f3e,_0x13921a,_0x5c7c03){if(!_0x526f3e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x13921a)throw new Error('File\x20path\x20is\x20required');if(_0x5c7c03===undefined)throw new Error('Content\x20is\x20required');const _0x599f6c=await fetch(API_BASE+'/tasks/'+_0x526f3e+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x13921a,'content':_0x5c7c03})});if(!_0x599f6c['ok']){const _0xd07f0f=await _0x599f6c['json']()['catch'](()=>({}));throw new Error(_0xd07f0f['error']||_0xd07f0f['message']||'Failed\x20to\x20write\x20file:\x20'+_0x599f6c['statusText']);}return await _0x599f6c['json']();},async 'uploadTaskFiles'(_0x2c6fea,_0xc1580c,_0x25ce1f){if(!_0x2c6fea)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc1580c)throw new Error('Target\x20directory\x20is\x20required');if(!_0x25ce1f||_0x25ce1f['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x5ebda8=new FormData();_0x5ebda8['append']('targetDir',_0xc1580c);for(const _0x10cf76 of _0x25ce1f){_0x5ebda8['append']('files',_0x10cf76,_0x10cf76['name']);}const _0x268ce6=await fetch(API_BASE+'/tasks/'+_0x2c6fea+'/files/upload',{'method':'POST','body':_0x5ebda8});if(!_0x268ce6['ok']){const _0x2eae5e=await _0x268ce6['json']()['catch'](()=>({}));throw new Error(_0x2eae5e['error']||_0x2eae5e['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x268ce6['statusText']);}return await _0x268ce6['json']();},async 'createDirectory'(_0x5e755a,_0x236be1){if(!_0x5e755a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x236be1)throw new Error('Directory\x20path\x20is\x20required');const _0x2ce446=await fetch(API_BASE+'/tasks/'+_0x5e755a+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x236be1})});if(!_0x2ce446['ok']){const _0x85c94e=await _0x2ce446['json']()['catch'](()=>({}));throw new Error(_0x85c94e['error']||_0x85c94e['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x2ce446['statusText']);}return await _0x2ce446['json']();},async 'renamePath'(_0x3dde71,_0x490325,_0x207b02){if(!_0x3dde71)throw new Error('Task\x20ID\x20is\x20required');if(!_0x490325)throw new Error('Source\x20path\x20is\x20required');if(!_0x207b02)throw new Error('Destination\x20path\x20is\x20required');const _0x40bad7=await fetch(API_BASE+'/tasks/'+_0x3dde71+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x490325,'newPath':_0x207b02})});if(!_0x40bad7['ok']){const _0x14aa4d=await _0x40bad7['json']()['catch'](()=>({}));throw new Error(_0x14aa4d['error']||_0x14aa4d['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x40bad7['statusText']);}return await _0x40bad7['json']();},async 'deleteFile'(_0x2cc63a,_0x27d423){if(!_0x2cc63a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x27d423)throw new Error('File\x20path\x20is\x20required');const _0x34b45f=await fetch(API_BASE+'/tasks/'+_0x2cc63a+'/files?path='+encodeURIComponent(_0x27d423),{'method':'DELETE'});if(!_0x34b45f['ok']){const _0x30d181=await _0x34b45f['json']()['catch'](()=>({}));throw new Error(_0x30d181['error']||_0x30d181['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x34b45f['statusText']);}return await _0x34b45f['json']();},async 'deleteDirectory'(_0x1b819b,_0x371f98){if(!_0x1b819b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x371f98)throw new Error('Directory\x20path\x20is\x20required');const _0x42ea8e=await fetch(API_BASE+'/tasks/'+_0x1b819b+'/files/directory?path='+encodeURIComponent(_0x371f98),{'method':'DELETE'});if(!_0x42ea8e['ok']){const _0x59c66c=await _0x42ea8e['json']()['catch'](()=>({}));throw new Error(_0x59c66c['error']||_0x59c66c['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x42ea8e['statusText']);}return await _0x42ea8e['json']();},async 'discardFile'(_0x325ec4,_0x3b139e,_0x263e17){if(!_0x325ec4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3b139e)throw new Error('File\x20path\x20is\x20required');if(!_0x263e17)throw new Error('Repository\x20path\x20is\x20required');const _0x538ba9=await fetch(API_BASE+'/tasks/'+_0x325ec4+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x3b139e,'repoPath':_0x263e17})});if(!_0x538ba9['ok']){const _0x5e7a06=await _0x538ba9['json']()['catch'](()=>({}));throw new Error(_0x5e7a06['error']||_0x5e7a06['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x538ba9['statusText']);}return await _0x538ba9['json']();},async 'followUpTask'(_0x5c67a5,_0x7542c2={}){if(!_0x5c67a5)throw new Error('Task\x20ID\x20is\x20required');if(!_0x7542c2['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x4822af,_0x3ffa53={};if(_0x7542c2['files']&&_0x7542c2['files']['length']>0x0){const _0x4d668d=new FormData();_0x4d668d['append']('instructions',_0x7542c2['instructions']);for(const _0x847da of _0x7542c2['files']){_0x4d668d['append']('attachments',_0x847da);}_0x4822af=_0x4d668d;}else _0x3ffa53['Content-Type']='application/json',_0x4822af=JSON['stringify']({'instructions':_0x7542c2['instructions']});const _0x6c8fd8=await fetch(API_BASE+'/tasks/'+_0x5c67a5+'/follow-up',{'method':'POST','headers':_0x3ffa53,'body':_0x4822af});if(!_0x6c8fd8['ok']){const _0x35f300=await _0x6c8fd8['json']()['catch'](()=>({}));throw new Error(_0x35f300['error']||_0x35f300['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x6c8fd8['statusText']);}return await _0x6c8fd8['json']();},async 'getTaskRewindPoints'(_0x37a7c1){if(!_0x37a7c1)throw new Error('Task\x20ID\x20is\x20required');const _0x490480=await fetch(API_BASE+'/tasks/'+_0x37a7c1+'/rewind-points');if(!_0x490480['ok']){const _0x2a49de=await _0x490480['json']()['catch'](()=>({}));throw new Error(_0x2a49de['error']||_0x2a49de['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x490480['statusText']);}return await _0x490480['json']();},async 'rewindTask'(_0x42fb6e,_0x4b0930={}){if(!_0x42fb6e)throw new Error('Task\x20ID\x20is\x20required');const _0x3b092e=Number['isInteger'](_0x4b0930['targetFollowUpCount'])?_0x4b0930['targetFollowUpCount']:0x0,_0x205726={'targetFollowUpCount':_0x3b092e};typeof _0x4b0930['instructions']==='string'&&_0x4b0930['instructions']['trim']()&&(_0x205726['instructions']=_0x4b0930['instructions']['trim']());typeof _0x4b0930['rewindFiles']==='boolean'&&(_0x205726['rewindFiles']=_0x4b0930['rewindFiles']);const _0x15539a=await fetch(API_BASE+'/tasks/'+_0x42fb6e+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x205726)});if(!_0x15539a['ok']){const _0x430a36=await _0x15539a['json']()['catch'](()=>({}));throw new Error(_0x430a36['error']||_0x430a36['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x15539a['statusText']);}return await _0x15539a['json']();},async 'login'(_0x3dc6b7,_0x58f9f5){const _0x569a26=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3dc6b7,'password':_0x58f9f5})});if(!_0x569a26['ok']){const _0x495fe7=await _0x569a26['json']();throw new Error(_0x495fe7['message']||'Login\x20failed');}return await _0x569a26['json']();},async 'logout'(){const _0x225e04=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x225e04['ok']){const _0x4e4947=await _0x225e04['json']();throw new Error(_0x4e4947['message']||'Logout\x20failed');}return await _0x225e04['json']();},async 'getCurrentUser'(){const _0x2fa654=await fetch(API_BASE+'/auth/me');if(!_0x2fa654['ok'])throw new Error('Not\x20authenticated');const _0x8c5a76=await _0x2fa654['json']();return _0x8c5a76['user'];},async 'getRolesInfo'(){const _0x305012=await fetch(API_BASE+'/users/roles');if(!_0x305012['ok']){const _0x1f9a79=await _0x305012['json']();throw new Error(_0x1f9a79['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x305012['json']();},async 'getUsers'(){const _0x4724b7=await fetch(API_BASE+'/users');if(!_0x4724b7['ok']){const _0x427fd8=await _0x4724b7['json']();throw new Error(_0x427fd8['message']||'Failed\x20to\x20get\x20users');}return await _0x4724b7['json']();},async 'getUser'(_0x2b9901){const _0x4412ce=await fetch(API_BASE+'/users/'+_0x2b9901);if(!_0x4412ce['ok']){const _0x4e5b03=await _0x4412ce['json']();throw new Error(_0x4e5b03['message']||'Failed\x20to\x20get\x20user');}return await _0x4412ce['json']();},async 'createUser'(_0x5394f5){const _0x4722a6=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5394f5)});if(!_0x4722a6['ok']){const _0x537357=await _0x4722a6['json']();throw new Error(_0x537357['message']||'Failed\x20to\x20create\x20user');}return await _0x4722a6['json']();},async 'updateUser'(_0x107887,_0x4cb57c){const _0xbeafcb=await fetch(API_BASE+'/users/'+_0x107887,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4cb57c)});if(!_0xbeafcb['ok']){const _0x269a8b=await _0xbeafcb['json']();throw new Error(_0x269a8b['message']||'Failed\x20to\x20update\x20user');}return await _0xbeafcb['json']();},async 'deleteUser'(_0x29623e){const _0x2a3452=await fetch(API_BASE+'/users/'+_0x29623e,{'method':'DELETE'});if(!_0x2a3452['ok']){const _0xc104e=await _0x2a3452['json']();throw new Error(_0xc104e['message']||'Failed\x20to\x20delete\x20user');}return await _0x2a3452['json']();},async 'stopAllContainers'(){const _0x49758b=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x363423=await _0x49758b['json']()['catch'](()=>({}));if(!_0x49758b['ok'])throw new Error(_0x363423['message']||_0x363423['error']||'Failed\x20to\x20stop\x20containers');return _0x363423;},async 'removeStoppedContainers'(){const _0x56f90f=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x35320a=await _0x56f90f['json']()['catch'](()=>({}));if(!_0x56f90f['ok'])throw new Error(_0x35320a['message']||_0x35320a['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x35320a;},async 'pruneDockerResources'(){const _0x204f45=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x1d2a95=await _0x204f45['json']()['catch'](()=>({}));if(!_0x204f45['ok'])throw new Error(_0x1d2a95['message']||_0x1d2a95['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x1d2a95;},async 'getUpdateSettings'(){const _0x3bb3f0=await fetch(API_BASE+'/health/update-settings'),_0x57ed49=await _0x3bb3f0['json']()['catch'](()=>({}));if(!_0x3bb3f0['ok'])throw new Error(_0x57ed49['message']||_0x57ed49['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x57ed49;},async 'applyServerUpdate'(_0x12f7ea){const _0x1b5268=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x12f7ea})}),_0x55353f=await _0x1b5268['json']()['catch'](()=>({}));if(!_0x1b5268['ok']){const _0x3b6f25=new Error(_0x55353f['message']||_0x55353f['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x55353f['output']!==undefined)_0x3b6f25['output']=_0x55353f['output'];if(_0x55353f['error']!==undefined)_0x3b6f25['commandError']=_0x55353f['error'];throw _0x3b6f25;}return _0x55353f;},async 'restartServer'(){const _0x505d37=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x1554b0=await _0x505d37['json']()['catch'](()=>({}));if(!_0x505d37['ok'])throw new Error(_0x1554b0['message']||_0x1554b0['error']||'Failed\x20to\x20restart\x20server');return _0x1554b0;},async 'getDockerContainers'(){const _0x471a14=await fetch(API_BASE+'/health/containers'),_0x566a40=await _0x471a14['json']()['catch'](()=>({}));if(!_0x471a14['ok'])throw new Error(_0x566a40['message']||_0x566a40['error']||'Failed\x20to\x20load\x20containers');return _0x566a40;},async 'getDockerImages'(){const _0x409317=await fetch(API_BASE+'/health/docker/images'),_0x4f98db=await _0x409317['json']()['catch'](()=>({}));if(!_0x409317['ok'])throw new Error(_0x4f98db['message']||_0x4f98db['error']||'Failed\x20to\x20load\x20images');return _0x4f98db;},async 'getDockerVolumes'(){const _0x3ddf8b=await fetch(API_BASE+'/health/docker/volumes'),_0x19c690=await _0x3ddf8b['json']()['catch'](()=>({}));if(!_0x3ddf8b['ok'])throw new Error(_0x19c690['message']||_0x19c690['error']||'Failed\x20to\x20load\x20volumes');return _0x19c690;},async 'getActiveSessions'(){const _0x696bf=await fetch(API_BASE+'/health/sessions'),_0x31a3ec=await _0x696bf['json']()['catch'](()=>({}));if(!_0x696bf['ok'])throw new Error(_0x31a3ec['message']||_0x31a3ec['error']||'Failed\x20to\x20load\x20sessions');return _0x31a3ec;},async 'getSystemInfo'(){const _0x425264=await fetch(API_BASE+'/health/system'),_0x3b0a0d=await _0x425264['json']()['catch'](()=>({}));if(!_0x425264['ok'])throw new Error(_0x3b0a0d['message']||_0x3b0a0d['error']||'Failed\x20to\x20load\x20system\x20info');return _0x3b0a0d;},async 'stopDockerContainer'(_0x35cf04){const _0x10e0ed=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x35cf04)+'/stop',{'method':'POST'}),_0x4986f6=await _0x10e0ed['json']()['catch'](()=>({}));if(!_0x10e0ed['ok'])throw new Error(_0x4986f6['message']||_0x4986f6['error']||'Failed\x20to\x20stop\x20container');return _0x4986f6;},async 'removeDockerContainer'(_0x3d6296){const _0x54de55=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x3d6296),{'method':'DELETE'}),_0xdea527=await _0x54de55['json']()['catch'](()=>({}));if(!_0x54de55['ok'])throw new Error(_0xdea527['message']||_0xdea527['error']||'Failed\x20to\x20remove\x20container');return _0xdea527;},async 'createPasswordToken'(_0x6640e6,_0x3098fe='setup',_0x316753=![]){const _0x4b2181=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x6640e6,'type':_0x3098fe,'sendEmail':_0x316753})});if(!_0x4b2181['ok']){const _0x454bb4=await _0x4b2181['json']();throw new Error(_0x454bb4['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x4b2181['json']();},async 'getEmailConfig'(){const _0x309fd4=await fetch(API_BASE+'/password/email-config');if(!_0x309fd4['ok']){const _0x234be7=await _0x309fd4['json']();throw new Error(_0x234be7['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x309fd4['json']();},async 'updateTaskName'(_0x4db062,_0xf59155){const _0x2507dd=await fetch(API_BASE+'/tasks/'+_0x4db062,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xf59155})});if(!_0x2507dd['ok']){const _0xe34c0a=await _0x2507dd['json']();throw new Error(_0xe34c0a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x2507dd['json']();},async 'updateTaskAlias'(_0xff2c6c,_0x22947c){const _0x120b9a=await fetch(API_BASE+'/tasks/'+_0xff2c6c,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'alias':_0x22947c})});if(!_0x120b9a['ok']){const _0x560480=await _0x120b9a['json']();throw new Error(_0x560480['error']||'Failed\x20to\x20update\x20task\x20alias');}return await _0x120b9a['json']();},async 'pinTask'(_0x521c69,_0x5631e6,_0x3b8685=null){if(!_0x521c69)throw new Error('Task\x20ID\x20is\x20required');const _0x47e3f1={'pinned':_0x5631e6};_0x3b8685&&_0x3b8685['length']>0x0&&(_0x47e3f1['additionalTaskIds']=_0x3b8685);const _0x10ea3e=await fetch(API_BASE+'/tasks/'+_0x521c69+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x47e3f1)});if(!_0x10ea3e['ok']){const _0x284237=await _0x10ea3e['json']();throw new Error(_0x284237['error']||'Failed\x20to\x20pin\x20task');}return await _0x10ea3e['json']();},async 'setTaskWinner'(_0xcecc81,_0x24a39f,_0x5dc515=[]){if(!_0xcecc81)throw new Error('Task\x20ID\x20is\x20required');const _0x4e8b1d=await fetch(API_BASE+'/tasks/'+_0xcecc81+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x24a39f,'siblings':_0x5dc515})});if(!_0x4e8b1d['ok']){const _0x231630=await _0x4e8b1d['json']();throw new Error(_0x231630['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x4e8b1d['json']();},async 'setTaskLoser'(_0x478936,_0x185710){if(!_0x478936)throw new Error('Task\x20ID\x20is\x20required');const _0x14f7fe=await fetch(API_BASE+'/tasks/'+_0x478936+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x185710})});if(!_0x14f7fe['ok']){const _0x439bb6=await _0x14f7fe['json']();throw new Error(_0x439bb6['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x14f7fe['json']();},async 'createTaskGroup'(_0x401623){const _0x1a2207=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x401623)});if(!_0x1a2207['ok']){const _0x369ec8=await _0x1a2207['json']();throw new Error(_0x369ec8['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x1a2207['json']();},async 'getTaskGroups'(_0xd355b8={}){const _0x4e292a=new URLSearchParams();if(_0xd355b8['userId'])_0x4e292a['set']('userId',String(_0xd355b8['userId']));if(_0xd355b8['status'])_0x4e292a['set']('status',String(_0xd355b8['status']));if(_0xd355b8['limit'])_0x4e292a['set']('limit',String(_0xd355b8['limit']));const _0x21e123=API_BASE+'/tasks/groups'+(_0x4e292a['toString']()?'?'+_0x4e292a['toString']():''),_0x3c8970=await fetch(_0x21e123);if(!_0x3c8970['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x3c8970['json']();},async 'getTaskGroup'(_0xe80bfa){const _0x13987a=await fetch(API_BASE+'/tasks/groups/'+_0xe80bfa);if(!_0x13987a['ok']){const _0x29b402=await _0x13987a['json']();throw new Error(_0x29b402['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x13987a['json']();},async 'updateTaskGroup'(_0x8fb81a,_0x1fbfa8,_0x452acd){const _0x170997=await fetch(API_BASE+'/tasks/'+_0x8fb81a+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x1fbfa8,'groupIndex':_0x452acd})});if(!_0x170997['ok']){const _0x259735=await _0x170997['json']();throw new Error(_0x259735['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x170997['json']();},async 'removeTaskFromGroup'(_0x21c0fe){return this['updateTaskGroup'](_0x21c0fe,null,null);},async 'deleteTaskGroup'(_0x14b3c9,_0x3d82bb=![]){const _0x43ad33=_0x3d82bb?'?deleteTasks=true':'',_0x79a99=await fetch(API_BASE+'/tasks/groups/'+_0x14b3c9+_0x43ad33,{'method':'DELETE'});if(!_0x79a99['ok']){const _0x2ee463=await _0x79a99['json']();throw new Error(_0x2ee463['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3a3afb,_0x1797dd){const _0x5041c3=await fetch(API_BASE+'/tasks/groups/'+_0x3a3afb+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1797dd})});if(!_0x5041c3['ok']){const _0x28ffb7=await _0x5041c3['json']();throw new Error(_0x28ffb7['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5041c3['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3c7a52){if(!_0x3c7a52)throw new Error('Task\x20ID\x20is\x20required');const _0x28bbd8=await fetch(API_BASE+'/tasks/'+_0x3c7a52+'/comments');if(!_0x28bbd8['ok']){const _0x59550e=await _0x28bbd8['json']()['catch'](()=>({}));throw new Error(_0x59550e['error']||'Failed\x20to\x20get\x20comments');}return await _0x28bbd8['json']();},async 'addComment'(_0x437151,_0x21b1bc){if(!_0x437151)throw new Error('Task\x20ID\x20is\x20required');if(!_0x21b1bc)throw new Error('Comment\x20content\x20is\x20required');const _0x8c839=await fetch(API_BASE+'/tasks/'+_0x437151+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x21b1bc})});if(!_0x8c839['ok']){const _0x2dc437=await _0x8c839['json']()['catch'](()=>({}));throw new Error(_0x2dc437['error']||'Failed\x20to\x20add\x20comment');}return await _0x8c839['json']();},async 'updateComment'(_0x5dbdaa,_0x3ad2d1,_0x2d0839){if(!_0x5dbdaa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3ad2d1)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x2d0839)throw new Error('Comment\x20content\x20is\x20required');const _0x4e8054=await fetch(API_BASE+'/tasks/'+_0x5dbdaa+'/comments/'+_0x3ad2d1,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2d0839})});if(!_0x4e8054['ok']){const _0x7d12d6=await _0x4e8054['json']()['catch'](()=>({}));throw new Error(_0x7d12d6['error']||'Failed\x20to\x20update\x20comment');}return await _0x4e8054['json']();},async 'deleteComment'(_0x4b44c2,_0x427f94){if(!_0x4b44c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x427f94)throw new Error('Comment\x20ID\x20is\x20required');const _0x5313c5=await fetch(API_BASE+'/tasks/'+_0x4b44c2+'/comments/'+_0x427f94,{'method':'DELETE'});if(!_0x5313c5['ok']){const _0x53dd5e=await _0x5313c5['json']()['catch'](()=>({}));throw new Error(_0x53dd5e['error']||'Failed\x20to\x20delete\x20comment');}return await _0x5313c5['json']();},async 'createObjective'(_0x337ca4){const _0x37f6ba={'objective':!![],'name':_0x337ca4['name']||'','environment':_0x337ca4['environment']||null,'agents':_0x337ca4['agents']||[],'branches':_0x337ca4['branches']||{},'isPinned':_0x337ca4['isPinned']||![],'parentObjectiveId':_0x337ca4['parentObjectiveId']||null,'env_vars':_0x337ca4['envVars']||{},'parameters':{'instructions':_0x337ca4['instructions']||''},'files':_0x337ca4['files']||[],'jira':_0x337ca4['jira']||null};return this['createTask'](_0x37f6ba);},async 'updateObjective'(_0x17b8be,_0x3f9d64,_0x269a97=[],_0x2d6dad=[]){let _0x37c493,_0x1adde0={};const _0x25847d={..._0x3f9d64};_0x2d6dad&&_0x2d6dad['length']>0x0&&(_0x25847d['removeAttachments']=_0x2d6dad);if(_0x269a97&&_0x269a97['length']>0x0){const _0x3ba461=new FormData();for(const [_0x4c057e,_0x594da2]of Object['entries'](_0x25847d)){if(_0x594da2==null)continue;typeof _0x594da2==='object'?_0x3ba461['append'](_0x4c057e,JSON['stringify'](_0x594da2)):_0x3ba461['append'](_0x4c057e,String(_0x594da2));}for(const _0x210a4a of _0x269a97){_0x3ba461['append']('attachments',_0x210a4a);}_0x37c493=_0x3ba461;}else _0x1adde0['Content-Type']='application/json',_0x37c493=JSON['stringify'](_0x25847d);const _0x132bef=await fetch(API_BASE+'/tasks/'+_0x17b8be,{'method':'PATCH','headers':_0x1adde0,'body':_0x37c493});if(!_0x132bef['ok']){const _0x4b2877=await _0x132bef['json']();throw new Error(_0x4b2877['error']||'Failed\x20to\x20update\x20objective');}return await _0x132bef['json']();},async 'deleteObjective'(_0x41969a){return this['deleteTask'](_0x41969a);},async 'launchObjective'(_0x48f54e,_0x4e93a9={}){const _0x54f6c4=await fetch(API_BASE+'/tasks/'+_0x48f54e+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e93a9)});if(!_0x54f6c4['ok']){const _0x18547a=await _0x54f6c4['json']();throw new Error(_0x18547a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x54f6c4['json']();},async 'getObjectiveAttachments'(_0xc81c64){return this['getTaskAttachments'](_0xc81c64);},async 'createJudgeTask'({environment:_0x12ff16,judgeAgent:_0x424319,groupId:_0x40fe9e,taskIds:_0x3e36af,judgeCustomInstructions:_0xb8b9d,isPinned:_0x3d3686}){const _0x74dbb6=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x12ff16,'judgeAgent':_0x424319,'groupId':_0x40fe9e,'taskIds':_0x3e36af,'judgeCustomInstructions':_0xb8b9d,'isPinned':_0x3d3686})});if(!_0x74dbb6['ok']){const _0x4abc96=await _0x74dbb6['json']();throw new Error(_0x4abc96['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x74dbb6['json']();},async 'getJudgeTasks'(_0x4fa7ad){const _0x188953=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x4fa7ad));if(!_0x188953['ok']){const _0x5bbebf=await _0x188953['json']();throw new Error(_0x5bbebf['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x188953['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x209c0a,_0x104141,_0x4b2972=''){const _0x13380b=await fetch(API_BASE+'/tasks/'+_0x209c0a+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x104141,'customPreamble':_0x4b2972})});if(!_0x13380b['ok']){const _0xbb208d=await _0x13380b['json']();throw new Error(_0xbb208d['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x13380b['json']();},async 'getJiraConfig'(){const _0x2d5be5=await fetch(API_BASE+'/jira/config');if(!_0x2d5be5['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x2d5be5['json']();},async 'getJiraIssue'(_0x3de965){const _0x127e6a=await fetch(API_BASE+'/jira/issues/'+_0x3de965);if(!_0x127e6a['ok']){const _0x20e2e5=await _0x127e6a['json']()['catch'](()=>({}));throw new Error(_0x20e2e5['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x127e6a['statusText']);}return await _0x127e6a['json']();},async 'searchJiraIssues'(_0x1ce0e1,_0x1857e5=0x14){const _0x53dee2=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x1ce0e1,'maxResults':_0x1857e5})});if(!_0x53dee2['ok']){const _0x1ea355=await _0x53dee2['json']()['catch'](()=>({}));throw new Error(_0x1ea355['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x53dee2['statusText']);}return await _0x53dee2['json']();},async 'postJiraComment'(_0x53f0ab,_0x57f6bf){const _0x4fd86c=await fetch(API_BASE+'/jira/issues/'+_0x53f0ab+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x57f6bf})});if(!_0x4fd86c['ok']){const _0x3cd6eb=await _0x4fd86c['json']()['catch'](()=>({}));throw new Error(_0x3cd6eb['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x4fd86c['statusText']);}return await _0x4fd86c['json']();},async 'getJiraComments'(_0x1a3a2d){const _0x56f1cb=await fetch(API_BASE+'/jira/issues/'+_0x1a3a2d+'/comments');if(!_0x56f1cb['ok']){const _0x542f64=await _0x56f1cb['json']()['catch'](()=>({}));throw new Error(_0x542f64['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x56f1cb['statusText']);}return await _0x56f1cb['json']();},async 'promptParameter'({environment:_0x53e2c1,command:_0x32b2e8,parser:parser='json'}){const _0x28a3fe=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x53e2c1,'command':_0x32b2e8,'parser':parser})});if(!_0x28a3fe['ok']){const _0x5204cd=await _0x28a3fe['json']()['catch'](()=>({}));throw new Error(_0x5204cd['message']||_0x5204cd['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x28a3fe['statusText']);}return await _0x28a3fe['json']();},async 'promptParameterStream'(_0x3aa325,_0x4fa9de){const _0x16cc03=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3aa325)});if(!_0x16cc03['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x16cc03['statusText']);const _0x2d4122=_0x16cc03['body']['getReader'](),_0xdd995f=new TextDecoder();let _0x4d61d3='';return new Promise((_0x48a540,_0x2f9e61)=>{const _0x2cb5c7=async()=>{try{const {done:_0x42b4d2,value:_0x29e39d}=await _0x2d4122['read']();if(_0x42b4d2)return;_0x4d61d3+=_0xdd995f['decode'](_0x29e39d,{'stream':!![]});const _0x1c31c1=_0x4d61d3['split']('\x0a\x0a');_0x4d61d3=_0x1c31c1['pop']()||'';for(const _0x364ae5 of _0x1c31c1){if(!_0x364ae5['trim']())continue;const _0x296c57=_0x364ae5['split']('\x0a');let _0x48eaac='message',_0x34efc0='';for(const _0x1e1220 of _0x296c57){if(_0x1e1220['startsWith']('event:'))_0x48eaac=_0x1e1220['substring'](0x6)['trim']();else _0x1e1220['startsWith']('data:')&&(_0x34efc0=_0x1e1220['substring'](0x5)['trim']());}if(!_0x34efc0)continue;try{const _0x464dbf=JSON['parse'](_0x34efc0);if(_0x48eaac==='progress'&&_0x4fa9de)_0x4fa9de(_0x464dbf['stage'],_0x464dbf['message']);else{if(_0x48eaac==='result'){_0x48a540(_0x464dbf);return;}else{if(_0x48eaac==='error'){let _0x13aee8=_0x464dbf['message']||_0x464dbf['error']||'Prompt\x20command\x20failed';_0x464dbf['rawOutput']&&(_0x13aee8+='\x0a\x0aRaw\x20output:\x0a'+_0x464dbf['rawOutput']);_0x2f9e61(new Error(_0x13aee8));return;}}}}catch(_0x3bbdfb){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x3bbdfb),console['error']('Event\x20type:',_0x48eaac),console['error']('Event\x20data:',_0x34efc0),console['error']('First\x20200\x20chars:',_0x34efc0['substring'](0x0,0xc8)),_0x2f9e61(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x3bbdfb['message']+'\x0a\x0aData:\x20'+_0x34efc0['substring'](0x0,0x1f4)));return;}}_0x2cb5c7();}catch(_0x25db19){_0x2f9e61(_0x25db19);}};_0x2cb5c7();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x2b8a30){const _0x5bafde=await fetch(''+API_BASE+_0x2b8a30);if(!_0x5bafde['ok']){const _0x5687a1=await _0x5bafde['json']()['catch'](()=>({'error':_0x5bafde['statusText']})),_0x31ef76=new Error(_0x5687a1['error']||_0x5687a1['message']||_0x5bafde['statusText']);if(_0x5687a1['detail']!==undefined)_0x31ef76['detail']=_0x5687a1['detail'];throw _0x31ef76;}return await _0x5bafde['json']();},async 'post'(_0x1f0839,_0x5c91f5){const _0x2ebeaa=await fetch(''+API_BASE+_0x1f0839,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c91f5)});if(!_0x2ebeaa['ok']){const _0x537c19=await _0x2ebeaa['json']()['catch'](()=>({'error':_0x2ebeaa['statusText']})),_0x4548e5=new Error(_0x537c19['error']||_0x537c19['message']||_0x2ebeaa['statusText']);if(_0x537c19['detail']!==undefined)_0x4548e5['detail']=_0x537c19['detail'];throw _0x4548e5;}return await _0x2ebeaa['json']();},async 'put'(_0x176a3f,_0x1639a3){const _0x3df903=await fetch(''+API_BASE+_0x176a3f,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1639a3)});if(!_0x3df903['ok']){const _0x255c27=await _0x3df903['json']()['catch'](()=>({'error':_0x3df903['statusText']})),_0x211135=new Error(_0x255c27['error']||_0x255c27['message']||_0x3df903['statusText']);if(_0x255c27['detail']!==undefined)_0x211135['detail']=_0x255c27['detail'];throw _0x211135;}return await _0x3df903['json']();},async 'delete'(_0x2257be,_0x2a49ee){const _0x53beec={'method':'DELETE'};_0x2a49ee&&(_0x53beec['headers']={'Content-Type':'application/json'},_0x53beec['body']=JSON['stringify'](_0x2a49ee));const _0x47dfda=await fetch(''+API_BASE+_0x2257be,_0x53beec);if(!_0x47dfda['ok']){const _0x107e96=await _0x47dfda['json']()['catch'](()=>({'error':_0x47dfda['statusText']})),_0x3f364a=new Error(_0x107e96['error']||_0x107e96['message']||_0x47dfda['statusText']);if(_0x107e96['detail']!==undefined)_0x3f364a['detail']=_0x107e96['detail'];throw _0x3f364a;}return await _0x47dfda['json']();},async 'getSkills'(){const _0x2a0f67=await fetch(API_BASE+'/skills');if(!_0x2a0f67['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x2a0f67['statusText']);return await _0x2a0f67['json']();},async 'getSkill'(_0xb35db8){const _0x37d8a5=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xb35db8));if(!_0x37d8a5['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x37d8a5['statusText']);return await _0x37d8a5['json']();},async 'createSkill'(_0x558093){const _0x201250=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558093)});if(!_0x201250['ok']){const _0x583811=await _0x201250['json']()['catch'](()=>({'error':_0x201250['statusText']})),_0x5a8779=new Error(_0x583811['error']||_0x583811['message']||_0x201250['statusText']);if(_0x583811['detail']!==undefined)_0x5a8779['detail']=_0x583811['detail'];throw _0x5a8779;}return await _0x201250['json']();},async 'updateSkill'(_0x2ac04c,_0x84eb56){const _0xda524b=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ac04c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x84eb56)});if(!_0xda524b['ok']){const _0x46ea7f=await _0xda524b['json']()['catch'](()=>({'error':_0xda524b['statusText']})),_0x23bdce=new Error(_0x46ea7f['error']||_0x46ea7f['message']||_0xda524b['statusText']);if(_0x46ea7f['detail']!==undefined)_0x23bdce['detail']=_0x46ea7f['detail'];throw _0x23bdce;}return await _0xda524b['json']();},async 'deleteSkill'(_0x5a9909){const _0x3a23d0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5a9909),{'method':'DELETE'});if(!_0x3a23d0['ok']){const _0x2c1b12=await _0x3a23d0['json']()['catch'](()=>({'error':_0x3a23d0['statusText']})),_0x1fd29f=new Error(_0x2c1b12['error']||_0x2c1b12['message']||_0x3a23d0['statusText']);if(_0x2c1b12['detail']!==undefined)_0x1fd29f['detail']=_0x2c1b12['detail'];throw _0x1fd29f;}return await _0x3a23d0['json']();},async 'getSkillFile'(_0x44d39b,_0x4f5ea2){const _0x3ac31f=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x44d39b)+'/files/'+_0x4f5ea2);if(!_0x3ac31f['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x3ac31f['statusText']);return await _0x3ac31f['json']();},async 'saveSkillFile'(_0x34c6e3,_0x7a40d0,_0x34400a){const _0xad0dcb=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x34c6e3)+'/files/'+_0x7a40d0,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x34400a})});if(!_0xad0dcb['ok']){const _0x18a6ee=await _0xad0dcb['json']()['catch'](()=>({'error':_0xad0dcb['statusText']})),_0x45dd41=new Error(_0x18a6ee['error']||_0x18a6ee['message']||_0xad0dcb['statusText']);if(_0x18a6ee['detail']!==undefined)_0x45dd41['detail']=_0x18a6ee['detail'];throw _0x45dd41;}return await _0xad0dcb['json']();},async 'deleteSkillFile'(_0x256a69,_0x12576d){const _0x268dcf=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x256a69)+'/files/'+_0x12576d,{'method':'DELETE'});if(!_0x268dcf['ok']){const _0x1b812e=await _0x268dcf['json']()['catch'](()=>({'error':_0x268dcf['statusText']})),_0x439e53=new Error(_0x1b812e['error']||_0x1b812e['message']||_0x268dcf['statusText']);if(_0x1b812e['detail']!==undefined)_0x439e53['detail']=_0x1b812e['detail'];throw _0x439e53;}return await _0x268dcf['json']();},async 'pullSkills'(){const _0x58a3c5=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x58a3c5['ok']){const _0x3d2ced=await _0x58a3c5['json']()['catch'](()=>({'error':_0x58a3c5['statusText']})),_0x22bc4f=new Error(_0x3d2ced['error']||_0x3d2ced['message']||_0x58a3c5['statusText']);if(_0x3d2ced['detail']!==undefined)_0x22bc4f['detail']=_0x3d2ced['detail'];throw _0x22bc4f;}return await _0x58a3c5['json']();},async 'commitSkills'(_0x4c9381,_0x13ba07={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x13ba07,_0x384936=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x4c9381,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x384936['ok']){const _0x558e7a=await _0x384936['json']()['catch'](()=>({'error':_0x384936['statusText']})),_0x368ea0=new Error(_0x558e7a['error']||_0x558e7a['message']||_0x384936['statusText']);if(_0x558e7a['detail']!==undefined)_0x368ea0['detail']=_0x558e7a['detail'];throw _0x368ea0;}return await _0x384936['json']();},async 'discardSkillsChanges'(){const _0xac7726=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0xac7726['ok']){const _0x456270=await _0xac7726['json']()['catch'](()=>({'error':_0xac7726['statusText']})),_0x56274d=new Error(_0x456270['error']||_0x456270['message']||_0xac7726['statusText']);if(_0x456270['detail']!==undefined)_0x56274d['detail']=_0x456270['detail'];throw _0x56274d;}return await _0xac7726['json']();},async 'getSkillCatalog'(){const _0x28574e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x28574e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x28574e['statusText']);return await _0x28574e['json']();},async 'getImportedSkillsRegistry'(){const _0x4f495f=await fetch(API_BASE+'/external-skills/registry');if(!_0x4f495f['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x4f495f['statusText']);return await _0x4f495f['json']();},async 'importCatalogSkill'(_0x54b6c3){const _0x3c15a1=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x54b6c3})});if(!_0x3c15a1['ok']){const _0x4002bc=await _0x3c15a1['json']()['catch'](()=>({'error':_0x3c15a1['statusText']})),_0x2f126f=new Error(_0x4002bc['error']||_0x4002bc['message']||_0x3c15a1['statusText']);if(_0x4002bc['detail']!==undefined)_0x2f126f['detail']=_0x4002bc['detail'];throw _0x2f126f;}return await _0x3c15a1['json']();},async 'importSkillFromGit'(_0x58b656,_0x489a08,_0x52169f='main',_0x286d7c=null){const _0x3b4d4b=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x58b656,'skillPath':_0x489a08,'branch':_0x52169f,'skillId':_0x286d7c})});if(!_0x3b4d4b['ok']){const _0x2c8605=await _0x3b4d4b['json']()['catch'](()=>({'error':_0x3b4d4b['statusText']})),_0x4f8bf4=new Error(_0x2c8605['error']||_0x2c8605['message']||_0x3b4d4b['statusText']);if(_0x2c8605['detail']!==undefined)_0x4f8bf4['detail']=_0x2c8605['detail'];throw _0x4f8bf4;}return await _0x3b4d4b['json']();},async 'probeMarketplace'(_0x4f0cdb,_0x54fde0='main'){const _0x57b9bc=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f0cdb,'branch':_0x54fde0})});if(!_0x57b9bc['ok']){const _0x33d0fe=await _0x57b9bc['json']()['catch'](()=>({'error':_0x57b9bc['statusText']})),_0x43ccdb=new Error(_0x33d0fe['error']||_0x33d0fe['message']||_0x57b9bc['statusText']);if(_0x33d0fe['detail']!==undefined)_0x43ccdb['detail']=_0x33d0fe['detail'];throw _0x43ccdb;}return await _0x57b9bc['json']();},async 'importMarketplaceBundle'(_0x472381,_0x35fce6,_0x5415f9,_0x5f307b=null){const _0x18ed18=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x472381,'branch':_0x35fce6,'bundleId':_0x5415f9,'selectedSkills':_0x5f307b})});if(!_0x18ed18['ok']){const _0x43aac0=await _0x18ed18['json']()['catch'](()=>({'error':_0x18ed18['statusText']})),_0x5b7d57=new Error(_0x43aac0['error']||_0x43aac0['message']||_0x18ed18['statusText']);if(_0x43aac0['detail']!==undefined)_0x5b7d57['detail']=_0x43aac0['detail'];throw _0x5b7d57;}return await _0x18ed18['json']();},async 'importSkillFromFolder'(_0x17d74c,_0x5a9d4c=null){const _0x518326=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x17d74c,'skillId':_0x5a9d4c})});if(!_0x518326['ok']){const _0x266cc=await _0x518326['json']()['catch'](()=>({'error':_0x518326['statusText']})),_0x395c66=new Error(_0x266cc['error']||_0x266cc['message']||_0x518326['statusText']);if(_0x266cc['detail']!==undefined)_0x395c66['detail']=_0x266cc['detail'];throw _0x395c66;}return await _0x518326['json']();},async 'importSkillFromNpm'(_0xf8795f,_0x2bfb1c='latest',_0x583bda=null,_0x37d348=null){const _0x4ef937=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0xf8795f,'version':_0x2bfb1c,'skillId':_0x583bda,'registry':_0x37d348})});if(!_0x4ef937['ok']){const _0x214863=await _0x4ef937['json']()['catch'](()=>({'error':_0x4ef937['statusText']})),_0x9dfbd6=new Error(_0x214863['error']||_0x214863['message']||_0x4ef937['statusText']);if(_0x214863['detail']!==undefined)_0x9dfbd6['detail']=_0x214863['detail'];throw _0x9dfbd6;}return await _0x4ef937['json']();},async 'checkSkillUpdates'(_0x16c78d){const _0x63f077=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x16c78d)+'/check-updates',{'method':'POST'});if(!_0x63f077['ok']){const _0x4d4395=await _0x63f077['json']()['catch'](()=>({'error':_0x63f077['statusText']})),_0x361254=new Error(_0x4d4395['error']||_0x4d4395['message']||_0x63f077['statusText']);if(_0x4d4395['detail']!==undefined)_0x361254['detail']=_0x4d4395['detail'];throw _0x361254;}return await _0x63f077['json']();},async 'updateExternalSkill'(_0x496afc){const _0x3c73b0=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x496afc)+'/update',{'method':'POST'});if(!_0x3c73b0['ok']){const _0x4f43ee=await _0x3c73b0['json']()['catch'](()=>({'error':_0x3c73b0['statusText']})),_0x2438d8=new Error(_0x4f43ee['error']||_0x4f43ee['message']||_0x3c73b0['statusText']);if(_0x4f43ee['detail']!==undefined)_0x2438d8['detail']=_0x4f43ee['detail'];throw _0x2438d8;}return await _0x3c73b0['json']();},async 'updateSkillFlags'(_0x14b4e6,_0x2c06ba){const _0x3a5d81=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x14b4e6)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2c06ba})});if(!_0x3a5d81['ok']){const _0x4d36fb=await _0x3a5d81['json']()['catch'](()=>({'error':_0x3a5d81['statusText']})),_0x5a9159=new Error(_0x4d36fb['error']||_0x4d36fb['message']||_0x3a5d81['statusText']);if(_0x4d36fb['detail']!==undefined)_0x5a9159['detail']=_0x4d36fb['detail'];throw _0x5a9159;}return await _0x3a5d81['json']();},async 'removeFromImportedRegistry'(_0x32a261){const _0x567b30=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x32a261)+'/registry',{'method':'DELETE'});if(!_0x567b30['ok']){const _0x403f65=await _0x567b30['json']()['catch'](()=>({'error':_0x567b30['statusText']})),_0x3cb009=new Error(_0x403f65['error']||_0x403f65['message']||_0x567b30['statusText']);if(_0x403f65['detail']!==undefined)_0x3cb009['detail']=_0x403f65['detail'];throw _0x3cb009;}return await _0x567b30['json']();},async 'getTeams'(){const _0x200e5a=await fetch(API_BASE+'/teams');if(!_0x200e5a['ok']){const _0x9b60b1=await _0x200e5a['json']()['catch'](()=>({'message':_0x200e5a['statusText']}));throw new Error(_0x9b60b1['message']||'Failed\x20to\x20get\x20teams');}return await _0x200e5a['json']();},async 'getTeam'(_0x2346ca){const _0x369e18=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2346ca));if(!_0x369e18['ok']){const _0x372239=await _0x369e18['json']()['catch'](()=>({'message':_0x369e18['statusText']}));throw new Error(_0x372239['message']||'Failed\x20to\x20get\x20team');}return await _0x369e18['json']();},async 'createTeam'(_0x36685b){const _0x79b209=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36685b)});if(!_0x79b209['ok']){const _0x457d41=await _0x79b209['json']()['catch'](()=>({'message':_0x79b209['statusText']}));throw new Error(_0x457d41['message']||'Failed\x20to\x20create\x20team');}return await _0x79b209['json']();},async 'updateTeam'(_0x40dced,_0x192330){const _0x2a7036=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x40dced),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x192330)});if(!_0x2a7036['ok']){const _0x1771cf=await _0x2a7036['json']()['catch'](()=>({'message':_0x2a7036['statusText']}));throw new Error(_0x1771cf['message']||'Failed\x20to\x20update\x20team');}return await _0x2a7036['json']();},async 'deleteTeam'(_0x1dc369){const _0x1a3be6=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1dc369),{'method':'DELETE'});if(!_0x1a3be6['ok']){const _0x3c6ecb=await _0x1a3be6['json']()['catch'](()=>({'message':_0x1a3be6['statusText']}));throw new Error(_0x3c6ecb['message']||'Failed\x20to\x20delete\x20team');}return await _0x1a3be6['json']();},async 'addTeamMember'(_0x47a7d0,_0xcc754c){const _0x4ee2ab=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x47a7d0)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0xcc754c})});if(!_0x4ee2ab['ok']){const _0xa790b7=await _0x4ee2ab['json']()['catch'](()=>({'message':_0x4ee2ab['statusText']}));throw new Error(_0xa790b7['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x4ee2ab['json']();},async 'removeTeamMember'(_0x1ba059,_0x5e525d){const _0x2339bf=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1ba059)+'/members/'+encodeURIComponent(_0x5e525d),{'method':'DELETE'});if(!_0x2339bf['ok']){const _0x1b8c61=await _0x2339bf['json']()['catch'](()=>({'message':_0x2339bf['statusText']}));throw new Error(_0x1b8c61['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x2339bf['json']();},async 'getBindings'(_0x1d65d4={}){const _0x579939=new URLSearchParams();if(_0x1d65d4['resource_type'])_0x579939['set']('resource_type',_0x1d65d4['resource_type']);if(_0x1d65d4['resource_id'])_0x579939['set']('resource_id',_0x1d65d4['resource_id']);if(_0x1d65d4['subject_type'])_0x579939['set']('subject_type',_0x1d65d4['subject_type']);if(_0x1d65d4['subject_id'])_0x579939['set']('subject_id',_0x1d65d4['subject_id']);const _0x321410=_0x579939['toString'](),_0x582e78=await fetch(API_BASE+'/bindings'+(_0x321410?'?'+_0x321410:''));if(!_0x582e78['ok']){const _0x3af077=await _0x582e78['json']()['catch'](()=>({'message':_0x582e78['statusText']}));throw new Error(_0x3af077['message']||'Failed\x20to\x20get\x20bindings');}return await _0x582e78['json']();},async 'createBinding'(_0x393921){const _0x31776f=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x393921)});if(!_0x31776f['ok']){const _0x2c5ec5=await _0x31776f['json']()['catch'](()=>({'message':_0x31776f['statusText']}));throw new Error(_0x2c5ec5['message']||'Failed\x20to\x20create\x20binding');}return await _0x31776f['json']();},async 'updateBinding'(_0x111b3e,_0x55bbff){const _0x59bcb6=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x111b3e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x55bbff)});if(!_0x59bcb6['ok']){const _0x84cba0=await _0x59bcb6['json']()['catch'](()=>({'message':_0x59bcb6['statusText']}));throw new Error(_0x84cba0['message']||'Failed\x20to\x20update\x20binding');}return await _0x59bcb6['json']();},async 'deleteBinding'(_0x28c718){const _0x46a9bb=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x28c718),{'method':'DELETE'});if(!_0x46a9bb['ok']){const _0x382d8c=await _0x46a9bb['json']()['catch'](()=>({'message':_0x46a9bb['statusText']}));throw new Error(_0x382d8c['message']||'Failed\x20to\x20delete\x20binding');}return await _0x46a9bb['json']();},async 'getRoleDefinitions'(){const _0x458e46=await fetch(API_BASE+'/roles');if(!_0x458e46['ok']){const _0x305923=await _0x458e46['json']()['catch'](()=>({'message':_0x458e46['statusText']}));throw new Error(_0x305923['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x458e46['json']();},async 'getRoleDefinition'(_0x3e0f8d){const _0x214107=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3e0f8d));if(!_0x214107['ok']){const _0x43fb52=await _0x214107['json']()['catch'](()=>({'message':_0x214107['statusText']}));throw new Error(_0x43fb52['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x214107['json']();},async 'createRoleDefinition'(_0x1084bc){const _0x5bae4a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1084bc)});if(!_0x5bae4a['ok']){const _0x106654=await _0x5bae4a['json']()['catch'](()=>({'message':_0x5bae4a['statusText']}));throw new Error(_0x106654['message']||_0x106654['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x5bae4a['json']();},async 'updateRoleDefinition'(_0x58354a,_0x30e8dd){const _0x28c77c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x58354a),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x30e8dd)});if(!_0x28c77c['ok']){const _0x102a4b=await _0x28c77c['json']()['catch'](()=>({'message':_0x28c77c['statusText']}));throw new Error(_0x102a4b['message']||_0x102a4b['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x28c77c['json']();},async 'deleteRoleDefinition'(_0x3dbbf2){const _0x5b2c13=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3dbbf2),{'method':'DELETE'});if(!_0x5b2c13['ok']){const _0x5f3a1a=await _0x5b2c13['json']()['catch'](()=>({'message':_0x5b2c13['statusText']}));throw new Error(_0x5f3a1a['message']||_0x5f3a1a['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x5b2c13['json']();},async 'getAvailablePermissions'(){const _0x23e151=await fetch(API_BASE+'/roles/available-permissions');if(!_0x23e151['ok']){const _0x49531e=await _0x23e151['json']()['catch'](()=>({'message':_0x23e151['statusText']}));throw new Error(_0x49531e['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x23e151['json']();},async 'getGitProviderAllowedTeams'(_0x3f725e){const _0x523ce5=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3f725e)+'/allowed-teams');if(!_0x523ce5['ok']){const _0x45a815=await _0x523ce5['json']()['catch'](()=>({'message':_0x523ce5['statusText']}));throw new Error(_0x45a815['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x523ce5['json']();},async 'setGitProviderAllowedTeams'(_0x2fbba2,_0x1c065d){const _0x22d813=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2fbba2)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x1c065d})});if(!_0x22d813['ok']){const _0xa7673b=await _0x22d813['json']()['catch'](()=>({'message':_0x22d813['statusText']}));throw new Error(_0xa7673b['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x22d813['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x366235=toastState['baseBottom'];toastState['toasts']['forEach'](_0x1697c2=>{_0x1697c2['el']['style']['bottom']=_0x366235+'px';const _0x32a47f=_0x1697c2['el']['offsetHeight']||toastState['defaultHeight'];_0x366235+=_0x32a47f+toastState['gap'];});});}function removeToastById(_0x3f98d7){const _0x24889d=toastState['toasts']['findIndex'](_0x14ddfd=>_0x14ddfd['id']===_0x3f98d7);if(_0x24889d===-0x1)return;const _0xbd4e0b=toastState['toasts'][_0x24889d];if(_0xbd4e0b['timeoutId'])clearTimeout(_0xbd4e0b['timeoutId']);_0xbd4e0b['el']['classList']['remove']('show'),setTimeout(()=>_0xbd4e0b['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x24889d,0x1),repositionAllToasts();}function registerToast(_0x5346b7){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x5346b7),repositionAllToasts(),_0x5346b7['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x3770a1){if(_0x3770a1===null||_0x3770a1===undefined)return'';return String(_0x3770a1)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x326698,_0x271327){if(_0x326698&&typeof _0x326698==='object'&&!Array['isArray'](_0x326698))return{'code':typeof _0x326698['text']==='string'?_0x326698['text']:'','language':typeof _0x326698['lang']==='string'?_0x326698['lang']:''};return{'code':typeof _0x326698==='string'?_0x326698:'','language':typeof _0x271327==='string'?_0x271327:''};}function buildMermaidBlock(_0xa8de97){const _0xd0a292=String(_0xa8de97||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0xd0a292))+'\x22>'+escapeHtmlValue(_0xd0a292)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x41070f=new marked['Renderer'](),_0x10a4bd=_0x41070f['code']['bind'](_0x41070f);return _0x41070f['code']=function(_0x347302,_0x1e563c,..._0x448620){const {code:_0x149472,language:_0x3b06fe}=getMarkdownCodeBlockPayload(_0x347302,_0x1e563c),_0x1610bc=String(_0x3b06fe||'')['trim']()['toLowerCase']();if(_0x1610bc==='mermaid')return buildMermaidBlock(_0x149472);const _0x4913ce=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x4913ce&&_0x1610bc)try{const _0x43166b=_0x4913ce['getLanguage'](_0x1610bc)?_0x1610bc:'plaintext',_0x45233f=_0x4913ce['highlight'](_0x149472,{'language':_0x43166b})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1610bc)+'\x22>'+_0x45233f+'</code></pre>';}catch(_0x5d832e){console['error']('Syntax\x20highlighting\x20error:',_0x5d832e);}return _0x10a4bd(_0x347302,_0x1e563c,..._0x448620);},sharedMarkedRenderer=_0x41070f,_0x41070f;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x569203=window['mermaid'];if(!_0x569203||typeof _0x569203['initialize']!=='function')return _0x569203||null;return _0x569203['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x569203;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x32bce5,_0x185511)=>{const _0xecb45d=()=>_0x32bce5(configureMermaidInstance()),_0x52c4aa=()=>{mermaidLoadPromise=null,_0x185511(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x200c35=document['getElementById'](MERMAID_SCRIPT_ID);!_0x200c35&&(_0x200c35=document['createElement']('script'),_0x200c35['id']=MERMAID_SCRIPT_ID,_0x200c35['src']=MERMAID_SCRIPT_SRC,_0x200c35['async']=!![],document['head']['appendChild'](_0x200c35));if(window['mermaid']){_0xecb45d();return;}_0x200c35['addEventListener']('load',_0xecb45d,{'once':!![]}),_0x200c35['addEventListener']('error',_0x52c4aa,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x717ac2){const _0x43115b=_0x717ac2['getAttribute']('data-mermaid-source');if(!_0x43115b)return null;let _0x2ace42=_0x43115b;try{_0x2ace42=decodeURIComponent(_0x43115b);}catch{}return _0x717ac2['textContent']=_0x2ace42,_0x717ac2['removeAttribute']('data-processed'),_0x717ac2['removeAttribute']('aria-roledescription'),_0x717ac2['removeAttribute']('role'),_0x717ac2['removeAttribute']('aria-label'),_0x2ace42;}function collectMermaidNodes(_0x521399,_0x357a90){if(!(_0x521399 instanceof Element))return;_0x521399['matches']('.mermaid[data-mermaid-source]')&&_0x357a90['add'](_0x521399),_0x521399['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x44c8cd=>{_0x357a90['add'](_0x44c8cd);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x12a129=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x17b378=>setTimeout(_0x17b378,0x0);_0x12a129(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x30d246=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x30d246);});});}function queueMermaidRender(_0x4795d2){const _0x58bc4a=new Set();_0x4795d2 instanceof Document||_0x4795d2 instanceof DocumentFragment?_0x4795d2['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x224b86=>_0x58bc4a['add'](_0x224b86)):collectMermaidNodes(_0x4795d2,_0x58bc4a);if(_0x58bc4a['size']===0x0)return;_0x58bc4a['forEach'](_0x34cb21=>pendingMermaidNodes['add'](_0x34cb21)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0xe44f25=Array['from'](pendingMermaidNodes)['filter'](_0x32000f=>_0x32000f['isConnected']);pendingMermaidNodes['clear']();if(_0xe44f25['length']===0x0)return;const _0xd0c15=await loadMermaid();if(!_0xd0c15)return;configureMermaidInstance();const _0x1d2a5d=getMermaidTheme();for(const _0x1f6498 of _0xe44f25){const _0x19abdb=_0x1f6498['getAttribute']('data-mermaid-source');if(!_0x19abdb)continue;const _0x4fef3c=_0x1f6498['getAttribute']('data-processed')==='true';if(_0x4fef3c&&_0x1f6498['dataset']['mermaidTheme']===_0x1d2a5d)continue;restoreMermaidSource(_0x1f6498);try{if(typeof _0xd0c15['run']==='function')await _0xd0c15['run']({'nodes':[_0x1f6498]});else typeof _0xd0c15['init']==='function'&&_0xd0c15['init'](undefined,[_0x1f6498]);_0x1f6498['dataset']['mermaidTheme']=_0x1d2a5d,delete _0x1f6498['dataset']['mermaidError'];}catch(_0x81364e){console['error']('Mermaid\x20render\x20failed:',_0x81364e),restoreMermaidSource(_0x1f6498),_0x1f6498['dataset']['mermaidError']='true',delete _0x1f6498['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x244a4b=>{_0x244a4b['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x244a4b);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x569971=>{_0x569971['forEach'](_0x149ee=>{_0x149ee['addedNodes']['forEach'](_0x3c6ea5=>{_0x3c6ea5['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3c6ea5);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x5d6ee4){const _0xc29358=new Date(_0x5d6ee4),_0x451899=new Date(),_0x1118e5=_0x451899-_0xc29358,_0x451483=Math['floor'](_0x1118e5/0x3e8),_0x4306d2=Math['floor'](_0x451483/0x3c),_0x38540a=Math['floor'](_0x4306d2/0x3c),_0x2bec07=Math['floor'](_0x38540a/0x18);if(_0x451483<0x3c)return'now';if(_0x4306d2<0x3c)return _0x4306d2+'m\x20ago';if(_0x38540a<0x18)return _0x38540a+'h\x20ago';return _0x2bec07+'d\x20ago';},'getStatusIcon'(_0x230552){switch(_0x230552){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x3415bd){switch(_0x3415bd){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0xeeae37,_0x30af5e=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x4a033a={};_0x4a033a['text/plain']=new Blob([_0xeeae37],{'type':'text/plain'});_0x30af5e&&(_0x4a033a['text/html']=new Blob([_0x30af5e],{'type':'text/html'}));const _0x416421=new ClipboardItem(_0x4a033a);return await navigator['clipboard']['write']([_0x416421]),!![];}catch(_0x441b90){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x441b90);}try{const _0x30badb=_0x3d6565=>{_0x3d6565['preventDefault'](),_0x3d6565['clipboardData']['setData']('text/plain',_0xeeae37),_0x30af5e&&_0x3d6565['clipboardData']['setData']('text/html',_0x30af5e);};document['addEventListener']('copy',_0x30badb);const _0x651e42=document['execCommand']('copy');document['removeEventListener']('copy',_0x30badb);if(_0x651e42)return!![];}catch(_0x20dc14){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x20dc14);}try{const _0x2ba4cd=document['createElement']('textarea');_0x2ba4cd['value']=_0xeeae37,_0x2ba4cd['style']['position']='fixed',_0x2ba4cd['style']['opacity']='0',_0x2ba4cd['style']['pointerEvents']='none',document['body']['appendChild'](_0x2ba4cd),_0x2ba4cd['select']();const _0x2fd85c=document['execCommand']('copy');return document['body']['removeChild'](_0x2ba4cd),_0x2fd85c;}catch(_0x259525){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x259525),![];}},'showToast'(_0x9521e3,_0x4dc6cf='info'){const _0x212a8c=getNextToastId(),_0xcc6ff9=document['createElement']('div');_0xcc6ff9['className']='toast\x20toast-'+_0x4dc6cf,_0xcc6ff9['textContent']=_0x9521e3,_0xcc6ff9['dataset']['toastId']=_0x212a8c,document['body']['appendChild'](_0xcc6ff9);const _0x2aaee5=_0x4dc6cf==='error'?0x2710:0xbb8,_0x7f5922=setTimeout(()=>{removeToastById(_0x212a8c);},_0x2aaee5),_0x36be3b={'id':_0x212a8c,'el':_0xcc6ff9,'timeoutId':_0x7f5922};return registerToast(_0x36be3b),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0xcc6ff9['classList']['add']('show');});}),_0x212a8c;},'showError'(_0x224ab9){console['error'](_0x224ab9);const _0x266e15=typeof _0x224ab9==='string'?_0x224ab9:_0x224ab9['message']||'An\x20error\x20occurred';this['showToast'](_0x266e15,'error');},'showSuccess'(_0x4b489a){this['showToast'](_0x4b489a,'success');},'capitalize'(_0x15b4ae){if(!_0x15b4ae)return'';return _0x15b4ae['charAt'](0x0)['toUpperCase']()+_0x15b4ae['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3f6e12){return escapeHtmlValue(_0x3f6e12);},'ansiToHtml'(_0x59129c){if(_0x59129c===null||_0x59129c===undefined)return'';let _0xba0c77=this['escapeHtml'](_0x59129c);const _0x5300eb={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x29c88a={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x47f3b4=0x0;return _0xba0c77=_0xba0c77['replace'](/\x1b\[([0-9;]*)m/g,(_0x39fc7c,_0x292ec8)=>{if(!_0x292ec8||_0x292ec8==='0'){const _0x343f2a='</span>'['repeat'](_0x47f3b4);return _0x47f3b4=0x0,_0x343f2a;}const _0x264908=_0x292ec8['split'](';'),_0x3ab76b=[];for(const _0x1125c of _0x264908){if(_0x1125c==='1')_0x3ab76b['push']('font-weight:bold');else{if(_0x1125c==='2')_0x3ab76b['push']('opacity:0.7');else{if(_0x1125c==='3')_0x3ab76b['push']('font-style:italic');else{if(_0x1125c==='4')_0x3ab76b['push']('text-decoration:underline');else{if(_0x1125c==='9')_0x3ab76b['push']('text-decoration:line-through');else{if(_0x5300eb[_0x1125c])_0x3ab76b['push']('color:'+_0x5300eb[_0x1125c]);else{if(_0x29c88a[_0x1125c])_0x3ab76b['push']('background-color:'+_0x29c88a[_0x1125c]);}}}}}}}if(_0x3ab76b['length']>0x0)return _0x47f3b4++,'<span\x20style=\x22'+_0x3ab76b['join'](';')+'\x22>';return'';}),_0xba0c77+='</span>'['repeat'](_0x47f3b4),_0xba0c77=_0xba0c77['replace'](/\\u001b\[([0-9;]*)m/g,(_0x1595aa,_0x162250)=>{if(!_0x162250||_0x162250==='0')return'';const _0xcd97dd=_0x162250['split'](';'),_0x27812b=[];for(const _0x307687 of _0xcd97dd){if(_0x307687==='1')_0x27812b['push']('font-weight:bold');else{if(_0x5300eb[_0x307687])_0x27812b['push']('color:'+_0x5300eb[_0x307687]);else{if(_0x29c88a[_0x307687])_0x27812b['push']('background-color:'+_0x29c88a[_0x307687]);}}}if(_0x27812b['length']>0x0)return'<span\x20style=\x22'+_0x27812b['join'](';')+'\x22>';return'';}),_0xba0c77;},'showModal'({title:_0x246cb7,content:_0x1357d2,buttons:buttons=[]}){const _0x3259d0='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x246cb7)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1357d2+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0xa0ea0c,_0x1b2fac)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0xa0ea0c['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x1b2fac+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0xa0ea0c['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x10031f=document['createElement']('div');_0x10031f['id']='utils-modal',_0x10031f['className']='modal',_0x10031f['innerHTML']=_0x3259d0,document['body']['appendChild'](_0x10031f);const _0x400525=document['getElementById']('utils-modal-close');_0x400525&&_0x400525['addEventListener']('click',()=>this['hideModal']());const _0x388296=_0x10031f['querySelectorAll']('[data-btn-index]');_0x388296['forEach'](_0x1c89a2=>{const _0x120c55=parseInt(_0x1c89a2['dataset']['btnIndex']);buttons[_0x120c55]?.['onClick']&&_0x1c89a2['addEventListener']('click',buttons[_0x120c55]['onClick']);});const _0x4e8a87=document['getElementById']('utils-modal-overlay');_0x4e8a87&&_0x4e8a87['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x5b3bea=document['getElementById']('utils-modal');_0x5b3bea&&_0x5b3bea['remove']();},'parseKeyValuePairs'(_0x3e75c4){const _0x564327={};if(!_0x3e75c4)return _0x564327;return _0x3e75c4['split'](/\r?\n/)['map'](_0x39f554=>_0x39f554['trim']())['filter'](Boolean)['forEach'](_0x173b84=>{const _0x1403ce=_0x173b84['indexOf']('=');if(_0x1403ce>0x0){const _0x2d5289=_0x173b84['slice'](0x0,_0x1403ce)['trim'](),_0x5e2590=_0x173b84['slice'](_0x1403ce+0x1)['trim']();if(_0x2d5289)_0x564327[_0x2d5289]=_0x5e2590;}}),_0x564327;},'debounce'(_0x4fb4c4,_0x10a689=0xfa){let _0x83a22a=null;return(..._0x3ba8e3)=>{clearTimeout(_0x83a22a),_0x83a22a=setTimeout(()=>_0x4fb4c4['apply'](this,_0x3ba8e3),_0x10a689);};},'formatTimestamp'(_0x5703e1){if(!_0x5703e1)return'N/A';const _0x32e98f=new Date(_0x5703e1);return _0x32e98f['toLocaleDateString']()+'\x20'+_0x32e98f['toLocaleTimeString']();},'getQueryParams'(){const _0x2e5205=new URLSearchParams(window['location']['search']),_0x4caeaf={};for(const [_0xc3f919,_0x472520]of _0x2e5205){_0x4caeaf[_0xc3f919]=_0x472520;}return _0x4caeaf;},'formatDuration'(_0xa0bc03,_0x4d0183){if(!_0xa0bc03)return'N/A';const _0x45060c=new Date(_0xa0bc03),_0x3eab29=_0x4d0183?new Date(_0x4d0183):new Date(),_0x361d37=_0x3eab29-_0x45060c;if(_0x361d37<0x0)return'0s';const _0x1a022c=Math['floor'](_0x361d37/0x3e8),_0x49bedb=Math['floor'](_0x1a022c/0x3c),_0x4c06a8=Math['floor'](_0x49bedb/0x3c),_0x40f381=Math['floor'](_0x4c06a8/0x18);if(_0x1a022c<0x3c)return _0x1a022c+'s';if(_0x49bedb<0x3c)return _0x49bedb+'m\x20'+_0x1a022c%0x3c+'s';if(_0x4c06a8<0x18)return _0x4c06a8+'h\x20'+_0x49bedb%0x3c+'m\x20'+_0x1a022c%0x3c+'s';return _0x40f381+'d\x20'+_0x4c06a8%0x18+'h\x20'+_0x49bedb%0x3c+'m';},'renderMarkdown'(_0x5827c2,_0x492143={}){if(!_0x5827c2)return'';_0x5827c2=this['rewriteAttachmentLinks'](_0x5827c2,_0x492143),_0x5827c2=this['rewriteColorSyntax'](_0x5827c2);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x5827c2,_0x492143);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x5827c2);}catch(_0x194858){return console['error']('Markdown\x20parsing\x20error:',_0x194858),this['renderMarkdownFallback'](_0x5827c2,_0x492143);}},'rewriteAttachmentLinks'(_0x158619,_0x1cf7a8={}){const _0x538b68=typeof _0x1cf7a8['resolveAttachmentUrl']==='function'?_0x1cf7a8['resolveAttachmentUrl']:_0x1cf7a8['taskId']?_0x9ee773=>API_BASE+'/tasks/'+_0x1cf7a8['taskId']+'/attachments/'+encodeURIComponent(_0x9ee773):null;if(!_0x538b68)return _0x158619;return String(_0x158619)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x33d3f3,_0x4cb653)=>{const _0xa686b=String(_0x4cb653||'')['trim']();if(!_0xa686b)return _0x33d3f3;let _0x109a98=_0xa686b;try{_0x109a98=decodeURIComponent(_0xa686b);}catch{}const _0x1733e4=_0x538b68(_0x109a98);if(!_0x1733e4)return _0x33d3f3;return']('+_0x1733e4+')';});},'rewriteColorSyntax'(_0x376e3c){if(!_0x376e3c)return _0x376e3c;return String(_0x376e3c)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0xa05a3f,_0x4d96e6,_0x4472b7)=>{const _0x493c5d=this['rewriteColorSyntax'](_0x4472b7);return'<span\x20style=\x22color:\x20'+_0x4d96e6+'\x22>'+_0x493c5d+'</span>';});},'renderMarkdownFallback'(_0x4e5045,_0x56a405={}){if(!_0x4e5045)return'';_0x4e5045=_0x4e5045['replace'](/\r\n/g,'\x0a'),_0x4e5045=_0x4e5045['replace'](/\r/g,'\x0a'),_0x4e5045=this['rewriteAttachmentLinks'](_0x4e5045,_0x56a405);let _0x474dae=this['escapeHtml'](_0x4e5045);return _0x474dae=_0x474dae['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x474dae=_0x474dae['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x474dae=_0x474dae['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x474dae=_0x474dae['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x474dae=_0x474dae['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x474dae=_0x474dae['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x474dae=_0x474dae['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x474dae=_0x474dae['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x474dae=_0x474dae['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x474dae=_0x474dae['replace'](/\n\n/g,'</p><p>'),_0x474dae=_0x474dae['replace'](/\n/g,'<br>'),'<p>'+_0x474dae+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1e4a57=new Uint8Array(0x10);crypto['getRandomValues'](_0x1e4a57),_0x1e4a57[0x6]=_0x1e4a57[0x6]&0xf|0x40,_0x1e4a57[0x8]=_0x1e4a57[0x8]&0x3f|0x80;const _0x207ccd=Array['from'](_0x1e4a57,_0xc477bb=>_0xc477bb['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x207ccd['slice'](0x0,0x8)+'-'+_0x207ccd['slice'](0x8,0xc)+'-'+_0x207ccd['slice'](0xc,0x10)+'-'+_0x207ccd['slice'](0x10,0x14)+'-'+_0x207ccd['slice'](0x14);}};export class CustomSelect{constructor(_0x237716,_0x22d6dc={}){this['nativeSelect']=_0x237716,this['options']=_0x22d6dc,this['isOpen']=![],this['selectedValue']=_0x237716['value']||'',this['searchable']=_0x22d6dc['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x302a68=document['createElement']('div');_0x302a68['className']='custom-select';const _0x3247ad=document['createElement']('div');_0x3247ad['className']='custom-select-trigger',_0x3247ad['setAttribute']('tabindex','0'),_0x3247ad['setAttribute']('role','button'),_0x3247ad['setAttribute']('aria-haspopup','listbox');const _0x1367c2=document['createElement']('span');_0x1367c2['className']='custom-select-trigger-text';const _0x2b48e1=document['createElement']('span');_0x2b48e1['className']='custom-select-arrow',_0x2b48e1['textContent']='▼',_0x3247ad['appendChild'](_0x1367c2),_0x3247ad['appendChild'](_0x2b48e1);const _0x204288=document['createElement']('div');_0x204288['className']='custom-select-dropdown',_0x204288['setAttribute']('role','listbox');if(this['searchable']){const _0x84c2c5=document['createElement']('div');_0x84c2c5['className']='custom-select-search';const _0xd8f76c=document['createElement']('input');_0xd8f76c['type']='text',_0xd8f76c['className']='custom-select-search-input',_0xd8f76c['placeholder']='Type\x20to\x20search...',_0xd8f76c['setAttribute']('aria-label','Search\x20options'),_0xd8f76c['addEventListener']('input',_0x287eee=>{this['searchQuery']=_0x287eee['target']['value']['toLowerCase'](),this['filterOptions']();}),_0xd8f76c['addEventListener']('keydown',_0x32b058=>{if(_0x32b058['key']==='Escape')_0x32b058['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x32b058['key']==='Enter'){_0x32b058['preventDefault'](),_0x32b058['stopPropagation']();const _0x450e0d=_0x204288['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x450e0d){const _0x476edb=_0x450e0d['getAttribute']('data-value');this['select'](_0x476edb);}}}}),_0x84c2c5['appendChild'](_0xd8f76c),_0x204288['appendChild'](_0x84c2c5),this['searchInput']=_0xd8f76c;}const _0x3173bc=document['createElement']('div');_0x3173bc['className']='custom-select-options',_0x204288['appendChild'](_0x3173bc),_0x302a68['appendChild'](_0x3247ad),_0x302a68['appendChild'](_0x204288),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x302a68,this['nativeSelect']),this['wrapper']=_0x302a68,this['trigger']=_0x3247ad,this['triggerText']=_0x1367c2,this['dropdown']=_0x204288,this['optionsContainer']=_0x3173bc,_0x3247ad['addEventListener']('click',()=>this['toggle']()),_0x3247ad['addEventListener']('keydown',_0x21e7b9=>this['handleKeydown'](_0x21e7b9)),document['addEventListener']('click',_0x589171=>{!_0x302a68['contains'](_0x589171['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x1b2269=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x1b2269['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x39deec=new MutationObserver(()=>{this['updateDisabledState']();});_0x39deec['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x361bcc=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x361bcc['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x13d45e=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x13d45e),this['trigger']['setAttribute']('aria-disabled',_0x13d45e?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x13d45e?'-1':'0'),_0x13d45e&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x5a3262=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x1d9f03=_0x5a3262['filter'](_0x339278=>!_0x339278['disabled']&&!_0x339278['hidden']);_0x5a3262['forEach']((_0x333e53,_0x4f7628)=>{const _0x14bac7=document['createElement']('div');_0x14bac7['className']='custom-select-option',_0x14bac7['textContent']=_0x333e53['textContent'],_0x14bac7['setAttribute']('data-value',_0x333e53['value']),_0x14bac7['setAttribute']('data-index',_0x4f7628),_0x14bac7['setAttribute']('role','option'),_0x333e53['disabled']?_0x14bac7['classList']['add']('disabled'):_0x14bac7['addEventListener']('click',()=>this['select'](_0x333e53['value'])),_0x333e53['value']===this['selectedValue']&&_0x14bac7['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x14bac7),this['allOptions']['push']({'element':_0x14bac7,'text':_0x333e53['textContent']['toLowerCase'](),'value':_0x333e53['value'],'disabled':_0x333e53['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3eea46=this['searchInput']['parentElement'];_0x1d9f03['length']>0x3?_0x3eea46['style']['display']='':_0x3eea46['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x1bfb90=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x1dbef1=>{if(!_0x1bfb90||_0x1dbef1['disabled'])_0x1dbef1['element']['style']['display']='';else{const _0x27cd29=_0x1dbef1['text']['includes'](_0x1bfb90);_0x1dbef1['element']['style']['display']=_0x27cd29?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x17dda8){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x17dda8,this['nativeSelect']['value']=_0x17dda8;const _0x527d7d=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x527d7d),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x5070f2=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x5070f2&&(this['triggerText']['textContent']=_0x5070f2['textContent'],_0x5070f2['disabled']||_0x5070f2['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x3abd76=>{_0x3abd76['getAttribute']('data-value')===this['selectedValue']?_0x3abd76['classList']['add']('selected'):_0x3abd76['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x33b53c=window['getComputedStyle'](this['dropdown']);if(_0x33b53c['position']==='fixed'){const _0x1f038=this['trigger']['getBoundingClientRect'](),_0x235e7b=parseInt(_0x33b53c['maxHeight'])||0xc8,_0x2455fc=window['innerHeight'],_0x571b08=_0x2455fc-_0x1f038['bottom'],_0x2b1b1=_0x1f038['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x375624;_0x571b08<_0x235e7b&&_0x2b1b1>_0x571b08?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x2455fc-_0x1f038['top']+'px',_0x375624=Math['min'](_0x235e7b,_0x2b1b1-0xa),this['dropdown']['style']['maxHeight']=_0x375624+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x1f038['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x375624=Math['min'](_0x235e7b,_0x571b08-0xa),this['dropdown']['style']['maxHeight']=_0x375624+'px');if(this['optionsContainer']){let _0x2056d9=_0x375624;if(this['searchInput']){const _0x2aa577=this['searchInput']['parentElement'];_0x2aa577&&(_0x2056d9-=_0x2aa577['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x2056d9)+'px';}this['dropdown']['style']['left']=_0x1f038['left']+'px',this['dropdown']['style']['width']=_0x1f038['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x171d22=this['searchInput']['parentElement'];_0x171d22&&_0x171d22['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x5964c8){if(this['nativeSelect']['disabled'])return;if(_0x5964c8['key']==='Enter'||_0x5964c8['key']==='\x20')_0x5964c8['preventDefault'](),this['toggle']();else _0x5964c8['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x48593b='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x48593b),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fe391=document['getElementById']('confirm-dialog-close'),_0x3091e2=document['getElementById']('confirm-dialog-cancel'),_0x3ce0f8=document['getElementById']('confirm-dialog-confirm'),_0x5e445d=this['_modal']['querySelector']('.modal-overlay');_0x1fe391['addEventListener']('click',()=>this['_resolve'](![])),_0x3091e2['addEventListener']('click',()=>this['_resolve'](![])),_0x3ce0f8['addEventListener']('click',()=>this['_resolve'](!![])),_0x5e445d['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x3934c7=>{if(_0x3934c7['key']==='Escape')_0x3934c7['preventDefault'](),this['_resolve'](![]);else _0x3934c7['key']==='Enter'&&(_0x3934c7['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x279099,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x2ed497=>{this['_resolvePromise']=_0x2ed497,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x279099;const _0x3d3f57=document['getElementById']('confirm-dialog-cancel'),_0x43f37f=document['getElementById']('confirm-dialog-confirm');_0x3d3f57['textContent']=cancelText,_0x43f37f['textContent']=confirmText,_0x43f37f['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x43f37f['focus']();});},'_resolve'(_0x4f72f5){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x4f72f5),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x4c19c1,_0x4b58c4={}){this['container']=_0x4c19c1,this['options']={'placeholder':_0x4b58c4['placeholder']||'Type\x20to\x20search...','maxItems':_0x4b58c4['maxItems']||0x64,'loadItems':_0x4b58c4['loadItems']||(async()=>[]),'renderItem':_0x4b58c4['renderItem']||(_0x795c74=>({'primary':String(_0x795c74),'secondary':''})),'onSelect':_0x4b58c4['onSelect']||(()=>{}),'filterItems':_0x4b58c4['filterItems']||null,'getItemValue':_0x4b58c4['getItemValue']||(_0x364307=>_0x364307),'sortItems':_0x4b58c4['sortItems']||null,'debounceMs':_0x4b58c4['debounceMs']||0xc8,'minCharsForSearch':_0x4b58c4['minCharsForSearch']||0x0,'emptyMessage':_0x4b58c4['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x4b58c4['loadingMessage']||'Loading...','preload':_0x4b58c4['preload']!==![],'searchMode':_0x4b58c4['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='×',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x131550=>this['onBlur'](_0x131550)),this['input']['addEventListener']('input',_0x54a242=>this['onInput'](_0x54a242)),this['input']['addEventListener']('keydown',_0x3783f8=>this['onKeydown'](_0x3783f8)),this['clearBtn']['addEventListener']('mousedown',_0x355a45=>{_0x355a45['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1ee654=>{_0x1ee654['preventDefault']();}),document['addEventListener']('click',_0x5b79e7=>{!this['wrapper']['contains'](_0x5b79e7['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x27aa71){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x27aa71);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x192bd3){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x4d7796){const _0x25f5ed=_0x4d7796['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x25f5ed);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x25f5ed):this['loadAndShow'](_0x25f5ed);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x304643){switch(_0x304643['key']){case'ArrowDown':_0x304643['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x304643['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x304643['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x304643['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x44227c){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x225291=this['selectedIndex']+_0x44227c;if(_0x225291>=0x0&&_0x225291<this['filteredItems']['length']){this['selectedIndex']=_0x225291,this['updateSelectionHighlight']();const _0x363af2=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x363af2[this['selectedIndex']]&&_0x363af2[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x57ece0=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x57ece0['forEach']((_0x45b5da,_0x19acde)=>{_0x45b5da['classList']['toggle']('keyboard-selected',_0x19acde===this['selectedIndex']);});}async['loadAndShow'](_0x5e9337){this['showLoading']();try{const _0x4dcc2f=await this['options']['loadItems'](_0x5e9337);if(this['options']['searchMode']==='server'){let _0x342624=_0x4dcc2f;this['options']['sortItems']&&(_0x342624=this['options']['sortItems']([..._0x4dcc2f]));this['filteredItems']=_0x342624;const _0x3ef712=this['filteredItems']['length']>=this['options']['maxItems'];_0x3ef712&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x3ef712),this['open']();}else this['allItems']=_0x4dcc2f,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x5e9337);}catch(_0x5e28ec){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x5e28ec),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x2405da){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x2405da):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x46ed42=this['filteredItems']['length']>=this['options']['maxItems'];_0x46ed42&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x46ed42),this['open']();}['renderItems'](_0x304e8c){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x2b8413,_0x55ef33)=>{const _0x39b77d=document['createElement']('div');_0x39b77d['className']='autocomplete-select-item',_0x39b77d['setAttribute']('role','option'),_0x39b77d['setAttribute']('data-index',_0x55ef33);const _0x54cac4=this['options']['renderItem'](_0x2b8413);let _0x2a5943='';_0x54cac4['icon']&&(_0x2a5943='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x54cac4['iconClass']||'')+'\x22>'+_0x54cac4['icon']+'</span>'),_0x39b77d['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a5943+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x54cac4['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x54cac4['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x54cac4['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x39b77d['addEventListener']('click',()=>{this['selectItem'](_0x2b8413);}),_0x39b77d['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x55ef33,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x39b77d);}),_0x304e8c?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x5c2c48){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x5c2c48)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0xc43012){this['selectedItem']=_0xc43012;const _0x56bbba=this['options']['renderItem'](_0xc43012);this['input']['value']=_0x56bbba['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0xc43012);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x4fe9c7){if(_0x4fe9c7){this['selectedItem']=_0x4fe9c7;const _0x59c168=this['options']['renderItem'](_0x4fe9c7);this['input']['value']=_0x59c168['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x2e87ef){this['allItems']=_0x2e87ef,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x393145){this['input']['placeholder']=_0x393145;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4a9aeb=null){const _0x403b78=document['getElementById']('admin-menu-container'),_0x37c284=document['getElementById']('admin-menu-btn'),_0x1dc3f6=document['getElementById']('admin-menu');if(!_0x403b78||!_0x37c284||!_0x1dc3f6)return;try{!_0x4a9aeb&&(_0x4a9aeb=await API['getCurrentUser']());if(_0x4a9aeb){const _0x594397=window['Permissions'],_0x1074c9=_0x594397['hasServerPermission'](_0x4a9aeb,'*')||_0x594397['hasEnvPermission'](_0x4a9aeb,'environments:manage')||_0x594397['hasServerPermission'](_0x4a9aeb,'users:create')||_0x594397['hasTeamPermission'](_0x4a9aeb,'teams:manage')||_0x594397['hasEnvPermission'](_0x4a9aeb,'environments:view_details');if(!_0x1074c9)return;_0x403b78['hidden']=![];if(!_0x594397['hasServerPermission'](_0x4a9aeb,'*')){const _0x433daa=_0x1dc3f6['querySelectorAll']('.admin-menu-item');_0x433daa['forEach'](_0x8719d5=>{const _0x550372=_0x8719d5['querySelector']('.option-text')?.['textContent']?.['trim']();_0x550372==='Users'&&!_0x594397['hasServerPermission'](_0x4a9aeb,'users:create')&&(_0x8719d5['hidden']=!![]),_0x550372==='Skills'&&(_0x8719d5['hidden']=!![]),_0x550372==='Server\x20Settings'&&(_0x8719d5['hidden']=!![]),_0x550372==='Server\x20Administration'&&(_0x8719d5['hidden']=!![]),_0x550372==='Git\x20History'&&(_0x8719d5['hidden']=!![]),_0x550372==='Roles'&&(_0x8719d5['hidden']=!![]);});}_0x37c284['addEventListener']('click',_0x54b13d=>{_0x54b13d['stopPropagation']();const _0x28566f=document['getElementById']('actions-menu');if(_0x28566f)_0x28566f['hidden']=!![];_0x1dc3f6['hidden']=!_0x1dc3f6['hidden'];}),document['addEventListener']('click',_0x1213f1=>{!_0x1dc3f6['hidden']&&!_0x37c284['contains'](_0x1213f1['target'])&&!_0x1dc3f6['contains'](_0x1213f1['target'])&&(_0x1dc3f6['hidden']=!![]);}),document['addEventListener']('keydown',_0x379bbb=>{_0x379bbb['key']==='Escape'&&!_0x1dc3f6['hidden']&&(_0x1dc3f6['hidden']=!![]);});}}catch(_0x4a9a47){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x4a9a47['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|