@profoundlogic/coderflow-server 0.8.8 → 0.8.9
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/base-image/coder-git-credential-helper +4 -1
- package/dist/coder-server.js +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 -0
- 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 +8 -7
- package/dist/web-ui/public/docs/code/files-and-editing.md +11 -0
- package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
- package/dist/web-ui/public/environments.html +19 -7
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.css +59 -2
- 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/styles.css +20 -0
- 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 _0x3cf725=window['location']['pathname'],_0x599206=_0x3cf725['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x599206)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x599206[0x1]),_0x599206[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2a78fa={}){const _0x26d2f9=new URLSearchParams();_0x2a78fa['userId']&&_0x26d2f9['set']('userId',String(_0x2a78fa['userId']));_0x2a78fa['automation']&&_0x26d2f9['set']('automation',String(_0x2a78fa['automation']));const _0x40dae6=API_BASE+'/tasks/stats'+(_0x26d2f9['toString']()?'?'+_0x26d2f9['toString']():''),_0x5e164b=await fetch(_0x40dae6);if(!_0x5e164b['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5e164b['statusText']);return await _0x5e164b['json']();},async 'getTasks'(_0x493bf7={}){const _0x230107=new URLSearchParams();_0x493bf7['status']&&_0x230107['set']('status',String(_0x493bf7['status']));_0x493bf7['environment']&&_0x230107['set']('environment',String(_0x493bf7['environment']));_0x493bf7['automation']&&_0x230107['set']('automation',String(_0x493bf7['automation']));if(_0x493bf7['include']){const _0xa7bc56=Array['isArray'](_0x493bf7['include'])?_0x493bf7['include']['join'](','):String(_0x493bf7['include']);_0xa7bc56&&_0x230107['set']('include',_0xa7bc56);}_0x493bf7['filter']&&_0x230107['set']('filter',String(_0x493bf7['filter']));_0x493bf7['page']&&_0x230107['set']('page',String(_0x493bf7['page']));_0x493bf7['limit']&&_0x230107['set']('limit',String(_0x493bf7['limit']));_0x493bf7['userId']&&_0x230107['set']('userId',String(_0x493bf7['userId']));_0x493bf7['search']&&_0x230107['set']('search',String(_0x493bf7['search']));_0x493bf7['includeChildTasks']&&_0x230107['set']('includeChildTasks','true');const _0x52be0c=API_BASE+'/tasks'+(_0x230107['toString']()?'?'+_0x230107['toString']():''),_0x117401=await fetch(_0x52be0c);if(!_0x117401['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x117401['statusText']);return await _0x117401['json']();},async 'getAutomations'(_0x9ec220={}){const _0x40887c=new URLSearchParams();_0x9ec220['environment']&&_0x40887c['set']('environment',String(_0x9ec220['environment']));const _0x35a2fe=await fetch(API_BASE+'/api/automations'+(_0x40887c['toString']()?'?'+_0x40887c['toString']():''));if(!_0x35a2fe['ok']){const _0x4b3391=await _0x35a2fe['json']()['catch'](()=>({}));throw new Error(_0x4b3391['message']||_0x4b3391['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x35a2fe['statusText']);}return await _0x35a2fe['json']();},async 'getAutomation'(_0x28f51a){const _0x3ddc6e=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x28f51a));if(!_0x3ddc6e['ok']){const _0x390084=await _0x3ddc6e['json']()['catch'](()=>({}));throw new Error(_0x390084['message']||_0x390084['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x3ddc6e['statusText']);}return await _0x3ddc6e['json']();},async 'createAutomation'(_0x18ce27){const _0x3c6425=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x18ce27||{})});if(!_0x3c6425['ok']){const _0x3c430e=await _0x3c6425['json']()['catch'](()=>({}));throw new Error(_0x3c430e['message']||_0x3c430e['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3c6425['statusText']);}return await _0x3c6425['json']();},async 'updateAutomation'(_0x7fa90e,_0x3dc0c4){const _0x185ff4=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x7fa90e),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3dc0c4||{})});if(!_0x185ff4['ok']){const _0x123008=await _0x185ff4['json']()['catch'](()=>({}));throw new Error(_0x123008['message']||_0x123008['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x185ff4['statusText']);}return await _0x185ff4['json']();},async 'deleteAutomation'(_0x11212e){const _0x331cfb=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x11212e),{'method':'DELETE'});if(!_0x331cfb['ok']){const _0x3e9eae=await _0x331cfb['json']()['catch'](()=>({}));throw new Error(_0x3e9eae['message']||_0x3e9eae['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x331cfb['statusText']);}return await _0x331cfb['json']();},async 'triggerAutomation'(_0x1f69ed){const _0x3ef438=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1f69ed)+'/trigger',{'method':'POST'});if(!_0x3ef438['ok']){const _0x2ac5ac=await _0x3ef438['json']()['catch'](()=>({}));throw new Error(_0x2ac5ac['message']||_0x2ac5ac['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3ef438['statusText']);}return await _0x3ef438['json']();},async 'setAutomationEnabled'(_0x1d31c2,_0x4a6ea4){const _0x6d3f59=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1d31c2)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x4a6ea4})});if(!_0x6d3f59['ok']){const _0x1bb971=await _0x6d3f59['json']()['catch'](()=>({}));throw new Error(_0x1bb971['message']||_0x1bb971['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x6d3f59['statusText']);}return await _0x6d3f59['json']();},async 'getAutomationHistory'(_0x330678,_0x209182=0x32){const _0x2f3d60=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x330678)+'/history?limit='+encodeURIComponent(String(_0x209182)));if(!_0x2f3d60['ok']){const _0x12be40=await _0x2f3d60['json']()['catch'](()=>({}));throw new Error(_0x12be40['message']||_0x12be40['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x2f3d60['statusText']);}return await _0x2f3d60['json']();},async 'getTask'(_0x5b874e,_0x590c14={}){const _0x1c1efd=new URLSearchParams();if(_0x590c14['include']){const _0x2522f3=Array['isArray'](_0x590c14['include'])?_0x590c14['include']['join'](','):String(_0x590c14['include']);if(_0x2522f3)_0x1c1efd['set']('include',_0x2522f3);}const _0x1b9965=await fetch(API_BASE+'/tasks/'+_0x5b874e+(_0x1c1efd['toString']()?'?'+_0x1c1efd['toString']():''));if(!_0x1b9965['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x1b9965['statusText']);return await _0x1b9965['json']();},async 'getTaskResults'(_0x2483e5){const _0x1a66d0=await fetch(API_BASE+'/tasks/'+_0x2483e5+'/results');if(!_0x1a66d0['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x1a66d0['statusText']);return await _0x1a66d0['json']();},async 'getTaskPatches'(_0x5c4a0c){const _0x48e501=await fetch(API_BASE+'/tasks/'+_0x5c4a0c+'/patches');if(!_0x48e501['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x48e501['statusText']);return await _0x48e501['json']();},async 'getTaskAttachments'(_0x5723d8){const _0x1e9a8d=await fetch(API_BASE+'/tasks/'+_0x5723d8+'/attachments');if(!_0x1e9a8d['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x1e9a8d['statusText']);return await _0x1e9a8d['json']();},async 'uploadAttachments'(_0x120561,_0x1b9c13){const _0x11ac9b=new FormData();for(const _0x4ff65e of _0x1b9c13){_0x11ac9b['append']('attachments',_0x4ff65e);}const _0x33af24=await fetch(API_BASE+'/tasks/'+_0x120561+'/attachments',{'method':'POST','body':_0x11ac9b});if(!_0x33af24['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x33af24['statusText']);return await _0x33af24['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2ccd00=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2ccd00['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2ccd00['json']();}catch(_0x3fac95){return{'available':![],'reason':_0x3fac95['message']};}},async 'generateTaskName'(_0x588016){try{const _0x40354b=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x588016})});return await _0x40354b['json']();}catch(_0x3deb32){return{'success':![],'error':_0x3deb32['message']};}},async 'createTask'(_0x55b290){let _0x46a36d,_0x146983={};if(_0x55b290['files']&&_0x55b290['files']['length']>0x0){const _0x393182=new FormData();for(const [_0x50e4a2,_0x11259c]of Object['entries'](_0x55b290)){if(_0x50e4a2!=='files'){if(_0x11259c==null)continue;typeof _0x11259c==='object'?_0x393182['append'](_0x50e4a2,JSON['stringify'](_0x11259c)):_0x393182['append'](_0x50e4a2,String(_0x11259c));}}for(const _0x59c05d of _0x55b290['files']){_0x393182['append']('attachments',_0x59c05d);}_0x46a36d=_0x393182;}else _0x146983['Content-Type']='application/json',_0x46a36d=JSON['stringify'](_0x55b290);const _0x3af45b=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x146983,'body':_0x46a36d});if(!_0x3af45b['ok']){const _0x50dcfc=await _0x3af45b['json'](),_0x204262=new Error(_0x50dcfc['error']||'Failed\x20to\x20create\x20task:\x20'+_0x3af45b['statusText']),{message:_0x3e646c,..._0x1a578d}=_0x50dcfc;Object['assign'](_0x204262,_0x1a578d);throw _0x204262;}return await _0x3af45b['json']();},async 'createTestTask'(_0x44bc25){const _0x3c922f=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x44bc25)});if(!_0x3c922f['ok']){const _0x59c3f0=await _0x3c922f['json']();throw new Error(_0x59c3f0['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x3c922f['statusText']);}return await _0x3c922f['json']();},async 'createEphemeralTest'(_0x551218){const _0x3a14a6=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x551218)});if(!_0x3a14a6['ok']){const _0x56db92=await _0x3a14a6['json']();throw new Error(_0x56db92['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x3a14a6['statusText']);}return await _0x3a14a6['json']();},async 'createDeployTask'(_0x46ce22){const _0x3801fe=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46ce22)});if(!_0x3801fe['ok']){const _0x3fadae=await _0x3801fe['json']();throw new Error(_0x3fadae['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3801fe['statusText']);}return await _0x3801fe['json']();},async 'getEnvironments'(){const _0x3c78a9=await fetch(API_BASE+'/environments');if(!_0x3c78a9['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x3c78a9['statusText']);return await _0x3c78a9['json']();},async 'getEnvironment'(_0x5a7e48){const _0x14b3c2=await fetch(API_BASE+'/environments/'+_0x5a7e48);if(!_0x14b3c2['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x14b3c2['statusText']);return await _0x14b3c2['json']();},async 'getEnvironmentRepoHistory'(_0x1bf872,_0x199d40,_0xa369d4={}){if(!_0x1bf872||!_0x199d40)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0xae5151=new URLSearchParams();if(_0xa369d4['limit'])_0xae5151['set']('limit',String(_0xa369d4['limit']));if(_0xa369d4['offset'])_0xae5151['set']('offset',String(_0xa369d4['offset']));if(_0xa369d4['search'])_0xae5151['set']('search',String(_0xa369d4['search']));if(_0xa369d4['branch'])_0xae5151['set']('branch',String(_0xa369d4['branch']));const _0xb04b65=API_BASE+'/environments/'+encodeURIComponent(_0x1bf872)+'/repos/'+encodeURIComponent(_0x199d40)+'/git/history',_0x245574=await fetch(''+_0xb04b65+(_0xae5151['toString']()?'?'+_0xae5151['toString']():''));if(!_0x245574['ok']){const _0x5830bb=await _0x245574['json']()['catch'](()=>({}));throw new Error(_0x5830bb['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x245574['statusText']);}return await _0x245574['json']();},async 'getEnvironmentRepoCommit'(_0x134eb1,_0x23d998,_0x325271){if(!_0x134eb1||!_0x23d998||!_0x325271)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x21976c=API_BASE+'/environments/'+encodeURIComponent(_0x134eb1)+'/repos/'+encodeURIComponent(_0x23d998)+'/git/commits/'+encodeURIComponent(_0x325271),_0x32a18d=await fetch(_0x21976c);if(!_0x32a18d['ok']){const _0x259f71=await _0x32a18d['json']()['catch'](()=>({}));throw new Error(_0x259f71['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x32a18d['statusText']);}return await _0x32a18d['json']();},async 'getEnvironmentRepoBranches'(_0x18b54a,_0x54ab38){if(!_0x18b54a||!_0x54ab38)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x130ecb=API_BASE+'/environments/'+encodeURIComponent(_0x18b54a)+'/repos/'+encodeURIComponent(_0x54ab38)+'/git/branches',_0x801dc7=await fetch(_0x130ecb);if(!_0x801dc7['ok']){const _0x5bf7c8=await _0x801dc7['json']()['catch'](()=>({}));throw new Error(_0x5bf7c8['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x801dc7['statusText']);}return await _0x801dc7['json']();},async 'revertEnvironmentRepoCommit'(_0x4d28cb,_0x2a89d0,_0x5945be,_0x5b286e={}){if(!_0x4d28cb||!_0x2a89d0||!_0x5945be)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x49557a=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x4d28cb)+'/repos/'+encodeURIComponent(_0x2a89d0)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x5945be,..._0x5b286e})});if(!_0x49557a['ok']){const _0x50fa24=await _0x49557a['json']()['catch'](()=>({}));throw new Error(_0x50fa24['message']||_0x50fa24['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x49557a['statusText']);}return await _0x49557a['json']();},async 'getTemplates'(_0x222585={}){const _0x429c07=new URLSearchParams();if(_0x222585['include']){const _0xa31d26=Array['isArray'](_0x222585['include'])?_0x222585['include']['join'](','):String(_0x222585['include']);if(_0xa31d26)_0x429c07['set']('include',_0xa31d26);}const _0x31541e=await fetch(API_BASE+'/templates'+(_0x429c07['toString']()?'?'+_0x429c07['toString']():''));if(!_0x31541e['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x31541e['statusText']);return await _0x31541e['json']();},async 'getTemplatesForEnvironment'(_0x558e51,_0x1e2782={}){if(!_0x558e51)throw new Error('Environment\x20name\x20is\x20required');const _0x1b0afa=new URLSearchParams();if(_0x1e2782['include']){const _0x244f8c=Array['isArray'](_0x1e2782['include'])?_0x1e2782['include']['join'](','):String(_0x1e2782['include']);if(_0x244f8c)_0x1b0afa['set']('include',_0x244f8c);}const _0x2b361d=await fetch(API_BASE+'/templates/'+_0x558e51+(_0x1b0afa['toString']()?'?'+_0x1b0afa['toString']():''));if(!_0x2b361d['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x558e51+':\x20'+_0x2b361d['statusText']);return await _0x2b361d['json']();},async 'getTemplate'(_0x497071,_0x1e4941,_0x52e211={}){if(!_0x497071||!_0x1e4941)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x550665=new URLSearchParams();if(_0x52e211['include']){const _0x7d9676=Array['isArray'](_0x52e211['include'])?_0x52e211['include']['join'](','):String(_0x52e211['include']);if(_0x7d9676)_0x550665['set']('include',_0x7d9676);}const _0x2f5831=await fetch(API_BASE+'/templates/'+_0x497071+'/'+_0x1e4941+(_0x550665['toString']()?'?'+_0x550665['toString']():''));if(!_0x2f5831['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x2f5831['statusText']);return await _0x2f5831['json']();},async 'getTaskLogs'(_0x4c2d77,_0x338116={}){if(!_0x4c2d77)throw new Error('Task\x20ID\x20is\x20required');const _0x2edefd=new URLSearchParams();_0x338116['tail']&&_0x2edefd['set']('tail',String(_0x338116['tail']));const _0x781017=await fetch(API_BASE+'/tasks/'+_0x4c2d77+'/logs'+(_0x2edefd['toString']()?'?'+_0x2edefd['toString']():''));if(!_0x781017['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x781017['statusText']);return await _0x781017['text']();},async 'getContainers'(){const _0x1deb60=await fetch(API_BASE+'/containers');if(!_0x1deb60['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x1deb60['statusText']);return await _0x1deb60['json']();},async 'getContainer'(_0x426ebf){const _0x1f7056=await fetch(API_BASE+'/containers/'+_0x426ebf);if(!_0x1f7056['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x1f7056['statusText']);return await _0x1f7056['json']();},async 'startInteractiveContainer'(_0x13b626){const _0x185077=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13b626)});if(!_0x185077['ok']){const _0x21ef38=await _0x185077['json']()['catch'](()=>({}));throw new Error(_0x21ef38['message']||'Failed\x20to\x20start\x20container:\x20'+_0x185077['statusText']);}return await _0x185077['json']();},async 'startContainerCodeServer'(_0x2573dc,_0x232318={}){if(!_0x2573dc)throw new Error('Container\x20ID\x20is\x20required');const _0x5cc505=new URLSearchParams();_0x232318['theme']&&_0x5cc505['set']('theme',_0x232318['theme']);const _0xaf622a=await fetch(API_BASE+'/containers/'+_0x2573dc+'/code-server'+(_0x5cc505['toString']()?'?'+_0x5cc505['toString']():'')),_0x43f654=await _0xaf622a['json']()['catch'](()=>({}));if(!_0xaf622a['ok'])throw new Error(_0x43f654['message']||_0x43f654['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0xaf622a['statusText']);return _0x43f654;},async 'stopContainer'(_0x286d5f){const _0x55477c=await fetch(API_BASE+'/containers/'+_0x286d5f,{'method':'DELETE'});if(!_0x55477c['ok']){const _0x20937f=await _0x55477c['json']()['catch'](()=>({}));throw new Error(_0x20937f['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x55477c['statusText']);}return await _0x55477c['json']();},async 'stopTask'(_0x32cad8){if(!_0x32cad8)throw new Error('Task\x20ID\x20is\x20required');const _0x204c5c=await fetch(API_BASE+'/tasks/'+_0x32cad8+'/stop',{'method':'POST'});if(!_0x204c5c['ok']){const _0x50782e=await _0x204c5c['json']()['catch'](()=>({}));throw new Error(_0x50782e['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x204c5c['statusText']);}return await _0x204c5c['json']();},async 'interruptTask'(_0x27e2eb){if(!_0x27e2eb)throw new Error('Task\x20ID\x20is\x20required');const _0x50c14a=await fetch(API_BASE+'/tasks/'+_0x27e2eb+'/interrupt',{'method':'POST'});if(!_0x50c14a['ok']){const _0x4fc022=await _0x50c14a['json']()['catch'](()=>({}));throw new Error(_0x4fc022['error']||_0x4fc022['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x50c14a['statusText']);}return await _0x50c14a['json']();},async 'startTask'(_0x3d8360){if(!_0x3d8360)throw new Error('Task\x20ID\x20is\x20required');const _0x431129=await fetch(API_BASE+'/tasks/'+_0x3d8360+'/start',{'method':'POST'});if(!_0x431129['ok']){const _0x4321cc=await _0x431129['json']()['catch'](()=>({}));throw new Error(_0x4321cc['error']||'Failed\x20to\x20start\x20task:\x20'+_0x431129['statusText']);}return await _0x431129['json']();},async 'deleteTask'(_0x11af7f){if(!_0x11af7f)throw new Error('Task\x20ID\x20is\x20required');const _0x113253=await fetch(API_BASE+'/tasks/'+_0x11af7f,{'method':'DELETE'});if(!_0x113253['ok']){const _0x212e89=await _0x113253['json']()['catch'](()=>({}));throw new Error(_0x212e89['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x113253['statusText']);}return await _0x113253['json']();},async 'refreshTasksFromDisk'(){const _0x550980=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x550980['ok']){const _0xe7c612=await _0x550980['json']()['catch'](()=>({}));throw new Error(_0xe7c612['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x550980['statusText']);}return await _0x550980['json']();},async 'approveTask'(_0x20e537,_0x48347c={}){if(!_0x20e537)throw new Error('Task\x20ID\x20is\x20required');const _0x458e56={'commit_message':_0x48347c['commit_message']||'','pull':_0x48347c['pull']??![],'push':_0x48347c['push']??![],'conflict_strategy':_0x48347c['conflict_strategy']||'rebase'};_0x48347c['new_branch']&&(_0x458e56['new_branch']=_0x48347c['new_branch']);const _0x296163=await fetch(API_BASE+'/tasks/'+_0x20e537+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x458e56)});if(!_0x296163['ok']){const _0x21c1bc=await _0x296163['json']()['catch'](()=>({}));let _0x2c76a5=_0x21c1bc['error']||_0x21c1bc['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x296163['statusText'];if(_0x21c1bc['results']&&Array['isArray'](_0x21c1bc['results'])){const _0xc6d83a=_0x21c1bc['results']['filter'](_0x32a9e0=>!_0x32a9e0['success']&&_0x32a9e0['error']);_0xc6d83a['length']>0x0&&(_0x2c76a5=_0xc6d83a[0x0]['error']);}const _0x13978e=new Error(_0x2c76a5);_0x13978e['hasConflicts']=_0x21c1bc['results']?.['some'](_0x27a9d5=>_0x27a9d5['conflict'])||![];throw _0x13978e;}return await _0x296163['json']();},async 'getPullRequestInfo'(_0x380435){if(!_0x380435)throw new Error('Task\x20ID\x20is\x20required');const _0x4d78bb=await fetch(API_BASE+'/tasks/'+_0x380435+'/pull-request-info');if(!_0x4d78bb['ok']){const _0x49f6a0=await _0x4d78bb['json']()['catch'](()=>({}));throw new Error(_0x49f6a0['error']||_0x49f6a0['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x4d78bb['statusText']);}return await _0x4d78bb['json']();},async 'createPullRequests'(_0x399535,_0x308a46){if(!_0x399535)throw new Error('Task\x20ID\x20is\x20required');if(!_0x308a46||!Array['isArray'](_0x308a46))throw new Error('repos\x20array\x20is\x20required');const _0x5c88b4=await fetch(API_BASE+'/tasks/'+_0x399535+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x308a46})});if(!_0x5c88b4['ok']){const _0x390e15=await _0x5c88b4['json']()['catch'](()=>({}));let _0x5c9ca6=_0x390e15['error']||_0x390e15['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x5c88b4['statusText'];if(_0x390e15['results']&&Array['isArray'](_0x390e15['results'])){const _0x396d42=_0x390e15['results']['filter'](_0x849e4=>!_0x849e4['success']&&_0x849e4['error']);_0x396d42['length']>0x0&&(_0x5c9ca6=_0x396d42[0x0]['error']);}throw new Error(_0x5c9ca6);}return await _0x5c88b4['json']();},async 'syncRepos'(_0x197422){if(!_0x197422)throw new Error('Task\x20ID\x20is\x20required');const _0x56b347=await fetch(API_BASE+'/tasks/'+_0x197422+'/sync-repos',{'method':'POST'});if(!_0x56b347['ok']){const _0x3a191f=await _0x56b347['json']()['catch'](()=>({}));throw new Error(_0x3a191f['error']||_0x3a191f['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x56b347['statusText']);}return await _0x56b347['json']();},async 'getIbmiSyncInfo'(_0x32a851){if(!_0x32a851)throw new Error('Task\x20ID\x20is\x20required');const _0x10f6a0=await fetch(API_BASE+'/tasks/'+_0x32a851+'/ibmi-sync-info');if(!_0x10f6a0['ok']){const _0x24e72d=await _0x10f6a0['json']()['catch'](()=>({}));throw new Error(_0x24e72d['error']||_0x24e72d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x10f6a0['json']();},async 'getSyncFiles'(_0x3eb3ba){if(!_0x3eb3ba)throw new Error('Task\x20ID\x20is\x20required');const _0x48371f=await fetch(API_BASE+'/tasks/'+_0x3eb3ba+'/sync-to-ibmi/files');if(!_0x48371f['ok']){const _0x5251f9=await _0x48371f['json']()['catch'](()=>({}));throw new Error(_0x5251f9['error']||_0x5251f9['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x48371f['json']();},async 'syncToIbmi'(_0x45001c,_0x3351db,_0x16dfd7=null,_0x3d123c=null,_0x12234b=null){if(!_0x45001c)throw new Error('Task\x20ID\x20is\x20required');const _0x2e5299={'library':_0x3351db};if(_0x16dfd7)_0x2e5299['user']=_0x16dfd7;if(_0x3d123c)_0x2e5299['password']=_0x3d123c;if(_0x12234b)_0x2e5299['files']=_0x12234b;const _0x3aff33=await fetch(API_BASE+'/tasks/'+_0x45001c+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2e5299)});if(!_0x3aff33['ok']){const _0x51f489=await _0x3aff33['json']()['catch'](()=>({}));throw new Error(_0x51f489['error']||_0x51f489['message']||'Sync\x20failed');}return await _0x3aff33['json']();},async 'getIbmiSyncLog'(_0x537e1c){if(!_0x537e1c)throw new Error('Task\x20ID\x20is\x20required');const _0x12ff54=await fetch(API_BASE+'/tasks/'+_0x537e1c+'/ibmi-sync-log');if(!_0x12ff54['ok']){const _0x5ac2fb=await _0x12ff54['json']()['catch'](()=>({}));throw new Error(_0x5ac2fb['error']||_0x5ac2fb['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x12ff54['json']();},async 'pullChanges'(_0x1a0b22){if(!_0x1a0b22)throw new Error('Task\x20ID\x20is\x20required');const _0x4d03cd=await fetch(API_BASE+'/tasks/'+_0x1a0b22+'/pull-changes',{'method':'POST'});if(!_0x4d03cd['ok']){const _0x25b1f0=await _0x4d03cd['json']()['catch'](()=>({}));throw new Error(_0x25b1f0['error']||_0x25b1f0['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x4d03cd['statusText']);}return await _0x4d03cd['json']();},async 'readFile'(_0x136eb7,_0x28672f){if(!_0x136eb7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28672f)throw new Error('File\x20path\x20is\x20required');const _0x2eed69=await fetch(API_BASE+'/tasks/'+_0x136eb7+'/files?path='+encodeURIComponent(_0x28672f));if(!_0x2eed69['ok']){const _0x13f526=await _0x2eed69['json']()['catch'](()=>({}));throw new Error(_0x13f526['error']||_0x13f526['message']||'Failed\x20to\x20read\x20file:\x20'+_0x2eed69['statusText']);}return await _0x2eed69['json']();},'getTaskFileDownloadUrl'(_0x242727,_0x5f1413){if(!_0x242727)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5f1413)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242727+'/files/download?path='+encodeURIComponent(_0x5f1413);},async 'writeFile'(_0x369780,_0x1c6c1d,_0x1392a5){if(!_0x369780)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c6c1d)throw new Error('File\x20path\x20is\x20required');if(_0x1392a5===undefined)throw new Error('Content\x20is\x20required');const _0x5790d6=await fetch(API_BASE+'/tasks/'+_0x369780+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1c6c1d,'content':_0x1392a5})});if(!_0x5790d6['ok']){const _0x805679=await _0x5790d6['json']()['catch'](()=>({}));throw new Error(_0x805679['error']||_0x805679['message']||'Failed\x20to\x20write\x20file:\x20'+_0x5790d6['statusText']);}return await _0x5790d6['json']();},async 'uploadTaskFiles'(_0x490017,_0xe39deb,_0x589741){if(!_0x490017)throw new Error('Task\x20ID\x20is\x20required');if(!_0xe39deb)throw new Error('Target\x20directory\x20is\x20required');if(!_0x589741||_0x589741['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x356912=new FormData();_0x356912['append']('targetDir',_0xe39deb);for(const _0x98d20a of _0x589741){_0x356912['append']('files',_0x98d20a,_0x98d20a['name']);}const _0x1f7e23=await fetch(API_BASE+'/tasks/'+_0x490017+'/files/upload',{'method':'POST','body':_0x356912});if(!_0x1f7e23['ok']){const _0x36a3b3=await _0x1f7e23['json']()['catch'](()=>({}));throw new Error(_0x36a3b3['error']||_0x36a3b3['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x1f7e23['statusText']);}return await _0x1f7e23['json']();},async 'createDirectory'(_0x370bff,_0x50a012){if(!_0x370bff)throw new Error('Task\x20ID\x20is\x20required');if(!_0x50a012)throw new Error('Directory\x20path\x20is\x20required');const _0x7927d0=await fetch(API_BASE+'/tasks/'+_0x370bff+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x50a012})});if(!_0x7927d0['ok']){const _0x2d0c9f=await _0x7927d0['json']()['catch'](()=>({}));throw new Error(_0x2d0c9f['error']||_0x2d0c9f['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x7927d0['statusText']);}return await _0x7927d0['json']();},async 'renamePath'(_0x21af16,_0xe56c,_0x516436){if(!_0x21af16)throw new Error('Task\x20ID\x20is\x20required');if(!_0xe56c)throw new Error('Source\x20path\x20is\x20required');if(!_0x516436)throw new Error('Destination\x20path\x20is\x20required');const _0x10e18a=await fetch(API_BASE+'/tasks/'+_0x21af16+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0xe56c,'newPath':_0x516436})});if(!_0x10e18a['ok']){const _0x558424=await _0x10e18a['json']()['catch'](()=>({}));throw new Error(_0x558424['error']||_0x558424['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x10e18a['statusText']);}return await _0x10e18a['json']();},async 'deleteFile'(_0x2207b6,_0x5ac070){if(!_0x2207b6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ac070)throw new Error('File\x20path\x20is\x20required');const _0x93f415=await fetch(API_BASE+'/tasks/'+_0x2207b6+'/files?path='+encodeURIComponent(_0x5ac070),{'method':'DELETE'});if(!_0x93f415['ok']){const _0x19ad17=await _0x93f415['json']()['catch'](()=>({}));throw new Error(_0x19ad17['error']||_0x19ad17['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x93f415['statusText']);}return await _0x93f415['json']();},async 'deleteDirectory'(_0x595d93,_0x23d0b5){if(!_0x595d93)throw new Error('Task\x20ID\x20is\x20required');if(!_0x23d0b5)throw new Error('Directory\x20path\x20is\x20required');const _0x4d3523=await fetch(API_BASE+'/tasks/'+_0x595d93+'/files/directory?path='+encodeURIComponent(_0x23d0b5),{'method':'DELETE'});if(!_0x4d3523['ok']){const _0x1d59be=await _0x4d3523['json']()['catch'](()=>({}));throw new Error(_0x1d59be['error']||_0x1d59be['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x4d3523['statusText']);}return await _0x4d3523['json']();},async 'discardFile'(_0x51e38f,_0x545875,_0x52d636){if(!_0x51e38f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x545875)throw new Error('File\x20path\x20is\x20required');if(!_0x52d636)throw new Error('Repository\x20path\x20is\x20required');const _0x12ee6e=await fetch(API_BASE+'/tasks/'+_0x51e38f+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x545875,'repoPath':_0x52d636})});if(!_0x12ee6e['ok']){const _0x3699d4=await _0x12ee6e['json']()['catch'](()=>({}));throw new Error(_0x3699d4['error']||_0x3699d4['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x12ee6e['statusText']);}return await _0x12ee6e['json']();},async 'followUpTask'(_0xc67766,_0x288a92={}){if(!_0xc67766)throw new Error('Task\x20ID\x20is\x20required');if(!_0x288a92['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x352351,_0xb06d1b={};if(_0x288a92['files']&&_0x288a92['files']['length']>0x0){const _0x4a1448=new FormData();_0x4a1448['append']('instructions',_0x288a92['instructions']);for(const _0x3e4a16 of _0x288a92['files']){_0x4a1448['append']('attachments',_0x3e4a16);}_0x352351=_0x4a1448;}else _0xb06d1b['Content-Type']='application/json',_0x352351=JSON['stringify']({'instructions':_0x288a92['instructions']});const _0x29e94c=await fetch(API_BASE+'/tasks/'+_0xc67766+'/follow-up',{'method':'POST','headers':_0xb06d1b,'body':_0x352351});if(!_0x29e94c['ok']){const _0x25e3b8=await _0x29e94c['json']()['catch'](()=>({}));throw new Error(_0x25e3b8['error']||_0x25e3b8['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x29e94c['statusText']);}return await _0x29e94c['json']();},async 'getTaskRewindPoints'(_0x411d38){if(!_0x411d38)throw new Error('Task\x20ID\x20is\x20required');const _0x1b07ee=await fetch(API_BASE+'/tasks/'+_0x411d38+'/rewind-points');if(!_0x1b07ee['ok']){const _0x264c5a=await _0x1b07ee['json']()['catch'](()=>({}));throw new Error(_0x264c5a['error']||_0x264c5a['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x1b07ee['statusText']);}return await _0x1b07ee['json']();},async 'rewindTask'(_0x1d36f7,_0x166ab8={}){if(!_0x1d36f7)throw new Error('Task\x20ID\x20is\x20required');const _0x3064d8=Number['isInteger'](_0x166ab8['targetFollowUpCount'])?_0x166ab8['targetFollowUpCount']:0x0,_0x3d02ed={'targetFollowUpCount':_0x3064d8};typeof _0x166ab8['instructions']==='string'&&_0x166ab8['instructions']['trim']()&&(_0x3d02ed['instructions']=_0x166ab8['instructions']['trim']());typeof _0x166ab8['rewindFiles']==='boolean'&&(_0x3d02ed['rewindFiles']=_0x166ab8['rewindFiles']);const _0x365313=await fetch(API_BASE+'/tasks/'+_0x1d36f7+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3d02ed)});if(!_0x365313['ok']){const _0x183a02=await _0x365313['json']()['catch'](()=>({}));throw new Error(_0x183a02['error']||_0x183a02['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x365313['statusText']);}return await _0x365313['json']();},async 'login'(_0x4a458f,_0x5c0aeb){const _0x46c011=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x4a458f,'password':_0x5c0aeb})});if(!_0x46c011['ok']){const _0x1ed7da=await _0x46c011['json']();throw new Error(_0x1ed7da['message']||'Login\x20failed');}return await _0x46c011['json']();},async 'logout'(){const _0x4f759b=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4f759b['ok']){const _0x1946d1=await _0x4f759b['json']();throw new Error(_0x1946d1['message']||'Logout\x20failed');}return await _0x4f759b['json']();},async 'getCurrentUser'(){const _0x574475=await fetch(API_BASE+'/auth/me');if(!_0x574475['ok'])throw new Error('Not\x20authenticated');const _0x565aa0=await _0x574475['json']();return _0x565aa0['user'];},async 'getRolesInfo'(){const _0x5889e7=await fetch(API_BASE+'/users/roles');if(!_0x5889e7['ok']){const _0x145c93=await _0x5889e7['json']();throw new Error(_0x145c93['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x5889e7['json']();},async 'getUsers'(){const _0x38c4cc=await fetch(API_BASE+'/users');if(!_0x38c4cc['ok']){const _0x3b108c=await _0x38c4cc['json']();throw new Error(_0x3b108c['message']||'Failed\x20to\x20get\x20users');}return await _0x38c4cc['json']();},async 'getUser'(_0x352e9d){const _0x454440=await fetch(API_BASE+'/users/'+_0x352e9d);if(!_0x454440['ok']){const _0x21598b=await _0x454440['json']();throw new Error(_0x21598b['message']||'Failed\x20to\x20get\x20user');}return await _0x454440['json']();},async 'createUser'(_0x21ea58){const _0x51aebc=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21ea58)});if(!_0x51aebc['ok']){const _0x1f69bd=await _0x51aebc['json']();throw new Error(_0x1f69bd['message']||'Failed\x20to\x20create\x20user');}return await _0x51aebc['json']();},async 'updateUser'(_0x539c97,_0x13e896){const _0x57942c=await fetch(API_BASE+'/users/'+_0x539c97,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13e896)});if(!_0x57942c['ok']){const _0x4049bf=await _0x57942c['json']();throw new Error(_0x4049bf['message']||'Failed\x20to\x20update\x20user');}return await _0x57942c['json']();},async 'deleteUser'(_0x1aa5b2){const _0x17c764=await fetch(API_BASE+'/users/'+_0x1aa5b2,{'method':'DELETE'});if(!_0x17c764['ok']){const _0x6fa0e8=await _0x17c764['json']();throw new Error(_0x6fa0e8['message']||'Failed\x20to\x20delete\x20user');}return await _0x17c764['json']();},async 'stopAllContainers'(){const _0x4ef704=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x2eaed6=await _0x4ef704['json']()['catch'](()=>({}));if(!_0x4ef704['ok'])throw new Error(_0x2eaed6['message']||_0x2eaed6['error']||'Failed\x20to\x20stop\x20containers');return _0x2eaed6;},async 'removeStoppedContainers'(){const _0xd8c465=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x62293f=await _0xd8c465['json']()['catch'](()=>({}));if(!_0xd8c465['ok'])throw new Error(_0x62293f['message']||_0x62293f['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x62293f;},async 'pruneDockerResources'(){const _0x1e0488=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x486af1=await _0x1e0488['json']()['catch'](()=>({}));if(!_0x1e0488['ok'])throw new Error(_0x486af1['message']||_0x486af1['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x486af1;},async 'getUpdateSettings'(){const _0x554259=await fetch(API_BASE+'/health/update-settings'),_0x2c693e=await _0x554259['json']()['catch'](()=>({}));if(!_0x554259['ok'])throw new Error(_0x2c693e['message']||_0x2c693e['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x2c693e;},async 'applyServerUpdate'(_0x3b5294){const _0x121ed4=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x3b5294})}),_0x5750f1=await _0x121ed4['json']()['catch'](()=>({}));if(!_0x121ed4['ok']){const _0x4f0ee1=new Error(_0x5750f1['message']||_0x5750f1['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x5750f1['output']!==undefined)_0x4f0ee1['output']=_0x5750f1['output'];if(_0x5750f1['error']!==undefined)_0x4f0ee1['commandError']=_0x5750f1['error'];throw _0x4f0ee1;}return _0x5750f1;},async 'restartServer'(){const _0xd62c14=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0xece1c4=await _0xd62c14['json']()['catch'](()=>({}));if(!_0xd62c14['ok'])throw new Error(_0xece1c4['message']||_0xece1c4['error']||'Failed\x20to\x20restart\x20server');return _0xece1c4;},async 'getDockerContainers'(){const _0x2c7dc9=await fetch(API_BASE+'/health/containers'),_0x27d5ed=await _0x2c7dc9['json']()['catch'](()=>({}));if(!_0x2c7dc9['ok'])throw new Error(_0x27d5ed['message']||_0x27d5ed['error']||'Failed\x20to\x20load\x20containers');return _0x27d5ed;},async 'getDockerImages'(){const _0x1be16d=await fetch(API_BASE+'/health/docker/images'),_0xae16a1=await _0x1be16d['json']()['catch'](()=>({}));if(!_0x1be16d['ok'])throw new Error(_0xae16a1['message']||_0xae16a1['error']||'Failed\x20to\x20load\x20images');return _0xae16a1;},async 'getDockerVolumes'(){const _0x154fc8=await fetch(API_BASE+'/health/docker/volumes'),_0x1209c4=await _0x154fc8['json']()['catch'](()=>({}));if(!_0x154fc8['ok'])throw new Error(_0x1209c4['message']||_0x1209c4['error']||'Failed\x20to\x20load\x20volumes');return _0x1209c4;},async 'getActiveSessions'(){const _0x5e6319=await fetch(API_BASE+'/health/sessions'),_0x40489b=await _0x5e6319['json']()['catch'](()=>({}));if(!_0x5e6319['ok'])throw new Error(_0x40489b['message']||_0x40489b['error']||'Failed\x20to\x20load\x20sessions');return _0x40489b;},async 'getSystemInfo'(){const _0x4bb39d=await fetch(API_BASE+'/health/system'),_0x26e506=await _0x4bb39d['json']()['catch'](()=>({}));if(!_0x4bb39d['ok'])throw new Error(_0x26e506['message']||_0x26e506['error']||'Failed\x20to\x20load\x20system\x20info');return _0x26e506;},async 'stopDockerContainer'(_0x4aa583){const _0x42cd0a=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x4aa583)+'/stop',{'method':'POST'}),_0x1f6a58=await _0x42cd0a['json']()['catch'](()=>({}));if(!_0x42cd0a['ok'])throw new Error(_0x1f6a58['message']||_0x1f6a58['error']||'Failed\x20to\x20stop\x20container');return _0x1f6a58;},async 'removeDockerContainer'(_0x4adf1){const _0x5f5b4a=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x4adf1),{'method':'DELETE'}),_0x108d5d=await _0x5f5b4a['json']()['catch'](()=>({}));if(!_0x5f5b4a['ok'])throw new Error(_0x108d5d['message']||_0x108d5d['error']||'Failed\x20to\x20remove\x20container');return _0x108d5d;},async 'createPasswordToken'(_0x29d4ca,_0x68e4c0='setup',_0x93732d=![]){const _0x51843c=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x29d4ca,'type':_0x68e4c0,'sendEmail':_0x93732d})});if(!_0x51843c['ok']){const _0x474dca=await _0x51843c['json']();throw new Error(_0x474dca['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x51843c['json']();},async 'getEmailConfig'(){const _0x2729e0=await fetch(API_BASE+'/password/email-config');if(!_0x2729e0['ok']){const _0xb7cf76=await _0x2729e0['json']();throw new Error(_0xb7cf76['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x2729e0['json']();},async 'updateTaskName'(_0x31ed69,_0x4b6dab){const _0x3c90a2=await fetch(API_BASE+'/tasks/'+_0x31ed69,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4b6dab})});if(!_0x3c90a2['ok']){const _0x50094a=await _0x3c90a2['json']();throw new Error(_0x50094a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x3c90a2['json']();},async 'pinTask'(_0x22186b,_0x153c93,_0x5013d7=null){if(!_0x22186b)throw new Error('Task\x20ID\x20is\x20required');const _0x16b9a5={'pinned':_0x153c93};_0x5013d7&&_0x5013d7['length']>0x0&&(_0x16b9a5['additionalTaskIds']=_0x5013d7);const _0x413481=await fetch(API_BASE+'/tasks/'+_0x22186b+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x16b9a5)});if(!_0x413481['ok']){const _0x39afe8=await _0x413481['json']();throw new Error(_0x39afe8['error']||'Failed\x20to\x20pin\x20task');}return await _0x413481['json']();},async 'setTaskWinner'(_0x17638f,_0x27d8de,_0x13b4b4=[]){if(!_0x17638f)throw new Error('Task\x20ID\x20is\x20required');const _0x11b193=await fetch(API_BASE+'/tasks/'+_0x17638f+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x27d8de,'siblings':_0x13b4b4})});if(!_0x11b193['ok']){const _0x5b7aee=await _0x11b193['json']();throw new Error(_0x5b7aee['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x11b193['json']();},async 'setTaskLoser'(_0x5399f5,_0x18fa65){if(!_0x5399f5)throw new Error('Task\x20ID\x20is\x20required');const _0x4ec4ce=await fetch(API_BASE+'/tasks/'+_0x5399f5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x18fa65})});if(!_0x4ec4ce['ok']){const _0x142630=await _0x4ec4ce['json']();throw new Error(_0x142630['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x4ec4ce['json']();},async 'createTaskGroup'(_0x25c38f){const _0x5ed3c6=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25c38f)});if(!_0x5ed3c6['ok']){const _0x3f26df=await _0x5ed3c6['json']();throw new Error(_0x3f26df['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x5ed3c6['json']();},async 'getTaskGroups'(_0x5a7d27={}){const _0x5d1731=new URLSearchParams();if(_0x5a7d27['userId'])_0x5d1731['set']('userId',String(_0x5a7d27['userId']));if(_0x5a7d27['status'])_0x5d1731['set']('status',String(_0x5a7d27['status']));if(_0x5a7d27['limit'])_0x5d1731['set']('limit',String(_0x5a7d27['limit']));const _0x4b741a=API_BASE+'/tasks/groups'+(_0x5d1731['toString']()?'?'+_0x5d1731['toString']():''),_0x557c20=await fetch(_0x4b741a);if(!_0x557c20['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x557c20['json']();},async 'getTaskGroup'(_0x1d16cf){const _0x2db40c=await fetch(API_BASE+'/tasks/groups/'+_0x1d16cf);if(!_0x2db40c['ok']){const _0x5b6b89=await _0x2db40c['json']();throw new Error(_0x5b6b89['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x2db40c['json']();},async 'updateTaskGroup'(_0x1729d7,_0x50a379,_0x24ff3f){const _0x41afb9=await fetch(API_BASE+'/tasks/'+_0x1729d7+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x50a379,'groupIndex':_0x24ff3f})});if(!_0x41afb9['ok']){const _0x41e1fa=await _0x41afb9['json']();throw new Error(_0x41e1fa['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x41afb9['json']();},async 'removeTaskFromGroup'(_0x1c3243){return this['updateTaskGroup'](_0x1c3243,null,null);},async 'deleteTaskGroup'(_0x21ce27,_0x5b07a6=![]){const _0x637b66=_0x5b07a6?'?deleteTasks=true':'',_0x54aa7c=await fetch(API_BASE+'/tasks/groups/'+_0x21ce27+_0x637b66,{'method':'DELETE'});if(!_0x54aa7c['ok']){const _0x46ba7d=await _0x54aa7c['json']();throw new Error(_0x46ba7d['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x3dbc2d,_0x30ea32){const _0xb844d7=await fetch(API_BASE+'/tasks/groups/'+_0x3dbc2d+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x30ea32})});if(!_0xb844d7['ok']){const _0x3d2cc9=await _0xb844d7['json']();throw new Error(_0x3d2cc9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0xb844d7['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4fea0b){if(!_0x4fea0b)throw new Error('Task\x20ID\x20is\x20required');const _0x13859a=await fetch(API_BASE+'/tasks/'+_0x4fea0b+'/comments');if(!_0x13859a['ok']){const _0xc43a17=await _0x13859a['json']()['catch'](()=>({}));throw new Error(_0xc43a17['error']||'Failed\x20to\x20get\x20comments');}return await _0x13859a['json']();},async 'addComment'(_0x53907e,_0x322f32){if(!_0x53907e)throw new Error('Task\x20ID\x20is\x20required');if(!_0x322f32)throw new Error('Comment\x20content\x20is\x20required');const _0x34fcda=await fetch(API_BASE+'/tasks/'+_0x53907e+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x322f32})});if(!_0x34fcda['ok']){const _0x4f5203=await _0x34fcda['json']()['catch'](()=>({}));throw new Error(_0x4f5203['error']||'Failed\x20to\x20add\x20comment');}return await _0x34fcda['json']();},async 'updateComment'(_0x47fbeb,_0x3593a5,_0x56f05f){if(!_0x47fbeb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3593a5)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x56f05f)throw new Error('Comment\x20content\x20is\x20required');const _0x3fdc95=await fetch(API_BASE+'/tasks/'+_0x47fbeb+'/comments/'+_0x3593a5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x56f05f})});if(!_0x3fdc95['ok']){const _0x5a572c=await _0x3fdc95['json']()['catch'](()=>({}));throw new Error(_0x5a572c['error']||'Failed\x20to\x20update\x20comment');}return await _0x3fdc95['json']();},async 'deleteComment'(_0x6354ef,_0x3990e9){if(!_0x6354ef)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3990e9)throw new Error('Comment\x20ID\x20is\x20required');const _0x15fa1c=await fetch(API_BASE+'/tasks/'+_0x6354ef+'/comments/'+_0x3990e9,{'method':'DELETE'});if(!_0x15fa1c['ok']){const _0x3a752e=await _0x15fa1c['json']()['catch'](()=>({}));throw new Error(_0x3a752e['error']||'Failed\x20to\x20delete\x20comment');}return await _0x15fa1c['json']();},async 'createObjective'(_0x5331b8){const _0xcee002={'objective':!![],'name':_0x5331b8['name']||'','environment':_0x5331b8['environment']||null,'agents':_0x5331b8['agents']||[],'branches':_0x5331b8['branches']||{},'isPinned':_0x5331b8['isPinned']||![],'parentObjectiveId':_0x5331b8['parentObjectiveId']||null,'env_vars':_0x5331b8['envVars']||{},'parameters':{'instructions':_0x5331b8['instructions']||''},'files':_0x5331b8['files']||[],'jira':_0x5331b8['jira']||null};return this['createTask'](_0xcee002);},async 'updateObjective'(_0x5e267d,_0x547ddc,_0x20c3db=[],_0x8f16cb=[]){let _0xc991df,_0x424a57={};const _0x3f258d={..._0x547ddc};_0x8f16cb&&_0x8f16cb['length']>0x0&&(_0x3f258d['removeAttachments']=_0x8f16cb);if(_0x20c3db&&_0x20c3db['length']>0x0){const _0x3a23be=new FormData();for(const [_0x83df65,_0x1c3e0e]of Object['entries'](_0x3f258d)){if(_0x1c3e0e==null)continue;typeof _0x1c3e0e==='object'?_0x3a23be['append'](_0x83df65,JSON['stringify'](_0x1c3e0e)):_0x3a23be['append'](_0x83df65,String(_0x1c3e0e));}for(const _0x3b6c4c of _0x20c3db){_0x3a23be['append']('attachments',_0x3b6c4c);}_0xc991df=_0x3a23be;}else _0x424a57['Content-Type']='application/json',_0xc991df=JSON['stringify'](_0x3f258d);const _0x489c76=await fetch(API_BASE+'/tasks/'+_0x5e267d,{'method':'PATCH','headers':_0x424a57,'body':_0xc991df});if(!_0x489c76['ok']){const _0x31c317=await _0x489c76['json']();throw new Error(_0x31c317['error']||'Failed\x20to\x20update\x20objective');}return await _0x489c76['json']();},async 'deleteObjective'(_0x5cd79b){return this['deleteTask'](_0x5cd79b);},async 'launchObjective'(_0x1937c2,_0xf03a95={}){const _0x1caea4=await fetch(API_BASE+'/tasks/'+_0x1937c2+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xf03a95)});if(!_0x1caea4['ok']){const _0x215510=await _0x1caea4['json']();throw new Error(_0x215510['error']||'Failed\x20to\x20launch\x20objective');}return await _0x1caea4['json']();},async 'getObjectiveAttachments'(_0x36e603){return this['getTaskAttachments'](_0x36e603);},async 'createJudgeTask'({environment:_0xea5b65,judgeAgent:_0x374856,groupId:_0x58b6ea,taskIds:_0x23d907,judgeCustomInstructions:_0x5c2108,isPinned:_0x10933f}){const _0x5cc159=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0xea5b65,'judgeAgent':_0x374856,'groupId':_0x58b6ea,'taskIds':_0x23d907,'judgeCustomInstructions':_0x5c2108,'isPinned':_0x10933f})});if(!_0x5cc159['ok']){const _0x27e0f1=await _0x5cc159['json']();throw new Error(_0x27e0f1['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x5cc159['json']();},async 'getJudgeTasks'(_0x5b6339){const _0x39646d=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5b6339));if(!_0x39646d['ok']){const _0x3dcf52=await _0x39646d['json']();throw new Error(_0x3dcf52['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39646d['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x21cbff,_0xca326a,_0x564b49=''){const _0x5a7853=await fetch(API_BASE+'/tasks/'+_0x21cbff+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0xca326a,'customPreamble':_0x564b49})});if(!_0x5a7853['ok']){const _0x34493a=await _0x5a7853['json']();throw new Error(_0x34493a['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x5a7853['json']();},async 'getJiraConfig'(){const _0x7480c4=await fetch(API_BASE+'/jira/config');if(!_0x7480c4['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x7480c4['json']();},async 'getJiraIssue'(_0x452e26){const _0x559e65=await fetch(API_BASE+'/jira/issues/'+_0x452e26);if(!_0x559e65['ok']){const _0x269ad6=await _0x559e65['json']()['catch'](()=>({}));throw new Error(_0x269ad6['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x559e65['statusText']);}return await _0x559e65['json']();},async 'searchJiraIssues'(_0xea36b6,_0x543283=0x14){const _0x268327=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0xea36b6,'maxResults':_0x543283})});if(!_0x268327['ok']){const _0x2f3972=await _0x268327['json']()['catch'](()=>({}));throw new Error(_0x2f3972['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x268327['statusText']);}return await _0x268327['json']();},async 'postJiraComment'(_0x220953,_0x34d2a){const _0x59c499=await fetch(API_BASE+'/jira/issues/'+_0x220953+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x34d2a})});if(!_0x59c499['ok']){const _0x51e48b=await _0x59c499['json']()['catch'](()=>({}));throw new Error(_0x51e48b['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x59c499['statusText']);}return await _0x59c499['json']();},async 'getJiraComments'(_0x4ced11){const _0x251029=await fetch(API_BASE+'/jira/issues/'+_0x4ced11+'/comments');if(!_0x251029['ok']){const _0x541071=await _0x251029['json']()['catch'](()=>({}));throw new Error(_0x541071['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x251029['statusText']);}return await _0x251029['json']();},async 'promptParameter'({environment:_0x2975e4,command:_0x5b9c95,parser:parser='json'}){const _0x3b3bc9=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2975e4,'command':_0x5b9c95,'parser':parser})});if(!_0x3b3bc9['ok']){const _0x33ff81=await _0x3b3bc9['json']()['catch'](()=>({}));throw new Error(_0x33ff81['message']||_0x33ff81['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x3b3bc9['statusText']);}return await _0x3b3bc9['json']();},async 'promptParameterStream'(_0x45beb3,_0x71c05f){const _0x4a5951=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x45beb3)});if(!_0x4a5951['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x4a5951['statusText']);const _0x1280c6=_0x4a5951['body']['getReader'](),_0x46506a=new TextDecoder();let _0x3f7ff3='';return new Promise((_0x1bc2e1,_0x26758d)=>{const _0x3743e0=async()=>{try{const {done:_0x2f8c43,value:_0x4cda78}=await _0x1280c6['read']();if(_0x2f8c43)return;_0x3f7ff3+=_0x46506a['decode'](_0x4cda78,{'stream':!![]});const _0x101182=_0x3f7ff3['split']('\x0a\x0a');_0x3f7ff3=_0x101182['pop']()||'';for(const _0x116a9f of _0x101182){if(!_0x116a9f['trim']())continue;const _0x4dcfbd=_0x116a9f['split']('\x0a');let _0x470902='message',_0x4c7b6c='';for(const _0x3e81ee of _0x4dcfbd){if(_0x3e81ee['startsWith']('event:'))_0x470902=_0x3e81ee['substring'](0x6)['trim']();else _0x3e81ee['startsWith']('data:')&&(_0x4c7b6c=_0x3e81ee['substring'](0x5)['trim']());}if(!_0x4c7b6c)continue;try{const _0x58577e=JSON['parse'](_0x4c7b6c);if(_0x470902==='progress'&&_0x71c05f)_0x71c05f(_0x58577e['stage'],_0x58577e['message']);else{if(_0x470902==='result'){_0x1bc2e1(_0x58577e);return;}else{if(_0x470902==='error'){let _0x185322=_0x58577e['message']||_0x58577e['error']||'Prompt\x20command\x20failed';_0x58577e['rawOutput']&&(_0x185322+='\x0a\x0aRaw\x20output:\x0a'+_0x58577e['rawOutput']);_0x26758d(new Error(_0x185322));return;}}}}catch(_0x379cc5){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x379cc5),console['error']('Event\x20type:',_0x470902),console['error']('Event\x20data:',_0x4c7b6c),console['error']('First\x20200\x20chars:',_0x4c7b6c['substring'](0x0,0xc8)),_0x26758d(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x379cc5['message']+'\x0a\x0aData:\x20'+_0x4c7b6c['substring'](0x0,0x1f4)));return;}}_0x3743e0();}catch(_0xd4f26d){_0x26758d(_0xd4f26d);}};_0x3743e0();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x4ef7d6){const _0xd37f44=await fetch(''+API_BASE+_0x4ef7d6);if(!_0xd37f44['ok']){const _0x146193=await _0xd37f44['json']()['catch'](()=>({'error':_0xd37f44['statusText']})),_0x1ba4ce=new Error(_0x146193['error']||_0x146193['message']||_0xd37f44['statusText']);if(_0x146193['detail']!==undefined)_0x1ba4ce['detail']=_0x146193['detail'];throw _0x1ba4ce;}return await _0xd37f44['json']();},async 'post'(_0x141149,_0x55352e){const _0x713bc8=await fetch(''+API_BASE+_0x141149,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x55352e)});if(!_0x713bc8['ok']){const _0xbd888c=await _0x713bc8['json']()['catch'](()=>({'error':_0x713bc8['statusText']})),_0x2e0e50=new Error(_0xbd888c['error']||_0xbd888c['message']||_0x713bc8['statusText']);if(_0xbd888c['detail']!==undefined)_0x2e0e50['detail']=_0xbd888c['detail'];throw _0x2e0e50;}return await _0x713bc8['json']();},async 'put'(_0x2a27d4,_0x424e57){const _0x3c7312=await fetch(''+API_BASE+_0x2a27d4,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x424e57)});if(!_0x3c7312['ok']){const _0x1d1ced=await _0x3c7312['json']()['catch'](()=>({'error':_0x3c7312['statusText']})),_0x31fe0d=new Error(_0x1d1ced['error']||_0x1d1ced['message']||_0x3c7312['statusText']);if(_0x1d1ced['detail']!==undefined)_0x31fe0d['detail']=_0x1d1ced['detail'];throw _0x31fe0d;}return await _0x3c7312['json']();},async 'delete'(_0x1a8bde,_0x495dfe){const _0x283cc2={'method':'DELETE'};_0x495dfe&&(_0x283cc2['headers']={'Content-Type':'application/json'},_0x283cc2['body']=JSON['stringify'](_0x495dfe));const _0x1a9b67=await fetch(''+API_BASE+_0x1a8bde,_0x283cc2);if(!_0x1a9b67['ok']){const _0x34ecfe=await _0x1a9b67['json']()['catch'](()=>({'error':_0x1a9b67['statusText']})),_0x4929b6=new Error(_0x34ecfe['error']||_0x34ecfe['message']||_0x1a9b67['statusText']);if(_0x34ecfe['detail']!==undefined)_0x4929b6['detail']=_0x34ecfe['detail'];throw _0x4929b6;}return await _0x1a9b67['json']();},async 'getSkills'(){const _0x4dc163=await fetch(API_BASE+'/skills');if(!_0x4dc163['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x4dc163['statusText']);return await _0x4dc163['json']();},async 'getSkill'(_0x3ee9ec){const _0x3294c5=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3ee9ec));if(!_0x3294c5['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x3294c5['statusText']);return await _0x3294c5['json']();},async 'createSkill'(_0xf09839){const _0x25d9f6=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xf09839)});if(!_0x25d9f6['ok']){const _0x402cfb=await _0x25d9f6['json']()['catch'](()=>({'error':_0x25d9f6['statusText']})),_0x4cf438=new Error(_0x402cfb['error']||_0x402cfb['message']||_0x25d9f6['statusText']);if(_0x402cfb['detail']!==undefined)_0x4cf438['detail']=_0x402cfb['detail'];throw _0x4cf438;}return await _0x25d9f6['json']();},async 'updateSkill'(_0x187771,_0x1b14a0){const _0x32c325=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x187771),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b14a0)});if(!_0x32c325['ok']){const _0x23c3b9=await _0x32c325['json']()['catch'](()=>({'error':_0x32c325['statusText']})),_0x2fbddf=new Error(_0x23c3b9['error']||_0x23c3b9['message']||_0x32c325['statusText']);if(_0x23c3b9['detail']!==undefined)_0x2fbddf['detail']=_0x23c3b9['detail'];throw _0x2fbddf;}return await _0x32c325['json']();},async 'deleteSkill'(_0x350878){const _0x4ebc30=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x350878),{'method':'DELETE'});if(!_0x4ebc30['ok']){const _0x317838=await _0x4ebc30['json']()['catch'](()=>({'error':_0x4ebc30['statusText']})),_0x2cd3ef=new Error(_0x317838['error']||_0x317838['message']||_0x4ebc30['statusText']);if(_0x317838['detail']!==undefined)_0x2cd3ef['detail']=_0x317838['detail'];throw _0x2cd3ef;}return await _0x4ebc30['json']();},async 'getSkillFile'(_0x542969,_0x3ff4e0){const _0x55dfa6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x542969)+'/files/'+_0x3ff4e0);if(!_0x55dfa6['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x55dfa6['statusText']);return await _0x55dfa6['json']();},async 'saveSkillFile'(_0x21bd5e,_0x4120d6,_0x4038f9){const _0x1f9bb6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x21bd5e)+'/files/'+_0x4120d6,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4038f9})});if(!_0x1f9bb6['ok']){const _0x223601=await _0x1f9bb6['json']()['catch'](()=>({'error':_0x1f9bb6['statusText']})),_0x42e9ce=new Error(_0x223601['error']||_0x223601['message']||_0x1f9bb6['statusText']);if(_0x223601['detail']!==undefined)_0x42e9ce['detail']=_0x223601['detail'];throw _0x42e9ce;}return await _0x1f9bb6['json']();},async 'deleteSkillFile'(_0x11fdd5,_0x2681e9){const _0xfe9504=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x11fdd5)+'/files/'+_0x2681e9,{'method':'DELETE'});if(!_0xfe9504['ok']){const _0x3d647f=await _0xfe9504['json']()['catch'](()=>({'error':_0xfe9504['statusText']})),_0x2f7d22=new Error(_0x3d647f['error']||_0x3d647f['message']||_0xfe9504['statusText']);if(_0x3d647f['detail']!==undefined)_0x2f7d22['detail']=_0x3d647f['detail'];throw _0x2f7d22;}return await _0xfe9504['json']();},async 'pullSkills'(){const _0x638b3e=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x638b3e['ok']){const _0x52da7b=await _0x638b3e['json']()['catch'](()=>({'error':_0x638b3e['statusText']})),_0xc7f352=new Error(_0x52da7b['error']||_0x52da7b['message']||_0x638b3e['statusText']);if(_0x52da7b['detail']!==undefined)_0xc7f352['detail']=_0x52da7b['detail'];throw _0xc7f352;}return await _0x638b3e['json']();},async 'commitSkills'(_0x1787af,_0x70aa0a={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x70aa0a,_0x2c1449=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x1787af,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x2c1449['ok']){const _0x3b7827=await _0x2c1449['json']()['catch'](()=>({'error':_0x2c1449['statusText']})),_0x3f2c32=new Error(_0x3b7827['error']||_0x3b7827['message']||_0x2c1449['statusText']);if(_0x3b7827['detail']!==undefined)_0x3f2c32['detail']=_0x3b7827['detail'];throw _0x3f2c32;}return await _0x2c1449['json']();},async 'discardSkillsChanges'(){const _0x29851f=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x29851f['ok']){const _0x45eaa0=await _0x29851f['json']()['catch'](()=>({'error':_0x29851f['statusText']})),_0x3065fa=new Error(_0x45eaa0['error']||_0x45eaa0['message']||_0x29851f['statusText']);if(_0x45eaa0['detail']!==undefined)_0x3065fa['detail']=_0x45eaa0['detail'];throw _0x3065fa;}return await _0x29851f['json']();},async 'getSkillCatalog'(){const _0x38577e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x38577e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x38577e['statusText']);return await _0x38577e['json']();},async 'getImportedSkillsRegistry'(){const _0x159435=await fetch(API_BASE+'/external-skills/registry');if(!_0x159435['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x159435['statusText']);return await _0x159435['json']();},async 'importCatalogSkill'(_0x2565e2){const _0x179a1a=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x2565e2})});if(!_0x179a1a['ok']){const _0x679ad9=await _0x179a1a['json']()['catch'](()=>({'error':_0x179a1a['statusText']})),_0x3e019b=new Error(_0x679ad9['error']||_0x679ad9['message']||_0x179a1a['statusText']);if(_0x679ad9['detail']!==undefined)_0x3e019b['detail']=_0x679ad9['detail'];throw _0x3e019b;}return await _0x179a1a['json']();},async 'importSkillFromGit'(_0x9113e7,_0x49a4e2,_0x3ca854='main',_0x1143fc=null){const _0x2e87ba=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x9113e7,'skillPath':_0x49a4e2,'branch':_0x3ca854,'skillId':_0x1143fc})});if(!_0x2e87ba['ok']){const _0x4f5f16=await _0x2e87ba['json']()['catch'](()=>({'error':_0x2e87ba['statusText']})),_0x2c07cf=new Error(_0x4f5f16['error']||_0x4f5f16['message']||_0x2e87ba['statusText']);if(_0x4f5f16['detail']!==undefined)_0x2c07cf['detail']=_0x4f5f16['detail'];throw _0x2c07cf;}return await _0x2e87ba['json']();},async 'probeMarketplace'(_0x4a2eca,_0x2fd74f='main'){const _0x4c33db=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4a2eca,'branch':_0x2fd74f})});if(!_0x4c33db['ok']){const _0x1b2e4a=await _0x4c33db['json']()['catch'](()=>({'error':_0x4c33db['statusText']})),_0x11d345=new Error(_0x1b2e4a['error']||_0x1b2e4a['message']||_0x4c33db['statusText']);if(_0x1b2e4a['detail']!==undefined)_0x11d345['detail']=_0x1b2e4a['detail'];throw _0x11d345;}return await _0x4c33db['json']();},async 'importMarketplaceBundle'(_0x4236a1,_0x3e5483,_0x2b2f81,_0x57eebe=null){const _0x32884e=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4236a1,'branch':_0x3e5483,'bundleId':_0x2b2f81,'selectedSkills':_0x57eebe})});if(!_0x32884e['ok']){const _0x33f0e2=await _0x32884e['json']()['catch'](()=>({'error':_0x32884e['statusText']})),_0xafd107=new Error(_0x33f0e2['error']||_0x33f0e2['message']||_0x32884e['statusText']);if(_0x33f0e2['detail']!==undefined)_0xafd107['detail']=_0x33f0e2['detail'];throw _0xafd107;}return await _0x32884e['json']();},async 'importSkillFromFolder'(_0x27df54,_0x8f2a9d=null){const _0x5e1307=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x27df54,'skillId':_0x8f2a9d})});if(!_0x5e1307['ok']){const _0x3c0bc8=await _0x5e1307['json']()['catch'](()=>({'error':_0x5e1307['statusText']})),_0xb8e210=new Error(_0x3c0bc8['error']||_0x3c0bc8['message']||_0x5e1307['statusText']);if(_0x3c0bc8['detail']!==undefined)_0xb8e210['detail']=_0x3c0bc8['detail'];throw _0xb8e210;}return await _0x5e1307['json']();},async 'importSkillFromNpm'(_0x46e23f,_0x415673='latest',_0x268bf5=null,_0x567afe=null){const _0x1d488f=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x46e23f,'version':_0x415673,'skillId':_0x268bf5,'registry':_0x567afe})});if(!_0x1d488f['ok']){const _0x32670e=await _0x1d488f['json']()['catch'](()=>({'error':_0x1d488f['statusText']})),_0x50145a=new Error(_0x32670e['error']||_0x32670e['message']||_0x1d488f['statusText']);if(_0x32670e['detail']!==undefined)_0x50145a['detail']=_0x32670e['detail'];throw _0x50145a;}return await _0x1d488f['json']();},async 'checkSkillUpdates'(_0x463560){const _0x15d7f7=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x463560)+'/check-updates',{'method':'POST'});if(!_0x15d7f7['ok']){const _0x372ae1=await _0x15d7f7['json']()['catch'](()=>({'error':_0x15d7f7['statusText']})),_0x1a9101=new Error(_0x372ae1['error']||_0x372ae1['message']||_0x15d7f7['statusText']);if(_0x372ae1['detail']!==undefined)_0x1a9101['detail']=_0x372ae1['detail'];throw _0x1a9101;}return await _0x15d7f7['json']();},async 'updateExternalSkill'(_0x1ebeb9){const _0x1dd271=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1ebeb9)+'/update',{'method':'POST'});if(!_0x1dd271['ok']){const _0x509179=await _0x1dd271['json']()['catch'](()=>({'error':_0x1dd271['statusText']})),_0x4f814c=new Error(_0x509179['error']||_0x509179['message']||_0x1dd271['statusText']);if(_0x509179['detail']!==undefined)_0x4f814c['detail']=_0x509179['detail'];throw _0x4f814c;}return await _0x1dd271['json']();},async 'updateSkillFlags'(_0x30ee67,_0x39eb5d){const _0x1baccf=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x30ee67)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x39eb5d})});if(!_0x1baccf['ok']){const _0x2b96d7=await _0x1baccf['json']()['catch'](()=>({'error':_0x1baccf['statusText']})),_0x2dfb1c=new Error(_0x2b96d7['error']||_0x2b96d7['message']||_0x1baccf['statusText']);if(_0x2b96d7['detail']!==undefined)_0x2dfb1c['detail']=_0x2b96d7['detail'];throw _0x2dfb1c;}return await _0x1baccf['json']();},async 'removeFromImportedRegistry'(_0x14a78d){const _0x2f8fa5=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x14a78d)+'/registry',{'method':'DELETE'});if(!_0x2f8fa5['ok']){const _0x1ce37e=await _0x2f8fa5['json']()['catch'](()=>({'error':_0x2f8fa5['statusText']})),_0x271a7f=new Error(_0x1ce37e['error']||_0x1ce37e['message']||_0x2f8fa5['statusText']);if(_0x1ce37e['detail']!==undefined)_0x271a7f['detail']=_0x1ce37e['detail'];throw _0x271a7f;}return await _0x2f8fa5['json']();},async 'getTeams'(){const _0x2193bc=await fetch(API_BASE+'/teams');if(!_0x2193bc['ok']){const _0x4de4f2=await _0x2193bc['json']()['catch'](()=>({'message':_0x2193bc['statusText']}));throw new Error(_0x4de4f2['message']||'Failed\x20to\x20get\x20teams');}return await _0x2193bc['json']();},async 'getTeam'(_0x11201b){const _0x54bb10=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x11201b));if(!_0x54bb10['ok']){const _0x860e4a=await _0x54bb10['json']()['catch'](()=>({'message':_0x54bb10['statusText']}));throw new Error(_0x860e4a['message']||'Failed\x20to\x20get\x20team');}return await _0x54bb10['json']();},async 'createTeam'(_0x43a9e0){const _0x264f1d=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43a9e0)});if(!_0x264f1d['ok']){const _0x31f21b=await _0x264f1d['json']()['catch'](()=>({'message':_0x264f1d['statusText']}));throw new Error(_0x31f21b['message']||'Failed\x20to\x20create\x20team');}return await _0x264f1d['json']();},async 'updateTeam'(_0x242cf5,_0x4e8a1e){const _0x453062=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x242cf5),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e8a1e)});if(!_0x453062['ok']){const _0x589f6f=await _0x453062['json']()['catch'](()=>({'message':_0x453062['statusText']}));throw new Error(_0x589f6f['message']||'Failed\x20to\x20update\x20team');}return await _0x453062['json']();},async 'deleteTeam'(_0x41ac21){const _0x4fafb2=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x41ac21),{'method':'DELETE'});if(!_0x4fafb2['ok']){const _0x9ec391=await _0x4fafb2['json']()['catch'](()=>({'message':_0x4fafb2['statusText']}));throw new Error(_0x9ec391['message']||'Failed\x20to\x20delete\x20team');}return await _0x4fafb2['json']();},async 'addTeamMember'(_0x386bad,_0x35e9eb){const _0x69922c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x386bad)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x35e9eb})});if(!_0x69922c['ok']){const _0x24db7c=await _0x69922c['json']()['catch'](()=>({'message':_0x69922c['statusText']}));throw new Error(_0x24db7c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x69922c['json']();},async 'removeTeamMember'(_0x452cb1,_0x11890c){const _0x1b8eff=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x452cb1)+'/members/'+encodeURIComponent(_0x11890c),{'method':'DELETE'});if(!_0x1b8eff['ok']){const _0x4760cc=await _0x1b8eff['json']()['catch'](()=>({'message':_0x1b8eff['statusText']}));throw new Error(_0x4760cc['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1b8eff['json']();},async 'getBindings'(_0x2436cb={}){const _0x172817=new URLSearchParams();if(_0x2436cb['resource_type'])_0x172817['set']('resource_type',_0x2436cb['resource_type']);if(_0x2436cb['resource_id'])_0x172817['set']('resource_id',_0x2436cb['resource_id']);if(_0x2436cb['subject_type'])_0x172817['set']('subject_type',_0x2436cb['subject_type']);if(_0x2436cb['subject_id'])_0x172817['set']('subject_id',_0x2436cb['subject_id']);const _0xbcdbdd=_0x172817['toString'](),_0xf10d9b=await fetch(API_BASE+'/bindings'+(_0xbcdbdd?'?'+_0xbcdbdd:''));if(!_0xf10d9b['ok']){const _0x2e0367=await _0xf10d9b['json']()['catch'](()=>({'message':_0xf10d9b['statusText']}));throw new Error(_0x2e0367['message']||'Failed\x20to\x20get\x20bindings');}return await _0xf10d9b['json']();},async 'createBinding'(_0x34a7e6){const _0x596011=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x34a7e6)});if(!_0x596011['ok']){const _0x34fbe2=await _0x596011['json']()['catch'](()=>({'message':_0x596011['statusText']}));throw new Error(_0x34fbe2['message']||'Failed\x20to\x20create\x20binding');}return await _0x596011['json']();},async 'updateBinding'(_0x3ab504,_0x4e94c9){const _0xb10721=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3ab504),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e94c9)});if(!_0xb10721['ok']){const _0x13c4c1=await _0xb10721['json']()['catch'](()=>({'message':_0xb10721['statusText']}));throw new Error(_0x13c4c1['message']||'Failed\x20to\x20update\x20binding');}return await _0xb10721['json']();},async 'deleteBinding'(_0x37c3d4){const _0x34f5f0=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x37c3d4),{'method':'DELETE'});if(!_0x34f5f0['ok']){const _0x445a4f=await _0x34f5f0['json']()['catch'](()=>({'message':_0x34f5f0['statusText']}));throw new Error(_0x445a4f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x34f5f0['json']();},async 'getRoleDefinitions'(){const _0x314386=await fetch(API_BASE+'/roles');if(!_0x314386['ok']){const _0x47e5ef=await _0x314386['json']()['catch'](()=>({'message':_0x314386['statusText']}));throw new Error(_0x47e5ef['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x314386['json']();},async 'getRoleDefinition'(_0x556a08){const _0x2b6a9a=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x556a08));if(!_0x2b6a9a['ok']){const _0x1ef5dc=await _0x2b6a9a['json']()['catch'](()=>({'message':_0x2b6a9a['statusText']}));throw new Error(_0x1ef5dc['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x2b6a9a['json']();},async 'createRoleDefinition'(_0x480eeb){const _0x153f87=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x480eeb)});if(!_0x153f87['ok']){const _0x19611a=await _0x153f87['json']()['catch'](()=>({'message':_0x153f87['statusText']}));throw new Error(_0x19611a['message']||_0x19611a['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x153f87['json']();},async 'updateRoleDefinition'(_0x55d661,_0x5e09ae){const _0x58612c=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x55d661),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e09ae)});if(!_0x58612c['ok']){const _0x29b42b=await _0x58612c['json']()['catch'](()=>({'message':_0x58612c['statusText']}));throw new Error(_0x29b42b['message']||_0x29b42b['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x58612c['json']();},async 'deleteRoleDefinition'(_0x1967dd){const _0x42705d=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x1967dd),{'method':'DELETE'});if(!_0x42705d['ok']){const _0x13a6d3=await _0x42705d['json']()['catch'](()=>({'message':_0x42705d['statusText']}));throw new Error(_0x13a6d3['message']||_0x13a6d3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x42705d['json']();},async 'getAvailablePermissions'(){const _0x3808ca=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3808ca['ok']){const _0x2f5573=await _0x3808ca['json']()['catch'](()=>({'message':_0x3808ca['statusText']}));throw new Error(_0x2f5573['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3808ca['json']();},async 'getGitProviderAllowedTeams'(_0xce2592){const _0x21545c=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0xce2592)+'/allowed-teams');if(!_0x21545c['ok']){const _0x98b765=await _0x21545c['json']()['catch'](()=>({'message':_0x21545c['statusText']}));throw new Error(_0x98b765['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x21545c['json']();},async 'setGitProviderAllowedTeams'(_0x4e1459,_0x47c855){const _0x133986=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x4e1459)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x47c855})});if(!_0x133986['ok']){const _0x132c60=await _0x133986['json']()['catch'](()=>({'message':_0x133986['statusText']}));throw new Error(_0x132c60['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x133986['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 _0x5d39d6=toastState['baseBottom'];toastState['toasts']['forEach'](_0x225632=>{_0x225632['el']['style']['bottom']=_0x5d39d6+'px';const _0x32da7f=_0x225632['el']['offsetHeight']||toastState['defaultHeight'];_0x5d39d6+=_0x32da7f+toastState['gap'];});});}function removeToastById(_0x38b45e){const _0x3e29cc=toastState['toasts']['findIndex'](_0x1843d6=>_0x1843d6['id']===_0x38b45e);if(_0x3e29cc===-0x1)return;const _0x3fec47=toastState['toasts'][_0x3e29cc];if(_0x3fec47['timeoutId'])clearTimeout(_0x3fec47['timeoutId']);_0x3fec47['el']['classList']['remove']('show'),setTimeout(()=>_0x3fec47['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3e29cc,0x1),repositionAllToasts();}function registerToast(_0x1d33ab){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x1d33ab),repositionAllToasts(),_0x1d33ab['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(_0x56716e){if(_0x56716e===null||_0x56716e===undefined)return'';return String(_0x56716e)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0xb16861,_0x79f445){if(_0xb16861&&typeof _0xb16861==='object'&&!Array['isArray'](_0xb16861))return{'code':typeof _0xb16861['text']==='string'?_0xb16861['text']:'','language':typeof _0xb16861['lang']==='string'?_0xb16861['lang']:''};return{'code':typeof _0xb16861==='string'?_0xb16861:'','language':typeof _0x79f445==='string'?_0x79f445:''};}function buildMermaidBlock(_0x4eb9c8){const _0x1f05c1=String(_0x4eb9c8||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x1f05c1))+'\x22>'+escapeHtmlValue(_0x1f05c1)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x590ccd=new marked['Renderer'](),_0x339b65=_0x590ccd['code']['bind'](_0x590ccd);return _0x590ccd['code']=function(_0x3bf0f2,_0x42b5e4,..._0x36f52e){const {code:_0x2ff360,language:_0xd72810}=getMarkdownCodeBlockPayload(_0x3bf0f2,_0x42b5e4),_0x1a2fe9=String(_0xd72810||'')['trim']()['toLowerCase']();if(_0x1a2fe9==='mermaid')return buildMermaidBlock(_0x2ff360);const _0x2f54e2=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x2f54e2&&_0x1a2fe9)try{const _0x507bd7=_0x2f54e2['getLanguage'](_0x1a2fe9)?_0x1a2fe9:'plaintext',_0x57f623=_0x2f54e2['highlight'](_0x2ff360,{'language':_0x507bd7})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1a2fe9)+'\x22>'+_0x57f623+'</code></pre>';}catch(_0x3a2e3d){console['error']('Syntax\x20highlighting\x20error:',_0x3a2e3d);}return _0x339b65(_0x3bf0f2,_0x42b5e4,..._0x36f52e);},sharedMarkedRenderer=_0x590ccd,_0x590ccd;}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 _0x2b2d0b=window['mermaid'];if(!_0x2b2d0b||typeof _0x2b2d0b['initialize']!=='function')return _0x2b2d0b||null;return _0x2b2d0b['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x2b2d0b;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x294f1a,_0x544bbf)=>{const _0x41460f=()=>_0x294f1a(configureMermaidInstance()),_0x38ba76=()=>{mermaidLoadPromise=null,_0x544bbf(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x18ae27=document['getElementById'](MERMAID_SCRIPT_ID);!_0x18ae27&&(_0x18ae27=document['createElement']('script'),_0x18ae27['id']=MERMAID_SCRIPT_ID,_0x18ae27['src']=MERMAID_SCRIPT_SRC,_0x18ae27['async']=!![],document['head']['appendChild'](_0x18ae27));if(window['mermaid']){_0x41460f();return;}_0x18ae27['addEventListener']('load',_0x41460f,{'once':!![]}),_0x18ae27['addEventListener']('error',_0x38ba76,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x4968d1){const _0x2ae8e2=_0x4968d1['getAttribute']('data-mermaid-source');if(!_0x2ae8e2)return null;let _0x3a6cf8=_0x2ae8e2;try{_0x3a6cf8=decodeURIComponent(_0x2ae8e2);}catch{}return _0x4968d1['textContent']=_0x3a6cf8,_0x4968d1['removeAttribute']('data-processed'),_0x4968d1['removeAttribute']('aria-roledescription'),_0x4968d1['removeAttribute']('role'),_0x4968d1['removeAttribute']('aria-label'),_0x3a6cf8;}function collectMermaidNodes(_0x211d37,_0x51d721){if(!(_0x211d37 instanceof Element))return;_0x211d37['matches']('.mermaid[data-mermaid-source]')&&_0x51d721['add'](_0x211d37),_0x211d37['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5a732f=>{_0x51d721['add'](_0x5a732f);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x135f33=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xf3a95b=>setTimeout(_0xf3a95b,0x0);_0x135f33(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x29059e=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x29059e);});});}function queueMermaidRender(_0x3f8fd5){const _0x413d6b=new Set();_0x3f8fd5 instanceof Document||_0x3f8fd5 instanceof DocumentFragment?_0x3f8fd5['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5503f1=>_0x413d6b['add'](_0x5503f1)):collectMermaidNodes(_0x3f8fd5,_0x413d6b);if(_0x413d6b['size']===0x0)return;_0x413d6b['forEach'](_0x1874c1=>pendingMermaidNodes['add'](_0x1874c1)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x1d3f0b=Array['from'](pendingMermaidNodes)['filter'](_0xf80245=>_0xf80245['isConnected']);pendingMermaidNodes['clear']();if(_0x1d3f0b['length']===0x0)return;const _0x40718c=await loadMermaid();if(!_0x40718c)return;configureMermaidInstance();const _0x46334f=getMermaidTheme();for(const _0x58cd14 of _0x1d3f0b){const _0x1db774=_0x58cd14['getAttribute']('data-mermaid-source');if(!_0x1db774)continue;const _0x370118=_0x58cd14['getAttribute']('data-processed')==='true';if(_0x370118&&_0x58cd14['dataset']['mermaidTheme']===_0x46334f)continue;restoreMermaidSource(_0x58cd14);try{if(typeof _0x40718c['run']==='function')await _0x40718c['run']({'nodes':[_0x58cd14]});else typeof _0x40718c['init']==='function'&&_0x40718c['init'](undefined,[_0x58cd14]);_0x58cd14['dataset']['mermaidTheme']=_0x46334f,delete _0x58cd14['dataset']['mermaidError'];}catch(_0xc17683){console['error']('Mermaid\x20render\x20failed:',_0xc17683),restoreMermaidSource(_0x58cd14),_0x58cd14['dataset']['mermaidError']='true',delete _0x58cd14['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x2c9648=>{_0x2c9648['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x2c9648);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x15748b=>{_0x15748b['forEach'](_0x3fa856=>{_0x3fa856['addedNodes']['forEach'](_0x37d166=>{_0x37d166['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x37d166);});});}),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'(_0x3273bb){const _0x293896=new Date(_0x3273bb),_0x39dd0c=new Date(),_0x148f8d=_0x39dd0c-_0x293896,_0x31b583=Math['floor'](_0x148f8d/0x3e8),_0x197319=Math['floor'](_0x31b583/0x3c),_0x43fc38=Math['floor'](_0x197319/0x3c),_0x5686b8=Math['floor'](_0x43fc38/0x18);if(_0x31b583<0x3c)return'now';if(_0x197319<0x3c)return _0x197319+'m\x20ago';if(_0x43fc38<0x18)return _0x43fc38+'h\x20ago';return _0x5686b8+'d\x20ago';},'getStatusIcon'(_0x38e401){switch(_0x38e401){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1c4668){switch(_0x1c4668){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'(_0x3042fa,_0x57377b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x29f711={};_0x29f711['text/plain']=new Blob([_0x3042fa],{'type':'text/plain'});_0x57377b&&(_0x29f711['text/html']=new Blob([_0x57377b],{'type':'text/html'}));const _0x5c5c74=new ClipboardItem(_0x29f711);return await navigator['clipboard']['write']([_0x5c5c74]),!![];}catch(_0x4214ec){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x4214ec);}try{const _0x272a06=_0x5a1e6d=>{_0x5a1e6d['preventDefault'](),_0x5a1e6d['clipboardData']['setData']('text/plain',_0x3042fa),_0x57377b&&_0x5a1e6d['clipboardData']['setData']('text/html',_0x57377b);};document['addEventListener']('copy',_0x272a06);const _0xb6f765=document['execCommand']('copy');document['removeEventListener']('copy',_0x272a06);if(_0xb6f765)return!![];}catch(_0x499498){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x499498);}try{const _0x16da3f=document['createElement']('textarea');_0x16da3f['value']=_0x3042fa,_0x16da3f['style']['position']='fixed',_0x16da3f['style']['opacity']='0',_0x16da3f['style']['pointerEvents']='none',document['body']['appendChild'](_0x16da3f),_0x16da3f['select']();const _0xb8752c=document['execCommand']('copy');return document['body']['removeChild'](_0x16da3f),_0xb8752c;}catch(_0x1d1955){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x1d1955),![];}},'showToast'(_0x38ed37,_0x47266c='info'){const _0x5a3ab2=getNextToastId(),_0x47395b=document['createElement']('div');_0x47395b['className']='toast\x20toast-'+_0x47266c,_0x47395b['textContent']=_0x38ed37,_0x47395b['dataset']['toastId']=_0x5a3ab2,document['body']['appendChild'](_0x47395b);const _0x1f437b=_0x47266c==='error'?0x2710:0xbb8,_0x50f98a=setTimeout(()=>{removeToastById(_0x5a3ab2);},_0x1f437b),_0xa17abf={'id':_0x5a3ab2,'el':_0x47395b,'timeoutId':_0x50f98a};return registerToast(_0xa17abf),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x47395b['classList']['add']('show');});}),_0x5a3ab2;},'showError'(_0x558c11){console['error'](_0x558c11);const _0x47cd15=typeof _0x558c11==='string'?_0x558c11:_0x558c11['message']||'An\x20error\x20occurred';this['showToast'](_0x47cd15,'error');},'showSuccess'(_0x3d3010){this['showToast'](_0x3d3010,'success');},'capitalize'(_0x434c2e){if(!_0x434c2e)return'';return _0x434c2e['charAt'](0x0)['toUpperCase']()+_0x434c2e['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x381c03){return escapeHtmlValue(_0x381c03);},'ansiToHtml'(_0x31853b){if(_0x31853b===null||_0x31853b===undefined)return'';let _0x185bf9=this['escapeHtml'](_0x31853b);const _0x1d7e3b={'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'},_0x2cfb14={'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 _0x3cede1=0x0;return _0x185bf9=_0x185bf9['replace'](/\x1b\[([0-9;]*)m/g,(_0xad35a9,_0x5ae529)=>{if(!_0x5ae529||_0x5ae529==='0'){const _0x5f4a09='</span>'['repeat'](_0x3cede1);return _0x3cede1=0x0,_0x5f4a09;}const _0x599cfe=_0x5ae529['split'](';'),_0x23f814=[];for(const _0x1975e5 of _0x599cfe){if(_0x1975e5==='1')_0x23f814['push']('font-weight:bold');else{if(_0x1975e5==='2')_0x23f814['push']('opacity:0.7');else{if(_0x1975e5==='3')_0x23f814['push']('font-style:italic');else{if(_0x1975e5==='4')_0x23f814['push']('text-decoration:underline');else{if(_0x1975e5==='9')_0x23f814['push']('text-decoration:line-through');else{if(_0x1d7e3b[_0x1975e5])_0x23f814['push']('color:'+_0x1d7e3b[_0x1975e5]);else{if(_0x2cfb14[_0x1975e5])_0x23f814['push']('background-color:'+_0x2cfb14[_0x1975e5]);}}}}}}}if(_0x23f814['length']>0x0)return _0x3cede1++,'<span\x20style=\x22'+_0x23f814['join'](';')+'\x22>';return'';}),_0x185bf9+='</span>'['repeat'](_0x3cede1),_0x185bf9=_0x185bf9['replace'](/\\u001b\[([0-9;]*)m/g,(_0x4f7c98,_0x205ab5)=>{if(!_0x205ab5||_0x205ab5==='0')return'';const _0x2d007e=_0x205ab5['split'](';'),_0x4bb12a=[];for(const _0x59ce87 of _0x2d007e){if(_0x59ce87==='1')_0x4bb12a['push']('font-weight:bold');else{if(_0x1d7e3b[_0x59ce87])_0x4bb12a['push']('color:'+_0x1d7e3b[_0x59ce87]);else{if(_0x2cfb14[_0x59ce87])_0x4bb12a['push']('background-color:'+_0x2cfb14[_0x59ce87]);}}}if(_0x4bb12a['length']>0x0)return'<span\x20style=\x22'+_0x4bb12a['join'](';')+'\x22>';return'';}),_0x185bf9;},'showModal'({title:_0x5ab56b,content:_0x5e17e5,buttons:buttons=[]}){const _0x1f70aa='\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'](_0x5ab56b)+'</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'+_0x5e17e5+'\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']((_0x2a4c0d,_0x3079dd)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x2a4c0d['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3079dd+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x2a4c0d['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',_0x4f31a2=document['createElement']('div');_0x4f31a2['id']='utils-modal',_0x4f31a2['className']='modal',_0x4f31a2['innerHTML']=_0x1f70aa,document['body']['appendChild'](_0x4f31a2);const _0x12aad4=document['getElementById']('utils-modal-close');_0x12aad4&&_0x12aad4['addEventListener']('click',()=>this['hideModal']());const _0x3dfd41=_0x4f31a2['querySelectorAll']('[data-btn-index]');_0x3dfd41['forEach'](_0x51faa3=>{const _0x10305f=parseInt(_0x51faa3['dataset']['btnIndex']);buttons[_0x10305f]?.['onClick']&&_0x51faa3['addEventListener']('click',buttons[_0x10305f]['onClick']);});const _0xb79a9c=document['getElementById']('utils-modal-overlay');_0xb79a9c&&_0xb79a9c['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x231b73=document['getElementById']('utils-modal');_0x231b73&&_0x231b73['remove']();},'parseKeyValuePairs'(_0x484cbd){const _0x3ab1eb={};if(!_0x484cbd)return _0x3ab1eb;return _0x484cbd['split'](/\r?\n/)['map'](_0x3a113f=>_0x3a113f['trim']())['filter'](Boolean)['forEach'](_0x282b0b=>{const _0x4aee4c=_0x282b0b['indexOf']('=');if(_0x4aee4c>0x0){const _0x1893be=_0x282b0b['slice'](0x0,_0x4aee4c)['trim'](),_0xee9959=_0x282b0b['slice'](_0x4aee4c+0x1)['trim']();if(_0x1893be)_0x3ab1eb[_0x1893be]=_0xee9959;}}),_0x3ab1eb;},'debounce'(_0x20b6c1,_0x5034e8=0xfa){let _0x170d13=null;return(..._0x3bb20a)=>{clearTimeout(_0x170d13),_0x170d13=setTimeout(()=>_0x20b6c1['apply'](this,_0x3bb20a),_0x5034e8);};},'formatTimestamp'(_0x420b59){if(!_0x420b59)return'N/A';const _0x473962=new Date(_0x420b59);return _0x473962['toLocaleDateString']()+'\x20'+_0x473962['toLocaleTimeString']();},'getQueryParams'(){const _0x425104=new URLSearchParams(window['location']['search']),_0x5bfbfc={};for(const [_0x58c873,_0x5d9109]of _0x425104){_0x5bfbfc[_0x58c873]=_0x5d9109;}return _0x5bfbfc;},'formatDuration'(_0x172c10,_0xb4178b){if(!_0x172c10)return'N/A';const _0x7a1bad=new Date(_0x172c10),_0x42314e=_0xb4178b?new Date(_0xb4178b):new Date(),_0xf11ba5=_0x42314e-_0x7a1bad;if(_0xf11ba5<0x0)return'0s';const _0x1aa1ea=Math['floor'](_0xf11ba5/0x3e8),_0x32762f=Math['floor'](_0x1aa1ea/0x3c),_0x3572ab=Math['floor'](_0x32762f/0x3c),_0x242677=Math['floor'](_0x3572ab/0x18);if(_0x1aa1ea<0x3c)return _0x1aa1ea+'s';if(_0x32762f<0x3c)return _0x32762f+'m\x20'+_0x1aa1ea%0x3c+'s';if(_0x3572ab<0x18)return _0x3572ab+'h\x20'+_0x32762f%0x3c+'m\x20'+_0x1aa1ea%0x3c+'s';return _0x242677+'d\x20'+_0x3572ab%0x18+'h\x20'+_0x32762f%0x3c+'m';},'renderMarkdown'(_0x41d044,_0x33a489={}){if(!_0x41d044)return'';_0x41d044=this['rewriteAttachmentLinks'](_0x41d044,_0x33a489),_0x41d044=this['rewriteColorSyntax'](_0x41d044);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x41d044,_0x33a489);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x41d044);}catch(_0x148902){return console['error']('Markdown\x20parsing\x20error:',_0x148902),this['renderMarkdownFallback'](_0x41d044,_0x33a489);}},'rewriteAttachmentLinks'(_0x23f313,_0x18dccb={}){const _0x44faf2=typeof _0x18dccb['resolveAttachmentUrl']==='function'?_0x18dccb['resolveAttachmentUrl']:_0x18dccb['taskId']?_0x808619=>API_BASE+'/tasks/'+_0x18dccb['taskId']+'/attachments/'+encodeURIComponent(_0x808619):null;if(!_0x44faf2)return _0x23f313;return String(_0x23f313)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x4718c5,_0x36626e)=>{const _0x4c63db=String(_0x36626e||'')['trim']();if(!_0x4c63db)return _0x4718c5;let _0x54c2cd=_0x4c63db;try{_0x54c2cd=decodeURIComponent(_0x4c63db);}catch{}const _0x5abe6e=_0x44faf2(_0x54c2cd);if(!_0x5abe6e)return _0x4718c5;return']('+_0x5abe6e+')';});},'rewriteColorSyntax'(_0xb33ac8){if(!_0xb33ac8)return _0xb33ac8;return String(_0xb33ac8)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x20fbc9,_0x18012a,_0x46054a)=>{const _0x42e987=this['rewriteColorSyntax'](_0x46054a);return'<span\x20style=\x22color:\x20'+_0x18012a+'\x22>'+_0x42e987+'</span>';});},'renderMarkdownFallback'(_0x2cd6f7,_0x26ec44={}){if(!_0x2cd6f7)return'';_0x2cd6f7=_0x2cd6f7['replace'](/\r\n/g,'\x0a'),_0x2cd6f7=_0x2cd6f7['replace'](/\r/g,'\x0a'),_0x2cd6f7=this['rewriteAttachmentLinks'](_0x2cd6f7,_0x26ec44);let _0x3bc40e=this['escapeHtml'](_0x2cd6f7);return _0x3bc40e=_0x3bc40e['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3bc40e=_0x3bc40e['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3bc40e=_0x3bc40e['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3bc40e=_0x3bc40e['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3bc40e=_0x3bc40e['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3bc40e=_0x3bc40e['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3bc40e=_0x3bc40e['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3bc40e=_0x3bc40e['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3bc40e=_0x3bc40e['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3bc40e=_0x3bc40e['replace'](/\n\n/g,'</p><p>'),_0x3bc40e=_0x3bc40e['replace'](/\n/g,'<br>'),'<p>'+_0x3bc40e+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x581a27=new Uint8Array(0x10);crypto['getRandomValues'](_0x581a27),_0x581a27[0x6]=_0x581a27[0x6]&0xf|0x40,_0x581a27[0x8]=_0x581a27[0x8]&0x3f|0x80;const _0x34b9d5=Array['from'](_0x581a27,_0x1171dc=>_0x1171dc['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x34b9d5['slice'](0x0,0x8)+'-'+_0x34b9d5['slice'](0x8,0xc)+'-'+_0x34b9d5['slice'](0xc,0x10)+'-'+_0x34b9d5['slice'](0x10,0x14)+'-'+_0x34b9d5['slice'](0x14);}};export class CustomSelect{constructor(_0x5e9448,_0x2d4424={}){this['nativeSelect']=_0x5e9448,this['options']=_0x2d4424,this['isOpen']=![],this['selectedValue']=_0x5e9448['value']||'',this['searchable']=_0x2d4424['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x209b02=document['createElement']('div');_0x209b02['className']='custom-select';const _0x11cde0=document['createElement']('div');_0x11cde0['className']='custom-select-trigger',_0x11cde0['setAttribute']('tabindex','0'),_0x11cde0['setAttribute']('role','button'),_0x11cde0['setAttribute']('aria-haspopup','listbox');const _0xca7ca5=document['createElement']('span');_0xca7ca5['className']='custom-select-trigger-text';const _0x2f6386=document['createElement']('span');_0x2f6386['className']='custom-select-arrow',_0x2f6386['textContent']='▼',_0x11cde0['appendChild'](_0xca7ca5),_0x11cde0['appendChild'](_0x2f6386);const _0x1c6644=document['createElement']('div');_0x1c6644['className']='custom-select-dropdown',_0x1c6644['setAttribute']('role','listbox');if(this['searchable']){const _0x79cd69=document['createElement']('div');_0x79cd69['className']='custom-select-search';const _0xbe426a=document['createElement']('input');_0xbe426a['type']='text',_0xbe426a['className']='custom-select-search-input',_0xbe426a['placeholder']='Type\x20to\x20search...',_0xbe426a['setAttribute']('aria-label','Search\x20options'),_0xbe426a['addEventListener']('input',_0x529fd2=>{this['searchQuery']=_0x529fd2['target']['value']['toLowerCase'](),this['filterOptions']();}),_0xbe426a['addEventListener']('keydown',_0x3ca657=>{if(_0x3ca657['key']==='Escape')_0x3ca657['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x3ca657['key']==='Enter'){_0x3ca657['preventDefault'](),_0x3ca657['stopPropagation']();const _0x4d121a=_0x1c6644['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x4d121a){const _0x4181ea=_0x4d121a['getAttribute']('data-value');this['select'](_0x4181ea);}}}}),_0x79cd69['appendChild'](_0xbe426a),_0x1c6644['appendChild'](_0x79cd69),this['searchInput']=_0xbe426a;}const _0xb20478=document['createElement']('div');_0xb20478['className']='custom-select-options',_0x1c6644['appendChild'](_0xb20478),_0x209b02['appendChild'](_0x11cde0),_0x209b02['appendChild'](_0x1c6644),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x209b02,this['nativeSelect']),this['wrapper']=_0x209b02,this['trigger']=_0x11cde0,this['triggerText']=_0xca7ca5,this['dropdown']=_0x1c6644,this['optionsContainer']=_0xb20478,_0x11cde0['addEventListener']('click',()=>this['toggle']()),_0x11cde0['addEventListener']('keydown',_0x258ea1=>this['handleKeydown'](_0x258ea1)),document['addEventListener']('click',_0x15cb04=>{!_0x209b02['contains'](_0x15cb04['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x31b28b=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x31b28b['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x3bd89e=new MutationObserver(()=>{this['updateDisabledState']();});_0x3bd89e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x14aace=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x14aace['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x4052f9=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x4052f9),this['trigger']['setAttribute']('aria-disabled',_0x4052f9?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x4052f9?'-1':'0'),_0x4052f9&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x2c49c9=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x8aab76=_0x2c49c9['filter'](_0x2926e7=>!_0x2926e7['disabled']&&!_0x2926e7['hidden']);_0x2c49c9['forEach']((_0x5ba3f5,_0x435eee)=>{const _0x5eeda=document['createElement']('div');_0x5eeda['className']='custom-select-option',_0x5eeda['textContent']=_0x5ba3f5['textContent'],_0x5eeda['setAttribute']('data-value',_0x5ba3f5['value']),_0x5eeda['setAttribute']('data-index',_0x435eee),_0x5eeda['setAttribute']('role','option'),_0x5ba3f5['disabled']?_0x5eeda['classList']['add']('disabled'):_0x5eeda['addEventListener']('click',()=>this['select'](_0x5ba3f5['value'])),_0x5ba3f5['value']===this['selectedValue']&&_0x5eeda['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x5eeda),this['allOptions']['push']({'element':_0x5eeda,'text':_0x5ba3f5['textContent']['toLowerCase'](),'value':_0x5ba3f5['value'],'disabled':_0x5ba3f5['disabled']});});if(this['searchable']&&this['searchInput']){const _0x26e770=this['searchInput']['parentElement'];_0x8aab76['length']>0x3?_0x26e770['style']['display']='':_0x26e770['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2196c6=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x49c949=>{if(!_0x2196c6||_0x49c949['disabled'])_0x49c949['element']['style']['display']='';else{const _0x2fa928=_0x49c949['text']['includes'](_0x2196c6);_0x49c949['element']['style']['display']=_0x2fa928?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x10d04d){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x10d04d,this['nativeSelect']['value']=_0x10d04d;const _0x51cbd1=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x51cbd1),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x1cae12=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x1cae12&&(this['triggerText']['textContent']=_0x1cae12['textContent'],_0x1cae12['disabled']||_0x1cae12['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x44257b=>{_0x44257b['getAttribute']('data-value')===this['selectedValue']?_0x44257b['classList']['add']('selected'):_0x44257b['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 _0x468bcf=window['getComputedStyle'](this['dropdown']);if(_0x468bcf['position']==='fixed'){const _0x48f4d4=this['trigger']['getBoundingClientRect'](),_0xe7985c=parseInt(_0x468bcf['maxHeight'])||0xc8,_0x285797=window['innerHeight'],_0x2d8892=_0x285797-_0x48f4d4['bottom'],_0x3928e6=_0x48f4d4['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x4aeeb2;_0x2d8892<_0xe7985c&&_0x3928e6>_0x2d8892?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x285797-_0x48f4d4['top']+'px',_0x4aeeb2=Math['min'](_0xe7985c,_0x3928e6-0xa),this['dropdown']['style']['maxHeight']=_0x4aeeb2+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x48f4d4['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x4aeeb2=Math['min'](_0xe7985c,_0x2d8892-0xa),this['dropdown']['style']['maxHeight']=_0x4aeeb2+'px');if(this['optionsContainer']){let _0x1330ab=_0x4aeeb2;if(this['searchInput']){const _0x3cfb72=this['searchInput']['parentElement'];_0x3cfb72&&(_0x1330ab-=_0x3cfb72['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x1330ab)+'px';}this['dropdown']['style']['left']=_0x48f4d4['left']+'px',this['dropdown']['style']['width']=_0x48f4d4['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x41f907=this['searchInput']['parentElement'];_0x41f907&&_0x41f907['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'](_0x137652){if(this['nativeSelect']['disabled'])return;if(_0x137652['key']==='Enter'||_0x137652['key']==='\x20')_0x137652['preventDefault'](),this['toggle']();else _0x137652['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x45e1eb='\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',_0x45e1eb),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x2030bb=document['getElementById']('confirm-dialog-close'),_0x487eef=document['getElementById']('confirm-dialog-cancel'),_0x54b182=document['getElementById']('confirm-dialog-confirm'),_0x1d5170=this['_modal']['querySelector']('.modal-overlay');_0x2030bb['addEventListener']('click',()=>this['_resolve'](![])),_0x487eef['addEventListener']('click',()=>this['_resolve'](![])),_0x54b182['addEventListener']('click',()=>this['_resolve'](!![])),_0x1d5170['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x2c215d=>{if(_0x2c215d['key']==='Escape')_0x2c215d['preventDefault'](),this['_resolve'](![]);else _0x2c215d['key']==='Enter'&&(_0x2c215d['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x39b14a,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x1ec886=>{this['_resolvePromise']=_0x1ec886,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x39b14a;const _0x502249=document['getElementById']('confirm-dialog-cancel'),_0x33e062=document['getElementById']('confirm-dialog-confirm');_0x502249['textContent']=cancelText,_0x33e062['textContent']=confirmText,_0x33e062['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x33e062['focus']();});},'_resolve'(_0x55b2d9){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x55b2d9),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x57586a,_0xe49423={}){this['container']=_0x57586a,this['options']={'placeholder':_0xe49423['placeholder']||'Type\x20to\x20search...','maxItems':_0xe49423['maxItems']||0x64,'loadItems':_0xe49423['loadItems']||(async()=>[]),'renderItem':_0xe49423['renderItem']||(_0x37494a=>({'primary':String(_0x37494a),'secondary':''})),'onSelect':_0xe49423['onSelect']||(()=>{}),'filterItems':_0xe49423['filterItems']||null,'getItemValue':_0xe49423['getItemValue']||(_0x1c2b21=>_0x1c2b21),'sortItems':_0xe49423['sortItems']||null,'debounceMs':_0xe49423['debounceMs']||0xc8,'minCharsForSearch':_0xe49423['minCharsForSearch']||0x0,'emptyMessage':_0xe49423['emptyMessage']||'No\x20results\x20found','loadingMessage':_0xe49423['loadingMessage']||'Loading...','preload':_0xe49423['preload']!==![],'searchMode':_0xe49423['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',_0x3a2502=>this['onBlur'](_0x3a2502)),this['input']['addEventListener']('input',_0x39a7ee=>this['onInput'](_0x39a7ee)),this['input']['addEventListener']('keydown',_0x3af13b=>this['onKeydown'](_0x3af13b)),this['clearBtn']['addEventListener']('mousedown',_0x4cbd5f=>{_0x4cbd5f['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x33d35a=>{_0x33d35a['preventDefault']();}),document['addEventListener']('click',_0x462927=>{!this['wrapper']['contains'](_0x462927['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(_0x1aad50){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x1aad50);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5cea1e){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0xdf1254){const _0x5cc36b=_0xdf1254['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x5cc36b);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x5cc36b):this['loadAndShow'](_0x5cc36b);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x8fcafa){switch(_0x8fcafa['key']){case'ArrowDown':_0x8fcafa['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x8fcafa['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x8fcafa['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x8fcafa['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x53b854){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x272314=this['selectedIndex']+_0x53b854;if(_0x272314>=0x0&&_0x272314<this['filteredItems']['length']){this['selectedIndex']=_0x272314,this['updateSelectionHighlight']();const _0x5959df=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x5959df[this['selectedIndex']]&&_0x5959df[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x3e60ed=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x3e60ed['forEach']((_0x22ebeb,_0x495d0a)=>{_0x22ebeb['classList']['toggle']('keyboard-selected',_0x495d0a===this['selectedIndex']);});}async['loadAndShow'](_0x268e65){this['showLoading']();try{const _0x2f26ff=await this['options']['loadItems'](_0x268e65);if(this['options']['searchMode']==='server'){let _0x57b75e=_0x2f26ff;this['options']['sortItems']&&(_0x57b75e=this['options']['sortItems']([..._0x2f26ff]));this['filteredItems']=_0x57b75e;const _0x78becf=this['filteredItems']['length']>=this['options']['maxItems'];_0x78becf&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x78becf),this['open']();}else this['allItems']=_0x2f26ff,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x268e65);}catch(_0x29e758){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x29e758),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x594f2b){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x594f2b):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x3f69f5=this['filteredItems']['length']>=this['options']['maxItems'];_0x3f69f5&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x3f69f5),this['open']();}['renderItems'](_0x393b29){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']((_0xa7520,_0x341f3d)=>{const _0x288623=document['createElement']('div');_0x288623['className']='autocomplete-select-item',_0x288623['setAttribute']('role','option'),_0x288623['setAttribute']('data-index',_0x341f3d);const _0x4bd251=this['options']['renderItem'](_0xa7520);let _0x59bb12='';_0x4bd251['icon']&&(_0x59bb12='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x4bd251['iconClass']||'')+'\x22>'+_0x4bd251['icon']+'</span>'),_0x288623['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x59bb12+'\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'](_0x4bd251['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4bd251['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x4bd251['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x288623['addEventListener']('click',()=>{this['selectItem'](_0xa7520);}),_0x288623['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x341f3d,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x288623);}),_0x393b29?(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'](_0x48fee8){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x48fee8)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x13f102){this['selectedItem']=_0x13f102;const _0x1603b7=this['options']['renderItem'](_0x13f102);this['input']['value']=_0x1603b7['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x13f102);}['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'](_0x202f9f){if(_0x202f9f){this['selectedItem']=_0x202f9f;const _0x117c62=this['options']['renderItem'](_0x202f9f);this['input']['value']=_0x117c62['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x46ffc0){this['allItems']=_0x46ffc0,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'](_0x4be099){this['input']['placeholder']=_0x4be099;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x1dbad0=null){const _0x30987c=document['getElementById']('admin-menu-container'),_0xd7d096=document['getElementById']('admin-menu-btn'),_0x4d7c67=document['getElementById']('admin-menu');if(!_0x30987c||!_0xd7d096||!_0x4d7c67)return;try{!_0x1dbad0&&(_0x1dbad0=await API['getCurrentUser']());if(_0x1dbad0){const _0x21f637=window['Permissions'],_0x23c497=_0x21f637['hasServerPermission'](_0x1dbad0,'*')||_0x21f637['hasEnvPermission'](_0x1dbad0,'environments:manage')||_0x21f637['hasServerPermission'](_0x1dbad0,'users:create')||_0x21f637['hasTeamPermission'](_0x1dbad0,'teams:manage')||_0x21f637['hasEnvPermission'](_0x1dbad0,'environments:view_details');if(!_0x23c497)return;_0x30987c['hidden']=![];if(!_0x21f637['hasServerPermission'](_0x1dbad0,'*')){const _0x163aa5=_0x4d7c67['querySelectorAll']('.admin-menu-item');_0x163aa5['forEach'](_0x5dad9d=>{const _0x5c39cc=_0x5dad9d['querySelector']('.option-text')?.['textContent']?.['trim']();_0x5c39cc==='Users'&&!_0x21f637['hasServerPermission'](_0x1dbad0,'users:create')&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Skills'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Server\x20Settings'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Server\x20Administration'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Git\x20History'&&(_0x5dad9d['hidden']=!![]),_0x5c39cc==='Roles'&&(_0x5dad9d['hidden']=!![]);});}_0xd7d096['addEventListener']('click',_0x2b668e=>{_0x2b668e['stopPropagation']();const _0x48f144=document['getElementById']('actions-menu');if(_0x48f144)_0x48f144['hidden']=!![];_0x4d7c67['hidden']=!_0x4d7c67['hidden'];}),document['addEventListener']('click',_0x5cb311=>{!_0x4d7c67['hidden']&&!_0xd7d096['contains'](_0x5cb311['target'])&&!_0x4d7c67['contains'](_0x5cb311['target'])&&(_0x4d7c67['hidden']=!![]);}),document['addEventListener']('keydown',_0x229c88=>{_0x229c88['key']==='Escape'&&!_0x4d7c67['hidden']&&(_0x4d7c67['hidden']=!![]);});}}catch(_0x452782){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x452782['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 _0x2fd19f=window['location']['pathname'],_0x7d15a2=_0x2fd19f['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x7d15a2)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x7d15a2[0x1]),_0x7d15a2[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x130352={}){const _0x125b8e=new URLSearchParams();_0x130352['userId']&&_0x125b8e['set']('userId',String(_0x130352['userId']));_0x130352['automation']&&_0x125b8e['set']('automation',String(_0x130352['automation']));const _0xec10cf=API_BASE+'/tasks/stats'+(_0x125b8e['toString']()?'?'+_0x125b8e['toString']():''),_0x199538=await fetch(_0xec10cf);if(!_0x199538['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x199538['statusText']);return await _0x199538['json']();},async 'getTasks'(_0x3aa03a={}){const _0x1d1e37=new URLSearchParams();_0x3aa03a['status']&&_0x1d1e37['set']('status',String(_0x3aa03a['status']));_0x3aa03a['environment']&&_0x1d1e37['set']('environment',String(_0x3aa03a['environment']));_0x3aa03a['automation']&&_0x1d1e37['set']('automation',String(_0x3aa03a['automation']));if(_0x3aa03a['include']){const _0x5dc8f3=Array['isArray'](_0x3aa03a['include'])?_0x3aa03a['include']['join'](','):String(_0x3aa03a['include']);_0x5dc8f3&&_0x1d1e37['set']('include',_0x5dc8f3);}_0x3aa03a['filter']&&_0x1d1e37['set']('filter',String(_0x3aa03a['filter']));_0x3aa03a['page']&&_0x1d1e37['set']('page',String(_0x3aa03a['page']));_0x3aa03a['limit']&&_0x1d1e37['set']('limit',String(_0x3aa03a['limit']));_0x3aa03a['userId']&&_0x1d1e37['set']('userId',String(_0x3aa03a['userId']));_0x3aa03a['search']&&_0x1d1e37['set']('search',String(_0x3aa03a['search']));_0x3aa03a['includeChildTasks']&&_0x1d1e37['set']('includeChildTasks','true');const _0x57656e=API_BASE+'/tasks'+(_0x1d1e37['toString']()?'?'+_0x1d1e37['toString']():''),_0xbd64c9=await fetch(_0x57656e);if(!_0xbd64c9['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0xbd64c9['statusText']);return await _0xbd64c9['json']();},async 'getAutomations'(_0x18f768={}){const _0x5e21de=new URLSearchParams();_0x18f768['environment']&&_0x5e21de['set']('environment',String(_0x18f768['environment']));const _0x336d50=await fetch(API_BASE+'/api/automations'+(_0x5e21de['toString']()?'?'+_0x5e21de['toString']():''));if(!_0x336d50['ok']){const _0x256ae2=await _0x336d50['json']()['catch'](()=>({}));throw new Error(_0x256ae2['message']||_0x256ae2['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x336d50['statusText']);}return await _0x336d50['json']();},async 'getAutomation'(_0x36b72c){const _0x579940=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36b72c));if(!_0x579940['ok']){const _0x467cd9=await _0x579940['json']()['catch'](()=>({}));throw new Error(_0x467cd9['message']||_0x467cd9['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x579940['statusText']);}return await _0x579940['json']();},async 'createAutomation'(_0x563cca){const _0x29910b=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x563cca||{})});if(!_0x29910b['ok']){const _0x4982ed=await _0x29910b['json']()['catch'](()=>({}));throw new Error(_0x4982ed['message']||_0x4982ed['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x29910b['statusText']);}return await _0x29910b['json']();},async 'updateAutomation'(_0x14f3ea,_0x4dd22f){const _0x4d953d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x14f3ea),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4dd22f||{})});if(!_0x4d953d['ok']){const _0xb0c568=await _0x4d953d['json']()['catch'](()=>({}));throw new Error(_0xb0c568['message']||_0xb0c568['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x4d953d['statusText']);}return await _0x4d953d['json']();},async 'deleteAutomation'(_0x67274b){const _0xdb0317=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x67274b),{'method':'DELETE'});if(!_0xdb0317['ok']){const _0x4a28e3=await _0xdb0317['json']()['catch'](()=>({}));throw new Error(_0x4a28e3['message']||_0x4a28e3['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xdb0317['statusText']);}return await _0xdb0317['json']();},async 'triggerAutomation'(_0x226ca4){const _0x3c9066=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x226ca4)+'/trigger',{'method':'POST'});if(!_0x3c9066['ok']){const _0x544474=await _0x3c9066['json']()['catch'](()=>({}));throw new Error(_0x544474['message']||_0x544474['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3c9066['statusText']);}return await _0x3c9066['json']();},async 'setAutomationEnabled'(_0x3ac3cd,_0x1a5e8f){const _0x44986b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3ac3cd)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x1a5e8f})});if(!_0x44986b['ok']){const _0x5a5c7c=await _0x44986b['json']()['catch'](()=>({}));throw new Error(_0x5a5c7c['message']||_0x5a5c7c['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x44986b['statusText']);}return await _0x44986b['json']();},async 'getAutomationHistory'(_0x2ca864,_0x46233f=0x32){const _0x37c793=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2ca864)+'/history?limit='+encodeURIComponent(String(_0x46233f)));if(!_0x37c793['ok']){const _0x50340b=await _0x37c793['json']()['catch'](()=>({}));throw new Error(_0x50340b['message']||_0x50340b['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x37c793['statusText']);}return await _0x37c793['json']();},async 'getTask'(_0x35de6e,_0x835f85={}){const _0x294b2b=new URLSearchParams();if(_0x835f85['include']){const _0x2b4995=Array['isArray'](_0x835f85['include'])?_0x835f85['include']['join'](','):String(_0x835f85['include']);if(_0x2b4995)_0x294b2b['set']('include',_0x2b4995);}const _0x5f178=await fetch(API_BASE+'/tasks/'+_0x35de6e+(_0x294b2b['toString']()?'?'+_0x294b2b['toString']():''));if(!_0x5f178['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5f178['statusText']);return await _0x5f178['json']();},async 'getTaskResults'(_0x1a7ad3){const _0x393af4=await fetch(API_BASE+'/tasks/'+_0x1a7ad3+'/results');if(!_0x393af4['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x393af4['statusText']);return await _0x393af4['json']();},async 'getTaskPatches'(_0x63d952){const _0x38bf41=await fetch(API_BASE+'/tasks/'+_0x63d952+'/patches');if(!_0x38bf41['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x38bf41['statusText']);return await _0x38bf41['json']();},async 'getTaskAttachments'(_0x38572a){const _0x1f62a3=await fetch(API_BASE+'/tasks/'+_0x38572a+'/attachments');if(!_0x1f62a3['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x1f62a3['statusText']);return await _0x1f62a3['json']();},async 'uploadAttachments'(_0x535f55,_0x280298){const _0x1201dd=new FormData();for(const _0x215aca of _0x280298){_0x1201dd['append']('attachments',_0x215aca);}const _0x48e6e6=await fetch(API_BASE+'/tasks/'+_0x535f55+'/attachments',{'method':'POST','body':_0x1201dd});if(!_0x48e6e6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x48e6e6['statusText']);return await _0x48e6e6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x1bf65c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x1bf65c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x1bf65c['json']();}catch(_0x308590){return{'available':![],'reason':_0x308590['message']};}},async 'generateTaskName'(_0x44aa78){try{const _0x453033=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x44aa78})});return await _0x453033['json']();}catch(_0x3064d6){return{'success':![],'error':_0x3064d6['message']};}},async 'createTask'(_0x5bcb2e){let _0x2e7057,_0x4d0cf8={};if(_0x5bcb2e['files']&&_0x5bcb2e['files']['length']>0x0){const _0x34e00f=new FormData();for(const [_0x5eb7fb,_0x140958]of Object['entries'](_0x5bcb2e)){if(_0x5eb7fb!=='files'){if(_0x140958==null)continue;typeof _0x140958==='object'?_0x34e00f['append'](_0x5eb7fb,JSON['stringify'](_0x140958)):_0x34e00f['append'](_0x5eb7fb,String(_0x140958));}}for(const _0x57f6c1 of _0x5bcb2e['files']){_0x34e00f['append']('attachments',_0x57f6c1);}_0x2e7057=_0x34e00f;}else _0x4d0cf8['Content-Type']='application/json',_0x2e7057=JSON['stringify'](_0x5bcb2e);const _0x20b617=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4d0cf8,'body':_0x2e7057});if(!_0x20b617['ok']){const _0x1aa3c6=await _0x20b617['json'](),_0x3ba39a=new Error(_0x1aa3c6['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20b617['statusText']),{message:_0xbe5fcb,..._0xee2a10}=_0x1aa3c6;Object['assign'](_0x3ba39a,_0xee2a10);throw _0x3ba39a;}return await _0x20b617['json']();},async 'createTestTask'(_0x3688ee){const _0x22bb0d=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3688ee)});if(!_0x22bb0d['ok']){const _0x4b9489=await _0x22bb0d['json']();throw new Error(_0x4b9489['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x22bb0d['statusText']);}return await _0x22bb0d['json']();},async 'createEphemeralTest'(_0x124ef5){const _0x4fa64e=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x124ef5)});if(!_0x4fa64e['ok']){const _0x48279c=await _0x4fa64e['json']();throw new Error(_0x48279c['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x4fa64e['statusText']);}return await _0x4fa64e['json']();},async 'createDeployTask'(_0x3e0db4){const _0xe12ce7=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3e0db4)});if(!_0xe12ce7['ok']){const _0x537243=await _0xe12ce7['json']();throw new Error(_0x537243['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0xe12ce7['statusText']);}return await _0xe12ce7['json']();},async 'getEnvironments'(){const _0x2c368a=await fetch(API_BASE+'/environments');if(!_0x2c368a['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x2c368a['statusText']);return await _0x2c368a['json']();},async 'getEnvironment'(_0x53fa06){const _0x211568=await fetch(API_BASE+'/environments/'+_0x53fa06);if(!_0x211568['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x211568['statusText']);return await _0x211568['json']();},async 'getEnvironmentRepoHistory'(_0x17d83f,_0x526a36,_0x3b37e6={}){if(!_0x17d83f||!_0x526a36)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x25a40a=new URLSearchParams();if(_0x3b37e6['limit'])_0x25a40a['set']('limit',String(_0x3b37e6['limit']));if(_0x3b37e6['offset'])_0x25a40a['set']('offset',String(_0x3b37e6['offset']));if(_0x3b37e6['search'])_0x25a40a['set']('search',String(_0x3b37e6['search']));if(_0x3b37e6['branch'])_0x25a40a['set']('branch',String(_0x3b37e6['branch']));const _0x362cb3=API_BASE+'/environments/'+encodeURIComponent(_0x17d83f)+'/repos/'+encodeURIComponent(_0x526a36)+'/git/history',_0x560a60=await fetch(''+_0x362cb3+(_0x25a40a['toString']()?'?'+_0x25a40a['toString']():''));if(!_0x560a60['ok']){const _0x43671d=await _0x560a60['json']()['catch'](()=>({}));throw new Error(_0x43671d['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x560a60['statusText']);}return await _0x560a60['json']();},async 'getEnvironmentRepoCommit'(_0x17289b,_0x5ad29b,_0x465de5){if(!_0x17289b||!_0x5ad29b||!_0x465de5)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x1ac195=API_BASE+'/environments/'+encodeURIComponent(_0x17289b)+'/repos/'+encodeURIComponent(_0x5ad29b)+'/git/commits/'+encodeURIComponent(_0x465de5),_0x1d9718=await fetch(_0x1ac195);if(!_0x1d9718['ok']){const _0x48b89e=await _0x1d9718['json']()['catch'](()=>({}));throw new Error(_0x48b89e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d9718['statusText']);}return await _0x1d9718['json']();},async 'getEnvironmentRepoBranches'(_0x1e93a2,_0xa8c3d8){if(!_0x1e93a2||!_0xa8c3d8)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x47f919=API_BASE+'/environments/'+encodeURIComponent(_0x1e93a2)+'/repos/'+encodeURIComponent(_0xa8c3d8)+'/git/branches',_0x5a4da8=await fetch(_0x47f919);if(!_0x5a4da8['ok']){const _0x51d9b3=await _0x5a4da8['json']()['catch'](()=>({}));throw new Error(_0x51d9b3['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x5a4da8['statusText']);}return await _0x5a4da8['json']();},async 'revertEnvironmentRepoCommit'(_0x32f528,_0x2ca418,_0x14e1f0,_0x323426={}){if(!_0x32f528||!_0x2ca418||!_0x14e1f0)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x4163ef=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x32f528)+'/repos/'+encodeURIComponent(_0x2ca418)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x14e1f0,..._0x323426})});if(!_0x4163ef['ok']){const _0x3ea57d=await _0x4163ef['json']()['catch'](()=>({}));throw new Error(_0x3ea57d['message']||_0x3ea57d['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x4163ef['statusText']);}return await _0x4163ef['json']();},async 'getTemplates'(_0x3fead6={}){const _0x12e891=new URLSearchParams();if(_0x3fead6['include']){const _0xf09f20=Array['isArray'](_0x3fead6['include'])?_0x3fead6['include']['join'](','):String(_0x3fead6['include']);if(_0xf09f20)_0x12e891['set']('include',_0xf09f20);}const _0x144998=await fetch(API_BASE+'/templates'+(_0x12e891['toString']()?'?'+_0x12e891['toString']():''));if(!_0x144998['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x144998['statusText']);return await _0x144998['json']();},async 'getTemplatesForEnvironment'(_0x5110c0,_0x39d8d3={}){if(!_0x5110c0)throw new Error('Environment\x20name\x20is\x20required');const _0x2d2ba0=new URLSearchParams();if(_0x39d8d3['include']){const _0x26fee8=Array['isArray'](_0x39d8d3['include'])?_0x39d8d3['include']['join'](','):String(_0x39d8d3['include']);if(_0x26fee8)_0x2d2ba0['set']('include',_0x26fee8);}const _0x32c947=await fetch(API_BASE+'/templates/'+_0x5110c0+(_0x2d2ba0['toString']()?'?'+_0x2d2ba0['toString']():''));if(!_0x32c947['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x5110c0+':\x20'+_0x32c947['statusText']);return await _0x32c947['json']();},async 'getTemplate'(_0x1012d6,_0x5910c1,_0xc95c58={}){if(!_0x1012d6||!_0x5910c1)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x40484c=new URLSearchParams();if(_0xc95c58['include']){const _0x4a7efd=Array['isArray'](_0xc95c58['include'])?_0xc95c58['include']['join'](','):String(_0xc95c58['include']);if(_0x4a7efd)_0x40484c['set']('include',_0x4a7efd);}const _0x28d17b=await fetch(API_BASE+'/templates/'+_0x1012d6+'/'+_0x5910c1+(_0x40484c['toString']()?'?'+_0x40484c['toString']():''));if(!_0x28d17b['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x28d17b['statusText']);return await _0x28d17b['json']();},async 'getTaskLogs'(_0x1d7e3a,_0x10ab0c={}){if(!_0x1d7e3a)throw new Error('Task\x20ID\x20is\x20required');const _0x1d6904=new URLSearchParams();_0x10ab0c['tail']&&_0x1d6904['set']('tail',String(_0x10ab0c['tail']));const _0x2dcb29=await fetch(API_BASE+'/tasks/'+_0x1d7e3a+'/logs'+(_0x1d6904['toString']()?'?'+_0x1d6904['toString']():''));if(!_0x2dcb29['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x2dcb29['statusText']);return await _0x2dcb29['text']();},async 'getContainers'(){const _0x1fbf06=await fetch(API_BASE+'/containers');if(!_0x1fbf06['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x1fbf06['statusText']);return await _0x1fbf06['json']();},async 'getContainer'(_0xcad55d){const _0xf39740=await fetch(API_BASE+'/containers/'+_0xcad55d);if(!_0xf39740['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xf39740['statusText']);return await _0xf39740['json']();},async 'startInteractiveContainer'(_0xe68056){const _0x4f4b01=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xe68056)});if(!_0x4f4b01['ok']){const _0x4bdb25=await _0x4f4b01['json']()['catch'](()=>({}));throw new Error(_0x4bdb25['message']||'Failed\x20to\x20start\x20container:\x20'+_0x4f4b01['statusText']);}return await _0x4f4b01['json']();},async 'startContainerCodeServer'(_0x2617f7,_0x5de463={}){if(!_0x2617f7)throw new Error('Container\x20ID\x20is\x20required');const _0xfe7d4=new URLSearchParams();_0x5de463['theme']&&_0xfe7d4['set']('theme',_0x5de463['theme']);const _0x225788=await fetch(API_BASE+'/containers/'+_0x2617f7+'/code-server'+(_0xfe7d4['toString']()?'?'+_0xfe7d4['toString']():'')),_0x20edae=await _0x225788['json']()['catch'](()=>({}));if(!_0x225788['ok'])throw new Error(_0x20edae['message']||_0x20edae['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x225788['statusText']);return _0x20edae;},async 'stopContainer'(_0x493533){const _0x38458f=await fetch(API_BASE+'/containers/'+_0x493533,{'method':'DELETE'});if(!_0x38458f['ok']){const _0x46ca26=await _0x38458f['json']()['catch'](()=>({}));throw new Error(_0x46ca26['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x38458f['statusText']);}return await _0x38458f['json']();},async 'stopTask'(_0x3c6649){if(!_0x3c6649)throw new Error('Task\x20ID\x20is\x20required');const _0xaf65c2=await fetch(API_BASE+'/tasks/'+_0x3c6649+'/stop',{'method':'POST'});if(!_0xaf65c2['ok']){const _0x3394cc=await _0xaf65c2['json']()['catch'](()=>({}));throw new Error(_0x3394cc['error']||'Failed\x20to\x20stop\x20task:\x20'+_0xaf65c2['statusText']);}return await _0xaf65c2['json']();},async 'interruptTask'(_0x9ac80a){if(!_0x9ac80a)throw new Error('Task\x20ID\x20is\x20required');const _0x2b22ed=await fetch(API_BASE+'/tasks/'+_0x9ac80a+'/interrupt',{'method':'POST'});if(!_0x2b22ed['ok']){const _0x3d2ff8=await _0x2b22ed['json']()['catch'](()=>({}));throw new Error(_0x3d2ff8['error']||_0x3d2ff8['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2b22ed['statusText']);}return await _0x2b22ed['json']();},async 'startTask'(_0x5f4522){if(!_0x5f4522)throw new Error('Task\x20ID\x20is\x20required');const _0x29305e=await fetch(API_BASE+'/tasks/'+_0x5f4522+'/start',{'method':'POST'});if(!_0x29305e['ok']){const _0x4a4c57=await _0x29305e['json']()['catch'](()=>({}));throw new Error(_0x4a4c57['error']||'Failed\x20to\x20start\x20task:\x20'+_0x29305e['statusText']);}return await _0x29305e['json']();},async 'deleteTask'(_0x238c1f){if(!_0x238c1f)throw new Error('Task\x20ID\x20is\x20required');const _0x5d8a2e=await fetch(API_BASE+'/tasks/'+_0x238c1f,{'method':'DELETE'});if(!_0x5d8a2e['ok']){const _0x195d36=await _0x5d8a2e['json']()['catch'](()=>({}));throw new Error(_0x195d36['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x5d8a2e['statusText']);}return await _0x5d8a2e['json']();},async 'refreshTasksFromDisk'(){const _0x2fa277=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x2fa277['ok']){const _0x1c3998=await _0x2fa277['json']()['catch'](()=>({}));throw new Error(_0x1c3998['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x2fa277['statusText']);}return await _0x2fa277['json']();},async 'approveTask'(_0x4d67c7,_0x461d2d={}){if(!_0x4d67c7)throw new Error('Task\x20ID\x20is\x20required');const _0x3a667c={'commit_message':_0x461d2d['commit_message']||'','pull':_0x461d2d['pull']??![],'push':_0x461d2d['push']??![],'conflict_strategy':_0x461d2d['conflict_strategy']||'rebase'};_0x461d2d['new_branch']&&(_0x3a667c['new_branch']=_0x461d2d['new_branch']);const _0x56a7d3=await fetch(API_BASE+'/tasks/'+_0x4d67c7+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a667c)});if(!_0x56a7d3['ok']){const _0x199759=await _0x56a7d3['json']()['catch'](()=>({})),_0x1d1b62=Array['isArray'](_0x199759['results'])?_0x199759['results']['filter'](_0x33a550=>!_0x33a550['success']&&(_0x33a550['error']||_0x33a550['error_code'])):[],_0x571fa0=_0x1d1b62[0x0]||null;let _0x5c3ec3=_0x199759['error']||_0x199759['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56a7d3['statusText'];if(_0x571fa0?.['error'])_0x5c3ec3=_0x571fa0['error'];else _0x199759['message']&&(_0x5c3ec3=_0x199759['message']);const _0x1987f7=new Error(_0x5c3ec3);_0x1987f7['code']=_0x571fa0?.['error_code']||_0x199759['error_code']||null,_0x1987f7['details']=_0x571fa0?.['details']||_0x199759['details']||null,_0x1987f7['tokenExpiryDays']=_0x571fa0?.['token_expiry_days']||_0x199759['token_expiry_days']||null,_0x1987f7['hasConflicts']=_0x199759['results']?.['some'](_0x324b6a=>_0x324b6a['conflict'])||![];throw _0x1987f7;}return await _0x56a7d3['json']();},async 'getPullRequestInfo'(_0x1c133f){if(!_0x1c133f)throw new Error('Task\x20ID\x20is\x20required');const _0x478489=await fetch(API_BASE+'/tasks/'+_0x1c133f+'/pull-request-info');if(!_0x478489['ok']){const _0xf05a6c=await _0x478489['json']()['catch'](()=>({}));throw new Error(_0xf05a6c['error']||_0xf05a6c['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x478489['statusText']);}return await _0x478489['json']();},async 'createPullRequests'(_0x4b27fb,_0x308331){if(!_0x4b27fb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x308331||!Array['isArray'](_0x308331))throw new Error('repos\x20array\x20is\x20required');const _0x343074=await fetch(API_BASE+'/tasks/'+_0x4b27fb+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x308331})});if(!_0x343074['ok']){const _0x4a092c=await _0x343074['json']()['catch'](()=>({}));let _0x5a5c3f=_0x4a092c['error']||_0x4a092c['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x343074['statusText'];if(_0x4a092c['results']&&Array['isArray'](_0x4a092c['results'])){const _0x12e43e=_0x4a092c['results']['filter'](_0x4e1bd0=>!_0x4e1bd0['success']&&_0x4e1bd0['error']);_0x12e43e['length']>0x0&&(_0x5a5c3f=_0x12e43e[0x0]['error']);}throw new Error(_0x5a5c3f);}return await _0x343074['json']();},async 'syncRepos'(_0x49dd59){if(!_0x49dd59)throw new Error('Task\x20ID\x20is\x20required');const _0x1e807a=await fetch(API_BASE+'/tasks/'+_0x49dd59+'/sync-repos',{'method':'POST'});if(!_0x1e807a['ok']){const _0x3155b5=await _0x1e807a['json']()['catch'](()=>({}));throw new Error(_0x3155b5['error']||_0x3155b5['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x1e807a['statusText']);}return await _0x1e807a['json']();},async 'getIbmiSyncInfo'(_0x1db791){if(!_0x1db791)throw new Error('Task\x20ID\x20is\x20required');const _0x39184e=await fetch(API_BASE+'/tasks/'+_0x1db791+'/ibmi-sync-info');if(!_0x39184e['ok']){const _0x88218b=await _0x39184e['json']()['catch'](()=>({}));throw new Error(_0x88218b['error']||_0x88218b['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x39184e['json']();},async 'getSyncFiles'(_0x3a0dee){if(!_0x3a0dee)throw new Error('Task\x20ID\x20is\x20required');const _0x49a8b1=await fetch(API_BASE+'/tasks/'+_0x3a0dee+'/sync-to-ibmi/files');if(!_0x49a8b1['ok']){const _0x3c08c1=await _0x49a8b1['json']()['catch'](()=>({}));throw new Error(_0x3c08c1['error']||_0x3c08c1['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x49a8b1['json']();},async 'syncToIbmi'(_0x279a11,_0x2aee61,_0x1f2a3c=null,_0x52e1c1=null,_0x59ad47=null){if(!_0x279a11)throw new Error('Task\x20ID\x20is\x20required');const _0x420761={'library':_0x2aee61};if(_0x1f2a3c)_0x420761['user']=_0x1f2a3c;if(_0x52e1c1)_0x420761['password']=_0x52e1c1;if(_0x59ad47)_0x420761['files']=_0x59ad47;const _0x2675da=await fetch(API_BASE+'/tasks/'+_0x279a11+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x420761)});if(!_0x2675da['ok']){const _0x4f322f=await _0x2675da['json']()['catch'](()=>({}));throw new Error(_0x4f322f['error']||_0x4f322f['message']||'Sync\x20failed');}return await _0x2675da['json']();},async 'getIbmiSyncLog'(_0x2abc8a){if(!_0x2abc8a)throw new Error('Task\x20ID\x20is\x20required');const _0x36bb05=await fetch(API_BASE+'/tasks/'+_0x2abc8a+'/ibmi-sync-log');if(!_0x36bb05['ok']){const _0x18cae6=await _0x36bb05['json']()['catch'](()=>({}));throw new Error(_0x18cae6['error']||_0x18cae6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x36bb05['json']();},async 'pullChanges'(_0x350327){if(!_0x350327)throw new Error('Task\x20ID\x20is\x20required');const _0xd3e300=await fetch(API_BASE+'/tasks/'+_0x350327+'/pull-changes',{'method':'POST'});if(!_0xd3e300['ok']){const _0x594d75=await _0xd3e300['json']()['catch'](()=>({})),_0x4bcd82=new Error(_0x594d75['message']||_0x594d75['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0xd3e300['statusText']);_0x4bcd82['code']=_0x594d75['error_code']||null,_0x4bcd82['details']=_0x594d75['details']||null,_0x4bcd82['tokenExpiryDays']=_0x594d75['token_expiry_days']||null;throw _0x4bcd82;}return await _0xd3e300['json']();},async 'readFile'(_0x72d64a,_0x1d899b){if(!_0x72d64a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d899b)throw new Error('File\x20path\x20is\x20required');const _0x818d0a=await fetch(API_BASE+'/tasks/'+_0x72d64a+'/files?path='+encodeURIComponent(_0x1d899b));if(!_0x818d0a['ok']){const _0x151591=await _0x818d0a['json']()['catch'](()=>({}));throw new Error(_0x151591['error']||_0x151591['message']||'Failed\x20to\x20read\x20file:\x20'+_0x818d0a['statusText']);}return await _0x818d0a['json']();},'getTaskFileDownloadUrl'(_0x4f784d,_0x1862bf){if(!_0x4f784d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1862bf)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x4f784d+'/files/download?path='+encodeURIComponent(_0x1862bf);},async 'writeFile'(_0x136379,_0xb942e,_0x87434d){if(!_0x136379)throw new Error('Task\x20ID\x20is\x20required');if(!_0xb942e)throw new Error('File\x20path\x20is\x20required');if(_0x87434d===undefined)throw new Error('Content\x20is\x20required');const _0x19f84b=await fetch(API_BASE+'/tasks/'+_0x136379+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xb942e,'content':_0x87434d})});if(!_0x19f84b['ok']){const _0x30f688=await _0x19f84b['json']()['catch'](()=>({}));throw new Error(_0x30f688['error']||_0x30f688['message']||'Failed\x20to\x20write\x20file:\x20'+_0x19f84b['statusText']);}return await _0x19f84b['json']();},async 'uploadTaskFiles'(_0x192c17,_0x3bab31,_0x4bb3af){if(!_0x192c17)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3bab31)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4bb3af||_0x4bb3af['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x56a261=new FormData();_0x56a261['append']('targetDir',_0x3bab31);for(const _0x388dfc of _0x4bb3af){_0x56a261['append']('files',_0x388dfc,_0x388dfc['name']);}const _0x5ae72b=await fetch(API_BASE+'/tasks/'+_0x192c17+'/files/upload',{'method':'POST','body':_0x56a261});if(!_0x5ae72b['ok']){const _0x290407=await _0x5ae72b['json']()['catch'](()=>({}));throw new Error(_0x290407['error']||_0x290407['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x5ae72b['statusText']);}return await _0x5ae72b['json']();},async 'createDirectory'(_0x24b363,_0x3f8594){if(!_0x24b363)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8594)throw new Error('Directory\x20path\x20is\x20required');const _0x398e8a=await fetch(API_BASE+'/tasks/'+_0x24b363+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x3f8594})});if(!_0x398e8a['ok']){const _0x1606cc=await _0x398e8a['json']()['catch'](()=>({}));throw new Error(_0x1606cc['error']||_0x1606cc['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x398e8a['statusText']);}return await _0x398e8a['json']();},async 'renamePath'(_0x1d50de,_0x4e40c2,_0x2aecab){if(!_0x1d50de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e40c2)throw new Error('Source\x20path\x20is\x20required');if(!_0x2aecab)throw new Error('Destination\x20path\x20is\x20required');const _0x288b42=await fetch(API_BASE+'/tasks/'+_0x1d50de+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x4e40c2,'newPath':_0x2aecab})});if(!_0x288b42['ok']){const _0x575081=await _0x288b42['json']()['catch'](()=>({}));throw new Error(_0x575081['error']||_0x575081['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x288b42['statusText']);}return await _0x288b42['json']();},async 'deleteFile'(_0x2f7829,_0x2fe646){if(!_0x2f7829)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2fe646)throw new Error('File\x20path\x20is\x20required');const _0x389fe1=await fetch(API_BASE+'/tasks/'+_0x2f7829+'/files?path='+encodeURIComponent(_0x2fe646),{'method':'DELETE'});if(!_0x389fe1['ok']){const _0x54d00c=await _0x389fe1['json']()['catch'](()=>({}));throw new Error(_0x54d00c['error']||_0x54d00c['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x389fe1['statusText']);}return await _0x389fe1['json']();},async 'deleteDirectory'(_0x5082c4,_0x5de369){if(!_0x5082c4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5de369)throw new Error('Directory\x20path\x20is\x20required');const _0x5ab974=await fetch(API_BASE+'/tasks/'+_0x5082c4+'/files/directory?path='+encodeURIComponent(_0x5de369),{'method':'DELETE'});if(!_0x5ab974['ok']){const _0x1ff072=await _0x5ab974['json']()['catch'](()=>({}));throw new Error(_0x1ff072['error']||_0x1ff072['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5ab974['statusText']);}return await _0x5ab974['json']();},async 'discardFile'(_0x1e75e6,_0x151dbb,_0x47cec3){if(!_0x1e75e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x151dbb)throw new Error('File\x20path\x20is\x20required');if(!_0x47cec3)throw new Error('Repository\x20path\x20is\x20required');const _0x4273f3=await fetch(API_BASE+'/tasks/'+_0x1e75e6+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x151dbb,'repoPath':_0x47cec3})});if(!_0x4273f3['ok']){const _0x105b2d=await _0x4273f3['json']()['catch'](()=>({}));throw new Error(_0x105b2d['error']||_0x105b2d['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x4273f3['statusText']);}return await _0x4273f3['json']();},async 'followUpTask'(_0x5c1899,_0x2da5cd={}){if(!_0x5c1899)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2da5cd['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2469ba,_0x22b843={};if(_0x2da5cd['files']&&_0x2da5cd['files']['length']>0x0){const _0x5643c3=new FormData();_0x5643c3['append']('instructions',_0x2da5cd['instructions']);for(const _0x4a1763 of _0x2da5cd['files']){_0x5643c3['append']('attachments',_0x4a1763);}_0x2469ba=_0x5643c3;}else _0x22b843['Content-Type']='application/json',_0x2469ba=JSON['stringify']({'instructions':_0x2da5cd['instructions']});const _0x1ebdc2=await fetch(API_BASE+'/tasks/'+_0x5c1899+'/follow-up',{'method':'POST','headers':_0x22b843,'body':_0x2469ba});if(!_0x1ebdc2['ok']){const _0x37b251=await _0x1ebdc2['json']()['catch'](()=>({}));throw new Error(_0x37b251['error']||_0x37b251['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1ebdc2['statusText']);}return await _0x1ebdc2['json']();},async 'getTaskRewindPoints'(_0x502418){if(!_0x502418)throw new Error('Task\x20ID\x20is\x20required');const _0x5ecd07=await fetch(API_BASE+'/tasks/'+_0x502418+'/rewind-points');if(!_0x5ecd07['ok']){const _0x13b101=await _0x5ecd07['json']()['catch'](()=>({}));throw new Error(_0x13b101['error']||_0x13b101['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x5ecd07['statusText']);}return await _0x5ecd07['json']();},async 'rewindTask'(_0x5c220b,_0x14f87a={}){if(!_0x5c220b)throw new Error('Task\x20ID\x20is\x20required');const _0x57dd34=Number['isInteger'](_0x14f87a['targetFollowUpCount'])?_0x14f87a['targetFollowUpCount']:0x0,_0x4bae01={'targetFollowUpCount':_0x57dd34};typeof _0x14f87a['instructions']==='string'&&_0x14f87a['instructions']['trim']()&&(_0x4bae01['instructions']=_0x14f87a['instructions']['trim']());typeof _0x14f87a['rewindFiles']==='boolean'&&(_0x4bae01['rewindFiles']=_0x14f87a['rewindFiles']);const _0x21dfad=await fetch(API_BASE+'/tasks/'+_0x5c220b+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4bae01)});if(!_0x21dfad['ok']){const _0x5d7c1d=await _0x21dfad['json']()['catch'](()=>({}));throw new Error(_0x5d7c1d['error']||_0x5d7c1d['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x21dfad['statusText']);}return await _0x21dfad['json']();},async 'login'(_0x1dd84f,_0x4d8206){const _0x45657e=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x1dd84f,'password':_0x4d8206})});if(!_0x45657e['ok']){const _0x1783e9=await _0x45657e['json']();throw new Error(_0x1783e9['message']||'Login\x20failed');}return await _0x45657e['json']();},async 'logout'(){const _0x4098dd=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4098dd['ok']){const _0x3a9f58=await _0x4098dd['json']();throw new Error(_0x3a9f58['message']||'Logout\x20failed');}return await _0x4098dd['json']();},async 'getCurrentUser'(){const _0x47c8c4=await fetch(API_BASE+'/auth/me');if(!_0x47c8c4['ok'])throw new Error('Not\x20authenticated');const _0x1c9d99=await _0x47c8c4['json']();return _0x1c9d99['user'];},async 'getRolesInfo'(){const _0x15403c=await fetch(API_BASE+'/users/roles');if(!_0x15403c['ok']){const _0x1d80ff=await _0x15403c['json']();throw new Error(_0x1d80ff['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x15403c['json']();},async 'getUsers'(){const _0x2ffe16=await fetch(API_BASE+'/users');if(!_0x2ffe16['ok']){const _0x41dfa9=await _0x2ffe16['json']();throw new Error(_0x41dfa9['message']||'Failed\x20to\x20get\x20users');}return await _0x2ffe16['json']();},async 'getUser'(_0x533721){const _0x5b2c88=await fetch(API_BASE+'/users/'+_0x533721);if(!_0x5b2c88['ok']){const _0x241ff3=await _0x5b2c88['json']();throw new Error(_0x241ff3['message']||'Failed\x20to\x20get\x20user');}return await _0x5b2c88['json']();},async 'createUser'(_0x23a22f){const _0x20fe8f=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23a22f)});if(!_0x20fe8f['ok']){const _0x33eb0c=await _0x20fe8f['json']();throw new Error(_0x33eb0c['message']||'Failed\x20to\x20create\x20user');}return await _0x20fe8f['json']();},async 'updateUser'(_0x2a8fce,_0x4d9d73){const _0x398304=await fetch(API_BASE+'/users/'+_0x2a8fce,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d9d73)});if(!_0x398304['ok']){const _0x5b2784=await _0x398304['json']();throw new Error(_0x5b2784['message']||'Failed\x20to\x20update\x20user');}return await _0x398304['json']();},async 'deleteUser'(_0x5227ae){const _0x2ef901=await fetch(API_BASE+'/users/'+_0x5227ae,{'method':'DELETE'});if(!_0x2ef901['ok']){const _0x3f8075=await _0x2ef901['json']();throw new Error(_0x3f8075['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ef901['json']();},async 'stopAllContainers'(){const _0x1a7ee0=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x16e544=await _0x1a7ee0['json']()['catch'](()=>({}));if(!_0x1a7ee0['ok'])throw new Error(_0x16e544['message']||_0x16e544['error']||'Failed\x20to\x20stop\x20containers');return _0x16e544;},async 'removeStoppedContainers'(){const _0x25e424=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x554e40=await _0x25e424['json']()['catch'](()=>({}));if(!_0x25e424['ok'])throw new Error(_0x554e40['message']||_0x554e40['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x554e40;},async 'pruneDockerResources'(){const _0x1b7522=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x6c3f8=await _0x1b7522['json']()['catch'](()=>({}));if(!_0x1b7522['ok'])throw new Error(_0x6c3f8['message']||_0x6c3f8['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x6c3f8;},async 'getUpdateSettings'(){const _0x28e1dc=await fetch(API_BASE+'/health/update-settings'),_0x342065=await _0x28e1dc['json']()['catch'](()=>({}));if(!_0x28e1dc['ok'])throw new Error(_0x342065['message']||_0x342065['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x342065;},async 'applyServerUpdate'(_0x1f1f45){const _0x2cc585=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1f1f45})}),_0x57860e=await _0x2cc585['json']()['catch'](()=>({}));if(!_0x2cc585['ok']){const _0x2b3b90=new Error(_0x57860e['message']||_0x57860e['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x57860e['output']!==undefined)_0x2b3b90['output']=_0x57860e['output'];if(_0x57860e['error']!==undefined)_0x2b3b90['commandError']=_0x57860e['error'];throw _0x2b3b90;}return _0x57860e;},async 'restartServer'(){const _0x1b2b3e=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x2cb8f6=await _0x1b2b3e['json']()['catch'](()=>({}));if(!_0x1b2b3e['ok'])throw new Error(_0x2cb8f6['message']||_0x2cb8f6['error']||'Failed\x20to\x20restart\x20server');return _0x2cb8f6;},async 'getDockerContainers'(){const _0x31edbd=await fetch(API_BASE+'/health/containers'),_0x5f1f2e=await _0x31edbd['json']()['catch'](()=>({}));if(!_0x31edbd['ok'])throw new Error(_0x5f1f2e['message']||_0x5f1f2e['error']||'Failed\x20to\x20load\x20containers');return _0x5f1f2e;},async 'getDockerImages'(){const _0x4348c=await fetch(API_BASE+'/health/docker/images'),_0x59f4a2=await _0x4348c['json']()['catch'](()=>({}));if(!_0x4348c['ok'])throw new Error(_0x59f4a2['message']||_0x59f4a2['error']||'Failed\x20to\x20load\x20images');return _0x59f4a2;},async 'getDockerVolumes'(){const _0x4544c1=await fetch(API_BASE+'/health/docker/volumes'),_0x361700=await _0x4544c1['json']()['catch'](()=>({}));if(!_0x4544c1['ok'])throw new Error(_0x361700['message']||_0x361700['error']||'Failed\x20to\x20load\x20volumes');return _0x361700;},async 'getActiveSessions'(){const _0x15e55c=await fetch(API_BASE+'/health/sessions'),_0x514e04=await _0x15e55c['json']()['catch'](()=>({}));if(!_0x15e55c['ok'])throw new Error(_0x514e04['message']||_0x514e04['error']||'Failed\x20to\x20load\x20sessions');return _0x514e04;},async 'getSystemInfo'(){const _0x4b8b30=await fetch(API_BASE+'/health/system'),_0x5945e0=await _0x4b8b30['json']()['catch'](()=>({}));if(!_0x4b8b30['ok'])throw new Error(_0x5945e0['message']||_0x5945e0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x5945e0;},async 'stopDockerContainer'(_0x121042){const _0x498ef5=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x121042)+'/stop',{'method':'POST'}),_0x5b40cd=await _0x498ef5['json']()['catch'](()=>({}));if(!_0x498ef5['ok'])throw new Error(_0x5b40cd['message']||_0x5b40cd['error']||'Failed\x20to\x20stop\x20container');return _0x5b40cd;},async 'removeDockerContainer'(_0x3375fe){const _0x58f02e=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x3375fe),{'method':'DELETE'}),_0x12a041=await _0x58f02e['json']()['catch'](()=>({}));if(!_0x58f02e['ok'])throw new Error(_0x12a041['message']||_0x12a041['error']||'Failed\x20to\x20remove\x20container');return _0x12a041;},async 'createPasswordToken'(_0x132232,_0x406b8e='setup',_0x507cc4=![]){const _0x455ea0=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x132232,'type':_0x406b8e,'sendEmail':_0x507cc4})});if(!_0x455ea0['ok']){const _0x473f36=await _0x455ea0['json']();throw new Error(_0x473f36['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x455ea0['json']();},async 'getEmailConfig'(){const _0xb8b7f1=await fetch(API_BASE+'/password/email-config');if(!_0xb8b7f1['ok']){const _0x29b805=await _0xb8b7f1['json']();throw new Error(_0x29b805['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0xb8b7f1['json']();},async 'updateTaskName'(_0x4f59be,_0x529677){const _0x17d0f4=await fetch(API_BASE+'/tasks/'+_0x4f59be,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x529677})});if(!_0x17d0f4['ok']){const _0x474c5e=await _0x17d0f4['json']();throw new Error(_0x474c5e['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x17d0f4['json']();},async 'pinTask'(_0x5b4634,_0x22ea7d,_0x1d762c=null){if(!_0x5b4634)throw new Error('Task\x20ID\x20is\x20required');const _0x4d23e2={'pinned':_0x22ea7d};_0x1d762c&&_0x1d762c['length']>0x0&&(_0x4d23e2['additionalTaskIds']=_0x1d762c);const _0x3f571f=await fetch(API_BASE+'/tasks/'+_0x5b4634+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d23e2)});if(!_0x3f571f['ok']){const _0x20e8c6=await _0x3f571f['json']();throw new Error(_0x20e8c6['error']||'Failed\x20to\x20pin\x20task');}return await _0x3f571f['json']();},async 'setTaskWinner'(_0x47821b,_0x4cf184,_0xa43d4=[]){if(!_0x47821b)throw new Error('Task\x20ID\x20is\x20required');const _0x5a6956=await fetch(API_BASE+'/tasks/'+_0x47821b+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x4cf184,'siblings':_0xa43d4})});if(!_0x5a6956['ok']){const _0x55664a=await _0x5a6956['json']();throw new Error(_0x55664a['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x5a6956['json']();},async 'setTaskLoser'(_0x542a66,_0xb9c0d8){if(!_0x542a66)throw new Error('Task\x20ID\x20is\x20required');const _0x445603=await fetch(API_BASE+'/tasks/'+_0x542a66+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0xb9c0d8})});if(!_0x445603['ok']){const _0x1ab813=await _0x445603['json']();throw new Error(_0x1ab813['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x445603['json']();},async 'createTaskGroup'(_0x2f88d5){const _0x12c7bc=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f88d5)});if(!_0x12c7bc['ok']){const _0x49565e=await _0x12c7bc['json']();throw new Error(_0x49565e['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x12c7bc['json']();},async 'getTaskGroups'(_0x25a74f={}){const _0x5d1bb9=new URLSearchParams();if(_0x25a74f['userId'])_0x5d1bb9['set']('userId',String(_0x25a74f['userId']));if(_0x25a74f['status'])_0x5d1bb9['set']('status',String(_0x25a74f['status']));if(_0x25a74f['limit'])_0x5d1bb9['set']('limit',String(_0x25a74f['limit']));const _0x5c3d9e=API_BASE+'/tasks/groups'+(_0x5d1bb9['toString']()?'?'+_0x5d1bb9['toString']():''),_0x55ea70=await fetch(_0x5c3d9e);if(!_0x55ea70['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x55ea70['json']();},async 'getTaskGroup'(_0xb7d317){const _0x39b6dc=await fetch(API_BASE+'/tasks/groups/'+_0xb7d317);if(!_0x39b6dc['ok']){const _0x42655f=await _0x39b6dc['json']();throw new Error(_0x42655f['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x39b6dc['json']();},async 'updateTaskGroup'(_0x1ef7d3,_0x11a784,_0x5403ed){const _0x1b7343=await fetch(API_BASE+'/tasks/'+_0x1ef7d3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x11a784,'groupIndex':_0x5403ed})});if(!_0x1b7343['ok']){const _0x59f362=await _0x1b7343['json']();throw new Error(_0x59f362['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x1b7343['json']();},async 'removeTaskFromGroup'(_0x1b05ef){return this['updateTaskGroup'](_0x1b05ef,null,null);},async 'deleteTaskGroup'(_0x25b3d3,_0xefa145=![]){const _0x3fb18b=_0xefa145?'?deleteTasks=true':'',_0x11be91=await fetch(API_BASE+'/tasks/groups/'+_0x25b3d3+_0x3fb18b,{'method':'DELETE'});if(!_0x11be91['ok']){const _0x57e0bd=await _0x11be91['json']();throw new Error(_0x57e0bd['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x585383,_0x1a063f){const _0x3533b2=await fetch(API_BASE+'/tasks/groups/'+_0x585383+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1a063f})});if(!_0x3533b2['ok']){const _0x4002d0=await _0x3533b2['json']();throw new Error(_0x4002d0['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x3533b2['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x5235ae){if(!_0x5235ae)throw new Error('Task\x20ID\x20is\x20required');const _0xfd0d=await fetch(API_BASE+'/tasks/'+_0x5235ae+'/comments');if(!_0xfd0d['ok']){const _0x4d466c=await _0xfd0d['json']()['catch'](()=>({}));throw new Error(_0x4d466c['error']||'Failed\x20to\x20get\x20comments');}return await _0xfd0d['json']();},async 'addComment'(_0x36bc83,_0x2249f2){if(!_0x36bc83)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2249f2)throw new Error('Comment\x20content\x20is\x20required');const _0x492913=await fetch(API_BASE+'/tasks/'+_0x36bc83+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2249f2})});if(!_0x492913['ok']){const _0x51644c=await _0x492913['json']()['catch'](()=>({}));throw new Error(_0x51644c['error']||'Failed\x20to\x20add\x20comment');}return await _0x492913['json']();},async 'updateComment'(_0x4ccbcf,_0x23d13c,_0x235a1f){if(!_0x4ccbcf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x23d13c)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x235a1f)throw new Error('Comment\x20content\x20is\x20required');const _0x53d46b=await fetch(API_BASE+'/tasks/'+_0x4ccbcf+'/comments/'+_0x23d13c,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x235a1f})});if(!_0x53d46b['ok']){const _0x593533=await _0x53d46b['json']()['catch'](()=>({}));throw new Error(_0x593533['error']||'Failed\x20to\x20update\x20comment');}return await _0x53d46b['json']();},async 'deleteComment'(_0x46311d,_0x12144c){if(!_0x46311d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x12144c)throw new Error('Comment\x20ID\x20is\x20required');const _0x15e77b=await fetch(API_BASE+'/tasks/'+_0x46311d+'/comments/'+_0x12144c,{'method':'DELETE'});if(!_0x15e77b['ok']){const _0x214ec4=await _0x15e77b['json']()['catch'](()=>({}));throw new Error(_0x214ec4['error']||'Failed\x20to\x20delete\x20comment');}return await _0x15e77b['json']();},async 'createObjective'(_0x145ba3){const _0x35d4cd={'objective':!![],'name':_0x145ba3['name']||'','environment':_0x145ba3['environment']||null,'agents':_0x145ba3['agents']||[],'branches':_0x145ba3['branches']||{},'isPinned':_0x145ba3['isPinned']||![],'parentObjectiveId':_0x145ba3['parentObjectiveId']||null,'env_vars':_0x145ba3['envVars']||{},'parameters':{'instructions':_0x145ba3['instructions']||''},'files':_0x145ba3['files']||[],'jira':_0x145ba3['jira']||null};return this['createTask'](_0x35d4cd);},async 'updateObjective'(_0x5cbb1a,_0x4bc6a1,_0x56fd1a=[],_0x2935fa=[]){let _0x3a3cd8,_0x2f72fc={};const _0x3255af={..._0x4bc6a1};_0x2935fa&&_0x2935fa['length']>0x0&&(_0x3255af['removeAttachments']=_0x2935fa);if(_0x56fd1a&&_0x56fd1a['length']>0x0){const _0x31f1b5=new FormData();for(const [_0x4a2686,_0x3d05f6]of Object['entries'](_0x3255af)){if(_0x3d05f6==null)continue;typeof _0x3d05f6==='object'?_0x31f1b5['append'](_0x4a2686,JSON['stringify'](_0x3d05f6)):_0x31f1b5['append'](_0x4a2686,String(_0x3d05f6));}for(const _0x19002e of _0x56fd1a){_0x31f1b5['append']('attachments',_0x19002e);}_0x3a3cd8=_0x31f1b5;}else _0x2f72fc['Content-Type']='application/json',_0x3a3cd8=JSON['stringify'](_0x3255af);const _0x32f145=await fetch(API_BASE+'/tasks/'+_0x5cbb1a,{'method':'PATCH','headers':_0x2f72fc,'body':_0x3a3cd8});if(!_0x32f145['ok']){const _0x16d8d0=await _0x32f145['json']();throw new Error(_0x16d8d0['error']||'Failed\x20to\x20update\x20objective');}return await _0x32f145['json']();},async 'deleteObjective'(_0x436a33){return this['deleteTask'](_0x436a33);},async 'launchObjective'(_0x4ef32f,_0x5ee3da={}){const _0x473526=await fetch(API_BASE+'/tasks/'+_0x4ef32f+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5ee3da)});if(!_0x473526['ok']){const _0x2d22a3=await _0x473526['json']();throw new Error(_0x2d22a3['error']||'Failed\x20to\x20launch\x20objective');}return await _0x473526['json']();},async 'getObjectiveAttachments'(_0x3fc024){return this['getTaskAttachments'](_0x3fc024);},async 'createJudgeTask'({environment:_0x5dd238,judgeAgent:_0x27ed11,groupId:_0x5a6beb,taskIds:_0x5e9ff3,judgeCustomInstructions:_0x24e053,isPinned:_0x483f7b}){const _0xe76dd0=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x5dd238,'judgeAgent':_0x27ed11,'groupId':_0x5a6beb,'taskIds':_0x5e9ff3,'judgeCustomInstructions':_0x24e053,'isPinned':_0x483f7b})});if(!_0xe76dd0['ok']){const _0x2c81ca=await _0xe76dd0['json']();throw new Error(_0x2c81ca['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0xe76dd0['json']();},async 'getJudgeTasks'(_0x3a4f47){const _0x4997a9=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x3a4f47));if(!_0x4997a9['ok']){const _0x3e367f=await _0x4997a9['json']();throw new Error(_0x3e367f['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4997a9['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1bb6ef,_0x2c03ee,_0x432e7d=''){const _0x316c17=await fetch(API_BASE+'/tasks/'+_0x1bb6ef+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x2c03ee,'customPreamble':_0x432e7d})});if(!_0x316c17['ok']){const _0x354e9b=await _0x316c17['json']();throw new Error(_0x354e9b['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x316c17['json']();},async 'getJiraConfig'(){const _0x9acb51=await fetch(API_BASE+'/jira/config');if(!_0x9acb51['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x9acb51['json']();},async 'getJiraIssue'(_0x1c4fba){const _0x571ff6=await fetch(API_BASE+'/jira/issues/'+_0x1c4fba);if(!_0x571ff6['ok']){const _0x9eca9d=await _0x571ff6['json']()['catch'](()=>({}));throw new Error(_0x9eca9d['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x571ff6['statusText']);}return await _0x571ff6['json']();},async 'searchJiraIssues'(_0x3799c2,_0x1afddd=0x14){const _0x473064=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x3799c2,'maxResults':_0x1afddd})});if(!_0x473064['ok']){const _0x4b8257=await _0x473064['json']()['catch'](()=>({}));throw new Error(_0x4b8257['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x473064['statusText']);}return await _0x473064['json']();},async 'postJiraComment'(_0x602037,_0x232cab){const _0x29e0a0=await fetch(API_BASE+'/jira/issues/'+_0x602037+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x232cab})});if(!_0x29e0a0['ok']){const _0x73c905=await _0x29e0a0['json']()['catch'](()=>({}));throw new Error(_0x73c905['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x29e0a0['statusText']);}return await _0x29e0a0['json']();},async 'getJiraComments'(_0x45eecf){const _0x59be43=await fetch(API_BASE+'/jira/issues/'+_0x45eecf+'/comments');if(!_0x59be43['ok']){const _0x4ada5e=await _0x59be43['json']()['catch'](()=>({}));throw new Error(_0x4ada5e['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x59be43['statusText']);}return await _0x59be43['json']();},async 'promptParameter'({environment:_0xe3cc2a,command:_0x308fd6,parser:parser='json'}){const _0x55b8c2=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0xe3cc2a,'command':_0x308fd6,'parser':parser})});if(!_0x55b8c2['ok']){const _0x19e458=await _0x55b8c2['json']()['catch'](()=>({}));throw new Error(_0x19e458['message']||_0x19e458['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x55b8c2['statusText']);}return await _0x55b8c2['json']();},async 'promptParameterStream'(_0x2cd975,_0x58f5fc){const _0xe99f3d=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2cd975)});if(!_0xe99f3d['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0xe99f3d['statusText']);const _0x78909e=_0xe99f3d['body']['getReader'](),_0x5b533e=new TextDecoder();let _0x2b9e1b='';return new Promise((_0x3cc41e,_0x29df1c)=>{const _0x608dd=async()=>{try{const {done:_0x5500be,value:_0x4849a9}=await _0x78909e['read']();if(_0x5500be)return;_0x2b9e1b+=_0x5b533e['decode'](_0x4849a9,{'stream':!![]});const _0x4b66f7=_0x2b9e1b['split']('\x0a\x0a');_0x2b9e1b=_0x4b66f7['pop']()||'';for(const _0x172c63 of _0x4b66f7){if(!_0x172c63['trim']())continue;const _0xa44ff=_0x172c63['split']('\x0a');let _0x2317af='message',_0x6f863='';for(const _0x5af178 of _0xa44ff){if(_0x5af178['startsWith']('event:'))_0x2317af=_0x5af178['substring'](0x6)['trim']();else _0x5af178['startsWith']('data:')&&(_0x6f863=_0x5af178['substring'](0x5)['trim']());}if(!_0x6f863)continue;try{const _0x3b802b=JSON['parse'](_0x6f863);if(_0x2317af==='progress'&&_0x58f5fc)_0x58f5fc(_0x3b802b['stage'],_0x3b802b['message']);else{if(_0x2317af==='result'){_0x3cc41e(_0x3b802b);return;}else{if(_0x2317af==='error'){let _0x3ac715=_0x3b802b['message']||_0x3b802b['error']||'Prompt\x20command\x20failed';_0x3b802b['rawOutput']&&(_0x3ac715+='\x0a\x0aRaw\x20output:\x0a'+_0x3b802b['rawOutput']);_0x29df1c(new Error(_0x3ac715));return;}}}}catch(_0x19673b){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x19673b),console['error']('Event\x20type:',_0x2317af),console['error']('Event\x20data:',_0x6f863),console['error']('First\x20200\x20chars:',_0x6f863['substring'](0x0,0xc8)),_0x29df1c(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x19673b['message']+'\x0a\x0aData:\x20'+_0x6f863['substring'](0x0,0x1f4)));return;}}_0x608dd();}catch(_0x475946){_0x29df1c(_0x475946);}};_0x608dd();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x16bb97){const _0x2d5652=await fetch(''+API_BASE+_0x16bb97);if(!_0x2d5652['ok']){const _0x23dea1=await _0x2d5652['json']()['catch'](()=>({'error':_0x2d5652['statusText']})),_0x4c0321=new Error(_0x23dea1['error']||_0x23dea1['message']||_0x2d5652['statusText']);if(_0x23dea1['detail']!==undefined)_0x4c0321['detail']=_0x23dea1['detail'];throw _0x4c0321;}return await _0x2d5652['json']();},async 'post'(_0x7a2d71,_0xacc93f){const _0x2f2419=await fetch(''+API_BASE+_0x7a2d71,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xacc93f)});if(!_0x2f2419['ok']){const _0x2e6f6a=await _0x2f2419['json']()['catch'](()=>({'error':_0x2f2419['statusText']})),_0xa3f6ec=new Error(_0x2e6f6a['error']||_0x2e6f6a['message']||_0x2f2419['statusText']);if(_0x2e6f6a['detail']!==undefined)_0xa3f6ec['detail']=_0x2e6f6a['detail'];throw _0xa3f6ec;}return await _0x2f2419['json']();},async 'put'(_0x40dae7,_0xa75060){const _0x238bdc=await fetch(''+API_BASE+_0x40dae7,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa75060)});if(!_0x238bdc['ok']){const _0x249921=await _0x238bdc['json']()['catch'](()=>({'error':_0x238bdc['statusText']})),_0x1b6d4a=new Error(_0x249921['error']||_0x249921['message']||_0x238bdc['statusText']);if(_0x249921['detail']!==undefined)_0x1b6d4a['detail']=_0x249921['detail'];throw _0x1b6d4a;}return await _0x238bdc['json']();},async 'delete'(_0x164576,_0x32a580){const _0x3bc510={'method':'DELETE'};_0x32a580&&(_0x3bc510['headers']={'Content-Type':'application/json'},_0x3bc510['body']=JSON['stringify'](_0x32a580));const _0x2341a0=await fetch(''+API_BASE+_0x164576,_0x3bc510);if(!_0x2341a0['ok']){const _0xdb92eb=await _0x2341a0['json']()['catch'](()=>({'error':_0x2341a0['statusText']})),_0xc0ffc7=new Error(_0xdb92eb['error']||_0xdb92eb['message']||_0x2341a0['statusText']);if(_0xdb92eb['detail']!==undefined)_0xc0ffc7['detail']=_0xdb92eb['detail'];throw _0xc0ffc7;}return await _0x2341a0['json']();},async 'getSkills'(){const _0x8cbcf=await fetch(API_BASE+'/skills');if(!_0x8cbcf['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x8cbcf['statusText']);return await _0x8cbcf['json']();},async 'getSkill'(_0x200f89){const _0x5c7641=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x200f89));if(!_0x5c7641['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5c7641['statusText']);return await _0x5c7641['json']();},async 'createSkill'(_0x5967db){const _0x14e972=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5967db)});if(!_0x14e972['ok']){const _0x877056=await _0x14e972['json']()['catch'](()=>({'error':_0x14e972['statusText']})),_0x3fb4e4=new Error(_0x877056['error']||_0x877056['message']||_0x14e972['statusText']);if(_0x877056['detail']!==undefined)_0x3fb4e4['detail']=_0x877056['detail'];throw _0x3fb4e4;}return await _0x14e972['json']();},async 'updateSkill'(_0x1919a5,_0xee0692){const _0x536930=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1919a5),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xee0692)});if(!_0x536930['ok']){const _0x4610f0=await _0x536930['json']()['catch'](()=>({'error':_0x536930['statusText']})),_0x1e01f4=new Error(_0x4610f0['error']||_0x4610f0['message']||_0x536930['statusText']);if(_0x4610f0['detail']!==undefined)_0x1e01f4['detail']=_0x4610f0['detail'];throw _0x1e01f4;}return await _0x536930['json']();},async 'deleteSkill'(_0x470e70){const _0x2b4f0c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x470e70),{'method':'DELETE'});if(!_0x2b4f0c['ok']){const _0x967374=await _0x2b4f0c['json']()['catch'](()=>({'error':_0x2b4f0c['statusText']})),_0x3c1aa5=new Error(_0x967374['error']||_0x967374['message']||_0x2b4f0c['statusText']);if(_0x967374['detail']!==undefined)_0x3c1aa5['detail']=_0x967374['detail'];throw _0x3c1aa5;}return await _0x2b4f0c['json']();},async 'getSkillFile'(_0x4ed4f3,_0x22993e){const _0x4b34e8=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4ed4f3)+'/files/'+_0x22993e);if(!_0x4b34e8['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x4b34e8['statusText']);return await _0x4b34e8['json']();},async 'saveSkillFile'(_0x49d81e,_0x2d086a,_0x3bb4a5){const _0x43894c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49d81e)+'/files/'+_0x2d086a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3bb4a5})});if(!_0x43894c['ok']){const _0x877f75=await _0x43894c['json']()['catch'](()=>({'error':_0x43894c['statusText']})),_0x146d55=new Error(_0x877f75['error']||_0x877f75['message']||_0x43894c['statusText']);if(_0x877f75['detail']!==undefined)_0x146d55['detail']=_0x877f75['detail'];throw _0x146d55;}return await _0x43894c['json']();},async 'deleteSkillFile'(_0x1b8dff,_0x17c088){const _0x3f94c9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1b8dff)+'/files/'+_0x17c088,{'method':'DELETE'});if(!_0x3f94c9['ok']){const _0x5c7585=await _0x3f94c9['json']()['catch'](()=>({'error':_0x3f94c9['statusText']})),_0x4fe6d6=new Error(_0x5c7585['error']||_0x5c7585['message']||_0x3f94c9['statusText']);if(_0x5c7585['detail']!==undefined)_0x4fe6d6['detail']=_0x5c7585['detail'];throw _0x4fe6d6;}return await _0x3f94c9['json']();},async 'pullSkills'(){const _0xf5c4e1=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xf5c4e1['ok']){const _0x4e74ba=await _0xf5c4e1['json']()['catch'](()=>({'error':_0xf5c4e1['statusText']})),_0x59e281=new Error(_0x4e74ba['error']||_0x4e74ba['message']||_0xf5c4e1['statusText']);if(_0x4e74ba['detail']!==undefined)_0x59e281['detail']=_0x4e74ba['detail'];throw _0x59e281;}return await _0xf5c4e1['json']();},async 'commitSkills'(_0x319002,_0x3aea36={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x3aea36,_0x5c0b28=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x319002,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x5c0b28['ok']){const _0x538c60=await _0x5c0b28['json']()['catch'](()=>({'error':_0x5c0b28['statusText']})),_0xd155c=new Error(_0x538c60['error']||_0x538c60['message']||_0x5c0b28['statusText']);if(_0x538c60['detail']!==undefined)_0xd155c['detail']=_0x538c60['detail'];throw _0xd155c;}return await _0x5c0b28['json']();},async 'discardSkillsChanges'(){const _0x1b1d39=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1b1d39['ok']){const _0x3bfc25=await _0x1b1d39['json']()['catch'](()=>({'error':_0x1b1d39['statusText']})),_0x397e24=new Error(_0x3bfc25['error']||_0x3bfc25['message']||_0x1b1d39['statusText']);if(_0x3bfc25['detail']!==undefined)_0x397e24['detail']=_0x3bfc25['detail'];throw _0x397e24;}return await _0x1b1d39['json']();},async 'getSkillCatalog'(){const _0x4e618e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x4e618e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x4e618e['statusText']);return await _0x4e618e['json']();},async 'getImportedSkillsRegistry'(){const _0x47c646=await fetch(API_BASE+'/external-skills/registry');if(!_0x47c646['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x47c646['statusText']);return await _0x47c646['json']();},async 'importCatalogSkill'(_0x43c788){const _0x17f94c=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x43c788})});if(!_0x17f94c['ok']){const _0x7439d0=await _0x17f94c['json']()['catch'](()=>({'error':_0x17f94c['statusText']})),_0x167671=new Error(_0x7439d0['error']||_0x7439d0['message']||_0x17f94c['statusText']);if(_0x7439d0['detail']!==undefined)_0x167671['detail']=_0x7439d0['detail'];throw _0x167671;}return await _0x17f94c['json']();},async 'importSkillFromGit'(_0x4d24a1,_0x411664,_0x29c980='main',_0x346e9b=null){const _0x5dfffe=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4d24a1,'skillPath':_0x411664,'branch':_0x29c980,'skillId':_0x346e9b})});if(!_0x5dfffe['ok']){const _0x362fd2=await _0x5dfffe['json']()['catch'](()=>({'error':_0x5dfffe['statusText']})),_0x4818ad=new Error(_0x362fd2['error']||_0x362fd2['message']||_0x5dfffe['statusText']);if(_0x362fd2['detail']!==undefined)_0x4818ad['detail']=_0x362fd2['detail'];throw _0x4818ad;}return await _0x5dfffe['json']();},async 'probeMarketplace'(_0x3fb731,_0x425451='main'){const _0x54644f=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3fb731,'branch':_0x425451})});if(!_0x54644f['ok']){const _0x30f3e4=await _0x54644f['json']()['catch'](()=>({'error':_0x54644f['statusText']})),_0xc2fcc5=new Error(_0x30f3e4['error']||_0x30f3e4['message']||_0x54644f['statusText']);if(_0x30f3e4['detail']!==undefined)_0xc2fcc5['detail']=_0x30f3e4['detail'];throw _0xc2fcc5;}return await _0x54644f['json']();},async 'importMarketplaceBundle'(_0x4252da,_0x2aab4b,_0x593d8d,_0x482896=null){const _0x57ccf5=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4252da,'branch':_0x2aab4b,'bundleId':_0x593d8d,'selectedSkills':_0x482896})});if(!_0x57ccf5['ok']){const _0x5cf0e6=await _0x57ccf5['json']()['catch'](()=>({'error':_0x57ccf5['statusText']})),_0x4fba32=new Error(_0x5cf0e6['error']||_0x5cf0e6['message']||_0x57ccf5['statusText']);if(_0x5cf0e6['detail']!==undefined)_0x4fba32['detail']=_0x5cf0e6['detail'];throw _0x4fba32;}return await _0x57ccf5['json']();},async 'importSkillFromFolder'(_0x519c3f,_0x56058a=null){const _0x41d83a=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x519c3f,'skillId':_0x56058a})});if(!_0x41d83a['ok']){const _0x44c353=await _0x41d83a['json']()['catch'](()=>({'error':_0x41d83a['statusText']})),_0x1fbf41=new Error(_0x44c353['error']||_0x44c353['message']||_0x41d83a['statusText']);if(_0x44c353['detail']!==undefined)_0x1fbf41['detail']=_0x44c353['detail'];throw _0x1fbf41;}return await _0x41d83a['json']();},async 'importSkillFromNpm'(_0x6df35b,_0xc605f2='latest',_0x16094b=null,_0x5b2cb2=null){const _0x3f6e58=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x6df35b,'version':_0xc605f2,'skillId':_0x16094b,'registry':_0x5b2cb2})});if(!_0x3f6e58['ok']){const _0x5c3e93=await _0x3f6e58['json']()['catch'](()=>({'error':_0x3f6e58['statusText']})),_0x3b68c2=new Error(_0x5c3e93['error']||_0x5c3e93['message']||_0x3f6e58['statusText']);if(_0x5c3e93['detail']!==undefined)_0x3b68c2['detail']=_0x5c3e93['detail'];throw _0x3b68c2;}return await _0x3f6e58['json']();},async 'checkSkillUpdates'(_0x33c236){const _0x261c00=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x33c236)+'/check-updates',{'method':'POST'});if(!_0x261c00['ok']){const _0x37f5cf=await _0x261c00['json']()['catch'](()=>({'error':_0x261c00['statusText']})),_0x2d5b50=new Error(_0x37f5cf['error']||_0x37f5cf['message']||_0x261c00['statusText']);if(_0x37f5cf['detail']!==undefined)_0x2d5b50['detail']=_0x37f5cf['detail'];throw _0x2d5b50;}return await _0x261c00['json']();},async 'updateExternalSkill'(_0x40f814){const _0x1055e7=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x40f814)+'/update',{'method':'POST'});if(!_0x1055e7['ok']){const _0x4e6420=await _0x1055e7['json']()['catch'](()=>({'error':_0x1055e7['statusText']})),_0x308aae=new Error(_0x4e6420['error']||_0x4e6420['message']||_0x1055e7['statusText']);if(_0x4e6420['detail']!==undefined)_0x308aae['detail']=_0x4e6420['detail'];throw _0x308aae;}return await _0x1055e7['json']();},async 'updateSkillFlags'(_0x60d66f,_0x581721){const _0x2f401a=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x60d66f)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x581721})});if(!_0x2f401a['ok']){const _0x317c38=await _0x2f401a['json']()['catch'](()=>({'error':_0x2f401a['statusText']})),_0x410685=new Error(_0x317c38['error']||_0x317c38['message']||_0x2f401a['statusText']);if(_0x317c38['detail']!==undefined)_0x410685['detail']=_0x317c38['detail'];throw _0x410685;}return await _0x2f401a['json']();},async 'removeFromImportedRegistry'(_0x4f19ff){const _0x1758b0=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4f19ff)+'/registry',{'method':'DELETE'});if(!_0x1758b0['ok']){const _0x7b6c73=await _0x1758b0['json']()['catch'](()=>({'error':_0x1758b0['statusText']})),_0x3b35da=new Error(_0x7b6c73['error']||_0x7b6c73['message']||_0x1758b0['statusText']);if(_0x7b6c73['detail']!==undefined)_0x3b35da['detail']=_0x7b6c73['detail'];throw _0x3b35da;}return await _0x1758b0['json']();},async 'getTeams'(){const _0xca0ffa=await fetch(API_BASE+'/teams');if(!_0xca0ffa['ok']){const _0x2ea3c3=await _0xca0ffa['json']()['catch'](()=>({'message':_0xca0ffa['statusText']}));throw new Error(_0x2ea3c3['message']||'Failed\x20to\x20get\x20teams');}return await _0xca0ffa['json']();},async 'getTeam'(_0x2b42e6){const _0x219804=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2b42e6));if(!_0x219804['ok']){const _0x2c1c33=await _0x219804['json']()['catch'](()=>({'message':_0x219804['statusText']}));throw new Error(_0x2c1c33['message']||'Failed\x20to\x20get\x20team');}return await _0x219804['json']();},async 'createTeam'(_0x399f54){const _0x45cdce=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x399f54)});if(!_0x45cdce['ok']){const _0x1b7f9b=await _0x45cdce['json']()['catch'](()=>({'message':_0x45cdce['statusText']}));throw new Error(_0x1b7f9b['message']||'Failed\x20to\x20create\x20team');}return await _0x45cdce['json']();},async 'updateTeam'(_0x542a51,_0x264f4e){const _0x3c7d16=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x542a51),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x264f4e)});if(!_0x3c7d16['ok']){const _0x41c421=await _0x3c7d16['json']()['catch'](()=>({'message':_0x3c7d16['statusText']}));throw new Error(_0x41c421['message']||'Failed\x20to\x20update\x20team');}return await _0x3c7d16['json']();},async 'deleteTeam'(_0xca647a){const _0x4564e6=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xca647a),{'method':'DELETE'});if(!_0x4564e6['ok']){const _0x2c212d=await _0x4564e6['json']()['catch'](()=>({'message':_0x4564e6['statusText']}));throw new Error(_0x2c212d['message']||'Failed\x20to\x20delete\x20team');}return await _0x4564e6['json']();},async 'addTeamMember'(_0x3abda5,_0x57f893){const _0x210685=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x3abda5)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x57f893})});if(!_0x210685['ok']){const _0x190ca4=await _0x210685['json']()['catch'](()=>({'message':_0x210685['statusText']}));throw new Error(_0x190ca4['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x210685['json']();},async 'removeTeamMember'(_0x46cafa,_0x4e181e){const _0x199420=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x46cafa)+'/members/'+encodeURIComponent(_0x4e181e),{'method':'DELETE'});if(!_0x199420['ok']){const _0xf90a46=await _0x199420['json']()['catch'](()=>({'message':_0x199420['statusText']}));throw new Error(_0xf90a46['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x199420['json']();},async 'getBindings'(_0xe85569={}){const _0x472dba=new URLSearchParams();if(_0xe85569['resource_type'])_0x472dba['set']('resource_type',_0xe85569['resource_type']);if(_0xe85569['resource_id'])_0x472dba['set']('resource_id',_0xe85569['resource_id']);if(_0xe85569['subject_type'])_0x472dba['set']('subject_type',_0xe85569['subject_type']);if(_0xe85569['subject_id'])_0x472dba['set']('subject_id',_0xe85569['subject_id']);const _0x27d3a7=_0x472dba['toString'](),_0x11a783=await fetch(API_BASE+'/bindings'+(_0x27d3a7?'?'+_0x27d3a7:''));if(!_0x11a783['ok']){const _0x2e73f4=await _0x11a783['json']()['catch'](()=>({'message':_0x11a783['statusText']}));throw new Error(_0x2e73f4['message']||'Failed\x20to\x20get\x20bindings');}return await _0x11a783['json']();},async 'createBinding'(_0x59c120){const _0x54a385=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x59c120)});if(!_0x54a385['ok']){const _0x142917=await _0x54a385['json']()['catch'](()=>({'message':_0x54a385['statusText']}));throw new Error(_0x142917['message']||'Failed\x20to\x20create\x20binding');}return await _0x54a385['json']();},async 'updateBinding'(_0x2a4411,_0x1ea116){const _0x2d9ff5=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a4411),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1ea116)});if(!_0x2d9ff5['ok']){const _0x4e3eee=await _0x2d9ff5['json']()['catch'](()=>({'message':_0x2d9ff5['statusText']}));throw new Error(_0x4e3eee['message']||'Failed\x20to\x20update\x20binding');}return await _0x2d9ff5['json']();},async 'deleteBinding'(_0x11e5de){const _0x8debb2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x11e5de),{'method':'DELETE'});if(!_0x8debb2['ok']){const _0x47c077=await _0x8debb2['json']()['catch'](()=>({'message':_0x8debb2['statusText']}));throw new Error(_0x47c077['message']||'Failed\x20to\x20delete\x20binding');}return await _0x8debb2['json']();},async 'getRoleDefinitions'(){const _0x3a2320=await fetch(API_BASE+'/roles');if(!_0x3a2320['ok']){const _0x1d47a8=await _0x3a2320['json']()['catch'](()=>({'message':_0x3a2320['statusText']}));throw new Error(_0x1d47a8['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x3a2320['json']();},async 'getRoleDefinition'(_0x461629){const _0x137edf=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x461629));if(!_0x137edf['ok']){const _0x1bddc9=await _0x137edf['json']()['catch'](()=>({'message':_0x137edf['statusText']}));throw new Error(_0x1bddc9['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x137edf['json']();},async 'createRoleDefinition'(_0x4e2178){const _0x3dda47=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e2178)});if(!_0x3dda47['ok']){const _0x3f1a22=await _0x3dda47['json']()['catch'](()=>({'message':_0x3dda47['statusText']}));throw new Error(_0x3f1a22['message']||_0x3f1a22['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3dda47['json']();},async 'updateRoleDefinition'(_0x373d5a,_0x3ff7c6){const _0x4386bb=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x373d5a),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ff7c6)});if(!_0x4386bb['ok']){const _0x416419=await _0x4386bb['json']()['catch'](()=>({'message':_0x4386bb['statusText']}));throw new Error(_0x416419['message']||_0x416419['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x4386bb['json']();},async 'deleteRoleDefinition'(_0x22e8a0){const _0x38b6b9=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x22e8a0),{'method':'DELETE'});if(!_0x38b6b9['ok']){const _0x2abca3=await _0x38b6b9['json']()['catch'](()=>({'message':_0x38b6b9['statusText']}));throw new Error(_0x2abca3['message']||_0x2abca3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x38b6b9['json']();},async 'getAvailablePermissions'(){const _0x20a3d0=await fetch(API_BASE+'/roles/available-permissions');if(!_0x20a3d0['ok']){const _0x310815=await _0x20a3d0['json']()['catch'](()=>({'message':_0x20a3d0['statusText']}));throw new Error(_0x310815['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x20a3d0['json']();},async 'getGitProviderAllowedTeams'(_0x58edd6){const _0xf75254=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x58edd6)+'/allowed-teams');if(!_0xf75254['ok']){const _0x57b6d3=await _0xf75254['json']()['catch'](()=>({'message':_0xf75254['statusText']}));throw new Error(_0x57b6d3['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0xf75254['json']();},async 'setGitProviderAllowedTeams'(_0x32f1a3,_0x2b9e2e){const _0x3bf6d0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x32f1a3)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2b9e2e})});if(!_0x3bf6d0['ok']){const _0x370f60=await _0x3bf6d0['json']()['catch'](()=>({'message':_0x3bf6d0['statusText']}));throw new Error(_0x370f60['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3bf6d0['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 _0x1a32ff=toastState['baseBottom'];toastState['toasts']['forEach'](_0x2fc0b3=>{_0x2fc0b3['el']['style']['bottom']=_0x1a32ff+'px';const _0x3d6d25=_0x2fc0b3['el']['offsetHeight']||toastState['defaultHeight'];_0x1a32ff+=_0x3d6d25+toastState['gap'];});});}function removeToastById(_0x19d087){const _0x440a30=toastState['toasts']['findIndex'](_0x1388ea=>_0x1388ea['id']===_0x19d087);if(_0x440a30===-0x1)return;const _0x373857=toastState['toasts'][_0x440a30];if(_0x373857['timeoutId'])clearTimeout(_0x373857['timeoutId']);_0x373857['el']['classList']['remove']('show'),setTimeout(()=>_0x373857['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x440a30,0x1),repositionAllToasts();}function registerToast(_0x4f9476){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4f9476),repositionAllToasts(),_0x4f9476['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(_0x4e3899){if(_0x4e3899===null||_0x4e3899===undefined)return'';return String(_0x4e3899)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x4fb0f9,_0x57049e){if(_0x4fb0f9&&typeof _0x4fb0f9==='object'&&!Array['isArray'](_0x4fb0f9))return{'code':typeof _0x4fb0f9['text']==='string'?_0x4fb0f9['text']:'','language':typeof _0x4fb0f9['lang']==='string'?_0x4fb0f9['lang']:''};return{'code':typeof _0x4fb0f9==='string'?_0x4fb0f9:'','language':typeof _0x57049e==='string'?_0x57049e:''};}function buildMermaidBlock(_0x25f7c2){const _0x120428=String(_0x25f7c2||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x120428))+'\x22>'+escapeHtmlValue(_0x120428)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x317f2e=new marked['Renderer'](),_0xd5bc90=_0x317f2e['code']['bind'](_0x317f2e);return _0x317f2e['code']=function(_0x55170,_0xf3ebe5,..._0x13d2d4){const {code:_0x5d217a,language:_0x58784f}=getMarkdownCodeBlockPayload(_0x55170,_0xf3ebe5),_0x1c180a=String(_0x58784f||'')['trim']()['toLowerCase']();if(_0x1c180a==='mermaid')return buildMermaidBlock(_0x5d217a);const _0xb627d8=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0xb627d8&&_0x1c180a)try{const _0x105a35=_0xb627d8['getLanguage'](_0x1c180a)?_0x1c180a:'plaintext',_0x448870=_0xb627d8['highlight'](_0x5d217a,{'language':_0x105a35})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1c180a)+'\x22>'+_0x448870+'</code></pre>';}catch(_0x11e8ac){console['error']('Syntax\x20highlighting\x20error:',_0x11e8ac);}return _0xd5bc90(_0x55170,_0xf3ebe5,..._0x13d2d4);},sharedMarkedRenderer=_0x317f2e,_0x317f2e;}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 _0x425159=window['mermaid'];if(!_0x425159||typeof _0x425159['initialize']!=='function')return _0x425159||null;return _0x425159['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x425159;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x567676,_0x486120)=>{const _0x37ed74=()=>_0x567676(configureMermaidInstance()),_0x239fb5=()=>{mermaidLoadPromise=null,_0x486120(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x53b6d4=document['getElementById'](MERMAID_SCRIPT_ID);!_0x53b6d4&&(_0x53b6d4=document['createElement']('script'),_0x53b6d4['id']=MERMAID_SCRIPT_ID,_0x53b6d4['src']=MERMAID_SCRIPT_SRC,_0x53b6d4['async']=!![],document['head']['appendChild'](_0x53b6d4));if(window['mermaid']){_0x37ed74();return;}_0x53b6d4['addEventListener']('load',_0x37ed74,{'once':!![]}),_0x53b6d4['addEventListener']('error',_0x239fb5,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x3819c0){const _0x3c2178=_0x3819c0['getAttribute']('data-mermaid-source');if(!_0x3c2178)return null;let _0x557d0f=_0x3c2178;try{_0x557d0f=decodeURIComponent(_0x3c2178);}catch{}return _0x3819c0['textContent']=_0x557d0f,_0x3819c0['removeAttribute']('data-processed'),_0x3819c0['removeAttribute']('aria-roledescription'),_0x3819c0['removeAttribute']('role'),_0x3819c0['removeAttribute']('aria-label'),_0x557d0f;}function collectMermaidNodes(_0x188b38,_0x2dc0df){if(!(_0x188b38 instanceof Element))return;_0x188b38['matches']('.mermaid[data-mermaid-source]')&&_0x2dc0df['add'](_0x188b38),_0x188b38['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3e1deb=>{_0x2dc0df['add'](_0x3e1deb);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x3b191d=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x5c73e5=>setTimeout(_0x5c73e5,0x0);_0x3b191d(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x7d65b=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x7d65b);});});}function queueMermaidRender(_0x2458e3){const _0x5851c9=new Set();_0x2458e3 instanceof Document||_0x2458e3 instanceof DocumentFragment?_0x2458e3['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1b6c99=>_0x5851c9['add'](_0x1b6c99)):collectMermaidNodes(_0x2458e3,_0x5851c9);if(_0x5851c9['size']===0x0)return;_0x5851c9['forEach'](_0x465bd8=>pendingMermaidNodes['add'](_0x465bd8)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x17a59d=Array['from'](pendingMermaidNodes)['filter'](_0xaa83d1=>_0xaa83d1['isConnected']);pendingMermaidNodes['clear']();if(_0x17a59d['length']===0x0)return;const _0x296b5d=await loadMermaid();if(!_0x296b5d)return;configureMermaidInstance();const _0x494a6a=getMermaidTheme();for(const _0x44d538 of _0x17a59d){const _0x3addb5=_0x44d538['getAttribute']('data-mermaid-source');if(!_0x3addb5)continue;const _0x226388=_0x44d538['getAttribute']('data-processed')==='true';if(_0x226388&&_0x44d538['dataset']['mermaidTheme']===_0x494a6a)continue;restoreMermaidSource(_0x44d538);try{if(typeof _0x296b5d['run']==='function')await _0x296b5d['run']({'nodes':[_0x44d538]});else typeof _0x296b5d['init']==='function'&&_0x296b5d['init'](undefined,[_0x44d538]);_0x44d538['dataset']['mermaidTheme']=_0x494a6a,delete _0x44d538['dataset']['mermaidError'];}catch(_0x7a81ac){console['error']('Mermaid\x20render\x20failed:',_0x7a81ac),restoreMermaidSource(_0x44d538),_0x44d538['dataset']['mermaidError']='true',delete _0x44d538['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x277854=>{_0x277854['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x277854);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4e3e8c=>{_0x4e3e8c['forEach'](_0xe09cc6=>{_0xe09cc6['addedNodes']['forEach'](_0x449fa3=>{_0x449fa3['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x449fa3);});});}),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'(_0x224a65){const _0x131a57=new Date(_0x224a65),_0xcdbedb=new Date(),_0x4bac67=_0xcdbedb-_0x131a57,_0x3f3108=Math['floor'](_0x4bac67/0x3e8),_0x2840a3=Math['floor'](_0x3f3108/0x3c),_0x536202=Math['floor'](_0x2840a3/0x3c),_0x462e52=Math['floor'](_0x536202/0x18);if(_0x3f3108<0x3c)return'now';if(_0x2840a3<0x3c)return _0x2840a3+'m\x20ago';if(_0x536202<0x18)return _0x536202+'h\x20ago';return _0x462e52+'d\x20ago';},'getStatusIcon'(_0x347fb2){switch(_0x347fb2){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x49c700){switch(_0x49c700){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'(_0x1d8039,_0x4be7c3=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x4682c3={};_0x4682c3['text/plain']=new Blob([_0x1d8039],{'type':'text/plain'});_0x4be7c3&&(_0x4682c3['text/html']=new Blob([_0x4be7c3],{'type':'text/html'}));const _0x472018=new ClipboardItem(_0x4682c3);return await navigator['clipboard']['write']([_0x472018]),!![];}catch(_0x48e026){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x48e026);}try{const _0x10ac39=_0x55ac8b=>{_0x55ac8b['preventDefault'](),_0x55ac8b['clipboardData']['setData']('text/plain',_0x1d8039),_0x4be7c3&&_0x55ac8b['clipboardData']['setData']('text/html',_0x4be7c3);};document['addEventListener']('copy',_0x10ac39);const _0x5ab472=document['execCommand']('copy');document['removeEventListener']('copy',_0x10ac39);if(_0x5ab472)return!![];}catch(_0x4b1558){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x4b1558);}try{const _0x2107e1=document['createElement']('textarea');_0x2107e1['value']=_0x1d8039,_0x2107e1['style']['position']='fixed',_0x2107e1['style']['opacity']='0',_0x2107e1['style']['pointerEvents']='none',document['body']['appendChild'](_0x2107e1),_0x2107e1['select']();const _0x1acf2c=document['execCommand']('copy');return document['body']['removeChild'](_0x2107e1),_0x1acf2c;}catch(_0x574569){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x574569),![];}},'showToast'(_0x26a298,_0x2a3e4c='info'){const _0x533780=getNextToastId(),_0x34e859=document['createElement']('div');_0x34e859['className']='toast\x20toast-'+_0x2a3e4c,_0x34e859['textContent']=_0x26a298,_0x34e859['dataset']['toastId']=_0x533780,document['body']['appendChild'](_0x34e859);const _0x5ac104=_0x2a3e4c==='error'?0x2710:0xbb8,_0x3f8b1c=setTimeout(()=>{removeToastById(_0x533780);},_0x5ac104),_0x36d517={'id':_0x533780,'el':_0x34e859,'timeoutId':_0x3f8b1c};return registerToast(_0x36d517),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x34e859['classList']['add']('show');});}),_0x533780;},'showError'(_0xda94cc){console['error'](_0xda94cc);const _0x3f43d8=typeof _0xda94cc==='string'?_0xda94cc:_0xda94cc['message']||'An\x20error\x20occurred';this['showToast'](_0x3f43d8,'error');},'showSuccess'(_0x64720e){this['showToast'](_0x64720e,'success');},'capitalize'(_0xeaa3b0){if(!_0xeaa3b0)return'';return _0xeaa3b0['charAt'](0x0)['toUpperCase']()+_0xeaa3b0['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4406f7){return escapeHtmlValue(_0x4406f7);},'ansiToHtml'(_0x1da414){if(_0x1da414===null||_0x1da414===undefined)return'';let _0x350502=this['escapeHtml'](_0x1da414);const _0x3f736c={'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'},_0x429f68={'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 _0x8845dc=0x0;return _0x350502=_0x350502['replace'](/\x1b\[([0-9;]*)m/g,(_0x4bc6e3,_0x2adb08)=>{if(!_0x2adb08||_0x2adb08==='0'){const _0x211426='</span>'['repeat'](_0x8845dc);return _0x8845dc=0x0,_0x211426;}const _0x278beb=_0x2adb08['split'](';'),_0x5a7f8f=[];for(const _0x4aa881 of _0x278beb){if(_0x4aa881==='1')_0x5a7f8f['push']('font-weight:bold');else{if(_0x4aa881==='2')_0x5a7f8f['push']('opacity:0.7');else{if(_0x4aa881==='3')_0x5a7f8f['push']('font-style:italic');else{if(_0x4aa881==='4')_0x5a7f8f['push']('text-decoration:underline');else{if(_0x4aa881==='9')_0x5a7f8f['push']('text-decoration:line-through');else{if(_0x3f736c[_0x4aa881])_0x5a7f8f['push']('color:'+_0x3f736c[_0x4aa881]);else{if(_0x429f68[_0x4aa881])_0x5a7f8f['push']('background-color:'+_0x429f68[_0x4aa881]);}}}}}}}if(_0x5a7f8f['length']>0x0)return _0x8845dc++,'<span\x20style=\x22'+_0x5a7f8f['join'](';')+'\x22>';return'';}),_0x350502+='</span>'['repeat'](_0x8845dc),_0x350502=_0x350502['replace'](/\\u001b\[([0-9;]*)m/g,(_0x4ce79b,_0x22ea2d)=>{if(!_0x22ea2d||_0x22ea2d==='0')return'';const _0x3a08be=_0x22ea2d['split'](';'),_0x4beabc=[];for(const _0x19e98c of _0x3a08be){if(_0x19e98c==='1')_0x4beabc['push']('font-weight:bold');else{if(_0x3f736c[_0x19e98c])_0x4beabc['push']('color:'+_0x3f736c[_0x19e98c]);else{if(_0x429f68[_0x19e98c])_0x4beabc['push']('background-color:'+_0x429f68[_0x19e98c]);}}}if(_0x4beabc['length']>0x0)return'<span\x20style=\x22'+_0x4beabc['join'](';')+'\x22>';return'';}),_0x350502;},'showModal'({title:_0x28c07a,content:_0x265299,buttons:buttons=[]}){const _0x417f1f='\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'](_0x28c07a)+'</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'+_0x265299+'\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']((_0x267022,_0x58e02e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x267022['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x58e02e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x267022['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',_0x3d1ae1=document['createElement']('div');_0x3d1ae1['id']='utils-modal',_0x3d1ae1['className']='modal',_0x3d1ae1['innerHTML']=_0x417f1f,document['body']['appendChild'](_0x3d1ae1);const _0x48d493=document['getElementById']('utils-modal-close');_0x48d493&&_0x48d493['addEventListener']('click',()=>this['hideModal']());const _0xf44219=_0x3d1ae1['querySelectorAll']('[data-btn-index]');_0xf44219['forEach'](_0x711a1f=>{const _0x1c9a61=parseInt(_0x711a1f['dataset']['btnIndex']);buttons[_0x1c9a61]?.['onClick']&&_0x711a1f['addEventListener']('click',buttons[_0x1c9a61]['onClick']);});const _0x5e5190=document['getElementById']('utils-modal-overlay');_0x5e5190&&_0x5e5190['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x32b6ce=document['getElementById']('utils-modal');_0x32b6ce&&_0x32b6ce['remove']();},'parseKeyValuePairs'(_0x5095c0){const _0x128c47={};if(!_0x5095c0)return _0x128c47;return _0x5095c0['split'](/\r?\n/)['map'](_0x5e448e=>_0x5e448e['trim']())['filter'](Boolean)['forEach'](_0x45f4c1=>{const _0x44ca11=_0x45f4c1['indexOf']('=');if(_0x44ca11>0x0){const _0x39e408=_0x45f4c1['slice'](0x0,_0x44ca11)['trim'](),_0x221484=_0x45f4c1['slice'](_0x44ca11+0x1)['trim']();if(_0x39e408)_0x128c47[_0x39e408]=_0x221484;}}),_0x128c47;},'debounce'(_0x1901da,_0xe95c21=0xfa){let _0x29b144=null;return(..._0x18f3bb)=>{clearTimeout(_0x29b144),_0x29b144=setTimeout(()=>_0x1901da['apply'](this,_0x18f3bb),_0xe95c21);};},'formatTimestamp'(_0x13bf2e){if(!_0x13bf2e)return'N/A';const _0x684ebf=new Date(_0x13bf2e);return _0x684ebf['toLocaleDateString']()+'\x20'+_0x684ebf['toLocaleTimeString']();},'getQueryParams'(){const _0xf74cfc=new URLSearchParams(window['location']['search']),_0x34b0a2={};for(const [_0x21b160,_0x1b83a2]of _0xf74cfc){_0x34b0a2[_0x21b160]=_0x1b83a2;}return _0x34b0a2;},'formatDuration'(_0x1c8b05,_0x3a5ff4){if(!_0x1c8b05)return'N/A';const _0x177fee=new Date(_0x1c8b05),_0x375b1d=_0x3a5ff4?new Date(_0x3a5ff4):new Date(),_0x174263=_0x375b1d-_0x177fee;if(_0x174263<0x0)return'0s';const _0x3404cd=Math['floor'](_0x174263/0x3e8),_0x2e1987=Math['floor'](_0x3404cd/0x3c),_0xc4160c=Math['floor'](_0x2e1987/0x3c),_0x5a1c78=Math['floor'](_0xc4160c/0x18);if(_0x3404cd<0x3c)return _0x3404cd+'s';if(_0x2e1987<0x3c)return _0x2e1987+'m\x20'+_0x3404cd%0x3c+'s';if(_0xc4160c<0x18)return _0xc4160c+'h\x20'+_0x2e1987%0x3c+'m\x20'+_0x3404cd%0x3c+'s';return _0x5a1c78+'d\x20'+_0xc4160c%0x18+'h\x20'+_0x2e1987%0x3c+'m';},'renderMarkdown'(_0x5b1524,_0x153429={}){if(!_0x5b1524)return'';_0x5b1524=this['rewriteAttachmentLinks'](_0x5b1524,_0x153429),_0x5b1524=this['rewriteColorSyntax'](_0x5b1524);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x5b1524,_0x153429);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x5b1524);}catch(_0xc4018c){return console['error']('Markdown\x20parsing\x20error:',_0xc4018c),this['renderMarkdownFallback'](_0x5b1524,_0x153429);}},'rewriteAttachmentLinks'(_0x448fb8,_0x51c50f={}){const _0x59ea71=typeof _0x51c50f['resolveAttachmentUrl']==='function'?_0x51c50f['resolveAttachmentUrl']:_0x51c50f['taskId']?_0xb4b998=>API_BASE+'/tasks/'+_0x51c50f['taskId']+'/attachments/'+encodeURIComponent(_0xb4b998):null;if(!_0x59ea71)return _0x448fb8;return String(_0x448fb8)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x813a97,_0x5f0bc1)=>{const _0x3b3088=String(_0x5f0bc1||'')['trim']();if(!_0x3b3088)return _0x813a97;let _0x51477e=_0x3b3088;try{_0x51477e=decodeURIComponent(_0x3b3088);}catch{}const _0x5c1f7b=_0x59ea71(_0x51477e);if(!_0x5c1f7b)return _0x813a97;return']('+_0x5c1f7b+')';});},'rewriteColorSyntax'(_0x299c69){if(!_0x299c69)return _0x299c69;return String(_0x299c69)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0xb88d8e,_0x2f65f4,_0x276d25)=>{const _0x41d39c=this['rewriteColorSyntax'](_0x276d25);return'<span\x20style=\x22color:\x20'+_0x2f65f4+'\x22>'+_0x41d39c+'</span>';});},'renderMarkdownFallback'(_0x1f45dc,_0x44e76a={}){if(!_0x1f45dc)return'';_0x1f45dc=_0x1f45dc['replace'](/\r\n/g,'\x0a'),_0x1f45dc=_0x1f45dc['replace'](/\r/g,'\x0a'),_0x1f45dc=this['rewriteAttachmentLinks'](_0x1f45dc,_0x44e76a);let _0x3c80fd=this['escapeHtml'](_0x1f45dc);return _0x3c80fd=_0x3c80fd['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3c80fd=_0x3c80fd['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3c80fd=_0x3c80fd['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3c80fd=_0x3c80fd['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3c80fd=_0x3c80fd['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3c80fd=_0x3c80fd['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3c80fd=_0x3c80fd['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3c80fd=_0x3c80fd['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3c80fd=_0x3c80fd['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3c80fd=_0x3c80fd['replace'](/\n\n/g,'</p><p>'),_0x3c80fd=_0x3c80fd['replace'](/\n/g,'<br>'),'<p>'+_0x3c80fd+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x229672=new Uint8Array(0x10);crypto['getRandomValues'](_0x229672),_0x229672[0x6]=_0x229672[0x6]&0xf|0x40,_0x229672[0x8]=_0x229672[0x8]&0x3f|0x80;const _0x23d5b1=Array['from'](_0x229672,_0x311182=>_0x311182['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x23d5b1['slice'](0x0,0x8)+'-'+_0x23d5b1['slice'](0x8,0xc)+'-'+_0x23d5b1['slice'](0xc,0x10)+'-'+_0x23d5b1['slice'](0x10,0x14)+'-'+_0x23d5b1['slice'](0x14);}};export class CustomSelect{constructor(_0x4f3cc7,_0x33c667={}){this['nativeSelect']=_0x4f3cc7,this['options']=_0x33c667,this['isOpen']=![],this['selectedValue']=_0x4f3cc7['value']||'',this['searchable']=_0x33c667['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x30f4b9=document['createElement']('div');_0x30f4b9['className']='custom-select';const _0x1a85b8=document['createElement']('div');_0x1a85b8['className']='custom-select-trigger',_0x1a85b8['setAttribute']('tabindex','0'),_0x1a85b8['setAttribute']('role','button'),_0x1a85b8['setAttribute']('aria-haspopup','listbox');const _0x1b5e08=document['createElement']('span');_0x1b5e08['className']='custom-select-trigger-text';const _0x54738f=document['createElement']('span');_0x54738f['className']='custom-select-arrow',_0x54738f['textContent']='▼',_0x1a85b8['appendChild'](_0x1b5e08),_0x1a85b8['appendChild'](_0x54738f);const _0x43da45=document['createElement']('div');_0x43da45['className']='custom-select-dropdown',_0x43da45['setAttribute']('role','listbox');if(this['searchable']){const _0xf0a3aa=document['createElement']('div');_0xf0a3aa['className']='custom-select-search';const _0x2af9b9=document['createElement']('input');_0x2af9b9['type']='text',_0x2af9b9['className']='custom-select-search-input',_0x2af9b9['placeholder']='Type\x20to\x20search...',_0x2af9b9['setAttribute']('aria-label','Search\x20options'),_0x2af9b9['addEventListener']('input',_0x3d79f7=>{this['searchQuery']=_0x3d79f7['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x2af9b9['addEventListener']('keydown',_0x18a97e=>{if(_0x18a97e['key']==='Escape')_0x18a97e['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x18a97e['key']==='Enter'){_0x18a97e['preventDefault'](),_0x18a97e['stopPropagation']();const _0x543df6=_0x43da45['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x543df6){const _0x45914b=_0x543df6['getAttribute']('data-value');this['select'](_0x45914b);}}}}),_0xf0a3aa['appendChild'](_0x2af9b9),_0x43da45['appendChild'](_0xf0a3aa),this['searchInput']=_0x2af9b9;}const _0x395455=document['createElement']('div');_0x395455['className']='custom-select-options',_0x43da45['appendChild'](_0x395455),_0x30f4b9['appendChild'](_0x1a85b8),_0x30f4b9['appendChild'](_0x43da45),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x30f4b9,this['nativeSelect']),this['wrapper']=_0x30f4b9,this['trigger']=_0x1a85b8,this['triggerText']=_0x1b5e08,this['dropdown']=_0x43da45,this['optionsContainer']=_0x395455,_0x1a85b8['addEventListener']('click',()=>this['toggle']()),_0x1a85b8['addEventListener']('keydown',_0xcc933e=>this['handleKeydown'](_0xcc933e)),document['addEventListener']('click',_0x49bd54=>{!_0x30f4b9['contains'](_0x49bd54['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x2e116b=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x2e116b['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x1bbdaa=new MutationObserver(()=>{this['updateDisabledState']();});_0x1bbdaa['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x1658e8=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x1658e8['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x4cca61=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x4cca61),this['trigger']['setAttribute']('aria-disabled',_0x4cca61?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x4cca61?'-1':'0'),_0x4cca61&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x18b1cf=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x198b96=_0x18b1cf['filter'](_0x4da201=>!_0x4da201['disabled']&&!_0x4da201['hidden']);_0x18b1cf['forEach']((_0x3a6faa,_0x150812)=>{const _0x23b9e0=document['createElement']('div');_0x23b9e0['className']='custom-select-option',_0x23b9e0['textContent']=_0x3a6faa['textContent'],_0x23b9e0['setAttribute']('data-value',_0x3a6faa['value']),_0x23b9e0['setAttribute']('data-index',_0x150812),_0x23b9e0['setAttribute']('role','option'),_0x3a6faa['disabled']?_0x23b9e0['classList']['add']('disabled'):_0x23b9e0['addEventListener']('click',()=>this['select'](_0x3a6faa['value'])),_0x3a6faa['value']===this['selectedValue']&&_0x23b9e0['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x23b9e0),this['allOptions']['push']({'element':_0x23b9e0,'text':_0x3a6faa['textContent']['toLowerCase'](),'value':_0x3a6faa['value'],'disabled':_0x3a6faa['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4bf2aa=this['searchInput']['parentElement'];_0x198b96['length']>0x3?_0x4bf2aa['style']['display']='':_0x4bf2aa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x24d4d4=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x288271=>{if(!_0x24d4d4||_0x288271['disabled'])_0x288271['element']['style']['display']='';else{const _0x391dfd=_0x288271['text']['includes'](_0x24d4d4);_0x288271['element']['style']['display']=_0x391dfd?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0xef20a4){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0xef20a4,this['nativeSelect']['value']=_0xef20a4;const _0x30aaf2=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x30aaf2),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x25b232=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x25b232&&(this['triggerText']['textContent']=_0x25b232['textContent'],_0x25b232['disabled']||_0x25b232['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x916a25=>{_0x916a25['getAttribute']('data-value')===this['selectedValue']?_0x916a25['classList']['add']('selected'):_0x916a25['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 _0x2ff1b8=window['getComputedStyle'](this['dropdown']);if(_0x2ff1b8['position']==='fixed'){const _0x3da3ff=this['trigger']['getBoundingClientRect'](),_0x54b28d=parseInt(_0x2ff1b8['maxHeight'])||0xc8,_0x4270b0=window['innerHeight'],_0x497231=_0x4270b0-_0x3da3ff['bottom'],_0x333898=_0x3da3ff['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0xbeeb6d;_0x497231<_0x54b28d&&_0x333898>_0x497231?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x4270b0-_0x3da3ff['top']+'px',_0xbeeb6d=Math['min'](_0x54b28d,_0x333898-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x3da3ff['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0xbeeb6d=Math['min'](_0x54b28d,_0x497231-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px');if(this['optionsContainer']){let _0x4401ed=_0xbeeb6d;if(this['searchInput']){const _0x54340e=this['searchInput']['parentElement'];_0x54340e&&(_0x4401ed-=_0x54340e['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4401ed)+'px';}this['dropdown']['style']['left']=_0x3da3ff['left']+'px',this['dropdown']['style']['width']=_0x3da3ff['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x518053=this['searchInput']['parentElement'];_0x518053&&_0x518053['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'](_0x34f143){if(this['nativeSelect']['disabled'])return;if(_0x34f143['key']==='Enter'||_0x34f143['key']==='\x20')_0x34f143['preventDefault'](),this['toggle']();else _0x34f143['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x469eb7='\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',_0x469eb7),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x834681=document['getElementById']('confirm-dialog-close'),_0x4930c4=document['getElementById']('confirm-dialog-cancel'),_0x4f7182=document['getElementById']('confirm-dialog-confirm'),_0x4da606=this['_modal']['querySelector']('.modal-overlay');_0x834681['addEventListener']('click',()=>this['_resolve'](![])),_0x4930c4['addEventListener']('click',()=>this['_resolve'](![])),_0x4f7182['addEventListener']('click',()=>this['_resolve'](!![])),_0x4da606['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1eede=>{if(_0x1eede['key']==='Escape')_0x1eede['preventDefault'](),this['_resolve'](![]);else _0x1eede['key']==='Enter'&&(_0x1eede['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x51ac10,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x8d7248=>{this['_resolvePromise']=_0x8d7248,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x51ac10;const _0x4c3349=document['getElementById']('confirm-dialog-cancel'),_0x5c764b=document['getElementById']('confirm-dialog-confirm');_0x4c3349['textContent']=cancelText,_0x5c764b['textContent']=confirmText,_0x5c764b['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x5c764b['focus']();});},'_resolve'(_0x6df270){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x6df270),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x31ec19,_0x220dee={}){this['container']=_0x31ec19,this['options']={'placeholder':_0x220dee['placeholder']||'Type\x20to\x20search...','maxItems':_0x220dee['maxItems']||0x64,'loadItems':_0x220dee['loadItems']||(async()=>[]),'renderItem':_0x220dee['renderItem']||(_0x105db6=>({'primary':String(_0x105db6),'secondary':''})),'onSelect':_0x220dee['onSelect']||(()=>{}),'filterItems':_0x220dee['filterItems']||null,'getItemValue':_0x220dee['getItemValue']||(_0xe5e0d7=>_0xe5e0d7),'sortItems':_0x220dee['sortItems']||null,'debounceMs':_0x220dee['debounceMs']||0xc8,'minCharsForSearch':_0x220dee['minCharsForSearch']||0x0,'emptyMessage':_0x220dee['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x220dee['loadingMessage']||'Loading...','preload':_0x220dee['preload']!==![],'searchMode':_0x220dee['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',_0x2339c7=>this['onBlur'](_0x2339c7)),this['input']['addEventListener']('input',_0x1703d4=>this['onInput'](_0x1703d4)),this['input']['addEventListener']('keydown',_0x13174e=>this['onKeydown'](_0x13174e)),this['clearBtn']['addEventListener']('mousedown',_0x48672c=>{_0x48672c['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x144189=>{_0x144189['preventDefault']();}),document['addEventListener']('click',_0x45e69f=>{!this['wrapper']['contains'](_0x45e69f['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(_0x4946e5){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x4946e5);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5008cf){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x47f601){const _0x4c41ab=_0x47f601['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4c41ab);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4c41ab):this['loadAndShow'](_0x4c41ab);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x37cedf){switch(_0x37cedf['key']){case'ArrowDown':_0x37cedf['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x37cedf['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x37cedf['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x37cedf['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2bf6bd){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x38ca68=this['selectedIndex']+_0x2bf6bd;if(_0x38ca68>=0x0&&_0x38ca68<this['filteredItems']['length']){this['selectedIndex']=_0x38ca68,this['updateSelectionHighlight']();const _0x3d5ddb=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x3d5ddb[this['selectedIndex']]&&_0x3d5ddb[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x124b05=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x124b05['forEach']((_0x9e82d6,_0x1e2b42)=>{_0x9e82d6['classList']['toggle']('keyboard-selected',_0x1e2b42===this['selectedIndex']);});}async['loadAndShow'](_0x2df97b){this['showLoading']();try{const _0x4aa47d=await this['options']['loadItems'](_0x2df97b);if(this['options']['searchMode']==='server'){let _0x1d9912=_0x4aa47d;this['options']['sortItems']&&(_0x1d9912=this['options']['sortItems']([..._0x4aa47d]));this['filteredItems']=_0x1d9912;const _0x549eeb=this['filteredItems']['length']>=this['options']['maxItems'];_0x549eeb&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549eeb),this['open']();}else this['allItems']=_0x4aa47d,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x2df97b);}catch(_0x48486d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x48486d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x1a5fd3){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x1a5fd3):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x42476e=this['filteredItems']['length']>=this['options']['maxItems'];_0x42476e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x42476e),this['open']();}['renderItems'](_0x4ca519){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']((_0x422b99,_0x5bb20e)=>{const _0x5ef669=document['createElement']('div');_0x5ef669['className']='autocomplete-select-item',_0x5ef669['setAttribute']('role','option'),_0x5ef669['setAttribute']('data-index',_0x5bb20e);const _0x9e1bb1=this['options']['renderItem'](_0x422b99);let _0x3380c5='';_0x9e1bb1['icon']&&(_0x3380c5='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x9e1bb1['iconClass']||'')+'\x22>'+_0x9e1bb1['icon']+'</span>'),_0x5ef669['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3380c5+'\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'](_0x9e1bb1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x9e1bb1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x9e1bb1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5ef669['addEventListener']('click',()=>{this['selectItem'](_0x422b99);}),_0x5ef669['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x5bb20e,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5ef669);}),_0x4ca519?(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'](_0x369b2b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x369b2b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x41a76d){this['selectedItem']=_0x41a76d;const _0x14885a=this['options']['renderItem'](_0x41a76d);this['input']['value']=_0x14885a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x41a76d);}['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'](_0x1eeb00){if(_0x1eeb00){this['selectedItem']=_0x1eeb00;const _0x18ca0a=this['options']['renderItem'](_0x1eeb00);this['input']['value']=_0x18ca0a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x270420){this['allItems']=_0x270420,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'](_0x307f5d){this['input']['placeholder']=_0x307f5d;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5cc577=null){const _0x310637=document['getElementById']('admin-menu-container'),_0x549898=document['getElementById']('admin-menu-btn'),_0x6a5aaf=document['getElementById']('admin-menu');if(!_0x310637||!_0x549898||!_0x6a5aaf)return;try{!_0x5cc577&&(_0x5cc577=await API['getCurrentUser']());if(_0x5cc577){const _0x3565a8=window['Permissions'],_0x3b37e7=_0x3565a8['hasServerPermission'](_0x5cc577,'*')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:manage')||_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')||_0x3565a8['hasTeamPermission'](_0x5cc577,'teams:manage')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:view_details');if(!_0x3b37e7)return;_0x310637['hidden']=![];if(!_0x3565a8['hasServerPermission'](_0x5cc577,'*')){const _0x7f49aa=_0x6a5aaf['querySelectorAll']('.admin-menu-item');_0x7f49aa['forEach'](_0x592209=>{const _0x38f5a1=_0x592209['querySelector']('.option-text')?.['textContent']?.['trim']();_0x38f5a1==='Users'&&!_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')&&(_0x592209['hidden']=!![]),_0x38f5a1==='Skills'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Settings'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Administration'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Git\x20History'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Roles'&&(_0x592209['hidden']=!![]);});}_0x549898['addEventListener']('click',_0x8b5454=>{_0x8b5454['stopPropagation']();const _0x535af5=document['getElementById']('actions-menu');if(_0x535af5)_0x535af5['hidden']=!![];_0x6a5aaf['hidden']=!_0x6a5aaf['hidden'];}),document['addEventListener']('click',_0x1b1742=>{!_0x6a5aaf['hidden']&&!_0x549898['contains'](_0x1b1742['target'])&&!_0x6a5aaf['contains'](_0x1b1742['target'])&&(_0x6a5aaf['hidden']=!![]);}),document['addEventListener']('keydown',_0x4a413c=>{_0x4a413c['key']==='Escape'&&!_0x6a5aaf['hidden']&&(_0x6a5aaf['hidden']=!![]);});}}catch(_0x447d53){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x447d53['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|