@profoundlogic/coderflow-server 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coder-server.js +1 -1
- package/dist/config/skill-catalog.json +9 -0
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/cleanup-users.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/grant-admin.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/list-roles.js +1 -1
- package/dist/lib/cli/list-users.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -1
- package/dist/lib/compression-filter.js +1 -1
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/external-connections.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/ibmi-sync.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/memory-utils.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/permission-resolver.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/slack-service.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-aliases.js +1 -1
- package/dist/lib/task-container-init.js +1 -1
- package/dist/lib/task-context-usage.js +1 -1
- package/dist/lib/task-git-auth-errors.js +1 -1
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/playwright.config.js +1 -1
- package/dist/playwright.task-terminal.config.js +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/automations.js +1 -1
- package/dist/routes/bindings.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/logs.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/roles.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/slack.js +1 -1
- package/dist/routes/stats.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/scripts/migrate-config-to-data-dir.js +1 -1
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/admin.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/docs/docsify-proxy-helper.js +1 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/file-selection-tree.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/ibmi-file-filter.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/permissions.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-client.transport-warning.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/styles.css +111 -0
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.html +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 _0x462b5b=window['location']['pathname'],_0x1d3428=_0x462b5b['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x1d3428)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x1d3428[0x1]),_0x1d3428[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x54b4ce={}){const _0x22204d=new URLSearchParams();_0x54b4ce['userId']&&_0x22204d['set']('userId',String(_0x54b4ce['userId']));_0x54b4ce['automation']&&_0x22204d['set']('automation',String(_0x54b4ce['automation']));const _0x21f5a2=API_BASE+'/tasks/stats'+(_0x22204d['toString']()?'?'+_0x22204d['toString']():''),_0x37fe84=await fetch(_0x21f5a2);if(!_0x37fe84['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x37fe84['statusText']);return await _0x37fe84['json']();},async 'getTasks'(_0x2fc1a3={}){const _0x2ff1d8=new URLSearchParams();_0x2fc1a3['status']&&_0x2ff1d8['set']('status',String(_0x2fc1a3['status']));_0x2fc1a3['environment']&&_0x2ff1d8['set']('environment',String(_0x2fc1a3['environment']));_0x2fc1a3['automation']&&_0x2ff1d8['set']('automation',String(_0x2fc1a3['automation']));if(_0x2fc1a3['include']){const _0x48b3ea=Array['isArray'](_0x2fc1a3['include'])?_0x2fc1a3['include']['join'](','):String(_0x2fc1a3['include']);_0x48b3ea&&_0x2ff1d8['set']('include',_0x48b3ea);}_0x2fc1a3['filter']&&_0x2ff1d8['set']('filter',String(_0x2fc1a3['filter']));_0x2fc1a3['page']&&_0x2ff1d8['set']('page',String(_0x2fc1a3['page']));_0x2fc1a3['limit']&&_0x2ff1d8['set']('limit',String(_0x2fc1a3['limit']));_0x2fc1a3['userId']&&_0x2ff1d8['set']('userId',String(_0x2fc1a3['userId']));_0x2fc1a3['search']&&_0x2ff1d8['set']('search',String(_0x2fc1a3['search']));_0x2fc1a3['includeChildTasks']&&_0x2ff1d8['set']('includeChildTasks','true');const _0x11667d=API_BASE+'/tasks'+(_0x2ff1d8['toString']()?'?'+_0x2ff1d8['toString']():''),_0x465f92=await fetch(_0x11667d);if(!_0x465f92['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x465f92['statusText']);return await _0x465f92['json']();},async 'getAutomations'(_0x14ad2a={}){const _0x4d4171=new URLSearchParams();_0x14ad2a['environment']&&_0x4d4171['set']('environment',String(_0x14ad2a['environment']));const _0x34d594=await fetch(API_BASE+'/api/automations'+(_0x4d4171['toString']()?'?'+_0x4d4171['toString']():''));if(!_0x34d594['ok']){const _0x26cfcd=await _0x34d594['json']()['catch'](()=>({}));throw new Error(_0x26cfcd['message']||_0x26cfcd['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x34d594['statusText']);}return await _0x34d594['json']();},async 'getAutomation'(_0x1aeeb7){const _0x27e844=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1aeeb7));if(!_0x27e844['ok']){const _0x176831=await _0x27e844['json']()['catch'](()=>({}));throw new Error(_0x176831['message']||_0x176831['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x27e844['statusText']);}return await _0x27e844['json']();},async 'createAutomation'(_0x4c1a07){const _0x3e7f1d=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4c1a07||{})});if(!_0x3e7f1d['ok']){const _0xcd0855=await _0x3e7f1d['json']()['catch'](()=>({}));throw new Error(_0xcd0855['message']||_0xcd0855['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3e7f1d['statusText']);}return await _0x3e7f1d['json']();},async 'updateAutomation'(_0xb20c4f,_0x5e80d2){const _0x5536d2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xb20c4f),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5e80d2||{})});if(!_0x5536d2['ok']){const _0x5a6d25=await _0x5536d2['json']()['catch'](()=>({}));throw new Error(_0x5a6d25['message']||_0x5a6d25['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5536d2['statusText']);}return await _0x5536d2['json']();},async 'deleteAutomation'(_0x588198){const _0xcf5335=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x588198),{'method':'DELETE'});if(!_0xcf5335['ok']){const _0x5c1dc7=await _0xcf5335['json']()['catch'](()=>({}));throw new Error(_0x5c1dc7['message']||_0x5c1dc7['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xcf5335['statusText']);}return await _0xcf5335['json']();},async 'triggerAutomation'(_0x4dd50f){const _0x3f7088=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x4dd50f)+'/trigger',{'method':'POST'});if(!_0x3f7088['ok']){const _0x2acd60=await _0x3f7088['json']()['catch'](()=>({}));throw new Error(_0x2acd60['message']||_0x2acd60['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3f7088['statusText']);}return await _0x3f7088['json']();},async 'setAutomationEnabled'(_0xc2ce79,_0x3622df){const _0x2fbdda=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0xc2ce79)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3622df})});if(!_0x2fbdda['ok']){const _0x363c4e=await _0x2fbdda['json']()['catch'](()=>({}));throw new Error(_0x363c4e['message']||_0x363c4e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2fbdda['statusText']);}return await _0x2fbdda['json']();},async 'getAutomationHistory'(_0x38127b,_0x1b5eec=0x32){const _0x497193=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x38127b)+'/history?limit='+encodeURIComponent(String(_0x1b5eec)));if(!_0x497193['ok']){const _0x17cb71=await _0x497193['json']()['catch'](()=>({}));throw new Error(_0x17cb71['message']||_0x17cb71['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x497193['statusText']);}return await _0x497193['json']();},async 'getTask'(_0x5551d7,_0x43a4b8={}){const _0x263628=new URLSearchParams();if(_0x43a4b8['include']){const _0x31c33d=Array['isArray'](_0x43a4b8['include'])?_0x43a4b8['include']['join'](','):String(_0x43a4b8['include']);if(_0x31c33d)_0x263628['set']('include',_0x31c33d);}const _0x5eaf62=await fetch(API_BASE+'/tasks/'+_0x5551d7+(_0x263628['toString']()?'?'+_0x263628['toString']():''));if(!_0x5eaf62['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5eaf62['statusText']);return await _0x5eaf62['json']();},async 'getTaskResults'(_0xcc9986){const _0x46b81e=await fetch(API_BASE+'/tasks/'+_0xcc9986+'/results');if(!_0x46b81e['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x46b81e['statusText']);return await _0x46b81e['json']();},async 'getTaskPatches'(_0xed2e97){const _0x43d7f7=await fetch(API_BASE+'/tasks/'+_0xed2e97+'/patches');if(!_0x43d7f7['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x43d7f7['statusText']);return await _0x43d7f7['json']();},async 'getTaskAttachments'(_0x22acd3){const _0x501c16=await fetch(API_BASE+'/tasks/'+_0x22acd3+'/attachments');if(!_0x501c16['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x501c16['statusText']);return await _0x501c16['json']();},async 'uploadAttachments'(_0x37bb58,_0x123f03){const _0x2d2053=new FormData();for(const _0x189d6d of _0x123f03){_0x2d2053['append']('attachments',_0x189d6d);}const _0xf2eef6=await fetch(API_BASE+'/tasks/'+_0x37bb58+'/attachments',{'method':'POST','body':_0x2d2053});if(!_0xf2eef6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0xf2eef6['statusText']);return await _0xf2eef6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11228d=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11228d['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11228d['json']();}catch(_0xca9e82){return{'available':![],'reason':_0xca9e82['message']};}},async 'generateTaskName'(_0x2b725c){try{const _0x28cef5=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x2b725c})});return await _0x28cef5['json']();}catch(_0x471b43){return{'success':![],'error':_0x471b43['message']};}},async 'createTask'(_0x2ea6b2){let _0x2ff1d0,_0xe5ff50={};if(_0x2ea6b2['files']&&_0x2ea6b2['files']['length']>0x0){const _0x230da2=new FormData();for(const [_0x3c9b3b,_0x327279]of Object['entries'](_0x2ea6b2)){if(_0x3c9b3b!=='files'){if(_0x327279==null)continue;typeof _0x327279==='object'?_0x230da2['append'](_0x3c9b3b,JSON['stringify'](_0x327279)):_0x230da2['append'](_0x3c9b3b,String(_0x327279));}}for(const _0xfc72d0 of _0x2ea6b2['files']){_0x230da2['append']('attachments',_0xfc72d0);}_0x2ff1d0=_0x230da2;}else _0xe5ff50['Content-Type']='application/json',_0x2ff1d0=JSON['stringify'](_0x2ea6b2);const _0x392022=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0xe5ff50,'body':_0x2ff1d0});if(!_0x392022['ok']){const _0x37836e=await _0x392022['json'](),_0x36a9ce=new Error(_0x37836e['error']||'Failed\x20to\x20create\x20task:\x20'+_0x392022['statusText']),{message:_0x42c6b5,..._0x20db15}=_0x37836e;Object['assign'](_0x36a9ce,_0x20db15);throw _0x36a9ce;}return await _0x392022['json']();},async 'createTestTask'(_0xb4b94){const _0xeaa10e=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xb4b94)});if(!_0xeaa10e['ok']){const _0x3f24d9=await _0xeaa10e['json']();throw new Error(_0x3f24d9['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xeaa10e['statusText']);}return await _0xeaa10e['json']();},async 'createEphemeralTest'(_0x5d0f6b){const _0x509338=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5d0f6b)});if(!_0x509338['ok']){const _0x1cfcbf=await _0x509338['json']();throw new Error(_0x1cfcbf['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x509338['statusText']);}return await _0x509338['json']();},async 'createDeployTask'(_0x2079af){const _0x3a6d5a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2079af)});if(!_0x3a6d5a['ok']){const _0x302b74=await _0x3a6d5a['json']();throw new Error(_0x302b74['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x3a6d5a['statusText']);}return await _0x3a6d5a['json']();},async 'getEnvironments'(){const _0x358aa7=await fetch(API_BASE+'/environments');if(!_0x358aa7['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x358aa7['statusText']);return await _0x358aa7['json']();},async 'getEnvironment'(_0x38da71){const _0x546c2f=await fetch(API_BASE+'/environments/'+_0x38da71);if(!_0x546c2f['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x546c2f['statusText']);return await _0x546c2f['json']();},async 'getEnvironmentRepoHistory'(_0xb0bb17,_0x3f113,_0x57ff90={}){if(!_0xb0bb17||!_0x3f113)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3f932d=new URLSearchParams();if(_0x57ff90['limit'])_0x3f932d['set']('limit',String(_0x57ff90['limit']));if(_0x57ff90['offset'])_0x3f932d['set']('offset',String(_0x57ff90['offset']));if(_0x57ff90['search'])_0x3f932d['set']('search',String(_0x57ff90['search']));if(_0x57ff90['branch'])_0x3f932d['set']('branch',String(_0x57ff90['branch']));const _0x1907e7=API_BASE+'/environments/'+encodeURIComponent(_0xb0bb17)+'/repos/'+encodeURIComponent(_0x3f113)+'/git/history',_0x45234b=await fetch(''+_0x1907e7+(_0x3f932d['toString']()?'?'+_0x3f932d['toString']():''));if(!_0x45234b['ok']){const _0x28aa1c=await _0x45234b['json']()['catch'](()=>({}));throw new Error(_0x28aa1c['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x45234b['statusText']);}return await _0x45234b['json']();},async 'getEnvironmentRepoCommit'(_0x2fcea5,_0xa6b767,_0x21c21b){if(!_0x2fcea5||!_0xa6b767||!_0x21c21b)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x50b2f4=API_BASE+'/environments/'+encodeURIComponent(_0x2fcea5)+'/repos/'+encodeURIComponent(_0xa6b767)+'/git/commits/'+encodeURIComponent(_0x21c21b),_0x4c6f74=await fetch(_0x50b2f4);if(!_0x4c6f74['ok']){const _0x543fb3=await _0x4c6f74['json']()['catch'](()=>({}));throw new Error(_0x543fb3['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x4c6f74['statusText']);}return await _0x4c6f74['json']();},async 'getEnvironmentRepoBranches'(_0x3c53f2,_0x49917e){if(!_0x3c53f2||!_0x49917e)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x5f521b=API_BASE+'/environments/'+encodeURIComponent(_0x3c53f2)+'/repos/'+encodeURIComponent(_0x49917e)+'/git/branches',_0x273bd9=await fetch(_0x5f521b);if(!_0x273bd9['ok']){const _0x630b09=await _0x273bd9['json']()['catch'](()=>({}));throw new Error(_0x630b09['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x273bd9['statusText']);}return await _0x273bd9['json']();},async 'revertEnvironmentRepoCommit'(_0x14d765,_0x43c36f,_0x1ea393,_0x4459b4={}){if(!_0x14d765||!_0x43c36f||!_0x1ea393)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x377715=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x14d765)+'/repos/'+encodeURIComponent(_0x43c36f)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x1ea393,..._0x4459b4})});if(!_0x377715['ok']){const _0x38995c=await _0x377715['json']()['catch'](()=>({}));throw new Error(_0x38995c['message']||_0x38995c['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x377715['statusText']);}return await _0x377715['json']();},async 'getTemplates'(_0x1966d8={}){const _0x11f9ee=new URLSearchParams();if(_0x1966d8['include']){const _0xe01e55=Array['isArray'](_0x1966d8['include'])?_0x1966d8['include']['join'](','):String(_0x1966d8['include']);if(_0xe01e55)_0x11f9ee['set']('include',_0xe01e55);}const _0x20cbfb=await fetch(API_BASE+'/templates'+(_0x11f9ee['toString']()?'?'+_0x11f9ee['toString']():''));if(!_0x20cbfb['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x20cbfb['statusText']);return await _0x20cbfb['json']();},async 'getTemplatesForEnvironment'(_0x268615,_0x3005b9={}){if(!_0x268615)throw new Error('Environment\x20name\x20is\x20required');const _0x286f56=new URLSearchParams();if(_0x3005b9['include']){const _0x8138fb=Array['isArray'](_0x3005b9['include'])?_0x3005b9['include']['join'](','):String(_0x3005b9['include']);if(_0x8138fb)_0x286f56['set']('include',_0x8138fb);}const _0x263337=await fetch(API_BASE+'/templates/'+_0x268615+(_0x286f56['toString']()?'?'+_0x286f56['toString']():''));if(!_0x263337['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x268615+':\x20'+_0x263337['statusText']);return await _0x263337['json']();},async 'getTemplate'(_0x122a01,_0x2314a6,_0xff7399={}){if(!_0x122a01||!_0x2314a6)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x47a26f=new URLSearchParams();if(_0xff7399['include']){const _0x709fed=Array['isArray'](_0xff7399['include'])?_0xff7399['include']['join'](','):String(_0xff7399['include']);if(_0x709fed)_0x47a26f['set']('include',_0x709fed);}const _0x3dd675=await fetch(API_BASE+'/templates/'+_0x122a01+'/'+_0x2314a6+(_0x47a26f['toString']()?'?'+_0x47a26f['toString']():''));if(!_0x3dd675['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dd675['statusText']);return await _0x3dd675['json']();},async 'getTaskLogs'(_0x145f1a,_0x4f8412={}){if(!_0x145f1a)throw new Error('Task\x20ID\x20is\x20required');const _0x5dc25c=new URLSearchParams();_0x4f8412['tail']&&_0x5dc25c['set']('tail',String(_0x4f8412['tail']));const _0x415383=await fetch(API_BASE+'/tasks/'+_0x145f1a+'/logs'+(_0x5dc25c['toString']()?'?'+_0x5dc25c['toString']():''));if(!_0x415383['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x415383['statusText']);return await _0x415383['text']();},async 'getContainers'(){const _0x3798f7=await fetch(API_BASE+'/containers');if(!_0x3798f7['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x3798f7['statusText']);return await _0x3798f7['json']();},async 'getContainer'(_0x57f1e1){const _0xb01543=await fetch(API_BASE+'/containers/'+_0x57f1e1);if(!_0xb01543['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xb01543['statusText']);return await _0xb01543['json']();},async 'startInteractiveContainer'(_0x2b9161){const _0x1568e7=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2b9161)});if(!_0x1568e7['ok']){const _0x11d532=await _0x1568e7['json']()['catch'](()=>({}));throw new Error(_0x11d532['message']||'Failed\x20to\x20start\x20container:\x20'+_0x1568e7['statusText']);}return await _0x1568e7['json']();},async 'startContainerCodeServer'(_0x273a65,_0x54d450={}){if(!_0x273a65)throw new Error('Container\x20ID\x20is\x20required');const _0x218216=new URLSearchParams();_0x54d450['theme']&&_0x218216['set']('theme',_0x54d450['theme']);const _0x426f40=await fetch(API_BASE+'/containers/'+_0x273a65+'/code-server'+(_0x218216['toString']()?'?'+_0x218216['toString']():'')),_0x297b0c=await _0x426f40['json']()['catch'](()=>({}));if(!_0x426f40['ok'])throw new Error(_0x297b0c['message']||_0x297b0c['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x426f40['statusText']);return _0x297b0c;},async 'stopContainer'(_0x3f6c36){const _0x546453=await fetch(API_BASE+'/containers/'+_0x3f6c36,{'method':'DELETE'});if(!_0x546453['ok']){const _0xc83c58=await _0x546453['json']()['catch'](()=>({}));throw new Error(_0xc83c58['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x546453['statusText']);}return await _0x546453['json']();},async 'stopTask'(_0x342d81){if(!_0x342d81)throw new Error('Task\x20ID\x20is\x20required');const _0x348680=await fetch(API_BASE+'/tasks/'+_0x342d81+'/stop',{'method':'POST'});if(!_0x348680['ok']){const _0x20c107=await _0x348680['json']()['catch'](()=>({}));throw new Error(_0x20c107['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x348680['statusText']);}return await _0x348680['json']();},async 'interruptTask'(_0x445fb7){if(!_0x445fb7)throw new Error('Task\x20ID\x20is\x20required');const _0xa22ff1=await fetch(API_BASE+'/tasks/'+_0x445fb7+'/interrupt',{'method':'POST'});if(!_0xa22ff1['ok']){const _0x53312a=await _0xa22ff1['json']()['catch'](()=>({}));throw new Error(_0x53312a['error']||_0x53312a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0xa22ff1['statusText']);}return await _0xa22ff1['json']();},async 'startTask'(_0x1660c2){if(!_0x1660c2)throw new Error('Task\x20ID\x20is\x20required');const _0x4e5ff1=await fetch(API_BASE+'/tasks/'+_0x1660c2+'/start',{'method':'POST'});if(!_0x4e5ff1['ok']){const _0x5e2986=await _0x4e5ff1['json']()['catch'](()=>({}));throw new Error(_0x5e2986['error']||'Failed\x20to\x20start\x20task:\x20'+_0x4e5ff1['statusText']);}return await _0x4e5ff1['json']();},async 'deleteTask'(_0x122547){if(!_0x122547)throw new Error('Task\x20ID\x20is\x20required');const _0x9b9b4=await fetch(API_BASE+'/tasks/'+_0x122547,{'method':'DELETE'});if(!_0x9b9b4['ok']){const _0x369e8e=await _0x9b9b4['json']()['catch'](()=>({}));throw new Error(_0x369e8e['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x9b9b4['statusText']);}return await _0x9b9b4['json']();},async 'refreshTasksFromDisk'(){const _0x46a907=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x46a907['ok']){const _0x315f35=await _0x46a907['json']()['catch'](()=>({}));throw new Error(_0x315f35['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x46a907['statusText']);}return await _0x46a907['json']();},async 'approveTask'(_0x4a3695,_0x5117f3={}){if(!_0x4a3695)throw new Error('Task\x20ID\x20is\x20required');const _0x443b16={'commit_message':_0x5117f3['commit_message']||'','pull':_0x5117f3['pull']??![],'push':_0x5117f3['push']??![],'conflict_strategy':_0x5117f3['conflict_strategy']||'rebase'};_0x5117f3['new_branch']&&(_0x443b16['new_branch']=_0x5117f3['new_branch']);const _0x1ac458=await fetch(API_BASE+'/tasks/'+_0x4a3695+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x443b16)});if(!_0x1ac458['ok']){const _0x3a3865=await _0x1ac458['json']()['catch'](()=>({})),_0x1229a6=Array['isArray'](_0x3a3865['results'])?_0x3a3865['results']['filter'](_0xb6d06=>!_0xb6d06['success']&&(_0xb6d06['error']||_0xb6d06['error_code'])):[],_0xf99089=_0x1229a6[0x0]||null;let _0x36c223=_0x3a3865['error']||_0x3a3865['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1ac458['statusText'];if(_0xf99089?.['error'])_0x36c223=_0xf99089['error'];else _0x3a3865['message']&&(_0x36c223=_0x3a3865['message']);const _0x50104e=new Error(_0x36c223);_0x50104e['code']=_0xf99089?.['error_code']||_0x3a3865['error_code']||null,_0x50104e['details']=_0xf99089?.['details']||_0x3a3865['details']||null,_0x50104e['tokenExpiryDays']=_0xf99089?.['token_expiry_days']||_0x3a3865['token_expiry_days']||null,_0x50104e['hasConflicts']=_0x3a3865['results']?.['some'](_0x4df1b7=>_0x4df1b7['conflict'])||![];throw _0x50104e;}return await _0x1ac458['json']();},async 'getPullRequestInfo'(_0xfb4f8){if(!_0xfb4f8)throw new Error('Task\x20ID\x20is\x20required');const _0x9a47b3=await fetch(API_BASE+'/tasks/'+_0xfb4f8+'/pull-request-info');if(!_0x9a47b3['ok']){const _0x143845=await _0x9a47b3['json']()['catch'](()=>({}));throw new Error(_0x143845['error']||_0x143845['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x9a47b3['statusText']);}return await _0x9a47b3['json']();},async 'createPullRequests'(_0x1263e6,_0x3fef14){if(!_0x1263e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3fef14||!Array['isArray'](_0x3fef14))throw new Error('repos\x20array\x20is\x20required');const _0x14d881=await fetch(API_BASE+'/tasks/'+_0x1263e6+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3fef14})});if(!_0x14d881['ok']){const _0x21b1b9=await _0x14d881['json']()['catch'](()=>({}));let _0x357e48=_0x21b1b9['error']||_0x21b1b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x14d881['statusText'];if(_0x21b1b9['results']&&Array['isArray'](_0x21b1b9['results'])){const _0x57296f=_0x21b1b9['results']['filter'](_0x5917fe=>!_0x5917fe['success']&&_0x5917fe['error']);_0x57296f['length']>0x0&&(_0x357e48=_0x57296f[0x0]['error']);}throw new Error(_0x357e48);}return await _0x14d881['json']();},async 'syncRepos'(_0x3d4d9c){if(!_0x3d4d9c)throw new Error('Task\x20ID\x20is\x20required');const _0x591bd9=await fetch(API_BASE+'/tasks/'+_0x3d4d9c+'/sync-repos',{'method':'POST'});if(!_0x591bd9['ok']){const _0xb68bec=await _0x591bd9['json']()['catch'](()=>({}));throw new Error(_0xb68bec['error']||_0xb68bec['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x591bd9['statusText']);}return await _0x591bd9['json']();},async 'getIbmiSyncInfo'(_0x3224a0){if(!_0x3224a0)throw new Error('Task\x20ID\x20is\x20required');const _0x422fcc=await fetch(API_BASE+'/tasks/'+_0x3224a0+'/ibmi-sync-info');if(!_0x422fcc['ok']){const _0x3ab76d=await _0x422fcc['json']()['catch'](()=>({}));throw new Error(_0x3ab76d['error']||_0x3ab76d['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x422fcc['json']();},async 'getSyncFiles'(_0x2bbe29){if(!_0x2bbe29)throw new Error('Task\x20ID\x20is\x20required');const _0x2a934a=await fetch(API_BASE+'/tasks/'+_0x2bbe29+'/sync-to-ibmi/files');if(!_0x2a934a['ok']){const _0x201223=await _0x2a934a['json']()['catch'](()=>({}));throw new Error(_0x201223['error']||_0x201223['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x2a934a['json']();},async 'syncToIbmi'(_0x49db33,_0x29ff7d,_0x4037bf=null,_0x45fcaa=null,_0x5196df=null){if(!_0x49db33)throw new Error('Task\x20ID\x20is\x20required');const _0x375095={'library':_0x29ff7d};if(_0x4037bf)_0x375095['user']=_0x4037bf;if(_0x45fcaa)_0x375095['password']=_0x45fcaa;if(_0x5196df)_0x375095['files']=_0x5196df;const _0x32d5d5=await fetch(API_BASE+'/tasks/'+_0x49db33+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x375095)});if(!_0x32d5d5['ok']){const _0x2b076d=await _0x32d5d5['json']()['catch'](()=>({}));throw new Error(_0x2b076d['error']||_0x2b076d['message']||'Sync\x20failed');}return await _0x32d5d5['json']();},async 'getIbmiSyncLog'(_0x53ac96){if(!_0x53ac96)throw new Error('Task\x20ID\x20is\x20required');const _0x52a419=await fetch(API_BASE+'/tasks/'+_0x53ac96+'/ibmi-sync-log');if(!_0x52a419['ok']){const _0x38fcf8=await _0x52a419['json']()['catch'](()=>({}));throw new Error(_0x38fcf8['error']||_0x38fcf8['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x52a419['json']();},async 'pullChanges'(_0x5dc4bc){if(!_0x5dc4bc)throw new Error('Task\x20ID\x20is\x20required');const _0x523a31=await fetch(API_BASE+'/tasks/'+_0x5dc4bc+'/pull-changes',{'method':'POST'});if(!_0x523a31['ok']){const _0x4f2311=await _0x523a31['json']()['catch'](()=>({})),_0x57a8c9=new Error(_0x4f2311['message']||_0x4f2311['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0x523a31['statusText']);_0x57a8c9['code']=_0x4f2311['error_code']||null,_0x57a8c9['details']=_0x4f2311['details']||null,_0x57a8c9['tokenExpiryDays']=_0x4f2311['token_expiry_days']||null;throw _0x57a8c9;}return await _0x523a31['json']();},async 'readFile'(_0x251e3c,_0x278bdc){if(!_0x251e3c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x278bdc)throw new Error('File\x20path\x20is\x20required');const _0x5915b8=await fetch(API_BASE+'/tasks/'+_0x251e3c+'/files?path='+encodeURIComponent(_0x278bdc));if(!_0x5915b8['ok']){const _0x4178ee=await _0x5915b8['json']()['catch'](()=>({}));throw new Error(_0x4178ee['error']||_0x4178ee['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5915b8['statusText']);}return await _0x5915b8['json']();},'getTaskFileDownloadUrl'(_0x242161,_0x3c662c){if(!_0x242161)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3c662c)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x242161+'/files/download?path='+encodeURIComponent(_0x3c662c);},async 'writeFile'(_0x2c854f,_0x1d0999,_0x432ecd){if(!_0x2c854f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d0999)throw new Error('File\x20path\x20is\x20required');if(_0x432ecd===undefined)throw new Error('Content\x20is\x20required');const _0x52118e=await fetch(API_BASE+'/tasks/'+_0x2c854f+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x1d0999,'content':_0x432ecd})});if(!_0x52118e['ok']){const _0x3c88f0=await _0x52118e['json']()['catch'](()=>({}));throw new Error(_0x3c88f0['error']||_0x3c88f0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x52118e['statusText']);}return await _0x52118e['json']();},async 'uploadTaskFiles'(_0x38c033,_0x5dc0b4,_0x3e8ada){if(!_0x38c033)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5dc0b4)throw new Error('Target\x20directory\x20is\x20required');if(!_0x3e8ada||_0x3e8ada['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x76371d=new FormData();_0x76371d['append']('targetDir',_0x5dc0b4);for(const _0x59a448 of _0x3e8ada){_0x76371d['append']('files',_0x59a448,_0x59a448['name']);}const _0x3d4f2b=await fetch(API_BASE+'/tasks/'+_0x38c033+'/files/upload',{'method':'POST','body':_0x76371d});if(!_0x3d4f2b['ok']){const _0x5b8182=await _0x3d4f2b['json']()['catch'](()=>({}));throw new Error(_0x5b8182['error']||_0x5b8182['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3d4f2b['statusText']);}return await _0x3d4f2b['json']();},async 'createDirectory'(_0x1662c7,_0x58bbae){if(!_0x1662c7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58bbae)throw new Error('Directory\x20path\x20is\x20required');const _0x3d92b7=await fetch(API_BASE+'/tasks/'+_0x1662c7+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x58bbae})});if(!_0x3d92b7['ok']){const _0x9924b6=await _0x3d92b7['json']()['catch'](()=>({}));throw new Error(_0x9924b6['error']||_0x9924b6['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3d92b7['statusText']);}return await _0x3d92b7['json']();},async 'renamePath'(_0x14192a,_0x592d6c,_0x86dba6){if(!_0x14192a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x592d6c)throw new Error('Source\x20path\x20is\x20required');if(!_0x86dba6)throw new Error('Destination\x20path\x20is\x20required');const _0x33fcb5=await fetch(API_BASE+'/tasks/'+_0x14192a+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x592d6c,'newPath':_0x86dba6})});if(!_0x33fcb5['ok']){const _0x59c00b=await _0x33fcb5['json']()['catch'](()=>({}));throw new Error(_0x59c00b['error']||_0x59c00b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x33fcb5['statusText']);}return await _0x33fcb5['json']();},async 'deleteFile'(_0x1b1028,_0x53cfd1){if(!_0x1b1028)throw new Error('Task\x20ID\x20is\x20required');if(!_0x53cfd1)throw new Error('File\x20path\x20is\x20required');const _0x5906f3=await fetch(API_BASE+'/tasks/'+_0x1b1028+'/files?path='+encodeURIComponent(_0x53cfd1),{'method':'DELETE'});if(!_0x5906f3['ok']){const _0x35ad05=await _0x5906f3['json']()['catch'](()=>({}));throw new Error(_0x35ad05['error']||_0x35ad05['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5906f3['statusText']);}return await _0x5906f3['json']();},async 'deleteDirectory'(_0x1453c2,_0x3e37b6){if(!_0x1453c2)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e37b6)throw new Error('Directory\x20path\x20is\x20required');const _0x23ecac=await fetch(API_BASE+'/tasks/'+_0x1453c2+'/files/directory?path='+encodeURIComponent(_0x3e37b6),{'method':'DELETE'});if(!_0x23ecac['ok']){const _0x221543=await _0x23ecac['json']()['catch'](()=>({}));throw new Error(_0x221543['error']||_0x221543['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x23ecac['statusText']);}return await _0x23ecac['json']();},async 'discardFile'(_0x8bf9a7,_0x57e57a,_0x352fcf){if(!_0x8bf9a7)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57e57a)throw new Error('File\x20path\x20is\x20required');if(!_0x352fcf)throw new Error('Repository\x20path\x20is\x20required');const _0x466686=await fetch(API_BASE+'/tasks/'+_0x8bf9a7+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x57e57a,'repoPath':_0x352fcf})});if(!_0x466686['ok']){const _0x3dc0ef=await _0x466686['json']()['catch'](()=>({}));throw new Error(_0x3dc0ef['error']||_0x3dc0ef['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x466686['statusText']);}return await _0x466686['json']();},async 'followUpTask'(_0x18ab66,_0x48ea5a={}){if(!_0x18ab66)throw new Error('Task\x20ID\x20is\x20required');if(!_0x48ea5a['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2621b8,_0x3a37ab={};if(_0x48ea5a['files']&&_0x48ea5a['files']['length']>0x0){const _0x2f1206=new FormData();_0x2f1206['append']('instructions',_0x48ea5a['instructions']);for(const _0xc3a5ee of _0x48ea5a['files']){_0x2f1206['append']('attachments',_0xc3a5ee);}_0x2621b8=_0x2f1206;}else _0x3a37ab['Content-Type']='application/json',_0x2621b8=JSON['stringify']({'instructions':_0x48ea5a['instructions']});const _0x32698f=await fetch(API_BASE+'/tasks/'+_0x18ab66+'/follow-up',{'method':'POST','headers':_0x3a37ab,'body':_0x2621b8});if(!_0x32698f['ok']){const _0x46899d=await _0x32698f['json']()['catch'](()=>({}));throw new Error(_0x46899d['error']||_0x46899d['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x32698f['statusText']);}return await _0x32698f['json']();},async 'getTaskRewindPoints'(_0x487538){if(!_0x487538)throw new Error('Task\x20ID\x20is\x20required');const _0x34cbe5=await fetch(API_BASE+'/tasks/'+_0x487538+'/rewind-points');if(!_0x34cbe5['ok']){const _0x1538d6=await _0x34cbe5['json']()['catch'](()=>({}));throw new Error(_0x1538d6['error']||_0x1538d6['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x34cbe5['statusText']);}return await _0x34cbe5['json']();},async 'rewindTask'(_0x8a782f,_0x2efa57={}){if(!_0x8a782f)throw new Error('Task\x20ID\x20is\x20required');const _0x45c2e1=Number['isInteger'](_0x2efa57['targetFollowUpCount'])?_0x2efa57['targetFollowUpCount']:0x0,_0x522029={'targetFollowUpCount':_0x45c2e1};typeof _0x2efa57['instructions']==='string'&&_0x2efa57['instructions']['trim']()&&(_0x522029['instructions']=_0x2efa57['instructions']['trim']());typeof _0x2efa57['rewindFiles']==='boolean'&&(_0x522029['rewindFiles']=_0x2efa57['rewindFiles']);const _0x290e67=await fetch(API_BASE+'/tasks/'+_0x8a782f+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x522029)});if(!_0x290e67['ok']){const _0x3a244e=await _0x290e67['json']()['catch'](()=>({}));throw new Error(_0x3a244e['error']||_0x3a244e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x290e67['statusText']);}return await _0x290e67['json']();},async 'login'(_0x3c9230,_0x16f8d8){const _0xa2b900=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x3c9230,'password':_0x16f8d8})});if(!_0xa2b900['ok']){const _0x27c257=await _0xa2b900['json']();throw new Error(_0x27c257['message']||'Login\x20failed');}return await _0xa2b900['json']();},async 'logout'(){const _0xd4489=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0xd4489['ok']){const _0x395a9f=await _0xd4489['json']();throw new Error(_0x395a9f['message']||'Logout\x20failed');}return await _0xd4489['json']();},async 'getCurrentUser'(){const _0x22a174=await fetch(API_BASE+'/auth/me');if(!_0x22a174['ok'])throw new Error('Not\x20authenticated');const _0x5805ba=await _0x22a174['json']();return _0x5805ba['user'];},async 'getRolesInfo'(){const _0x2b908=await fetch(API_BASE+'/users/roles');if(!_0x2b908['ok']){const _0x3c7f29=await _0x2b908['json']();throw new Error(_0x3c7f29['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2b908['json']();},async 'getUsers'(){const _0x3a271d=await fetch(API_BASE+'/users');if(!_0x3a271d['ok']){const _0x1612fc=await _0x3a271d['json']();throw new Error(_0x1612fc['message']||'Failed\x20to\x20get\x20users');}return await _0x3a271d['json']();},async 'getUser'(_0x50ed7b){const _0xc9e253=await fetch(API_BASE+'/users/'+_0x50ed7b);if(!_0xc9e253['ok']){const _0x379e6e=await _0xc9e253['json']();throw new Error(_0x379e6e['message']||'Failed\x20to\x20get\x20user');}return await _0xc9e253['json']();},async 'createUser'(_0x150cb4){const _0x4a357e=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x150cb4)});if(!_0x4a357e['ok']){const _0x19b4e3=await _0x4a357e['json']();throw new Error(_0x19b4e3['message']||'Failed\x20to\x20create\x20user');}return await _0x4a357e['json']();},async 'updateUser'(_0x3b2135,_0x518f03){const _0x3e09bb=await fetch(API_BASE+'/users/'+_0x3b2135,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x518f03)});if(!_0x3e09bb['ok']){const _0x8c6cbc=await _0x3e09bb['json']();throw new Error(_0x8c6cbc['message']||'Failed\x20to\x20update\x20user');}return await _0x3e09bb['json']();},async 'deleteUser'(_0x22b3d3){const _0x1ed06f=await fetch(API_BASE+'/users/'+_0x22b3d3,{'method':'DELETE'});if(!_0x1ed06f['ok']){const _0x583886=await _0x1ed06f['json']();throw new Error(_0x583886['message']||'Failed\x20to\x20delete\x20user');}return await _0x1ed06f['json']();},async 'stopAllContainers'(){const _0x192ddc=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x42a06d=await _0x192ddc['json']()['catch'](()=>({}));if(!_0x192ddc['ok'])throw new Error(_0x42a06d['message']||_0x42a06d['error']||'Failed\x20to\x20stop\x20containers');return _0x42a06d;},async 'removeStoppedContainers'(){const _0x25c492=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x43dc93=await _0x25c492['json']()['catch'](()=>({}));if(!_0x25c492['ok'])throw new Error(_0x43dc93['message']||_0x43dc93['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x43dc93;},async 'pruneDockerResources'(){const _0x3f6515=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x589f5c=await _0x3f6515['json']()['catch'](()=>({}));if(!_0x3f6515['ok'])throw new Error(_0x589f5c['message']||_0x589f5c['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x589f5c;},async 'getUpdateSettings'(){const _0x56438a=await fetch(API_BASE+'/health/update-settings'),_0x46938c=await _0x56438a['json']()['catch'](()=>({}));if(!_0x56438a['ok'])throw new Error(_0x46938c['message']||_0x46938c['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x46938c;},async 'applyServerUpdate'(_0x34d991){const _0x52b85f=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x34d991})}),_0x4c193a=await _0x52b85f['json']()['catch'](()=>({}));if(!_0x52b85f['ok']){const _0x196e6d=new Error(_0x4c193a['message']||_0x4c193a['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x4c193a['output']!==undefined)_0x196e6d['output']=_0x4c193a['output'];if(_0x4c193a['error']!==undefined)_0x196e6d['commandError']=_0x4c193a['error'];throw _0x196e6d;}return _0x4c193a;},async 'restartServer'(){const _0x231206=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x16bd84=await _0x231206['json']()['catch'](()=>({}));if(!_0x231206['ok'])throw new Error(_0x16bd84['message']||_0x16bd84['error']||'Failed\x20to\x20restart\x20server');return _0x16bd84;},async 'getDockerContainers'(){const _0x570009=await fetch(API_BASE+'/health/containers'),_0x2e68d8=await _0x570009['json']()['catch'](()=>({}));if(!_0x570009['ok'])throw new Error(_0x2e68d8['message']||_0x2e68d8['error']||'Failed\x20to\x20load\x20containers');return _0x2e68d8;},async 'getDockerImages'(){const _0x155535=await fetch(API_BASE+'/health/docker/images'),_0x59c3d1=await _0x155535['json']()['catch'](()=>({}));if(!_0x155535['ok'])throw new Error(_0x59c3d1['message']||_0x59c3d1['error']||'Failed\x20to\x20load\x20images');return _0x59c3d1;},async 'getDockerVolumes'(){const _0x1ec1dd=await fetch(API_BASE+'/health/docker/volumes'),_0x43c469=await _0x1ec1dd['json']()['catch'](()=>({}));if(!_0x1ec1dd['ok'])throw new Error(_0x43c469['message']||_0x43c469['error']||'Failed\x20to\x20load\x20volumes');return _0x43c469;},async 'getActiveSessions'(){const _0x513839=await fetch(API_BASE+'/health/sessions'),_0x1d2b67=await _0x513839['json']()['catch'](()=>({}));if(!_0x513839['ok'])throw new Error(_0x1d2b67['message']||_0x1d2b67['error']||'Failed\x20to\x20load\x20sessions');return _0x1d2b67;},async 'getSystemInfo'(){const _0x412270=await fetch(API_BASE+'/health/system'),_0x962ba0=await _0x412270['json']()['catch'](()=>({}));if(!_0x412270['ok'])throw new Error(_0x962ba0['message']||_0x962ba0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x962ba0;},async 'stopDockerContainer'(_0x5b8f2a){const _0x48533f=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x5b8f2a)+'/stop',{'method':'POST'}),_0x39edfe=await _0x48533f['json']()['catch'](()=>({}));if(!_0x48533f['ok'])throw new Error(_0x39edfe['message']||_0x39edfe['error']||'Failed\x20to\x20stop\x20container');return _0x39edfe;},async 'removeDockerContainer'(_0xda02fb){const _0x10b66c=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0xda02fb),{'method':'DELETE'}),_0x349030=await _0x10b66c['json']()['catch'](()=>({}));if(!_0x10b66c['ok'])throw new Error(_0x349030['message']||_0x349030['error']||'Failed\x20to\x20remove\x20container');return _0x349030;},async 'createPasswordToken'(_0x5c00b2,_0x3dc312='setup',_0x382fb5=![]){const _0x5120a5=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5c00b2,'type':_0x3dc312,'sendEmail':_0x382fb5})});if(!_0x5120a5['ok']){const _0x34d267=await _0x5120a5['json']();throw new Error(_0x34d267['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x5120a5['json']();},async 'getEmailConfig'(){const _0x692f02=await fetch(API_BASE+'/password/email-config');if(!_0x692f02['ok']){const _0xc08817=await _0x692f02['json']();throw new Error(_0xc08817['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x692f02['json']();},async 'updateTaskName'(_0xbf1bb3,_0x4d4aa6){const _0x4736dd=await fetch(API_BASE+'/tasks/'+_0xbf1bb3,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x4d4aa6})});if(!_0x4736dd['ok']){const _0x812c57=await _0x4736dd['json']();throw new Error(_0x812c57['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4736dd['json']();},async 'pinTask'(_0x5eb475,_0x159974,_0x2f727b=null){if(!_0x5eb475)throw new Error('Task\x20ID\x20is\x20required');const _0xdbf53c={'pinned':_0x159974};_0x2f727b&&_0x2f727b['length']>0x0&&(_0xdbf53c['additionalTaskIds']=_0x2f727b);const _0x1260d9=await fetch(API_BASE+'/tasks/'+_0x5eb475+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xdbf53c)});if(!_0x1260d9['ok']){const _0xf7eb6c=await _0x1260d9['json']();throw new Error(_0xf7eb6c['error']||'Failed\x20to\x20pin\x20task');}return await _0x1260d9['json']();},async 'setTaskWinner'(_0x180cae,_0x459ac4,_0x38ddc9=[]){if(!_0x180cae)throw new Error('Task\x20ID\x20is\x20required');const _0x58b27b=await fetch(API_BASE+'/tasks/'+_0x180cae+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x459ac4,'siblings':_0x38ddc9})});if(!_0x58b27b['ok']){const _0x384eb1=await _0x58b27b['json']();throw new Error(_0x384eb1['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x58b27b['json']();},async 'setTaskLoser'(_0x275412,_0x23b696){if(!_0x275412)throw new Error('Task\x20ID\x20is\x20required');const _0x49a895=await fetch(API_BASE+'/tasks/'+_0x275412+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x23b696})});if(!_0x49a895['ok']){const _0xb43988=await _0x49a895['json']();throw new Error(_0xb43988['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x49a895['json']();},async 'createTaskGroup'(_0x1e8d73){const _0xa98131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e8d73)});if(!_0xa98131['ok']){const _0x1c9d36=await _0xa98131['json']();throw new Error(_0x1c9d36['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0xa98131['json']();},async 'getTaskGroups'(_0x54afa8={}){const _0x182a43=new URLSearchParams();if(_0x54afa8['userId'])_0x182a43['set']('userId',String(_0x54afa8['userId']));if(_0x54afa8['status'])_0x182a43['set']('status',String(_0x54afa8['status']));if(_0x54afa8['limit'])_0x182a43['set']('limit',String(_0x54afa8['limit']));const _0x979967=API_BASE+'/tasks/groups'+(_0x182a43['toString']()?'?'+_0x182a43['toString']():''),_0xdd490f=await fetch(_0x979967);if(!_0xdd490f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdd490f['json']();},async 'getTaskGroup'(_0x264563){const _0x419a98=await fetch(API_BASE+'/tasks/groups/'+_0x264563);if(!_0x419a98['ok']){const _0x5c61c3=await _0x419a98['json']();throw new Error(_0x5c61c3['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x419a98['json']();},async 'updateTaskGroup'(_0x4b5012,_0x2d71c0,_0x441145){const _0x4c13f1=await fetch(API_BASE+'/tasks/'+_0x4b5012+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2d71c0,'groupIndex':_0x441145})});if(!_0x4c13f1['ok']){const _0x5f2b5c=await _0x4c13f1['json']();throw new Error(_0x5f2b5c['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x4c13f1['json']();},async 'removeTaskFromGroup'(_0x2099bf){return this['updateTaskGroup'](_0x2099bf,null,null);},async 'deleteTaskGroup'(_0x5ce0d2,_0x5f1e34=![]){const _0xd104ee=_0x5f1e34?'?deleteTasks=true':'',_0xf31432=await fetch(API_BASE+'/tasks/groups/'+_0x5ce0d2+_0xd104ee,{'method':'DELETE'});if(!_0xf31432['ok']){const _0x1623f9=await _0xf31432['json']();throw new Error(_0x1623f9['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x521891,_0x2b4d05){const _0x5e4ed8=await fetch(API_BASE+'/tasks/groups/'+_0x521891+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x2b4d05})});if(!_0x5e4ed8['ok']){const _0x2f61e9=await _0x5e4ed8['json']();throw new Error(_0x2f61e9['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x5e4ed8['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x4827bd){if(!_0x4827bd)throw new Error('Task\x20ID\x20is\x20required');const _0x1baf17=await fetch(API_BASE+'/tasks/'+_0x4827bd+'/comments');if(!_0x1baf17['ok']){const _0xf35610=await _0x1baf17['json']()['catch'](()=>({}));throw new Error(_0xf35610['error']||'Failed\x20to\x20get\x20comments');}return await _0x1baf17['json']();},async 'addComment'(_0x5d0ef9,_0x17aac3){if(!_0x5d0ef9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x17aac3)throw new Error('Comment\x20content\x20is\x20required');const _0x1af11e=await fetch(API_BASE+'/tasks/'+_0x5d0ef9+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17aac3})});if(!_0x1af11e['ok']){const _0x257150=await _0x1af11e['json']()['catch'](()=>({}));throw new Error(_0x257150['error']||'Failed\x20to\x20add\x20comment');}return await _0x1af11e['json']();},async 'updateComment'(_0x31ff8c,_0x59185f,_0x17cf98){if(!_0x31ff8c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x59185f)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x17cf98)throw new Error('Comment\x20content\x20is\x20required');const _0x20ed5f=await fetch(API_BASE+'/tasks/'+_0x31ff8c+'/comments/'+_0x59185f,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x17cf98})});if(!_0x20ed5f['ok']){const _0x103ff5=await _0x20ed5f['json']()['catch'](()=>({}));throw new Error(_0x103ff5['error']||'Failed\x20to\x20update\x20comment');}return await _0x20ed5f['json']();},async 'deleteComment'(_0x25263d,_0x25b7d4){if(!_0x25263d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x25b7d4)throw new Error('Comment\x20ID\x20is\x20required');const _0xb2f2d4=await fetch(API_BASE+'/tasks/'+_0x25263d+'/comments/'+_0x25b7d4,{'method':'DELETE'});if(!_0xb2f2d4['ok']){const _0x262cce=await _0xb2f2d4['json']()['catch'](()=>({}));throw new Error(_0x262cce['error']||'Failed\x20to\x20delete\x20comment');}return await _0xb2f2d4['json']();},async 'createObjective'(_0x5dc368){const _0x528643={'objective':!![],'name':_0x5dc368['name']||'','environment':_0x5dc368['environment']||null,'agents':_0x5dc368['agents']||[],'branches':_0x5dc368['branches']||{},'isPinned':_0x5dc368['isPinned']||![],'parentObjectiveId':_0x5dc368['parentObjectiveId']||null,'env_vars':_0x5dc368['envVars']||{},'parameters':{'instructions':_0x5dc368['instructions']||''},'files':_0x5dc368['files']||[],'jira':_0x5dc368['jira']||null};return this['createTask'](_0x528643);},async 'updateObjective'(_0x1d20da,_0x577464,_0x89de2b=[],_0x549f3e=[]){let _0x181bb2,_0x548ace={};const _0x1183a8={..._0x577464};_0x549f3e&&_0x549f3e['length']>0x0&&(_0x1183a8['removeAttachments']=_0x549f3e);if(_0x89de2b&&_0x89de2b['length']>0x0){const _0x57a81d=new FormData();for(const [_0x4b9932,_0x35f821]of Object['entries'](_0x1183a8)){if(_0x35f821==null)continue;typeof _0x35f821==='object'?_0x57a81d['append'](_0x4b9932,JSON['stringify'](_0x35f821)):_0x57a81d['append'](_0x4b9932,String(_0x35f821));}for(const _0x5b658c of _0x89de2b){_0x57a81d['append']('attachments',_0x5b658c);}_0x181bb2=_0x57a81d;}else _0x548ace['Content-Type']='application/json',_0x181bb2=JSON['stringify'](_0x1183a8);const _0x503e83=await fetch(API_BASE+'/tasks/'+_0x1d20da,{'method':'PATCH','headers':_0x548ace,'body':_0x181bb2});if(!_0x503e83['ok']){const _0x3a2e4e=await _0x503e83['json']();throw new Error(_0x3a2e4e['error']||'Failed\x20to\x20update\x20objective');}return await _0x503e83['json']();},async 'deleteObjective'(_0xa0789f){return this['deleteTask'](_0xa0789f);},async 'launchObjective'(_0x1f8f12,_0x603e97={}){const _0x316ec5=await fetch(API_BASE+'/tasks/'+_0x1f8f12+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x603e97)});if(!_0x316ec5['ok']){const _0x540c5a=await _0x316ec5['json']();throw new Error(_0x540c5a['error']||'Failed\x20to\x20launch\x20objective');}return await _0x316ec5['json']();},async 'getObjectiveAttachments'(_0x118371){return this['getTaskAttachments'](_0x118371);},async 'createJudgeTask'({environment:_0x20e579,judgeAgent:_0x15058f,groupId:_0x15e4e3,taskIds:_0x4e3a26,judgeCustomInstructions:_0x2324bf,isPinned:_0x4eb87b}){const _0x559c92=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x20e579,'judgeAgent':_0x15058f,'groupId':_0x15e4e3,'taskIds':_0x4e3a26,'judgeCustomInstructions':_0x2324bf,'isPinned':_0x4eb87b})});if(!_0x559c92['ok']){const _0x20671f=await _0x559c92['json']();throw new Error(_0x20671f['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x559c92['json']();},async 'getJudgeTasks'(_0x30acac){const _0x39c545=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x30acac));if(!_0x39c545['ok']){const _0x1ed5db=await _0x39c545['json']();throw new Error(_0x1ed5db['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x39c545['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4c6a6b,_0x29c4fd,_0x443a7a=''){const _0x25c61f=await fetch(API_BASE+'/tasks/'+_0x4c6a6b+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x29c4fd,'customPreamble':_0x443a7a})});if(!_0x25c61f['ok']){const _0x1b2d46=await _0x25c61f['json']();throw new Error(_0x1b2d46['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x25c61f['json']();},async 'getJiraConfig'(){const _0x37b20d=await fetch(API_BASE+'/jira/config');if(!_0x37b20d['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x37b20d['json']();},async 'getJiraIssue'(_0x113124){const _0xc8d72c=await fetch(API_BASE+'/jira/issues/'+_0x113124);if(!_0xc8d72c['ok']){const _0x5a3e3c=await _0xc8d72c['json']()['catch'](()=>({}));throw new Error(_0x5a3e3c['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0xc8d72c['statusText']);}return await _0xc8d72c['json']();},async 'searchJiraIssues'(_0x4f16da,_0x46d5ae=0x14){const _0x598a72=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x4f16da,'maxResults':_0x46d5ae})});if(!_0x598a72['ok']){const _0x55f00f=await _0x598a72['json']()['catch'](()=>({}));throw new Error(_0x55f00f['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x598a72['statusText']);}return await _0x598a72['json']();},async 'postJiraComment'(_0xdc6282,_0x10009f){const _0x305394=await fetch(API_BASE+'/jira/issues/'+_0xdc6282+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x10009f})});if(!_0x305394['ok']){const _0x1572d8=await _0x305394['json']()['catch'](()=>({}));throw new Error(_0x1572d8['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x305394['statusText']);}return await _0x305394['json']();},async 'getJiraComments'(_0x2424ec){const _0x153cf3=await fetch(API_BASE+'/jira/issues/'+_0x2424ec+'/comments');if(!_0x153cf3['ok']){const _0x343525=await _0x153cf3['json']()['catch'](()=>({}));throw new Error(_0x343525['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x153cf3['statusText']);}return await _0x153cf3['json']();},async 'promptParameter'({environment:_0x42303e,command:_0x51c6a2,parser:parser='json'}){const _0x572256=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x42303e,'command':_0x51c6a2,'parser':parser})});if(!_0x572256['ok']){const _0x2804db=await _0x572256['json']()['catch'](()=>({}));throw new Error(_0x2804db['message']||_0x2804db['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x572256['statusText']);}return await _0x572256['json']();},async 'promptParameterStream'(_0x558e39,_0x8b7ba2){const _0x2efc36=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x558e39)});if(!_0x2efc36['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x2efc36['statusText']);const _0x13d8de=_0x2efc36['body']['getReader'](),_0x340f12=new TextDecoder();let _0x227185='';return new Promise((_0x756eda,_0x6a40ca)=>{const _0x4ac77e=async()=>{try{const {done:_0x2ccec2,value:_0x2baca5}=await _0x13d8de['read']();if(_0x2ccec2)return;_0x227185+=_0x340f12['decode'](_0x2baca5,{'stream':!![]});const _0x4308f7=_0x227185['split']('\x0a\x0a');_0x227185=_0x4308f7['pop']()||'';for(const _0x420d29 of _0x4308f7){if(!_0x420d29['trim']())continue;const _0x128e64=_0x420d29['split']('\x0a');let _0x20a200='message',_0x26cbfa='';for(const _0x241392 of _0x128e64){if(_0x241392['startsWith']('event:'))_0x20a200=_0x241392['substring'](0x6)['trim']();else _0x241392['startsWith']('data:')&&(_0x26cbfa=_0x241392['substring'](0x5)['trim']());}if(!_0x26cbfa)continue;try{const _0x2e04e3=JSON['parse'](_0x26cbfa);if(_0x20a200==='progress'&&_0x8b7ba2)_0x8b7ba2(_0x2e04e3['stage'],_0x2e04e3['message']);else{if(_0x20a200==='result'){_0x756eda(_0x2e04e3);return;}else{if(_0x20a200==='error'){let _0x1db43f=_0x2e04e3['message']||_0x2e04e3['error']||'Prompt\x20command\x20failed';_0x2e04e3['rawOutput']&&(_0x1db43f+='\x0a\x0aRaw\x20output:\x0a'+_0x2e04e3['rawOutput']);_0x6a40ca(new Error(_0x1db43f));return;}}}}catch(_0x283dab){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x283dab),console['error']('Event\x20type:',_0x20a200),console['error']('Event\x20data:',_0x26cbfa),console['error']('First\x20200\x20chars:',_0x26cbfa['substring'](0x0,0xc8)),_0x6a40ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x283dab['message']+'\x0a\x0aData:\x20'+_0x26cbfa['substring'](0x0,0x1f4)));return;}}_0x4ac77e();}catch(_0x26abd9){_0x6a40ca(_0x26abd9);}};_0x4ac77e();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3e652d){const _0x384fab=await fetch(''+API_BASE+_0x3e652d);if(!_0x384fab['ok']){const _0x2380a6=await _0x384fab['json']()['catch'](()=>({'error':_0x384fab['statusText']})),_0xffcad4=new Error(_0x2380a6['error']||_0x2380a6['message']||_0x384fab['statusText']);if(_0x2380a6['detail']!==undefined)_0xffcad4['detail']=_0x2380a6['detail'];throw _0xffcad4;}return await _0x384fab['json']();},async 'post'(_0xaf8132,_0x4308da){const _0x3a93d3=await fetch(''+API_BASE+_0xaf8132,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4308da)});if(!_0x3a93d3['ok']){const _0x6b4744=await _0x3a93d3['json']()['catch'](()=>({'error':_0x3a93d3['statusText']})),_0x11e28d=new Error(_0x6b4744['error']||_0x6b4744['message']||_0x3a93d3['statusText']);if(_0x6b4744['detail']!==undefined)_0x11e28d['detail']=_0x6b4744['detail'];throw _0x11e28d;}return await _0x3a93d3['json']();},async 'put'(_0x2e5fe6,_0x239cc6){const _0x575730=await fetch(''+API_BASE+_0x2e5fe6,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239cc6)});if(!_0x575730['ok']){const _0x1c9477=await _0x575730['json']()['catch'](()=>({'error':_0x575730['statusText']})),_0x23aab0=new Error(_0x1c9477['error']||_0x1c9477['message']||_0x575730['statusText']);if(_0x1c9477['detail']!==undefined)_0x23aab0['detail']=_0x1c9477['detail'];throw _0x23aab0;}return await _0x575730['json']();},async 'delete'(_0x50ccbb,_0x4051e2){const _0x3d3b1b={'method':'DELETE'};_0x4051e2&&(_0x3d3b1b['headers']={'Content-Type':'application/json'},_0x3d3b1b['body']=JSON['stringify'](_0x4051e2));const _0x342548=await fetch(''+API_BASE+_0x50ccbb,_0x3d3b1b);if(!_0x342548['ok']){const _0x5214fd=await _0x342548['json']()['catch'](()=>({'error':_0x342548['statusText']})),_0x24b2c0=new Error(_0x5214fd['error']||_0x5214fd['message']||_0x342548['statusText']);if(_0x5214fd['detail']!==undefined)_0x24b2c0['detail']=_0x5214fd['detail'];throw _0x24b2c0;}return await _0x342548['json']();},async 'getSkills'(){const _0x31c7cd=await fetch(API_BASE+'/skills');if(!_0x31c7cd['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x31c7cd['statusText']);return await _0x31c7cd['json']();},async 'getSkill'(_0x49eb5f){const _0x55e637=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49eb5f));if(!_0x55e637['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x55e637['statusText']);return await _0x55e637['json']();},async 'createSkill'(_0x415a91){const _0x244ddb=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x415a91)});if(!_0x244ddb['ok']){const _0x56fd74=await _0x244ddb['json']()['catch'](()=>({'error':_0x244ddb['statusText']})),_0x25a024=new Error(_0x56fd74['error']||_0x56fd74['message']||_0x244ddb['statusText']);if(_0x56fd74['detail']!==undefined)_0x25a024['detail']=_0x56fd74['detail'];throw _0x25a024;}return await _0x244ddb['json']();},async 'updateSkill'(_0x14bf1e,_0x1b96ed){const _0xf09a79=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x14bf1e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b96ed)});if(!_0xf09a79['ok']){const _0x31e849=await _0xf09a79['json']()['catch'](()=>({'error':_0xf09a79['statusText']})),_0x377cda=new Error(_0x31e849['error']||_0x31e849['message']||_0xf09a79['statusText']);if(_0x31e849['detail']!==undefined)_0x377cda['detail']=_0x31e849['detail'];throw _0x377cda;}return await _0xf09a79['json']();},async 'deleteSkill'(_0x2ce235){const _0x4bce38=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2ce235),{'method':'DELETE'});if(!_0x4bce38['ok']){const _0x3f39fb=await _0x4bce38['json']()['catch'](()=>({'error':_0x4bce38['statusText']})),_0x51ba36=new Error(_0x3f39fb['error']||_0x3f39fb['message']||_0x4bce38['statusText']);if(_0x3f39fb['detail']!==undefined)_0x51ba36['detail']=_0x3f39fb['detail'];throw _0x51ba36;}return await _0x4bce38['json']();},async 'getSkillFile'(_0x3e4b75,_0x368590){const _0xa07a9d=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3e4b75)+'/files/'+_0x368590);if(!_0xa07a9d['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0xa07a9d['statusText']);return await _0xa07a9d['json']();},async 'saveSkillFile'(_0x577070,_0x4e95cd,_0x19f7cc){const _0x596f6a=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x577070)+'/files/'+_0x4e95cd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x19f7cc})});if(!_0x596f6a['ok']){const _0xed9c18=await _0x596f6a['json']()['catch'](()=>({'error':_0x596f6a['statusText']})),_0x22de43=new Error(_0xed9c18['error']||_0xed9c18['message']||_0x596f6a['statusText']);if(_0xed9c18['detail']!==undefined)_0x22de43['detail']=_0xed9c18['detail'];throw _0x22de43;}return await _0x596f6a['json']();},async 'deleteSkillFile'(_0x26539c,_0x5e2d6b){const _0xe4f4e9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x26539c)+'/files/'+_0x5e2d6b,{'method':'DELETE'});if(!_0xe4f4e9['ok']){const _0x3d1dff=await _0xe4f4e9['json']()['catch'](()=>({'error':_0xe4f4e9['statusText']})),_0x3d51e9=new Error(_0x3d1dff['error']||_0x3d1dff['message']||_0xe4f4e9['statusText']);if(_0x3d1dff['detail']!==undefined)_0x3d51e9['detail']=_0x3d1dff['detail'];throw _0x3d51e9;}return await _0xe4f4e9['json']();},async 'pullSkills'(){const _0x200a7c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x200a7c['ok']){const _0x3c04c5=await _0x200a7c['json']()['catch'](()=>({'error':_0x200a7c['statusText']})),_0x13ad7b=new Error(_0x3c04c5['error']||_0x3c04c5['message']||_0x200a7c['statusText']);if(_0x3c04c5['detail']!==undefined)_0x13ad7b['detail']=_0x3c04c5['detail'];throw _0x13ad7b;}return await _0x200a7c['json']();},async 'commitSkills'(_0x5d1764,_0x28b744={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x28b744,_0x9a229b=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x5d1764,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x9a229b['ok']){const _0x4974b7=await _0x9a229b['json']()['catch'](()=>({'error':_0x9a229b['statusText']})),_0x1ea460=new Error(_0x4974b7['error']||_0x4974b7['message']||_0x9a229b['statusText']);if(_0x4974b7['detail']!==undefined)_0x1ea460['detail']=_0x4974b7['detail'];throw _0x1ea460;}return await _0x9a229b['json']();},async 'discardSkillsChanges'(){const _0x1bc21b=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1bc21b['ok']){const _0x3a15d8=await _0x1bc21b['json']()['catch'](()=>({'error':_0x1bc21b['statusText']})),_0x4a6b7d=new Error(_0x3a15d8['error']||_0x3a15d8['message']||_0x1bc21b['statusText']);if(_0x3a15d8['detail']!==undefined)_0x4a6b7d['detail']=_0x3a15d8['detail'];throw _0x4a6b7d;}return await _0x1bc21b['json']();},async 'getSkillCatalog'(){const _0x47722e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x47722e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x47722e['statusText']);return await _0x47722e['json']();},async 'getImportedSkillsRegistry'(){const _0x65633e=await fetch(API_BASE+'/external-skills/registry');if(!_0x65633e['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x65633e['statusText']);return await _0x65633e['json']();},async 'importCatalogSkill'(_0x56805f){const _0x319afc=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x56805f})});if(!_0x319afc['ok']){const _0x385faa=await _0x319afc['json']()['catch'](()=>({'error':_0x319afc['statusText']})),_0x24ceee=new Error(_0x385faa['error']||_0x385faa['message']||_0x319afc['statusText']);if(_0x385faa['detail']!==undefined)_0x24ceee['detail']=_0x385faa['detail'];throw _0x24ceee;}return await _0x319afc['json']();},async 'importSkillFromGit'(_0x590d0a,_0x48a982,_0x39fa69='main',_0x3f6fb2=null){const _0x114c8e=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x590d0a,'skillPath':_0x48a982,'branch':_0x39fa69,'skillId':_0x3f6fb2})});if(!_0x114c8e['ok']){const _0x398fd=await _0x114c8e['json']()['catch'](()=>({'error':_0x114c8e['statusText']})),_0x3fdc3d=new Error(_0x398fd['error']||_0x398fd['message']||_0x114c8e['statusText']);if(_0x398fd['detail']!==undefined)_0x3fdc3d['detail']=_0x398fd['detail'];throw _0x3fdc3d;}return await _0x114c8e['json']();},async 'probeMarketplace'(_0x566352,_0x28d9ee='main'){const _0x10d082=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x566352,'branch':_0x28d9ee})});if(!_0x10d082['ok']){const _0x12d5f1=await _0x10d082['json']()['catch'](()=>({'error':_0x10d082['statusText']})),_0x1fd582=new Error(_0x12d5f1['error']||_0x12d5f1['message']||_0x10d082['statusText']);if(_0x12d5f1['detail']!==undefined)_0x1fd582['detail']=_0x12d5f1['detail'];throw _0x1fd582;}return await _0x10d082['json']();},async 'importMarketplaceBundle'(_0x4f5d05,_0xfcdd63,_0x5323c6,_0x5b575c=null){const _0x7325a6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4f5d05,'branch':_0xfcdd63,'bundleId':_0x5323c6,'selectedSkills':_0x5b575c})});if(!_0x7325a6['ok']){const _0x54878b=await _0x7325a6['json']()['catch'](()=>({'error':_0x7325a6['statusText']})),_0x409798=new Error(_0x54878b['error']||_0x54878b['message']||_0x7325a6['statusText']);if(_0x54878b['detail']!==undefined)_0x409798['detail']=_0x54878b['detail'];throw _0x409798;}return await _0x7325a6['json']();},async 'importSkillFromFolder'(_0x4d827f,_0x32e2c9=null){const _0x3c21c1=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x4d827f,'skillId':_0x32e2c9})});if(!_0x3c21c1['ok']){const _0x3502cc=await _0x3c21c1['json']()['catch'](()=>({'error':_0x3c21c1['statusText']})),_0x313346=new Error(_0x3502cc['error']||_0x3502cc['message']||_0x3c21c1['statusText']);if(_0x3502cc['detail']!==undefined)_0x313346['detail']=_0x3502cc['detail'];throw _0x313346;}return await _0x3c21c1['json']();},async 'importSkillFromNpm'(_0x4f1218,_0x4dde69='latest',_0x41e664=null,_0x84b2e7=null){const _0x44f74e=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x4f1218,'version':_0x4dde69,'skillId':_0x41e664,'registry':_0x84b2e7})});if(!_0x44f74e['ok']){const _0x4ee51f=await _0x44f74e['json']()['catch'](()=>({'error':_0x44f74e['statusText']})),_0x6aa5c6=new Error(_0x4ee51f['error']||_0x4ee51f['message']||_0x44f74e['statusText']);if(_0x4ee51f['detail']!==undefined)_0x6aa5c6['detail']=_0x4ee51f['detail'];throw _0x6aa5c6;}return await _0x44f74e['json']();},async 'checkSkillUpdates'(_0x395c7c){const _0x485184=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x395c7c)+'/check-updates',{'method':'POST'});if(!_0x485184['ok']){const _0x144807=await _0x485184['json']()['catch'](()=>({'error':_0x485184['statusText']})),_0x420bed=new Error(_0x144807['error']||_0x144807['message']||_0x485184['statusText']);if(_0x144807['detail']!==undefined)_0x420bed['detail']=_0x144807['detail'];throw _0x420bed;}return await _0x485184['json']();},async 'updateExternalSkill'(_0x256368){const _0x1a6a22=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x256368)+'/update',{'method':'POST'});if(!_0x1a6a22['ok']){const _0x552bc4=await _0x1a6a22['json']()['catch'](()=>({'error':_0x1a6a22['statusText']})),_0x4960f8=new Error(_0x552bc4['error']||_0x552bc4['message']||_0x1a6a22['statusText']);if(_0x552bc4['detail']!==undefined)_0x4960f8['detail']=_0x552bc4['detail'];throw _0x4960f8;}return await _0x1a6a22['json']();},async 'updateSkillFlags'(_0x26ae6a,_0x256bf9){const _0x55d61b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x26ae6a)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x256bf9})});if(!_0x55d61b['ok']){const _0x2ce8c1=await _0x55d61b['json']()['catch'](()=>({'error':_0x55d61b['statusText']})),_0x5eb6f2=new Error(_0x2ce8c1['error']||_0x2ce8c1['message']||_0x55d61b['statusText']);if(_0x2ce8c1['detail']!==undefined)_0x5eb6f2['detail']=_0x2ce8c1['detail'];throw _0x5eb6f2;}return await _0x55d61b['json']();},async 'removeFromImportedRegistry'(_0x486683){const _0x281773=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x486683)+'/registry',{'method':'DELETE'});if(!_0x281773['ok']){const _0x590f75=await _0x281773['json']()['catch'](()=>({'error':_0x281773['statusText']})),_0x2e6d3d=new Error(_0x590f75['error']||_0x590f75['message']||_0x281773['statusText']);if(_0x590f75['detail']!==undefined)_0x2e6d3d['detail']=_0x590f75['detail'];throw _0x2e6d3d;}return await _0x281773['json']();},async 'getTeams'(){const _0x569bd8=await fetch(API_BASE+'/teams');if(!_0x569bd8['ok']){const _0x37e714=await _0x569bd8['json']()['catch'](()=>({'message':_0x569bd8['statusText']}));throw new Error(_0x37e714['message']||'Failed\x20to\x20get\x20teams');}return await _0x569bd8['json']();},async 'getTeam'(_0x372614){const _0x3773d4=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x372614));if(!_0x3773d4['ok']){const _0x6df004=await _0x3773d4['json']()['catch'](()=>({'message':_0x3773d4['statusText']}));throw new Error(_0x6df004['message']||'Failed\x20to\x20get\x20team');}return await _0x3773d4['json']();},async 'createTeam'(_0x527de8){const _0x55608b=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x527de8)});if(!_0x55608b['ok']){const _0xce21fc=await _0x55608b['json']()['catch'](()=>({'message':_0x55608b['statusText']}));throw new Error(_0xce21fc['message']||'Failed\x20to\x20create\x20team');}return await _0x55608b['json']();},async 'updateTeam'(_0x1aeb6c,_0x332458){const _0x425dce=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1aeb6c),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x332458)});if(!_0x425dce['ok']){const _0x5f046c=await _0x425dce['json']()['catch'](()=>({'message':_0x425dce['statusText']}));throw new Error(_0x5f046c['message']||'Failed\x20to\x20update\x20team');}return await _0x425dce['json']();},async 'deleteTeam'(_0x125e88){const _0x59db85=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x125e88),{'method':'DELETE'});if(!_0x59db85['ok']){const _0x2f6d20=await _0x59db85['json']()['catch'](()=>({'message':_0x59db85['statusText']}));throw new Error(_0x2f6d20['message']||'Failed\x20to\x20delete\x20team');}return await _0x59db85['json']();},async 'addTeamMember'(_0x173f8a,_0x5bfe61){const _0x20017e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x173f8a)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x5bfe61})});if(!_0x20017e['ok']){const _0x4f091d=await _0x20017e['json']()['catch'](()=>({'message':_0x20017e['statusText']}));throw new Error(_0x4f091d['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x20017e['json']();},async 'removeTeamMember'(_0x116e2c,_0x1bd98c){const _0x3af8e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x116e2c)+'/members/'+encodeURIComponent(_0x1bd98c),{'method':'DELETE'});if(!_0x3af8e8['ok']){const _0x180bfb=await _0x3af8e8['json']()['catch'](()=>({'message':_0x3af8e8['statusText']}));throw new Error(_0x180bfb['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x3af8e8['json']();},async 'getBindings'(_0x52c738={}){const _0x5310ec=new URLSearchParams();if(_0x52c738['resource_type'])_0x5310ec['set']('resource_type',_0x52c738['resource_type']);if(_0x52c738['resource_id'])_0x5310ec['set']('resource_id',_0x52c738['resource_id']);if(_0x52c738['subject_type'])_0x5310ec['set']('subject_type',_0x52c738['subject_type']);if(_0x52c738['subject_id'])_0x5310ec['set']('subject_id',_0x52c738['subject_id']);const _0x385a52=_0x5310ec['toString'](),_0x2d6274=await fetch(API_BASE+'/bindings'+(_0x385a52?'?'+_0x385a52:''));if(!_0x2d6274['ok']){const _0x5edfcb=await _0x2d6274['json']()['catch'](()=>({'message':_0x2d6274['statusText']}));throw new Error(_0x5edfcb['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2d6274['json']();},async 'createBinding'(_0x826fa0){const _0x4fed28=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x826fa0)});if(!_0x4fed28['ok']){const _0x3df509=await _0x4fed28['json']()['catch'](()=>({'message':_0x4fed28['statusText']}));throw new Error(_0x3df509['message']||'Failed\x20to\x20create\x20binding');}return await _0x4fed28['json']();},async 'updateBinding'(_0x2fa754,_0x35a649){const _0xcb4f79=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2fa754),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x35a649)});if(!_0xcb4f79['ok']){const _0x48bc0d=await _0xcb4f79['json']()['catch'](()=>({'message':_0xcb4f79['statusText']}));throw new Error(_0x48bc0d['message']||'Failed\x20to\x20update\x20binding');}return await _0xcb4f79['json']();},async 'deleteBinding'(_0x4f83dc){const _0x4c2efc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4f83dc),{'method':'DELETE'});if(!_0x4c2efc['ok']){const _0x5d8a2f=await _0x4c2efc['json']()['catch'](()=>({'message':_0x4c2efc['statusText']}));throw new Error(_0x5d8a2f['message']||'Failed\x20to\x20delete\x20binding');}return await _0x4c2efc['json']();},async 'getRoleDefinitions'(){const _0x45c2b2=await fetch(API_BASE+'/roles');if(!_0x45c2b2['ok']){const _0x53ed29=await _0x45c2b2['json']()['catch'](()=>({'message':_0x45c2b2['statusText']}));throw new Error(_0x53ed29['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x45c2b2['json']();},async 'getRoleDefinition'(_0x5f2f6e){const _0x60365b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5f2f6e));if(!_0x60365b['ok']){const _0x51fa9c=await _0x60365b['json']()['catch'](()=>({'message':_0x60365b['statusText']}));throw new Error(_0x51fa9c['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x60365b['json']();},async 'createRoleDefinition'(_0x3f46e7){const _0x3bb1ee=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3f46e7)});if(!_0x3bb1ee['ok']){const _0x5bbeb6=await _0x3bb1ee['json']()['catch'](()=>({'message':_0x3bb1ee['statusText']}));throw new Error(_0x5bbeb6['message']||_0x5bbeb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3bb1ee['json']();},async 'updateRoleDefinition'(_0x197124,_0x455fea){const _0x54cc45=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x197124),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x455fea)});if(!_0x54cc45['ok']){const _0x38f830=await _0x54cc45['json']()['catch'](()=>({'message':_0x54cc45['statusText']}));throw new Error(_0x38f830['message']||_0x38f830['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x54cc45['json']();},async 'deleteRoleDefinition'(_0x476c26){const _0x31650e=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x476c26),{'method':'DELETE'});if(!_0x31650e['ok']){const _0x21c23f=await _0x31650e['json']()['catch'](()=>({'message':_0x31650e['statusText']}));throw new Error(_0x21c23f['message']||_0x21c23f['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x31650e['json']();},async 'getAvailablePermissions'(){const _0x30d705=await fetch(API_BASE+'/roles/available-permissions');if(!_0x30d705['ok']){const _0x70fb18=await _0x30d705['json']()['catch'](()=>({'message':_0x30d705['statusText']}));throw new Error(_0x70fb18['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x30d705['json']();},async 'getGitProviderAllowedTeams'(_0x3d1f4b){const _0x372000=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3d1f4b)+'/allowed-teams');if(!_0x372000['ok']){const _0x4a17ef=await _0x372000['json']()['catch'](()=>({'message':_0x372000['statusText']}));throw new Error(_0x4a17ef['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x372000['json']();},async 'setGitProviderAllowedTeams'(_0x3b718b,_0x65876f){const _0x30d766=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3b718b)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x65876f})});if(!_0x30d766['ok']){const _0x1dfd35=await _0x30d766['json']()['catch'](()=>({'message':_0x30d766['statusText']}));throw new Error(_0x1dfd35['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x30d766['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x41a54f=toastState['baseBottom'];toastState['toasts']['forEach'](_0x4f6049=>{_0x4f6049['el']['style']['bottom']=_0x41a54f+'px';const _0x2842ec=_0x4f6049['el']['offsetHeight']||toastState['defaultHeight'];_0x41a54f+=_0x2842ec+toastState['gap'];});});}function removeToastById(_0xb6cc44){const _0x3c0e5b=toastState['toasts']['findIndex'](_0x1835c3=>_0x1835c3['id']===_0xb6cc44);if(_0x3c0e5b===-0x1)return;const _0x1f6a79=toastState['toasts'][_0x3c0e5b];if(_0x1f6a79['timeoutId'])clearTimeout(_0x1f6a79['timeoutId']);_0x1f6a79['el']['classList']['remove']('show'),setTimeout(()=>_0x1f6a79['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x3c0e5b,0x1),repositionAllToasts();}function registerToast(_0x17eba2){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x17eba2),repositionAllToasts(),_0x17eba2['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x1c43bb){if(_0x1c43bb===null||_0x1c43bb===undefined)return'';return String(_0x1c43bb)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x59df75,_0x361732){if(_0x59df75&&typeof _0x59df75==='object'&&!Array['isArray'](_0x59df75))return{'code':typeof _0x59df75['text']==='string'?_0x59df75['text']:'','language':typeof _0x59df75['lang']==='string'?_0x59df75['lang']:''};return{'code':typeof _0x59df75==='string'?_0x59df75:'','language':typeof _0x361732==='string'?_0x361732:''};}function buildMermaidBlock(_0x3c8d40){const _0x2094c6=String(_0x3c8d40||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2094c6))+'\x22>'+escapeHtmlValue(_0x2094c6)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1a1bab=new marked['Renderer'](),_0x21a019=_0x1a1bab['code']['bind'](_0x1a1bab);return _0x1a1bab['code']=function(_0x3e2aa2,_0x229cdb,..._0x56fe8a){const {code:_0x288fbe,language:_0x3c0ace}=getMarkdownCodeBlockPayload(_0x3e2aa2,_0x229cdb),_0x5dda8c=String(_0x3c0ace||'')['trim']()['toLowerCase']();if(_0x5dda8c==='mermaid')return buildMermaidBlock(_0x288fbe);const _0x15f7a3=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x15f7a3&&_0x5dda8c)try{const _0x3461b5=_0x15f7a3['getLanguage'](_0x5dda8c)?_0x5dda8c:'plaintext',_0x3d7b93=_0x15f7a3['highlight'](_0x288fbe,{'language':_0x3461b5})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x5dda8c)+'\x22>'+_0x3d7b93+'</code></pre>';}catch(_0x497f23){console['error']('Syntax\x20highlighting\x20error:',_0x497f23);}return _0x21a019(_0x3e2aa2,_0x229cdb,..._0x56fe8a);},sharedMarkedRenderer=_0x1a1bab,_0x1a1bab;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x351e00=window['mermaid'];if(!_0x351e00||typeof _0x351e00['initialize']!=='function')return _0x351e00||null;return _0x351e00['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x351e00;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1e7d55,_0xf63295)=>{const _0x2d1156=()=>_0x1e7d55(configureMermaidInstance()),_0x35b6dc=()=>{mermaidLoadPromise=null,_0xf63295(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x3064a9=document['getElementById'](MERMAID_SCRIPT_ID);!_0x3064a9&&(_0x3064a9=document['createElement']('script'),_0x3064a9['id']=MERMAID_SCRIPT_ID,_0x3064a9['src']=MERMAID_SCRIPT_SRC,_0x3064a9['async']=!![],document['head']['appendChild'](_0x3064a9));if(window['mermaid']){_0x2d1156();return;}_0x3064a9['addEventListener']('load',_0x2d1156,{'once':!![]}),_0x3064a9['addEventListener']('error',_0x35b6dc,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x17ea46){const _0x3b3843=_0x17ea46['getAttribute']('data-mermaid-source');if(!_0x3b3843)return null;let _0x1d183f=_0x3b3843;try{_0x1d183f=decodeURIComponent(_0x3b3843);}catch{}return _0x17ea46['textContent']=_0x1d183f,_0x17ea46['removeAttribute']('data-processed'),_0x17ea46['removeAttribute']('aria-roledescription'),_0x17ea46['removeAttribute']('role'),_0x17ea46['removeAttribute']('aria-label'),_0x1d183f;}function collectMermaidNodes(_0x32bc3a,_0x3b98bf){if(!(_0x32bc3a instanceof Element))return;_0x32bc3a['matches']('.mermaid[data-mermaid-source]')&&_0x3b98bf['add'](_0x32bc3a),_0x32bc3a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3704a7=>{_0x3b98bf['add'](_0x3704a7);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x210577=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0xb87dd0=>setTimeout(_0xb87dd0,0x0);_0x210577(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1827ca=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1827ca);});});}function queueMermaidRender(_0x3d3581){const _0xec21a3=new Set();_0x3d3581 instanceof Document||_0x3d3581 instanceof DocumentFragment?_0x3d3581['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xfc4ff=>_0xec21a3['add'](_0xfc4ff)):collectMermaidNodes(_0x3d3581,_0xec21a3);if(_0xec21a3['size']===0x0)return;_0xec21a3['forEach'](_0x4bf564=>pendingMermaidNodes['add'](_0x4bf564)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x4e98b9=Array['from'](pendingMermaidNodes)['filter'](_0x22c3ef=>_0x22c3ef['isConnected']);pendingMermaidNodes['clear']();if(_0x4e98b9['length']===0x0)return;const _0x3428dc=await loadMermaid();if(!_0x3428dc)return;configureMermaidInstance();const _0x339d3e=getMermaidTheme();for(const _0x418cdc of _0x4e98b9){const _0x663a35=_0x418cdc['getAttribute']('data-mermaid-source');if(!_0x663a35)continue;const _0x260c5d=_0x418cdc['getAttribute']('data-processed')==='true';if(_0x260c5d&&_0x418cdc['dataset']['mermaidTheme']===_0x339d3e)continue;restoreMermaidSource(_0x418cdc);try{if(typeof _0x3428dc['run']==='function')await _0x3428dc['run']({'nodes':[_0x418cdc]});else typeof _0x3428dc['init']==='function'&&_0x3428dc['init'](undefined,[_0x418cdc]);_0x418cdc['dataset']['mermaidTheme']=_0x339d3e,delete _0x418cdc['dataset']['mermaidError'];}catch(_0x4062f5){console['error']('Mermaid\x20render\x20failed:',_0x4062f5),restoreMermaidSource(_0x418cdc),_0x418cdc['dataset']['mermaidError']='true',delete _0x418cdc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5d2670=>{_0x5d2670['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5d2670);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x554fe3=>{_0x554fe3['forEach'](_0x2911db=>{_0x2911db['addedNodes']['forEach'](_0x3f5697=>{_0x3f5697['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x3f5697);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x551a7f){const _0x28016f=new Date(_0x551a7f),_0x172c99=new Date(),_0x5ea65f=_0x172c99-_0x28016f,_0x2acc42=Math['floor'](_0x5ea65f/0x3e8),_0x2cc7d9=Math['floor'](_0x2acc42/0x3c),_0x3208a6=Math['floor'](_0x2cc7d9/0x3c),_0x303aaf=Math['floor'](_0x3208a6/0x18);if(_0x2acc42<0x3c)return'now';if(_0x2cc7d9<0x3c)return _0x2cc7d9+'m\x20ago';if(_0x3208a6<0x18)return _0x3208a6+'h\x20ago';return _0x303aaf+'d\x20ago';},'getStatusIcon'(_0x48ee09){switch(_0x48ee09){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x1d506d){switch(_0x1d506d){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x18bb31,_0x287000=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x1c68ae={};_0x1c68ae['text/plain']=new Blob([_0x18bb31],{'type':'text/plain'});_0x287000&&(_0x1c68ae['text/html']=new Blob([_0x287000],{'type':'text/html'}));const _0x26aef9=new ClipboardItem(_0x1c68ae);return await navigator['clipboard']['write']([_0x26aef9]),!![];}catch(_0x1b21ef){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x1b21ef);}try{const _0x14f0a3=_0xdf898c=>{_0xdf898c['preventDefault'](),_0xdf898c['clipboardData']['setData']('text/plain',_0x18bb31),_0x287000&&_0xdf898c['clipboardData']['setData']('text/html',_0x287000);};document['addEventListener']('copy',_0x14f0a3);const _0x1ae596=document['execCommand']('copy');document['removeEventListener']('copy',_0x14f0a3);if(_0x1ae596)return!![];}catch(_0x96a24){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x96a24);}try{const _0x19ba72=document['createElement']('textarea');_0x19ba72['value']=_0x18bb31,_0x19ba72['style']['position']='fixed',_0x19ba72['style']['opacity']='0',_0x19ba72['style']['pointerEvents']='none',document['body']['appendChild'](_0x19ba72),_0x19ba72['select']();const _0x3eca1c=document['execCommand']('copy');return document['body']['removeChild'](_0x19ba72),_0x3eca1c;}catch(_0x49b70a){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x49b70a),![];}},'showToast'(_0x179eec,_0x88fcdb='info'){const _0x1905dd=getNextToastId(),_0x5d10fd=document['createElement']('div');_0x5d10fd['className']='toast\x20toast-'+_0x88fcdb,_0x5d10fd['textContent']=_0x179eec,_0x5d10fd['dataset']['toastId']=_0x1905dd,document['body']['appendChild'](_0x5d10fd);const _0x490704=_0x88fcdb==='error'?0x2710:0xbb8,_0x4645c0=setTimeout(()=>{removeToastById(_0x1905dd);},_0x490704),_0x590e35={'id':_0x1905dd,'el':_0x5d10fd,'timeoutId':_0x4645c0};return registerToast(_0x590e35),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5d10fd['classList']['add']('show');});}),_0x1905dd;},'showError'(_0x12da99){console['error'](_0x12da99);const _0x2c1e71=typeof _0x12da99==='string'?_0x12da99:_0x12da99['message']||'An\x20error\x20occurred';this['showToast'](_0x2c1e71,'error');},'showSuccess'(_0x3690c4){this['showToast'](_0x3690c4,'success');},'capitalize'(_0x221af9){if(!_0x221af9)return'';return _0x221af9['charAt'](0x0)['toUpperCase']()+_0x221af9['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x3ca005){return escapeHtmlValue(_0x3ca005);},'ansiToHtml'(_0x10094f){if(_0x10094f===null||_0x10094f===undefined)return'';let _0x43a2d8=this['escapeHtml'](_0x10094f);const _0x1c267d={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x2c3d3e={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x1f27c9=0x0;return _0x43a2d8=_0x43a2d8['replace'](/\x1b\[([0-9;]*)m/g,(_0x47f662,_0x27a6e9)=>{if(!_0x27a6e9||_0x27a6e9==='0'){const _0x15b7da='</span>'['repeat'](_0x1f27c9);return _0x1f27c9=0x0,_0x15b7da;}const _0x559be9=_0x27a6e9['split'](';'),_0x39e261=[];for(const _0x45dfc0 of _0x559be9){if(_0x45dfc0==='1')_0x39e261['push']('font-weight:bold');else{if(_0x45dfc0==='2')_0x39e261['push']('opacity:0.7');else{if(_0x45dfc0==='3')_0x39e261['push']('font-style:italic');else{if(_0x45dfc0==='4')_0x39e261['push']('text-decoration:underline');else{if(_0x45dfc0==='9')_0x39e261['push']('text-decoration:line-through');else{if(_0x1c267d[_0x45dfc0])_0x39e261['push']('color:'+_0x1c267d[_0x45dfc0]);else{if(_0x2c3d3e[_0x45dfc0])_0x39e261['push']('background-color:'+_0x2c3d3e[_0x45dfc0]);}}}}}}}if(_0x39e261['length']>0x0)return _0x1f27c9++,'<span\x20style=\x22'+_0x39e261['join'](';')+'\x22>';return'';}),_0x43a2d8+='</span>'['repeat'](_0x1f27c9),_0x43a2d8=_0x43a2d8['replace'](/\\u001b\[([0-9;]*)m/g,(_0x453a9f,_0x4fb797)=>{if(!_0x4fb797||_0x4fb797==='0')return'';const _0x31f8be=_0x4fb797['split'](';'),_0x19737a=[];for(const _0x394e4c of _0x31f8be){if(_0x394e4c==='1')_0x19737a['push']('font-weight:bold');else{if(_0x1c267d[_0x394e4c])_0x19737a['push']('color:'+_0x1c267d[_0x394e4c]);else{if(_0x2c3d3e[_0x394e4c])_0x19737a['push']('background-color:'+_0x2c3d3e[_0x394e4c]);}}}if(_0x19737a['length']>0x0)return'<span\x20style=\x22'+_0x19737a['join'](';')+'\x22>';return'';}),_0x43a2d8;},'showModal'({title:_0x205aa4,content:_0x198bcd,buttons:buttons=[]}){const _0x542e07='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x205aa4)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x198bcd+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x5a7b82,_0x3b078e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x5a7b82['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3b078e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x5a7b82['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x259342=document['createElement']('div');_0x259342['id']='utils-modal',_0x259342['className']='modal',_0x259342['innerHTML']=_0x542e07,document['body']['appendChild'](_0x259342);const _0x252dcd=document['getElementById']('utils-modal-close');_0x252dcd&&_0x252dcd['addEventListener']('click',()=>this['hideModal']());const _0xf0d880=_0x259342['querySelectorAll']('[data-btn-index]');_0xf0d880['forEach'](_0x57be92=>{const _0x274d69=parseInt(_0x57be92['dataset']['btnIndex']);buttons[_0x274d69]?.['onClick']&&_0x57be92['addEventListener']('click',buttons[_0x274d69]['onClick']);});const _0x556eeb=document['getElementById']('utils-modal-overlay');_0x556eeb&&_0x556eeb['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x40007e=document['getElementById']('utils-modal');_0x40007e&&_0x40007e['remove']();},'parseKeyValuePairs'(_0x42ec47){const _0x4ce900={};if(!_0x42ec47)return _0x4ce900;return _0x42ec47['split'](/\r?\n/)['map'](_0x2c0150=>_0x2c0150['trim']())['filter'](Boolean)['forEach'](_0xef59fc=>{const _0x56aa0b=_0xef59fc['indexOf']('=');if(_0x56aa0b>0x0){const _0x4073c6=_0xef59fc['slice'](0x0,_0x56aa0b)['trim'](),_0xac2162=_0xef59fc['slice'](_0x56aa0b+0x1)['trim']();if(_0x4073c6)_0x4ce900[_0x4073c6]=_0xac2162;}}),_0x4ce900;},'debounce'(_0x180351,_0x975276=0xfa){let _0x4f1371=null;return(..._0x187e98)=>{clearTimeout(_0x4f1371),_0x4f1371=setTimeout(()=>_0x180351['apply'](this,_0x187e98),_0x975276);};},'formatTimestamp'(_0x1ca4a1){if(!_0x1ca4a1)return'N/A';const _0x1d238d=new Date(_0x1ca4a1);return _0x1d238d['toLocaleDateString']()+'\x20'+_0x1d238d['toLocaleTimeString']();},'getQueryParams'(){const _0x5ef3fa=new URLSearchParams(window['location']['search']),_0xf0ba24={};for(const [_0x319097,_0xae80a7]of _0x5ef3fa){_0xf0ba24[_0x319097]=_0xae80a7;}return _0xf0ba24;},'formatDuration'(_0x10ba81,_0x378176){if(!_0x10ba81)return'N/A';const _0xe7f9ed=new Date(_0x10ba81),_0x28dcd3=_0x378176?new Date(_0x378176):new Date(),_0x2bfbc6=_0x28dcd3-_0xe7f9ed;if(_0x2bfbc6<0x0)return'0s';const _0x56903f=Math['floor'](_0x2bfbc6/0x3e8),_0x331624=Math['floor'](_0x56903f/0x3c),_0x2910b9=Math['floor'](_0x331624/0x3c),_0x1775e2=Math['floor'](_0x2910b9/0x18);if(_0x56903f<0x3c)return _0x56903f+'s';if(_0x331624<0x3c)return _0x331624+'m\x20'+_0x56903f%0x3c+'s';if(_0x2910b9<0x18)return _0x2910b9+'h\x20'+_0x331624%0x3c+'m\x20'+_0x56903f%0x3c+'s';return _0x1775e2+'d\x20'+_0x2910b9%0x18+'h\x20'+_0x331624%0x3c+'m';},'renderMarkdown'(_0x52c577,_0x2b3858={}){if(!_0x52c577)return'';_0x52c577=this['rewriteAttachmentLinks'](_0x52c577,_0x2b3858),_0x52c577=this['rewriteColorSyntax'](_0x52c577);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x52c577);}catch(_0x82ddd9){return console['error']('Markdown\x20parsing\x20error:',_0x82ddd9),this['renderMarkdownFallback'](_0x52c577,_0x2b3858);}},'rewriteAttachmentLinks'(_0x2e860d,_0x529353={}){const _0x2d523a=typeof _0x529353['resolveAttachmentUrl']==='function'?_0x529353['resolveAttachmentUrl']:_0x529353['taskId']?_0x4b513c=>API_BASE+'/tasks/'+_0x529353['taskId']+'/attachments/'+encodeURIComponent(_0x4b513c):null;if(!_0x2d523a)return _0x2e860d;return String(_0x2e860d)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x2cd23d,_0x2f94da)=>{const _0x67ce56=String(_0x2f94da||'')['trim']();if(!_0x67ce56)return _0x2cd23d;let _0x454627=_0x67ce56;try{_0x454627=decodeURIComponent(_0x67ce56);}catch{}const _0x3c96ea=_0x2d523a(_0x454627);if(!_0x3c96ea)return _0x2cd23d;return']('+_0x3c96ea+')';});},'rewriteColorSyntax'(_0x50daef){if(!_0x50daef)return _0x50daef;return String(_0x50daef)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x329a26,_0x453618,_0x454585)=>{const _0x41c7db=this['rewriteColorSyntax'](_0x454585);return'<span\x20style=\x22color:\x20'+_0x453618+'\x22>'+_0x41c7db+'</span>';});},'renderMarkdownFallback'(_0x33b976,_0x1a9dcd={}){if(!_0x33b976)return'';_0x33b976=_0x33b976['replace'](/\r\n/g,'\x0a'),_0x33b976=_0x33b976['replace'](/\r/g,'\x0a'),_0x33b976=this['rewriteAttachmentLinks'](_0x33b976,_0x1a9dcd);let _0xe28d96=this['escapeHtml'](_0x33b976);return _0xe28d96=_0xe28d96['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0xe28d96=_0xe28d96['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0xe28d96=_0xe28d96['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0xe28d96=_0xe28d96['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0xe28d96=_0xe28d96['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0xe28d96=_0xe28d96['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0xe28d96=_0xe28d96['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0xe28d96=_0xe28d96['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0xe28d96=_0xe28d96['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0xe28d96=_0xe28d96['replace'](/\n\n/g,'</p><p>'),_0xe28d96=_0xe28d96['replace'](/\n/g,'<br>'),'<p>'+_0xe28d96+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8b70=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8b70),_0x1a8b70[0x6]=_0x1a8b70[0x6]&0xf|0x40,_0x1a8b70[0x8]=_0x1a8b70[0x8]&0x3f|0x80;const _0x5f3113=Array['from'](_0x1a8b70,_0x3d78fa=>_0x3d78fa['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5f3113['slice'](0x0,0x8)+'-'+_0x5f3113['slice'](0x8,0xc)+'-'+_0x5f3113['slice'](0xc,0x10)+'-'+_0x5f3113['slice'](0x10,0x14)+'-'+_0x5f3113['slice'](0x14);}};export class CustomSelect{constructor(_0xed9135,_0x25e107={}){this['nativeSelect']=_0xed9135,this['options']=_0x25e107,this['isOpen']=![],this['selectedValue']=_0xed9135['value']||'',this['searchable']=_0x25e107['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x586047=document['createElement']('div');_0x586047['className']='custom-select';const _0xef80e8=document['createElement']('div');_0xef80e8['className']='custom-select-trigger',_0xef80e8['setAttribute']('tabindex','0'),_0xef80e8['setAttribute']('role','button'),_0xef80e8['setAttribute']('aria-haspopup','listbox');const _0x602e0e=document['createElement']('span');_0x602e0e['className']='custom-select-trigger-text';const _0x6ef88a=document['createElement']('span');_0x6ef88a['className']='custom-select-arrow',_0x6ef88a['textContent']='▼',_0xef80e8['appendChild'](_0x602e0e),_0xef80e8['appendChild'](_0x6ef88a);const _0x1db61b=document['createElement']('div');_0x1db61b['className']='custom-select-dropdown',_0x1db61b['setAttribute']('role','listbox');if(this['searchable']){const _0x521a55=document['createElement']('div');_0x521a55['className']='custom-select-search';const _0x458e34=document['createElement']('input');_0x458e34['type']='text',_0x458e34['className']='custom-select-search-input',_0x458e34['placeholder']='Type\x20to\x20search...',_0x458e34['setAttribute']('aria-label','Search\x20options'),_0x458e34['addEventListener']('input',_0x30bf8c=>{this['searchQuery']=_0x30bf8c['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x458e34['addEventListener']('keydown',_0x55e031=>{if(_0x55e031['key']==='Escape')_0x55e031['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x55e031['key']==='Enter'){_0x55e031['preventDefault'](),_0x55e031['stopPropagation']();const _0x217481=_0x1db61b['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x217481){const _0x3fc79e=_0x217481['getAttribute']('data-value');this['select'](_0x3fc79e);}}}}),_0x521a55['appendChild'](_0x458e34),_0x1db61b['appendChild'](_0x521a55),this['searchInput']=_0x458e34;}const _0x2df9ba=document['createElement']('div');_0x2df9ba['className']='custom-select-options',_0x1db61b['appendChild'](_0x2df9ba),_0x586047['appendChild'](_0xef80e8),_0x586047['appendChild'](_0x1db61b),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x586047,this['nativeSelect']),this['wrapper']=_0x586047,this['trigger']=_0xef80e8,this['triggerText']=_0x602e0e,this['dropdown']=_0x1db61b,this['optionsContainer']=_0x2df9ba,_0xef80e8['addEventListener']('click',()=>this['toggle']()),_0xef80e8['addEventListener']('keydown',_0x395930=>this['handleKeydown'](_0x395930)),document['addEventListener']('click',_0x17c6b4=>{!_0x586047['contains'](_0x17c6b4['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x4464f5=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x4464f5['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x57acee=new MutationObserver(()=>{this['updateDisabledState']();});_0x57acee['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xf1fe60=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xf1fe60['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x37df9c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x37df9c),this['trigger']['setAttribute']('aria-disabled',_0x37df9c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x37df9c?'-1':'0'),_0x37df9c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x1c6756=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x377ca8=_0x1c6756['filter'](_0x27b679=>!_0x27b679['disabled']&&!_0x27b679['hidden']);_0x1c6756['forEach']((_0x3a245a,_0x31e76c)=>{const _0x35182f=document['createElement']('div');_0x35182f['className']='custom-select-option',_0x35182f['textContent']=_0x3a245a['textContent'],_0x35182f['setAttribute']('data-value',_0x3a245a['value']),_0x35182f['setAttribute']('data-index',_0x31e76c),_0x35182f['setAttribute']('role','option'),_0x3a245a['disabled']?_0x35182f['classList']['add']('disabled'):_0x35182f['addEventListener']('click',()=>this['select'](_0x3a245a['value'])),_0x3a245a['value']===this['selectedValue']&&_0x35182f['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x35182f),this['allOptions']['push']({'element':_0x35182f,'text':_0x3a245a['textContent']['toLowerCase'](),'value':_0x3a245a['value'],'disabled':_0x3a245a['disabled']});});if(this['searchable']&&this['searchInput']){const _0x3b9207=this['searchInput']['parentElement'];_0x377ca8['length']>0x3?_0x3b9207['style']['display']='':_0x3b9207['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x2951b9=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x2cf616=>{if(!_0x2951b9||_0x2cf616['disabled'])_0x2cf616['element']['style']['display']='';else{const _0x467e26=_0x2cf616['text']['includes'](_0x2951b9);_0x2cf616['element']['style']['display']=_0x467e26?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x4f2c00){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x4f2c00,this['nativeSelect']['value']=_0x4f2c00;const _0x20901f=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x20901f),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x505cd3=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x505cd3&&(this['triggerText']['textContent']=_0x505cd3['textContent'],_0x505cd3['disabled']||_0x505cd3['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x285275=>{_0x285275['getAttribute']('data-value')===this['selectedValue']?_0x285275['classList']['add']('selected'):_0x285275['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x4af203=window['getComputedStyle'](this['dropdown']);if(_0x4af203['position']==='fixed'){const _0x40868e=this['trigger']['getBoundingClientRect'](),_0x3d1226=parseInt(_0x4af203['maxHeight'])||0xc8,_0x362012=window['innerHeight'],_0x3f636e=_0x362012-_0x40868e['bottom'],_0x147212=_0x40868e['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x729355;_0x3f636e<_0x3d1226&&_0x147212>_0x3f636e?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x362012-_0x40868e['top']+'px',_0x729355=Math['min'](_0x3d1226,_0x147212-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x40868e['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x729355=Math['min'](_0x3d1226,_0x3f636e-0xa),this['dropdown']['style']['maxHeight']=_0x729355+'px');if(this['optionsContainer']){let _0x4596fa=_0x729355;if(this['searchInput']){const _0x2c1595=this['searchInput']['parentElement'];_0x2c1595&&(_0x4596fa-=_0x2c1595['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4596fa)+'px';}this['dropdown']['style']['left']=_0x40868e['left']+'px',this['dropdown']['style']['width']=_0x40868e['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x3b47ea=this['searchInput']['parentElement'];_0x3b47ea&&_0x3b47ea['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x309c77){if(this['nativeSelect']['disabled'])return;if(_0x309c77['key']==='Enter'||_0x309c77['key']==='\x20')_0x309c77['preventDefault'](),this['toggle']();else _0x309c77['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x114369='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x114369),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x1fa50e=document['getElementById']('confirm-dialog-close'),_0x49200f=document['getElementById']('confirm-dialog-cancel'),_0x22f265=document['getElementById']('confirm-dialog-confirm'),_0x48433a=this['_modal']['querySelector']('.modal-overlay');_0x1fa50e['addEventListener']('click',()=>this['_resolve'](![])),_0x49200f['addEventListener']('click',()=>this['_resolve'](![])),_0x22f265['addEventListener']('click',()=>this['_resolve'](!![])),_0x48433a['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x463151=>{if(_0x463151['key']==='Escape')_0x463151['preventDefault'](),this['_resolve'](![]);else _0x463151['key']==='Enter'&&(_0x463151['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x4ee99b,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5120c9=>{this['_resolvePromise']=_0x5120c9,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x4ee99b;const _0x1245c0=document['getElementById']('confirm-dialog-cancel'),_0x410791=document['getElementById']('confirm-dialog-confirm');_0x1245c0['textContent']=cancelText,_0x410791['textContent']=confirmText,_0x410791['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x410791['focus']();});},'_resolve'(_0x40e725){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40e725),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x30e6f9,_0x56589d={}){this['container']=_0x30e6f9,this['options']={'placeholder':_0x56589d['placeholder']||'Type\x20to\x20search...','maxItems':_0x56589d['maxItems']||0x64,'loadItems':_0x56589d['loadItems']||(async()=>[]),'renderItem':_0x56589d['renderItem']||(_0x34174d=>({'primary':String(_0x34174d),'secondary':''})),'onSelect':_0x56589d['onSelect']||(()=>{}),'filterItems':_0x56589d['filterItems']||null,'getItemValue':_0x56589d['getItemValue']||(_0x4932ad=>_0x4932ad),'sortItems':_0x56589d['sortItems']||null,'debounceMs':_0x56589d['debounceMs']||0xc8,'minCharsForSearch':_0x56589d['minCharsForSearch']||0x0,'emptyMessage':_0x56589d['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x56589d['loadingMessage']||'Loading...','preload':_0x56589d['preload']!==![],'searchMode':_0x56589d['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='×',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x42eac9=>this['onBlur'](_0x42eac9)),this['input']['addEventListener']('input',_0x2d0072=>this['onInput'](_0x2d0072)),this['input']['addEventListener']('keydown',_0x2b4541=>this['onKeydown'](_0x2b4541)),this['clearBtn']['addEventListener']('mousedown',_0x52b4be=>{_0x52b4be['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x2ef3b1=>{_0x2ef3b1['preventDefault']();}),document['addEventListener']('click',_0x5c5a26=>{!this['wrapper']['contains'](_0x5c5a26['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x2aaefa){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x2aaefa);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x1191e8){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x21e2ba){const _0x4f8664=_0x21e2ba['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4f8664);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4f8664):this['loadAndShow'](_0x4f8664);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x24f7c0){switch(_0x24f7c0['key']){case'ArrowDown':_0x24f7c0['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x24f7c0['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x24f7c0['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x24f7c0['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2f71c3){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3500=this['selectedIndex']+_0x2f71c3;if(_0x1a3500>=0x0&&_0x1a3500<this['filteredItems']['length']){this['selectedIndex']=_0x1a3500,this['updateSelectionHighlight']();const _0x25c747=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x25c747[this['selectedIndex']]&&_0x25c747[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x1353a5=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x1353a5['forEach']((_0x319289,_0x365bb0)=>{_0x319289['classList']['toggle']('keyboard-selected',_0x365bb0===this['selectedIndex']);});}async['loadAndShow'](_0x3e4cb0){this['showLoading']();try{const _0x32ed23=await this['options']['loadItems'](_0x3e4cb0);if(this['options']['searchMode']==='server'){let _0x2cd123=_0x32ed23;this['options']['sortItems']&&(_0x2cd123=this['options']['sortItems']([..._0x32ed23]));this['filteredItems']=_0x2cd123;const _0x52ccad=this['filteredItems']['length']>=this['options']['maxItems'];_0x52ccad&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x52ccad),this['open']();}else this['allItems']=_0x32ed23,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x3e4cb0);}catch(_0x62ebd1){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x62ebd1),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x5ca140){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x5ca140):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x24b99b=this['filteredItems']['length']>=this['options']['maxItems'];_0x24b99b&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x24b99b),this['open']();}['renderItems'](_0xb21a23){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x4039ba,_0x534c5c)=>{const _0x492e31=document['createElement']('div');_0x492e31['className']='autocomplete-select-item',_0x492e31['setAttribute']('role','option'),_0x492e31['setAttribute']('data-index',_0x534c5c);const _0x311b19=this['options']['renderItem'](_0x4039ba);let _0x18aefc='';_0x311b19['icon']&&(_0x18aefc='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x311b19['iconClass']||'')+'\x22>'+_0x311b19['icon']+'</span>'),_0x492e31['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x18aefc+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x311b19['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x311b19['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x311b19['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x492e31['addEventListener']('click',()=>{this['selectItem'](_0x4039ba);}),_0x492e31['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x534c5c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x492e31);}),_0xb21a23?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x3cb7a4){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x3cb7a4)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x2e1095){this['selectedItem']=_0x2e1095;const _0x4d3636=this['options']['renderItem'](_0x2e1095);this['input']['value']=_0x4d3636['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x2e1095);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x2831d9){if(_0x2831d9){this['selectedItem']=_0x2831d9;const _0x550b7a=this['options']['renderItem'](_0x2831d9);this['input']['value']=_0x550b7a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x68c1ba){this['allItems']=_0x68c1ba,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x57ccc1){this['input']['placeholder']=_0x57ccc1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x4c2eef=null){const _0x46cc7a=document['getElementById']('admin-menu-container'),_0x5d0cdb=document['getElementById']('admin-menu-btn'),_0x4f3c51=document['getElementById']('admin-menu');if(!_0x46cc7a||!_0x5d0cdb||!_0x4f3c51)return;try{!_0x4c2eef&&(_0x4c2eef=await API['getCurrentUser']());if(_0x4c2eef){const _0x47a494=window['Permissions'],_0x3e87ca=_0x47a494['hasServerPermission'](_0x4c2eef,'*')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:manage')||_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')||_0x47a494['hasTeamPermission'](_0x4c2eef,'teams:manage')||_0x47a494['hasEnvPermission'](_0x4c2eef,'environments:view_details');if(!_0x3e87ca)return;_0x46cc7a['hidden']=![];if(!_0x47a494['hasServerPermission'](_0x4c2eef,'*')){const _0x261545=_0x4f3c51['querySelectorAll']('.admin-menu-item');_0x261545['forEach'](_0x30dfc4=>{const _0x4759e1=_0x30dfc4['querySelector']('.option-text')?.['textContent']?.['trim']();_0x4759e1==='Users'&&!_0x47a494['hasServerPermission'](_0x4c2eef,'users:create')&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Skills'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Settings'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Server\x20Administration'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Git\x20History'&&(_0x30dfc4['hidden']=!![]),_0x4759e1==='Roles'&&(_0x30dfc4['hidden']=!![]);});}_0x5d0cdb['addEventListener']('click',_0x2a3816=>{_0x2a3816['stopPropagation']();const _0x5290cc=document['getElementById']('actions-menu');if(_0x5290cc)_0x5290cc['hidden']=!![];_0x4f3c51['hidden']=!_0x4f3c51['hidden'];}),document['addEventListener']('click',_0x363a39=>{!_0x4f3c51['hidden']&&!_0x5d0cdb['contains'](_0x363a39['target'])&&!_0x4f3c51['contains'](_0x363a39['target'])&&(_0x4f3c51['hidden']=!![]);}),document['addEventListener']('keydown',_0x22c2aa=>{_0x22c2aa['key']==='Escape'&&!_0x4f3c51['hidden']&&(_0x4f3c51['hidden']=!![]);});}}catch(_0x460654){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x460654['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|
|
1
|
+
function detectApiBase(){const _0x4bd1e4=window['location']['pathname'],_0x913249=_0x4bd1e4['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x913249)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x913249[0x1]),_0x913249[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x17981e={}){const _0x45e830=new URLSearchParams();_0x17981e['userId']&&_0x45e830['set']('userId',String(_0x17981e['userId']));_0x17981e['automation']&&_0x45e830['set']('automation',String(_0x17981e['automation']));const _0x22808c=API_BASE+'/tasks/stats'+(_0x45e830['toString']()?'?'+_0x45e830['toString']():''),_0x50886a=await fetch(_0x22808c);if(!_0x50886a['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x50886a['statusText']);return await _0x50886a['json']();},async 'getTasks'(_0x32a59e={}){const _0xf0b970=new URLSearchParams();_0x32a59e['status']&&_0xf0b970['set']('status',String(_0x32a59e['status']));_0x32a59e['environment']&&_0xf0b970['set']('environment',String(_0x32a59e['environment']));_0x32a59e['automation']&&_0xf0b970['set']('automation',String(_0x32a59e['automation']));if(_0x32a59e['include']){const _0x1fa866=Array['isArray'](_0x32a59e['include'])?_0x32a59e['include']['join'](','):String(_0x32a59e['include']);_0x1fa866&&_0xf0b970['set']('include',_0x1fa866);}_0x32a59e['filter']&&_0xf0b970['set']('filter',String(_0x32a59e['filter']));_0x32a59e['page']&&_0xf0b970['set']('page',String(_0x32a59e['page']));_0x32a59e['limit']&&_0xf0b970['set']('limit',String(_0x32a59e['limit']));_0x32a59e['userId']&&_0xf0b970['set']('userId',String(_0x32a59e['userId']));_0x32a59e['search']&&_0xf0b970['set']('search',String(_0x32a59e['search']));_0x32a59e['includeChildTasks']&&_0xf0b970['set']('includeChildTasks','true');const _0x536e3a=API_BASE+'/tasks'+(_0xf0b970['toString']()?'?'+_0xf0b970['toString']():''),_0x51a334=await fetch(_0x536e3a);if(!_0x51a334['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x51a334['statusText']);return await _0x51a334['json']();},async 'getAutomations'(_0x2990bd={}){const _0xb3ba45=new URLSearchParams();_0x2990bd['environment']&&_0xb3ba45['set']('environment',String(_0x2990bd['environment']));const _0x1a99a0=await fetch(API_BASE+'/api/automations'+(_0xb3ba45['toString']()?'?'+_0xb3ba45['toString']():''));if(!_0x1a99a0['ok']){const _0x29c2b0=await _0x1a99a0['json']()['catch'](()=>({}));throw new Error(_0x29c2b0['message']||_0x29c2b0['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x1a99a0['statusText']);}return await _0x1a99a0['json']();},async 'getAutomation'(_0x2c76d9){const _0x409487=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2c76d9));if(!_0x409487['ok']){const _0x25560f=await _0x409487['json']()['catch'](()=>({}));throw new Error(_0x25560f['message']||_0x25560f['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x409487['statusText']);}return await _0x409487['json']();},async 'createAutomation'(_0x4775df){const _0x1769ad=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4775df||{})});if(!_0x1769ad['ok']){const _0x5c6b2b=await _0x1769ad['json']()['catch'](()=>({}));throw new Error(_0x5c6b2b['message']||_0x5c6b2b['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x1769ad['statusText']);}return await _0x1769ad['json']();},async 'updateAutomation'(_0x621775,_0x1d1f66){const _0x5a94ab=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x621775),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1d1f66||{})});if(!_0x5a94ab['ok']){const _0x4a8c70=await _0x5a94ab['json']()['catch'](()=>({}));throw new Error(_0x4a8c70['message']||_0x4a8c70['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x5a94ab['statusText']);}return await _0x5a94ab['json']();},async 'deleteAutomation'(_0x57bb56){const _0x341dc6=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x57bb56),{'method':'DELETE'});if(!_0x341dc6['ok']){const _0x220f58=await _0x341dc6['json']()['catch'](()=>({}));throw new Error(_0x220f58['message']||_0x220f58['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x341dc6['statusText']);}return await _0x341dc6['json']();},async 'triggerAutomation'(_0x3496c2){const _0x26a2c0=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3496c2)+'/trigger',{'method':'POST'});if(!_0x26a2c0['ok']){const _0x3289d1=await _0x26a2c0['json']()['catch'](()=>({}));throw new Error(_0x3289d1['message']||_0x3289d1['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x26a2c0['statusText']);}return await _0x26a2c0['json']();},async 'setAutomationEnabled'(_0x5dad51,_0x57345b){const _0x11b61b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5dad51)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x57345b})});if(!_0x11b61b['ok']){const _0x5ecd6e=await _0x11b61b['json']()['catch'](()=>({}));throw new Error(_0x5ecd6e['message']||_0x5ecd6e['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x11b61b['statusText']);}return await _0x11b61b['json']();},async 'getAutomationHistory'(_0x1ecd4a,_0x3ecd09=0x32){const _0x2e7f03=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1ecd4a)+'/history?limit='+encodeURIComponent(String(_0x3ecd09)));if(!_0x2e7f03['ok']){const _0x291db1=await _0x2e7f03['json']()['catch'](()=>({}));throw new Error(_0x291db1['message']||_0x291db1['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x2e7f03['statusText']);}return await _0x2e7f03['json']();},async 'getTask'(_0x1b287b,_0x3da580={}){const _0x257a84=new URLSearchParams();if(_0x3da580['include']){const _0x4f43c7=Array['isArray'](_0x3da580['include'])?_0x3da580['include']['join'](','):String(_0x3da580['include']);if(_0x4f43c7)_0x257a84['set']('include',_0x4f43c7);}const _0x59af6f=await fetch(API_BASE+'/tasks/'+_0x1b287b+(_0x257a84['toString']()?'?'+_0x257a84['toString']():''));if(!_0x59af6f['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x59af6f['statusText']);return await _0x59af6f['json']();},async 'getTaskResults'(_0x784daf){const _0xf95d00=await fetch(API_BASE+'/tasks/'+_0x784daf+'/results');if(!_0xf95d00['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0xf95d00['statusText']);return await _0xf95d00['json']();},async 'getTaskPatches'(_0x21098c){const _0x319671=await fetch(API_BASE+'/tasks/'+_0x21098c+'/patches');if(!_0x319671['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x319671['statusText']);return await _0x319671['json']();},async 'getTaskAttachments'(_0x10ca8a){const _0x5cc092=await fetch(API_BASE+'/tasks/'+_0x10ca8a+'/attachments');if(!_0x5cc092['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x5cc092['statusText']);return await _0x5cc092['json']();},async 'uploadAttachments'(_0x15193a,_0x19e0e3){const _0x474e49=new FormData();for(const _0x5369bd of _0x19e0e3){_0x474e49['append']('attachments',_0x5369bd);}const _0x4207e4=await fetch(API_BASE+'/tasks/'+_0x15193a+'/attachments',{'method':'POST','body':_0x474e49});if(!_0x4207e4['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x4207e4['statusText']);return await _0x4207e4['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2c0d9c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2c0d9c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2c0d9c['json']();}catch(_0x39a76f){return{'available':![],'reason':_0x39a76f['message']};}},async 'generateTaskName'(_0x47a153){try{const _0x1189dd=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x47a153})});return await _0x1189dd['json']();}catch(_0x3c51f5){return{'success':![],'error':_0x3c51f5['message']};}},async 'createTask'(_0x5e9f10){let _0x901171,_0x23e898={};if(_0x5e9f10['files']&&_0x5e9f10['files']['length']>0x0){const _0x124aa3=new FormData();for(const [_0x1f6084,_0x147e3c]of Object['entries'](_0x5e9f10)){if(_0x1f6084!=='files'){if(_0x147e3c==null)continue;typeof _0x147e3c==='object'?_0x124aa3['append'](_0x1f6084,JSON['stringify'](_0x147e3c)):_0x124aa3['append'](_0x1f6084,String(_0x147e3c));}}for(const _0x17ffbb of _0x5e9f10['files']){_0x124aa3['append']('attachments',_0x17ffbb);}_0x901171=_0x124aa3;}else _0x23e898['Content-Type']='application/json',_0x901171=JSON['stringify'](_0x5e9f10);const _0x59bf21=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x23e898,'body':_0x901171});if(!_0x59bf21['ok']){const _0x5a8b5a=await _0x59bf21['json'](),_0x624fd2=new Error(_0x5a8b5a['error']||'Failed\x20to\x20create\x20task:\x20'+_0x59bf21['statusText']),{message:_0x5d8729,..._0x4df766}=_0x5a8b5a;Object['assign'](_0x624fd2,_0x4df766);throw _0x624fd2;}return await _0x59bf21['json']();},async 'createTestTask'(_0x26ce61){const _0xed67e6=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x26ce61)});if(!_0xed67e6['ok']){const _0x3e17da=await _0xed67e6['json']();throw new Error(_0x3e17da['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0xed67e6['statusText']);}return await _0xed67e6['json']();},async 'createEphemeralTest'(_0x678050){const _0x5c5365=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x678050)});if(!_0x5c5365['ok']){const _0x1afd2a=await _0x5c5365['json']();throw new Error(_0x1afd2a['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x5c5365['statusText']);}return await _0x5c5365['json']();},async 'createDeployTask'(_0x30cae8){const _0xe9fb86=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x30cae8)});if(!_0xe9fb86['ok']){const _0x4168f8=await _0xe9fb86['json']();throw new Error(_0x4168f8['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0xe9fb86['statusText']);}return await _0xe9fb86['json']();},async 'getEnvironments'(){const _0x9fee57=await fetch(API_BASE+'/environments');if(!_0x9fee57['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x9fee57['statusText']);return await _0x9fee57['json']();},async 'getEnvironment'(_0x556b94){const _0x1638d8=await fetch(API_BASE+'/environments/'+_0x556b94);if(!_0x1638d8['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x1638d8['statusText']);return await _0x1638d8['json']();},async 'getEnvironmentRepoHistory'(_0x1d6ed7,_0x19aaa6,_0x171bd4={}){if(!_0x1d6ed7||!_0x19aaa6)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x4a2844=new URLSearchParams();if(_0x171bd4['limit'])_0x4a2844['set']('limit',String(_0x171bd4['limit']));if(_0x171bd4['offset'])_0x4a2844['set']('offset',String(_0x171bd4['offset']));if(_0x171bd4['search'])_0x4a2844['set']('search',String(_0x171bd4['search']));if(_0x171bd4['branch'])_0x4a2844['set']('branch',String(_0x171bd4['branch']));const _0x2b6fb1=API_BASE+'/environments/'+encodeURIComponent(_0x1d6ed7)+'/repos/'+encodeURIComponent(_0x19aaa6)+'/git/history',_0x47f3b9=await fetch(''+_0x2b6fb1+(_0x4a2844['toString']()?'?'+_0x4a2844['toString']():''));if(!_0x47f3b9['ok']){const _0x248cd1=await _0x47f3b9['json']()['catch'](()=>({}));throw new Error(_0x248cd1['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x47f3b9['statusText']);}return await _0x47f3b9['json']();},async 'getEnvironmentRepoCommit'(_0x3c5694,_0x55b269,_0x2fd319){if(!_0x3c5694||!_0x55b269||!_0x2fd319)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xfe06a5=API_BASE+'/environments/'+encodeURIComponent(_0x3c5694)+'/repos/'+encodeURIComponent(_0x55b269)+'/git/commits/'+encodeURIComponent(_0x2fd319),_0x864cd3=await fetch(_0xfe06a5);if(!_0x864cd3['ok']){const _0x3be633=await _0x864cd3['json']()['catch'](()=>({}));throw new Error(_0x3be633['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x864cd3['statusText']);}return await _0x864cd3['json']();},async 'getEnvironmentRepoBranches'(_0x581522,_0xd7601){if(!_0x581522||!_0xd7601)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x54e01=API_BASE+'/environments/'+encodeURIComponent(_0x581522)+'/repos/'+encodeURIComponent(_0xd7601)+'/git/branches',_0x1fee0f=await fetch(_0x54e01);if(!_0x1fee0f['ok']){const _0x3acae4=await _0x1fee0f['json']()['catch'](()=>({}));throw new Error(_0x3acae4['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x1fee0f['statusText']);}return await _0x1fee0f['json']();},async 'revertEnvironmentRepoCommit'(_0x5777fe,_0x179975,_0x2ebe46,_0x3d05c9={}){if(!_0x5777fe||!_0x179975||!_0x2ebe46)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x2a09a7=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x5777fe)+'/repos/'+encodeURIComponent(_0x179975)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x2ebe46,..._0x3d05c9})});if(!_0x2a09a7['ok']){const _0x3badeb=await _0x2a09a7['json']()['catch'](()=>({}));throw new Error(_0x3badeb['message']||_0x3badeb['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x2a09a7['statusText']);}return await _0x2a09a7['json']();},async 'getTemplates'(_0x166e1a={}){const _0x4035f9=new URLSearchParams();if(_0x166e1a['include']){const _0x24cde3=Array['isArray'](_0x166e1a['include'])?_0x166e1a['include']['join'](','):String(_0x166e1a['include']);if(_0x24cde3)_0x4035f9['set']('include',_0x24cde3);}const _0x13d35d=await fetch(API_BASE+'/templates'+(_0x4035f9['toString']()?'?'+_0x4035f9['toString']():''));if(!_0x13d35d['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x13d35d['statusText']);return await _0x13d35d['json']();},async 'getTemplatesForEnvironment'(_0x55e2c4,_0x168198={}){if(!_0x55e2c4)throw new Error('Environment\x20name\x20is\x20required');const _0x5b6091=new URLSearchParams();if(_0x168198['include']){const _0x5ae757=Array['isArray'](_0x168198['include'])?_0x168198['include']['join'](','):String(_0x168198['include']);if(_0x5ae757)_0x5b6091['set']('include',_0x5ae757);}const _0x3233fc=await fetch(API_BASE+'/templates/'+_0x55e2c4+(_0x5b6091['toString']()?'?'+_0x5b6091['toString']():''));if(!_0x3233fc['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x55e2c4+':\x20'+_0x3233fc['statusText']);return await _0x3233fc['json']();},async 'getTemplate'(_0x2c548d,_0x4a2a0b,_0x2f0ad4={}){if(!_0x2c548d||!_0x4a2a0b)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x2131cb=new URLSearchParams();if(_0x2f0ad4['include']){const _0x24519f=Array['isArray'](_0x2f0ad4['include'])?_0x2f0ad4['include']['join'](','):String(_0x2f0ad4['include']);if(_0x24519f)_0x2131cb['set']('include',_0x24519f);}const _0x3dc464=await fetch(API_BASE+'/templates/'+_0x2c548d+'/'+_0x4a2a0b+(_0x2131cb['toString']()?'?'+_0x2131cb['toString']():''));if(!_0x3dc464['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x3dc464['statusText']);return await _0x3dc464['json']();},async 'getTaskLogs'(_0x17f1e5,_0x20cd4e={}){if(!_0x17f1e5)throw new Error('Task\x20ID\x20is\x20required');const _0x35ea78=new URLSearchParams();_0x20cd4e['tail']&&_0x35ea78['set']('tail',String(_0x20cd4e['tail']));const _0x3493e8=await fetch(API_BASE+'/tasks/'+_0x17f1e5+'/logs'+(_0x35ea78['toString']()?'?'+_0x35ea78['toString']():''));if(!_0x3493e8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x3493e8['statusText']);return await _0x3493e8['text']();},async 'getContainers'(){const _0x198a95=await fetch(API_BASE+'/containers');if(!_0x198a95['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x198a95['statusText']);return await _0x198a95['json']();},async 'getContainer'(_0x5212d0){const _0x35c38c=await fetch(API_BASE+'/containers/'+_0x5212d0);if(!_0x35c38c['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x35c38c['statusText']);return await _0x35c38c['json']();},async 'startInteractiveContainer'(_0x11a25f){const _0xf00b5f=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x11a25f)});if(!_0xf00b5f['ok']){const _0x2326ff=await _0xf00b5f['json']()['catch'](()=>({}));throw new Error(_0x2326ff['message']||'Failed\x20to\x20start\x20container:\x20'+_0xf00b5f['statusText']);}return await _0xf00b5f['json']();},async 'startContainerCodeServer'(_0x325d5c,_0x2fce36={}){if(!_0x325d5c)throw new Error('Container\x20ID\x20is\x20required');const _0x216a01=new URLSearchParams();_0x2fce36['theme']&&_0x216a01['set']('theme',_0x2fce36['theme']);const _0x3feaaa=await fetch(API_BASE+'/containers/'+_0x325d5c+'/code-server'+(_0x216a01['toString']()?'?'+_0x216a01['toString']():'')),_0x79d359=await _0x3feaaa['json']()['catch'](()=>({}));if(!_0x3feaaa['ok'])throw new Error(_0x79d359['message']||_0x79d359['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3feaaa['statusText']);return _0x79d359;},async 'stopContainer'(_0x459c95){const _0x289487=await fetch(API_BASE+'/containers/'+_0x459c95,{'method':'DELETE'});if(!_0x289487['ok']){const _0x2a1a68=await _0x289487['json']()['catch'](()=>({}));throw new Error(_0x2a1a68['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x289487['statusText']);}return await _0x289487['json']();},async 'stopTask'(_0x251c1c){if(!_0x251c1c)throw new Error('Task\x20ID\x20is\x20required');const _0x277837=await fetch(API_BASE+'/tasks/'+_0x251c1c+'/stop',{'method':'POST'});if(!_0x277837['ok']){const _0x2bedf1=await _0x277837['json']()['catch'](()=>({}));throw new Error(_0x2bedf1['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x277837['statusText']);}return await _0x277837['json']();},async 'interruptTask'(_0x5a620a){if(!_0x5a620a)throw new Error('Task\x20ID\x20is\x20required');const _0x210c2a=await fetch(API_BASE+'/tasks/'+_0x5a620a+'/interrupt',{'method':'POST'});if(!_0x210c2a['ok']){const _0x5c3195=await _0x210c2a['json']()['catch'](()=>({}));throw new Error(_0x5c3195['error']||_0x5c3195['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x210c2a['statusText']);}return await _0x210c2a['json']();},async 'startTask'(_0x33065b){if(!_0x33065b)throw new Error('Task\x20ID\x20is\x20required');const _0xe12d9e=await fetch(API_BASE+'/tasks/'+_0x33065b+'/start',{'method':'POST'});if(!_0xe12d9e['ok']){const _0x18d49c=await _0xe12d9e['json']()['catch'](()=>({}));throw new Error(_0x18d49c['error']||'Failed\x20to\x20start\x20task:\x20'+_0xe12d9e['statusText']);}return await _0xe12d9e['json']();},async 'deleteTask'(_0x3ca33d){if(!_0x3ca33d)throw new Error('Task\x20ID\x20is\x20required');const _0x358cbf=await fetch(API_BASE+'/tasks/'+_0x3ca33d,{'method':'DELETE'});if(!_0x358cbf['ok']){const _0x46d940=await _0x358cbf['json']()['catch'](()=>({}));throw new Error(_0x46d940['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x358cbf['statusText']);}return await _0x358cbf['json']();},async 'refreshTasksFromDisk'(){const _0x1fa2ee=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x1fa2ee['ok']){const _0x59741d=await _0x1fa2ee['json']()['catch'](()=>({}));throw new Error(_0x59741d['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x1fa2ee['statusText']);}return await _0x1fa2ee['json']();},async 'approveTask'(_0x47673f,_0x4ec41d={}){if(!_0x47673f)throw new Error('Task\x20ID\x20is\x20required');const _0x13bc09={'commit_message':_0x4ec41d['commit_message']||'','pull':_0x4ec41d['pull']??![],'push':_0x4ec41d['push']??![],'conflict_strategy':_0x4ec41d['conflict_strategy']||'rebase'};_0x4ec41d['new_branch']&&(_0x13bc09['new_branch']=_0x4ec41d['new_branch']);const _0x1013bf=await fetch(API_BASE+'/tasks/'+_0x47673f+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x13bc09)});if(!_0x1013bf['ok']){const _0x11b2ce=await _0x1013bf['json']()['catch'](()=>({})),_0x18bfa4=Array['isArray'](_0x11b2ce['results'])?_0x11b2ce['results']['filter'](_0xb1f3b4=>!_0xb1f3b4['success']&&(_0xb1f3b4['error']||_0xb1f3b4['error_code'])):[],_0x498f6f=_0x18bfa4[0x0]||null;let _0x3e7e60=_0x11b2ce['error']||_0x11b2ce['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x1013bf['statusText'];if(_0x498f6f?.['error'])_0x3e7e60=_0x498f6f['error'];else _0x11b2ce['message']&&(_0x3e7e60=_0x11b2ce['message']);const _0x4ad3d4=new Error(_0x3e7e60);_0x4ad3d4['code']=_0x498f6f?.['error_code']||_0x11b2ce['error_code']||null,_0x4ad3d4['details']=_0x498f6f?.['details']||_0x11b2ce['details']||null,_0x4ad3d4['tokenExpiryDays']=_0x498f6f?.['token_expiry_days']||_0x11b2ce['token_expiry_days']||null,_0x4ad3d4['hasConflicts']=_0x11b2ce['results']?.['some'](_0x562108=>_0x562108['conflict'])||![];throw _0x4ad3d4;}return await _0x1013bf['json']();},async 'getPullRequestInfo'(_0x187ec5){if(!_0x187ec5)throw new Error('Task\x20ID\x20is\x20required');const _0x5d13af=await fetch(API_BASE+'/tasks/'+_0x187ec5+'/pull-request-info');if(!_0x5d13af['ok']){const _0xbd61bd=await _0x5d13af['json']()['catch'](()=>({}));throw new Error(_0xbd61bd['error']||_0xbd61bd['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x5d13af['statusText']);}return await _0x5d13af['json']();},async 'createPullRequests'(_0x199923,_0x3359a8){if(!_0x199923)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3359a8||!Array['isArray'](_0x3359a8))throw new Error('repos\x20array\x20is\x20required');const _0x66bc15=await fetch(API_BASE+'/tasks/'+_0x199923+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3359a8})});if(!_0x66bc15['ok']){const _0x27b5a6=await _0x66bc15['json']()['catch'](()=>({}));let _0x398be0=_0x27b5a6['error']||_0x27b5a6['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x66bc15['statusText'];if(_0x27b5a6['results']&&Array['isArray'](_0x27b5a6['results'])){const _0x190181=_0x27b5a6['results']['filter'](_0x5c40c6=>!_0x5c40c6['success']&&_0x5c40c6['error']);_0x190181['length']>0x0&&(_0x398be0=_0x190181[0x0]['error']);}throw new Error(_0x398be0);}return await _0x66bc15['json']();},async 'syncRepos'(_0x2bfd7c){if(!_0x2bfd7c)throw new Error('Task\x20ID\x20is\x20required');const _0x5da443=await fetch(API_BASE+'/tasks/'+_0x2bfd7c+'/sync-repos',{'method':'POST'});if(!_0x5da443['ok']){const _0x1a9b82=await _0x5da443['json']()['catch'](()=>({}));throw new Error(_0x1a9b82['error']||_0x1a9b82['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5da443['statusText']);}return await _0x5da443['json']();},async 'getIbmiSyncInfo'(_0x45a4e7){if(!_0x45a4e7)throw new Error('Task\x20ID\x20is\x20required');const _0x40588f=await fetch(API_BASE+'/tasks/'+_0x45a4e7+'/ibmi-sync-info');if(!_0x40588f['ok']){const _0x1ba46b=await _0x40588f['json']()['catch'](()=>({}));throw new Error(_0x1ba46b['error']||_0x1ba46b['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x40588f['json']();},async 'getSyncFiles'(_0x519da5){if(!_0x519da5)throw new Error('Task\x20ID\x20is\x20required');const _0x3e4df=await fetch(API_BASE+'/tasks/'+_0x519da5+'/sync-to-ibmi/files');if(!_0x3e4df['ok']){const _0x2c4e1a=await _0x3e4df['json']()['catch'](()=>({}));throw new Error(_0x2c4e1a['error']||_0x2c4e1a['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x3e4df['json']();},async 'syncToIbmi'(_0x4a22b1,_0x5795b2,_0x121ce1=null,_0x468ed9=null,_0x450da5=null){if(!_0x4a22b1)throw new Error('Task\x20ID\x20is\x20required');const _0x391318={'library':_0x5795b2};if(_0x121ce1)_0x391318['user']=_0x121ce1;if(_0x468ed9)_0x391318['password']=_0x468ed9;if(_0x450da5)_0x391318['files']=_0x450da5;const _0x29313c=await fetch(API_BASE+'/tasks/'+_0x4a22b1+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x391318)});if(!_0x29313c['ok']){const _0x1d11b1=await _0x29313c['json']()['catch'](()=>({}));throw new Error(_0x1d11b1['error']||_0x1d11b1['message']||'Sync\x20failed');}return await _0x29313c['json']();},async 'getIbmiSyncLog'(_0x3d052f){if(!_0x3d052f)throw new Error('Task\x20ID\x20is\x20required');const _0x576e63=await fetch(API_BASE+'/tasks/'+_0x3d052f+'/ibmi-sync-log');if(!_0x576e63['ok']){const _0xfa9e38=await _0x576e63['json']()['catch'](()=>({}));throw new Error(_0xfa9e38['error']||_0xfa9e38['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x576e63['json']();},async 'pullChanges'(_0x3fc093){if(!_0x3fc093)throw new Error('Task\x20ID\x20is\x20required');const _0xacb0c5=await fetch(API_BASE+'/tasks/'+_0x3fc093+'/pull-changes',{'method':'POST'});if(!_0xacb0c5['ok']){const _0x4cf45c=await _0xacb0c5['json']()['catch'](()=>({})),_0x174380=new Error(_0x4cf45c['message']||_0x4cf45c['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0xacb0c5['statusText']);_0x174380['code']=_0x4cf45c['error_code']||null,_0x174380['details']=_0x4cf45c['details']||null,_0x174380['tokenExpiryDays']=_0x4cf45c['token_expiry_days']||null;throw _0x174380;}return await _0xacb0c5['json']();},async 'readFile'(_0x271533,_0x2bd817){if(!_0x271533)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2bd817)throw new Error('File\x20path\x20is\x20required');const _0x56bf45=await fetch(API_BASE+'/tasks/'+_0x271533+'/files?path='+encodeURIComponent(_0x2bd817));if(!_0x56bf45['ok']){const _0xa886a7=await _0x56bf45['json']()['catch'](()=>({}));throw new Error(_0xa886a7['error']||_0xa886a7['message']||'Failed\x20to\x20read\x20file:\x20'+_0x56bf45['statusText']);}return await _0x56bf45['json']();},'getTaskFileDownloadUrl'(_0x961e0a,_0x304684){if(!_0x961e0a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x304684)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x961e0a+'/files/download?path='+encodeURIComponent(_0x304684);},async 'writeFile'(_0x56e33c,_0x2a0821,_0x16dc8b){if(!_0x56e33c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2a0821)throw new Error('File\x20path\x20is\x20required');if(_0x16dc8b===undefined)throw new Error('Content\x20is\x20required');const _0x10d4fe=await fetch(API_BASE+'/tasks/'+_0x56e33c+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x2a0821,'content':_0x16dc8b})});if(!_0x10d4fe['ok']){const _0x37fdd0=await _0x10d4fe['json']()['catch'](()=>({}));throw new Error(_0x37fdd0['error']||_0x37fdd0['message']||'Failed\x20to\x20write\x20file:\x20'+_0x10d4fe['statusText']);}return await _0x10d4fe['json']();},async 'uploadTaskFiles'(_0x2b25a0,_0x1eec49,_0x421a9d){if(!_0x2b25a0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1eec49)throw new Error('Target\x20directory\x20is\x20required');if(!_0x421a9d||_0x421a9d['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x3b4663=new FormData();_0x3b4663['append']('targetDir',_0x1eec49);for(const _0x42d6a8 of _0x421a9d){_0x3b4663['append']('files',_0x42d6a8,_0x42d6a8['name']);}const _0x3689d4=await fetch(API_BASE+'/tasks/'+_0x2b25a0+'/files/upload',{'method':'POST','body':_0x3b4663});if(!_0x3689d4['ok']){const _0x38dd65=await _0x3689d4['json']()['catch'](()=>({}));throw new Error(_0x38dd65['error']||_0x38dd65['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x3689d4['statusText']);}return await _0x3689d4['json']();},async 'createDirectory'(_0x430de3,_0xbde17e){if(!_0x430de3)throw new Error('Task\x20ID\x20is\x20required');if(!_0xbde17e)throw new Error('Directory\x20path\x20is\x20required');const _0x3bc373=await fetch(API_BASE+'/tasks/'+_0x430de3+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xbde17e})});if(!_0x3bc373['ok']){const _0x503f93=await _0x3bc373['json']()['catch'](()=>({}));throw new Error(_0x503f93['error']||_0x503f93['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3bc373['statusText']);}return await _0x3bc373['json']();},async 'renamePath'(_0x2a7b32,_0x5ef647,_0x502785){if(!_0x2a7b32)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5ef647)throw new Error('Source\x20path\x20is\x20required');if(!_0x502785)throw new Error('Destination\x20path\x20is\x20required');const _0x2e3321=await fetch(API_BASE+'/tasks/'+_0x2a7b32+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x5ef647,'newPath':_0x502785})});if(!_0x2e3321['ok']){const _0x5ca36b=await _0x2e3321['json']()['catch'](()=>({}));throw new Error(_0x5ca36b['error']||_0x5ca36b['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x2e3321['statusText']);}return await _0x2e3321['json']();},async 'deleteFile'(_0x46ef02,_0x731a39){if(!_0x46ef02)throw new Error('Task\x20ID\x20is\x20required');if(!_0x731a39)throw new Error('File\x20path\x20is\x20required');const _0x4f159d=await fetch(API_BASE+'/tasks/'+_0x46ef02+'/files?path='+encodeURIComponent(_0x731a39),{'method':'DELETE'});if(!_0x4f159d['ok']){const _0x45e069=await _0x4f159d['json']()['catch'](()=>({}));throw new Error(_0x45e069['error']||_0x45e069['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x4f159d['statusText']);}return await _0x4f159d['json']();},async 'deleteDirectory'(_0x53a4cc,_0x175cc0){if(!_0x53a4cc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x175cc0)throw new Error('Directory\x20path\x20is\x20required');const _0x29ee47=await fetch(API_BASE+'/tasks/'+_0x53a4cc+'/files/directory?path='+encodeURIComponent(_0x175cc0),{'method':'DELETE'});if(!_0x29ee47['ok']){const _0x4bea1f=await _0x29ee47['json']()['catch'](()=>({}));throw new Error(_0x4bea1f['error']||_0x4bea1f['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x29ee47['statusText']);}return await _0x29ee47['json']();},async 'discardFile'(_0x58831a,_0x237b20,_0x19f695){if(!_0x58831a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x237b20)throw new Error('File\x20path\x20is\x20required');if(!_0x19f695)throw new Error('Repository\x20path\x20is\x20required');const _0x113dd8=await fetch(API_BASE+'/tasks/'+_0x58831a+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x237b20,'repoPath':_0x19f695})});if(!_0x113dd8['ok']){const _0x486a72=await _0x113dd8['json']()['catch'](()=>({}));throw new Error(_0x486a72['error']||_0x486a72['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x113dd8['statusText']);}return await _0x113dd8['json']();},async 'followUpTask'(_0x298bc3,_0x3e01a0={}){if(!_0x298bc3)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3e01a0['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x26c07d,_0x388b23={};if(_0x3e01a0['files']&&_0x3e01a0['files']['length']>0x0){const _0x23bfdd=new FormData();_0x23bfdd['append']('instructions',_0x3e01a0['instructions']);for(const _0x1f2810 of _0x3e01a0['files']){_0x23bfdd['append']('attachments',_0x1f2810);}_0x26c07d=_0x23bfdd;}else _0x388b23['Content-Type']='application/json',_0x26c07d=JSON['stringify']({'instructions':_0x3e01a0['instructions']});const _0x38edb3=await fetch(API_BASE+'/tasks/'+_0x298bc3+'/follow-up',{'method':'POST','headers':_0x388b23,'body':_0x26c07d});if(!_0x38edb3['ok']){const _0x32119c=await _0x38edb3['json']()['catch'](()=>({}));throw new Error(_0x32119c['error']||_0x32119c['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x38edb3['statusText']);}return await _0x38edb3['json']();},async 'getTaskRewindPoints'(_0x2f0b95){if(!_0x2f0b95)throw new Error('Task\x20ID\x20is\x20required');const _0x2b667a=await fetch(API_BASE+'/tasks/'+_0x2f0b95+'/rewind-points');if(!_0x2b667a['ok']){const _0x13251f=await _0x2b667a['json']()['catch'](()=>({}));throw new Error(_0x13251f['error']||_0x13251f['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x2b667a['statusText']);}return await _0x2b667a['json']();},async 'rewindTask'(_0x4e23d4,_0x394220={}){if(!_0x4e23d4)throw new Error('Task\x20ID\x20is\x20required');const _0x288cc1=Number['isInteger'](_0x394220['targetFollowUpCount'])?_0x394220['targetFollowUpCount']:0x0,_0x31994f={'targetFollowUpCount':_0x288cc1};typeof _0x394220['instructions']==='string'&&_0x394220['instructions']['trim']()&&(_0x31994f['instructions']=_0x394220['instructions']['trim']());typeof _0x394220['rewindFiles']==='boolean'&&(_0x31994f['rewindFiles']=_0x394220['rewindFiles']);const _0x3e9a34=await fetch(API_BASE+'/tasks/'+_0x4e23d4+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x31994f)});if(!_0x3e9a34['ok']){const _0x2a934e=await _0x3e9a34['json']()['catch'](()=>({}));throw new Error(_0x2a934e['error']||_0x2a934e['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x3e9a34['statusText']);}return await _0x3e9a34['json']();},async 'login'(_0x21b0be,_0x2f2edd){const _0x1d6327=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x21b0be,'password':_0x2f2edd})});if(!_0x1d6327['ok']){const _0x7d4f87=await _0x1d6327['json']();throw new Error(_0x7d4f87['message']||'Login\x20failed');}return await _0x1d6327['json']();},async 'logout'(){const _0x37b89=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x37b89['ok']){const _0x568852=await _0x37b89['json']();throw new Error(_0x568852['message']||'Logout\x20failed');}return await _0x37b89['json']();},async 'getCurrentUser'(){const _0x9a4594=await fetch(API_BASE+'/auth/me');if(!_0x9a4594['ok'])throw new Error('Not\x20authenticated');const _0x25f91a=await _0x9a4594['json']();return _0x25f91a['user'];},async 'getRolesInfo'(){const _0x4aa5d0=await fetch(API_BASE+'/users/roles');if(!_0x4aa5d0['ok']){const _0x5d3fe2=await _0x4aa5d0['json']();throw new Error(_0x5d3fe2['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x4aa5d0['json']();},async 'getUsers'(){const _0x1b404a=await fetch(API_BASE+'/users');if(!_0x1b404a['ok']){const _0x356222=await _0x1b404a['json']();throw new Error(_0x356222['message']||'Failed\x20to\x20get\x20users');}return await _0x1b404a['json']();},async 'getUser'(_0x1ae7a0){const _0x1a08dc=await fetch(API_BASE+'/users/'+_0x1ae7a0);if(!_0x1a08dc['ok']){const _0x218b68=await _0x1a08dc['json']();throw new Error(_0x218b68['message']||'Failed\x20to\x20get\x20user');}return await _0x1a08dc['json']();},async 'createUser'(_0x43196d){const _0x3255f4=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43196d)});if(!_0x3255f4['ok']){const _0x366d12=await _0x3255f4['json']();throw new Error(_0x366d12['message']||'Failed\x20to\x20create\x20user');}return await _0x3255f4['json']();},async 'updateUser'(_0x3f1708,_0x598158){const _0x315ae0=await fetch(API_BASE+'/users/'+_0x3f1708,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x598158)});if(!_0x315ae0['ok']){const _0x35af9d=await _0x315ae0['json']();throw new Error(_0x35af9d['message']||'Failed\x20to\x20update\x20user');}return await _0x315ae0['json']();},async 'deleteUser'(_0x122072){const _0x5b409a=await fetch(API_BASE+'/users/'+_0x122072,{'method':'DELETE'});if(!_0x5b409a['ok']){const _0x49a880=await _0x5b409a['json']();throw new Error(_0x49a880['message']||'Failed\x20to\x20delete\x20user');}return await _0x5b409a['json']();},async 'stopAllContainers'(){const _0x2a1999=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x331294=await _0x2a1999['json']()['catch'](()=>({}));if(!_0x2a1999['ok'])throw new Error(_0x331294['message']||_0x331294['error']||'Failed\x20to\x20stop\x20containers');return _0x331294;},async 'removeStoppedContainers'(){const _0x2b64ef=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x3b539c=await _0x2b64ef['json']()['catch'](()=>({}));if(!_0x2b64ef['ok'])throw new Error(_0x3b539c['message']||_0x3b539c['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x3b539c;},async 'pruneDockerResources'(){const _0x1df644=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x17364a=await _0x1df644['json']()['catch'](()=>({}));if(!_0x1df644['ok'])throw new Error(_0x17364a['message']||_0x17364a['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x17364a;},async 'getUpdateSettings'(){const _0x4ac69a=await fetch(API_BASE+'/health/update-settings'),_0x277808=await _0x4ac69a['json']()['catch'](()=>({}));if(!_0x4ac69a['ok'])throw new Error(_0x277808['message']||_0x277808['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x277808;},async 'applyServerUpdate'(_0x51e768){const _0x501720=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x51e768})}),_0x5e2802=await _0x501720['json']()['catch'](()=>({}));if(!_0x501720['ok']){const _0x66cae4=new Error(_0x5e2802['message']||_0x5e2802['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x5e2802['output']!==undefined)_0x66cae4['output']=_0x5e2802['output'];if(_0x5e2802['error']!==undefined)_0x66cae4['commandError']=_0x5e2802['error'];throw _0x66cae4;}return _0x5e2802;},async 'restartServer'(){const _0x588cbb=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0xfe9328=await _0x588cbb['json']()['catch'](()=>({}));if(!_0x588cbb['ok'])throw new Error(_0xfe9328['message']||_0xfe9328['error']||'Failed\x20to\x20restart\x20server');return _0xfe9328;},async 'getDockerContainers'(){const _0x53de52=await fetch(API_BASE+'/health/containers'),_0x34f664=await _0x53de52['json']()['catch'](()=>({}));if(!_0x53de52['ok'])throw new Error(_0x34f664['message']||_0x34f664['error']||'Failed\x20to\x20load\x20containers');return _0x34f664;},async 'getDockerImages'(){const _0x5600ae=await fetch(API_BASE+'/health/docker/images'),_0x5a1e7d=await _0x5600ae['json']()['catch'](()=>({}));if(!_0x5600ae['ok'])throw new Error(_0x5a1e7d['message']||_0x5a1e7d['error']||'Failed\x20to\x20load\x20images');return _0x5a1e7d;},async 'getDockerVolumes'(){const _0x532656=await fetch(API_BASE+'/health/docker/volumes'),_0x482e34=await _0x532656['json']()['catch'](()=>({}));if(!_0x532656['ok'])throw new Error(_0x482e34['message']||_0x482e34['error']||'Failed\x20to\x20load\x20volumes');return _0x482e34;},async 'getActiveSessions'(){const _0x2c14e3=await fetch(API_BASE+'/health/sessions'),_0x2b4d23=await _0x2c14e3['json']()['catch'](()=>({}));if(!_0x2c14e3['ok'])throw new Error(_0x2b4d23['message']||_0x2b4d23['error']||'Failed\x20to\x20load\x20sessions');return _0x2b4d23;},async 'getSystemInfo'(){const _0x5e5fd5=await fetch(API_BASE+'/health/system'),_0x2d6237=await _0x5e5fd5['json']()['catch'](()=>({}));if(!_0x5e5fd5['ok'])throw new Error(_0x2d6237['message']||_0x2d6237['error']||'Failed\x20to\x20load\x20system\x20info');return _0x2d6237;},async 'stopDockerContainer'(_0x53fd38){const _0x2c6357=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x53fd38)+'/stop',{'method':'POST'}),_0x5cd856=await _0x2c6357['json']()['catch'](()=>({}));if(!_0x2c6357['ok'])throw new Error(_0x5cd856['message']||_0x5cd856['error']||'Failed\x20to\x20stop\x20container');return _0x5cd856;},async 'removeDockerContainer'(_0x1d6bdf){const _0x13230d=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x1d6bdf),{'method':'DELETE'}),_0x34bbd6=await _0x13230d['json']()['catch'](()=>({}));if(!_0x13230d['ok'])throw new Error(_0x34bbd6['message']||_0x34bbd6['error']||'Failed\x20to\x20remove\x20container');return _0x34bbd6;},async 'createPasswordToken'(_0x15cbc1,_0x38117c='setup',_0x21bfb2=![]){const _0x70ba4f=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x15cbc1,'type':_0x38117c,'sendEmail':_0x21bfb2})});if(!_0x70ba4f['ok']){const _0x2344dd=await _0x70ba4f['json']();throw new Error(_0x2344dd['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x70ba4f['json']();},async 'getEmailConfig'(){const _0x227328=await fetch(API_BASE+'/password/email-config');if(!_0x227328['ok']){const _0x347d4e=await _0x227328['json']();throw new Error(_0x347d4e['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x227328['json']();},async 'updateTaskName'(_0x377277,_0xbda96d){const _0x4b282e=await fetch(API_BASE+'/tasks/'+_0x377277,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xbda96d})});if(!_0x4b282e['ok']){const _0x4f2c34=await _0x4b282e['json']();throw new Error(_0x4f2c34['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x4b282e['json']();},async 'updateTaskAlias'(_0x58958b,_0x2d1e63){const _0x5e4939=await fetch(API_BASE+'/tasks/'+_0x58958b,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'alias':_0x2d1e63})});if(!_0x5e4939['ok']){const _0x246547=await _0x5e4939['json']();throw new Error(_0x246547['error']||'Failed\x20to\x20update\x20task\x20alias');}return await _0x5e4939['json']();},async 'pinTask'(_0x3d4a21,_0x5d2cdd,_0x29f15d=null){if(!_0x3d4a21)throw new Error('Task\x20ID\x20is\x20required');const _0x44bac3={'pinned':_0x5d2cdd};_0x29f15d&&_0x29f15d['length']>0x0&&(_0x44bac3['additionalTaskIds']=_0x29f15d);const _0x42db16=await fetch(API_BASE+'/tasks/'+_0x3d4a21+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x44bac3)});if(!_0x42db16['ok']){const _0xc94ead=await _0x42db16['json']();throw new Error(_0xc94ead['error']||'Failed\x20to\x20pin\x20task');}return await _0x42db16['json']();},async 'setTaskWinner'(_0x539543,_0x1f4cf4,_0x5eca0b=[]){if(!_0x539543)throw new Error('Task\x20ID\x20is\x20required');const _0x1be926=await fetch(API_BASE+'/tasks/'+_0x539543+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x1f4cf4,'siblings':_0x5eca0b})});if(!_0x1be926['ok']){const _0x2b2a43=await _0x1be926['json']();throw new Error(_0x2b2a43['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x1be926['json']();},async 'setTaskLoser'(_0x43187a,_0x1482d1){if(!_0x43187a)throw new Error('Task\x20ID\x20is\x20required');const _0x53fd6d=await fetch(API_BASE+'/tasks/'+_0x43187a+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x1482d1})});if(!_0x53fd6d['ok']){const _0x42bfc8=await _0x53fd6d['json']();throw new Error(_0x42bfc8['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x53fd6d['json']();},async 'createTaskGroup'(_0x369f0b){const _0x349a92=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x369f0b)});if(!_0x349a92['ok']){const _0x69f803=await _0x349a92['json']();throw new Error(_0x69f803['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x349a92['json']();},async 'getTaskGroups'(_0x12bfa2={}){const _0x549198=new URLSearchParams();if(_0x12bfa2['userId'])_0x549198['set']('userId',String(_0x12bfa2['userId']));if(_0x12bfa2['status'])_0x549198['set']('status',String(_0x12bfa2['status']));if(_0x12bfa2['limit'])_0x549198['set']('limit',String(_0x12bfa2['limit']));const _0x1b880d=API_BASE+'/tasks/groups'+(_0x549198['toString']()?'?'+_0x549198['toString']():''),_0xdcec3b=await fetch(_0x1b880d);if(!_0xdcec3b['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0xdcec3b['json']();},async 'getTaskGroup'(_0x26fa80){const _0x92f628=await fetch(API_BASE+'/tasks/groups/'+_0x26fa80);if(!_0x92f628['ok']){const _0x12dd49=await _0x92f628['json']();throw new Error(_0x12dd49['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x92f628['json']();},async 'updateTaskGroup'(_0x57ab7b,_0x21ad50,_0x36d614){const _0x13e530=await fetch(API_BASE+'/tasks/'+_0x57ab7b+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x21ad50,'groupIndex':_0x36d614})});if(!_0x13e530['ok']){const _0x1e7475=await _0x13e530['json']();throw new Error(_0x1e7475['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x13e530['json']();},async 'removeTaskFromGroup'(_0x4aade1){return this['updateTaskGroup'](_0x4aade1,null,null);},async 'deleteTaskGroup'(_0x3fd244,_0xde7227=![]){const _0xeaac07=_0xde7227?'?deleteTasks=true':'',_0x5e5a26=await fetch(API_BASE+'/tasks/groups/'+_0x3fd244+_0xeaac07,{'method':'DELETE'});if(!_0x5e5a26['ok']){const _0x5ad249=await _0x5e5a26['json']();throw new Error(_0x5ad249['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x156551,_0x570bfe){const _0x4662ba=await fetch(API_BASE+'/tasks/groups/'+_0x156551+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x570bfe})});if(!_0x4662ba['ok']){const _0x46f76a=await _0x4662ba['json']();throw new Error(_0x46f76a['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x4662ba['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x527407){if(!_0x527407)throw new Error('Task\x20ID\x20is\x20required');const _0x23c65c=await fetch(API_BASE+'/tasks/'+_0x527407+'/comments');if(!_0x23c65c['ok']){const _0x370386=await _0x23c65c['json']()['catch'](()=>({}));throw new Error(_0x370386['error']||'Failed\x20to\x20get\x20comments');}return await _0x23c65c['json']();},async 'addComment'(_0x2ffb35,_0x52c79c){if(!_0x2ffb35)throw new Error('Task\x20ID\x20is\x20required');if(!_0x52c79c)throw new Error('Comment\x20content\x20is\x20required');const _0x44c712=await fetch(API_BASE+'/tasks/'+_0x2ffb35+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x52c79c})});if(!_0x44c712['ok']){const _0x2375da=await _0x44c712['json']()['catch'](()=>({}));throw new Error(_0x2375da['error']||'Failed\x20to\x20add\x20comment');}return await _0x44c712['json']();},async 'updateComment'(_0x4ab6a4,_0x291eb5,_0x3adf9b){if(!_0x4ab6a4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x291eb5)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x3adf9b)throw new Error('Comment\x20content\x20is\x20required');const _0x15b4e8=await fetch(API_BASE+'/tasks/'+_0x4ab6a4+'/comments/'+_0x291eb5,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3adf9b})});if(!_0x15b4e8['ok']){const _0x5b09ad=await _0x15b4e8['json']()['catch'](()=>({}));throw new Error(_0x5b09ad['error']||'Failed\x20to\x20update\x20comment');}return await _0x15b4e8['json']();},async 'deleteComment'(_0x2f3e85,_0x598fc1){if(!_0x2f3e85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x598fc1)throw new Error('Comment\x20ID\x20is\x20required');const _0x19d5d0=await fetch(API_BASE+'/tasks/'+_0x2f3e85+'/comments/'+_0x598fc1,{'method':'DELETE'});if(!_0x19d5d0['ok']){const _0x2fb3e0=await _0x19d5d0['json']()['catch'](()=>({}));throw new Error(_0x2fb3e0['error']||'Failed\x20to\x20delete\x20comment');}return await _0x19d5d0['json']();},async 'createObjective'(_0x42c84b){const _0x55810d={'objective':!![],'name':_0x42c84b['name']||'','environment':_0x42c84b['environment']||null,'agents':_0x42c84b['agents']||[],'branches':_0x42c84b['branches']||{},'isPinned':_0x42c84b['isPinned']||![],'parentObjectiveId':_0x42c84b['parentObjectiveId']||null,'env_vars':_0x42c84b['envVars']||{},'parameters':{'instructions':_0x42c84b['instructions']||''},'files':_0x42c84b['files']||[],'jira':_0x42c84b['jira']||null};return this['createTask'](_0x55810d);},async 'updateObjective'(_0x19aaee,_0x16cb02,_0x65740f=[],_0x4d9346=[]){let _0x2852c3,_0x3ae779={};const _0x51a8f8={..._0x16cb02};_0x4d9346&&_0x4d9346['length']>0x0&&(_0x51a8f8['removeAttachments']=_0x4d9346);if(_0x65740f&&_0x65740f['length']>0x0){const _0x658ece=new FormData();for(const [_0x6a5475,_0x156d68]of Object['entries'](_0x51a8f8)){if(_0x156d68==null)continue;typeof _0x156d68==='object'?_0x658ece['append'](_0x6a5475,JSON['stringify'](_0x156d68)):_0x658ece['append'](_0x6a5475,String(_0x156d68));}for(const _0x1d9f68 of _0x65740f){_0x658ece['append']('attachments',_0x1d9f68);}_0x2852c3=_0x658ece;}else _0x3ae779['Content-Type']='application/json',_0x2852c3=JSON['stringify'](_0x51a8f8);const _0x396880=await fetch(API_BASE+'/tasks/'+_0x19aaee,{'method':'PATCH','headers':_0x3ae779,'body':_0x2852c3});if(!_0x396880['ok']){const _0x1abedf=await _0x396880['json']();throw new Error(_0x1abedf['error']||'Failed\x20to\x20update\x20objective');}return await _0x396880['json']();},async 'deleteObjective'(_0x221a5a){return this['deleteTask'](_0x221a5a);},async 'launchObjective'(_0xeea5d,_0x192816={}){const _0x55413d=await fetch(API_BASE+'/tasks/'+_0xeea5d+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x192816)});if(!_0x55413d['ok']){const _0x472039=await _0x55413d['json']();throw new Error(_0x472039['error']||'Failed\x20to\x20launch\x20objective');}return await _0x55413d['json']();},async 'getObjectiveAttachments'(_0x1f2db7){return this['getTaskAttachments'](_0x1f2db7);},async 'createJudgeTask'({environment:_0x1c87dd,judgeAgent:_0x49434d,groupId:_0x1cfa5e,taskIds:_0x1ef4eb,judgeCustomInstructions:_0x40a7c0,isPinned:_0xe7ca0f}){const _0xf26427=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1c87dd,'judgeAgent':_0x49434d,'groupId':_0x1cfa5e,'taskIds':_0x1ef4eb,'judgeCustomInstructions':_0x40a7c0,'isPinned':_0xe7ca0f})});if(!_0xf26427['ok']){const _0xc957cf=await _0xf26427['json']();throw new Error(_0xc957cf['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0xf26427['json']();},async 'getJudgeTasks'(_0x2a7a3c){const _0x3e8263=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x2a7a3c));if(!_0x3e8263['ok']){const _0x53e1aa=await _0x3e8263['json']();throw new Error(_0x53e1aa['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x3e8263['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1e0e3d,_0x431d67,_0x5ab4a6=''){const _0x202f71=await fetch(API_BASE+'/tasks/'+_0x1e0e3d+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x431d67,'customPreamble':_0x5ab4a6})});if(!_0x202f71['ok']){const _0x47c576=await _0x202f71['json']();throw new Error(_0x47c576['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x202f71['json']();},async 'getJiraConfig'(){const _0x4f0317=await fetch(API_BASE+'/jira/config');if(!_0x4f0317['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4f0317['json']();},async 'getJiraIssue'(_0x2f9470){const _0x2b2cbe=await fetch(API_BASE+'/jira/issues/'+_0x2f9470);if(!_0x2b2cbe['ok']){const _0x419373=await _0x2b2cbe['json']()['catch'](()=>({}));throw new Error(_0x419373['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2b2cbe['statusText']);}return await _0x2b2cbe['json']();},async 'searchJiraIssues'(_0x239aca,_0x3304c0=0x14){const _0x46c542=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x239aca,'maxResults':_0x3304c0})});if(!_0x46c542['ok']){const _0x35b988=await _0x46c542['json']()['catch'](()=>({}));throw new Error(_0x35b988['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x46c542['statusText']);}return await _0x46c542['json']();},async 'postJiraComment'(_0x3c0fd5,_0x13c31b){const _0x3a0cd8=await fetch(API_BASE+'/jira/issues/'+_0x3c0fd5+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x13c31b})});if(!_0x3a0cd8['ok']){const _0x320b53=await _0x3a0cd8['json']()['catch'](()=>({}));throw new Error(_0x320b53['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x3a0cd8['statusText']);}return await _0x3a0cd8['json']();},async 'getJiraComments'(_0x54d1dc){const _0x1caf4c=await fetch(API_BASE+'/jira/issues/'+_0x54d1dc+'/comments');if(!_0x1caf4c['ok']){const _0x2b47f4=await _0x1caf4c['json']()['catch'](()=>({}));throw new Error(_0x2b47f4['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x1caf4c['statusText']);}return await _0x1caf4c['json']();},async 'promptParameter'({environment:_0x3abe84,command:_0x263485,parser:parser='json'}){const _0x1a3b40=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x3abe84,'command':_0x263485,'parser':parser})});if(!_0x1a3b40['ok']){const _0x200c1e=await _0x1a3b40['json']()['catch'](()=>({}));throw new Error(_0x200c1e['message']||_0x200c1e['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x1a3b40['statusText']);}return await _0x1a3b40['json']();},async 'promptParameterStream'(_0x3b59cc,_0x23b75e){const _0x3b96e7=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3b59cc)});if(!_0x3b96e7['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x3b96e7['statusText']);const _0x58890a=_0x3b96e7['body']['getReader'](),_0x3e4cd8=new TextDecoder();let _0x2269ac='';return new Promise((_0x29082e,_0x44e1ca)=>{const _0x4e9ac7=async()=>{try{const {done:_0x5d9334,value:_0x151834}=await _0x58890a['read']();if(_0x5d9334)return;_0x2269ac+=_0x3e4cd8['decode'](_0x151834,{'stream':!![]});const _0x4afc8b=_0x2269ac['split']('\x0a\x0a');_0x2269ac=_0x4afc8b['pop']()||'';for(const _0x3a03c2 of _0x4afc8b){if(!_0x3a03c2['trim']())continue;const _0xf5fbb6=_0x3a03c2['split']('\x0a');let _0x4cd41b='message',_0xb3a82c='';for(const _0x2273d3 of _0xf5fbb6){if(_0x2273d3['startsWith']('event:'))_0x4cd41b=_0x2273d3['substring'](0x6)['trim']();else _0x2273d3['startsWith']('data:')&&(_0xb3a82c=_0x2273d3['substring'](0x5)['trim']());}if(!_0xb3a82c)continue;try{const _0x39cc2c=JSON['parse'](_0xb3a82c);if(_0x4cd41b==='progress'&&_0x23b75e)_0x23b75e(_0x39cc2c['stage'],_0x39cc2c['message']);else{if(_0x4cd41b==='result'){_0x29082e(_0x39cc2c);return;}else{if(_0x4cd41b==='error'){let _0x1bcf83=_0x39cc2c['message']||_0x39cc2c['error']||'Prompt\x20command\x20failed';_0x39cc2c['rawOutput']&&(_0x1bcf83+='\x0a\x0aRaw\x20output:\x0a'+_0x39cc2c['rawOutput']);_0x44e1ca(new Error(_0x1bcf83));return;}}}}catch(_0x555f46){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x555f46),console['error']('Event\x20type:',_0x4cd41b),console['error']('Event\x20data:',_0xb3a82c),console['error']('First\x20200\x20chars:',_0xb3a82c['substring'](0x0,0xc8)),_0x44e1ca(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x555f46['message']+'\x0a\x0aData:\x20'+_0xb3a82c['substring'](0x0,0x1f4)));return;}}_0x4e9ac7();}catch(_0x573436){_0x44e1ca(_0x573436);}};_0x4e9ac7();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x3eae8b){const _0x4b7e17=await fetch(''+API_BASE+_0x3eae8b);if(!_0x4b7e17['ok']){const _0x5cbc79=await _0x4b7e17['json']()['catch'](()=>({'error':_0x4b7e17['statusText']})),_0x4b85da=new Error(_0x5cbc79['error']||_0x5cbc79['message']||_0x4b7e17['statusText']);if(_0x5cbc79['detail']!==undefined)_0x4b85da['detail']=_0x5cbc79['detail'];throw _0x4b85da;}return await _0x4b7e17['json']();},async 'post'(_0x2bb87c,_0x3d0e04){const _0x204c97=await fetch(''+API_BASE+_0x2bb87c,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3d0e04)});if(!_0x204c97['ok']){const _0x435b6e=await _0x204c97['json']()['catch'](()=>({'error':_0x204c97['statusText']})),_0x436ead=new Error(_0x435b6e['error']||_0x435b6e['message']||_0x204c97['statusText']);if(_0x435b6e['detail']!==undefined)_0x436ead['detail']=_0x435b6e['detail'];throw _0x436ead;}return await _0x204c97['json']();},async 'put'(_0x4afb92,_0x2878b3){const _0x3ca507=await fetch(''+API_BASE+_0x4afb92,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2878b3)});if(!_0x3ca507['ok']){const _0x425df6=await _0x3ca507['json']()['catch'](()=>({'error':_0x3ca507['statusText']})),_0x86f142=new Error(_0x425df6['error']||_0x425df6['message']||_0x3ca507['statusText']);if(_0x425df6['detail']!==undefined)_0x86f142['detail']=_0x425df6['detail'];throw _0x86f142;}return await _0x3ca507['json']();},async 'delete'(_0xbbf4d4,_0x163414){const _0x15cbe4={'method':'DELETE'};_0x163414&&(_0x15cbe4['headers']={'Content-Type':'application/json'},_0x15cbe4['body']=JSON['stringify'](_0x163414));const _0x1f45f5=await fetch(''+API_BASE+_0xbbf4d4,_0x15cbe4);if(!_0x1f45f5['ok']){const _0x4b05e7=await _0x1f45f5['json']()['catch'](()=>({'error':_0x1f45f5['statusText']})),_0x47f954=new Error(_0x4b05e7['error']||_0x4b05e7['message']||_0x1f45f5['statusText']);if(_0x4b05e7['detail']!==undefined)_0x47f954['detail']=_0x4b05e7['detail'];throw _0x47f954;}return await _0x1f45f5['json']();},async 'getSkills'(){const _0x49f712=await fetch(API_BASE+'/skills');if(!_0x49f712['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x49f712['statusText']);return await _0x49f712['json']();},async 'getSkill'(_0x1abca0){const _0x54c669=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1abca0));if(!_0x54c669['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x54c669['statusText']);return await _0x54c669['json']();},async 'createSkill'(_0xaa3ac0){const _0x2154b9=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xaa3ac0)});if(!_0x2154b9['ok']){const _0x8a1209=await _0x2154b9['json']()['catch'](()=>({'error':_0x2154b9['statusText']})),_0x13ee86=new Error(_0x8a1209['error']||_0x8a1209['message']||_0x2154b9['statusText']);if(_0x8a1209['detail']!==undefined)_0x13ee86['detail']=_0x8a1209['detail'];throw _0x13ee86;}return await _0x2154b9['json']();},async 'updateSkill'(_0x563aba,_0x557fad){const _0x2119fe=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x563aba),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x557fad)});if(!_0x2119fe['ok']){const _0x8bc149=await _0x2119fe['json']()['catch'](()=>({'error':_0x2119fe['statusText']})),_0x2d84f1=new Error(_0x8bc149['error']||_0x8bc149['message']||_0x2119fe['statusText']);if(_0x8bc149['detail']!==undefined)_0x2d84f1['detail']=_0x8bc149['detail'];throw _0x2d84f1;}return await _0x2119fe['json']();},async 'deleteSkill'(_0xe8060d){const _0x13041f=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xe8060d),{'method':'DELETE'});if(!_0x13041f['ok']){const _0x24f7bb=await _0x13041f['json']()['catch'](()=>({'error':_0x13041f['statusText']})),_0x3052da=new Error(_0x24f7bb['error']||_0x24f7bb['message']||_0x13041f['statusText']);if(_0x24f7bb['detail']!==undefined)_0x3052da['detail']=_0x24f7bb['detail'];throw _0x3052da;}return await _0x13041f['json']();},async 'getSkillFile'(_0x4b58b3,_0x307fa7){const _0x5ada85=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4b58b3)+'/files/'+_0x307fa7);if(!_0x5ada85['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x5ada85['statusText']);return await _0x5ada85['json']();},async 'saveSkillFile'(_0x3a2c85,_0x23967b,_0x3394c9){const _0x349c2b=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x3a2c85)+'/files/'+_0x23967b,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3394c9})});if(!_0x349c2b['ok']){const _0xadb18c=await _0x349c2b['json']()['catch'](()=>({'error':_0x349c2b['statusText']})),_0x3e11b8=new Error(_0xadb18c['error']||_0xadb18c['message']||_0x349c2b['statusText']);if(_0xadb18c['detail']!==undefined)_0x3e11b8['detail']=_0xadb18c['detail'];throw _0x3e11b8;}return await _0x349c2b['json']();},async 'deleteSkillFile'(_0x1db72b,_0xf4ef9d){const _0x562fc6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1db72b)+'/files/'+_0xf4ef9d,{'method':'DELETE'});if(!_0x562fc6['ok']){const _0x5c0fcc=await _0x562fc6['json']()['catch'](()=>({'error':_0x562fc6['statusText']})),_0x3c0687=new Error(_0x5c0fcc['error']||_0x5c0fcc['message']||_0x562fc6['statusText']);if(_0x5c0fcc['detail']!==undefined)_0x3c0687['detail']=_0x5c0fcc['detail'];throw _0x3c0687;}return await _0x562fc6['json']();},async 'pullSkills'(){const _0xcf5f24=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xcf5f24['ok']){const _0x515ab3=await _0xcf5f24['json']()['catch'](()=>({'error':_0xcf5f24['statusText']})),_0x14596d=new Error(_0x515ab3['error']||_0x515ab3['message']||_0xcf5f24['statusText']);if(_0x515ab3['detail']!==undefined)_0x14596d['detail']=_0x515ab3['detail'];throw _0x14596d;}return await _0xcf5f24['json']();},async 'commitSkills'(_0x580dcc,_0x57bc53={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x57bc53,_0x2900e7=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x580dcc,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x2900e7['ok']){const _0x15fd32=await _0x2900e7['json']()['catch'](()=>({'error':_0x2900e7['statusText']})),_0x5c67bd=new Error(_0x15fd32['error']||_0x15fd32['message']||_0x2900e7['statusText']);if(_0x15fd32['detail']!==undefined)_0x5c67bd['detail']=_0x15fd32['detail'];throw _0x5c67bd;}return await _0x2900e7['json']();},async 'discardSkillsChanges'(){const _0x452452=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x452452['ok']){const _0x124246=await _0x452452['json']()['catch'](()=>({'error':_0x452452['statusText']})),_0x23f437=new Error(_0x124246['error']||_0x124246['message']||_0x452452['statusText']);if(_0x124246['detail']!==undefined)_0x23f437['detail']=_0x124246['detail'];throw _0x23f437;}return await _0x452452['json']();},async 'getSkillCatalog'(){const _0x36d194=await fetch(API_BASE+'/external-skills/catalog');if(!_0x36d194['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x36d194['statusText']);return await _0x36d194['json']();},async 'getImportedSkillsRegistry'(){const _0xa957dd=await fetch(API_BASE+'/external-skills/registry');if(!_0xa957dd['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0xa957dd['statusText']);return await _0xa957dd['json']();},async 'importCatalogSkill'(_0x45bc6d){const _0x3aa8da=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x45bc6d})});if(!_0x3aa8da['ok']){const _0x1c4387=await _0x3aa8da['json']()['catch'](()=>({'error':_0x3aa8da['statusText']})),_0x4c827d=new Error(_0x1c4387['error']||_0x1c4387['message']||_0x3aa8da['statusText']);if(_0x1c4387['detail']!==undefined)_0x4c827d['detail']=_0x1c4387['detail'];throw _0x4c827d;}return await _0x3aa8da['json']();},async 'importSkillFromGit'(_0x968825,_0x40410f,_0x1c9993='main',_0x25bb56=null){const _0x2b17c5=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x968825,'skillPath':_0x40410f,'branch':_0x1c9993,'skillId':_0x25bb56})});if(!_0x2b17c5['ok']){const _0x10e2d5=await _0x2b17c5['json']()['catch'](()=>({'error':_0x2b17c5['statusText']})),_0x16115a=new Error(_0x10e2d5['error']||_0x10e2d5['message']||_0x2b17c5['statusText']);if(_0x10e2d5['detail']!==undefined)_0x16115a['detail']=_0x10e2d5['detail'];throw _0x16115a;}return await _0x2b17c5['json']();},async 'probeMarketplace'(_0x2ee8f7,_0x336485='main'){const _0x48d439=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x2ee8f7,'branch':_0x336485})});if(!_0x48d439['ok']){const _0x297272=await _0x48d439['json']()['catch'](()=>({'error':_0x48d439['statusText']})),_0x5f3ad8=new Error(_0x297272['error']||_0x297272['message']||_0x48d439['statusText']);if(_0x297272['detail']!==undefined)_0x5f3ad8['detail']=_0x297272['detail'];throw _0x5f3ad8;}return await _0x48d439['json']();},async 'importMarketplaceBundle'(_0x5ba096,_0x209a67,_0x4e6532,_0x151b6a=null){const _0x4c1d7f=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5ba096,'branch':_0x209a67,'bundleId':_0x4e6532,'selectedSkills':_0x151b6a})});if(!_0x4c1d7f['ok']){const _0x580f62=await _0x4c1d7f['json']()['catch'](()=>({'error':_0x4c1d7f['statusText']})),_0x5bfaa3=new Error(_0x580f62['error']||_0x580f62['message']||_0x4c1d7f['statusText']);if(_0x580f62['detail']!==undefined)_0x5bfaa3['detail']=_0x580f62['detail'];throw _0x5bfaa3;}return await _0x4c1d7f['json']();},async 'importSkillFromFolder'(_0x792217,_0x3e6fb9=null){const _0x59a641=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x792217,'skillId':_0x3e6fb9})});if(!_0x59a641['ok']){const _0x4ab320=await _0x59a641['json']()['catch'](()=>({'error':_0x59a641['statusText']})),_0x5394ff=new Error(_0x4ab320['error']||_0x4ab320['message']||_0x59a641['statusText']);if(_0x4ab320['detail']!==undefined)_0x5394ff['detail']=_0x4ab320['detail'];throw _0x5394ff;}return await _0x59a641['json']();},async 'importSkillFromNpm'(_0x2c34fd,_0x16d601='latest',_0x490942=null,_0x2e3c96=null){const _0x22d340=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x2c34fd,'version':_0x16d601,'skillId':_0x490942,'registry':_0x2e3c96})});if(!_0x22d340['ok']){const _0x15c055=await _0x22d340['json']()['catch'](()=>({'error':_0x22d340['statusText']})),_0x2fa266=new Error(_0x15c055['error']||_0x15c055['message']||_0x22d340['statusText']);if(_0x15c055['detail']!==undefined)_0x2fa266['detail']=_0x15c055['detail'];throw _0x2fa266;}return await _0x22d340['json']();},async 'checkSkillUpdates'(_0x214521){const _0x1dbe07=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x214521)+'/check-updates',{'method':'POST'});if(!_0x1dbe07['ok']){const _0x334f82=await _0x1dbe07['json']()['catch'](()=>({'error':_0x1dbe07['statusText']})),_0x55fe78=new Error(_0x334f82['error']||_0x334f82['message']||_0x1dbe07['statusText']);if(_0x334f82['detail']!==undefined)_0x55fe78['detail']=_0x334f82['detail'];throw _0x55fe78;}return await _0x1dbe07['json']();},async 'updateExternalSkill'(_0x1856e4){const _0x30c183=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1856e4)+'/update',{'method':'POST'});if(!_0x30c183['ok']){const _0xf744f6=await _0x30c183['json']()['catch'](()=>({'error':_0x30c183['statusText']})),_0x5d8f8b=new Error(_0xf744f6['error']||_0xf744f6['message']||_0x30c183['statusText']);if(_0xf744f6['detail']!==undefined)_0x5d8f8b['detail']=_0xf744f6['detail'];throw _0x5d8f8b;}return await _0x30c183['json']();},async 'updateSkillFlags'(_0x298e7d,_0xda7089){const _0x82f4c2=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x298e7d)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0xda7089})});if(!_0x82f4c2['ok']){const _0x21497d=await _0x82f4c2['json']()['catch'](()=>({'error':_0x82f4c2['statusText']})),_0xa64e4e=new Error(_0x21497d['error']||_0x21497d['message']||_0x82f4c2['statusText']);if(_0x21497d['detail']!==undefined)_0xa64e4e['detail']=_0x21497d['detail'];throw _0xa64e4e;}return await _0x82f4c2['json']();},async 'removeFromImportedRegistry'(_0x317405){const _0x288666=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x317405)+'/registry',{'method':'DELETE'});if(!_0x288666['ok']){const _0x2949a1=await _0x288666['json']()['catch'](()=>({'error':_0x288666['statusText']})),_0x357159=new Error(_0x2949a1['error']||_0x2949a1['message']||_0x288666['statusText']);if(_0x2949a1['detail']!==undefined)_0x357159['detail']=_0x2949a1['detail'];throw _0x357159;}return await _0x288666['json']();},async 'getTeams'(){const _0x3d2b1d=await fetch(API_BASE+'/teams');if(!_0x3d2b1d['ok']){const _0x55f701=await _0x3d2b1d['json']()['catch'](()=>({'message':_0x3d2b1d['statusText']}));throw new Error(_0x55f701['message']||'Failed\x20to\x20get\x20teams');}return await _0x3d2b1d['json']();},async 'getTeam'(_0x2fb8cc){const _0x4a58e8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2fb8cc));if(!_0x4a58e8['ok']){const _0x2f64a6=await _0x4a58e8['json']()['catch'](()=>({'message':_0x4a58e8['statusText']}));throw new Error(_0x2f64a6['message']||'Failed\x20to\x20get\x20team');}return await _0x4a58e8['json']();},async 'createTeam'(_0x2f9114){const _0x5c1e8d=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f9114)});if(!_0x5c1e8d['ok']){const _0x4edf02=await _0x5c1e8d['json']()['catch'](()=>({'message':_0x5c1e8d['statusText']}));throw new Error(_0x4edf02['message']||'Failed\x20to\x20create\x20team');}return await _0x5c1e8d['json']();},async 'updateTeam'(_0x688d4b,_0x12c8e7){const _0x5aa8fc=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x688d4b),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x12c8e7)});if(!_0x5aa8fc['ok']){const _0xe556e5=await _0x5aa8fc['json']()['catch'](()=>({'message':_0x5aa8fc['statusText']}));throw new Error(_0xe556e5['message']||'Failed\x20to\x20update\x20team');}return await _0x5aa8fc['json']();},async 'deleteTeam'(_0x181bec){const _0xd042a3=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x181bec),{'method':'DELETE'});if(!_0xd042a3['ok']){const _0x179a35=await _0xd042a3['json']()['catch'](()=>({'message':_0xd042a3['statusText']}));throw new Error(_0x179a35['message']||'Failed\x20to\x20delete\x20team');}return await _0xd042a3['json']();},async 'addTeamMember'(_0x58325c,_0x41ee68){const _0x18e517=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x58325c)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x41ee68})});if(!_0x18e517['ok']){const _0x2d923c=await _0x18e517['json']()['catch'](()=>({'message':_0x18e517['statusText']}));throw new Error(_0x2d923c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x18e517['json']();},async 'removeTeamMember'(_0x21dbf4,_0x24e221){const _0x4baa9d=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x21dbf4)+'/members/'+encodeURIComponent(_0x24e221),{'method':'DELETE'});if(!_0x4baa9d['ok']){const _0x24703f=await _0x4baa9d['json']()['catch'](()=>({'message':_0x4baa9d['statusText']}));throw new Error(_0x24703f['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x4baa9d['json']();},async 'getBindings'(_0x2e3722={}){const _0x43fefb=new URLSearchParams();if(_0x2e3722['resource_type'])_0x43fefb['set']('resource_type',_0x2e3722['resource_type']);if(_0x2e3722['resource_id'])_0x43fefb['set']('resource_id',_0x2e3722['resource_id']);if(_0x2e3722['subject_type'])_0x43fefb['set']('subject_type',_0x2e3722['subject_type']);if(_0x2e3722['subject_id'])_0x43fefb['set']('subject_id',_0x2e3722['subject_id']);const _0x282c78=_0x43fefb['toString'](),_0x266d9d=await fetch(API_BASE+'/bindings'+(_0x282c78?'?'+_0x282c78:''));if(!_0x266d9d['ok']){const _0x14ff5b=await _0x266d9d['json']()['catch'](()=>({'message':_0x266d9d['statusText']}));throw new Error(_0x14ff5b['message']||'Failed\x20to\x20get\x20bindings');}return await _0x266d9d['json']();},async 'createBinding'(_0x5674ec){const _0x3b6813=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5674ec)});if(!_0x3b6813['ok']){const _0x3e17f2=await _0x3b6813['json']()['catch'](()=>({'message':_0x3b6813['statusText']}));throw new Error(_0x3e17f2['message']||'Failed\x20to\x20create\x20binding');}return await _0x3b6813['json']();},async 'updateBinding'(_0x3f1613,_0x42a5ea){const _0x2372d2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x3f1613),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x42a5ea)});if(!_0x2372d2['ok']){const _0xec9090=await _0x2372d2['json']()['catch'](()=>({'message':_0x2372d2['statusText']}));throw new Error(_0xec9090['message']||'Failed\x20to\x20update\x20binding');}return await _0x2372d2['json']();},async 'deleteBinding'(_0x5c0238){const _0xf744e0=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x5c0238),{'method':'DELETE'});if(!_0xf744e0['ok']){const _0x2b07ba=await _0xf744e0['json']()['catch'](()=>({'message':_0xf744e0['statusText']}));throw new Error(_0x2b07ba['message']||'Failed\x20to\x20delete\x20binding');}return await _0xf744e0['json']();},async 'getRoleDefinitions'(){const _0x5e0f80=await fetch(API_BASE+'/roles');if(!_0x5e0f80['ok']){const _0x145366=await _0x5e0f80['json']()['catch'](()=>({'message':_0x5e0f80['statusText']}));throw new Error(_0x145366['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x5e0f80['json']();},async 'getRoleDefinition'(_0x2ea1fe){const _0x1648f2=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2ea1fe));if(!_0x1648f2['ok']){const _0x3ca499=await _0x1648f2['json']()['catch'](()=>({'message':_0x1648f2['statusText']}));throw new Error(_0x3ca499['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x1648f2['json']();},async 'createRoleDefinition'(_0x5c5ab8){const _0x5969ac=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5c5ab8)});if(!_0x5969ac['ok']){const _0xe5fa99=await _0x5969ac['json']()['catch'](()=>({'message':_0x5969ac['statusText']}));throw new Error(_0xe5fa99['message']||_0xe5fa99['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x5969ac['json']();},async 'updateRoleDefinition'(_0xc0c0c0,_0x38fb0e){const _0x2a7aab=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0xc0c0c0),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x38fb0e)});if(!_0x2a7aab['ok']){const _0x3de188=await _0x2a7aab['json']()['catch'](()=>({'message':_0x2a7aab['statusText']}));throw new Error(_0x3de188['message']||_0x3de188['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x2a7aab['json']();},async 'deleteRoleDefinition'(_0x884c40){const _0x501323=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x884c40),{'method':'DELETE'});if(!_0x501323['ok']){const _0x34a2fc=await _0x501323['json']()['catch'](()=>({'message':_0x501323['statusText']}));throw new Error(_0x34a2fc['message']||_0x34a2fc['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x501323['json']();},async 'getAvailablePermissions'(){const _0x3f3b23=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3f3b23['ok']){const _0x5a5e00=await _0x3f3b23['json']()['catch'](()=>({'message':_0x3f3b23['statusText']}));throw new Error(_0x5a5e00['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3f3b23['json']();},async 'getGitProviderAllowedTeams'(_0x3436bb){const _0x5d0cb3=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x3436bb)+'/allowed-teams');if(!_0x5d0cb3['ok']){const _0x2ea891=await _0x5d0cb3['json']()['catch'](()=>({'message':_0x5d0cb3['statusText']}));throw new Error(_0x2ea891['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x5d0cb3['json']();},async 'setGitProviderAllowedTeams'(_0x4d2de0,_0x37b96f){const _0x1335e9=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x4d2de0)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x37b96f})});if(!_0x1335e9['ok']){const _0x30647a=await _0x1335e9['json']()['catch'](()=>({'message':_0x1335e9['statusText']}));throw new Error(_0x30647a['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x1335e9['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x507330=toastState['baseBottom'];toastState['toasts']['forEach'](_0x53abfa=>{_0x53abfa['el']['style']['bottom']=_0x507330+'px';const _0x5b4cc3=_0x53abfa['el']['offsetHeight']||toastState['defaultHeight'];_0x507330+=_0x5b4cc3+toastState['gap'];});});}function removeToastById(_0x4e1791){const _0x2a4716=toastState['toasts']['findIndex'](_0x1c30e4=>_0x1c30e4['id']===_0x4e1791);if(_0x2a4716===-0x1)return;const _0x312ed7=toastState['toasts'][_0x2a4716];if(_0x312ed7['timeoutId'])clearTimeout(_0x312ed7['timeoutId']);_0x312ed7['el']['classList']['remove']('show'),setTimeout(()=>_0x312ed7['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x2a4716,0x1),repositionAllToasts();}function registerToast(_0x220b98){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x220b98),repositionAllToasts(),_0x220b98['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x15b80e){if(_0x15b80e===null||_0x15b80e===undefined)return'';return String(_0x15b80e)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x39381b,_0x5d594b){if(_0x39381b&&typeof _0x39381b==='object'&&!Array['isArray'](_0x39381b))return{'code':typeof _0x39381b['text']==='string'?_0x39381b['text']:'','language':typeof _0x39381b['lang']==='string'?_0x39381b['lang']:''};return{'code':typeof _0x39381b==='string'?_0x39381b:'','language':typeof _0x5d594b==='string'?_0x5d594b:''};}function buildMermaidBlock(_0x26d7f3){const _0x3093b2=String(_0x26d7f3||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x3093b2))+'\x22>'+escapeHtmlValue(_0x3093b2)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x8552b6=new marked['Renderer'](),_0x37480a=_0x8552b6['code']['bind'](_0x8552b6);return _0x8552b6['code']=function(_0xf419dd,_0x5abcd6,..._0x3c277c){const {code:_0x42bd71,language:_0x176b27}=getMarkdownCodeBlockPayload(_0xf419dd,_0x5abcd6),_0x2ef0e9=String(_0x176b27||'')['trim']()['toLowerCase']();if(_0x2ef0e9==='mermaid')return buildMermaidBlock(_0x42bd71);const _0x1ff85c=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x1ff85c&&_0x2ef0e9)try{const _0x29dfb8=_0x1ff85c['getLanguage'](_0x2ef0e9)?_0x2ef0e9:'plaintext',_0x2461a1=_0x1ff85c['highlight'](_0x42bd71,{'language':_0x29dfb8})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x2ef0e9)+'\x22>'+_0x2461a1+'</code></pre>';}catch(_0x3f5485){console['error']('Syntax\x20highlighting\x20error:',_0x3f5485);}return _0x37480a(_0xf419dd,_0x5abcd6,..._0x3c277c);},sharedMarkedRenderer=_0x8552b6,_0x8552b6;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x5ab095=window['mermaid'];if(!_0x5ab095||typeof _0x5ab095['initialize']!=='function')return _0x5ab095||null;return _0x5ab095['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x5ab095;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0xe512c3,_0x55254a)=>{const _0x18c6ed=()=>_0xe512c3(configureMermaidInstance()),_0x54198a=()=>{mermaidLoadPromise=null,_0x55254a(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x5b7edb=document['getElementById'](MERMAID_SCRIPT_ID);!_0x5b7edb&&(_0x5b7edb=document['createElement']('script'),_0x5b7edb['id']=MERMAID_SCRIPT_ID,_0x5b7edb['src']=MERMAID_SCRIPT_SRC,_0x5b7edb['async']=!![],document['head']['appendChild'](_0x5b7edb));if(window['mermaid']){_0x18c6ed();return;}_0x5b7edb['addEventListener']('load',_0x18c6ed,{'once':!![]}),_0x5b7edb['addEventListener']('error',_0x54198a,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x151577){const _0x5bc10c=_0x151577['getAttribute']('data-mermaid-source');if(!_0x5bc10c)return null;let _0x119fe4=_0x5bc10c;try{_0x119fe4=decodeURIComponent(_0x5bc10c);}catch{}return _0x151577['textContent']=_0x119fe4,_0x151577['removeAttribute']('data-processed'),_0x151577['removeAttribute']('aria-roledescription'),_0x151577['removeAttribute']('role'),_0x151577['removeAttribute']('aria-label'),_0x119fe4;}function collectMermaidNodes(_0x2ce62a,_0x2c0e57){if(!(_0x2ce62a instanceof Element))return;_0x2ce62a['matches']('.mermaid[data-mermaid-source]')&&_0x2c0e57['add'](_0x2ce62a),_0x2ce62a['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x546d66=>{_0x2c0e57['add'](_0x546d66);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x196316=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x1f1733=>setTimeout(_0x1f1733,0x0);_0x196316(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x24f664=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x24f664);});});}function queueMermaidRender(_0x18ae75){const _0x389fe5=new Set();_0x18ae75 instanceof Document||_0x18ae75 instanceof DocumentFragment?_0x18ae75['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5483eb=>_0x389fe5['add'](_0x5483eb)):collectMermaidNodes(_0x18ae75,_0x389fe5);if(_0x389fe5['size']===0x0)return;_0x389fe5['forEach'](_0x5422c8=>pendingMermaidNodes['add'](_0x5422c8)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x1e076d=Array['from'](pendingMermaidNodes)['filter'](_0xeaee97=>_0xeaee97['isConnected']);pendingMermaidNodes['clear']();if(_0x1e076d['length']===0x0)return;const _0x212e51=await loadMermaid();if(!_0x212e51)return;configureMermaidInstance();const _0x4e3d9e=getMermaidTheme();for(const _0x4f816a of _0x1e076d){const _0x3bc4cc=_0x4f816a['getAttribute']('data-mermaid-source');if(!_0x3bc4cc)continue;const _0x285473=_0x4f816a['getAttribute']('data-processed')==='true';if(_0x285473&&_0x4f816a['dataset']['mermaidTheme']===_0x4e3d9e)continue;restoreMermaidSource(_0x4f816a);try{if(typeof _0x212e51['run']==='function')await _0x212e51['run']({'nodes':[_0x4f816a]});else typeof _0x212e51['init']==='function'&&_0x212e51['init'](undefined,[_0x4f816a]);_0x4f816a['dataset']['mermaidTheme']=_0x4e3d9e,delete _0x4f816a['dataset']['mermaidError'];}catch(_0x54c532){console['error']('Mermaid\x20render\x20failed:',_0x54c532),restoreMermaidSource(_0x4f816a),_0x4f816a['dataset']['mermaidError']='true',delete _0x4f816a['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3fc323=>{_0x3fc323['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x3fc323);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x23a7c0=>{_0x23a7c0['forEach'](_0x46de8b=>{_0x46de8b['addedNodes']['forEach'](_0x591b71=>{_0x591b71['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x591b71);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x13d49c){const _0x175f9a=new Date(_0x13d49c),_0x2d824b=new Date(),_0x3c802d=_0x2d824b-_0x175f9a,_0x8ab564=Math['floor'](_0x3c802d/0x3e8),_0x49b081=Math['floor'](_0x8ab564/0x3c),_0x54c093=Math['floor'](_0x49b081/0x3c),_0x39cf9d=Math['floor'](_0x54c093/0x18);if(_0x8ab564<0x3c)return'now';if(_0x49b081<0x3c)return _0x49b081+'m\x20ago';if(_0x54c093<0x18)return _0x54c093+'h\x20ago';return _0x39cf9d+'d\x20ago';},'getStatusIcon'(_0x20d209){switch(_0x20d209){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x5f21e2){switch(_0x5f21e2){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x22bc88,_0x3e2b5b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x558061={};_0x558061['text/plain']=new Blob([_0x22bc88],{'type':'text/plain'});_0x3e2b5b&&(_0x558061['text/html']=new Blob([_0x3e2b5b],{'type':'text/html'}));const _0x1a42ed=new ClipboardItem(_0x558061);return await navigator['clipboard']['write']([_0x1a42ed]),!![];}catch(_0x3d797b){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3d797b);}try{const _0x40ae9c=_0x11df78=>{_0x11df78['preventDefault'](),_0x11df78['clipboardData']['setData']('text/plain',_0x22bc88),_0x3e2b5b&&_0x11df78['clipboardData']['setData']('text/html',_0x3e2b5b);};document['addEventListener']('copy',_0x40ae9c);const _0x4dd0d7=document['execCommand']('copy');document['removeEventListener']('copy',_0x40ae9c);if(_0x4dd0d7)return!![];}catch(_0x41da05){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x41da05);}try{const _0x31fb9b=document['createElement']('textarea');_0x31fb9b['value']=_0x22bc88,_0x31fb9b['style']['position']='fixed',_0x31fb9b['style']['opacity']='0',_0x31fb9b['style']['pointerEvents']='none',document['body']['appendChild'](_0x31fb9b),_0x31fb9b['select']();const _0x2c7286=document['execCommand']('copy');return document['body']['removeChild'](_0x31fb9b),_0x2c7286;}catch(_0x285c44){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x285c44),![];}},'showToast'(_0x276094,_0x51577d='info'){const _0x41f0bc=getNextToastId(),_0x5fed52=document['createElement']('div');_0x5fed52['className']='toast\x20toast-'+_0x51577d,_0x5fed52['textContent']=_0x276094,_0x5fed52['dataset']['toastId']=_0x41f0bc,document['body']['appendChild'](_0x5fed52);const _0x1d1078=_0x51577d==='error'?0x2710:0xbb8,_0x22c89f=setTimeout(()=>{removeToastById(_0x41f0bc);},_0x1d1078),_0x4b2988={'id':_0x41f0bc,'el':_0x5fed52,'timeoutId':_0x22c89f};return registerToast(_0x4b2988),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x5fed52['classList']['add']('show');});}),_0x41f0bc;},'showError'(_0x5cbba2){console['error'](_0x5cbba2);const _0x57eb4b=typeof _0x5cbba2==='string'?_0x5cbba2:_0x5cbba2['message']||'An\x20error\x20occurred';this['showToast'](_0x57eb4b,'error');},'showSuccess'(_0x543bd1){this['showToast'](_0x543bd1,'success');},'capitalize'(_0x522995){if(!_0x522995)return'';return _0x522995['charAt'](0x0)['toUpperCase']()+_0x522995['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x492b53){return escapeHtmlValue(_0x492b53);},'ansiToHtml'(_0xb9a9b9){if(_0xb9a9b9===null||_0xb9a9b9===undefined)return'';let _0x12f745=this['escapeHtml'](_0xb9a9b9);const _0x1d3bf0={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x37705a={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x3fb9dd=0x0;return _0x12f745=_0x12f745['replace'](/\x1b\[([0-9;]*)m/g,(_0xba0829,_0x32d0db)=>{if(!_0x32d0db||_0x32d0db==='0'){const _0x377b46='</span>'['repeat'](_0x3fb9dd);return _0x3fb9dd=0x0,_0x377b46;}const _0x185d4c=_0x32d0db['split'](';'),_0x5d2730=[];for(const _0x59624d of _0x185d4c){if(_0x59624d==='1')_0x5d2730['push']('font-weight:bold');else{if(_0x59624d==='2')_0x5d2730['push']('opacity:0.7');else{if(_0x59624d==='3')_0x5d2730['push']('font-style:italic');else{if(_0x59624d==='4')_0x5d2730['push']('text-decoration:underline');else{if(_0x59624d==='9')_0x5d2730['push']('text-decoration:line-through');else{if(_0x1d3bf0[_0x59624d])_0x5d2730['push']('color:'+_0x1d3bf0[_0x59624d]);else{if(_0x37705a[_0x59624d])_0x5d2730['push']('background-color:'+_0x37705a[_0x59624d]);}}}}}}}if(_0x5d2730['length']>0x0)return _0x3fb9dd++,'<span\x20style=\x22'+_0x5d2730['join'](';')+'\x22>';return'';}),_0x12f745+='</span>'['repeat'](_0x3fb9dd),_0x12f745=_0x12f745['replace'](/\\u001b\[([0-9;]*)m/g,(_0x9e41af,_0x33f838)=>{if(!_0x33f838||_0x33f838==='0')return'';const _0x3fe2bf=_0x33f838['split'](';'),_0x55c456=[];for(const _0x4810a2 of _0x3fe2bf){if(_0x4810a2==='1')_0x55c456['push']('font-weight:bold');else{if(_0x1d3bf0[_0x4810a2])_0x55c456['push']('color:'+_0x1d3bf0[_0x4810a2]);else{if(_0x37705a[_0x4810a2])_0x55c456['push']('background-color:'+_0x37705a[_0x4810a2]);}}}if(_0x55c456['length']>0x0)return'<span\x20style=\x22'+_0x55c456['join'](';')+'\x22>';return'';}),_0x12f745;},'showModal'({title:_0x7f621,content:_0x309176,buttons:buttons=[]}){const _0x55fe31='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x7f621)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x309176+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x4dfcc7,_0x3bf561)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x4dfcc7['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x3bf561+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x4dfcc7['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0xd2c824=document['createElement']('div');_0xd2c824['id']='utils-modal',_0xd2c824['className']='modal',_0xd2c824['innerHTML']=_0x55fe31,document['body']['appendChild'](_0xd2c824);const _0xe951ff=document['getElementById']('utils-modal-close');_0xe951ff&&_0xe951ff['addEventListener']('click',()=>this['hideModal']());const _0x345495=_0xd2c824['querySelectorAll']('[data-btn-index]');_0x345495['forEach'](_0x4c9532=>{const _0x3c50b6=parseInt(_0x4c9532['dataset']['btnIndex']);buttons[_0x3c50b6]?.['onClick']&&_0x4c9532['addEventListener']('click',buttons[_0x3c50b6]['onClick']);});const _0xf4520=document['getElementById']('utils-modal-overlay');_0xf4520&&_0xf4520['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x19191b=document['getElementById']('utils-modal');_0x19191b&&_0x19191b['remove']();},'parseKeyValuePairs'(_0x27c220){const _0x6e7960={};if(!_0x27c220)return _0x6e7960;return _0x27c220['split'](/\r?\n/)['map'](_0x570310=>_0x570310['trim']())['filter'](Boolean)['forEach'](_0x5a0627=>{const _0x1e04e3=_0x5a0627['indexOf']('=');if(_0x1e04e3>0x0){const _0x18ee4d=_0x5a0627['slice'](0x0,_0x1e04e3)['trim'](),_0x4acee8=_0x5a0627['slice'](_0x1e04e3+0x1)['trim']();if(_0x18ee4d)_0x6e7960[_0x18ee4d]=_0x4acee8;}}),_0x6e7960;},'debounce'(_0x5d65dd,_0x15aaa4=0xfa){let _0x283cba=null;return(..._0x3681eb)=>{clearTimeout(_0x283cba),_0x283cba=setTimeout(()=>_0x5d65dd['apply'](this,_0x3681eb),_0x15aaa4);};},'formatTimestamp'(_0x35699c){if(!_0x35699c)return'N/A';const _0xacef7d=new Date(_0x35699c);return _0xacef7d['toLocaleDateString']()+'\x20'+_0xacef7d['toLocaleTimeString']();},'getQueryParams'(){const _0x176c32=new URLSearchParams(window['location']['search']),_0x5c18b3={};for(const [_0x2dc024,_0x1d0deb]of _0x176c32){_0x5c18b3[_0x2dc024]=_0x1d0deb;}return _0x5c18b3;},'formatDuration'(_0x5a805f,_0x2c85d0){if(!_0x5a805f)return'N/A';const _0x2ae3a2=new Date(_0x5a805f),_0x42fc78=_0x2c85d0?new Date(_0x2c85d0):new Date(),_0x10f7c7=_0x42fc78-_0x2ae3a2;if(_0x10f7c7<0x0)return'0s';const _0x36e1f0=Math['floor'](_0x10f7c7/0x3e8),_0x2474bc=Math['floor'](_0x36e1f0/0x3c),_0x79bf09=Math['floor'](_0x2474bc/0x3c),_0x2e43df=Math['floor'](_0x79bf09/0x18);if(_0x36e1f0<0x3c)return _0x36e1f0+'s';if(_0x2474bc<0x3c)return _0x2474bc+'m\x20'+_0x36e1f0%0x3c+'s';if(_0x79bf09<0x18)return _0x79bf09+'h\x20'+_0x2474bc%0x3c+'m\x20'+_0x36e1f0%0x3c+'s';return _0x2e43df+'d\x20'+_0x79bf09%0x18+'h\x20'+_0x2474bc%0x3c+'m';},'renderMarkdown'(_0x35aaf3,_0x1201e7={}){if(!_0x35aaf3)return'';_0x35aaf3=this['rewriteAttachmentLinks'](_0x35aaf3,_0x1201e7),_0x35aaf3=this['rewriteColorSyntax'](_0x35aaf3);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x35aaf3,_0x1201e7);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x35aaf3);}catch(_0x184858){return console['error']('Markdown\x20parsing\x20error:',_0x184858),this['renderMarkdownFallback'](_0x35aaf3,_0x1201e7);}},'rewriteAttachmentLinks'(_0x290b07,_0x4be781={}){const _0x41426b=typeof _0x4be781['resolveAttachmentUrl']==='function'?_0x4be781['resolveAttachmentUrl']:_0x4be781['taskId']?_0x5dfc73=>API_BASE+'/tasks/'+_0x4be781['taskId']+'/attachments/'+encodeURIComponent(_0x5dfc73):null;if(!_0x41426b)return _0x290b07;return String(_0x290b07)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x38cfb4,_0x50d99b)=>{const _0xc62411=String(_0x50d99b||'')['trim']();if(!_0xc62411)return _0x38cfb4;let _0x392712=_0xc62411;try{_0x392712=decodeURIComponent(_0xc62411);}catch{}const _0x29db82=_0x41426b(_0x392712);if(!_0x29db82)return _0x38cfb4;return']('+_0x29db82+')';});},'rewriteColorSyntax'(_0x3c00ce){if(!_0x3c00ce)return _0x3c00ce;return String(_0x3c00ce)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x569b9c,_0x2f143e,_0x26c7d8)=>{const _0x46e45f=this['rewriteColorSyntax'](_0x26c7d8);return'<span\x20style=\x22color:\x20'+_0x2f143e+'\x22>'+_0x46e45f+'</span>';});},'renderMarkdownFallback'(_0x4d7b2c,_0x2bd97f={}){if(!_0x4d7b2c)return'';_0x4d7b2c=_0x4d7b2c['replace'](/\r\n/g,'\x0a'),_0x4d7b2c=_0x4d7b2c['replace'](/\r/g,'\x0a'),_0x4d7b2c=this['rewriteAttachmentLinks'](_0x4d7b2c,_0x2bd97f);let _0x29a955=this['escapeHtml'](_0x4d7b2c);return _0x29a955=_0x29a955['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x29a955=_0x29a955['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x29a955=_0x29a955['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x29a955=_0x29a955['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x29a955=_0x29a955['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x29a955=_0x29a955['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x29a955=_0x29a955['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x29a955=_0x29a955['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x29a955=_0x29a955['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x29a955=_0x29a955['replace'](/\n\n/g,'</p><p>'),_0x29a955=_0x29a955['replace'](/\n/g,'<br>'),'<p>'+_0x29a955+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1d47ad=new Uint8Array(0x10);crypto['getRandomValues'](_0x1d47ad),_0x1d47ad[0x6]=_0x1d47ad[0x6]&0xf|0x40,_0x1d47ad[0x8]=_0x1d47ad[0x8]&0x3f|0x80;const _0x46d2d8=Array['from'](_0x1d47ad,_0x3aac97=>_0x3aac97['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x46d2d8['slice'](0x0,0x8)+'-'+_0x46d2d8['slice'](0x8,0xc)+'-'+_0x46d2d8['slice'](0xc,0x10)+'-'+_0x46d2d8['slice'](0x10,0x14)+'-'+_0x46d2d8['slice'](0x14);}};export class CustomSelect{constructor(_0x38bda0,_0x37bd88={}){this['nativeSelect']=_0x38bda0,this['options']=_0x37bd88,this['isOpen']=![],this['selectedValue']=_0x38bda0['value']||'',this['searchable']=_0x37bd88['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x14d81d=document['createElement']('div');_0x14d81d['className']='custom-select';const _0x5163fb=document['createElement']('div');_0x5163fb['className']='custom-select-trigger',_0x5163fb['setAttribute']('tabindex','0'),_0x5163fb['setAttribute']('role','button'),_0x5163fb['setAttribute']('aria-haspopup','listbox');const _0x353d91=document['createElement']('span');_0x353d91['className']='custom-select-trigger-text';const _0x448b3d=document['createElement']('span');_0x448b3d['className']='custom-select-arrow',_0x448b3d['textContent']='▼',_0x5163fb['appendChild'](_0x353d91),_0x5163fb['appendChild'](_0x448b3d);const _0x2e9f5f=document['createElement']('div');_0x2e9f5f['className']='custom-select-dropdown',_0x2e9f5f['setAttribute']('role','listbox');if(this['searchable']){const _0x495ca0=document['createElement']('div');_0x495ca0['className']='custom-select-search';const _0x4ccee1=document['createElement']('input');_0x4ccee1['type']='text',_0x4ccee1['className']='custom-select-search-input',_0x4ccee1['placeholder']='Type\x20to\x20search...',_0x4ccee1['setAttribute']('aria-label','Search\x20options'),_0x4ccee1['addEventListener']('input',_0x152f0d=>{this['searchQuery']=_0x152f0d['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x4ccee1['addEventListener']('keydown',_0x56274f=>{if(_0x56274f['key']==='Escape')_0x56274f['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x56274f['key']==='Enter'){_0x56274f['preventDefault'](),_0x56274f['stopPropagation']();const _0x2cb453=_0x2e9f5f['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x2cb453){const _0x2ebd5f=_0x2cb453['getAttribute']('data-value');this['select'](_0x2ebd5f);}}}}),_0x495ca0['appendChild'](_0x4ccee1),_0x2e9f5f['appendChild'](_0x495ca0),this['searchInput']=_0x4ccee1;}const _0x2d7453=document['createElement']('div');_0x2d7453['className']='custom-select-options',_0x2e9f5f['appendChild'](_0x2d7453),_0x14d81d['appendChild'](_0x5163fb),_0x14d81d['appendChild'](_0x2e9f5f),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x14d81d,this['nativeSelect']),this['wrapper']=_0x14d81d,this['trigger']=_0x5163fb,this['triggerText']=_0x353d91,this['dropdown']=_0x2e9f5f,this['optionsContainer']=_0x2d7453,_0x5163fb['addEventListener']('click',()=>this['toggle']()),_0x5163fb['addEventListener']('keydown',_0xda45ee=>this['handleKeydown'](_0xda45ee)),document['addEventListener']('click',_0x8a0071=>{!_0x14d81d['contains'](_0x8a0071['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x33fde8=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x33fde8['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x1060dd=new MutationObserver(()=>{this['updateDisabledState']();});_0x1060dd['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4191df=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4191df['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x30b04c=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x30b04c),this['trigger']['setAttribute']('aria-disabled',_0x30b04c?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x30b04c?'-1':'0'),_0x30b04c&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x472ff9=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x2e00c1=_0x472ff9['filter'](_0x364973=>!_0x364973['disabled']&&!_0x364973['hidden']);_0x472ff9['forEach']((_0x131f66,_0x29e1b5)=>{const _0xa8fac3=document['createElement']('div');_0xa8fac3['className']='custom-select-option',_0xa8fac3['textContent']=_0x131f66['textContent'],_0xa8fac3['setAttribute']('data-value',_0x131f66['value']),_0xa8fac3['setAttribute']('data-index',_0x29e1b5),_0xa8fac3['setAttribute']('role','option'),_0x131f66['disabled']?_0xa8fac3['classList']['add']('disabled'):_0xa8fac3['addEventListener']('click',()=>this['select'](_0x131f66['value'])),_0x131f66['value']===this['selectedValue']&&_0xa8fac3['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0xa8fac3),this['allOptions']['push']({'element':_0xa8fac3,'text':_0x131f66['textContent']['toLowerCase'](),'value':_0x131f66['value'],'disabled':_0x131f66['disabled']});});if(this['searchable']&&this['searchInput']){const _0x37aba9=this['searchInput']['parentElement'];_0x2e00c1['length']>0x3?_0x37aba9['style']['display']='':_0x37aba9['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x347c8b=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x56f553=>{if(!_0x347c8b||_0x56f553['disabled'])_0x56f553['element']['style']['display']='';else{const _0x13185a=_0x56f553['text']['includes'](_0x347c8b);_0x56f553['element']['style']['display']=_0x13185a?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x5d6990){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x5d6990,this['nativeSelect']['value']=_0x5d6990;const _0x315e6a=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x315e6a),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x2adffb=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x2adffb&&(this['triggerText']['textContent']=_0x2adffb['textContent'],_0x2adffb['disabled']||_0x2adffb['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0xcd2542=>{_0xcd2542['getAttribute']('data-value')===this['selectedValue']?_0xcd2542['classList']['add']('selected'):_0xcd2542['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x36e6e2=window['getComputedStyle'](this['dropdown']);if(_0x36e6e2['position']==='fixed'){const _0x1d5628=this['trigger']['getBoundingClientRect'](),_0x2a227b=parseInt(_0x36e6e2['maxHeight'])||0xc8,_0xf712d8=window['innerHeight'],_0x2ea9b1=_0xf712d8-_0x1d5628['bottom'],_0x4c747a=_0x1d5628['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x47bb88;_0x2ea9b1<_0x2a227b&&_0x4c747a>_0x2ea9b1?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0xf712d8-_0x1d5628['top']+'px',_0x47bb88=Math['min'](_0x2a227b,_0x4c747a-0xa),this['dropdown']['style']['maxHeight']=_0x47bb88+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x1d5628['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x47bb88=Math['min'](_0x2a227b,_0x2ea9b1-0xa),this['dropdown']['style']['maxHeight']=_0x47bb88+'px');if(this['optionsContainer']){let _0xb924ff=_0x47bb88;if(this['searchInput']){const _0x3357c9=this['searchInput']['parentElement'];_0x3357c9&&(_0xb924ff-=_0x3357c9['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0xb924ff)+'px';}this['dropdown']['style']['left']=_0x1d5628['left']+'px',this['dropdown']['style']['width']=_0x1d5628['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x107c88=this['searchInput']['parentElement'];_0x107c88&&_0x107c88['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x4dd9b5){if(this['nativeSelect']['disabled'])return;if(_0x4dd9b5['key']==='Enter'||_0x4dd9b5['key']==='\x20')_0x4dd9b5['preventDefault'](),this['toggle']();else _0x4dd9b5['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x49b366='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x49b366),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x36898f=document['getElementById']('confirm-dialog-close'),_0x120df1=document['getElementById']('confirm-dialog-cancel'),_0x4648dc=document['getElementById']('confirm-dialog-confirm'),_0x5cdfa1=this['_modal']['querySelector']('.modal-overlay');_0x36898f['addEventListener']('click',()=>this['_resolve'](![])),_0x120df1['addEventListener']('click',()=>this['_resolve'](![])),_0x4648dc['addEventListener']('click',()=>this['_resolve'](!![])),_0x5cdfa1['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1a9a2e=>{if(_0x1a9a2e['key']==='Escape')_0x1a9a2e['preventDefault'](),this['_resolve'](![]);else _0x1a9a2e['key']==='Enter'&&(_0x1a9a2e['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x1a1d50,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x5e7670=>{this['_resolvePromise']=_0x5e7670,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x1a1d50;const _0x38c85c=document['getElementById']('confirm-dialog-cancel'),_0x257abb=document['getElementById']('confirm-dialog-confirm');_0x38c85c['textContent']=cancelText,_0x257abb['textContent']=confirmText,_0x257abb['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x257abb['focus']();});},'_resolve'(_0x1c965e){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x1c965e),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x55f375,_0x3e73a9={}){this['container']=_0x55f375,this['options']={'placeholder':_0x3e73a9['placeholder']||'Type\x20to\x20search...','maxItems':_0x3e73a9['maxItems']||0x64,'loadItems':_0x3e73a9['loadItems']||(async()=>[]),'renderItem':_0x3e73a9['renderItem']||(_0x38ba42=>({'primary':String(_0x38ba42),'secondary':''})),'onSelect':_0x3e73a9['onSelect']||(()=>{}),'filterItems':_0x3e73a9['filterItems']||null,'getItemValue':_0x3e73a9['getItemValue']||(_0x48e5e0=>_0x48e5e0),'sortItems':_0x3e73a9['sortItems']||null,'debounceMs':_0x3e73a9['debounceMs']||0xc8,'minCharsForSearch':_0x3e73a9['minCharsForSearch']||0x0,'emptyMessage':_0x3e73a9['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x3e73a9['loadingMessage']||'Loading...','preload':_0x3e73a9['preload']!==![],'searchMode':_0x3e73a9['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='×',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0xc8d94e=>this['onBlur'](_0xc8d94e)),this['input']['addEventListener']('input',_0x230232=>this['onInput'](_0x230232)),this['input']['addEventListener']('keydown',_0x33dc13=>this['onKeydown'](_0x33dc13)),this['clearBtn']['addEventListener']('mousedown',_0x4139ed=>{_0x4139ed['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x3cb9f5=>{_0x3cb9f5['preventDefault']();}),document['addEventListener']('click',_0x412dd1=>{!this['wrapper']['contains'](_0x412dd1['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x3f448a){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3f448a);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5f35c5){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x45d001){const _0x2aa064=_0x45d001['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x2aa064);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x2aa064):this['loadAndShow'](_0x2aa064);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x569662){switch(_0x569662['key']){case'ArrowDown':_0x569662['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x569662['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x569662['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x569662['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x4f19dd){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x412a97=this['selectedIndex']+_0x4f19dd;if(_0x412a97>=0x0&&_0x412a97<this['filteredItems']['length']){this['selectedIndex']=_0x412a97,this['updateSelectionHighlight']();const _0x4aed3d=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x4aed3d[this['selectedIndex']]&&_0x4aed3d[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x212a8c=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x212a8c['forEach']((_0x1305ab,_0x1eba69)=>{_0x1305ab['classList']['toggle']('keyboard-selected',_0x1eba69===this['selectedIndex']);});}async['loadAndShow'](_0x37a5db){this['showLoading']();try{const _0x170512=await this['options']['loadItems'](_0x37a5db);if(this['options']['searchMode']==='server'){let _0x315da6=_0x170512;this['options']['sortItems']&&(_0x315da6=this['options']['sortItems']([..._0x170512]));this['filteredItems']=_0x315da6;const _0x397142=this['filteredItems']['length']>=this['options']['maxItems'];_0x397142&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x397142),this['open']();}else this['allItems']=_0x170512,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x37a5db);}catch(_0x3cc956){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x3cc956),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0xd9f0d6){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0xd9f0d6):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x18bdfc=this['filteredItems']['length']>=this['options']['maxItems'];_0x18bdfc&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x18bdfc),this['open']();}['renderItems'](_0x5c90b3){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x107f4a,_0x4e1996)=>{const _0x344af0=document['createElement']('div');_0x344af0['className']='autocomplete-select-item',_0x344af0['setAttribute']('role','option'),_0x344af0['setAttribute']('data-index',_0x4e1996);const _0x48cdf6=this['options']['renderItem'](_0x107f4a);let _0x25115d='';_0x48cdf6['icon']&&(_0x25115d='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x48cdf6['iconClass']||'')+'\x22>'+_0x48cdf6['icon']+'</span>'),_0x344af0['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x25115d+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x48cdf6['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x48cdf6['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x48cdf6['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x344af0['addEventListener']('click',()=>{this['selectItem'](_0x107f4a);}),_0x344af0['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x4e1996,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x344af0);}),_0x5c90b3?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0xdc2b72){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0xdc2b72)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x38894f){this['selectedItem']=_0x38894f;const _0x24933f=this['options']['renderItem'](_0x38894f);this['input']['value']=_0x24933f['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x38894f);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x33cb0b){if(_0x33cb0b){this['selectedItem']=_0x33cb0b;const _0x4b25a9=this['options']['renderItem'](_0x33cb0b);this['input']['value']=_0x4b25a9['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x4bc1d2){this['allItems']=_0x4bc1d2,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x3dcb23){this['input']['placeholder']=_0x3dcb23;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x39b31d=null){const _0x3747c5=document['getElementById']('admin-menu-container'),_0x7c9a63=document['getElementById']('admin-menu-btn'),_0x3fd47e=document['getElementById']('admin-menu');if(!_0x3747c5||!_0x7c9a63||!_0x3fd47e)return;try{!_0x39b31d&&(_0x39b31d=await API['getCurrentUser']());if(_0x39b31d){const _0x32c2cf=window['Permissions'],_0x5c151b=_0x32c2cf['hasServerPermission'](_0x39b31d,'*')||_0x32c2cf['hasEnvPermission'](_0x39b31d,'environments:manage')||_0x32c2cf['hasServerPermission'](_0x39b31d,'users:create')||_0x32c2cf['hasTeamPermission'](_0x39b31d,'teams:manage')||_0x32c2cf['hasEnvPermission'](_0x39b31d,'environments:view_details');if(!_0x5c151b)return;_0x3747c5['hidden']=![];if(!_0x32c2cf['hasServerPermission'](_0x39b31d,'*')){const _0x1b3b0e=_0x3fd47e['querySelectorAll']('.admin-menu-item');_0x1b3b0e['forEach'](_0x4e9cb0=>{const _0x3f2af1=_0x4e9cb0['querySelector']('.option-text')?.['textContent']?.['trim']();_0x3f2af1==='Users'&&!_0x32c2cf['hasServerPermission'](_0x39b31d,'users:create')&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Skills'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Server\x20Settings'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Server\x20Administration'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Git\x20History'&&(_0x4e9cb0['hidden']=!![]),_0x3f2af1==='Roles'&&(_0x4e9cb0['hidden']=!![]);});}_0x7c9a63['addEventListener']('click',_0x566d24=>{_0x566d24['stopPropagation']();const _0x5845ef=document['getElementById']('actions-menu');if(_0x5845ef)_0x5845ef['hidden']=!![];_0x3fd47e['hidden']=!_0x3fd47e['hidden'];}),document['addEventListener']('click',_0x6f9a08=>{!_0x3fd47e['hidden']&&!_0x7c9a63['contains'](_0x6f9a08['target'])&&!_0x3fd47e['contains'](_0x6f9a08['target'])&&(_0x3fd47e['hidden']=!![]);}),document['addEventListener']('keydown',_0x575a3e=>{_0x575a3e['key']==='Escape'&&!_0x3fd47e['hidden']&&(_0x3fd47e['hidden']=!![]);});}}catch(_0x5e662e){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x5e662e['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|