@profoundlogic/coderflow-server 0.8.9 → 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 _0x2fd19f=window['location']['pathname'],_0x7d15a2=_0x2fd19f['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x7d15a2)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x7d15a2[0x1]),_0x7d15a2[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x130352={}){const _0x125b8e=new URLSearchParams();_0x130352['userId']&&_0x125b8e['set']('userId',String(_0x130352['userId']));_0x130352['automation']&&_0x125b8e['set']('automation',String(_0x130352['automation']));const _0xec10cf=API_BASE+'/tasks/stats'+(_0x125b8e['toString']()?'?'+_0x125b8e['toString']():''),_0x199538=await fetch(_0xec10cf);if(!_0x199538['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x199538['statusText']);return await _0x199538['json']();},async 'getTasks'(_0x3aa03a={}){const _0x1d1e37=new URLSearchParams();_0x3aa03a['status']&&_0x1d1e37['set']('status',String(_0x3aa03a['status']));_0x3aa03a['environment']&&_0x1d1e37['set']('environment',String(_0x3aa03a['environment']));_0x3aa03a['automation']&&_0x1d1e37['set']('automation',String(_0x3aa03a['automation']));if(_0x3aa03a['include']){const _0x5dc8f3=Array['isArray'](_0x3aa03a['include'])?_0x3aa03a['include']['join'](','):String(_0x3aa03a['include']);_0x5dc8f3&&_0x1d1e37['set']('include',_0x5dc8f3);}_0x3aa03a['filter']&&_0x1d1e37['set']('filter',String(_0x3aa03a['filter']));_0x3aa03a['page']&&_0x1d1e37['set']('page',String(_0x3aa03a['page']));_0x3aa03a['limit']&&_0x1d1e37['set']('limit',String(_0x3aa03a['limit']));_0x3aa03a['userId']&&_0x1d1e37['set']('userId',String(_0x3aa03a['userId']));_0x3aa03a['search']&&_0x1d1e37['set']('search',String(_0x3aa03a['search']));_0x3aa03a['includeChildTasks']&&_0x1d1e37['set']('includeChildTasks','true');const _0x57656e=API_BASE+'/tasks'+(_0x1d1e37['toString']()?'?'+_0x1d1e37['toString']():''),_0xbd64c9=await fetch(_0x57656e);if(!_0xbd64c9['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0xbd64c9['statusText']);return await _0xbd64c9['json']();},async 'getAutomations'(_0x18f768={}){const _0x5e21de=new URLSearchParams();_0x18f768['environment']&&_0x5e21de['set']('environment',String(_0x18f768['environment']));const _0x336d50=await fetch(API_BASE+'/api/automations'+(_0x5e21de['toString']()?'?'+_0x5e21de['toString']():''));if(!_0x336d50['ok']){const _0x256ae2=await _0x336d50['json']()['catch'](()=>({}));throw new Error(_0x256ae2['message']||_0x256ae2['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x336d50['statusText']);}return await _0x336d50['json']();},async 'getAutomation'(_0x36b72c){const _0x579940=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36b72c));if(!_0x579940['ok']){const _0x467cd9=await _0x579940['json']()['catch'](()=>({}));throw new Error(_0x467cd9['message']||_0x467cd9['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x579940['statusText']);}return await _0x579940['json']();},async 'createAutomation'(_0x563cca){const _0x29910b=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x563cca||{})});if(!_0x29910b['ok']){const _0x4982ed=await _0x29910b['json']()['catch'](()=>({}));throw new Error(_0x4982ed['message']||_0x4982ed['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x29910b['statusText']);}return await _0x29910b['json']();},async 'updateAutomation'(_0x14f3ea,_0x4dd22f){const _0x4d953d=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x14f3ea),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4dd22f||{})});if(!_0x4d953d['ok']){const _0xb0c568=await _0x4d953d['json']()['catch'](()=>({}));throw new Error(_0xb0c568['message']||_0xb0c568['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x4d953d['statusText']);}return await _0x4d953d['json']();},async 'deleteAutomation'(_0x67274b){const _0xdb0317=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x67274b),{'method':'DELETE'});if(!_0xdb0317['ok']){const _0x4a28e3=await _0xdb0317['json']()['catch'](()=>({}));throw new Error(_0x4a28e3['message']||_0x4a28e3['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0xdb0317['statusText']);}return await _0xdb0317['json']();},async 'triggerAutomation'(_0x226ca4){const _0x3c9066=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x226ca4)+'/trigger',{'method':'POST'});if(!_0x3c9066['ok']){const _0x544474=await _0x3c9066['json']()['catch'](()=>({}));throw new Error(_0x544474['message']||_0x544474['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x3c9066['statusText']);}return await _0x3c9066['json']();},async 'setAutomationEnabled'(_0x3ac3cd,_0x1a5e8f){const _0x44986b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x3ac3cd)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x1a5e8f})});if(!_0x44986b['ok']){const _0x5a5c7c=await _0x44986b['json']()['catch'](()=>({}));throw new Error(_0x5a5c7c['message']||_0x5a5c7c['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x44986b['statusText']);}return await _0x44986b['json']();},async 'getAutomationHistory'(_0x2ca864,_0x46233f=0x32){const _0x37c793=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2ca864)+'/history?limit='+encodeURIComponent(String(_0x46233f)));if(!_0x37c793['ok']){const _0x50340b=await _0x37c793['json']()['catch'](()=>({}));throw new Error(_0x50340b['message']||_0x50340b['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x37c793['statusText']);}return await _0x37c793['json']();},async 'getTask'(_0x35de6e,_0x835f85={}){const _0x294b2b=new URLSearchParams();if(_0x835f85['include']){const _0x2b4995=Array['isArray'](_0x835f85['include'])?_0x835f85['include']['join'](','):String(_0x835f85['include']);if(_0x2b4995)_0x294b2b['set']('include',_0x2b4995);}const _0x5f178=await fetch(API_BASE+'/tasks/'+_0x35de6e+(_0x294b2b['toString']()?'?'+_0x294b2b['toString']():''));if(!_0x5f178['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x5f178['statusText']);return await _0x5f178['json']();},async 'getTaskResults'(_0x1a7ad3){const _0x393af4=await fetch(API_BASE+'/tasks/'+_0x1a7ad3+'/results');if(!_0x393af4['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x393af4['statusText']);return await _0x393af4['json']();},async 'getTaskPatches'(_0x63d952){const _0x38bf41=await fetch(API_BASE+'/tasks/'+_0x63d952+'/patches');if(!_0x38bf41['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x38bf41['statusText']);return await _0x38bf41['json']();},async 'getTaskAttachments'(_0x38572a){const _0x1f62a3=await fetch(API_BASE+'/tasks/'+_0x38572a+'/attachments');if(!_0x1f62a3['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x1f62a3['statusText']);return await _0x1f62a3['json']();},async 'uploadAttachments'(_0x535f55,_0x280298){const _0x1201dd=new FormData();for(const _0x215aca of _0x280298){_0x1201dd['append']('attachments',_0x215aca);}const _0x48e6e6=await fetch(API_BASE+'/tasks/'+_0x535f55+'/attachments',{'method':'POST','body':_0x1201dd});if(!_0x48e6e6['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x48e6e6['statusText']);return await _0x48e6e6['json']();},async 'isAINameGenerationAvailable'(){try{const _0x1bf65c=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x1bf65c['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x1bf65c['json']();}catch(_0x308590){return{'available':![],'reason':_0x308590['message']};}},async 'generateTaskName'(_0x44aa78){try{const _0x453033=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x44aa78})});return await _0x453033['json']();}catch(_0x3064d6){return{'success':![],'error':_0x3064d6['message']};}},async 'createTask'(_0x5bcb2e){let _0x2e7057,_0x4d0cf8={};if(_0x5bcb2e['files']&&_0x5bcb2e['files']['length']>0x0){const _0x34e00f=new FormData();for(const [_0x5eb7fb,_0x140958]of Object['entries'](_0x5bcb2e)){if(_0x5eb7fb!=='files'){if(_0x140958==null)continue;typeof _0x140958==='object'?_0x34e00f['append'](_0x5eb7fb,JSON['stringify'](_0x140958)):_0x34e00f['append'](_0x5eb7fb,String(_0x140958));}}for(const _0x57f6c1 of _0x5bcb2e['files']){_0x34e00f['append']('attachments',_0x57f6c1);}_0x2e7057=_0x34e00f;}else _0x4d0cf8['Content-Type']='application/json',_0x2e7057=JSON['stringify'](_0x5bcb2e);const _0x20b617=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4d0cf8,'body':_0x2e7057});if(!_0x20b617['ok']){const _0x1aa3c6=await _0x20b617['json'](),_0x3ba39a=new Error(_0x1aa3c6['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20b617['statusText']),{message:_0xbe5fcb,..._0xee2a10}=_0x1aa3c6;Object['assign'](_0x3ba39a,_0xee2a10);throw _0x3ba39a;}return await _0x20b617['json']();},async 'createTestTask'(_0x3688ee){const _0x22bb0d=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3688ee)});if(!_0x22bb0d['ok']){const _0x4b9489=await _0x22bb0d['json']();throw new Error(_0x4b9489['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x22bb0d['statusText']);}return await _0x22bb0d['json']();},async 'createEphemeralTest'(_0x124ef5){const _0x4fa64e=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x124ef5)});if(!_0x4fa64e['ok']){const _0x48279c=await _0x4fa64e['json']();throw new Error(_0x48279c['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x4fa64e['statusText']);}return await _0x4fa64e['json']();},async 'createDeployTask'(_0x3e0db4){const _0xe12ce7=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3e0db4)});if(!_0xe12ce7['ok']){const _0x537243=await _0xe12ce7['json']();throw new Error(_0x537243['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0xe12ce7['statusText']);}return await _0xe12ce7['json']();},async 'getEnvironments'(){const _0x2c368a=await fetch(API_BASE+'/environments');if(!_0x2c368a['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x2c368a['statusText']);return await _0x2c368a['json']();},async 'getEnvironment'(_0x53fa06){const _0x211568=await fetch(API_BASE+'/environments/'+_0x53fa06);if(!_0x211568['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x211568['statusText']);return await _0x211568['json']();},async 'getEnvironmentRepoHistory'(_0x17d83f,_0x526a36,_0x3b37e6={}){if(!_0x17d83f||!_0x526a36)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x25a40a=new URLSearchParams();if(_0x3b37e6['limit'])_0x25a40a['set']('limit',String(_0x3b37e6['limit']));if(_0x3b37e6['offset'])_0x25a40a['set']('offset',String(_0x3b37e6['offset']));if(_0x3b37e6['search'])_0x25a40a['set']('search',String(_0x3b37e6['search']));if(_0x3b37e6['branch'])_0x25a40a['set']('branch',String(_0x3b37e6['branch']));const _0x362cb3=API_BASE+'/environments/'+encodeURIComponent(_0x17d83f)+'/repos/'+encodeURIComponent(_0x526a36)+'/git/history',_0x560a60=await fetch(''+_0x362cb3+(_0x25a40a['toString']()?'?'+_0x25a40a['toString']():''));if(!_0x560a60['ok']){const _0x43671d=await _0x560a60['json']()['catch'](()=>({}));throw new Error(_0x43671d['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0x560a60['statusText']);}return await _0x560a60['json']();},async 'getEnvironmentRepoCommit'(_0x17289b,_0x5ad29b,_0x465de5){if(!_0x17289b||!_0x5ad29b||!_0x465de5)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x1ac195=API_BASE+'/environments/'+encodeURIComponent(_0x17289b)+'/repos/'+encodeURIComponent(_0x5ad29b)+'/git/commits/'+encodeURIComponent(_0x465de5),_0x1d9718=await fetch(_0x1ac195);if(!_0x1d9718['ok']){const _0x48b89e=await _0x1d9718['json']()['catch'](()=>({}));throw new Error(_0x48b89e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d9718['statusText']);}return await _0x1d9718['json']();},async 'getEnvironmentRepoBranches'(_0x1e93a2,_0xa8c3d8){if(!_0x1e93a2||!_0xa8c3d8)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x47f919=API_BASE+'/environments/'+encodeURIComponent(_0x1e93a2)+'/repos/'+encodeURIComponent(_0xa8c3d8)+'/git/branches',_0x5a4da8=await fetch(_0x47f919);if(!_0x5a4da8['ok']){const _0x51d9b3=await _0x5a4da8['json']()['catch'](()=>({}));throw new Error(_0x51d9b3['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x5a4da8['statusText']);}return await _0x5a4da8['json']();},async 'revertEnvironmentRepoCommit'(_0x32f528,_0x2ca418,_0x14e1f0,_0x323426={}){if(!_0x32f528||!_0x2ca418||!_0x14e1f0)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x4163ef=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x32f528)+'/repos/'+encodeURIComponent(_0x2ca418)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x14e1f0,..._0x323426})});if(!_0x4163ef['ok']){const _0x3ea57d=await _0x4163ef['json']()['catch'](()=>({}));throw new Error(_0x3ea57d['message']||_0x3ea57d['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x4163ef['statusText']);}return await _0x4163ef['json']();},async 'getTemplates'(_0x3fead6={}){const _0x12e891=new URLSearchParams();if(_0x3fead6['include']){const _0xf09f20=Array['isArray'](_0x3fead6['include'])?_0x3fead6['include']['join'](','):String(_0x3fead6['include']);if(_0xf09f20)_0x12e891['set']('include',_0xf09f20);}const _0x144998=await fetch(API_BASE+'/templates'+(_0x12e891['toString']()?'?'+_0x12e891['toString']():''));if(!_0x144998['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x144998['statusText']);return await _0x144998['json']();},async 'getTemplatesForEnvironment'(_0x5110c0,_0x39d8d3={}){if(!_0x5110c0)throw new Error('Environment\x20name\x20is\x20required');const _0x2d2ba0=new URLSearchParams();if(_0x39d8d3['include']){const _0x26fee8=Array['isArray'](_0x39d8d3['include'])?_0x39d8d3['include']['join'](','):String(_0x39d8d3['include']);if(_0x26fee8)_0x2d2ba0['set']('include',_0x26fee8);}const _0x32c947=await fetch(API_BASE+'/templates/'+_0x5110c0+(_0x2d2ba0['toString']()?'?'+_0x2d2ba0['toString']():''));if(!_0x32c947['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x5110c0+':\x20'+_0x32c947['statusText']);return await _0x32c947['json']();},async 'getTemplate'(_0x1012d6,_0x5910c1,_0xc95c58={}){if(!_0x1012d6||!_0x5910c1)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x40484c=new URLSearchParams();if(_0xc95c58['include']){const _0x4a7efd=Array['isArray'](_0xc95c58['include'])?_0xc95c58['include']['join'](','):String(_0xc95c58['include']);if(_0x4a7efd)_0x40484c['set']('include',_0x4a7efd);}const _0x28d17b=await fetch(API_BASE+'/templates/'+_0x1012d6+'/'+_0x5910c1+(_0x40484c['toString']()?'?'+_0x40484c['toString']():''));if(!_0x28d17b['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x28d17b['statusText']);return await _0x28d17b['json']();},async 'getTaskLogs'(_0x1d7e3a,_0x10ab0c={}){if(!_0x1d7e3a)throw new Error('Task\x20ID\x20is\x20required');const _0x1d6904=new URLSearchParams();_0x10ab0c['tail']&&_0x1d6904['set']('tail',String(_0x10ab0c['tail']));const _0x2dcb29=await fetch(API_BASE+'/tasks/'+_0x1d7e3a+'/logs'+(_0x1d6904['toString']()?'?'+_0x1d6904['toString']():''));if(!_0x2dcb29['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x2dcb29['statusText']);return await _0x2dcb29['text']();},async 'getContainers'(){const _0x1fbf06=await fetch(API_BASE+'/containers');if(!_0x1fbf06['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x1fbf06['statusText']);return await _0x1fbf06['json']();},async 'getContainer'(_0xcad55d){const _0xf39740=await fetch(API_BASE+'/containers/'+_0xcad55d);if(!_0xf39740['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0xf39740['statusText']);return await _0xf39740['json']();},async 'startInteractiveContainer'(_0xe68056){const _0x4f4b01=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xe68056)});if(!_0x4f4b01['ok']){const _0x4bdb25=await _0x4f4b01['json']()['catch'](()=>({}));throw new Error(_0x4bdb25['message']||'Failed\x20to\x20start\x20container:\x20'+_0x4f4b01['statusText']);}return await _0x4f4b01['json']();},async 'startContainerCodeServer'(_0x2617f7,_0x5de463={}){if(!_0x2617f7)throw new Error('Container\x20ID\x20is\x20required');const _0xfe7d4=new URLSearchParams();_0x5de463['theme']&&_0xfe7d4['set']('theme',_0x5de463['theme']);const _0x225788=await fetch(API_BASE+'/containers/'+_0x2617f7+'/code-server'+(_0xfe7d4['toString']()?'?'+_0xfe7d4['toString']():'')),_0x20edae=await _0x225788['json']()['catch'](()=>({}));if(!_0x225788['ok'])throw new Error(_0x20edae['message']||_0x20edae['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x225788['statusText']);return _0x20edae;},async 'stopContainer'(_0x493533){const _0x38458f=await fetch(API_BASE+'/containers/'+_0x493533,{'method':'DELETE'});if(!_0x38458f['ok']){const _0x46ca26=await _0x38458f['json']()['catch'](()=>({}));throw new Error(_0x46ca26['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x38458f['statusText']);}return await _0x38458f['json']();},async 'stopTask'(_0x3c6649){if(!_0x3c6649)throw new Error('Task\x20ID\x20is\x20required');const _0xaf65c2=await fetch(API_BASE+'/tasks/'+_0x3c6649+'/stop',{'method':'POST'});if(!_0xaf65c2['ok']){const _0x3394cc=await _0xaf65c2['json']()['catch'](()=>({}));throw new Error(_0x3394cc['error']||'Failed\x20to\x20stop\x20task:\x20'+_0xaf65c2['statusText']);}return await _0xaf65c2['json']();},async 'interruptTask'(_0x9ac80a){if(!_0x9ac80a)throw new Error('Task\x20ID\x20is\x20required');const _0x2b22ed=await fetch(API_BASE+'/tasks/'+_0x9ac80a+'/interrupt',{'method':'POST'});if(!_0x2b22ed['ok']){const _0x3d2ff8=await _0x2b22ed['json']()['catch'](()=>({}));throw new Error(_0x3d2ff8['error']||_0x3d2ff8['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x2b22ed['statusText']);}return await _0x2b22ed['json']();},async 'startTask'(_0x5f4522){if(!_0x5f4522)throw new Error('Task\x20ID\x20is\x20required');const _0x29305e=await fetch(API_BASE+'/tasks/'+_0x5f4522+'/start',{'method':'POST'});if(!_0x29305e['ok']){const _0x4a4c57=await _0x29305e['json']()['catch'](()=>({}));throw new Error(_0x4a4c57['error']||'Failed\x20to\x20start\x20task:\x20'+_0x29305e['statusText']);}return await _0x29305e['json']();},async 'deleteTask'(_0x238c1f){if(!_0x238c1f)throw new Error('Task\x20ID\x20is\x20required');const _0x5d8a2e=await fetch(API_BASE+'/tasks/'+_0x238c1f,{'method':'DELETE'});if(!_0x5d8a2e['ok']){const _0x195d36=await _0x5d8a2e['json']()['catch'](()=>({}));throw new Error(_0x195d36['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x5d8a2e['statusText']);}return await _0x5d8a2e['json']();},async 'refreshTasksFromDisk'(){const _0x2fa277=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x2fa277['ok']){const _0x1c3998=await _0x2fa277['json']()['catch'](()=>({}));throw new Error(_0x1c3998['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x2fa277['statusText']);}return await _0x2fa277['json']();},async 'approveTask'(_0x4d67c7,_0x461d2d={}){if(!_0x4d67c7)throw new Error('Task\x20ID\x20is\x20required');const _0x3a667c={'commit_message':_0x461d2d['commit_message']||'','pull':_0x461d2d['pull']??![],'push':_0x461d2d['push']??![],'conflict_strategy':_0x461d2d['conflict_strategy']||'rebase'};_0x461d2d['new_branch']&&(_0x3a667c['new_branch']=_0x461d2d['new_branch']);const _0x56a7d3=await fetch(API_BASE+'/tasks/'+_0x4d67c7+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a667c)});if(!_0x56a7d3['ok']){const _0x199759=await _0x56a7d3['json']()['catch'](()=>({})),_0x1d1b62=Array['isArray'](_0x199759['results'])?_0x199759['results']['filter'](_0x33a550=>!_0x33a550['success']&&(_0x33a550['error']||_0x33a550['error_code'])):[],_0x571fa0=_0x1d1b62[0x0]||null;let _0x5c3ec3=_0x199759['error']||_0x199759['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x56a7d3['statusText'];if(_0x571fa0?.['error'])_0x5c3ec3=_0x571fa0['error'];else _0x199759['message']&&(_0x5c3ec3=_0x199759['message']);const _0x1987f7=new Error(_0x5c3ec3);_0x1987f7['code']=_0x571fa0?.['error_code']||_0x199759['error_code']||null,_0x1987f7['details']=_0x571fa0?.['details']||_0x199759['details']||null,_0x1987f7['tokenExpiryDays']=_0x571fa0?.['token_expiry_days']||_0x199759['token_expiry_days']||null,_0x1987f7['hasConflicts']=_0x199759['results']?.['some'](_0x324b6a=>_0x324b6a['conflict'])||![];throw _0x1987f7;}return await _0x56a7d3['json']();},async 'getPullRequestInfo'(_0x1c133f){if(!_0x1c133f)throw new Error('Task\x20ID\x20is\x20required');const _0x478489=await fetch(API_BASE+'/tasks/'+_0x1c133f+'/pull-request-info');if(!_0x478489['ok']){const _0xf05a6c=await _0x478489['json']()['catch'](()=>({}));throw new Error(_0xf05a6c['error']||_0xf05a6c['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x478489['statusText']);}return await _0x478489['json']();},async 'createPullRequests'(_0x4b27fb,_0x308331){if(!_0x4b27fb)throw new Error('Task\x20ID\x20is\x20required');if(!_0x308331||!Array['isArray'](_0x308331))throw new Error('repos\x20array\x20is\x20required');const _0x343074=await fetch(API_BASE+'/tasks/'+_0x4b27fb+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x308331})});if(!_0x343074['ok']){const _0x4a092c=await _0x343074['json']()['catch'](()=>({}));let _0x5a5c3f=_0x4a092c['error']||_0x4a092c['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x343074['statusText'];if(_0x4a092c['results']&&Array['isArray'](_0x4a092c['results'])){const _0x12e43e=_0x4a092c['results']['filter'](_0x4e1bd0=>!_0x4e1bd0['success']&&_0x4e1bd0['error']);_0x12e43e['length']>0x0&&(_0x5a5c3f=_0x12e43e[0x0]['error']);}throw new Error(_0x5a5c3f);}return await _0x343074['json']();},async 'syncRepos'(_0x49dd59){if(!_0x49dd59)throw new Error('Task\x20ID\x20is\x20required');const _0x1e807a=await fetch(API_BASE+'/tasks/'+_0x49dd59+'/sync-repos',{'method':'POST'});if(!_0x1e807a['ok']){const _0x3155b5=await _0x1e807a['json']()['catch'](()=>({}));throw new Error(_0x3155b5['error']||_0x3155b5['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x1e807a['statusText']);}return await _0x1e807a['json']();},async 'getIbmiSyncInfo'(_0x1db791){if(!_0x1db791)throw new Error('Task\x20ID\x20is\x20required');const _0x39184e=await fetch(API_BASE+'/tasks/'+_0x1db791+'/ibmi-sync-info');if(!_0x39184e['ok']){const _0x88218b=await _0x39184e['json']()['catch'](()=>({}));throw new Error(_0x88218b['error']||_0x88218b['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x39184e['json']();},async 'getSyncFiles'(_0x3a0dee){if(!_0x3a0dee)throw new Error('Task\x20ID\x20is\x20required');const _0x49a8b1=await fetch(API_BASE+'/tasks/'+_0x3a0dee+'/sync-to-ibmi/files');if(!_0x49a8b1['ok']){const _0x3c08c1=await _0x49a8b1['json']()['catch'](()=>({}));throw new Error(_0x3c08c1['error']||_0x3c08c1['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x49a8b1['json']();},async 'syncToIbmi'(_0x279a11,_0x2aee61,_0x1f2a3c=null,_0x52e1c1=null,_0x59ad47=null){if(!_0x279a11)throw new Error('Task\x20ID\x20is\x20required');const _0x420761={'library':_0x2aee61};if(_0x1f2a3c)_0x420761['user']=_0x1f2a3c;if(_0x52e1c1)_0x420761['password']=_0x52e1c1;if(_0x59ad47)_0x420761['files']=_0x59ad47;const _0x2675da=await fetch(API_BASE+'/tasks/'+_0x279a11+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x420761)});if(!_0x2675da['ok']){const _0x4f322f=await _0x2675da['json']()['catch'](()=>({}));throw new Error(_0x4f322f['error']||_0x4f322f['message']||'Sync\x20failed');}return await _0x2675da['json']();},async 'getIbmiSyncLog'(_0x2abc8a){if(!_0x2abc8a)throw new Error('Task\x20ID\x20is\x20required');const _0x36bb05=await fetch(API_BASE+'/tasks/'+_0x2abc8a+'/ibmi-sync-log');if(!_0x36bb05['ok']){const _0x18cae6=await _0x36bb05['json']()['catch'](()=>({}));throw new Error(_0x18cae6['error']||_0x18cae6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x36bb05['json']();},async 'pullChanges'(_0x350327){if(!_0x350327)throw new Error('Task\x20ID\x20is\x20required');const _0xd3e300=await fetch(API_BASE+'/tasks/'+_0x350327+'/pull-changes',{'method':'POST'});if(!_0xd3e300['ok']){const _0x594d75=await _0xd3e300['json']()['catch'](()=>({})),_0x4bcd82=new Error(_0x594d75['message']||_0x594d75['error']||'Failed\x20to\x20pull\x20changes:\x20'+_0xd3e300['statusText']);_0x4bcd82['code']=_0x594d75['error_code']||null,_0x4bcd82['details']=_0x594d75['details']||null,_0x4bcd82['tokenExpiryDays']=_0x594d75['token_expiry_days']||null;throw _0x4bcd82;}return await _0xd3e300['json']();},async 'readFile'(_0x72d64a,_0x1d899b){if(!_0x72d64a)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1d899b)throw new Error('File\x20path\x20is\x20required');const _0x818d0a=await fetch(API_BASE+'/tasks/'+_0x72d64a+'/files?path='+encodeURIComponent(_0x1d899b));if(!_0x818d0a['ok']){const _0x151591=await _0x818d0a['json']()['catch'](()=>({}));throw new Error(_0x151591['error']||_0x151591['message']||'Failed\x20to\x20read\x20file:\x20'+_0x818d0a['statusText']);}return await _0x818d0a['json']();},'getTaskFileDownloadUrl'(_0x4f784d,_0x1862bf){if(!_0x4f784d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1862bf)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x4f784d+'/files/download?path='+encodeURIComponent(_0x1862bf);},async 'writeFile'(_0x136379,_0xb942e,_0x87434d){if(!_0x136379)throw new Error('Task\x20ID\x20is\x20required');if(!_0xb942e)throw new Error('File\x20path\x20is\x20required');if(_0x87434d===undefined)throw new Error('Content\x20is\x20required');const _0x19f84b=await fetch(API_BASE+'/tasks/'+_0x136379+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0xb942e,'content':_0x87434d})});if(!_0x19f84b['ok']){const _0x30f688=await _0x19f84b['json']()['catch'](()=>({}));throw new Error(_0x30f688['error']||_0x30f688['message']||'Failed\x20to\x20write\x20file:\x20'+_0x19f84b['statusText']);}return await _0x19f84b['json']();},async 'uploadTaskFiles'(_0x192c17,_0x3bab31,_0x4bb3af){if(!_0x192c17)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3bab31)throw new Error('Target\x20directory\x20is\x20required');if(!_0x4bb3af||_0x4bb3af['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x56a261=new FormData();_0x56a261['append']('targetDir',_0x3bab31);for(const _0x388dfc of _0x4bb3af){_0x56a261['append']('files',_0x388dfc,_0x388dfc['name']);}const _0x5ae72b=await fetch(API_BASE+'/tasks/'+_0x192c17+'/files/upload',{'method':'POST','body':_0x56a261});if(!_0x5ae72b['ok']){const _0x290407=await _0x5ae72b['json']()['catch'](()=>({}));throw new Error(_0x290407['error']||_0x290407['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x5ae72b['statusText']);}return await _0x5ae72b['json']();},async 'createDirectory'(_0x24b363,_0x3f8594){if(!_0x24b363)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8594)throw new Error('Directory\x20path\x20is\x20required');const _0x398e8a=await fetch(API_BASE+'/tasks/'+_0x24b363+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x3f8594})});if(!_0x398e8a['ok']){const _0x1606cc=await _0x398e8a['json']()['catch'](()=>({}));throw new Error(_0x1606cc['error']||_0x1606cc['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x398e8a['statusText']);}return await _0x398e8a['json']();},async 'renamePath'(_0x1d50de,_0x4e40c2,_0x2aecab){if(!_0x1d50de)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e40c2)throw new Error('Source\x20path\x20is\x20required');if(!_0x2aecab)throw new Error('Destination\x20path\x20is\x20required');const _0x288b42=await fetch(API_BASE+'/tasks/'+_0x1d50de+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x4e40c2,'newPath':_0x2aecab})});if(!_0x288b42['ok']){const _0x575081=await _0x288b42['json']()['catch'](()=>({}));throw new Error(_0x575081['error']||_0x575081['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x288b42['statusText']);}return await _0x288b42['json']();},async 'deleteFile'(_0x2f7829,_0x2fe646){if(!_0x2f7829)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2fe646)throw new Error('File\x20path\x20is\x20required');const _0x389fe1=await fetch(API_BASE+'/tasks/'+_0x2f7829+'/files?path='+encodeURIComponent(_0x2fe646),{'method':'DELETE'});if(!_0x389fe1['ok']){const _0x54d00c=await _0x389fe1['json']()['catch'](()=>({}));throw new Error(_0x54d00c['error']||_0x54d00c['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x389fe1['statusText']);}return await _0x389fe1['json']();},async 'deleteDirectory'(_0x5082c4,_0x5de369){if(!_0x5082c4)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5de369)throw new Error('Directory\x20path\x20is\x20required');const _0x5ab974=await fetch(API_BASE+'/tasks/'+_0x5082c4+'/files/directory?path='+encodeURIComponent(_0x5de369),{'method':'DELETE'});if(!_0x5ab974['ok']){const _0x1ff072=await _0x5ab974['json']()['catch'](()=>({}));throw new Error(_0x1ff072['error']||_0x1ff072['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x5ab974['statusText']);}return await _0x5ab974['json']();},async 'discardFile'(_0x1e75e6,_0x151dbb,_0x47cec3){if(!_0x1e75e6)throw new Error('Task\x20ID\x20is\x20required');if(!_0x151dbb)throw new Error('File\x20path\x20is\x20required');if(!_0x47cec3)throw new Error('Repository\x20path\x20is\x20required');const _0x4273f3=await fetch(API_BASE+'/tasks/'+_0x1e75e6+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x151dbb,'repoPath':_0x47cec3})});if(!_0x4273f3['ok']){const _0x105b2d=await _0x4273f3['json']()['catch'](()=>({}));throw new Error(_0x105b2d['error']||_0x105b2d['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x4273f3['statusText']);}return await _0x4273f3['json']();},async 'followUpTask'(_0x5c1899,_0x2da5cd={}){if(!_0x5c1899)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2da5cd['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x2469ba,_0x22b843={};if(_0x2da5cd['files']&&_0x2da5cd['files']['length']>0x0){const _0x5643c3=new FormData();_0x5643c3['append']('instructions',_0x2da5cd['instructions']);for(const _0x4a1763 of _0x2da5cd['files']){_0x5643c3['append']('attachments',_0x4a1763);}_0x2469ba=_0x5643c3;}else _0x22b843['Content-Type']='application/json',_0x2469ba=JSON['stringify']({'instructions':_0x2da5cd['instructions']});const _0x1ebdc2=await fetch(API_BASE+'/tasks/'+_0x5c1899+'/follow-up',{'method':'POST','headers':_0x22b843,'body':_0x2469ba});if(!_0x1ebdc2['ok']){const _0x37b251=await _0x1ebdc2['json']()['catch'](()=>({}));throw new Error(_0x37b251['error']||_0x37b251['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1ebdc2['statusText']);}return await _0x1ebdc2['json']();},async 'getTaskRewindPoints'(_0x502418){if(!_0x502418)throw new Error('Task\x20ID\x20is\x20required');const _0x5ecd07=await fetch(API_BASE+'/tasks/'+_0x502418+'/rewind-points');if(!_0x5ecd07['ok']){const _0x13b101=await _0x5ecd07['json']()['catch'](()=>({}));throw new Error(_0x13b101['error']||_0x13b101['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x5ecd07['statusText']);}return await _0x5ecd07['json']();},async 'rewindTask'(_0x5c220b,_0x14f87a={}){if(!_0x5c220b)throw new Error('Task\x20ID\x20is\x20required');const _0x57dd34=Number['isInteger'](_0x14f87a['targetFollowUpCount'])?_0x14f87a['targetFollowUpCount']:0x0,_0x4bae01={'targetFollowUpCount':_0x57dd34};typeof _0x14f87a['instructions']==='string'&&_0x14f87a['instructions']['trim']()&&(_0x4bae01['instructions']=_0x14f87a['instructions']['trim']());typeof _0x14f87a['rewindFiles']==='boolean'&&(_0x4bae01['rewindFiles']=_0x14f87a['rewindFiles']);const _0x21dfad=await fetch(API_BASE+'/tasks/'+_0x5c220b+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4bae01)});if(!_0x21dfad['ok']){const _0x5d7c1d=await _0x21dfad['json']()['catch'](()=>({}));throw new Error(_0x5d7c1d['error']||_0x5d7c1d['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x21dfad['statusText']);}return await _0x21dfad['json']();},async 'login'(_0x1dd84f,_0x4d8206){const _0x45657e=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x1dd84f,'password':_0x4d8206})});if(!_0x45657e['ok']){const _0x1783e9=await _0x45657e['json']();throw new Error(_0x1783e9['message']||'Login\x20failed');}return await _0x45657e['json']();},async 'logout'(){const _0x4098dd=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x4098dd['ok']){const _0x3a9f58=await _0x4098dd['json']();throw new Error(_0x3a9f58['message']||'Logout\x20failed');}return await _0x4098dd['json']();},async 'getCurrentUser'(){const _0x47c8c4=await fetch(API_BASE+'/auth/me');if(!_0x47c8c4['ok'])throw new Error('Not\x20authenticated');const _0x1c9d99=await _0x47c8c4['json']();return _0x1c9d99['user'];},async 'getRolesInfo'(){const _0x15403c=await fetch(API_BASE+'/users/roles');if(!_0x15403c['ok']){const _0x1d80ff=await _0x15403c['json']();throw new Error(_0x1d80ff['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x15403c['json']();},async 'getUsers'(){const _0x2ffe16=await fetch(API_BASE+'/users');if(!_0x2ffe16['ok']){const _0x41dfa9=await _0x2ffe16['json']();throw new Error(_0x41dfa9['message']||'Failed\x20to\x20get\x20users');}return await _0x2ffe16['json']();},async 'getUser'(_0x533721){const _0x5b2c88=await fetch(API_BASE+'/users/'+_0x533721);if(!_0x5b2c88['ok']){const _0x241ff3=await _0x5b2c88['json']();throw new Error(_0x241ff3['message']||'Failed\x20to\x20get\x20user');}return await _0x5b2c88['json']();},async 'createUser'(_0x23a22f){const _0x20fe8f=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23a22f)});if(!_0x20fe8f['ok']){const _0x33eb0c=await _0x20fe8f['json']();throw new Error(_0x33eb0c['message']||'Failed\x20to\x20create\x20user');}return await _0x20fe8f['json']();},async 'updateUser'(_0x2a8fce,_0x4d9d73){const _0x398304=await fetch(API_BASE+'/users/'+_0x2a8fce,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d9d73)});if(!_0x398304['ok']){const _0x5b2784=await _0x398304['json']();throw new Error(_0x5b2784['message']||'Failed\x20to\x20update\x20user');}return await _0x398304['json']();},async 'deleteUser'(_0x5227ae){const _0x2ef901=await fetch(API_BASE+'/users/'+_0x5227ae,{'method':'DELETE'});if(!_0x2ef901['ok']){const _0x3f8075=await _0x2ef901['json']();throw new Error(_0x3f8075['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ef901['json']();},async 'stopAllContainers'(){const _0x1a7ee0=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x16e544=await _0x1a7ee0['json']()['catch'](()=>({}));if(!_0x1a7ee0['ok'])throw new Error(_0x16e544['message']||_0x16e544['error']||'Failed\x20to\x20stop\x20containers');return _0x16e544;},async 'removeStoppedContainers'(){const _0x25e424=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x554e40=await _0x25e424['json']()['catch'](()=>({}));if(!_0x25e424['ok'])throw new Error(_0x554e40['message']||_0x554e40['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x554e40;},async 'pruneDockerResources'(){const _0x1b7522=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x6c3f8=await _0x1b7522['json']()['catch'](()=>({}));if(!_0x1b7522['ok'])throw new Error(_0x6c3f8['message']||_0x6c3f8['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x6c3f8;},async 'getUpdateSettings'(){const _0x28e1dc=await fetch(API_BASE+'/health/update-settings'),_0x342065=await _0x28e1dc['json']()['catch'](()=>({}));if(!_0x28e1dc['ok'])throw new Error(_0x342065['message']||_0x342065['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x342065;},async 'applyServerUpdate'(_0x1f1f45){const _0x2cc585=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x1f1f45})}),_0x57860e=await _0x2cc585['json']()['catch'](()=>({}));if(!_0x2cc585['ok']){const _0x2b3b90=new Error(_0x57860e['message']||_0x57860e['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x57860e['output']!==undefined)_0x2b3b90['output']=_0x57860e['output'];if(_0x57860e['error']!==undefined)_0x2b3b90['commandError']=_0x57860e['error'];throw _0x2b3b90;}return _0x57860e;},async 'restartServer'(){const _0x1b2b3e=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x2cb8f6=await _0x1b2b3e['json']()['catch'](()=>({}));if(!_0x1b2b3e['ok'])throw new Error(_0x2cb8f6['message']||_0x2cb8f6['error']||'Failed\x20to\x20restart\x20server');return _0x2cb8f6;},async 'getDockerContainers'(){const _0x31edbd=await fetch(API_BASE+'/health/containers'),_0x5f1f2e=await _0x31edbd['json']()['catch'](()=>({}));if(!_0x31edbd['ok'])throw new Error(_0x5f1f2e['message']||_0x5f1f2e['error']||'Failed\x20to\x20load\x20containers');return _0x5f1f2e;},async 'getDockerImages'(){const _0x4348c=await fetch(API_BASE+'/health/docker/images'),_0x59f4a2=await _0x4348c['json']()['catch'](()=>({}));if(!_0x4348c['ok'])throw new Error(_0x59f4a2['message']||_0x59f4a2['error']||'Failed\x20to\x20load\x20images');return _0x59f4a2;},async 'getDockerVolumes'(){const _0x4544c1=await fetch(API_BASE+'/health/docker/volumes'),_0x361700=await _0x4544c1['json']()['catch'](()=>({}));if(!_0x4544c1['ok'])throw new Error(_0x361700['message']||_0x361700['error']||'Failed\x20to\x20load\x20volumes');return _0x361700;},async 'getActiveSessions'(){const _0x15e55c=await fetch(API_BASE+'/health/sessions'),_0x514e04=await _0x15e55c['json']()['catch'](()=>({}));if(!_0x15e55c['ok'])throw new Error(_0x514e04['message']||_0x514e04['error']||'Failed\x20to\x20load\x20sessions');return _0x514e04;},async 'getSystemInfo'(){const _0x4b8b30=await fetch(API_BASE+'/health/system'),_0x5945e0=await _0x4b8b30['json']()['catch'](()=>({}));if(!_0x4b8b30['ok'])throw new Error(_0x5945e0['message']||_0x5945e0['error']||'Failed\x20to\x20load\x20system\x20info');return _0x5945e0;},async 'stopDockerContainer'(_0x121042){const _0x498ef5=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x121042)+'/stop',{'method':'POST'}),_0x5b40cd=await _0x498ef5['json']()['catch'](()=>({}));if(!_0x498ef5['ok'])throw new Error(_0x5b40cd['message']||_0x5b40cd['error']||'Failed\x20to\x20stop\x20container');return _0x5b40cd;},async 'removeDockerContainer'(_0x3375fe){const _0x58f02e=await fetch(API_BASE+'/health/containers/'+encodeURIComponent(_0x3375fe),{'method':'DELETE'}),_0x12a041=await _0x58f02e['json']()['catch'](()=>({}));if(!_0x58f02e['ok'])throw new Error(_0x12a041['message']||_0x12a041['error']||'Failed\x20to\x20remove\x20container');return _0x12a041;},async 'createPasswordToken'(_0x132232,_0x406b8e='setup',_0x507cc4=![]){const _0x455ea0=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x132232,'type':_0x406b8e,'sendEmail':_0x507cc4})});if(!_0x455ea0['ok']){const _0x473f36=await _0x455ea0['json']();throw new Error(_0x473f36['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x455ea0['json']();},async 'getEmailConfig'(){const _0xb8b7f1=await fetch(API_BASE+'/password/email-config');if(!_0xb8b7f1['ok']){const _0x29b805=await _0xb8b7f1['json']();throw new Error(_0x29b805['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0xb8b7f1['json']();},async 'updateTaskName'(_0x4f59be,_0x529677){const _0x17d0f4=await fetch(API_BASE+'/tasks/'+_0x4f59be,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x529677})});if(!_0x17d0f4['ok']){const _0x474c5e=await _0x17d0f4['json']();throw new Error(_0x474c5e['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x17d0f4['json']();},async 'pinTask'(_0x5b4634,_0x22ea7d,_0x1d762c=null){if(!_0x5b4634)throw new Error('Task\x20ID\x20is\x20required');const _0x4d23e2={'pinned':_0x22ea7d};_0x1d762c&&_0x1d762c['length']>0x0&&(_0x4d23e2['additionalTaskIds']=_0x1d762c);const _0x3f571f=await fetch(API_BASE+'/tasks/'+_0x5b4634+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d23e2)});if(!_0x3f571f['ok']){const _0x20e8c6=await _0x3f571f['json']();throw new Error(_0x20e8c6['error']||'Failed\x20to\x20pin\x20task');}return await _0x3f571f['json']();},async 'setTaskWinner'(_0x47821b,_0x4cf184,_0xa43d4=[]){if(!_0x47821b)throw new Error('Task\x20ID\x20is\x20required');const _0x5a6956=await fetch(API_BASE+'/tasks/'+_0x47821b+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x4cf184,'siblings':_0xa43d4})});if(!_0x5a6956['ok']){const _0x55664a=await _0x5a6956['json']();throw new Error(_0x55664a['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x5a6956['json']();},async 'setTaskLoser'(_0x542a66,_0xb9c0d8){if(!_0x542a66)throw new Error('Task\x20ID\x20is\x20required');const _0x445603=await fetch(API_BASE+'/tasks/'+_0x542a66+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0xb9c0d8})});if(!_0x445603['ok']){const _0x1ab813=await _0x445603['json']();throw new Error(_0x1ab813['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x445603['json']();},async 'createTaskGroup'(_0x2f88d5){const _0x12c7bc=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2f88d5)});if(!_0x12c7bc['ok']){const _0x49565e=await _0x12c7bc['json']();throw new Error(_0x49565e['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x12c7bc['json']();},async 'getTaskGroups'(_0x25a74f={}){const _0x5d1bb9=new URLSearchParams();if(_0x25a74f['userId'])_0x5d1bb9['set']('userId',String(_0x25a74f['userId']));if(_0x25a74f['status'])_0x5d1bb9['set']('status',String(_0x25a74f['status']));if(_0x25a74f['limit'])_0x5d1bb9['set']('limit',String(_0x25a74f['limit']));const _0x5c3d9e=API_BASE+'/tasks/groups'+(_0x5d1bb9['toString']()?'?'+_0x5d1bb9['toString']():''),_0x55ea70=await fetch(_0x5c3d9e);if(!_0x55ea70['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x55ea70['json']();},async 'getTaskGroup'(_0xb7d317){const _0x39b6dc=await fetch(API_BASE+'/tasks/groups/'+_0xb7d317);if(!_0x39b6dc['ok']){const _0x42655f=await _0x39b6dc['json']();throw new Error(_0x42655f['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x39b6dc['json']();},async 'updateTaskGroup'(_0x1ef7d3,_0x11a784,_0x5403ed){const _0x1b7343=await fetch(API_BASE+'/tasks/'+_0x1ef7d3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x11a784,'groupIndex':_0x5403ed})});if(!_0x1b7343['ok']){const _0x59f362=await _0x1b7343['json']();throw new Error(_0x59f362['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x1b7343['json']();},async 'removeTaskFromGroup'(_0x1b05ef){return this['updateTaskGroup'](_0x1b05ef,null,null);},async 'deleteTaskGroup'(_0x25b3d3,_0xefa145=![]){const _0x3fb18b=_0xefa145?'?deleteTasks=true':'',_0x11be91=await fetch(API_BASE+'/tasks/groups/'+_0x25b3d3+_0x3fb18b,{'method':'DELETE'});if(!_0x11be91['ok']){const _0x57e0bd=await _0x11be91['json']();throw new Error(_0x57e0bd['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x585383,_0x1a063f){const _0x3533b2=await fetch(API_BASE+'/tasks/groups/'+_0x585383+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1a063f})});if(!_0x3533b2['ok']){const _0x4002d0=await _0x3533b2['json']();throw new Error(_0x4002d0['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x3533b2['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x5235ae){if(!_0x5235ae)throw new Error('Task\x20ID\x20is\x20required');const _0xfd0d=await fetch(API_BASE+'/tasks/'+_0x5235ae+'/comments');if(!_0xfd0d['ok']){const _0x4d466c=await _0xfd0d['json']()['catch'](()=>({}));throw new Error(_0x4d466c['error']||'Failed\x20to\x20get\x20comments');}return await _0xfd0d['json']();},async 'addComment'(_0x36bc83,_0x2249f2){if(!_0x36bc83)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2249f2)throw new Error('Comment\x20content\x20is\x20required');const _0x492913=await fetch(API_BASE+'/tasks/'+_0x36bc83+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2249f2})});if(!_0x492913['ok']){const _0x51644c=await _0x492913['json']()['catch'](()=>({}));throw new Error(_0x51644c['error']||'Failed\x20to\x20add\x20comment');}return await _0x492913['json']();},async 'updateComment'(_0x4ccbcf,_0x23d13c,_0x235a1f){if(!_0x4ccbcf)throw new Error('Task\x20ID\x20is\x20required');if(!_0x23d13c)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x235a1f)throw new Error('Comment\x20content\x20is\x20required');const _0x53d46b=await fetch(API_BASE+'/tasks/'+_0x4ccbcf+'/comments/'+_0x23d13c,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x235a1f})});if(!_0x53d46b['ok']){const _0x593533=await _0x53d46b['json']()['catch'](()=>({}));throw new Error(_0x593533['error']||'Failed\x20to\x20update\x20comment');}return await _0x53d46b['json']();},async 'deleteComment'(_0x46311d,_0x12144c){if(!_0x46311d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x12144c)throw new Error('Comment\x20ID\x20is\x20required');const _0x15e77b=await fetch(API_BASE+'/tasks/'+_0x46311d+'/comments/'+_0x12144c,{'method':'DELETE'});if(!_0x15e77b['ok']){const _0x214ec4=await _0x15e77b['json']()['catch'](()=>({}));throw new Error(_0x214ec4['error']||'Failed\x20to\x20delete\x20comment');}return await _0x15e77b['json']();},async 'createObjective'(_0x145ba3){const _0x35d4cd={'objective':!![],'name':_0x145ba3['name']||'','environment':_0x145ba3['environment']||null,'agents':_0x145ba3['agents']||[],'branches':_0x145ba3['branches']||{},'isPinned':_0x145ba3['isPinned']||![],'parentObjectiveId':_0x145ba3['parentObjectiveId']||null,'env_vars':_0x145ba3['envVars']||{},'parameters':{'instructions':_0x145ba3['instructions']||''},'files':_0x145ba3['files']||[],'jira':_0x145ba3['jira']||null};return this['createTask'](_0x35d4cd);},async 'updateObjective'(_0x5cbb1a,_0x4bc6a1,_0x56fd1a=[],_0x2935fa=[]){let _0x3a3cd8,_0x2f72fc={};const _0x3255af={..._0x4bc6a1};_0x2935fa&&_0x2935fa['length']>0x0&&(_0x3255af['removeAttachments']=_0x2935fa);if(_0x56fd1a&&_0x56fd1a['length']>0x0){const _0x31f1b5=new FormData();for(const [_0x4a2686,_0x3d05f6]of Object['entries'](_0x3255af)){if(_0x3d05f6==null)continue;typeof _0x3d05f6==='object'?_0x31f1b5['append'](_0x4a2686,JSON['stringify'](_0x3d05f6)):_0x31f1b5['append'](_0x4a2686,String(_0x3d05f6));}for(const _0x19002e of _0x56fd1a){_0x31f1b5['append']('attachments',_0x19002e);}_0x3a3cd8=_0x31f1b5;}else _0x2f72fc['Content-Type']='application/json',_0x3a3cd8=JSON['stringify'](_0x3255af);const _0x32f145=await fetch(API_BASE+'/tasks/'+_0x5cbb1a,{'method':'PATCH','headers':_0x2f72fc,'body':_0x3a3cd8});if(!_0x32f145['ok']){const _0x16d8d0=await _0x32f145['json']();throw new Error(_0x16d8d0['error']||'Failed\x20to\x20update\x20objective');}return await _0x32f145['json']();},async 'deleteObjective'(_0x436a33){return this['deleteTask'](_0x436a33);},async 'launchObjective'(_0x4ef32f,_0x5ee3da={}){const _0x473526=await fetch(API_BASE+'/tasks/'+_0x4ef32f+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5ee3da)});if(!_0x473526['ok']){const _0x2d22a3=await _0x473526['json']();throw new Error(_0x2d22a3['error']||'Failed\x20to\x20launch\x20objective');}return await _0x473526['json']();},async 'getObjectiveAttachments'(_0x3fc024){return this['getTaskAttachments'](_0x3fc024);},async 'createJudgeTask'({environment:_0x5dd238,judgeAgent:_0x27ed11,groupId:_0x5a6beb,taskIds:_0x5e9ff3,judgeCustomInstructions:_0x24e053,isPinned:_0x483f7b}){const _0xe76dd0=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x5dd238,'judgeAgent':_0x27ed11,'groupId':_0x5a6beb,'taskIds':_0x5e9ff3,'judgeCustomInstructions':_0x24e053,'isPinned':_0x483f7b})});if(!_0xe76dd0['ok']){const _0x2c81ca=await _0xe76dd0['json']();throw new Error(_0x2c81ca['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0xe76dd0['json']();},async 'getJudgeTasks'(_0x3a4f47){const _0x4997a9=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x3a4f47));if(!_0x4997a9['ok']){const _0x3e367f=await _0x4997a9['json']();throw new Error(_0x3e367f['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4997a9['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1bb6ef,_0x2c03ee,_0x432e7d=''){const _0x316c17=await fetch(API_BASE+'/tasks/'+_0x1bb6ef+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x2c03ee,'customPreamble':_0x432e7d})});if(!_0x316c17['ok']){const _0x354e9b=await _0x316c17['json']();throw new Error(_0x354e9b['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x316c17['json']();},async 'getJiraConfig'(){const _0x9acb51=await fetch(API_BASE+'/jira/config');if(!_0x9acb51['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x9acb51['json']();},async 'getJiraIssue'(_0x1c4fba){const _0x571ff6=await fetch(API_BASE+'/jira/issues/'+_0x1c4fba);if(!_0x571ff6['ok']){const _0x9eca9d=await _0x571ff6['json']()['catch'](()=>({}));throw new Error(_0x9eca9d['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x571ff6['statusText']);}return await _0x571ff6['json']();},async 'searchJiraIssues'(_0x3799c2,_0x1afddd=0x14){const _0x473064=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x3799c2,'maxResults':_0x1afddd})});if(!_0x473064['ok']){const _0x4b8257=await _0x473064['json']()['catch'](()=>({}));throw new Error(_0x4b8257['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x473064['statusText']);}return await _0x473064['json']();},async 'postJiraComment'(_0x602037,_0x232cab){const _0x29e0a0=await fetch(API_BASE+'/jira/issues/'+_0x602037+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x232cab})});if(!_0x29e0a0['ok']){const _0x73c905=await _0x29e0a0['json']()['catch'](()=>({}));throw new Error(_0x73c905['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x29e0a0['statusText']);}return await _0x29e0a0['json']();},async 'getJiraComments'(_0x45eecf){const _0x59be43=await fetch(API_BASE+'/jira/issues/'+_0x45eecf+'/comments');if(!_0x59be43['ok']){const _0x4ada5e=await _0x59be43['json']()['catch'](()=>({}));throw new Error(_0x4ada5e['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x59be43['statusText']);}return await _0x59be43['json']();},async 'promptParameter'({environment:_0xe3cc2a,command:_0x308fd6,parser:parser='json'}){const _0x55b8c2=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0xe3cc2a,'command':_0x308fd6,'parser':parser})});if(!_0x55b8c2['ok']){const _0x19e458=await _0x55b8c2['json']()['catch'](()=>({}));throw new Error(_0x19e458['message']||_0x19e458['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x55b8c2['statusText']);}return await _0x55b8c2['json']();},async 'promptParameterStream'(_0x2cd975,_0x58f5fc){const _0xe99f3d=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2cd975)});if(!_0xe99f3d['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0xe99f3d['statusText']);const _0x78909e=_0xe99f3d['body']['getReader'](),_0x5b533e=new TextDecoder();let _0x2b9e1b='';return new Promise((_0x3cc41e,_0x29df1c)=>{const _0x608dd=async()=>{try{const {done:_0x5500be,value:_0x4849a9}=await _0x78909e['read']();if(_0x5500be)return;_0x2b9e1b+=_0x5b533e['decode'](_0x4849a9,{'stream':!![]});const _0x4b66f7=_0x2b9e1b['split']('\x0a\x0a');_0x2b9e1b=_0x4b66f7['pop']()||'';for(const _0x172c63 of _0x4b66f7){if(!_0x172c63['trim']())continue;const _0xa44ff=_0x172c63['split']('\x0a');let _0x2317af='message',_0x6f863='';for(const _0x5af178 of _0xa44ff){if(_0x5af178['startsWith']('event:'))_0x2317af=_0x5af178['substring'](0x6)['trim']();else _0x5af178['startsWith']('data:')&&(_0x6f863=_0x5af178['substring'](0x5)['trim']());}if(!_0x6f863)continue;try{const _0x3b802b=JSON['parse'](_0x6f863);if(_0x2317af==='progress'&&_0x58f5fc)_0x58f5fc(_0x3b802b['stage'],_0x3b802b['message']);else{if(_0x2317af==='result'){_0x3cc41e(_0x3b802b);return;}else{if(_0x2317af==='error'){let _0x3ac715=_0x3b802b['message']||_0x3b802b['error']||'Prompt\x20command\x20failed';_0x3b802b['rawOutput']&&(_0x3ac715+='\x0a\x0aRaw\x20output:\x0a'+_0x3b802b['rawOutput']);_0x29df1c(new Error(_0x3ac715));return;}}}}catch(_0x19673b){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x19673b),console['error']('Event\x20type:',_0x2317af),console['error']('Event\x20data:',_0x6f863),console['error']('First\x20200\x20chars:',_0x6f863['substring'](0x0,0xc8)),_0x29df1c(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x19673b['message']+'\x0a\x0aData:\x20'+_0x6f863['substring'](0x0,0x1f4)));return;}}_0x608dd();}catch(_0x475946){_0x29df1c(_0x475946);}};_0x608dd();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x16bb97){const _0x2d5652=await fetch(''+API_BASE+_0x16bb97);if(!_0x2d5652['ok']){const _0x23dea1=await _0x2d5652['json']()['catch'](()=>({'error':_0x2d5652['statusText']})),_0x4c0321=new Error(_0x23dea1['error']||_0x23dea1['message']||_0x2d5652['statusText']);if(_0x23dea1['detail']!==undefined)_0x4c0321['detail']=_0x23dea1['detail'];throw _0x4c0321;}return await _0x2d5652['json']();},async 'post'(_0x7a2d71,_0xacc93f){const _0x2f2419=await fetch(''+API_BASE+_0x7a2d71,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xacc93f)});if(!_0x2f2419['ok']){const _0x2e6f6a=await _0x2f2419['json']()['catch'](()=>({'error':_0x2f2419['statusText']})),_0xa3f6ec=new Error(_0x2e6f6a['error']||_0x2e6f6a['message']||_0x2f2419['statusText']);if(_0x2e6f6a['detail']!==undefined)_0xa3f6ec['detail']=_0x2e6f6a['detail'];throw _0xa3f6ec;}return await _0x2f2419['json']();},async 'put'(_0x40dae7,_0xa75060){const _0x238bdc=await fetch(''+API_BASE+_0x40dae7,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa75060)});if(!_0x238bdc['ok']){const _0x249921=await _0x238bdc['json']()['catch'](()=>({'error':_0x238bdc['statusText']})),_0x1b6d4a=new Error(_0x249921['error']||_0x249921['message']||_0x238bdc['statusText']);if(_0x249921['detail']!==undefined)_0x1b6d4a['detail']=_0x249921['detail'];throw _0x1b6d4a;}return await _0x238bdc['json']();},async 'delete'(_0x164576,_0x32a580){const _0x3bc510={'method':'DELETE'};_0x32a580&&(_0x3bc510['headers']={'Content-Type':'application/json'},_0x3bc510['body']=JSON['stringify'](_0x32a580));const _0x2341a0=await fetch(''+API_BASE+_0x164576,_0x3bc510);if(!_0x2341a0['ok']){const _0xdb92eb=await _0x2341a0['json']()['catch'](()=>({'error':_0x2341a0['statusText']})),_0xc0ffc7=new Error(_0xdb92eb['error']||_0xdb92eb['message']||_0x2341a0['statusText']);if(_0xdb92eb['detail']!==undefined)_0xc0ffc7['detail']=_0xdb92eb['detail'];throw _0xc0ffc7;}return await _0x2341a0['json']();},async 'getSkills'(){const _0x8cbcf=await fetch(API_BASE+'/skills');if(!_0x8cbcf['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x8cbcf['statusText']);return await _0x8cbcf['json']();},async 'getSkill'(_0x200f89){const _0x5c7641=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x200f89));if(!_0x5c7641['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5c7641['statusText']);return await _0x5c7641['json']();},async 'createSkill'(_0x5967db){const _0x14e972=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5967db)});if(!_0x14e972['ok']){const _0x877056=await _0x14e972['json']()['catch'](()=>({'error':_0x14e972['statusText']})),_0x3fb4e4=new Error(_0x877056['error']||_0x877056['message']||_0x14e972['statusText']);if(_0x877056['detail']!==undefined)_0x3fb4e4['detail']=_0x877056['detail'];throw _0x3fb4e4;}return await _0x14e972['json']();},async 'updateSkill'(_0x1919a5,_0xee0692){const _0x536930=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1919a5),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xee0692)});if(!_0x536930['ok']){const _0x4610f0=await _0x536930['json']()['catch'](()=>({'error':_0x536930['statusText']})),_0x1e01f4=new Error(_0x4610f0['error']||_0x4610f0['message']||_0x536930['statusText']);if(_0x4610f0['detail']!==undefined)_0x1e01f4['detail']=_0x4610f0['detail'];throw _0x1e01f4;}return await _0x536930['json']();},async 'deleteSkill'(_0x470e70){const _0x2b4f0c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x470e70),{'method':'DELETE'});if(!_0x2b4f0c['ok']){const _0x967374=await _0x2b4f0c['json']()['catch'](()=>({'error':_0x2b4f0c['statusText']})),_0x3c1aa5=new Error(_0x967374['error']||_0x967374['message']||_0x2b4f0c['statusText']);if(_0x967374['detail']!==undefined)_0x3c1aa5['detail']=_0x967374['detail'];throw _0x3c1aa5;}return await _0x2b4f0c['json']();},async 'getSkillFile'(_0x4ed4f3,_0x22993e){const _0x4b34e8=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x4ed4f3)+'/files/'+_0x22993e);if(!_0x4b34e8['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x4b34e8['statusText']);return await _0x4b34e8['json']();},async 'saveSkillFile'(_0x49d81e,_0x2d086a,_0x3bb4a5){const _0x43894c=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x49d81e)+'/files/'+_0x2d086a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x3bb4a5})});if(!_0x43894c['ok']){const _0x877f75=await _0x43894c['json']()['catch'](()=>({'error':_0x43894c['statusText']})),_0x146d55=new Error(_0x877f75['error']||_0x877f75['message']||_0x43894c['statusText']);if(_0x877f75['detail']!==undefined)_0x146d55['detail']=_0x877f75['detail'];throw _0x146d55;}return await _0x43894c['json']();},async 'deleteSkillFile'(_0x1b8dff,_0x17c088){const _0x3f94c9=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1b8dff)+'/files/'+_0x17c088,{'method':'DELETE'});if(!_0x3f94c9['ok']){const _0x5c7585=await _0x3f94c9['json']()['catch'](()=>({'error':_0x3f94c9['statusText']})),_0x4fe6d6=new Error(_0x5c7585['error']||_0x5c7585['message']||_0x3f94c9['statusText']);if(_0x5c7585['detail']!==undefined)_0x4fe6d6['detail']=_0x5c7585['detail'];throw _0x4fe6d6;}return await _0x3f94c9['json']();},async 'pullSkills'(){const _0xf5c4e1=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0xf5c4e1['ok']){const _0x4e74ba=await _0xf5c4e1['json']()['catch'](()=>({'error':_0xf5c4e1['statusText']})),_0x59e281=new Error(_0x4e74ba['error']||_0x4e74ba['message']||_0xf5c4e1['statusText']);if(_0x4e74ba['detail']!==undefined)_0x59e281['detail']=_0x4e74ba['detail'];throw _0x59e281;}return await _0xf5c4e1['json']();},async 'commitSkills'(_0x319002,_0x3aea36={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x3aea36,_0x5c0b28=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x319002,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x5c0b28['ok']){const _0x538c60=await _0x5c0b28['json']()['catch'](()=>({'error':_0x5c0b28['statusText']})),_0xd155c=new Error(_0x538c60['error']||_0x538c60['message']||_0x5c0b28['statusText']);if(_0x538c60['detail']!==undefined)_0xd155c['detail']=_0x538c60['detail'];throw _0xd155c;}return await _0x5c0b28['json']();},async 'discardSkillsChanges'(){const _0x1b1d39=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1b1d39['ok']){const _0x3bfc25=await _0x1b1d39['json']()['catch'](()=>({'error':_0x1b1d39['statusText']})),_0x397e24=new Error(_0x3bfc25['error']||_0x3bfc25['message']||_0x1b1d39['statusText']);if(_0x3bfc25['detail']!==undefined)_0x397e24['detail']=_0x3bfc25['detail'];throw _0x397e24;}return await _0x1b1d39['json']();},async 'getSkillCatalog'(){const _0x4e618e=await fetch(API_BASE+'/external-skills/catalog');if(!_0x4e618e['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x4e618e['statusText']);return await _0x4e618e['json']();},async 'getImportedSkillsRegistry'(){const _0x47c646=await fetch(API_BASE+'/external-skills/registry');if(!_0x47c646['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x47c646['statusText']);return await _0x47c646['json']();},async 'importCatalogSkill'(_0x43c788){const _0x17f94c=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x43c788})});if(!_0x17f94c['ok']){const _0x7439d0=await _0x17f94c['json']()['catch'](()=>({'error':_0x17f94c['statusText']})),_0x167671=new Error(_0x7439d0['error']||_0x7439d0['message']||_0x17f94c['statusText']);if(_0x7439d0['detail']!==undefined)_0x167671['detail']=_0x7439d0['detail'];throw _0x167671;}return await _0x17f94c['json']();},async 'importSkillFromGit'(_0x4d24a1,_0x411664,_0x29c980='main',_0x346e9b=null){const _0x5dfffe=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4d24a1,'skillPath':_0x411664,'branch':_0x29c980,'skillId':_0x346e9b})});if(!_0x5dfffe['ok']){const _0x362fd2=await _0x5dfffe['json']()['catch'](()=>({'error':_0x5dfffe['statusText']})),_0x4818ad=new Error(_0x362fd2['error']||_0x362fd2['message']||_0x5dfffe['statusText']);if(_0x362fd2['detail']!==undefined)_0x4818ad['detail']=_0x362fd2['detail'];throw _0x4818ad;}return await _0x5dfffe['json']();},async 'probeMarketplace'(_0x3fb731,_0x425451='main'){const _0x54644f=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3fb731,'branch':_0x425451})});if(!_0x54644f['ok']){const _0x30f3e4=await _0x54644f['json']()['catch'](()=>({'error':_0x54644f['statusText']})),_0xc2fcc5=new Error(_0x30f3e4['error']||_0x30f3e4['message']||_0x54644f['statusText']);if(_0x30f3e4['detail']!==undefined)_0xc2fcc5['detail']=_0x30f3e4['detail'];throw _0xc2fcc5;}return await _0x54644f['json']();},async 'importMarketplaceBundle'(_0x4252da,_0x2aab4b,_0x593d8d,_0x482896=null){const _0x57ccf5=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x4252da,'branch':_0x2aab4b,'bundleId':_0x593d8d,'selectedSkills':_0x482896})});if(!_0x57ccf5['ok']){const _0x5cf0e6=await _0x57ccf5['json']()['catch'](()=>({'error':_0x57ccf5['statusText']})),_0x4fba32=new Error(_0x5cf0e6['error']||_0x5cf0e6['message']||_0x57ccf5['statusText']);if(_0x5cf0e6['detail']!==undefined)_0x4fba32['detail']=_0x5cf0e6['detail'];throw _0x4fba32;}return await _0x57ccf5['json']();},async 'importSkillFromFolder'(_0x519c3f,_0x56058a=null){const _0x41d83a=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x519c3f,'skillId':_0x56058a})});if(!_0x41d83a['ok']){const _0x44c353=await _0x41d83a['json']()['catch'](()=>({'error':_0x41d83a['statusText']})),_0x1fbf41=new Error(_0x44c353['error']||_0x44c353['message']||_0x41d83a['statusText']);if(_0x44c353['detail']!==undefined)_0x1fbf41['detail']=_0x44c353['detail'];throw _0x1fbf41;}return await _0x41d83a['json']();},async 'importSkillFromNpm'(_0x6df35b,_0xc605f2='latest',_0x16094b=null,_0x5b2cb2=null){const _0x3f6e58=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x6df35b,'version':_0xc605f2,'skillId':_0x16094b,'registry':_0x5b2cb2})});if(!_0x3f6e58['ok']){const _0x5c3e93=await _0x3f6e58['json']()['catch'](()=>({'error':_0x3f6e58['statusText']})),_0x3b68c2=new Error(_0x5c3e93['error']||_0x5c3e93['message']||_0x3f6e58['statusText']);if(_0x5c3e93['detail']!==undefined)_0x3b68c2['detail']=_0x5c3e93['detail'];throw _0x3b68c2;}return await _0x3f6e58['json']();},async 'checkSkillUpdates'(_0x33c236){const _0x261c00=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x33c236)+'/check-updates',{'method':'POST'});if(!_0x261c00['ok']){const _0x37f5cf=await _0x261c00['json']()['catch'](()=>({'error':_0x261c00['statusText']})),_0x2d5b50=new Error(_0x37f5cf['error']||_0x37f5cf['message']||_0x261c00['statusText']);if(_0x37f5cf['detail']!==undefined)_0x2d5b50['detail']=_0x37f5cf['detail'];throw _0x2d5b50;}return await _0x261c00['json']();},async 'updateExternalSkill'(_0x40f814){const _0x1055e7=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x40f814)+'/update',{'method':'POST'});if(!_0x1055e7['ok']){const _0x4e6420=await _0x1055e7['json']()['catch'](()=>({'error':_0x1055e7['statusText']})),_0x308aae=new Error(_0x4e6420['error']||_0x4e6420['message']||_0x1055e7['statusText']);if(_0x4e6420['detail']!==undefined)_0x308aae['detail']=_0x4e6420['detail'];throw _0x308aae;}return await _0x1055e7['json']();},async 'updateSkillFlags'(_0x60d66f,_0x581721){const _0x2f401a=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x60d66f)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x581721})});if(!_0x2f401a['ok']){const _0x317c38=await _0x2f401a['json']()['catch'](()=>({'error':_0x2f401a['statusText']})),_0x410685=new Error(_0x317c38['error']||_0x317c38['message']||_0x2f401a['statusText']);if(_0x317c38['detail']!==undefined)_0x410685['detail']=_0x317c38['detail'];throw _0x410685;}return await _0x2f401a['json']();},async 'removeFromImportedRegistry'(_0x4f19ff){const _0x1758b0=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4f19ff)+'/registry',{'method':'DELETE'});if(!_0x1758b0['ok']){const _0x7b6c73=await _0x1758b0['json']()['catch'](()=>({'error':_0x1758b0['statusText']})),_0x3b35da=new Error(_0x7b6c73['error']||_0x7b6c73['message']||_0x1758b0['statusText']);if(_0x7b6c73['detail']!==undefined)_0x3b35da['detail']=_0x7b6c73['detail'];throw _0x3b35da;}return await _0x1758b0['json']();},async 'getTeams'(){const _0xca0ffa=await fetch(API_BASE+'/teams');if(!_0xca0ffa['ok']){const _0x2ea3c3=await _0xca0ffa['json']()['catch'](()=>({'message':_0xca0ffa['statusText']}));throw new Error(_0x2ea3c3['message']||'Failed\x20to\x20get\x20teams');}return await _0xca0ffa['json']();},async 'getTeam'(_0x2b42e6){const _0x219804=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x2b42e6));if(!_0x219804['ok']){const _0x2c1c33=await _0x219804['json']()['catch'](()=>({'message':_0x219804['statusText']}));throw new Error(_0x2c1c33['message']||'Failed\x20to\x20get\x20team');}return await _0x219804['json']();},async 'createTeam'(_0x399f54){const _0x45cdce=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x399f54)});if(!_0x45cdce['ok']){const _0x1b7f9b=await _0x45cdce['json']()['catch'](()=>({'message':_0x45cdce['statusText']}));throw new Error(_0x1b7f9b['message']||'Failed\x20to\x20create\x20team');}return await _0x45cdce['json']();},async 'updateTeam'(_0x542a51,_0x264f4e){const _0x3c7d16=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x542a51),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x264f4e)});if(!_0x3c7d16['ok']){const _0x41c421=await _0x3c7d16['json']()['catch'](()=>({'message':_0x3c7d16['statusText']}));throw new Error(_0x41c421['message']||'Failed\x20to\x20update\x20team');}return await _0x3c7d16['json']();},async 'deleteTeam'(_0xca647a){const _0x4564e6=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xca647a),{'method':'DELETE'});if(!_0x4564e6['ok']){const _0x2c212d=await _0x4564e6['json']()['catch'](()=>({'message':_0x4564e6['statusText']}));throw new Error(_0x2c212d['message']||'Failed\x20to\x20delete\x20team');}return await _0x4564e6['json']();},async 'addTeamMember'(_0x3abda5,_0x57f893){const _0x210685=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x3abda5)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x57f893})});if(!_0x210685['ok']){const _0x190ca4=await _0x210685['json']()['catch'](()=>({'message':_0x210685['statusText']}));throw new Error(_0x190ca4['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x210685['json']();},async 'removeTeamMember'(_0x46cafa,_0x4e181e){const _0x199420=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x46cafa)+'/members/'+encodeURIComponent(_0x4e181e),{'method':'DELETE'});if(!_0x199420['ok']){const _0xf90a46=await _0x199420['json']()['catch'](()=>({'message':_0x199420['statusText']}));throw new Error(_0xf90a46['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x199420['json']();},async 'getBindings'(_0xe85569={}){const _0x472dba=new URLSearchParams();if(_0xe85569['resource_type'])_0x472dba['set']('resource_type',_0xe85569['resource_type']);if(_0xe85569['resource_id'])_0x472dba['set']('resource_id',_0xe85569['resource_id']);if(_0xe85569['subject_type'])_0x472dba['set']('subject_type',_0xe85569['subject_type']);if(_0xe85569['subject_id'])_0x472dba['set']('subject_id',_0xe85569['subject_id']);const _0x27d3a7=_0x472dba['toString'](),_0x11a783=await fetch(API_BASE+'/bindings'+(_0x27d3a7?'?'+_0x27d3a7:''));if(!_0x11a783['ok']){const _0x2e73f4=await _0x11a783['json']()['catch'](()=>({'message':_0x11a783['statusText']}));throw new Error(_0x2e73f4['message']||'Failed\x20to\x20get\x20bindings');}return await _0x11a783['json']();},async 'createBinding'(_0x59c120){const _0x54a385=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x59c120)});if(!_0x54a385['ok']){const _0x142917=await _0x54a385['json']()['catch'](()=>({'message':_0x54a385['statusText']}));throw new Error(_0x142917['message']||'Failed\x20to\x20create\x20binding');}return await _0x54a385['json']();},async 'updateBinding'(_0x2a4411,_0x1ea116){const _0x2d9ff5=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a4411),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1ea116)});if(!_0x2d9ff5['ok']){const _0x4e3eee=await _0x2d9ff5['json']()['catch'](()=>({'message':_0x2d9ff5['statusText']}));throw new Error(_0x4e3eee['message']||'Failed\x20to\x20update\x20binding');}return await _0x2d9ff5['json']();},async 'deleteBinding'(_0x11e5de){const _0x8debb2=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x11e5de),{'method':'DELETE'});if(!_0x8debb2['ok']){const _0x47c077=await _0x8debb2['json']()['catch'](()=>({'message':_0x8debb2['statusText']}));throw new Error(_0x47c077['message']||'Failed\x20to\x20delete\x20binding');}return await _0x8debb2['json']();},async 'getRoleDefinitions'(){const _0x3a2320=await fetch(API_BASE+'/roles');if(!_0x3a2320['ok']){const _0x1d47a8=await _0x3a2320['json']()['catch'](()=>({'message':_0x3a2320['statusText']}));throw new Error(_0x1d47a8['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x3a2320['json']();},async 'getRoleDefinition'(_0x461629){const _0x137edf=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x461629));if(!_0x137edf['ok']){const _0x1bddc9=await _0x137edf['json']()['catch'](()=>({'message':_0x137edf['statusText']}));throw new Error(_0x1bddc9['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x137edf['json']();},async 'createRoleDefinition'(_0x4e2178){const _0x3dda47=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e2178)});if(!_0x3dda47['ok']){const _0x3f1a22=await _0x3dda47['json']()['catch'](()=>({'message':_0x3dda47['statusText']}));throw new Error(_0x3f1a22['message']||_0x3f1a22['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x3dda47['json']();},async 'updateRoleDefinition'(_0x373d5a,_0x3ff7c6){const _0x4386bb=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x373d5a),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3ff7c6)});if(!_0x4386bb['ok']){const _0x416419=await _0x4386bb['json']()['catch'](()=>({'message':_0x4386bb['statusText']}));throw new Error(_0x416419['message']||_0x416419['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x4386bb['json']();},async 'deleteRoleDefinition'(_0x22e8a0){const _0x38b6b9=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x22e8a0),{'method':'DELETE'});if(!_0x38b6b9['ok']){const _0x2abca3=await _0x38b6b9['json']()['catch'](()=>({'message':_0x38b6b9['statusText']}));throw new Error(_0x2abca3['message']||_0x2abca3['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x38b6b9['json']();},async 'getAvailablePermissions'(){const _0x20a3d0=await fetch(API_BASE+'/roles/available-permissions');if(!_0x20a3d0['ok']){const _0x310815=await _0x20a3d0['json']()['catch'](()=>({'message':_0x20a3d0['statusText']}));throw new Error(_0x310815['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x20a3d0['json']();},async 'getGitProviderAllowedTeams'(_0x58edd6){const _0xf75254=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x58edd6)+'/allowed-teams');if(!_0xf75254['ok']){const _0x57b6d3=await _0xf75254['json']()['catch'](()=>({'message':_0xf75254['statusText']}));throw new Error(_0x57b6d3['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0xf75254['json']();},async 'setGitProviderAllowedTeams'(_0x32f1a3,_0x2b9e2e){const _0x3bf6d0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x32f1a3)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2b9e2e})});if(!_0x3bf6d0['ok']){const _0x370f60=await _0x3bf6d0['json']()['catch'](()=>({'message':_0x3bf6d0['statusText']}));throw new Error(_0x370f60['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3bf6d0['json']();}};const toastState={'toasts':[],'nextId':0x1,'maxToasts':0x5,'container':null,'baseBottom':0x20,'gap':0xc,'defaultHeight':0x30};function getToastContainer(){return!toastState['container']&&(toastState['container']=document['createElement']('div'),toastState['container']['id']='toast-container',toastState['container']['setAttribute']('aria-live','polite'),toastState['container']['setAttribute']('aria-atomic','false'),document['body']['appendChild'](toastState['container'])),toastState['container'];}function repositionAllToasts(){requestAnimationFrame(()=>{let _0x1a32ff=toastState['baseBottom'];toastState['toasts']['forEach'](_0x2fc0b3=>{_0x2fc0b3['el']['style']['bottom']=_0x1a32ff+'px';const _0x3d6d25=_0x2fc0b3['el']['offsetHeight']||toastState['defaultHeight'];_0x1a32ff+=_0x3d6d25+toastState['gap'];});});}function removeToastById(_0x19d087){const _0x440a30=toastState['toasts']['findIndex'](_0x1388ea=>_0x1388ea['id']===_0x19d087);if(_0x440a30===-0x1)return;const _0x373857=toastState['toasts'][_0x440a30];if(_0x373857['timeoutId'])clearTimeout(_0x373857['timeoutId']);_0x373857['el']['classList']['remove']('show'),setTimeout(()=>_0x373857['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x440a30,0x1),repositionAllToasts();}function registerToast(_0x4f9476){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4f9476),repositionAllToasts(),_0x4f9476['id'];}function getNextToastId(){return toastState['nextId']++;}const MARKDOWN_THEME_CHANGE_EVENT='profound-theme-change',MERMAID_SCRIPT_ID='coderflow-mermaid-script',MERMAID_SCRIPT_SRC='/vendor/mermaid/11.13.0/dist/mermaid.min.js';let sharedMarkedRenderer=null,markedConfigured=![],mermaidLoadPromise=null,mermaidObserverInitialized=![],mermaidMutationObserver=null,mermaidRenderScheduled=![];const pendingMermaidNodes=new Set();function escapeHtmlValue(_0x4e3899){if(_0x4e3899===null||_0x4e3899===undefined)return'';return String(_0x4e3899)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x4fb0f9,_0x57049e){if(_0x4fb0f9&&typeof _0x4fb0f9==='object'&&!Array['isArray'](_0x4fb0f9))return{'code':typeof _0x4fb0f9['text']==='string'?_0x4fb0f9['text']:'','language':typeof _0x4fb0f9['lang']==='string'?_0x4fb0f9['lang']:''};return{'code':typeof _0x4fb0f9==='string'?_0x4fb0f9:'','language':typeof _0x57049e==='string'?_0x57049e:''};}function buildMermaidBlock(_0x25f7c2){const _0x120428=String(_0x25f7c2||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x120428))+'\x22>'+escapeHtmlValue(_0x120428)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x317f2e=new marked['Renderer'](),_0xd5bc90=_0x317f2e['code']['bind'](_0x317f2e);return _0x317f2e['code']=function(_0x55170,_0xf3ebe5,..._0x13d2d4){const {code:_0x5d217a,language:_0x58784f}=getMarkdownCodeBlockPayload(_0x55170,_0xf3ebe5),_0x1c180a=String(_0x58784f||'')['trim']()['toLowerCase']();if(_0x1c180a==='mermaid')return buildMermaidBlock(_0x5d217a);const _0xb627d8=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0xb627d8&&_0x1c180a)try{const _0x105a35=_0xb627d8['getLanguage'](_0x1c180a)?_0x1c180a:'plaintext',_0x448870=_0xb627d8['highlight'](_0x5d217a,{'language':_0x105a35})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x1c180a)+'\x22>'+_0x448870+'</code></pre>';}catch(_0x11e8ac){console['error']('Syntax\x20highlighting\x20error:',_0x11e8ac);}return _0xd5bc90(_0x55170,_0xf3ebe5,..._0x13d2d4);},sharedMarkedRenderer=_0x317f2e,_0x317f2e;}function ensureMarkedConfigured(){if(markedConfigured||typeof marked==='undefined'||!marked['setOptions'])return;marked['setOptions']({'gfm':!![],'breaks':![],'headerIds':![],'mangle':![],'renderer':getSharedMarkedRenderer()}),markedConfigured=!![];}function getMermaidTheme(){return document['documentElement']['dataset']['theme']==='dark'?'dark':'default';}function configureMermaidInstance(){const _0x425159=window['mermaid'];if(!_0x425159||typeof _0x425159['initialize']!=='function')return _0x425159||null;return _0x425159['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x425159;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x567676,_0x486120)=>{const _0x37ed74=()=>_0x567676(configureMermaidInstance()),_0x239fb5=()=>{mermaidLoadPromise=null,_0x486120(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x53b6d4=document['getElementById'](MERMAID_SCRIPT_ID);!_0x53b6d4&&(_0x53b6d4=document['createElement']('script'),_0x53b6d4['id']=MERMAID_SCRIPT_ID,_0x53b6d4['src']=MERMAID_SCRIPT_SRC,_0x53b6d4['async']=!![],document['head']['appendChild'](_0x53b6d4));if(window['mermaid']){_0x37ed74();return;}_0x53b6d4['addEventListener']('load',_0x37ed74,{'once':!![]}),_0x53b6d4['addEventListener']('error',_0x239fb5,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x3819c0){const _0x3c2178=_0x3819c0['getAttribute']('data-mermaid-source');if(!_0x3c2178)return null;let _0x557d0f=_0x3c2178;try{_0x557d0f=decodeURIComponent(_0x3c2178);}catch{}return _0x3819c0['textContent']=_0x557d0f,_0x3819c0['removeAttribute']('data-processed'),_0x3819c0['removeAttribute']('aria-roledescription'),_0x3819c0['removeAttribute']('role'),_0x3819c0['removeAttribute']('aria-label'),_0x557d0f;}function collectMermaidNodes(_0x188b38,_0x2dc0df){if(!(_0x188b38 instanceof Element))return;_0x188b38['matches']('.mermaid[data-mermaid-source]')&&_0x2dc0df['add'](_0x188b38),_0x188b38['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3e1deb=>{_0x2dc0df['add'](_0x3e1deb);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x3b191d=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x5c73e5=>setTimeout(_0x5c73e5,0x0);_0x3b191d(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x7d65b=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x7d65b);});});}function queueMermaidRender(_0x2458e3){const _0x5851c9=new Set();_0x2458e3 instanceof Document||_0x2458e3 instanceof DocumentFragment?_0x2458e3['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1b6c99=>_0x5851c9['add'](_0x1b6c99)):collectMermaidNodes(_0x2458e3,_0x5851c9);if(_0x5851c9['size']===0x0)return;_0x5851c9['forEach'](_0x465bd8=>pendingMermaidNodes['add'](_0x465bd8)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x17a59d=Array['from'](pendingMermaidNodes)['filter'](_0xaa83d1=>_0xaa83d1['isConnected']);pendingMermaidNodes['clear']();if(_0x17a59d['length']===0x0)return;const _0x296b5d=await loadMermaid();if(!_0x296b5d)return;configureMermaidInstance();const _0x494a6a=getMermaidTheme();for(const _0x44d538 of _0x17a59d){const _0x3addb5=_0x44d538['getAttribute']('data-mermaid-source');if(!_0x3addb5)continue;const _0x226388=_0x44d538['getAttribute']('data-processed')==='true';if(_0x226388&&_0x44d538['dataset']['mermaidTheme']===_0x494a6a)continue;restoreMermaidSource(_0x44d538);try{if(typeof _0x296b5d['run']==='function')await _0x296b5d['run']({'nodes':[_0x44d538]});else typeof _0x296b5d['init']==='function'&&_0x296b5d['init'](undefined,[_0x44d538]);_0x44d538['dataset']['mermaidTheme']=_0x494a6a,delete _0x44d538['dataset']['mermaidError'];}catch(_0x7a81ac){console['error']('Mermaid\x20render\x20failed:',_0x7a81ac),restoreMermaidSource(_0x44d538),_0x44d538['dataset']['mermaidError']='true',delete _0x44d538['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x277854=>{_0x277854['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x277854);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x4e3e8c=>{_0x4e3e8c['forEach'](_0xe09cc6=>{_0xe09cc6['addedNodes']['forEach'](_0x449fa3=>{_0x449fa3['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x449fa3);});});}),mermaidMutationObserver['observe'](document['body'],{'childList':!![],'subtree':!![]}),window['addEventListener'](MARKDOWN_THEME_CHANGE_EVENT,rerenderAllMermaidDiagrams),queueMermaidRender(document['body']);}function ensureMermaidObserver(){if(mermaidObserverInitialized)return;if(document['body']){initializeMermaidObserver();return;}window['addEventListener']('DOMContentLoaded',initializeMermaidObserver,{'once':!![]});}ensureMarkedConfigured(),ensureMermaidObserver();export const ToastManager={'getContainer':getToastContainer,'register':registerToast,'remove':removeToastById,'reposition':repositionAllToasts,'getNextId':getNextToastId,'getState':()=>toastState};export const Utils={'formatRelativeTime'(_0x224a65){const _0x131a57=new Date(_0x224a65),_0xcdbedb=new Date(),_0x4bac67=_0xcdbedb-_0x131a57,_0x3f3108=Math['floor'](_0x4bac67/0x3e8),_0x2840a3=Math['floor'](_0x3f3108/0x3c),_0x536202=Math['floor'](_0x2840a3/0x3c),_0x462e52=Math['floor'](_0x536202/0x18);if(_0x3f3108<0x3c)return'now';if(_0x2840a3<0x3c)return _0x2840a3+'m\x20ago';if(_0x536202<0x18)return _0x536202+'h\x20ago';return _0x462e52+'d\x20ago';},'getStatusIcon'(_0x347fb2){switch(_0x347fb2){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x49c700){switch(_0x49c700){case'completed':return'status-completed';case'running':return'status-running';case'interrupted':return'status-interrupted';case'failed':return'status-failed';case'staged':return'status-staged';case'queued':return'status-queued';default:return'status-unknown';}},async 'copyToClipboard'(_0x1d8039,_0x4be7c3=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x4682c3={};_0x4682c3['text/plain']=new Blob([_0x1d8039],{'type':'text/plain'});_0x4be7c3&&(_0x4682c3['text/html']=new Blob([_0x4be7c3],{'type':'text/html'}));const _0x472018=new ClipboardItem(_0x4682c3);return await navigator['clipboard']['write']([_0x472018]),!![];}catch(_0x48e026){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x48e026);}try{const _0x10ac39=_0x55ac8b=>{_0x55ac8b['preventDefault'](),_0x55ac8b['clipboardData']['setData']('text/plain',_0x1d8039),_0x4be7c3&&_0x55ac8b['clipboardData']['setData']('text/html',_0x4be7c3);};document['addEventListener']('copy',_0x10ac39);const _0x5ab472=document['execCommand']('copy');document['removeEventListener']('copy',_0x10ac39);if(_0x5ab472)return!![];}catch(_0x4b1558){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x4b1558);}try{const _0x2107e1=document['createElement']('textarea');_0x2107e1['value']=_0x1d8039,_0x2107e1['style']['position']='fixed',_0x2107e1['style']['opacity']='0',_0x2107e1['style']['pointerEvents']='none',document['body']['appendChild'](_0x2107e1),_0x2107e1['select']();const _0x1acf2c=document['execCommand']('copy');return document['body']['removeChild'](_0x2107e1),_0x1acf2c;}catch(_0x574569){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x574569),![];}},'showToast'(_0x26a298,_0x2a3e4c='info'){const _0x533780=getNextToastId(),_0x34e859=document['createElement']('div');_0x34e859['className']='toast\x20toast-'+_0x2a3e4c,_0x34e859['textContent']=_0x26a298,_0x34e859['dataset']['toastId']=_0x533780,document['body']['appendChild'](_0x34e859);const _0x5ac104=_0x2a3e4c==='error'?0x2710:0xbb8,_0x3f8b1c=setTimeout(()=>{removeToastById(_0x533780);},_0x5ac104),_0x36d517={'id':_0x533780,'el':_0x34e859,'timeoutId':_0x3f8b1c};return registerToast(_0x36d517),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x34e859['classList']['add']('show');});}),_0x533780;},'showError'(_0xda94cc){console['error'](_0xda94cc);const _0x3f43d8=typeof _0xda94cc==='string'?_0xda94cc:_0xda94cc['message']||'An\x20error\x20occurred';this['showToast'](_0x3f43d8,'error');},'showSuccess'(_0x64720e){this['showToast'](_0x64720e,'success');},'capitalize'(_0xeaa3b0){if(!_0xeaa3b0)return'';return _0xeaa3b0['charAt'](0x0)['toUpperCase']()+_0xeaa3b0['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4406f7){return escapeHtmlValue(_0x4406f7);},'ansiToHtml'(_0x1da414){if(_0x1da414===null||_0x1da414===undefined)return'';let _0x350502=this['escapeHtml'](_0x1da414);const _0x3f736c={'30':'#000000','31':'#cc0000','32':'#4e9a06','33':'#c4a000','34':'#3465a4','35':'#75507b','36':'#06989a','37':'#d3d7cf','90':'#555753','91':'#ef2929','92':'#8ae234','93':'#fce94f','94':'#729fcf','95':'#ad7fa8','96':'#34e2e2','97':'#eeeeec'},_0x429f68={'40':'#000000','41':'#cc0000','42':'#4e9a06','43':'#c4a000','44':'#3465a4','45':'#75507b','46':'#06989a','47':'#d3d7cf','100':'#555753','101':'#ef2929','102':'#8ae234','103':'#fce94f','104':'#729fcf','105':'#ad7fa8','106':'#34e2e2','107':'#eeeeec'};let _0x8845dc=0x0;return _0x350502=_0x350502['replace'](/\x1b\[([0-9;]*)m/g,(_0x4bc6e3,_0x2adb08)=>{if(!_0x2adb08||_0x2adb08==='0'){const _0x211426='</span>'['repeat'](_0x8845dc);return _0x8845dc=0x0,_0x211426;}const _0x278beb=_0x2adb08['split'](';'),_0x5a7f8f=[];for(const _0x4aa881 of _0x278beb){if(_0x4aa881==='1')_0x5a7f8f['push']('font-weight:bold');else{if(_0x4aa881==='2')_0x5a7f8f['push']('opacity:0.7');else{if(_0x4aa881==='3')_0x5a7f8f['push']('font-style:italic');else{if(_0x4aa881==='4')_0x5a7f8f['push']('text-decoration:underline');else{if(_0x4aa881==='9')_0x5a7f8f['push']('text-decoration:line-through');else{if(_0x3f736c[_0x4aa881])_0x5a7f8f['push']('color:'+_0x3f736c[_0x4aa881]);else{if(_0x429f68[_0x4aa881])_0x5a7f8f['push']('background-color:'+_0x429f68[_0x4aa881]);}}}}}}}if(_0x5a7f8f['length']>0x0)return _0x8845dc++,'<span\x20style=\x22'+_0x5a7f8f['join'](';')+'\x22>';return'';}),_0x350502+='</span>'['repeat'](_0x8845dc),_0x350502=_0x350502['replace'](/\\u001b\[([0-9;]*)m/g,(_0x4ce79b,_0x22ea2d)=>{if(!_0x22ea2d||_0x22ea2d==='0')return'';const _0x3a08be=_0x22ea2d['split'](';'),_0x4beabc=[];for(const _0x19e98c of _0x3a08be){if(_0x19e98c==='1')_0x4beabc['push']('font-weight:bold');else{if(_0x3f736c[_0x19e98c])_0x4beabc['push']('color:'+_0x3f736c[_0x19e98c]);else{if(_0x429f68[_0x19e98c])_0x4beabc['push']('background-color:'+_0x429f68[_0x19e98c]);}}}if(_0x4beabc['length']>0x0)return'<span\x20style=\x22'+_0x4beabc['join'](';')+'\x22>';return'';}),_0x350502;},'showModal'({title:_0x28c07a,content:_0x265299,buttons:buttons=[]}){const _0x417f1f='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22\x20id=\x22utils-modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20id=\x22utils-modal-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>'+this['escapeHtml'](_0x28c07a)+'</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22utils-modal-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x265299+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+buttons['map']((_0x267022,_0x58e02e)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x267022['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x58e02e+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x267022['text'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20',_0x3d1ae1=document['createElement']('div');_0x3d1ae1['id']='utils-modal',_0x3d1ae1['className']='modal',_0x3d1ae1['innerHTML']=_0x417f1f,document['body']['appendChild'](_0x3d1ae1);const _0x48d493=document['getElementById']('utils-modal-close');_0x48d493&&_0x48d493['addEventListener']('click',()=>this['hideModal']());const _0xf44219=_0x3d1ae1['querySelectorAll']('[data-btn-index]');_0xf44219['forEach'](_0x711a1f=>{const _0x1c9a61=parseInt(_0x711a1f['dataset']['btnIndex']);buttons[_0x1c9a61]?.['onClick']&&_0x711a1f['addEventListener']('click',buttons[_0x1c9a61]['onClick']);});const _0x5e5190=document['getElementById']('utils-modal-overlay');_0x5e5190&&_0x5e5190['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x32b6ce=document['getElementById']('utils-modal');_0x32b6ce&&_0x32b6ce['remove']();},'parseKeyValuePairs'(_0x5095c0){const _0x128c47={};if(!_0x5095c0)return _0x128c47;return _0x5095c0['split'](/\r?\n/)['map'](_0x5e448e=>_0x5e448e['trim']())['filter'](Boolean)['forEach'](_0x45f4c1=>{const _0x44ca11=_0x45f4c1['indexOf']('=');if(_0x44ca11>0x0){const _0x39e408=_0x45f4c1['slice'](0x0,_0x44ca11)['trim'](),_0x221484=_0x45f4c1['slice'](_0x44ca11+0x1)['trim']();if(_0x39e408)_0x128c47[_0x39e408]=_0x221484;}}),_0x128c47;},'debounce'(_0x1901da,_0xe95c21=0xfa){let _0x29b144=null;return(..._0x18f3bb)=>{clearTimeout(_0x29b144),_0x29b144=setTimeout(()=>_0x1901da['apply'](this,_0x18f3bb),_0xe95c21);};},'formatTimestamp'(_0x13bf2e){if(!_0x13bf2e)return'N/A';const _0x684ebf=new Date(_0x13bf2e);return _0x684ebf['toLocaleDateString']()+'\x20'+_0x684ebf['toLocaleTimeString']();},'getQueryParams'(){const _0xf74cfc=new URLSearchParams(window['location']['search']),_0x34b0a2={};for(const [_0x21b160,_0x1b83a2]of _0xf74cfc){_0x34b0a2[_0x21b160]=_0x1b83a2;}return _0x34b0a2;},'formatDuration'(_0x1c8b05,_0x3a5ff4){if(!_0x1c8b05)return'N/A';const _0x177fee=new Date(_0x1c8b05),_0x375b1d=_0x3a5ff4?new Date(_0x3a5ff4):new Date(),_0x174263=_0x375b1d-_0x177fee;if(_0x174263<0x0)return'0s';const _0x3404cd=Math['floor'](_0x174263/0x3e8),_0x2e1987=Math['floor'](_0x3404cd/0x3c),_0xc4160c=Math['floor'](_0x2e1987/0x3c),_0x5a1c78=Math['floor'](_0xc4160c/0x18);if(_0x3404cd<0x3c)return _0x3404cd+'s';if(_0x2e1987<0x3c)return _0x2e1987+'m\x20'+_0x3404cd%0x3c+'s';if(_0xc4160c<0x18)return _0xc4160c+'h\x20'+_0x2e1987%0x3c+'m\x20'+_0x3404cd%0x3c+'s';return _0x5a1c78+'d\x20'+_0xc4160c%0x18+'h\x20'+_0x2e1987%0x3c+'m';},'renderMarkdown'(_0x5b1524,_0x153429={}){if(!_0x5b1524)return'';_0x5b1524=this['rewriteAttachmentLinks'](_0x5b1524,_0x153429),_0x5b1524=this['rewriteColorSyntax'](_0x5b1524);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x5b1524,_0x153429);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x5b1524);}catch(_0xc4018c){return console['error']('Markdown\x20parsing\x20error:',_0xc4018c),this['renderMarkdownFallback'](_0x5b1524,_0x153429);}},'rewriteAttachmentLinks'(_0x448fb8,_0x51c50f={}){const _0x59ea71=typeof _0x51c50f['resolveAttachmentUrl']==='function'?_0x51c50f['resolveAttachmentUrl']:_0x51c50f['taskId']?_0xb4b998=>API_BASE+'/tasks/'+_0x51c50f['taskId']+'/attachments/'+encodeURIComponent(_0xb4b998):null;if(!_0x59ea71)return _0x448fb8;return String(_0x448fb8)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x813a97,_0x5f0bc1)=>{const _0x3b3088=String(_0x5f0bc1||'')['trim']();if(!_0x3b3088)return _0x813a97;let _0x51477e=_0x3b3088;try{_0x51477e=decodeURIComponent(_0x3b3088);}catch{}const _0x5c1f7b=_0x59ea71(_0x51477e);if(!_0x5c1f7b)return _0x813a97;return']('+_0x5c1f7b+')';});},'rewriteColorSyntax'(_0x299c69){if(!_0x299c69)return _0x299c69;return String(_0x299c69)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0xb88d8e,_0x2f65f4,_0x276d25)=>{const _0x41d39c=this['rewriteColorSyntax'](_0x276d25);return'<span\x20style=\x22color:\x20'+_0x2f65f4+'\x22>'+_0x41d39c+'</span>';});},'renderMarkdownFallback'(_0x1f45dc,_0x44e76a={}){if(!_0x1f45dc)return'';_0x1f45dc=_0x1f45dc['replace'](/\r\n/g,'\x0a'),_0x1f45dc=_0x1f45dc['replace'](/\r/g,'\x0a'),_0x1f45dc=this['rewriteAttachmentLinks'](_0x1f45dc,_0x44e76a);let _0x3c80fd=this['escapeHtml'](_0x1f45dc);return _0x3c80fd=_0x3c80fd['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x3c80fd=_0x3c80fd['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x3c80fd=_0x3c80fd['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x3c80fd=_0x3c80fd['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x3c80fd=_0x3c80fd['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x3c80fd=_0x3c80fd['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x3c80fd=_0x3c80fd['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x3c80fd=_0x3c80fd['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x3c80fd=_0x3c80fd['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x3c80fd=_0x3c80fd['replace'](/\n\n/g,'</p><p>'),_0x3c80fd=_0x3c80fd['replace'](/\n/g,'<br>'),'<p>'+_0x3c80fd+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x229672=new Uint8Array(0x10);crypto['getRandomValues'](_0x229672),_0x229672[0x6]=_0x229672[0x6]&0xf|0x40,_0x229672[0x8]=_0x229672[0x8]&0x3f|0x80;const _0x23d5b1=Array['from'](_0x229672,_0x311182=>_0x311182['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x23d5b1['slice'](0x0,0x8)+'-'+_0x23d5b1['slice'](0x8,0xc)+'-'+_0x23d5b1['slice'](0xc,0x10)+'-'+_0x23d5b1['slice'](0x10,0x14)+'-'+_0x23d5b1['slice'](0x14);}};export class CustomSelect{constructor(_0x4f3cc7,_0x33c667={}){this['nativeSelect']=_0x4f3cc7,this['options']=_0x33c667,this['isOpen']=![],this['selectedValue']=_0x4f3cc7['value']||'',this['searchable']=_0x33c667['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x30f4b9=document['createElement']('div');_0x30f4b9['className']='custom-select';const _0x1a85b8=document['createElement']('div');_0x1a85b8['className']='custom-select-trigger',_0x1a85b8['setAttribute']('tabindex','0'),_0x1a85b8['setAttribute']('role','button'),_0x1a85b8['setAttribute']('aria-haspopup','listbox');const _0x1b5e08=document['createElement']('span');_0x1b5e08['className']='custom-select-trigger-text';const _0x54738f=document['createElement']('span');_0x54738f['className']='custom-select-arrow',_0x54738f['textContent']='▼',_0x1a85b8['appendChild'](_0x1b5e08),_0x1a85b8['appendChild'](_0x54738f);const _0x43da45=document['createElement']('div');_0x43da45['className']='custom-select-dropdown',_0x43da45['setAttribute']('role','listbox');if(this['searchable']){const _0xf0a3aa=document['createElement']('div');_0xf0a3aa['className']='custom-select-search';const _0x2af9b9=document['createElement']('input');_0x2af9b9['type']='text',_0x2af9b9['className']='custom-select-search-input',_0x2af9b9['placeholder']='Type\x20to\x20search...',_0x2af9b9['setAttribute']('aria-label','Search\x20options'),_0x2af9b9['addEventListener']('input',_0x3d79f7=>{this['searchQuery']=_0x3d79f7['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x2af9b9['addEventListener']('keydown',_0x18a97e=>{if(_0x18a97e['key']==='Escape')_0x18a97e['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x18a97e['key']==='Enter'){_0x18a97e['preventDefault'](),_0x18a97e['stopPropagation']();const _0x543df6=_0x43da45['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x543df6){const _0x45914b=_0x543df6['getAttribute']('data-value');this['select'](_0x45914b);}}}}),_0xf0a3aa['appendChild'](_0x2af9b9),_0x43da45['appendChild'](_0xf0a3aa),this['searchInput']=_0x2af9b9;}const _0x395455=document['createElement']('div');_0x395455['className']='custom-select-options',_0x43da45['appendChild'](_0x395455),_0x30f4b9['appendChild'](_0x1a85b8),_0x30f4b9['appendChild'](_0x43da45),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x30f4b9,this['nativeSelect']),this['wrapper']=_0x30f4b9,this['trigger']=_0x1a85b8,this['triggerText']=_0x1b5e08,this['dropdown']=_0x43da45,this['optionsContainer']=_0x395455,_0x1a85b8['addEventListener']('click',()=>this['toggle']()),_0x1a85b8['addEventListener']('keydown',_0xcc933e=>this['handleKeydown'](_0xcc933e)),document['addEventListener']('click',_0x49bd54=>{!_0x30f4b9['contains'](_0x49bd54['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x2e116b=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x2e116b['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x1bbdaa=new MutationObserver(()=>{this['updateDisabledState']();});_0x1bbdaa['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x1658e8=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x1658e8['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x4cca61=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x4cca61),this['trigger']['setAttribute']('aria-disabled',_0x4cca61?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x4cca61?'-1':'0'),_0x4cca61&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x18b1cf=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x198b96=_0x18b1cf['filter'](_0x4da201=>!_0x4da201['disabled']&&!_0x4da201['hidden']);_0x18b1cf['forEach']((_0x3a6faa,_0x150812)=>{const _0x23b9e0=document['createElement']('div');_0x23b9e0['className']='custom-select-option',_0x23b9e0['textContent']=_0x3a6faa['textContent'],_0x23b9e0['setAttribute']('data-value',_0x3a6faa['value']),_0x23b9e0['setAttribute']('data-index',_0x150812),_0x23b9e0['setAttribute']('role','option'),_0x3a6faa['disabled']?_0x23b9e0['classList']['add']('disabled'):_0x23b9e0['addEventListener']('click',()=>this['select'](_0x3a6faa['value'])),_0x3a6faa['value']===this['selectedValue']&&_0x23b9e0['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x23b9e0),this['allOptions']['push']({'element':_0x23b9e0,'text':_0x3a6faa['textContent']['toLowerCase'](),'value':_0x3a6faa['value'],'disabled':_0x3a6faa['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4bf2aa=this['searchInput']['parentElement'];_0x198b96['length']>0x3?_0x4bf2aa['style']['display']='':_0x4bf2aa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x24d4d4=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x288271=>{if(!_0x24d4d4||_0x288271['disabled'])_0x288271['element']['style']['display']='';else{const _0x391dfd=_0x288271['text']['includes'](_0x24d4d4);_0x288271['element']['style']['display']=_0x391dfd?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0xef20a4){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0xef20a4,this['nativeSelect']['value']=_0xef20a4;const _0x30aaf2=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x30aaf2),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x25b232=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x25b232&&(this['triggerText']['textContent']=_0x25b232['textContent'],_0x25b232['disabled']||_0x25b232['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x916a25=>{_0x916a25['getAttribute']('data-value')===this['selectedValue']?_0x916a25['classList']['add']('selected'):_0x916a25['classList']['remove']('selected');});}['toggle'](){if(this['nativeSelect']['disabled'])return;this['isOpen']?this['close']():this['open']();}['open'](){if(this['nativeSelect']['disabled'])return;this['isOpen']=!![],this['trigger']['classList']['add']('open'),this['dropdown']['classList']['add']('open'),this['trigger']['setAttribute']('aria-expanded','true');const _0x2ff1b8=window['getComputedStyle'](this['dropdown']);if(_0x2ff1b8['position']==='fixed'){const _0x3da3ff=this['trigger']['getBoundingClientRect'](),_0x54b28d=parseInt(_0x2ff1b8['maxHeight'])||0xc8,_0x4270b0=window['innerHeight'],_0x497231=_0x4270b0-_0x3da3ff['bottom'],_0x333898=_0x3da3ff['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0xbeeb6d;_0x497231<_0x54b28d&&_0x333898>_0x497231?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x4270b0-_0x3da3ff['top']+'px',_0xbeeb6d=Math['min'](_0x54b28d,_0x333898-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x3da3ff['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0xbeeb6d=Math['min'](_0x54b28d,_0x497231-0xa),this['dropdown']['style']['maxHeight']=_0xbeeb6d+'px');if(this['optionsContainer']){let _0x4401ed=_0xbeeb6d;if(this['searchInput']){const _0x54340e=this['searchInput']['parentElement'];_0x54340e&&(_0x4401ed-=_0x54340e['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x4401ed)+'px';}this['dropdown']['style']['left']=_0x3da3ff['left']+'px',this['dropdown']['style']['width']=_0x3da3ff['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x518053=this['searchInput']['parentElement'];_0x518053&&_0x518053['style']['display']!=='none'&&setTimeout(()=>{this['searchInput']['focus']();},0x32);}}['close'](){this['isOpen']=![],this['trigger']['classList']['remove']('open'),this['dropdown']['classList']['remove']('open'),this['trigger']['setAttribute']('aria-expanded','false'),this['dropdown']['style']['top']='',this['dropdown']['style']['bottom']='',this['dropdown']['style']['left']='',this['dropdown']['style']['width']='',this['dropdown']['style']['maxHeight']='',this['optionsContainer']&&(this['optionsContainer']['style']['maxHeight']=''),this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped'),this['clearSearch']();}['handleKeydown'](_0x34f143){if(this['nativeSelect']['disabled'])return;if(_0x34f143['key']==='Enter'||_0x34f143['key']==='\x20')_0x34f143['preventDefault'](),this['toggle']();else _0x34f143['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x469eb7='\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22confirm-dialog-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-content\x22\x20style=\x22max-width:\x20450px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20id=\x22confirm-dialog-title\x22>Confirm</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22confirm-dialog-close\x22\x20aria-label=\x22Close\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20id=\x22confirm-dialog-message\x22></p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x22\x20id=\x22confirm-dialog-cancel\x22>Cancel</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-primary\x22\x20id=\x22confirm-dialog-confirm\x22>Confirm</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';document['body']['insertAdjacentHTML']('beforeend',_0x469eb7),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x834681=document['getElementById']('confirm-dialog-close'),_0x4930c4=document['getElementById']('confirm-dialog-cancel'),_0x4f7182=document['getElementById']('confirm-dialog-confirm'),_0x4da606=this['_modal']['querySelector']('.modal-overlay');_0x834681['addEventListener']('click',()=>this['_resolve'](![])),_0x4930c4['addEventListener']('click',()=>this['_resolve'](![])),_0x4f7182['addEventListener']('click',()=>this['_resolve'](!![])),_0x4da606['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x1eede=>{if(_0x1eede['key']==='Escape')_0x1eede['preventDefault'](),this['_resolve'](![]);else _0x1eede['key']==='Enter'&&(_0x1eede['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x51ac10,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x8d7248=>{this['_resolvePromise']=_0x8d7248,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x51ac10;const _0x4c3349=document['getElementById']('confirm-dialog-cancel'),_0x5c764b=document['getElementById']('confirm-dialog-confirm');_0x4c3349['textContent']=cancelText,_0x5c764b['textContent']=confirmText,_0x5c764b['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x5c764b['focus']();});},'_resolve'(_0x6df270){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x6df270),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x31ec19,_0x220dee={}){this['container']=_0x31ec19,this['options']={'placeholder':_0x220dee['placeholder']||'Type\x20to\x20search...','maxItems':_0x220dee['maxItems']||0x64,'loadItems':_0x220dee['loadItems']||(async()=>[]),'renderItem':_0x220dee['renderItem']||(_0x105db6=>({'primary':String(_0x105db6),'secondary':''})),'onSelect':_0x220dee['onSelect']||(()=>{}),'filterItems':_0x220dee['filterItems']||null,'getItemValue':_0x220dee['getItemValue']||(_0xe5e0d7=>_0xe5e0d7),'sortItems':_0x220dee['sortItems']||null,'debounceMs':_0x220dee['debounceMs']||0xc8,'minCharsForSearch':_0x220dee['minCharsForSearch']||0x0,'emptyMessage':_0x220dee['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x220dee['loadingMessage']||'Loading...','preload':_0x220dee['preload']!==![],'searchMode':_0x220dee['searchMode']||'client'},this['allItems']=[],this['filteredItems']=[],this['selectedIndex']=-0x1,this['isOpen']=![],this['isLoading']=![],this['debounceTimer']=null,this['selectedItem']=null,this['hasLoadedOnce']=![],this['init'](),this['options']['preload']&&this['preloadData']();}['init'](){this['wrapper']=document['createElement']('div'),this['wrapper']['className']='autocomplete-select',this['input']=document['createElement']('input'),this['input']['type']='text',this['input']['className']='autocomplete-select-input',this['input']['placeholder']=this['options']['placeholder'],this['input']['setAttribute']('autocomplete','off'),this['input']['setAttribute']('aria-autocomplete','list'),this['input']['setAttribute']('aria-expanded','false'),this['input']['setAttribute']('role','combobox'),this['clearBtn']=document['createElement']('button'),this['clearBtn']['type']='button',this['clearBtn']['className']='autocomplete-select-clear',this['clearBtn']['innerHTML']='×',this['clearBtn']['setAttribute']('aria-label','Clear\x20selection'),this['clearBtn']['hidden']=!![],this['dropdown']=document['createElement']('div'),this['dropdown']['className']='autocomplete-select-dropdown',this['dropdown']['setAttribute']('role','listbox'),this['itemsContainer']=document['createElement']('div'),this['itemsContainer']['className']='autocomplete-select-items',this['dropdown']['appendChild'](this['itemsContainer']),this['footer']=document['createElement']('div'),this['footer']['className']='autocomplete-select-footer',this['footer']['hidden']=!![],this['dropdown']['appendChild'](this['footer']),this['wrapper']['appendChild'](this['input']),this['wrapper']['appendChild'](this['clearBtn']),this['wrapper']['appendChild'](this['dropdown']),this['container']['innerHTML']='',this['container']['appendChild'](this['wrapper']),this['bindEvents']();}['bindEvents'](){this['input']['addEventListener']('focus',()=>this['onFocus']()),this['input']['addEventListener']('blur',_0x2339c7=>this['onBlur'](_0x2339c7)),this['input']['addEventListener']('input',_0x1703d4=>this['onInput'](_0x1703d4)),this['input']['addEventListener']('keydown',_0x13174e=>this['onKeydown'](_0x13174e)),this['clearBtn']['addEventListener']('mousedown',_0x48672c=>{_0x48672c['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x144189=>{_0x144189['preventDefault']();}),document['addEventListener']('click',_0x45e69f=>{!this['wrapper']['contains'](_0x45e69f['target'])&&this['close']();});}async['preloadData'](){if(this['hasLoadedOnce'])return;try{this['allItems']=await this['options']['loadItems'](''),this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}catch(_0x4946e5){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x4946e5);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x5008cf){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x47f601){const _0x4c41ab=_0x47f601['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x4c41ab);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x4c41ab):this['loadAndShow'](_0x4c41ab);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x37cedf){switch(_0x37cedf['key']){case'ArrowDown':_0x37cedf['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x37cedf['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x37cedf['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x37cedf['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x2bf6bd){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x38ca68=this['selectedIndex']+_0x2bf6bd;if(_0x38ca68>=0x0&&_0x38ca68<this['filteredItems']['length']){this['selectedIndex']=_0x38ca68,this['updateSelectionHighlight']();const _0x3d5ddb=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x3d5ddb[this['selectedIndex']]&&_0x3d5ddb[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x124b05=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x124b05['forEach']((_0x9e82d6,_0x1e2b42)=>{_0x9e82d6['classList']['toggle']('keyboard-selected',_0x1e2b42===this['selectedIndex']);});}async['loadAndShow'](_0x2df97b){this['showLoading']();try{const _0x4aa47d=await this['options']['loadItems'](_0x2df97b);if(this['options']['searchMode']==='server'){let _0x1d9912=_0x4aa47d;this['options']['sortItems']&&(_0x1d9912=this['options']['sortItems']([..._0x4aa47d]));this['filteredItems']=_0x1d9912;const _0x549eeb=this['filteredItems']['length']>=this['options']['maxItems'];_0x549eeb&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x549eeb),this['open']();}else this['allItems']=_0x4aa47d,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x2df97b);}catch(_0x48486d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x48486d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x1a5fd3){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x1a5fd3):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x42476e=this['filteredItems']['length']>=this['options']['maxItems'];_0x42476e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x42476e),this['open']();}['renderItems'](_0x4ca519){this['itemsContainer']['innerHTML']='',this['selectedIndex']=-0x1;if(this['filteredItems']['length']===0x0){this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-empty\x22>'+Utils['escapeHtml'](this['options']['emptyMessage'])+'</div>',this['footer']['hidden']=!![];return;}this['filteredItems']['forEach']((_0x422b99,_0x5bb20e)=>{const _0x5ef669=document['createElement']('div');_0x5ef669['className']='autocomplete-select-item',_0x5ef669['setAttribute']('role','option'),_0x5ef669['setAttribute']('data-index',_0x5bb20e);const _0x9e1bb1=this['options']['renderItem'](_0x422b99);let _0x3380c5='';_0x9e1bb1['icon']&&(_0x3380c5='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x9e1bb1['iconClass']||'')+'\x22>'+_0x9e1bb1['icon']+'</span>'),_0x5ef669['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3380c5+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22autocomplete-select-item-primary\x22>'+Utils['escapeHtml'](_0x9e1bb1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x9e1bb1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x9e1bb1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5ef669['addEventListener']('click',()=>{this['selectItem'](_0x422b99);}),_0x5ef669['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x5bb20e,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5ef669);}),_0x4ca519?(this['footer']['textContent']='Displaying\x20maximum\x20'+this['options']['maxItems']+'\x20suggestions',this['footer']['hidden']=![]):this['footer']['hidden']=!![];}['showLoading'](){this['isLoading']=!![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-loading\x22><div\x20class=\x22spinner-small\x22></div><span>'+Utils['escapeHtml'](this['options']['loadingMessage'])+'</span></div>',this['footer']['hidden']=!![],this['open']();}['showError'](_0x369b2b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x369b2b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x41a76d){this['selectedItem']=_0x41a76d;const _0x14885a=this['options']['renderItem'](_0x41a76d);this['input']['value']=_0x14885a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x41a76d);}['open'](){if(this['isOpen'])return;this['isOpen']=!![],this['dropdown']['classList']['add']('open'),this['input']['setAttribute']('aria-expanded','true'),this['wrapper']['classList']['add']('open');}['close'](){if(!this['isOpen'])return;this['isOpen']=![],this['dropdown']['classList']['remove']('open'),this['input']['setAttribute']('aria-expanded','false'),this['wrapper']['classList']['remove']('open'),this['selectedIndex']=-0x1;}['clear'](){this['selectedItem']=null,this['input']['value']='',this['clearBtn']['hidden']=!![],this['options']['onSelect'](null),this['input']['focus']();}['getValue'](){return this['selectedItem']?this['options']['getItemValue'](this['selectedItem']):null;}['getSelectedItem'](){return this['selectedItem'];}['setValue'](_0x1eeb00){if(_0x1eeb00){this['selectedItem']=_0x1eeb00;const _0x18ca0a=this['options']['renderItem'](_0x1eeb00);this['input']['value']=_0x18ca0a['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x270420){this['allItems']=_0x270420,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']]));}['reset'](){this['clear'](),this['allItems']=[],this['filteredItems']=[],this['hasLoadedOnce']=![];}['disable'](){this['input']['disabled']=!![],this['wrapper']['classList']['add']('disabled');}['enable'](){this['input']['disabled']=![],this['wrapper']['classList']['remove']('disabled');}['setPlaceholder'](_0x307f5d){this['input']['placeholder']=_0x307f5d;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5cc577=null){const _0x310637=document['getElementById']('admin-menu-container'),_0x549898=document['getElementById']('admin-menu-btn'),_0x6a5aaf=document['getElementById']('admin-menu');if(!_0x310637||!_0x549898||!_0x6a5aaf)return;try{!_0x5cc577&&(_0x5cc577=await API['getCurrentUser']());if(_0x5cc577){const _0x3565a8=window['Permissions'],_0x3b37e7=_0x3565a8['hasServerPermission'](_0x5cc577,'*')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:manage')||_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')||_0x3565a8['hasTeamPermission'](_0x5cc577,'teams:manage')||_0x3565a8['hasEnvPermission'](_0x5cc577,'environments:view_details');if(!_0x3b37e7)return;_0x310637['hidden']=![];if(!_0x3565a8['hasServerPermission'](_0x5cc577,'*')){const _0x7f49aa=_0x6a5aaf['querySelectorAll']('.admin-menu-item');_0x7f49aa['forEach'](_0x592209=>{const _0x38f5a1=_0x592209['querySelector']('.option-text')?.['textContent']?.['trim']();_0x38f5a1==='Users'&&!_0x3565a8['hasServerPermission'](_0x5cc577,'users:create')&&(_0x592209['hidden']=!![]),_0x38f5a1==='Skills'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Settings'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Server\x20Administration'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Git\x20History'&&(_0x592209['hidden']=!![]),_0x38f5a1==='Roles'&&(_0x592209['hidden']=!![]);});}_0x549898['addEventListener']('click',_0x8b5454=>{_0x8b5454['stopPropagation']();const _0x535af5=document['getElementById']('actions-menu');if(_0x535af5)_0x535af5['hidden']=!![];_0x6a5aaf['hidden']=!_0x6a5aaf['hidden'];}),document['addEventListener']('click',_0x1b1742=>{!_0x6a5aaf['hidden']&&!_0x549898['contains'](_0x1b1742['target'])&&!_0x6a5aaf['contains'](_0x1b1742['target'])&&(_0x6a5aaf['hidden']=!![]);}),document['addEventListener']('keydown',_0x4a413c=>{_0x4a413c['key']==='Escape'&&!_0x6a5aaf['hidden']&&(_0x6a5aaf['hidden']=!![]);});}}catch(_0x447d53){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x447d53['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|
|
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};
|