@profoundlogic/coderflow-server 0.8.3 → 0.8.5
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.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/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-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/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/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-shared-worker.js +1 -1
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function detectApiBase(){const _0xbabc90=window['location']['pathname'],_0x2c36a7=_0xbabc90['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x2c36a7)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x2c36a7[0x1]),_0x2c36a7[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0xf38d32={}){const _0x2eada3=new URLSearchParams();_0xf38d32['userId']&&_0x2eada3['set']('userId',String(_0xf38d32['userId']));_0xf38d32['automation']&&_0x2eada3['set']('automation',String(_0xf38d32['automation']));const _0x323986=API_BASE+'/tasks/stats'+(_0x2eada3['toString']()?'?'+_0x2eada3['toString']():''),_0x5687d9=await fetch(_0x323986);if(!_0x5687d9['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x5687d9['statusText']);return await _0x5687d9['json']();},async 'getTasks'(_0x30bc3f={}){const _0x37ae1a=new URLSearchParams();_0x30bc3f['status']&&_0x37ae1a['set']('status',String(_0x30bc3f['status']));_0x30bc3f['environment']&&_0x37ae1a['set']('environment',String(_0x30bc3f['environment']));_0x30bc3f['automation']&&_0x37ae1a['set']('automation',String(_0x30bc3f['automation']));if(_0x30bc3f['include']){const _0x3a2c7d=Array['isArray'](_0x30bc3f['include'])?_0x30bc3f['include']['join'](','):String(_0x30bc3f['include']);_0x3a2c7d&&_0x37ae1a['set']('include',_0x3a2c7d);}_0x30bc3f['filter']&&_0x37ae1a['set']('filter',String(_0x30bc3f['filter']));_0x30bc3f['page']&&_0x37ae1a['set']('page',String(_0x30bc3f['page']));_0x30bc3f['limit']&&_0x37ae1a['set']('limit',String(_0x30bc3f['limit']));_0x30bc3f['userId']&&_0x37ae1a['set']('userId',String(_0x30bc3f['userId']));_0x30bc3f['search']&&_0x37ae1a['set']('search',String(_0x30bc3f['search']));_0x30bc3f['includeChildTasks']&&_0x37ae1a['set']('includeChildTasks','true');const _0x5c388d=API_BASE+'/tasks'+(_0x37ae1a['toString']()?'?'+_0x37ae1a['toString']():''),_0x4f12f7=await fetch(_0x5c388d);if(!_0x4f12f7['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x4f12f7['statusText']);return await _0x4f12f7['json']();},async 'getAutomations'(_0x1eeb71={}){const _0x235902=new URLSearchParams();_0x1eeb71['environment']&&_0x235902['set']('environment',String(_0x1eeb71['environment']));const _0x9f0410=await fetch(API_BASE+'/api/automations'+(_0x235902['toString']()?'?'+_0x235902['toString']():''));if(!_0x9f0410['ok']){const _0x1b4924=await _0x9f0410['json']()['catch'](()=>({}));throw new Error(_0x1b4924['message']||_0x1b4924['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x9f0410['statusText']);}return await _0x9f0410['json']();},async 'getAutomation'(_0x7d699d){const _0x3a831b=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x7d699d));if(!_0x3a831b['ok']){const _0x1b8531=await _0x3a831b['json']()['catch'](()=>({}));throw new Error(_0x1b8531['message']||_0x1b8531['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x3a831b['statusText']);}return await _0x3a831b['json']();},async 'createAutomation'(_0x54c520){const _0x31ea93=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x54c520||{})});if(!_0x31ea93['ok']){const _0x3772c1=await _0x31ea93['json']()['catch'](()=>({}));throw new Error(_0x3772c1['message']||_0x3772c1['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x31ea93['statusText']);}return await _0x31ea93['json']();},async 'updateAutomation'(_0x9c8e35,_0x46a99b){const _0x53cd12=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x9c8e35),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x46a99b||{})});if(!_0x53cd12['ok']){const _0x5a5a66=await _0x53cd12['json']()['catch'](()=>({}));throw new Error(_0x5a5a66['message']||_0x5a5a66['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x53cd12['statusText']);}return await _0x53cd12['json']();},async 'deleteAutomation'(_0x36cbc1){const _0x1a7153=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x36cbc1),{'method':'DELETE'});if(!_0x1a7153['ok']){const _0xd75c74=await _0x1a7153['json']()['catch'](()=>({}));throw new Error(_0xd75c74['message']||_0xd75c74['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x1a7153['statusText']);}return await _0x1a7153['json']();},async 'triggerAutomation'(_0x5102ed){const _0x42cb28=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5102ed)+'/trigger',{'method':'POST'});if(!_0x42cb28['ok']){const _0x17a1d0=await _0x42cb28['json']()['catch'](()=>({}));throw new Error(_0x17a1d0['message']||_0x17a1d0['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x42cb28['statusText']);}return await _0x42cb28['json']();},async 'setAutomationEnabled'(_0x468088,_0x8317e2){const _0x10c757=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x468088)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x8317e2})});if(!_0x10c757['ok']){const _0x2dd1d0=await _0x10c757['json']()['catch'](()=>({}));throw new Error(_0x2dd1d0['message']||_0x2dd1d0['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x10c757['statusText']);}return await _0x10c757['json']();},async 'getAutomationHistory'(_0x31edc8,_0x410140=0x32){const _0x21c1da=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x31edc8)+'/history?limit='+encodeURIComponent(String(_0x410140)));if(!_0x21c1da['ok']){const _0x52845d=await _0x21c1da['json']()['catch'](()=>({}));throw new Error(_0x52845d['message']||_0x52845d['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x21c1da['statusText']);}return await _0x21c1da['json']();},async 'getTask'(_0x5e0c9a,_0x31f84b={}){const _0x29f198=new URLSearchParams();if(_0x31f84b['include']){const _0x3080ad=Array['isArray'](_0x31f84b['include'])?_0x31f84b['include']['join'](','):String(_0x31f84b['include']);if(_0x3080ad)_0x29f198['set']('include',_0x3080ad);}const _0x246edd=await fetch(API_BASE+'/tasks/'+_0x5e0c9a+(_0x29f198['toString']()?'?'+_0x29f198['toString']():''));if(!_0x246edd['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x246edd['statusText']);return await _0x246edd['json']();},async 'getTaskResults'(_0x49b015){const _0x36bd93=await fetch(API_BASE+'/tasks/'+_0x49b015+'/results');if(!_0x36bd93['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x36bd93['statusText']);return await _0x36bd93['json']();},async 'getTaskPatches'(_0x3cf5b5){const _0x400dac=await fetch(API_BASE+'/tasks/'+_0x3cf5b5+'/patches');if(!_0x400dac['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0x400dac['statusText']);return await _0x400dac['json']();},async 'getTaskAttachments'(_0x4dacea){const _0x595b4a=await fetch(API_BASE+'/tasks/'+_0x4dacea+'/attachments');if(!_0x595b4a['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x595b4a['statusText']);return await _0x595b4a['json']();},async 'uploadAttachments'(_0x23ee24,_0x17d3c2){const _0x3d2091=new FormData();for(const _0x256dd3 of _0x17d3c2){_0x3d2091['append']('attachments',_0x256dd3);}const _0x5253e2=await fetch(API_BASE+'/tasks/'+_0x23ee24+'/attachments',{'method':'POST','body':_0x3d2091});if(!_0x5253e2['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x5253e2['statusText']);return await _0x5253e2['json']();},async 'isAINameGenerationAvailable'(){try{const _0x11a9ed=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x11a9ed['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x11a9ed['json']();}catch(_0xd33ec){return{'available':![],'reason':_0xd33ec['message']};}},async 'generateTaskName'(_0x16eaa3){try{const _0x18be3b=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x16eaa3})});return await _0x18be3b['json']();}catch(_0x31b3d6){return{'success':![],'error':_0x31b3d6['message']};}},async 'createTask'(_0x5a483f){let _0x445b41,_0x4ca2ec={};if(_0x5a483f['files']&&_0x5a483f['files']['length']>0x0){const _0x5594b4=new FormData();for(const [_0xd61fb4,_0x5f1245]of Object['entries'](_0x5a483f)){if(_0xd61fb4!=='files'){if(_0x5f1245==null)continue;typeof _0x5f1245==='object'?_0x5594b4['append'](_0xd61fb4,JSON['stringify'](_0x5f1245)):_0x5594b4['append'](_0xd61fb4,String(_0x5f1245));}}for(const _0x380db7 of _0x5a483f['files']){_0x5594b4['append']('attachments',_0x380db7);}_0x445b41=_0x5594b4;}else _0x4ca2ec['Content-Type']='application/json',_0x445b41=JSON['stringify'](_0x5a483f);const _0x20455d=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x4ca2ec,'body':_0x445b41});if(!_0x20455d['ok']){const _0x4168c3=await _0x20455d['json'](),_0x54873a=new Error(_0x4168c3['error']||'Failed\x20to\x20create\x20task:\x20'+_0x20455d['statusText']),{message:_0x3e9e8a,..._0x3ced4d}=_0x4168c3;Object['assign'](_0x54873a,_0x3ced4d);throw _0x54873a;}return await _0x20455d['json']();},async 'createTestTask'(_0x594c0e){const _0x1cedbc=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x594c0e)});if(!_0x1cedbc['ok']){const _0xdd11e6=await _0x1cedbc['json']();throw new Error(_0xdd11e6['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x1cedbc['statusText']);}return await _0x1cedbc['json']();},async 'createEphemeralTest'(_0x288095){const _0x1ed7a7=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x288095)});if(!_0x1ed7a7['ok']){const _0x489eed=await _0x1ed7a7['json']();throw new Error(_0x489eed['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x1ed7a7['statusText']);}return await _0x1ed7a7['json']();},async 'createDeployTask'(_0x249d25){const _0x32ef1a=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x249d25)});if(!_0x32ef1a['ok']){const _0x2a08a6=await _0x32ef1a['json']();throw new Error(_0x2a08a6['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x32ef1a['statusText']);}return await _0x32ef1a['json']();},async 'getEnvironments'(){const _0x592312=await fetch(API_BASE+'/environments');if(!_0x592312['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x592312['statusText']);return await _0x592312['json']();},async 'getEnvironment'(_0x5d99b2){const _0x2f7565=await fetch(API_BASE+'/environments/'+_0x5d99b2);if(!_0x2f7565['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x2f7565['statusText']);return await _0x2f7565['json']();},async 'getEnvironmentRepoHistory'(_0x1327df,_0x1c98fd,_0x2bb249={}){if(!_0x1327df||!_0x1c98fd)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x3b0730=new URLSearchParams();if(_0x2bb249['limit'])_0x3b0730['set']('limit',String(_0x2bb249['limit']));if(_0x2bb249['offset'])_0x3b0730['set']('offset',String(_0x2bb249['offset']));if(_0x2bb249['search'])_0x3b0730['set']('search',String(_0x2bb249['search']));if(_0x2bb249['branch'])_0x3b0730['set']('branch',String(_0x2bb249['branch']));const _0x3a60d1=API_BASE+'/environments/'+encodeURIComponent(_0x1327df)+'/repos/'+encodeURIComponent(_0x1c98fd)+'/git/history',_0xba887e=await fetch(''+_0x3a60d1+(_0x3b0730['toString']()?'?'+_0x3b0730['toString']():''));if(!_0xba887e['ok']){const _0x4bdc30=await _0xba887e['json']()['catch'](()=>({}));throw new Error(_0x4bdc30['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0xba887e['statusText']);}return await _0xba887e['json']();},async 'getEnvironmentRepoCommit'(_0x36ba4d,_0x324682,_0x24cb84){if(!_0x36ba4d||!_0x324682||!_0x24cb84)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0xc083b6=API_BASE+'/environments/'+encodeURIComponent(_0x36ba4d)+'/repos/'+encodeURIComponent(_0x324682)+'/git/commits/'+encodeURIComponent(_0x24cb84),_0x1d65a2=await fetch(_0xc083b6);if(!_0x1d65a2['ok']){const _0x5ad44e=await _0x1d65a2['json']()['catch'](()=>({}));throw new Error(_0x5ad44e['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x1d65a2['statusText']);}return await _0x1d65a2['json']();},async 'getEnvironmentRepoBranches'(_0x107482,_0x43f641){if(!_0x107482||!_0x43f641)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x425de8=API_BASE+'/environments/'+encodeURIComponent(_0x107482)+'/repos/'+encodeURIComponent(_0x43f641)+'/git/branches',_0x3ed290=await fetch(_0x425de8);if(!_0x3ed290['ok']){const _0x5c5403=await _0x3ed290['json']()['catch'](()=>({}));throw new Error(_0x5c5403['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x3ed290['statusText']);}return await _0x3ed290['json']();},async 'revertEnvironmentRepoCommit'(_0x1ec110,_0x2dd683,_0x28af5c,_0x2abcf6={}){if(!_0x1ec110||!_0x2dd683||!_0x28af5c)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x5af734=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x1ec110)+'/repos/'+encodeURIComponent(_0x2dd683)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x28af5c,..._0x2abcf6})});if(!_0x5af734['ok']){const _0x4df898=await _0x5af734['json']()['catch'](()=>({}));throw new Error(_0x4df898['message']||_0x4df898['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x5af734['statusText']);}return await _0x5af734['json']();},async 'getTemplates'(_0x59342f={}){const _0x314437=new URLSearchParams();if(_0x59342f['include']){const _0x537eef=Array['isArray'](_0x59342f['include'])?_0x59342f['include']['join'](','):String(_0x59342f['include']);if(_0x537eef)_0x314437['set']('include',_0x537eef);}const _0x869a4a=await fetch(API_BASE+'/templates'+(_0x314437['toString']()?'?'+_0x314437['toString']():''));if(!_0x869a4a['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0x869a4a['statusText']);return await _0x869a4a['json']();},async 'getTemplatesForEnvironment'(_0x3d5f94,_0x5a9b5e={}){if(!_0x3d5f94)throw new Error('Environment\x20name\x20is\x20required');const _0x4ac2e2=new URLSearchParams();if(_0x5a9b5e['include']){const _0x39cb5e=Array['isArray'](_0x5a9b5e['include'])?_0x5a9b5e['include']['join'](','):String(_0x5a9b5e['include']);if(_0x39cb5e)_0x4ac2e2['set']('include',_0x39cb5e);}const _0x426781=await fetch(API_BASE+'/templates/'+_0x3d5f94+(_0x4ac2e2['toString']()?'?'+_0x4ac2e2['toString']():''));if(!_0x426781['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x3d5f94+':\x20'+_0x426781['statusText']);return await _0x426781['json']();},async 'getTemplate'(_0x394f73,_0x15c937,_0x479005={}){if(!_0x394f73||!_0x15c937)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x1f4499=new URLSearchParams();if(_0x479005['include']){const _0xa32f9a=Array['isArray'](_0x479005['include'])?_0x479005['include']['join'](','):String(_0x479005['include']);if(_0xa32f9a)_0x1f4499['set']('include',_0xa32f9a);}const _0x9494f=await fetch(API_BASE+'/templates/'+_0x394f73+'/'+_0x15c937+(_0x1f4499['toString']()?'?'+_0x1f4499['toString']():''));if(!_0x9494f['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x9494f['statusText']);return await _0x9494f['json']();},async 'getTaskLogs'(_0x454230,_0x2ad465={}){if(!_0x454230)throw new Error('Task\x20ID\x20is\x20required');const _0x31ede0=new URLSearchParams();_0x2ad465['tail']&&_0x31ede0['set']('tail',String(_0x2ad465['tail']));const _0x44fe35=await fetch(API_BASE+'/tasks/'+_0x454230+'/logs'+(_0x31ede0['toString']()?'?'+_0x31ede0['toString']():''));if(!_0x44fe35['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x44fe35['statusText']);return await _0x44fe35['text']();},async 'getContainers'(){const _0x5ba29b=await fetch(API_BASE+'/containers');if(!_0x5ba29b['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x5ba29b['statusText']);return await _0x5ba29b['json']();},async 'getContainer'(_0x76aa53){const _0x4a0a0a=await fetch(API_BASE+'/containers/'+_0x76aa53);if(!_0x4a0a0a['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x4a0a0a['statusText']);return await _0x4a0a0a['json']();},async 'startInteractiveContainer'(_0x5435ee){const _0x494a3a=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5435ee)});if(!_0x494a3a['ok']){const _0x43f733=await _0x494a3a['json']()['catch'](()=>({}));throw new Error(_0x43f733['message']||'Failed\x20to\x20start\x20container:\x20'+_0x494a3a['statusText']);}return await _0x494a3a['json']();},async 'startContainerCodeServer'(_0x3d81a1,_0x1fa242={}){if(!_0x3d81a1)throw new Error('Container\x20ID\x20is\x20required');const _0x262301=new URLSearchParams();_0x1fa242['theme']&&_0x262301['set']('theme',_0x1fa242['theme']);const _0x11f3cd=await fetch(API_BASE+'/containers/'+_0x3d81a1+'/code-server'+(_0x262301['toString']()?'?'+_0x262301['toString']():'')),_0xe26e15=await _0x11f3cd['json']()['catch'](()=>({}));if(!_0x11f3cd['ok'])throw new Error(_0xe26e15['message']||_0xe26e15['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x11f3cd['statusText']);return _0xe26e15;},async 'stopContainer'(_0xa88d2a){const _0x22d4a6=await fetch(API_BASE+'/containers/'+_0xa88d2a,{'method':'DELETE'});if(!_0x22d4a6['ok']){const _0x5efb9e=await _0x22d4a6['json']()['catch'](()=>({}));throw new Error(_0x5efb9e['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x22d4a6['statusText']);}return await _0x22d4a6['json']();},async 'stopTask'(_0x9ccf72){if(!_0x9ccf72)throw new Error('Task\x20ID\x20is\x20required');const _0x4dc8de=await fetch(API_BASE+'/tasks/'+_0x9ccf72+'/stop',{'method':'POST'});if(!_0x4dc8de['ok']){const _0x2376cb=await _0x4dc8de['json']()['catch'](()=>({}));throw new Error(_0x2376cb['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x4dc8de['statusText']);}return await _0x4dc8de['json']();},async 'interruptTask'(_0xee208c){if(!_0xee208c)throw new Error('Task\x20ID\x20is\x20required');const _0x3d8636=await fetch(API_BASE+'/tasks/'+_0xee208c+'/interrupt',{'method':'POST'});if(!_0x3d8636['ok']){const _0x5e6162=await _0x3d8636['json']()['catch'](()=>({}));throw new Error(_0x5e6162['error']||_0x5e6162['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x3d8636['statusText']);}return await _0x3d8636['json']();},async 'startTask'(_0xdc2ff6){if(!_0xdc2ff6)throw new Error('Task\x20ID\x20is\x20required');const _0x53de6d=await fetch(API_BASE+'/tasks/'+_0xdc2ff6+'/start',{'method':'POST'});if(!_0x53de6d['ok']){const _0x2b8cbb=await _0x53de6d['json']()['catch'](()=>({}));throw new Error(_0x2b8cbb['error']||'Failed\x20to\x20start\x20task:\x20'+_0x53de6d['statusText']);}return await _0x53de6d['json']();},async 'deleteTask'(_0x54d914){if(!_0x54d914)throw new Error('Task\x20ID\x20is\x20required');const _0x280a30=await fetch(API_BASE+'/tasks/'+_0x54d914,{'method':'DELETE'});if(!_0x280a30['ok']){const _0x1f1bbd=await _0x280a30['json']()['catch'](()=>({}));throw new Error(_0x1f1bbd['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x280a30['statusText']);}return await _0x280a30['json']();},async 'refreshTasksFromDisk'(){const _0xafea4=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0xafea4['ok']){const _0x5ce4fd=await _0xafea4['json']()['catch'](()=>({}));throw new Error(_0x5ce4fd['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0xafea4['statusText']);}return await _0xafea4['json']();},async 'approveTask'(_0x759247,_0x2c9133={}){if(!_0x759247)throw new Error('Task\x20ID\x20is\x20required');const _0x42159d={'commit_message':_0x2c9133['commit_message']||'','pull':_0x2c9133['pull']??![],'push':_0x2c9133['push']??![],'conflict_strategy':_0x2c9133['conflict_strategy']||'rebase'};_0x2c9133['new_branch']&&(_0x42159d['new_branch']=_0x2c9133['new_branch']);const _0x2a6225=await fetch(API_BASE+'/tasks/'+_0x759247+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x42159d)});if(!_0x2a6225['ok']){const _0x5b5262=await _0x2a6225['json']()['catch'](()=>({}));let _0xa85a2d=_0x5b5262['error']||_0x5b5262['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x2a6225['statusText'];if(_0x5b5262['results']&&Array['isArray'](_0x5b5262['results'])){const _0x3bd9d4=_0x5b5262['results']['filter'](_0x222ae4=>!_0x222ae4['success']&&_0x222ae4['error']);_0x3bd9d4['length']>0x0&&(_0xa85a2d=_0x3bd9d4[0x0]['error']);}const _0x14c743=new Error(_0xa85a2d);_0x14c743['hasConflicts']=_0x5b5262['results']?.['some'](_0xc974e9=>_0xc974e9['conflict'])||![];throw _0x14c743;}return await _0x2a6225['json']();},async 'getPullRequestInfo'(_0x4fb2b6){if(!_0x4fb2b6)throw new Error('Task\x20ID\x20is\x20required');const _0x1336c6=await fetch(API_BASE+'/tasks/'+_0x4fb2b6+'/pull-request-info');if(!_0x1336c6['ok']){const _0x540de1=await _0x1336c6['json']()['catch'](()=>({}));throw new Error(_0x540de1['error']||_0x540de1['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x1336c6['statusText']);}return await _0x1336c6['json']();},async 'createPullRequests'(_0x255278,_0x58e98d){if(!_0x255278)throw new Error('Task\x20ID\x20is\x20required');if(!_0x58e98d||!Array['isArray'](_0x58e98d))throw new Error('repos\x20array\x20is\x20required');const _0x1f7ad7=await fetch(API_BASE+'/tasks/'+_0x255278+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x58e98d})});if(!_0x1f7ad7['ok']){const _0x1c3fa1=await _0x1f7ad7['json']()['catch'](()=>({}));let _0x58bddb=_0x1c3fa1['error']||_0x1c3fa1['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x1f7ad7['statusText'];if(_0x1c3fa1['results']&&Array['isArray'](_0x1c3fa1['results'])){const _0x29d349=_0x1c3fa1['results']['filter'](_0x361e5c=>!_0x361e5c['success']&&_0x361e5c['error']);_0x29d349['length']>0x0&&(_0x58bddb=_0x29d349[0x0]['error']);}throw new Error(_0x58bddb);}return await _0x1f7ad7['json']();},async 'syncRepos'(_0x2f04dd){if(!_0x2f04dd)throw new Error('Task\x20ID\x20is\x20required');const _0x5763a6=await fetch(API_BASE+'/tasks/'+_0x2f04dd+'/sync-repos',{'method':'POST'});if(!_0x5763a6['ok']){const _0x3e7ff0=await _0x5763a6['json']()['catch'](()=>({}));throw new Error(_0x3e7ff0['error']||_0x3e7ff0['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x5763a6['statusText']);}return await _0x5763a6['json']();},async 'getIbmiSyncInfo'(_0x191d27){if(!_0x191d27)throw new Error('Task\x20ID\x20is\x20required');const _0x3b94ca=await fetch(API_BASE+'/tasks/'+_0x191d27+'/ibmi-sync-info');if(!_0x3b94ca['ok']){const _0x445654=await _0x3b94ca['json']()['catch'](()=>({}));throw new Error(_0x445654['error']||_0x445654['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x3b94ca['json']();},async 'getSyncFiles'(_0x3d483a){if(!_0x3d483a)throw new Error('Task\x20ID\x20is\x20required');const _0x3a00f2=await fetch(API_BASE+'/tasks/'+_0x3d483a+'/sync-to-ibmi/files');if(!_0x3a00f2['ok']){const _0x19f7a5=await _0x3a00f2['json']()['catch'](()=>({}));throw new Error(_0x19f7a5['error']||_0x19f7a5['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x3a00f2['json']();},async 'syncToIbmi'(_0x2eafab,_0x49cbb9,_0x303d43=null,_0x43fc20=null,_0x21e252=null){if(!_0x2eafab)throw new Error('Task\x20ID\x20is\x20required');const _0x19521e={'library':_0x49cbb9};if(_0x303d43)_0x19521e['user']=_0x303d43;if(_0x43fc20)_0x19521e['password']=_0x43fc20;if(_0x21e252)_0x19521e['files']=_0x21e252;const _0x3300ef=await fetch(API_BASE+'/tasks/'+_0x2eafab+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19521e)});if(!_0x3300ef['ok']){const _0x22e1b8=await _0x3300ef['json']()['catch'](()=>({}));throw new Error(_0x22e1b8['error']||_0x22e1b8['message']||'Sync\x20failed');}return await _0x3300ef['json']();},async 'getIbmiSyncLog'(_0x16ab6b){if(!_0x16ab6b)throw new Error('Task\x20ID\x20is\x20required');const _0x2f986e=await fetch(API_BASE+'/tasks/'+_0x16ab6b+'/ibmi-sync-log');if(!_0x2f986e['ok']){const _0x1184f6=await _0x2f986e['json']()['catch'](()=>({}));throw new Error(_0x1184f6['error']||_0x1184f6['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x2f986e['json']();},async 'pullChanges'(_0x181a9e){if(!_0x181a9e)throw new Error('Task\x20ID\x20is\x20required');const _0x19fa5d=await fetch(API_BASE+'/tasks/'+_0x181a9e+'/pull-changes',{'method':'POST'});if(!_0x19fa5d['ok']){const _0x3f049b=await _0x19fa5d['json']()['catch'](()=>({}));throw new Error(_0x3f049b['error']||_0x3f049b['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x19fa5d['statusText']);}return await _0x19fa5d['json']();},async 'readFile'(_0x3ae170,_0x2a157a){if(!_0x3ae170)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2a157a)throw new Error('File\x20path\x20is\x20required');const _0x5cd98a=await fetch(API_BASE+'/tasks/'+_0x3ae170+'/files?path='+encodeURIComponent(_0x2a157a));if(!_0x5cd98a['ok']){const _0x1a4966=await _0x5cd98a['json']()['catch'](()=>({}));throw new Error(_0x1a4966['error']||_0x1a4966['message']||'Failed\x20to\x20read\x20file:\x20'+_0x5cd98a['statusText']);}return await _0x5cd98a['json']();},'getTaskFileDownloadUrl'(_0x259cb1,_0xc050f2){if(!_0x259cb1)throw new Error('Task\x20ID\x20is\x20required');if(!_0xc050f2)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x259cb1+'/files/download?path='+encodeURIComponent(_0xc050f2);},async 'writeFile'(_0x352ccc,_0x284f3a,_0x4443b2){if(!_0x352ccc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x284f3a)throw new Error('File\x20path\x20is\x20required');if(_0x4443b2===undefined)throw new Error('Content\x20is\x20required');const _0x4e0abb=await fetch(API_BASE+'/tasks/'+_0x352ccc+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x284f3a,'content':_0x4443b2})});if(!_0x4e0abb['ok']){const _0x523b50=await _0x4e0abb['json']()['catch'](()=>({}));throw new Error(_0x523b50['error']||_0x523b50['message']||'Failed\x20to\x20write\x20file:\x20'+_0x4e0abb['statusText']);}return await _0x4e0abb['json']();},async 'uploadTaskFiles'(_0x262f57,_0x57b457,_0x544c4a){if(!_0x262f57)throw new Error('Task\x20ID\x20is\x20required');if(!_0x57b457)throw new Error('Target\x20directory\x20is\x20required');if(!_0x544c4a||_0x544c4a['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x3ae08f=new FormData();_0x3ae08f['append']('targetDir',_0x57b457);for(const _0x4d0871 of _0x544c4a){_0x3ae08f['append']('files',_0x4d0871,_0x4d0871['name']);}const _0x1bcab6=await fetch(API_BASE+'/tasks/'+_0x262f57+'/files/upload',{'method':'POST','body':_0x3ae08f});if(!_0x1bcab6['ok']){const _0x3550f3=await _0x1bcab6['json']()['catch'](()=>({}));throw new Error(_0x3550f3['error']||_0x3550f3['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x1bcab6['statusText']);}return await _0x1bcab6['json']();},async 'createDirectory'(_0x48cf5c,_0x511f96){if(!_0x48cf5c)throw new Error('Task\x20ID\x20is\x20required');if(!_0x511f96)throw new Error('Directory\x20path\x20is\x20required');const _0x3f1bc8=await fetch(API_BASE+'/tasks/'+_0x48cf5c+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x511f96})});if(!_0x3f1bc8['ok']){const _0x205c75=await _0x3f1bc8['json']()['catch'](()=>({}));throw new Error(_0x205c75['error']||_0x205c75['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x3f1bc8['statusText']);}return await _0x3f1bc8['json']();},async 'renamePath'(_0x3252dc,_0x3f8015,_0x1e37a6){if(!_0x3252dc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f8015)throw new Error('Source\x20path\x20is\x20required');if(!_0x1e37a6)throw new Error('Destination\x20path\x20is\x20required');const _0x578f92=await fetch(API_BASE+'/tasks/'+_0x3252dc+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x3f8015,'newPath':_0x1e37a6})});if(!_0x578f92['ok']){const _0x266b98=await _0x578f92['json']()['catch'](()=>({}));throw new Error(_0x266b98['error']||_0x266b98['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x578f92['statusText']);}return await _0x578f92['json']();},async 'deleteFile'(_0x4077f0,_0x9e3465){if(!_0x4077f0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x9e3465)throw new Error('File\x20path\x20is\x20required');const _0x538b60=await fetch(API_BASE+'/tasks/'+_0x4077f0+'/files?path='+encodeURIComponent(_0x9e3465),{'method':'DELETE'});if(!_0x538b60['ok']){const _0x1c8719=await _0x538b60['json']()['catch'](()=>({}));throw new Error(_0x1c8719['error']||_0x1c8719['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x538b60['statusText']);}return await _0x538b60['json']();},async 'deleteDirectory'(_0x26251b,_0x3efc04){if(!_0x26251b)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3efc04)throw new Error('Directory\x20path\x20is\x20required');const _0x17d990=await fetch(API_BASE+'/tasks/'+_0x26251b+'/files/directory?path='+encodeURIComponent(_0x3efc04),{'method':'DELETE'});if(!_0x17d990['ok']){const _0xe94af5=await _0x17d990['json']()['catch'](()=>({}));throw new Error(_0xe94af5['error']||_0xe94af5['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x17d990['statusText']);}return await _0x17d990['json']();},async 'discardFile'(_0x56e431,_0x4a2407,_0x5c2b60){if(!_0x56e431)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4a2407)throw new Error('File\x20path\x20is\x20required');if(!_0x5c2b60)throw new Error('Repository\x20path\x20is\x20required');const _0x284c1a=await fetch(API_BASE+'/tasks/'+_0x56e431+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4a2407,'repoPath':_0x5c2b60})});if(!_0x284c1a['ok']){const _0x503e57=await _0x284c1a['json']()['catch'](()=>({}));throw new Error(_0x503e57['error']||_0x503e57['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0x284c1a['statusText']);}return await _0x284c1a['json']();},async 'followUpTask'(_0x22af91,_0x56e59c={}){if(!_0x22af91)throw new Error('Task\x20ID\x20is\x20required');if(!_0x56e59c['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x413418,_0x12ea86={};if(_0x56e59c['files']&&_0x56e59c['files']['length']>0x0){const _0x30006d=new FormData();_0x30006d['append']('instructions',_0x56e59c['instructions']);for(const _0x68d3ba of _0x56e59c['files']){_0x30006d['append']('attachments',_0x68d3ba);}_0x413418=_0x30006d;}else _0x12ea86['Content-Type']='application/json',_0x413418=JSON['stringify']({'instructions':_0x56e59c['instructions']});const _0x1e6166=await fetch(API_BASE+'/tasks/'+_0x22af91+'/follow-up',{'method':'POST','headers':_0x12ea86,'body':_0x413418});if(!_0x1e6166['ok']){const _0x394f5b=await _0x1e6166['json']()['catch'](()=>({}));throw new Error(_0x394f5b['error']||_0x394f5b['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x1e6166['statusText']);}return await _0x1e6166['json']();},async 'getTaskRewindPoints'(_0x4c337b){if(!_0x4c337b)throw new Error('Task\x20ID\x20is\x20required');const _0x296ad1=await fetch(API_BASE+'/tasks/'+_0x4c337b+'/rewind-points');if(!_0x296ad1['ok']){const _0x449dc3=await _0x296ad1['json']()['catch'](()=>({}));throw new Error(_0x449dc3['error']||_0x449dc3['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x296ad1['statusText']);}return await _0x296ad1['json']();},async 'rewindTask'(_0x31a429,_0xe610e2={}){if(!_0x31a429)throw new Error('Task\x20ID\x20is\x20required');const _0x2ea5b6=Number['isInteger'](_0xe610e2['targetFollowUpCount'])?_0xe610e2['targetFollowUpCount']:0x0,_0x19cbaa={'targetFollowUpCount':_0x2ea5b6};typeof _0xe610e2['instructions']==='string'&&_0xe610e2['instructions']['trim']()&&(_0x19cbaa['instructions']=_0xe610e2['instructions']['trim']());typeof _0xe610e2['rewindFiles']==='boolean'&&(_0x19cbaa['rewindFiles']=_0xe610e2['rewindFiles']);const _0x17f0b2=await fetch(API_BASE+'/tasks/'+_0x31a429+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x19cbaa)});if(!_0x17f0b2['ok']){const _0x4ce694=await _0x17f0b2['json']()['catch'](()=>({}));throw new Error(_0x4ce694['error']||_0x4ce694['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x17f0b2['statusText']);}return await _0x17f0b2['json']();},async 'login'(_0x43300e,_0x2a8588){const _0x199444=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x43300e,'password':_0x2a8588})});if(!_0x199444['ok']){const _0x1ff4cf=await _0x199444['json']();throw new Error(_0x1ff4cf['message']||'Login\x20failed');}return await _0x199444['json']();},async 'logout'(){const _0x34cf30=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x34cf30['ok']){const _0x5bf06b=await _0x34cf30['json']();throw new Error(_0x5bf06b['message']||'Logout\x20failed');}return await _0x34cf30['json']();},async 'getCurrentUser'(){const _0x399f7b=await fetch(API_BASE+'/auth/me');if(!_0x399f7b['ok'])throw new Error('Not\x20authenticated');const _0x33bdd1=await _0x399f7b['json']();return _0x33bdd1['user'];},async 'getRolesInfo'(){const _0x1b7298=await fetch(API_BASE+'/users/roles');if(!_0x1b7298['ok']){const _0x24f9cc=await _0x1b7298['json']();throw new Error(_0x24f9cc['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x1b7298['json']();},async 'getUsers'(){const _0x256afb=await fetch(API_BASE+'/users');if(!_0x256afb['ok']){const _0x52d2f2=await _0x256afb['json']();throw new Error(_0x52d2f2['message']||'Failed\x20to\x20get\x20users');}return await _0x256afb['json']();},async 'getUser'(_0x2d1d58){const _0x5cc1b5=await fetch(API_BASE+'/users/'+_0x2d1d58);if(!_0x5cc1b5['ok']){const _0x1e9c50=await _0x5cc1b5['json']();throw new Error(_0x1e9c50['message']||'Failed\x20to\x20get\x20user');}return await _0x5cc1b5['json']();},async 'createUser'(_0x3a8314){const _0x4e9bca=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3a8314)});if(!_0x4e9bca['ok']){const _0x409df0=await _0x4e9bca['json']();throw new Error(_0x409df0['message']||'Failed\x20to\x20create\x20user');}return await _0x4e9bca['json']();},async 'updateUser'(_0x19f662,_0x1b9240){const _0x27957b=await fetch(API_BASE+'/users/'+_0x19f662,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1b9240)});if(!_0x27957b['ok']){const _0x56e776=await _0x27957b['json']();throw new Error(_0x56e776['message']||'Failed\x20to\x20update\x20user');}return await _0x27957b['json']();},async 'deleteUser'(_0x3f86e2){const _0x2ff7b9=await fetch(API_BASE+'/users/'+_0x3f86e2,{'method':'DELETE'});if(!_0x2ff7b9['ok']){const _0x41f491=await _0x2ff7b9['json']();throw new Error(_0x41f491['message']||'Failed\x20to\x20delete\x20user');}return await _0x2ff7b9['json']();},async 'stopAllContainers'(){const _0x2f9548=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x1d2b55=await _0x2f9548['json']()['catch'](()=>({}));if(!_0x2f9548['ok'])throw new Error(_0x1d2b55['message']||_0x1d2b55['error']||'Failed\x20to\x20stop\x20containers');return _0x1d2b55;},async 'removeStoppedContainers'(){const _0x5cad37=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0x19d687=await _0x5cad37['json']()['catch'](()=>({}));if(!_0x5cad37['ok'])throw new Error(_0x19d687['message']||_0x19d687['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0x19d687;},async 'pruneDockerResources'(){const _0x113783=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x5f3ccd=await _0x113783['json']()['catch'](()=>({}));if(!_0x113783['ok'])throw new Error(_0x5f3ccd['message']||_0x5f3ccd['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x5f3ccd;},async 'getUpdateSettings'(){const _0x26ef41=await fetch(API_BASE+'/health/update-settings'),_0x30b179=await _0x26ef41['json']()['catch'](()=>({}));if(!_0x26ef41['ok'])throw new Error(_0x30b179['message']||_0x30b179['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x30b179;},async 'applyServerUpdate'(_0x5c7944){const _0x1dc7bd=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x5c7944})}),_0x52a1aa=await _0x1dc7bd['json']()['catch'](()=>({}));if(!_0x1dc7bd['ok']){const _0xe68cff=new Error(_0x52a1aa['message']||_0x52a1aa['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x52a1aa['output']!==undefined)_0xe68cff['output']=_0x52a1aa['output'];if(_0x52a1aa['error']!==undefined)_0xe68cff['commandError']=_0x52a1aa['error'];throw _0xe68cff;}return _0x52a1aa;},async 'restartServer'(){const _0x58b24b=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x32e304=await _0x58b24b['json']()['catch'](()=>({}));if(!_0x58b24b['ok'])throw new Error(_0x32e304['message']||_0x32e304['error']||'Failed\x20to\x20restart\x20server');return _0x32e304;},async 'createPasswordToken'(_0x1eaef3,_0x1652a3='setup',_0x324374=![]){const _0x19a79e=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x1eaef3,'type':_0x1652a3,'sendEmail':_0x324374})});if(!_0x19a79e['ok']){const _0x29bb2f=await _0x19a79e['json']();throw new Error(_0x29bb2f['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x19a79e['json']();},async 'getEmailConfig'(){const _0x1f213b=await fetch(API_BASE+'/password/email-config');if(!_0x1f213b['ok']){const _0x49c4b4=await _0x1f213b['json']();throw new Error(_0x49c4b4['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x1f213b['json']();},async 'updateTaskName'(_0x412501,_0x953b73){const _0x2ea2fa=await fetch(API_BASE+'/tasks/'+_0x412501,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0x953b73})});if(!_0x2ea2fa['ok']){const _0x51a22c=await _0x2ea2fa['json']();throw new Error(_0x51a22c['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x2ea2fa['json']();},async 'pinTask'(_0x1038dc,_0x454a8d,_0x17eb82=null){if(!_0x1038dc)throw new Error('Task\x20ID\x20is\x20required');const _0x36e66c={'pinned':_0x454a8d};_0x17eb82&&_0x17eb82['length']>0x0&&(_0x36e66c['additionalTaskIds']=_0x17eb82);const _0x4574b5=await fetch(API_BASE+'/tasks/'+_0x1038dc+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x36e66c)});if(!_0x4574b5['ok']){const _0x49c9f2=await _0x4574b5['json']();throw new Error(_0x49c9f2['error']||'Failed\x20to\x20pin\x20task');}return await _0x4574b5['json']();},async 'setTaskWinner'(_0x2a2ea1,_0x3c4163,_0xf17619=[]){if(!_0x2a2ea1)throw new Error('Task\x20ID\x20is\x20required');const _0xa7f671=await fetch(API_BASE+'/tasks/'+_0x2a2ea1+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x3c4163,'siblings':_0xf17619})});if(!_0xa7f671['ok']){const _0x23e7d3=await _0xa7f671['json']();throw new Error(_0x23e7d3['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0xa7f671['json']();},async 'setTaskLoser'(_0xd6735b,_0x48af0f){if(!_0xd6735b)throw new Error('Task\x20ID\x20is\x20required');const _0x19bb7c=await fetch(API_BASE+'/tasks/'+_0xd6735b+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x48af0f})});if(!_0x19bb7c['ok']){const _0x486c0f=await _0x19bb7c['json']();throw new Error(_0x486c0f['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x19bb7c['json']();},async 'createTaskGroup'(_0x20acb2){const _0x41d931=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20acb2)});if(!_0x41d931['ok']){const _0xe50172=await _0x41d931['json']();throw new Error(_0xe50172['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x41d931['json']();},async 'getTaskGroups'(_0x16ee38={}){const _0x4bb728=new URLSearchParams();if(_0x16ee38['userId'])_0x4bb728['set']('userId',String(_0x16ee38['userId']));if(_0x16ee38['status'])_0x4bb728['set']('status',String(_0x16ee38['status']));if(_0x16ee38['limit'])_0x4bb728['set']('limit',String(_0x16ee38['limit']));const _0x4adb6b=API_BASE+'/tasks/groups'+(_0x4bb728['toString']()?'?'+_0x4bb728['toString']():''),_0x52c19f=await fetch(_0x4adb6b);if(!_0x52c19f['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x52c19f['json']();},async 'getTaskGroup'(_0x1284c5){const _0x30d4da=await fetch(API_BASE+'/tasks/groups/'+_0x1284c5);if(!_0x30d4da['ok']){const _0x7327c8=await _0x30d4da['json']();throw new Error(_0x7327c8['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x30d4da['json']();},async 'updateTaskGroup'(_0x4325a3,_0x2ab1e8,_0x5cf83d){const _0x61721c=await fetch(API_BASE+'/tasks/'+_0x4325a3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x2ab1e8,'groupIndex':_0x5cf83d})});if(!_0x61721c['ok']){const _0x3e37a1=await _0x61721c['json']();throw new Error(_0x3e37a1['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x61721c['json']();},async 'removeTaskFromGroup'(_0x17bfd3){return this['updateTaskGroup'](_0x17bfd3,null,null);},async 'deleteTaskGroup'(_0x453f1b,_0x1db5b2=![]){const _0x4ee903=_0x1db5b2?'?deleteTasks=true':'',_0x4d22cc=await fetch(API_BASE+'/tasks/groups/'+_0x453f1b+_0x4ee903,{'method':'DELETE'});if(!_0x4d22cc['ok']){const _0x107f02=await _0x4d22cc['json']();throw new Error(_0x107f02['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x4ad74f,_0x1615a8){const _0x2716fa=await fetch(API_BASE+'/tasks/groups/'+_0x4ad74f+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x1615a8})});if(!_0x2716fa['ok']){const _0xb18e21=await _0x2716fa['json']();throw new Error(_0xb18e21['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x2716fa['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3beab1){if(!_0x3beab1)throw new Error('Task\x20ID\x20is\x20required');const _0x5b9de5=await fetch(API_BASE+'/tasks/'+_0x3beab1+'/comments');if(!_0x5b9de5['ok']){const _0x2c04d8=await _0x5b9de5['json']()['catch'](()=>({}));throw new Error(_0x2c04d8['error']||'Failed\x20to\x20get\x20comments');}return await _0x5b9de5['json']();},async 'addComment'(_0x1e7a85,_0x28bab6){if(!_0x1e7a85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x28bab6)throw new Error('Comment\x20content\x20is\x20required');const _0x4dfc11=await fetch(API_BASE+'/tasks/'+_0x1e7a85+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x28bab6})});if(!_0x4dfc11['ok']){const _0x1147be=await _0x4dfc11['json']()['catch'](()=>({}));throw new Error(_0x1147be['error']||'Failed\x20to\x20add\x20comment');}return await _0x4dfc11['json']();},async 'updateComment'(_0x3bf2c9,_0x43c1f2,_0x1759d8){if(!_0x3bf2c9)throw new Error('Task\x20ID\x20is\x20required');if(!_0x43c1f2)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x1759d8)throw new Error('Comment\x20content\x20is\x20required');const _0x368ff0=await fetch(API_BASE+'/tasks/'+_0x3bf2c9+'/comments/'+_0x43c1f2,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x1759d8})});if(!_0x368ff0['ok']){const _0x4e39ab=await _0x368ff0['json']()['catch'](()=>({}));throw new Error(_0x4e39ab['error']||'Failed\x20to\x20update\x20comment');}return await _0x368ff0['json']();},async 'deleteComment'(_0x21e483,_0x1c2591){if(!_0x21e483)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c2591)throw new Error('Comment\x20ID\x20is\x20required');const _0x117a0a=await fetch(API_BASE+'/tasks/'+_0x21e483+'/comments/'+_0x1c2591,{'method':'DELETE'});if(!_0x117a0a['ok']){const _0x4fd4dd=await _0x117a0a['json']()['catch'](()=>({}));throw new Error(_0x4fd4dd['error']||'Failed\x20to\x20delete\x20comment');}return await _0x117a0a['json']();},async 'createObjective'(_0x35c186){const _0x8078f1={'objective':!![],'name':_0x35c186['name']||'','environment':_0x35c186['environment']||null,'agents':_0x35c186['agents']||[],'branches':_0x35c186['branches']||{},'isPinned':_0x35c186['isPinned']||![],'parentObjectiveId':_0x35c186['parentObjectiveId']||null,'env_vars':_0x35c186['envVars']||{},'parameters':{'instructions':_0x35c186['instructions']||''},'files':_0x35c186['files']||[],'jira':_0x35c186['jira']||null};return this['createTask'](_0x8078f1);},async 'updateObjective'(_0x4eaacb,_0x1f85f8,_0x3a6d94=[],_0x1ff377=[]){let _0x17a3d3,_0xcf0093={};const _0x1b2ee0={..._0x1f85f8};_0x1ff377&&_0x1ff377['length']>0x0&&(_0x1b2ee0['removeAttachments']=_0x1ff377);if(_0x3a6d94&&_0x3a6d94['length']>0x0){const _0x52d26b=new FormData();for(const [_0x4c7ca6,_0xb36e17]of Object['entries'](_0x1b2ee0)){if(_0xb36e17==null)continue;typeof _0xb36e17==='object'?_0x52d26b['append'](_0x4c7ca6,JSON['stringify'](_0xb36e17)):_0x52d26b['append'](_0x4c7ca6,String(_0xb36e17));}for(const _0x42c04f of _0x3a6d94){_0x52d26b['append']('attachments',_0x42c04f);}_0x17a3d3=_0x52d26b;}else _0xcf0093['Content-Type']='application/json',_0x17a3d3=JSON['stringify'](_0x1b2ee0);const _0x26e7c6=await fetch(API_BASE+'/tasks/'+_0x4eaacb,{'method':'PATCH','headers':_0xcf0093,'body':_0x17a3d3});if(!_0x26e7c6['ok']){const _0x1c386a=await _0x26e7c6['json']();throw new Error(_0x1c386a['error']||'Failed\x20to\x20update\x20objective');}return await _0x26e7c6['json']();},async 'deleteObjective'(_0x41d5aa){return this['deleteTask'](_0x41d5aa);},async 'launchObjective'(_0x4ca7b5,_0x41cc20={}){const _0xd443b5=await fetch(API_BASE+'/tasks/'+_0x4ca7b5+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41cc20)});if(!_0xd443b5['ok']){const _0x1632f1=await _0xd443b5['json']();throw new Error(_0x1632f1['error']||'Failed\x20to\x20launch\x20objective');}return await _0xd443b5['json']();},async 'getObjectiveAttachments'(_0x282238){return this['getTaskAttachments'](_0x282238);},async 'createJudgeTask'({environment:_0x186d45,judgeAgent:_0x1c7b44,groupId:_0x3a7181,taskIds:_0x12c1aa,judgeCustomInstructions:_0x65daa2,isPinned:_0x2396ac}){const _0x11e0ac=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x186d45,'judgeAgent':_0x1c7b44,'groupId':_0x3a7181,'taskIds':_0x12c1aa,'judgeCustomInstructions':_0x65daa2,'isPinned':_0x2396ac})});if(!_0x11e0ac['ok']){const _0x3c2699=await _0x11e0ac['json']();throw new Error(_0x3c2699['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x11e0ac['json']();},async 'getJudgeTasks'(_0x5dcfa0){const _0x2df833=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5dcfa0));if(!_0x2df833['ok']){const _0x2bdd6c=await _0x2df833['json']();throw new Error(_0x2bdd6c['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x2df833['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x4a498d,_0x534ca2,_0x276325=''){const _0x46e02d=await fetch(API_BASE+'/tasks/'+_0x4a498d+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x534ca2,'customPreamble':_0x276325})});if(!_0x46e02d['ok']){const _0x32815e=await _0x46e02d['json']();throw new Error(_0x32815e['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x46e02d['json']();},async 'getJiraConfig'(){const _0x4ef621=await fetch(API_BASE+'/jira/config');if(!_0x4ef621['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4ef621['json']();},async 'getJiraIssue'(_0x5f39b5){const _0x2fc090=await fetch(API_BASE+'/jira/issues/'+_0x5f39b5);if(!_0x2fc090['ok']){const _0x3e3027=await _0x2fc090['json']()['catch'](()=>({}));throw new Error(_0x3e3027['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x2fc090['statusText']);}return await _0x2fc090['json']();},async 'searchJiraIssues'(_0x414692,_0x453d80=0x14){const _0x953c13=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x414692,'maxResults':_0x453d80})});if(!_0x953c13['ok']){const _0x556f16=await _0x953c13['json']()['catch'](()=>({}));throw new Error(_0x556f16['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x953c13['statusText']);}return await _0x953c13['json']();},async 'postJiraComment'(_0x1618eb,_0x81d1be){const _0x5b1acd=await fetch(API_BASE+'/jira/issues/'+_0x1618eb+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x81d1be})});if(!_0x5b1acd['ok']){const _0x28fb80=await _0x5b1acd['json']()['catch'](()=>({}));throw new Error(_0x28fb80['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x5b1acd['statusText']);}return await _0x5b1acd['json']();},async 'getJiraComments'(_0x25b4a0){const _0x2fe78f=await fetch(API_BASE+'/jira/issues/'+_0x25b4a0+'/comments');if(!_0x2fe78f['ok']){const _0x2061ba=await _0x2fe78f['json']()['catch'](()=>({}));throw new Error(_0x2061ba['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x2fe78f['statusText']);}return await _0x2fe78f['json']();},async 'promptParameter'({environment:_0x1f943b,command:_0x27fff5,parser:parser='json'}){const _0x26723d=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x1f943b,'command':_0x27fff5,'parser':parser})});if(!_0x26723d['ok']){const _0x62ceca=await _0x26723d['json']()['catch'](()=>({}));throw new Error(_0x62ceca['message']||_0x62ceca['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x26723d['statusText']);}return await _0x26723d['json']();},async 'promptParameterStream'(_0x219bf4,_0x4fe28d){const _0x52f3c3=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x219bf4)});if(!_0x52f3c3['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x52f3c3['statusText']);const _0x3e7192=_0x52f3c3['body']['getReader'](),_0x1986c9=new TextDecoder();let _0x906fce='';return new Promise((_0x395f85,_0x137292)=>{const _0x3d78da=async()=>{try{const {done:_0x8c746e,value:_0x55521d}=await _0x3e7192['read']();if(_0x8c746e)return;_0x906fce+=_0x1986c9['decode'](_0x55521d,{'stream':!![]});const _0xe4c645=_0x906fce['split']('\x0a\x0a');_0x906fce=_0xe4c645['pop']()||'';for(const _0x542b53 of _0xe4c645){if(!_0x542b53['trim']())continue;const _0x49ea39=_0x542b53['split']('\x0a');let _0x582632='message',_0x49823a='';for(const _0x42c48c of _0x49ea39){if(_0x42c48c['startsWith']('event:'))_0x582632=_0x42c48c['substring'](0x6)['trim']();else _0x42c48c['startsWith']('data:')&&(_0x49823a=_0x42c48c['substring'](0x5)['trim']());}if(!_0x49823a)continue;try{const _0x2e631b=JSON['parse'](_0x49823a);if(_0x582632==='progress'&&_0x4fe28d)_0x4fe28d(_0x2e631b['stage'],_0x2e631b['message']);else{if(_0x582632==='result'){_0x395f85(_0x2e631b);return;}else{if(_0x582632==='error'){let _0x195d8c=_0x2e631b['message']||_0x2e631b['error']||'Prompt\x20command\x20failed';_0x2e631b['rawOutput']&&(_0x195d8c+='\x0a\x0aRaw\x20output:\x0a'+_0x2e631b['rawOutput']);_0x137292(new Error(_0x195d8c));return;}}}}catch(_0x245ac7){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x245ac7),console['error']('Event\x20type:',_0x582632),console['error']('Event\x20data:',_0x49823a),console['error']('First\x20200\x20chars:',_0x49823a['substring'](0x0,0xc8)),_0x137292(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x245ac7['message']+'\x0a\x0aData:\x20'+_0x49823a['substring'](0x0,0x1f4)));return;}}_0x3d78da();}catch(_0x5ba70d){_0x137292(_0x5ba70d);}};_0x3d78da();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x2d8a73){const _0x10c448=await fetch(''+API_BASE+_0x2d8a73);if(!_0x10c448['ok']){const _0x547400=await _0x10c448['json']()['catch'](()=>({'error':_0x10c448['statusText']})),_0x312496=new Error(_0x547400['error']||_0x547400['message']||_0x10c448['statusText']);if(_0x547400['detail']!==undefined)_0x312496['detail']=_0x547400['detail'];throw _0x312496;}return await _0x10c448['json']();},async 'post'(_0x905d49,_0x49d2b9){const _0x31da26=await fetch(''+API_BASE+_0x905d49,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x49d2b9)});if(!_0x31da26['ok']){const _0x1d2466=await _0x31da26['json']()['catch'](()=>({'error':_0x31da26['statusText']})),_0xe16d70=new Error(_0x1d2466['error']||_0x1d2466['message']||_0x31da26['statusText']);if(_0x1d2466['detail']!==undefined)_0xe16d70['detail']=_0x1d2466['detail'];throw _0xe16d70;}return await _0x31da26['json']();},async 'put'(_0x5ab473,_0x23c0a7){const _0x1decc7=await fetch(''+API_BASE+_0x5ab473,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x23c0a7)});if(!_0x1decc7['ok']){const _0x56149e=await _0x1decc7['json']()['catch'](()=>({'error':_0x1decc7['statusText']})),_0x31ebc8=new Error(_0x56149e['error']||_0x56149e['message']||_0x1decc7['statusText']);if(_0x56149e['detail']!==undefined)_0x31ebc8['detail']=_0x56149e['detail'];throw _0x31ebc8;}return await _0x1decc7['json']();},async 'delete'(_0x3b05af,_0xda411b){const _0x57aa17={'method':'DELETE'};_0xda411b&&(_0x57aa17['headers']={'Content-Type':'application/json'},_0x57aa17['body']=JSON['stringify'](_0xda411b));const _0x49bd65=await fetch(''+API_BASE+_0x3b05af,_0x57aa17);if(!_0x49bd65['ok']){const _0x42417b=await _0x49bd65['json']()['catch'](()=>({'error':_0x49bd65['statusText']})),_0x3ef207=new Error(_0x42417b['error']||_0x42417b['message']||_0x49bd65['statusText']);if(_0x42417b['detail']!==undefined)_0x3ef207['detail']=_0x42417b['detail'];throw _0x3ef207;}return await _0x49bd65['json']();},async 'getSkills'(){const _0x598114=await fetch(API_BASE+'/skills');if(!_0x598114['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x598114['statusText']);return await _0x598114['json']();},async 'getSkill'(_0x28abe7){const _0x5ac6b7=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x28abe7));if(!_0x5ac6b7['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x5ac6b7['statusText']);return await _0x5ac6b7['json']();},async 'createSkill'(_0x396de2){const _0xeb9d65=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x396de2)});if(!_0xeb9d65['ok']){const _0x33ead1=await _0xeb9d65['json']()['catch'](()=>({'error':_0xeb9d65['statusText']})),_0x11021b=new Error(_0x33ead1['error']||_0x33ead1['message']||_0xeb9d65['statusText']);if(_0x33ead1['detail']!==undefined)_0x11021b['detail']=_0x33ead1['detail'];throw _0x11021b;}return await _0xeb9d65['json']();},async 'updateSkill'(_0xaf8f47,_0xa8b73b){const _0x1d1238=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xaf8f47),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa8b73b)});if(!_0x1d1238['ok']){const _0x1623b1=await _0x1d1238['json']()['catch'](()=>({'error':_0x1d1238['statusText']})),_0x5e74a8=new Error(_0x1623b1['error']||_0x1623b1['message']||_0x1d1238['statusText']);if(_0x1623b1['detail']!==undefined)_0x5e74a8['detail']=_0x1623b1['detail'];throw _0x5e74a8;}return await _0x1d1238['json']();},async 'deleteSkill'(_0x2b16c1){const _0x1efce0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x2b16c1),{'method':'DELETE'});if(!_0x1efce0['ok']){const _0x4be874=await _0x1efce0['json']()['catch'](()=>({'error':_0x1efce0['statusText']})),_0x4c288b=new Error(_0x4be874['error']||_0x4be874['message']||_0x1efce0['statusText']);if(_0x4be874['detail']!==undefined)_0x4c288b['detail']=_0x4be874['detail'];throw _0x4c288b;}return await _0x1efce0['json']();},async 'getSkillFile'(_0xcde190,_0x64567e){const _0x516b20=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0xcde190)+'/files/'+_0x64567e);if(!_0x516b20['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x516b20['statusText']);return await _0x516b20['json']();},async 'saveSkillFile'(_0x30e134,_0x2d06fd,_0x105fb9){const _0x2aafdc=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x30e134)+'/files/'+_0x2d06fd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x105fb9})});if(!_0x2aafdc['ok']){const _0x5aa32c=await _0x2aafdc['json']()['catch'](()=>({'error':_0x2aafdc['statusText']})),_0x9935ff=new Error(_0x5aa32c['error']||_0x5aa32c['message']||_0x2aafdc['statusText']);if(_0x5aa32c['detail']!==undefined)_0x9935ff['detail']=_0x5aa32c['detail'];throw _0x9935ff;}return await _0x2aafdc['json']();},async 'deleteSkillFile'(_0x5317c3,_0x397836){const _0x1caff6=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x5317c3)+'/files/'+_0x397836,{'method':'DELETE'});if(!_0x1caff6['ok']){const _0x3b624e=await _0x1caff6['json']()['catch'](()=>({'error':_0x1caff6['statusText']})),_0x1a6415=new Error(_0x3b624e['error']||_0x3b624e['message']||_0x1caff6['statusText']);if(_0x3b624e['detail']!==undefined)_0x1a6415['detail']=_0x3b624e['detail'];throw _0x1a6415;}return await _0x1caff6['json']();},async 'pullSkills'(){const _0x3d444c=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x3d444c['ok']){const _0x227bea=await _0x3d444c['json']()['catch'](()=>({'error':_0x3d444c['statusText']})),_0x105a4e=new Error(_0x227bea['error']||_0x227bea['message']||_0x3d444c['statusText']);if(_0x227bea['detail']!==undefined)_0x105a4e['detail']=_0x227bea['detail'];throw _0x105a4e;}return await _0x3d444c['json']();},async 'commitSkills'(_0x4251a8,_0xe28768={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0xe28768,_0x53d0bf=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x4251a8,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x53d0bf['ok']){const _0x586550=await _0x53d0bf['json']()['catch'](()=>({'error':_0x53d0bf['statusText']})),_0x1a53ca=new Error(_0x586550['error']||_0x586550['message']||_0x53d0bf['statusText']);if(_0x586550['detail']!==undefined)_0x1a53ca['detail']=_0x586550['detail'];throw _0x1a53ca;}return await _0x53d0bf['json']();},async 'discardSkillsChanges'(){const _0x1201f1=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x1201f1['ok']){const _0x3ae836=await _0x1201f1['json']()['catch'](()=>({'error':_0x1201f1['statusText']})),_0x73c4e=new Error(_0x3ae836['error']||_0x3ae836['message']||_0x1201f1['statusText']);if(_0x3ae836['detail']!==undefined)_0x73c4e['detail']=_0x3ae836['detail'];throw _0x73c4e;}return await _0x1201f1['json']();},async 'getSkillCatalog'(){const _0x1bea44=await fetch(API_BASE+'/external-skills/catalog');if(!_0x1bea44['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x1bea44['statusText']);return await _0x1bea44['json']();},async 'getImportedSkillsRegistry'(){const _0x14e19f=await fetch(API_BASE+'/external-skills/registry');if(!_0x14e19f['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x14e19f['statusText']);return await _0x14e19f['json']();},async 'importCatalogSkill'(_0x4c1167){const _0x1a9717=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x4c1167})});if(!_0x1a9717['ok']){const _0x484d5b=await _0x1a9717['json']()['catch'](()=>({'error':_0x1a9717['statusText']})),_0x4d8951=new Error(_0x484d5b['error']||_0x484d5b['message']||_0x1a9717['statusText']);if(_0x484d5b['detail']!==undefined)_0x4d8951['detail']=_0x484d5b['detail'];throw _0x4d8951;}return await _0x1a9717['json']();},async 'importSkillFromGit'(_0x3e7de3,_0x13278c,_0x1a0d96='main',_0x4c3d29=null){const _0x49d8e5=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x3e7de3,'skillPath':_0x13278c,'branch':_0x1a0d96,'skillId':_0x4c3d29})});if(!_0x49d8e5['ok']){const _0x3bfc77=await _0x49d8e5['json']()['catch'](()=>({'error':_0x49d8e5['statusText']})),_0x2de801=new Error(_0x3bfc77['error']||_0x3bfc77['message']||_0x49d8e5['statusText']);if(_0x3bfc77['detail']!==undefined)_0x2de801['detail']=_0x3bfc77['detail'];throw _0x2de801;}return await _0x49d8e5['json']();},async 'probeMarketplace'(_0x465645,_0x4df8ec='main'){const _0x56beaa=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x465645,'branch':_0x4df8ec})});if(!_0x56beaa['ok']){const _0x1262a5=await _0x56beaa['json']()['catch'](()=>({'error':_0x56beaa['statusText']})),_0xaa5968=new Error(_0x1262a5['error']||_0x1262a5['message']||_0x56beaa['statusText']);if(_0x1262a5['detail']!==undefined)_0xaa5968['detail']=_0x1262a5['detail'];throw _0xaa5968;}return await _0x56beaa['json']();},async 'importMarketplaceBundle'(_0x338b73,_0x562cfc,_0x1d5d5b,_0x2cd38d=null){const _0x87d90c=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x338b73,'branch':_0x562cfc,'bundleId':_0x1d5d5b,'selectedSkills':_0x2cd38d})});if(!_0x87d90c['ok']){const _0x2ae6b3=await _0x87d90c['json']()['catch'](()=>({'error':_0x87d90c['statusText']})),_0x561ba9=new Error(_0x2ae6b3['error']||_0x2ae6b3['message']||_0x87d90c['statusText']);if(_0x2ae6b3['detail']!==undefined)_0x561ba9['detail']=_0x2ae6b3['detail'];throw _0x561ba9;}return await _0x87d90c['json']();},async 'importSkillFromFolder'(_0x253d8c,_0x3fcbed=null){const _0x6a3970=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x253d8c,'skillId':_0x3fcbed})});if(!_0x6a3970['ok']){const _0x3cb88a=await _0x6a3970['json']()['catch'](()=>({'error':_0x6a3970['statusText']})),_0x16b963=new Error(_0x3cb88a['error']||_0x3cb88a['message']||_0x6a3970['statusText']);if(_0x3cb88a['detail']!==undefined)_0x16b963['detail']=_0x3cb88a['detail'];throw _0x16b963;}return await _0x6a3970['json']();},async 'importSkillFromNpm'(_0x348ef3,_0x4743c7='latest',_0x19022f=null,_0x28c953=null){const _0x2d71dd=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x348ef3,'version':_0x4743c7,'skillId':_0x19022f,'registry':_0x28c953})});if(!_0x2d71dd['ok']){const _0x2743d=await _0x2d71dd['json']()['catch'](()=>({'error':_0x2d71dd['statusText']})),_0x4f29d5=new Error(_0x2743d['error']||_0x2743d['message']||_0x2d71dd['statusText']);if(_0x2743d['detail']!==undefined)_0x4f29d5['detail']=_0x2743d['detail'];throw _0x4f29d5;}return await _0x2d71dd['json']();},async 'checkSkillUpdates'(_0x1a6cad){const _0x25ed9b=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x1a6cad)+'/check-updates',{'method':'POST'});if(!_0x25ed9b['ok']){const _0x4c7281=await _0x25ed9b['json']()['catch'](()=>({'error':_0x25ed9b['statusText']})),_0x1a7799=new Error(_0x4c7281['error']||_0x4c7281['message']||_0x25ed9b['statusText']);if(_0x4c7281['detail']!==undefined)_0x1a7799['detail']=_0x4c7281['detail'];throw _0x1a7799;}return await _0x25ed9b['json']();},async 'updateExternalSkill'(_0x2176ff){const _0x1d5ca5=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2176ff)+'/update',{'method':'POST'});if(!_0x1d5ca5['ok']){const _0xf6429b=await _0x1d5ca5['json']()['catch'](()=>({'error':_0x1d5ca5['statusText']})),_0x4859fd=new Error(_0xf6429b['error']||_0xf6429b['message']||_0x1d5ca5['statusText']);if(_0xf6429b['detail']!==undefined)_0x4859fd['detail']=_0xf6429b['detail'];throw _0x4859fd;}return await _0x1d5ca5['json']();},async 'updateSkillFlags'(_0x2313e7,_0x2429c9){const _0x4ba68e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2313e7)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x2429c9})});if(!_0x4ba68e['ok']){const _0x40cecd=await _0x4ba68e['json']()['catch'](()=>({'error':_0x4ba68e['statusText']})),_0x11d67d=new Error(_0x40cecd['error']||_0x40cecd['message']||_0x4ba68e['statusText']);if(_0x40cecd['detail']!==undefined)_0x11d67d['detail']=_0x40cecd['detail'];throw _0x11d67d;}return await _0x4ba68e['json']();},async 'removeFromImportedRegistry'(_0x4631ce){const _0x45c3b3=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x4631ce)+'/registry',{'method':'DELETE'});if(!_0x45c3b3['ok']){const _0x303ab9=await _0x45c3b3['json']()['catch'](()=>({'error':_0x45c3b3['statusText']})),_0x39ede2=new Error(_0x303ab9['error']||_0x303ab9['message']||_0x45c3b3['statusText']);if(_0x303ab9['detail']!==undefined)_0x39ede2['detail']=_0x303ab9['detail'];throw _0x39ede2;}return await _0x45c3b3['json']();},async 'getTeams'(){const _0x333074=await fetch(API_BASE+'/teams');if(!_0x333074['ok']){const _0x30a881=await _0x333074['json']()['catch'](()=>({'message':_0x333074['statusText']}));throw new Error(_0x30a881['message']||'Failed\x20to\x20get\x20teams');}return await _0x333074['json']();},async 'getTeam'(_0x461f02){const _0x5be0c8=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x461f02));if(!_0x5be0c8['ok']){const _0x49138e=await _0x5be0c8['json']()['catch'](()=>({'message':_0x5be0c8['statusText']}));throw new Error(_0x49138e['message']||'Failed\x20to\x20get\x20team');}return await _0x5be0c8['json']();},async 'createTeam'(_0xc4e45){const _0x2ead22=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xc4e45)});if(!_0x2ead22['ok']){const _0x11dbde=await _0x2ead22['json']()['catch'](()=>({'message':_0x2ead22['statusText']}));throw new Error(_0x11dbde['message']||'Failed\x20to\x20create\x20team');}return await _0x2ead22['json']();},async 'updateTeam'(_0x4cbc1d,_0x232464){const _0x48cfcb=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x4cbc1d),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x232464)});if(!_0x48cfcb['ok']){const _0x236b55=await _0x48cfcb['json']()['catch'](()=>({'message':_0x48cfcb['statusText']}));throw new Error(_0x236b55['message']||'Failed\x20to\x20update\x20team');}return await _0x48cfcb['json']();},async 'deleteTeam'(_0xce186f){const _0x352d3c=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xce186f),{'method':'DELETE'});if(!_0x352d3c['ok']){const _0x45806f=await _0x352d3c['json']()['catch'](()=>({'message':_0x352d3c['statusText']}));throw new Error(_0x45806f['message']||'Failed\x20to\x20delete\x20team');}return await _0x352d3c['json']();},async 'addTeamMember'(_0x5bb458,_0x2f8126){const _0x160dba=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5bb458)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x2f8126})});if(!_0x160dba['ok']){const _0x2cc04c=await _0x160dba['json']()['catch'](()=>({'message':_0x160dba['statusText']}));throw new Error(_0x2cc04c['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x160dba['json']();},async 'removeTeamMember'(_0xf4166,_0x192320){const _0x1790db=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xf4166)+'/members/'+encodeURIComponent(_0x192320),{'method':'DELETE'});if(!_0x1790db['ok']){const _0x38362f=await _0x1790db['json']()['catch'](()=>({'message':_0x1790db['statusText']}));throw new Error(_0x38362f['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x1790db['json']();},async 'getBindings'(_0x13529a={}){const _0x44cf16=new URLSearchParams();if(_0x13529a['resource_type'])_0x44cf16['set']('resource_type',_0x13529a['resource_type']);if(_0x13529a['resource_id'])_0x44cf16['set']('resource_id',_0x13529a['resource_id']);if(_0x13529a['subject_type'])_0x44cf16['set']('subject_type',_0x13529a['subject_type']);if(_0x13529a['subject_id'])_0x44cf16['set']('subject_id',_0x13529a['subject_id']);const _0x47cbe7=_0x44cf16['toString'](),_0x2e5145=await fetch(API_BASE+'/bindings'+(_0x47cbe7?'?'+_0x47cbe7:''));if(!_0x2e5145['ok']){const _0x2a9518=await _0x2e5145['json']()['catch'](()=>({'message':_0x2e5145['statusText']}));throw new Error(_0x2a9518['message']||'Failed\x20to\x20get\x20bindings');}return await _0x2e5145['json']();},async 'createBinding'(_0x239117){const _0x12fb0d=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x239117)});if(!_0x12fb0d['ok']){const _0x5bbf8d=await _0x12fb0d['json']()['catch'](()=>({'message':_0x12fb0d['statusText']}));throw new Error(_0x5bbf8d['message']||'Failed\x20to\x20create\x20binding');}return await _0x12fb0d['json']();},async 'updateBinding'(_0x268806,_0x5bfe3a){const _0x1228dd=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x268806),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5bfe3a)});if(!_0x1228dd['ok']){const _0x60ffa4=await _0x1228dd['json']()['catch'](()=>({'message':_0x1228dd['statusText']}));throw new Error(_0x60ffa4['message']||'Failed\x20to\x20update\x20binding');}return await _0x1228dd['json']();},async 'deleteBinding'(_0x2a629d){const _0x599214=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x2a629d),{'method':'DELETE'});if(!_0x599214['ok']){const _0x12f4c5=await _0x599214['json']()['catch'](()=>({'message':_0x599214['statusText']}));throw new Error(_0x12f4c5['message']||'Failed\x20to\x20delete\x20binding');}return await _0x599214['json']();},async 'getRoleDefinitions'(){const _0x349591=await fetch(API_BASE+'/roles');if(!_0x349591['ok']){const _0x1a7e20=await _0x349591['json']()['catch'](()=>({'message':_0x349591['statusText']}));throw new Error(_0x1a7e20['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x349591['json']();},async 'getRoleDefinition'(_0x280ccc){const _0x5d6976=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x280ccc));if(!_0x5d6976['ok']){const _0x49016d=await _0x5d6976['json']()['catch'](()=>({'message':_0x5d6976['statusText']}));throw new Error(_0x49016d['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x5d6976['json']();},async 'createRoleDefinition'(_0x22fa89){const _0x26615a=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x22fa89)});if(!_0x26615a['ok']){const _0x53310d=await _0x26615a['json']()['catch'](()=>({'message':_0x26615a['statusText']}));throw new Error(_0x53310d['message']||_0x53310d['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x26615a['json']();},async 'updateRoleDefinition'(_0x3b4be4,_0x4a1542){const _0x36b1d8=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x3b4be4),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4a1542)});if(!_0x36b1d8['ok']){const _0x747ec1=await _0x36b1d8['json']()['catch'](()=>({'message':_0x36b1d8['statusText']}));throw new Error(_0x747ec1['message']||_0x747ec1['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x36b1d8['json']();},async 'deleteRoleDefinition'(_0x5cd809){const _0x69a523=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x5cd809),{'method':'DELETE'});if(!_0x69a523['ok']){const _0x5a55dd=await _0x69a523['json']()['catch'](()=>({'message':_0x69a523['statusText']}));throw new Error(_0x5a55dd['message']||_0x5a55dd['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x69a523['json']();},async 'getAvailablePermissions'(){const _0x175566=await fetch(API_BASE+'/roles/available-permissions');if(!_0x175566['ok']){const _0x3d2a5b=await _0x175566['json']()['catch'](()=>({'message':_0x175566['statusText']}));throw new Error(_0x3d2a5b['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x175566['json']();},async 'getGitProviderAllowedTeams'(_0x2093ae){const _0x289c48=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x2093ae)+'/allowed-teams');if(!_0x289c48['ok']){const _0x38f340=await _0x289c48['json']()['catch'](()=>({'message':_0x289c48['statusText']}));throw new Error(_0x38f340['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x289c48['json']();},async 'setGitProviderAllowedTeams'(_0x63a6e,_0x2af5c1){const _0x2d3f98=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x63a6e)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x2af5c1})});if(!_0x2d3f98['ok']){const _0x29b6df=await _0x2d3f98['json']()['catch'](()=>({'message':_0x2d3f98['statusText']}));throw new Error(_0x29b6df['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x2d3f98['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 _0x397fbe=toastState['baseBottom'];toastState['toasts']['forEach'](_0x37a663=>{_0x37a663['el']['style']['bottom']=_0x397fbe+'px';const _0x4d46a4=_0x37a663['el']['offsetHeight']||toastState['defaultHeight'];_0x397fbe+=_0x4d46a4+toastState['gap'];});});}function removeToastById(_0x352b53){const _0x381748=toastState['toasts']['findIndex'](_0x1c54d4=>_0x1c54d4['id']===_0x352b53);if(_0x381748===-0x1)return;const _0x4668ee=toastState['toasts'][_0x381748];if(_0x4668ee['timeoutId'])clearTimeout(_0x4668ee['timeoutId']);_0x4668ee['el']['classList']['remove']('show'),setTimeout(()=>_0x4668ee['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x381748,0x1),repositionAllToasts();}function registerToast(_0x4d1ea4){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x4d1ea4),repositionAllToasts(),_0x4d1ea4['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(_0x22fb51){if(_0x22fb51===null||_0x22fb51===undefined)return'';return String(_0x22fb51)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0x265148,_0x2e95d8){if(_0x265148&&typeof _0x265148==='object'&&!Array['isArray'](_0x265148))return{'code':typeof _0x265148['text']==='string'?_0x265148['text']:'','language':typeof _0x265148['lang']==='string'?_0x265148['lang']:''};return{'code':typeof _0x265148==='string'?_0x265148:'','language':typeof _0x2e95d8==='string'?_0x2e95d8:''};}function buildMermaidBlock(_0x3c8c25){const _0x2f3e8e=String(_0x3c8c25||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x2f3e8e))+'\x22>'+escapeHtmlValue(_0x2f3e8e)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0x1df4d0=new marked['Renderer'](),_0x3e383a=_0x1df4d0['code']['bind'](_0x1df4d0);return _0x1df4d0['code']=function(_0x4ac354,_0x3d9993,..._0x3bc7a8){const {code:_0x5144e7,language:_0x2dbbdb}=getMarkdownCodeBlockPayload(_0x4ac354,_0x3d9993),_0xc0c321=String(_0x2dbbdb||'')['trim']()['toLowerCase']();if(_0xc0c321==='mermaid')return buildMermaidBlock(_0x5144e7);const _0x47410e=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0x47410e&&_0xc0c321)try{const _0x3bb8c2=_0x47410e['getLanguage'](_0xc0c321)?_0xc0c321:'plaintext',_0x2e902d=_0x47410e['highlight'](_0x5144e7,{'language':_0x3bb8c2})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0xc0c321)+'\x22>'+_0x2e902d+'</code></pre>';}catch(_0x38ae95){console['error']('Syntax\x20highlighting\x20error:',_0x38ae95);}return _0x3e383a(_0x4ac354,_0x3d9993,..._0x3bc7a8);},sharedMarkedRenderer=_0x1df4d0,_0x1df4d0;}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 _0x21013c=window['mermaid'];if(!_0x21013c||typeof _0x21013c['initialize']!=='function')return _0x21013c||null;return _0x21013c['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x21013c;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0xabeb55,_0x3ca6db)=>{const _0xae3cfa=()=>_0xabeb55(configureMermaidInstance()),_0x405b8d=()=>{mermaidLoadPromise=null,_0x3ca6db(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0xae5f07=document['getElementById'](MERMAID_SCRIPT_ID);!_0xae5f07&&(_0xae5f07=document['createElement']('script'),_0xae5f07['id']=MERMAID_SCRIPT_ID,_0xae5f07['src']=MERMAID_SCRIPT_SRC,_0xae5f07['async']=!![],document['head']['appendChild'](_0xae5f07));if(window['mermaid']){_0xae3cfa();return;}_0xae5f07['addEventListener']('load',_0xae3cfa,{'once':!![]}),_0xae5f07['addEventListener']('error',_0x405b8d,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x913d6){const _0x2857c0=_0x913d6['getAttribute']('data-mermaid-source');if(!_0x2857c0)return null;let _0x366de1=_0x2857c0;try{_0x366de1=decodeURIComponent(_0x2857c0);}catch{}return _0x913d6['textContent']=_0x366de1,_0x913d6['removeAttribute']('data-processed'),_0x913d6['removeAttribute']('aria-roledescription'),_0x913d6['removeAttribute']('role'),_0x913d6['removeAttribute']('aria-label'),_0x366de1;}function collectMermaidNodes(_0x5b2f81,_0x382ff9){if(!(_0x5b2f81 instanceof Element))return;_0x5b2f81['matches']('.mermaid[data-mermaid-source]')&&_0x382ff9['add'](_0x5b2f81),_0x5b2f81['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x18ef2e=>{_0x382ff9['add'](_0x18ef2e);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x4f0259=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x580a6f=>setTimeout(_0x580a6f,0x0);_0x4f0259(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x1ab9e8=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x1ab9e8);});});}function queueMermaidRender(_0x199db0){const _0x234dc5=new Set();_0x199db0 instanceof Document||_0x199db0 instanceof DocumentFragment?_0x199db0['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x1a7f6c=>_0x234dc5['add'](_0x1a7f6c)):collectMermaidNodes(_0x199db0,_0x234dc5);if(_0x234dc5['size']===0x0)return;_0x234dc5['forEach'](_0x5d8d29=>pendingMermaidNodes['add'](_0x5d8d29)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x569f5f=Array['from'](pendingMermaidNodes)['filter'](_0x522e50=>_0x522e50['isConnected']);pendingMermaidNodes['clear']();if(_0x569f5f['length']===0x0)return;const _0xb8b465=await loadMermaid();if(!_0xb8b465)return;configureMermaidInstance();const _0x559f3a=getMermaidTheme();for(const _0x1ad796 of _0x569f5f){const _0x1b08bd=_0x1ad796['getAttribute']('data-mermaid-source');if(!_0x1b08bd)continue;const _0x4c169f=_0x1ad796['getAttribute']('data-processed')==='true';if(_0x4c169f&&_0x1ad796['dataset']['mermaidTheme']===_0x559f3a)continue;restoreMermaidSource(_0x1ad796);try{if(typeof _0xb8b465['run']==='function')await _0xb8b465['run']({'nodes':[_0x1ad796]});else typeof _0xb8b465['init']==='function'&&_0xb8b465['init'](undefined,[_0x1ad796]);_0x1ad796['dataset']['mermaidTheme']=_0x559f3a,delete _0x1ad796['dataset']['mermaidError'];}catch(_0x5d1418){console['error']('Mermaid\x20render\x20failed:',_0x5d1418),restoreMermaidSource(_0x1ad796),_0x1ad796['dataset']['mermaidError']='true',delete _0x1ad796['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x5437ea=>{_0x5437ea['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x5437ea);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x2fd390=>{_0x2fd390['forEach'](_0x1efe80=>{_0x1efe80['addedNodes']['forEach'](_0x4b63be=>{_0x4b63be['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x4b63be);});});}),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'(_0x1dd5a6){const _0x39a414=new Date(_0x1dd5a6),_0x16c3fb=new Date(),_0x5def6a=_0x16c3fb-_0x39a414,_0x4e9593=Math['floor'](_0x5def6a/0x3e8),_0x196029=Math['floor'](_0x4e9593/0x3c),_0x4f59ca=Math['floor'](_0x196029/0x3c),_0x35df77=Math['floor'](_0x4f59ca/0x18);if(_0x4e9593<0x3c)return'now';if(_0x196029<0x3c)return _0x196029+'m\x20ago';if(_0x4f59ca<0x18)return _0x4f59ca+'h\x20ago';return _0x35df77+'d\x20ago';},'getStatusIcon'(_0x403d7d){switch(_0x403d7d){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x5ecab5){switch(_0x5ecab5){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'(_0x17a591,_0x36102b=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x149c7c={};_0x149c7c['text/plain']=new Blob([_0x17a591],{'type':'text/plain'});_0x36102b&&(_0x149c7c['text/html']=new Blob([_0x36102b],{'type':'text/html'}));const _0x42868b=new ClipboardItem(_0x149c7c);return await navigator['clipboard']['write']([_0x42868b]),!![];}catch(_0x180847){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x180847);}try{const _0x31fe6d=_0x2637b2=>{_0x2637b2['preventDefault'](),_0x2637b2['clipboardData']['setData']('text/plain',_0x17a591),_0x36102b&&_0x2637b2['clipboardData']['setData']('text/html',_0x36102b);};document['addEventListener']('copy',_0x31fe6d);const _0x441a63=document['execCommand']('copy');document['removeEventListener']('copy',_0x31fe6d);if(_0x441a63)return!![];}catch(_0x32a697){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x32a697);}try{const _0x3a9040=document['createElement']('textarea');_0x3a9040['value']=_0x17a591,_0x3a9040['style']['position']='fixed',_0x3a9040['style']['opacity']='0',_0x3a9040['style']['pointerEvents']='none',document['body']['appendChild'](_0x3a9040),_0x3a9040['select']();const _0x4c7fe3=document['execCommand']('copy');return document['body']['removeChild'](_0x3a9040),_0x4c7fe3;}catch(_0x5dd822){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x5dd822),![];}},'showToast'(_0x40c5b5,_0x3f5692='info'){const _0xb016d6=getNextToastId(),_0x2c9ef0=document['createElement']('div');_0x2c9ef0['className']='toast\x20toast-'+_0x3f5692,_0x2c9ef0['textContent']=_0x40c5b5,_0x2c9ef0['dataset']['toastId']=_0xb016d6,document['body']['appendChild'](_0x2c9ef0);const _0x2bc878=_0x3f5692==='error'?0x2710:0xbb8,_0x191dbb=setTimeout(()=>{removeToastById(_0xb016d6);},_0x2bc878),_0x335a01={'id':_0xb016d6,'el':_0x2c9ef0,'timeoutId':_0x191dbb};return registerToast(_0x335a01),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2c9ef0['classList']['add']('show');});}),_0xb016d6;},'showError'(_0x544eda){console['error'](_0x544eda);const _0x25de3b=typeof _0x544eda==='string'?_0x544eda:_0x544eda['message']||'An\x20error\x20occurred';this['showToast'](_0x25de3b,'error');},'showSuccess'(_0x42a08c){this['showToast'](_0x42a08c,'success');},'capitalize'(_0x3b73c1){if(!_0x3b73c1)return'';return _0x3b73c1['charAt'](0x0)['toUpperCase']()+_0x3b73c1['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x4b000b){return escapeHtmlValue(_0x4b000b);},'ansiToHtml'(_0x3ab6f9){if(_0x3ab6f9===null||_0x3ab6f9===undefined)return'';let _0x5452b7=this['escapeHtml'](_0x3ab6f9);const _0x49b7b2={'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'},_0x1f8cec={'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 _0x4948f4=0x0;return _0x5452b7=_0x5452b7['replace'](/\x1b\[([0-9;]*)m/g,(_0x36ebc9,_0x404bf7)=>{if(!_0x404bf7||_0x404bf7==='0'){const _0x23bd6c='</span>'['repeat'](_0x4948f4);return _0x4948f4=0x0,_0x23bd6c;}const _0x50d8f0=_0x404bf7['split'](';'),_0x2b086f=[];for(const _0x3a3c31 of _0x50d8f0){if(_0x3a3c31==='1')_0x2b086f['push']('font-weight:bold');else{if(_0x3a3c31==='2')_0x2b086f['push']('opacity:0.7');else{if(_0x3a3c31==='3')_0x2b086f['push']('font-style:italic');else{if(_0x3a3c31==='4')_0x2b086f['push']('text-decoration:underline');else{if(_0x3a3c31==='9')_0x2b086f['push']('text-decoration:line-through');else{if(_0x49b7b2[_0x3a3c31])_0x2b086f['push']('color:'+_0x49b7b2[_0x3a3c31]);else{if(_0x1f8cec[_0x3a3c31])_0x2b086f['push']('background-color:'+_0x1f8cec[_0x3a3c31]);}}}}}}}if(_0x2b086f['length']>0x0)return _0x4948f4++,'<span\x20style=\x22'+_0x2b086f['join'](';')+'\x22>';return'';}),_0x5452b7+='</span>'['repeat'](_0x4948f4),_0x5452b7=_0x5452b7['replace'](/\\u001b\[([0-9;]*)m/g,(_0xedd6fa,_0x4544a0)=>{if(!_0x4544a0||_0x4544a0==='0')return'';const _0x2afbb0=_0x4544a0['split'](';'),_0x594832=[];for(const _0x4e320b of _0x2afbb0){if(_0x4e320b==='1')_0x594832['push']('font-weight:bold');else{if(_0x49b7b2[_0x4e320b])_0x594832['push']('color:'+_0x49b7b2[_0x4e320b]);else{if(_0x1f8cec[_0x4e320b])_0x594832['push']('background-color:'+_0x1f8cec[_0x4e320b]);}}}if(_0x594832['length']>0x0)return'<span\x20style=\x22'+_0x594832['join'](';')+'\x22>';return'';}),_0x5452b7;},'showModal'({title:_0x5bd1a4,content:_0x286766,buttons:buttons=[]}){const _0x3c7dc3='\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'](_0x5bd1a4)+'</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'+_0x286766+'\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']((_0x39d223,_0x347d6b)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0x39d223['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x347d6b+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0x39d223['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',_0x2f9c28=document['createElement']('div');_0x2f9c28['id']='utils-modal',_0x2f9c28['className']='modal',_0x2f9c28['innerHTML']=_0x3c7dc3,document['body']['appendChild'](_0x2f9c28);const _0x1e9c2b=document['getElementById']('utils-modal-close');_0x1e9c2b&&_0x1e9c2b['addEventListener']('click',()=>this['hideModal']());const _0x228277=_0x2f9c28['querySelectorAll']('[data-btn-index]');_0x228277['forEach'](_0x5b66e7=>{const _0x284f30=parseInt(_0x5b66e7['dataset']['btnIndex']);buttons[_0x284f30]?.['onClick']&&_0x5b66e7['addEventListener']('click',buttons[_0x284f30]['onClick']);});const _0x259d6a=document['getElementById']('utils-modal-overlay');_0x259d6a&&_0x259d6a['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x21426e=document['getElementById']('utils-modal');_0x21426e&&_0x21426e['remove']();},'parseKeyValuePairs'(_0x124bc0){const _0x3c0f2f={};if(!_0x124bc0)return _0x3c0f2f;return _0x124bc0['split'](/\r?\n/)['map'](_0x2a7486=>_0x2a7486['trim']())['filter'](Boolean)['forEach'](_0x87d29d=>{const _0x3e1287=_0x87d29d['indexOf']('=');if(_0x3e1287>0x0){const _0x176181=_0x87d29d['slice'](0x0,_0x3e1287)['trim'](),_0x13d12b=_0x87d29d['slice'](_0x3e1287+0x1)['trim']();if(_0x176181)_0x3c0f2f[_0x176181]=_0x13d12b;}}),_0x3c0f2f;},'debounce'(_0x5d8eea,_0x4683f3=0xfa){let _0x3f3c96=null;return(..._0x22b7e6)=>{clearTimeout(_0x3f3c96),_0x3f3c96=setTimeout(()=>_0x5d8eea['apply'](this,_0x22b7e6),_0x4683f3);};},'formatTimestamp'(_0x32eaf9){if(!_0x32eaf9)return'N/A';const _0x2ea2ce=new Date(_0x32eaf9);return _0x2ea2ce['toLocaleDateString']()+'\x20'+_0x2ea2ce['toLocaleTimeString']();},'getQueryParams'(){const _0x376977=new URLSearchParams(window['location']['search']),_0x5641af={};for(const [_0x36053f,_0x25fd3b]of _0x376977){_0x5641af[_0x36053f]=_0x25fd3b;}return _0x5641af;},'formatDuration'(_0xa955b7,_0x4dbfbc){if(!_0xa955b7)return'N/A';const _0x476d46=new Date(_0xa955b7),_0x4f35af=_0x4dbfbc?new Date(_0x4dbfbc):new Date(),_0x5a6ccb=_0x4f35af-_0x476d46;if(_0x5a6ccb<0x0)return'0s';const _0x2daf99=Math['floor'](_0x5a6ccb/0x3e8),_0x125eae=Math['floor'](_0x2daf99/0x3c),_0x242f3d=Math['floor'](_0x125eae/0x3c),_0x9e785d=Math['floor'](_0x242f3d/0x18);if(_0x2daf99<0x3c)return _0x2daf99+'s';if(_0x125eae<0x3c)return _0x125eae+'m\x20'+_0x2daf99%0x3c+'s';if(_0x242f3d<0x18)return _0x242f3d+'h\x20'+_0x125eae%0x3c+'m\x20'+_0x2daf99%0x3c+'s';return _0x9e785d+'d\x20'+_0x242f3d%0x18+'h\x20'+_0x125eae%0x3c+'m';},'renderMarkdown'(_0x29e1c1,_0x5e20bd={}){if(!_0x29e1c1)return'';_0x29e1c1=this['rewriteAttachmentLinks'](_0x29e1c1,_0x5e20bd),_0x29e1c1=this['rewriteColorSyntax'](_0x29e1c1);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x29e1c1);}catch(_0xd01caa){return console['error']('Markdown\x20parsing\x20error:',_0xd01caa),this['renderMarkdownFallback'](_0x29e1c1,_0x5e20bd);}},'rewriteAttachmentLinks'(_0x597157,_0x1d5fc3={}){const _0x196c7c=typeof _0x1d5fc3['resolveAttachmentUrl']==='function'?_0x1d5fc3['resolveAttachmentUrl']:_0x1d5fc3['taskId']?_0x8e0dfe=>API_BASE+'/tasks/'+_0x1d5fc3['taskId']+'/attachments/'+encodeURIComponent(_0x8e0dfe):null;if(!_0x196c7c)return _0x597157;return String(_0x597157)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x343aee,_0x12dc48)=>{const _0x3055ca=String(_0x12dc48||'')['trim']();if(!_0x3055ca)return _0x343aee;let _0x476dc7=_0x3055ca;try{_0x476dc7=decodeURIComponent(_0x3055ca);}catch{}const _0x3466f3=_0x196c7c(_0x476dc7);if(!_0x3466f3)return _0x343aee;return']('+_0x3466f3+')';});},'rewriteColorSyntax'(_0x3a1ddf){if(!_0x3a1ddf)return _0x3a1ddf;return String(_0x3a1ddf)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x188856,_0x4d3fd2,_0xfca833)=>{const _0x399888=this['rewriteColorSyntax'](_0xfca833);return'<span\x20style=\x22color:\x20'+_0x4d3fd2+'\x22>'+_0x399888+'</span>';});},'renderMarkdownFallback'(_0x3faf98,_0x1d74c2={}){if(!_0x3faf98)return'';_0x3faf98=_0x3faf98['replace'](/\r\n/g,'\x0a'),_0x3faf98=_0x3faf98['replace'](/\r/g,'\x0a'),_0x3faf98=this['rewriteAttachmentLinks'](_0x3faf98,_0x1d74c2);let _0x490c79=this['escapeHtml'](_0x3faf98);return _0x490c79=_0x490c79['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x490c79=_0x490c79['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x490c79=_0x490c79['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x490c79=_0x490c79['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x490c79=_0x490c79['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x490c79=_0x490c79['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x490c79=_0x490c79['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x490c79=_0x490c79['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x490c79=_0x490c79['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x490c79=_0x490c79['replace'](/\n\n/g,'</p><p>'),_0x490c79=_0x490c79['replace'](/\n/g,'<br>'),'<p>'+_0x490c79+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x1a8424=new Uint8Array(0x10);crypto['getRandomValues'](_0x1a8424),_0x1a8424[0x6]=_0x1a8424[0x6]&0xf|0x40,_0x1a8424[0x8]=_0x1a8424[0x8]&0x3f|0x80;const _0x2d679c=Array['from'](_0x1a8424,_0x1bbe0c=>_0x1bbe0c['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x2d679c['slice'](0x0,0x8)+'-'+_0x2d679c['slice'](0x8,0xc)+'-'+_0x2d679c['slice'](0xc,0x10)+'-'+_0x2d679c['slice'](0x10,0x14)+'-'+_0x2d679c['slice'](0x14);}};export class CustomSelect{constructor(_0x44c560,_0x44691d={}){this['nativeSelect']=_0x44c560,this['options']=_0x44691d,this['isOpen']=![],this['selectedValue']=_0x44c560['value']||'',this['searchable']=_0x44691d['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5e6efa=document['createElement']('div');_0x5e6efa['className']='custom-select';const _0x5eea3b=document['createElement']('div');_0x5eea3b['className']='custom-select-trigger',_0x5eea3b['setAttribute']('tabindex','0'),_0x5eea3b['setAttribute']('role','button'),_0x5eea3b['setAttribute']('aria-haspopup','listbox');const _0x13e2d4=document['createElement']('span');_0x13e2d4['className']='custom-select-trigger-text';const _0xe96584=document['createElement']('span');_0xe96584['className']='custom-select-arrow',_0xe96584['textContent']='▼',_0x5eea3b['appendChild'](_0x13e2d4),_0x5eea3b['appendChild'](_0xe96584);const _0xd64ea4=document['createElement']('div');_0xd64ea4['className']='custom-select-dropdown',_0xd64ea4['setAttribute']('role','listbox');if(this['searchable']){const _0x3f8a16=document['createElement']('div');_0x3f8a16['className']='custom-select-search';const _0x4b1c16=document['createElement']('input');_0x4b1c16['type']='text',_0x4b1c16['className']='custom-select-search-input',_0x4b1c16['placeholder']='Type\x20to\x20search...',_0x4b1c16['setAttribute']('aria-label','Search\x20options'),_0x4b1c16['addEventListener']('input',_0x518d9b=>{this['searchQuery']=_0x518d9b['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x4b1c16['addEventListener']('keydown',_0x559b1c=>{if(_0x559b1c['key']==='Escape')_0x559b1c['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x559b1c['key']==='Enter'){_0x559b1c['preventDefault'](),_0x559b1c['stopPropagation']();const _0x434935=_0xd64ea4['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x434935){const _0x432a2f=_0x434935['getAttribute']('data-value');this['select'](_0x432a2f);}}}}),_0x3f8a16['appendChild'](_0x4b1c16),_0xd64ea4['appendChild'](_0x3f8a16),this['searchInput']=_0x4b1c16;}const _0x108bfb=document['createElement']('div');_0x108bfb['className']='custom-select-options',_0xd64ea4['appendChild'](_0x108bfb),_0x5e6efa['appendChild'](_0x5eea3b),_0x5e6efa['appendChild'](_0xd64ea4),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5e6efa,this['nativeSelect']),this['wrapper']=_0x5e6efa,this['trigger']=_0x5eea3b,this['triggerText']=_0x13e2d4,this['dropdown']=_0xd64ea4,this['optionsContainer']=_0x108bfb,_0x5eea3b['addEventListener']('click',()=>this['toggle']()),_0x5eea3b['addEventListener']('keydown',_0x221ccb=>this['handleKeydown'](_0x221ccb)),document['addEventListener']('click',_0x522681=>{!_0x5e6efa['contains'](_0x522681['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0xe1384=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0xe1384['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x5d5861=new MutationObserver(()=>{this['updateDisabledState']();});_0x5d5861['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0xb0533e=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0xb0533e['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x48c5c1=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x48c5c1),this['trigger']['setAttribute']('aria-disabled',_0x48c5c1?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x48c5c1?'-1':'0'),_0x48c5c1&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x43500c=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0x4a33fa=_0x43500c['filter'](_0x27f185=>!_0x27f185['disabled']&&!_0x27f185['hidden']);_0x43500c['forEach']((_0x3053f7,_0x2513a7)=>{const _0x461d7e=document['createElement']('div');_0x461d7e['className']='custom-select-option',_0x461d7e['textContent']=_0x3053f7['textContent'],_0x461d7e['setAttribute']('data-value',_0x3053f7['value']),_0x461d7e['setAttribute']('data-index',_0x2513a7),_0x461d7e['setAttribute']('role','option'),_0x3053f7['disabled']?_0x461d7e['classList']['add']('disabled'):_0x461d7e['addEventListener']('click',()=>this['select'](_0x3053f7['value'])),_0x3053f7['value']===this['selectedValue']&&_0x461d7e['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x461d7e),this['allOptions']['push']({'element':_0x461d7e,'text':_0x3053f7['textContent']['toLowerCase'](),'value':_0x3053f7['value'],'disabled':_0x3053f7['disabled']});});if(this['searchable']&&this['searchInput']){const _0x4959fa=this['searchInput']['parentElement'];_0x4a33fa['length']>0x3?_0x4959fa['style']['display']='':_0x4959fa['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x4f2326=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x16a8c5=>{if(!_0x4f2326||_0x16a8c5['disabled'])_0x16a8c5['element']['style']['display']='';else{const _0x5b936f=_0x16a8c5['text']['includes'](_0x4f2326);_0x16a8c5['element']['style']['display']=_0x5b936f?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x280097){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x280097,this['nativeSelect']['value']=_0x280097;const _0x395714=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x395714),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x5de15b=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x5de15b&&(this['triggerText']['textContent']=_0x5de15b['textContent'],_0x5de15b['disabled']||_0x5de15b['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x15f041=>{_0x15f041['getAttribute']('data-value')===this['selectedValue']?_0x15f041['classList']['add']('selected'):_0x15f041['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 _0xb1bd4e=window['getComputedStyle'](this['dropdown']);if(_0xb1bd4e['position']==='fixed'){const _0x2d2798=this['trigger']['getBoundingClientRect'](),_0x427669=parseInt(_0xb1bd4e['maxHeight'])||0xc8,_0x26e092=window['innerHeight'],_0x51b730=_0x26e092-_0x2d2798['bottom'],_0x4d341f=_0x2d2798['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x276fae;_0x51b730<_0x427669&&_0x4d341f>_0x51b730?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x26e092-_0x2d2798['top']+'px',_0x276fae=Math['min'](_0x427669,_0x4d341f-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2d2798['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x276fae=Math['min'](_0x427669,_0x51b730-0xa),this['dropdown']['style']['maxHeight']=_0x276fae+'px');if(this['optionsContainer']){let _0x579cec=_0x276fae;if(this['searchInput']){const _0x2114ec=this['searchInput']['parentElement'];_0x2114ec&&(_0x579cec-=_0x2114ec['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x579cec)+'px';}this['dropdown']['style']['left']=_0x2d2798['left']+'px',this['dropdown']['style']['width']=_0x2d2798['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x10eabe=this['searchInput']['parentElement'];_0x10eabe&&_0x10eabe['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'](_0x1ff6a0){if(this['nativeSelect']['disabled'])return;if(_0x1ff6a0['key']==='Enter'||_0x1ff6a0['key']==='\x20')_0x1ff6a0['preventDefault'](),this['toggle']();else _0x1ff6a0['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x600dad='\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',_0x600dad),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x156b35=document['getElementById']('confirm-dialog-close'),_0x221e2e=document['getElementById']('confirm-dialog-cancel'),_0x1ae9f0=document['getElementById']('confirm-dialog-confirm'),_0x361648=this['_modal']['querySelector']('.modal-overlay');_0x156b35['addEventListener']('click',()=>this['_resolve'](![])),_0x221e2e['addEventListener']('click',()=>this['_resolve'](![])),_0x1ae9f0['addEventListener']('click',()=>this['_resolve'](!![])),_0x361648['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x102d60=>{if(_0x102d60['key']==='Escape')_0x102d60['preventDefault'](),this['_resolve'](![]);else _0x102d60['key']==='Enter'&&(_0x102d60['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x50dc0e,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x591fd3=>{this['_resolvePromise']=_0x591fd3,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x50dc0e;const _0x2adb81=document['getElementById']('confirm-dialog-cancel'),_0x344653=document['getElementById']('confirm-dialog-confirm');_0x2adb81['textContent']=cancelText,_0x344653['textContent']=confirmText,_0x344653['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x344653['focus']();});},'_resolve'(_0x362bc2){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x362bc2),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x2476d1,_0x58ee6e={}){this['container']=_0x2476d1,this['options']={'placeholder':_0x58ee6e['placeholder']||'Type\x20to\x20search...','maxItems':_0x58ee6e['maxItems']||0x64,'loadItems':_0x58ee6e['loadItems']||(async()=>[]),'renderItem':_0x58ee6e['renderItem']||(_0x36688c=>({'primary':String(_0x36688c),'secondary':''})),'onSelect':_0x58ee6e['onSelect']||(()=>{}),'filterItems':_0x58ee6e['filterItems']||null,'getItemValue':_0x58ee6e['getItemValue']||(_0x139cc6=>_0x139cc6),'sortItems':_0x58ee6e['sortItems']||null,'debounceMs':_0x58ee6e['debounceMs']||0xc8,'minCharsForSearch':_0x58ee6e['minCharsForSearch']||0x0,'emptyMessage':_0x58ee6e['emptyMessage']||'No\x20results\x20found','loadingMessage':_0x58ee6e['loadingMessage']||'Loading...','preload':_0x58ee6e['preload']!==![],'searchMode':_0x58ee6e['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',_0x3b0aaa=>this['onBlur'](_0x3b0aaa)),this['input']['addEventListener']('input',_0x54e172=>this['onInput'](_0x54e172)),this['input']['addEventListener']('keydown',_0x24f036=>this['onKeydown'](_0x24f036)),this['clearBtn']['addEventListener']('mousedown',_0x56922b=>{_0x56922b['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x1147ce=>{_0x1147ce['preventDefault']();}),document['addEventListener']('click',_0x131ee8=>{!this['wrapper']['contains'](_0x131ee8['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(_0x33869d){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x33869d);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x4d9065){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x5b7858){const _0x468864=_0x5b7858['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x468864);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x468864):this['loadAndShow'](_0x468864);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x4b841b){switch(_0x4b841b['key']){case'ArrowDown':_0x4b841b['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x4b841b['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x4b841b['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x4b841b['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x3acc77){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x1a3b33=this['selectedIndex']+_0x3acc77;if(_0x1a3b33>=0x0&&_0x1a3b33<this['filteredItems']['length']){this['selectedIndex']=_0x1a3b33,this['updateSelectionHighlight']();const _0x58cb27=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x58cb27[this['selectedIndex']]&&_0x58cb27[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x56536b=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x56536b['forEach']((_0x2eb0ce,_0x2a32b4)=>{_0x2eb0ce['classList']['toggle']('keyboard-selected',_0x2a32b4===this['selectedIndex']);});}async['loadAndShow'](_0x1f472e){this['showLoading']();try{const _0x56bf75=await this['options']['loadItems'](_0x1f472e);if(this['options']['searchMode']==='server'){let _0x59e08a=_0x56bf75;this['options']['sortItems']&&(_0x59e08a=this['options']['sortItems']([..._0x56bf75]));this['filteredItems']=_0x59e08a;const _0x1a574e=this['filteredItems']['length']>=this['options']['maxItems'];_0x1a574e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x1a574e),this['open']();}else this['allItems']=_0x56bf75,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x1f472e);}catch(_0x592b2d){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x592b2d),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x217d4b){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x217d4b):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x40af54=this['filteredItems']['length']>=this['options']['maxItems'];_0x40af54&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x40af54),this['open']();}['renderItems'](_0x2adb11){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']((_0x59845a,_0x2e40a9)=>{const _0x5c486d=document['createElement']('div');_0x5c486d['className']='autocomplete-select-item',_0x5c486d['setAttribute']('role','option'),_0x5c486d['setAttribute']('data-index',_0x2e40a9);const _0x3663b1=this['options']['renderItem'](_0x59845a);let _0x3801af='';_0x3663b1['icon']&&(_0x3801af='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x3663b1['iconClass']||'')+'\x22>'+_0x3663b1['icon']+'</span>'),_0x5c486d['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3801af+'\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'](_0x3663b1['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3663b1['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x3663b1['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x5c486d['addEventListener']('click',()=>{this['selectItem'](_0x59845a);}),_0x5c486d['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x2e40a9,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x5c486d);}),_0x2adb11?(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'](_0x53b22b){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x53b22b)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x1ca856){this['selectedItem']=_0x1ca856;const _0x37a56a=this['options']['renderItem'](_0x1ca856);this['input']['value']=_0x37a56a['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x1ca856);}['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'](_0x550b8c){if(_0x550b8c){this['selectedItem']=_0x550b8c;const _0x5c70e5=this['options']['renderItem'](_0x550b8c);this['input']['value']=_0x5c70e5['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x8da578){this['allItems']=_0x8da578,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'](_0x403eb1){this['input']['placeholder']=_0x403eb1;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x520bc8=null){const _0x530015=document['getElementById']('admin-menu-container'),_0x3745f9=document['getElementById']('admin-menu-btn'),_0x1284c6=document['getElementById']('admin-menu');if(!_0x530015||!_0x3745f9||!_0x1284c6)return;try{!_0x520bc8&&(_0x520bc8=await API['getCurrentUser']());if(_0x520bc8){const _0x1b8ad5=window['Permissions'],_0x45863c=_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:manage')||_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')||_0x1b8ad5['hasTeamPermission'](_0x520bc8,'teams:manage')||_0x1b8ad5['hasEnvPermission'](_0x520bc8,'environments:view_details');if(!_0x45863c)return;_0x530015['hidden']=![];if(!_0x1b8ad5['hasServerPermission'](_0x520bc8,'*')){const _0x422bf9=_0x1284c6['querySelectorAll']('.admin-menu-item');_0x422bf9['forEach'](_0x2a8ffb=>{const _0x50a83c=_0x2a8ffb['querySelector']('.option-text')?.['textContent']?.['trim']();_0x50a83c==='Users'&&!_0x1b8ad5['hasServerPermission'](_0x520bc8,'users:create')&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Skills'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Settings'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Server\x20Administration'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Git\x20History'&&(_0x2a8ffb['hidden']=!![]),_0x50a83c==='Roles'&&(_0x2a8ffb['hidden']=!![]);});}_0x3745f9['addEventListener']('click',_0x360252=>{_0x360252['stopPropagation']();const _0x16eb6d=document['getElementById']('actions-menu');if(_0x16eb6d)_0x16eb6d['hidden']=!![];_0x1284c6['hidden']=!_0x1284c6['hidden'];}),document['addEventListener']('click',_0x30e080=>{!_0x1284c6['hidden']&&!_0x3745f9['contains'](_0x30e080['target'])&&!_0x1284c6['contains'](_0x30e080['target'])&&(_0x1284c6['hidden']=!![]);}),document['addEventListener']('keydown',_0x1fc82e=>{_0x1fc82e['key']==='Escape'&&!_0x1284c6['hidden']&&(_0x1284c6['hidden']=!![]);});}}catch(_0x1fb56b){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x1fb56b['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 _0x2897dd=window['location']['pathname'],_0x45b94c=_0x2897dd['match'](/^(\/tasks\/[^/]+\/app\/[^/]+)/);if(_0x45b94c)return console['log']('[CoderFlow]\x20Detected\x20proxied\x20context,\x20using\x20base:',_0x45b94c[0x1]),_0x45b94c[0x1];return'';}const API_BASE=detectApiBase();export const API={async 'getTaskStats'(_0x2cf25c={}){const _0x1330c8=new URLSearchParams();_0x2cf25c['userId']&&_0x1330c8['set']('userId',String(_0x2cf25c['userId']));_0x2cf25c['automation']&&_0x1330c8['set']('automation',String(_0x2cf25c['automation']));const _0xe94804=API_BASE+'/tasks/stats'+(_0x1330c8['toString']()?'?'+_0x1330c8['toString']():''),_0x388da7=await fetch(_0xe94804);if(!_0x388da7['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20stats:\x20'+_0x388da7['statusText']);return await _0x388da7['json']();},async 'getTasks'(_0x9444b7={}){const _0x17bc2a=new URLSearchParams();_0x9444b7['status']&&_0x17bc2a['set']('status',String(_0x9444b7['status']));_0x9444b7['environment']&&_0x17bc2a['set']('environment',String(_0x9444b7['environment']));_0x9444b7['automation']&&_0x17bc2a['set']('automation',String(_0x9444b7['automation']));if(_0x9444b7['include']){const _0x4c4d95=Array['isArray'](_0x9444b7['include'])?_0x9444b7['include']['join'](','):String(_0x9444b7['include']);_0x4c4d95&&_0x17bc2a['set']('include',_0x4c4d95);}_0x9444b7['filter']&&_0x17bc2a['set']('filter',String(_0x9444b7['filter']));_0x9444b7['page']&&_0x17bc2a['set']('page',String(_0x9444b7['page']));_0x9444b7['limit']&&_0x17bc2a['set']('limit',String(_0x9444b7['limit']));_0x9444b7['userId']&&_0x17bc2a['set']('userId',String(_0x9444b7['userId']));_0x9444b7['search']&&_0x17bc2a['set']('search',String(_0x9444b7['search']));_0x9444b7['includeChildTasks']&&_0x17bc2a['set']('includeChildTasks','true');const _0x157ca6=API_BASE+'/tasks'+(_0x17bc2a['toString']()?'?'+_0x17bc2a['toString']():''),_0x228e35=await fetch(_0x157ca6);if(!_0x228e35['ok'])throw new Error('Failed\x20to\x20fetch\x20tasks:\x20'+_0x228e35['statusText']);return await _0x228e35['json']();},async 'getAutomations'(_0x48f20c={}){const _0x51f094=new URLSearchParams();_0x48f20c['environment']&&_0x51f094['set']('environment',String(_0x48f20c['environment']));const _0x2ba7b1=await fetch(API_BASE+'/api/automations'+(_0x51f094['toString']()?'?'+_0x51f094['toString']():''));if(!_0x2ba7b1['ok']){const _0x375a13=await _0x2ba7b1['json']()['catch'](()=>({}));throw new Error(_0x375a13['message']||_0x375a13['error']||'Failed\x20to\x20fetch\x20automations:\x20'+_0x2ba7b1['statusText']);}return await _0x2ba7b1['json']();},async 'getAutomation'(_0x2d7d59){const _0x1ebcf2=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x2d7d59));if(!_0x1ebcf2['ok']){const _0x19e9e1=await _0x1ebcf2['json']()['catch'](()=>({}));throw new Error(_0x19e9e1['message']||_0x19e9e1['error']||'Failed\x20to\x20fetch\x20automation:\x20'+_0x1ebcf2['statusText']);}return await _0x1ebcf2['json']();},async 'createAutomation'(_0x5b50a4){const _0x3be2ed=await fetch(API_BASE+'/api/automations',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5b50a4||{})});if(!_0x3be2ed['ok']){const _0x59f8a8=await _0x3be2ed['json']()['catch'](()=>({}));throw new Error(_0x59f8a8['message']||_0x59f8a8['error']||'Failed\x20to\x20create\x20automation:\x20'+_0x3be2ed['statusText']);}return await _0x3be2ed['json']();},async 'updateAutomation'(_0x1c6ae4,_0x120f87){const _0x3cd18a=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x1c6ae4),{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x120f87||{})});if(!_0x3cd18a['ok']){const _0x2a5087=await _0x3cd18a['json']()['catch'](()=>({}));throw new Error(_0x2a5087['message']||_0x2a5087['error']||'Failed\x20to\x20update\x20automation:\x20'+_0x3cd18a['statusText']);}return await _0x3cd18a['json']();},async 'deleteAutomation'(_0x56ee95){const _0x5489fd=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x56ee95),{'method':'DELETE'});if(!_0x5489fd['ok']){const _0x5368ba=await _0x5489fd['json']()['catch'](()=>({}));throw new Error(_0x5368ba['message']||_0x5368ba['error']||'Failed\x20to\x20delete\x20automation:\x20'+_0x5489fd['statusText']);}return await _0x5489fd['json']();},async 'triggerAutomation'(_0x5c54da){const _0x5b0357=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x5c54da)+'/trigger',{'method':'POST'});if(!_0x5b0357['ok']){const _0x241483=await _0x5b0357['json']()['catch'](()=>({}));throw new Error(_0x241483['message']||_0x241483['error']||'Failed\x20to\x20trigger\x20automation:\x20'+_0x5b0357['statusText']);}return await _0x5b0357['json']();},async 'setAutomationEnabled'(_0x382615,_0x3d24b6){const _0x2bf8d7=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x382615)+'/enabled',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'enabled':!!_0x3d24b6})});if(!_0x2bf8d7['ok']){const _0xd8618d=await _0x2bf8d7['json']()['catch'](()=>({}));throw new Error(_0xd8618d['message']||_0xd8618d['error']||'Failed\x20to\x20update\x20automation\x20status:\x20'+_0x2bf8d7['statusText']);}return await _0x2bf8d7['json']();},async 'getAutomationHistory'(_0x39a68a,_0x1161ae=0x32){const _0x1890db=await fetch(API_BASE+'/api/automations/'+encodeURIComponent(_0x39a68a)+'/history?limit='+encodeURIComponent(String(_0x1161ae)));if(!_0x1890db['ok']){const _0x388456=await _0x1890db['json']()['catch'](()=>({}));throw new Error(_0x388456['message']||_0x388456['error']||'Failed\x20to\x20fetch\x20automation\x20history:\x20'+_0x1890db['statusText']);}return await _0x1890db['json']();},async 'getTask'(_0x3a0d37,_0x4b7643={}){const _0x39d306=new URLSearchParams();if(_0x4b7643['include']){const _0x1e9975=Array['isArray'](_0x4b7643['include'])?_0x4b7643['include']['join'](','):String(_0x4b7643['include']);if(_0x1e9975)_0x39d306['set']('include',_0x1e9975);}const _0x12d060=await fetch(API_BASE+'/tasks/'+_0x3a0d37+(_0x39d306['toString']()?'?'+_0x39d306['toString']():''));if(!_0x12d060['ok'])throw new Error('Failed\x20to\x20fetch\x20task:\x20'+_0x12d060['statusText']);return await _0x12d060['json']();},async 'getTaskResults'(_0x2f873a){const _0x114d03=await fetch(API_BASE+'/tasks/'+_0x2f873a+'/results');if(!_0x114d03['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20results:\x20'+_0x114d03['statusText']);return await _0x114d03['json']();},async 'getTaskPatches'(_0x16145d){const _0xf0813f=await fetch(API_BASE+'/tasks/'+_0x16145d+'/patches');if(!_0xf0813f['ok'])throw new Error('Failed\x20to\x20fetch\x20patches:\x20'+_0xf0813f['statusText']);return await _0xf0813f['json']();},async 'getTaskAttachments'(_0x33d2d2){const _0x55bb8c=await fetch(API_BASE+'/tasks/'+_0x33d2d2+'/attachments');if(!_0x55bb8c['ok'])throw new Error('Failed\x20to\x20fetch\x20attachments:\x20'+_0x55bb8c['statusText']);return await _0x55bb8c['json']();},async 'uploadAttachments'(_0x32d34c,_0x295551){const _0x2f9a03=new FormData();for(const _0x1ea954 of _0x295551){_0x2f9a03['append']('attachments',_0x1ea954);}const _0x54c32a=await fetch(API_BASE+'/tasks/'+_0x32d34c+'/attachments',{'method':'POST','body':_0x2f9a03});if(!_0x54c32a['ok'])throw new Error('Failed\x20to\x20upload\x20attachments:\x20'+_0x54c32a['statusText']);return await _0x54c32a['json']();},async 'isAINameGenerationAvailable'(){try{const _0x2b61f3=await fetch(API_BASE+'/tasks/ai-name-available');if(!_0x2b61f3['ok'])return{'available':![],'reason':'API\x20request\x20failed'};return await _0x2b61f3['json']();}catch(_0x2a84d9){return{'available':![],'reason':_0x2a84d9['message']};}},async 'generateTaskName'(_0x323359){try{const _0x5817ff=await fetch(API_BASE+'/tasks/generate-name',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'instructions':_0x323359})});return await _0x5817ff['json']();}catch(_0x39384c){return{'success':![],'error':_0x39384c['message']};}},async 'createTask'(_0x48ea23){let _0x1b44c5,_0x1421d7={};if(_0x48ea23['files']&&_0x48ea23['files']['length']>0x0){const _0x24d1fa=new FormData();for(const [_0x47c7b6,_0x67bbb1]of Object['entries'](_0x48ea23)){if(_0x47c7b6!=='files'){if(_0x67bbb1==null)continue;typeof _0x67bbb1==='object'?_0x24d1fa['append'](_0x47c7b6,JSON['stringify'](_0x67bbb1)):_0x24d1fa['append'](_0x47c7b6,String(_0x67bbb1));}}for(const _0x47dc54 of _0x48ea23['files']){_0x24d1fa['append']('attachments',_0x47dc54);}_0x1b44c5=_0x24d1fa;}else _0x1421d7['Content-Type']='application/json',_0x1b44c5=JSON['stringify'](_0x48ea23);const _0x14405c=await fetch(API_BASE+'/tasks',{'method':'POST','headers':_0x1421d7,'body':_0x1b44c5});if(!_0x14405c['ok']){const _0x2ca852=await _0x14405c['json'](),_0x33d30d=new Error(_0x2ca852['error']||'Failed\x20to\x20create\x20task:\x20'+_0x14405c['statusText']),{message:_0x198d28,..._0x4843ed}=_0x2ca852;Object['assign'](_0x33d30d,_0x4843ed);throw _0x33d30d;}return await _0x14405c['json']();},async 'createTestTask'(_0x2aee31){const _0x4e9e3b=await fetch(API_BASE+'/test-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2aee31)});if(!_0x4e9e3b['ok']){const _0x235f80=await _0x4e9e3b['json']();throw new Error(_0x235f80['error']||'Failed\x20to\x20create\x20test\x20task:\x20'+_0x4e9e3b['statusText']);}return await _0x4e9e3b['json']();},async 'createEphemeralTest'(_0xa1f5e3){const _0x3db821=await fetch(API_BASE+'/test',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xa1f5e3)});if(!_0x3db821['ok']){const _0x230e60=await _0x3db821['json']();throw new Error(_0x230e60['error']||'Failed\x20to\x20create\x20ephemeral\x20test:\x20'+_0x3db821['statusText']);}return await _0x3db821['json']();},async 'createDeployTask'(_0x41674f){const _0x4d1622=await fetch(API_BASE+'/deploy-task',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x41674f)});if(!_0x4d1622['ok']){const _0x29d7bf=await _0x4d1622['json']();throw new Error(_0x29d7bf['error']||'Failed\x20to\x20create\x20deploy\x20task:\x20'+_0x4d1622['statusText']);}return await _0x4d1622['json']();},async 'getEnvironments'(){const _0x403bcb=await fetch(API_BASE+'/environments');if(!_0x403bcb['ok'])throw new Error('Failed\x20to\x20fetch\x20environments:\x20'+_0x403bcb['statusText']);return await _0x403bcb['json']();},async 'getEnvironment'(_0x1c64ec){const _0x18ab32=await fetch(API_BASE+'/environments/'+_0x1c64ec);if(!_0x18ab32['ok'])throw new Error('Failed\x20to\x20fetch\x20environment:\x20'+_0x18ab32['statusText']);return await _0x18ab32['json']();},async 'getEnvironmentRepoHistory'(_0x403e01,_0x1bab25,_0x55c85b={}){if(!_0x403e01||!_0x1bab25)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x4c8ea4=new URLSearchParams();if(_0x55c85b['limit'])_0x4c8ea4['set']('limit',String(_0x55c85b['limit']));if(_0x55c85b['offset'])_0x4c8ea4['set']('offset',String(_0x55c85b['offset']));if(_0x55c85b['search'])_0x4c8ea4['set']('search',String(_0x55c85b['search']));if(_0x55c85b['branch'])_0x4c8ea4['set']('branch',String(_0x55c85b['branch']));const _0x4c72b8=API_BASE+'/environments/'+encodeURIComponent(_0x403e01)+'/repos/'+encodeURIComponent(_0x1bab25)+'/git/history',_0xc81f1c=await fetch(''+_0x4c72b8+(_0x4c8ea4['toString']()?'?'+_0x4c8ea4['toString']():''));if(!_0xc81f1c['ok']){const _0x5cfd86=await _0xc81f1c['json']()['catch'](()=>({}));throw new Error(_0x5cfd86['error']||'Failed\x20to\x20fetch\x20repo\x20history:\x20'+_0xc81f1c['statusText']);}return await _0xc81f1c['json']();},async 'getEnvironmentRepoCommit'(_0x3179ca,_0x294101,_0x291ebb){if(!_0x3179ca||!_0x294101||!_0x291ebb)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x43320e=API_BASE+'/environments/'+encodeURIComponent(_0x3179ca)+'/repos/'+encodeURIComponent(_0x294101)+'/git/commits/'+encodeURIComponent(_0x291ebb),_0x65ec80=await fetch(_0x43320e);if(!_0x65ec80['ok']){const _0x584438=await _0x65ec80['json']()['catch'](()=>({}));throw new Error(_0x584438['error']||'Failed\x20to\x20fetch\x20commit\x20details:\x20'+_0x65ec80['statusText']);}return await _0x65ec80['json']();},async 'getEnvironmentRepoBranches'(_0x17c0cc,_0x1a02ce){if(!_0x17c0cc||!_0x1a02ce)throw new Error('Environment\x20and\x20repo\x20are\x20required');const _0x2c1c2e=API_BASE+'/environments/'+encodeURIComponent(_0x17c0cc)+'/repos/'+encodeURIComponent(_0x1a02ce)+'/git/branches',_0x20add7=await fetch(_0x2c1c2e);if(!_0x20add7['ok']){const _0x2ece52=await _0x20add7['json']()['catch'](()=>({}));throw new Error(_0x2ece52['error']||'Failed\x20to\x20fetch\x20branches:\x20'+_0x20add7['statusText']);}return await _0x20add7['json']();},async 'revertEnvironmentRepoCommit'(_0x69a5bf,_0x1f8141,_0x49ac8e,_0x42bdd4={}){if(!_0x69a5bf||!_0x1f8141||!_0x49ac8e)throw new Error('Environment,\x20repo,\x20and\x20hash\x20are\x20required');const _0x26c98b=await fetch(API_BASE+'/environments/'+encodeURIComponent(_0x69a5bf)+'/repos/'+encodeURIComponent(_0x1f8141)+'/git/revert',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'hash':_0x49ac8e,..._0x42bdd4})});if(!_0x26c98b['ok']){const _0x528d5a=await _0x26c98b['json']()['catch'](()=>({}));throw new Error(_0x528d5a['message']||_0x528d5a['error']||'Failed\x20to\x20revert\x20commit:\x20'+_0x26c98b['statusText']);}return await _0x26c98b['json']();},async 'getTemplates'(_0x296a64={}){const _0x43a4a1=new URLSearchParams();if(_0x296a64['include']){const _0x35c6a0=Array['isArray'](_0x296a64['include'])?_0x296a64['include']['join'](','):String(_0x296a64['include']);if(_0x35c6a0)_0x43a4a1['set']('include',_0x35c6a0);}const _0xe8d4c1=await fetch(API_BASE+'/templates'+(_0x43a4a1['toString']()?'?'+_0x43a4a1['toString']():''));if(!_0xe8d4c1['ok'])throw new Error('Failed\x20to\x20fetch\x20templates:\x20'+_0xe8d4c1['statusText']);return await _0xe8d4c1['json']();},async 'getTemplatesForEnvironment'(_0x22dad8,_0x523628={}){if(!_0x22dad8)throw new Error('Environment\x20name\x20is\x20required');const _0x8521ff=new URLSearchParams();if(_0x523628['include']){const _0x3f1894=Array['isArray'](_0x523628['include'])?_0x523628['include']['join'](','):String(_0x523628['include']);if(_0x3f1894)_0x8521ff['set']('include',_0x3f1894);}const _0x5dfab9=await fetch(API_BASE+'/templates/'+_0x22dad8+(_0x8521ff['toString']()?'?'+_0x8521ff['toString']():''));if(!_0x5dfab9['ok'])throw new Error('Failed\x20to\x20fetch\x20templates\x20for\x20'+_0x22dad8+':\x20'+_0x5dfab9['statusText']);return await _0x5dfab9['json']();},async 'getTemplate'(_0x5840c6,_0x41f266,_0xd1e8e8={}){if(!_0x5840c6||!_0x41f266)throw new Error('Environment\x20and\x20template\x20are\x20required');const _0x582c1d=new URLSearchParams();if(_0xd1e8e8['include']){const _0x1a15f3=Array['isArray'](_0xd1e8e8['include'])?_0xd1e8e8['include']['join'](','):String(_0xd1e8e8['include']);if(_0x1a15f3)_0x582c1d['set']('include',_0x1a15f3);}const _0x2bbc85=await fetch(API_BASE+'/templates/'+_0x5840c6+'/'+_0x41f266+(_0x582c1d['toString']()?'?'+_0x582c1d['toString']():''));if(!_0x2bbc85['ok'])throw new Error('Failed\x20to\x20load\x20template:\x20'+_0x2bbc85['statusText']);return await _0x2bbc85['json']();},async 'getTaskLogs'(_0x1bab8c,_0x529fa6={}){if(!_0x1bab8c)throw new Error('Task\x20ID\x20is\x20required');const _0x3044ed=new URLSearchParams();_0x529fa6['tail']&&_0x3044ed['set']('tail',String(_0x529fa6['tail']));const _0x3c86cd=await fetch(API_BASE+'/tasks/'+_0x1bab8c+'/logs'+(_0x3044ed['toString']()?'?'+_0x3044ed['toString']():''));if(!_0x3c86cd['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20logs:\x20'+_0x3c86cd['statusText']);return await _0x3c86cd['text']();},async 'getContainers'(){const _0x188030=await fetch(API_BASE+'/containers');if(!_0x188030['ok'])throw new Error('Failed\x20to\x20fetch\x20containers:\x20'+_0x188030['statusText']);return await _0x188030['json']();},async 'getContainer'(_0x44ca47){const _0x596c9b=await fetch(API_BASE+'/containers/'+_0x44ca47);if(!_0x596c9b['ok'])throw new Error('Failed\x20to\x20fetch\x20container:\x20'+_0x596c9b['statusText']);return await _0x596c9b['json']();},async 'startInteractiveContainer'(_0x56535e){const _0x52059f=await fetch(API_BASE+'/containers/interactive',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x56535e)});if(!_0x52059f['ok']){const _0x463f34=await _0x52059f['json']()['catch'](()=>({}));throw new Error(_0x463f34['message']||'Failed\x20to\x20start\x20container:\x20'+_0x52059f['statusText']);}return await _0x52059f['json']();},async 'startContainerCodeServer'(_0xab3303,_0x24d467={}){if(!_0xab3303)throw new Error('Container\x20ID\x20is\x20required');const _0x3eae74=new URLSearchParams();_0x24d467['theme']&&_0x3eae74['set']('theme',_0x24d467['theme']);const _0x3d9872=await fetch(API_BASE+'/containers/'+_0xab3303+'/code-server'+(_0x3eae74['toString']()?'?'+_0x3eae74['toString']():'')),_0x4896ec=await _0x3d9872['json']()['catch'](()=>({}));if(!_0x3d9872['ok'])throw new Error(_0x4896ec['message']||_0x4896ec['error']||'Failed\x20to\x20start\x20VS\x20Code:\x20'+_0x3d9872['statusText']);return _0x4896ec;},async 'stopContainer'(_0x59d1b5){const _0x486c11=await fetch(API_BASE+'/containers/'+_0x59d1b5,{'method':'DELETE'});if(!_0x486c11['ok']){const _0x36d8c9=await _0x486c11['json']()['catch'](()=>({}));throw new Error(_0x36d8c9['message']||'Failed\x20to\x20stop\x20container:\x20'+_0x486c11['statusText']);}return await _0x486c11['json']();},async 'stopTask'(_0x280648){if(!_0x280648)throw new Error('Task\x20ID\x20is\x20required');const _0x20b6d0=await fetch(API_BASE+'/tasks/'+_0x280648+'/stop',{'method':'POST'});if(!_0x20b6d0['ok']){const _0x55bf1f=await _0x20b6d0['json']()['catch'](()=>({}));throw new Error(_0x55bf1f['error']||'Failed\x20to\x20stop\x20task:\x20'+_0x20b6d0['statusText']);}return await _0x20b6d0['json']();},async 'interruptTask'(_0x547696){if(!_0x547696)throw new Error('Task\x20ID\x20is\x20required');const _0x53db8c=await fetch(API_BASE+'/tasks/'+_0x547696+'/interrupt',{'method':'POST'});if(!_0x53db8c['ok']){const _0x2f4b6a=await _0x53db8c['json']()['catch'](()=>({}));throw new Error(_0x2f4b6a['error']||_0x2f4b6a['message']||'Failed\x20to\x20interrupt\x20task:\x20'+_0x53db8c['statusText']);}return await _0x53db8c['json']();},async 'startTask'(_0x5d4ff3){if(!_0x5d4ff3)throw new Error('Task\x20ID\x20is\x20required');const _0x291d17=await fetch(API_BASE+'/tasks/'+_0x5d4ff3+'/start',{'method':'POST'});if(!_0x291d17['ok']){const _0x151745=await _0x291d17['json']()['catch'](()=>({}));throw new Error(_0x151745['error']||'Failed\x20to\x20start\x20task:\x20'+_0x291d17['statusText']);}return await _0x291d17['json']();},async 'deleteTask'(_0x5b4bb3){if(!_0x5b4bb3)throw new Error('Task\x20ID\x20is\x20required');const _0x4ee838=await fetch(API_BASE+'/tasks/'+_0x5b4bb3,{'method':'DELETE'});if(!_0x4ee838['ok']){const _0x37ccc9=await _0x4ee838['json']()['catch'](()=>({}));throw new Error(_0x37ccc9['error']||'Failed\x20to\x20delete\x20task:\x20'+_0x4ee838['statusText']);}return await _0x4ee838['json']();},async 'refreshTasksFromDisk'(){const _0x4fb64f=await fetch(API_BASE+'/tasks/refresh',{'method':'POST'});if(!_0x4fb64f['ok']){const _0x1e1535=await _0x4fb64f['json']()['catch'](()=>({}));throw new Error(_0x1e1535['error']||'Failed\x20to\x20refresh\x20tasks:\x20'+_0x4fb64f['statusText']);}return await _0x4fb64f['json']();},async 'approveTask'(_0x59551d,_0x32f016={}){if(!_0x59551d)throw new Error('Task\x20ID\x20is\x20required');const _0x1e467b={'commit_message':_0x32f016['commit_message']||'','pull':_0x32f016['pull']??![],'push':_0x32f016['push']??![],'conflict_strategy':_0x32f016['conflict_strategy']||'rebase'};_0x32f016['new_branch']&&(_0x1e467b['new_branch']=_0x32f016['new_branch']);const _0x5dce28=await fetch(API_BASE+'/tasks/'+_0x59551d+'/approve',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1e467b)});if(!_0x5dce28['ok']){const _0x3022e7=await _0x5dce28['json']()['catch'](()=>({}));let _0x10c834=_0x3022e7['error']||_0x3022e7['message']||'Failed\x20to\x20approve\x20task:\x20'+_0x5dce28['statusText'];if(_0x3022e7['results']&&Array['isArray'](_0x3022e7['results'])){const _0x1443fa=_0x3022e7['results']['filter'](_0x30936a=>!_0x30936a['success']&&_0x30936a['error']);_0x1443fa['length']>0x0&&(_0x10c834=_0x1443fa[0x0]['error']);}const _0x5aa63c=new Error(_0x10c834);_0x5aa63c['hasConflicts']=_0x3022e7['results']?.['some'](_0xc91445=>_0xc91445['conflict'])||![];throw _0x5aa63c;}return await _0x5dce28['json']();},async 'getPullRequestInfo'(_0xe759a6){if(!_0xe759a6)throw new Error('Task\x20ID\x20is\x20required');const _0x324bb7=await fetch(API_BASE+'/tasks/'+_0xe759a6+'/pull-request-info');if(!_0x324bb7['ok']){const _0x3ae602=await _0x324bb7['json']()['catch'](()=>({}));throw new Error(_0x3ae602['error']||_0x3ae602['message']||'Failed\x20to\x20get\x20pull\x20request\x20info:\x20'+_0x324bb7['statusText']);}return await _0x324bb7['json']();},async 'createPullRequests'(_0x5b3591,_0x3f6a61){if(!_0x5b3591)throw new Error('Task\x20ID\x20is\x20required');if(!_0x3f6a61||!Array['isArray'](_0x3f6a61))throw new Error('repos\x20array\x20is\x20required');const _0x735233=await fetch(API_BASE+'/tasks/'+_0x5b3591+'/pull-requests',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repos':_0x3f6a61})});if(!_0x735233['ok']){const _0x5e23b9=await _0x735233['json']()['catch'](()=>({}));let _0x3824d0=_0x5e23b9['error']||_0x5e23b9['message']||'Failed\x20to\x20create\x20pull\x20requests:\x20'+_0x735233['statusText'];if(_0x5e23b9['results']&&Array['isArray'](_0x5e23b9['results'])){const _0x5ae926=_0x5e23b9['results']['filter'](_0x3a0d7a=>!_0x3a0d7a['success']&&_0x3a0d7a['error']);_0x5ae926['length']>0x0&&(_0x3824d0=_0x5ae926[0x0]['error']);}throw new Error(_0x3824d0);}return await _0x735233['json']();},async 'syncRepos'(_0x3152eb){if(!_0x3152eb)throw new Error('Task\x20ID\x20is\x20required');const _0x2ae0c0=await fetch(API_BASE+'/tasks/'+_0x3152eb+'/sync-repos',{'method':'POST'});if(!_0x2ae0c0['ok']){const _0x4d8f99=await _0x2ae0c0['json']()['catch'](()=>({}));throw new Error(_0x4d8f99['error']||_0x4d8f99['message']||'Failed\x20to\x20sync\x20repositories:\x20'+_0x2ae0c0['statusText']);}return await _0x2ae0c0['json']();},async 'getIbmiSyncInfo'(_0x2062ba){if(!_0x2062ba)throw new Error('Task\x20ID\x20is\x20required');const _0x3a1bbf=await fetch(API_BASE+'/tasks/'+_0x2062ba+'/ibmi-sync-info');if(!_0x3a1bbf['ok']){const _0x50df7c=await _0x3a1bbf['json']()['catch'](()=>({}));throw new Error(_0x50df7c['error']||_0x50df7c['message']||'Failed\x20to\x20fetch\x20sync\x20info');}return await _0x3a1bbf['json']();},async 'getSyncFiles'(_0x2567a0){if(!_0x2567a0)throw new Error('Task\x20ID\x20is\x20required');const _0x407497=await fetch(API_BASE+'/tasks/'+_0x2567a0+'/sync-to-ibmi/files');if(!_0x407497['ok']){const _0x499cff=await _0x407497['json']()['catch'](()=>({}));throw new Error(_0x499cff['error']||_0x499cff['message']||'Failed\x20to\x20get\x20sync\x20files');}return await _0x407497['json']();},async 'syncToIbmi'(_0xf31cb5,_0x583f69,_0x4693f=null,_0x336454=null,_0x29a3d7=null){if(!_0xf31cb5)throw new Error('Task\x20ID\x20is\x20required');const _0x24a9b8={'library':_0x583f69};if(_0x4693f)_0x24a9b8['user']=_0x4693f;if(_0x336454)_0x24a9b8['password']=_0x336454;if(_0x29a3d7)_0x24a9b8['files']=_0x29a3d7;const _0x19d8b2=await fetch(API_BASE+'/tasks/'+_0xf31cb5+'/sync-to-ibmi',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x24a9b8)});if(!_0x19d8b2['ok']){const _0xbd17dd=await _0x19d8b2['json']()['catch'](()=>({}));throw new Error(_0xbd17dd['error']||_0xbd17dd['message']||'Sync\x20failed');}return await _0x19d8b2['json']();},async 'getIbmiSyncLog'(_0x4a0aea){if(!_0x4a0aea)throw new Error('Task\x20ID\x20is\x20required');const _0x3f7528=await fetch(API_BASE+'/tasks/'+_0x4a0aea+'/ibmi-sync-log');if(!_0x3f7528['ok']){const _0x138710=await _0x3f7528['json']()['catch'](()=>({}));throw new Error(_0x138710['error']||_0x138710['message']||'Failed\x20to\x20fetch\x20sync\x20log');}return await _0x3f7528['json']();},async 'pullChanges'(_0x8acb91){if(!_0x8acb91)throw new Error('Task\x20ID\x20is\x20required');const _0x6fdb18=await fetch(API_BASE+'/tasks/'+_0x8acb91+'/pull-changes',{'method':'POST'});if(!_0x6fdb18['ok']){const _0x217413=await _0x6fdb18['json']()['catch'](()=>({}));throw new Error(_0x217413['error']||_0x217413['message']||'Failed\x20to\x20pull\x20changes:\x20'+_0x6fdb18['statusText']);}return await _0x6fdb18['json']();},async 'readFile'(_0x4c43fc,_0x137832){if(!_0x4c43fc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x137832)throw new Error('File\x20path\x20is\x20required');const _0x595414=await fetch(API_BASE+'/tasks/'+_0x4c43fc+'/files?path='+encodeURIComponent(_0x137832));if(!_0x595414['ok']){const _0x4441c8=await _0x595414['json']()['catch'](()=>({}));throw new Error(_0x4441c8['error']||_0x4441c8['message']||'Failed\x20to\x20read\x20file:\x20'+_0x595414['statusText']);}return await _0x595414['json']();},'getTaskFileDownloadUrl'(_0x25f8dc,_0x43de12){if(!_0x25f8dc)throw new Error('Task\x20ID\x20is\x20required');if(!_0x43de12)throw new Error('File\x20path\x20is\x20required');return API_BASE+'/tasks/'+_0x25f8dc+'/files/download?path='+encodeURIComponent(_0x43de12);},async 'writeFile'(_0x3dd1b0,_0x258053,_0x37c151){if(!_0x3dd1b0)throw new Error('Task\x20ID\x20is\x20required');if(!_0x258053)throw new Error('File\x20path\x20is\x20required');if(_0x37c151===undefined)throw new Error('Content\x20is\x20required');const _0x35b566=await fetch(API_BASE+'/tasks/'+_0x3dd1b0+'/files',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x258053,'content':_0x37c151})});if(!_0x35b566['ok']){const _0x521f52=await _0x35b566['json']()['catch'](()=>({}));throw new Error(_0x521f52['error']||_0x521f52['message']||'Failed\x20to\x20write\x20file:\x20'+_0x35b566['statusText']);}return await _0x35b566['json']();},async 'uploadTaskFiles'(_0x467daa,_0x1fdaa9,_0x321027){if(!_0x467daa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1fdaa9)throw new Error('Target\x20directory\x20is\x20required');if(!_0x321027||_0x321027['length']===0x0)throw new Error('At\x20least\x20one\x20file\x20is\x20required');const _0x44587b=new FormData();_0x44587b['append']('targetDir',_0x1fdaa9);for(const _0x44268a of _0x321027){_0x44587b['append']('files',_0x44268a,_0x44268a['name']);}const _0x2392a8=await fetch(API_BASE+'/tasks/'+_0x467daa+'/files/upload',{'method':'POST','body':_0x44587b});if(!_0x2392a8['ok']){const _0x4ef3d8=await _0x2392a8['json']()['catch'](()=>({}));throw new Error(_0x4ef3d8['error']||_0x4ef3d8['message']||'Failed\x20to\x20upload\x20files:\x20'+_0x2392a8['statusText']);}return await _0x2392a8['json']();},async 'createDirectory'(_0x1e1e5d,_0x4642b2){if(!_0x1e1e5d)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4642b2)throw new Error('Directory\x20path\x20is\x20required');const _0x1facd5=await fetch(API_BASE+'/tasks/'+_0x1e1e5d+'/files/directory',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x4642b2})});if(!_0x1facd5['ok']){const _0xdd7cca=await _0x1facd5['json']()['catch'](()=>({}));throw new Error(_0xdd7cca['error']||_0xdd7cca['message']||'Failed\x20to\x20create\x20directory:\x20'+_0x1facd5['statusText']);}return await _0x1facd5['json']();},async 'renamePath'(_0x16ecfa,_0x181a43,_0x5c7186){if(!_0x16ecfa)throw new Error('Task\x20ID\x20is\x20required');if(!_0x181a43)throw new Error('Source\x20path\x20is\x20required');if(!_0x5c7186)throw new Error('Destination\x20path\x20is\x20required');const _0x3920fb=await fetch(API_BASE+'/tasks/'+_0x16ecfa+'/files/rename',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'oldPath':_0x181a43,'newPath':_0x5c7186})});if(!_0x3920fb['ok']){const _0x3e142e=await _0x3920fb['json']()['catch'](()=>({}));throw new Error(_0x3e142e['error']||_0x3e142e['message']||'Failed\x20to\x20rename\x20path:\x20'+_0x3920fb['statusText']);}return await _0x3920fb['json']();},async 'deleteFile'(_0xee2787,_0x1374bc){if(!_0xee2787)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1374bc)throw new Error('File\x20path\x20is\x20required');const _0x5c3171=await fetch(API_BASE+'/tasks/'+_0xee2787+'/files?path='+encodeURIComponent(_0x1374bc),{'method':'DELETE'});if(!_0x5c3171['ok']){const _0x466448=await _0x5c3171['json']()['catch'](()=>({}));throw new Error(_0x466448['error']||_0x466448['message']||'Failed\x20to\x20delete\x20file:\x20'+_0x5c3171['statusText']);}return await _0x5c3171['json']();},async 'deleteDirectory'(_0x59df9f,_0x312c9d){if(!_0x59df9f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x312c9d)throw new Error('Directory\x20path\x20is\x20required');const _0x28702e=await fetch(API_BASE+'/tasks/'+_0x59df9f+'/files/directory?path='+encodeURIComponent(_0x312c9d),{'method':'DELETE'});if(!_0x28702e['ok']){const _0x3b5926=await _0x28702e['json']()['catch'](()=>({}));throw new Error(_0x3b5926['error']||_0x3b5926['message']||'Failed\x20to\x20delete\x20directory:\x20'+_0x28702e['statusText']);}return await _0x28702e['json']();},async 'discardFile'(_0x328e85,_0x2d24dc,_0x24afee){if(!_0x328e85)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2d24dc)throw new Error('File\x20path\x20is\x20required');if(!_0x24afee)throw new Error('Repository\x20path\x20is\x20required');const _0xc3d828=await fetch(API_BASE+'/tasks/'+_0x328e85+'/files/discard',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'path':_0x2d24dc,'repoPath':_0x24afee})});if(!_0xc3d828['ok']){const _0x54d44a=await _0xc3d828['json']()['catch'](()=>({}));throw new Error(_0x54d44a['error']||_0x54d44a['message']||'Failed\x20to\x20discard\x20changes:\x20'+_0xc3d828['statusText']);}return await _0xc3d828['json']();},async 'followUpTask'(_0x489994,_0x4e096c={}){if(!_0x489994)throw new Error('Task\x20ID\x20is\x20required');if(!_0x4e096c['instructions'])throw new Error('Follow-up\x20instructions\x20are\x20required');let _0x6d6213,_0x3c04d0={};if(_0x4e096c['files']&&_0x4e096c['files']['length']>0x0){const _0x61cfa=new FormData();_0x61cfa['append']('instructions',_0x4e096c['instructions']);for(const _0x305b9f of _0x4e096c['files']){_0x61cfa['append']('attachments',_0x305b9f);}_0x6d6213=_0x61cfa;}else _0x3c04d0['Content-Type']='application/json',_0x6d6213=JSON['stringify']({'instructions':_0x4e096c['instructions']});const _0x12589e=await fetch(API_BASE+'/tasks/'+_0x489994+'/follow-up',{'method':'POST','headers':_0x3c04d0,'body':_0x6d6213});if(!_0x12589e['ok']){const _0x13ebc1=await _0x12589e['json']()['catch'](()=>({}));throw new Error(_0x13ebc1['error']||_0x13ebc1['message']||'Failed\x20to\x20submit\x20follow-up:\x20'+_0x12589e['statusText']);}return await _0x12589e['json']();},async 'getTaskRewindPoints'(_0x476d9d){if(!_0x476d9d)throw new Error('Task\x20ID\x20is\x20required');const _0x2bb8cf=await fetch(API_BASE+'/tasks/'+_0x476d9d+'/rewind-points');if(!_0x2bb8cf['ok']){const _0x333bb3=await _0x2bb8cf['json']()['catch'](()=>({}));throw new Error(_0x333bb3['error']||_0x333bb3['message']||'Failed\x20to\x20fetch\x20rewind\x20points:\x20'+_0x2bb8cf['statusText']);}return await _0x2bb8cf['json']();},async 'rewindTask'(_0xa38cf8,_0x45121d={}){if(!_0xa38cf8)throw new Error('Task\x20ID\x20is\x20required');const _0x461fa5=Number['isInteger'](_0x45121d['targetFollowUpCount'])?_0x45121d['targetFollowUpCount']:0x0,_0x20d2e9={'targetFollowUpCount':_0x461fa5};typeof _0x45121d['instructions']==='string'&&_0x45121d['instructions']['trim']()&&(_0x20d2e9['instructions']=_0x45121d['instructions']['trim']());typeof _0x45121d['rewindFiles']==='boolean'&&(_0x20d2e9['rewindFiles']=_0x45121d['rewindFiles']);const _0x326d1c=await fetch(API_BASE+'/tasks/'+_0xa38cf8+'/rewind',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x20d2e9)});if(!_0x326d1c['ok']){const _0x475d58=await _0x326d1c['json']()['catch'](()=>({}));throw new Error(_0x475d58['error']||_0x475d58['message']||'Failed\x20to\x20rewind\x20task:\x20'+_0x326d1c['statusText']);}return await _0x326d1c['json']();},async 'login'(_0x49bdca,_0x4d8484){const _0x25b26a=await fetch(API_BASE+'/auth/login',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'username':_0x49bdca,'password':_0x4d8484})});if(!_0x25b26a['ok']){const _0x54b255=await _0x25b26a['json']();throw new Error(_0x54b255['message']||'Login\x20failed');}return await _0x25b26a['json']();},async 'logout'(){const _0x55d935=await fetch(API_BASE+'/auth/logout',{'method':'POST'});if(!_0x55d935['ok']){const _0x127bf9=await _0x55d935['json']();throw new Error(_0x127bf9['message']||'Logout\x20failed');}return await _0x55d935['json']();},async 'getCurrentUser'(){const _0x520629=await fetch(API_BASE+'/auth/me');if(!_0x520629['ok'])throw new Error('Not\x20authenticated');const _0x4563ca=await _0x520629['json']();return _0x4563ca['user'];},async 'getRolesInfo'(){const _0x2a5157=await fetch(API_BASE+'/users/roles');if(!_0x2a5157['ok']){const _0x429316=await _0x2a5157['json']();throw new Error(_0x429316['message']||'Failed\x20to\x20get\x20roles\x20info');}return await _0x2a5157['json']();},async 'getUsers'(){const _0x50bbb0=await fetch(API_BASE+'/users');if(!_0x50bbb0['ok']){const _0x10a914=await _0x50bbb0['json']();throw new Error(_0x10a914['message']||'Failed\x20to\x20get\x20users');}return await _0x50bbb0['json']();},async 'getUser'(_0x7a8272){const _0xc15953=await fetch(API_BASE+'/users/'+_0x7a8272);if(!_0xc15953['ok']){const _0x559d58=await _0xc15953['json']();throw new Error(_0x559d58['message']||'Failed\x20to\x20get\x20user');}return await _0xc15953['json']();},async 'createUser'(_0x38bf16){const _0x121814=await fetch(API_BASE+'/users',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x38bf16)});if(!_0x121814['ok']){const _0x4e6ffc=await _0x121814['json']();throw new Error(_0x4e6ffc['message']||'Failed\x20to\x20create\x20user');}return await _0x121814['json']();},async 'updateUser'(_0x301578,_0x4e163c){const _0xc48e73=await fetch(API_BASE+'/users/'+_0x301578,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4e163c)});if(!_0xc48e73['ok']){const _0x4d9c8b=await _0xc48e73['json']();throw new Error(_0x4d9c8b['message']||'Failed\x20to\x20update\x20user');}return await _0xc48e73['json']();},async 'deleteUser'(_0x5b0ede){const _0x4ef0fa=await fetch(API_BASE+'/users/'+_0x5b0ede,{'method':'DELETE'});if(!_0x4ef0fa['ok']){const _0x3d3ef8=await _0x4ef0fa['json']();throw new Error(_0x3d3ef8['message']||'Failed\x20to\x20delete\x20user');}return await _0x4ef0fa['json']();},async 'stopAllContainers'(){const _0xf45581=await fetch(API_BASE+'/health/docker/stop-all',{'method':'POST'}),_0x318669=await _0xf45581['json']()['catch'](()=>({}));if(!_0xf45581['ok'])throw new Error(_0x318669['message']||_0x318669['error']||'Failed\x20to\x20stop\x20containers');return _0x318669;},async 'removeStoppedContainers'(){const _0x1e0c43=await fetch(API_BASE+'/health/docker/remove-stopped',{'method':'POST'}),_0xa1316a=await _0x1e0c43['json']()['catch'](()=>({}));if(!_0x1e0c43['ok'])throw new Error(_0xa1316a['message']||_0xa1316a['error']||'Failed\x20to\x20remove\x20stopped\x20containers');return _0xa1316a;},async 'pruneDockerResources'(){const _0x2fcb94=await fetch(API_BASE+'/health/docker/prune',{'method':'POST'}),_0x4ed6fe=await _0x2fcb94['json']()['catch'](()=>({}));if(!_0x2fcb94['ok'])throw new Error(_0x4ed6fe['message']||_0x4ed6fe['error']||'Failed\x20to\x20prune\x20Docker\x20resources');return _0x4ed6fe;},async 'getUpdateSettings'(){const _0x38e107=await fetch(API_BASE+'/health/update-settings'),_0x3e423b=await _0x38e107['json']()['catch'](()=>({}));if(!_0x38e107['ok'])throw new Error(_0x3e423b['message']||_0x3e423b['error']||'Failed\x20to\x20load\x20update\x20settings');return _0x3e423b;},async 'applyServerUpdate'(_0x3974a1){const _0x4f833e=await fetch(API_BASE+'/health/update',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'version':_0x3974a1})}),_0x154aec=await _0x4f833e['json']()['catch'](()=>({}));if(!_0x4f833e['ok']){const _0x2fab46=new Error(_0x154aec['message']||_0x154aec['error']||'Failed\x20to\x20apply\x20server\x20update');if(_0x154aec['output']!==undefined)_0x2fab46['output']=_0x154aec['output'];if(_0x154aec['error']!==undefined)_0x2fab46['commandError']=_0x154aec['error'];throw _0x2fab46;}return _0x154aec;},async 'restartServer'(){const _0x7d61c5=await fetch(API_BASE+'/health/restart',{'method':'POST'}),_0x1420c1=await _0x7d61c5['json']()['catch'](()=>({}));if(!_0x7d61c5['ok'])throw new Error(_0x1420c1['message']||_0x1420c1['error']||'Failed\x20to\x20restart\x20server');return _0x1420c1;},async 'createPasswordToken'(_0x376cff,_0x550e4c='setup',_0x50198c=![]){const _0x373348=await fetch(API_BASE+'/password/create-token',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x376cff,'type':_0x550e4c,'sendEmail':_0x50198c})});if(!_0x373348['ok']){const _0x3e9059=await _0x373348['json']();throw new Error(_0x3e9059['error']||'Failed\x20to\x20create\x20password\x20token');}return await _0x373348['json']();},async 'getEmailConfig'(){const _0x27bc3e=await fetch(API_BASE+'/password/email-config');if(!_0x27bc3e['ok']){const _0x14b94c=await _0x27bc3e['json']();throw new Error(_0x14b94c['error']||'Failed\x20to\x20get\x20email\x20configuration');}return await _0x27bc3e['json']();},async 'updateTaskName'(_0x24798a,_0xdbbdbb){const _0x330321=await fetch(API_BASE+'/tasks/'+_0x24798a,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'name':_0xdbbdbb})});if(!_0x330321['ok']){const _0x28d50a=await _0x330321['json']();throw new Error(_0x28d50a['error']||'Failed\x20to\x20update\x20task\x20name');}return await _0x330321['json']();},async 'pinTask'(_0x2307b8,_0x2646e7,_0x5c5d2a=null){if(!_0x2307b8)throw new Error('Task\x20ID\x20is\x20required');const _0x1ff2c2={'pinned':_0x2646e7};_0x5c5d2a&&_0x5c5d2a['length']>0x0&&(_0x1ff2c2['additionalTaskIds']=_0x5c5d2a);const _0x4ea7cf=await fetch(API_BASE+'/tasks/'+_0x2307b8+'/pin',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1ff2c2)});if(!_0x4ea7cf['ok']){const _0x2814c4=await _0x4ea7cf['json']();throw new Error(_0x2814c4['error']||'Failed\x20to\x20pin\x20task');}return await _0x4ea7cf['json']();},async 'setTaskWinner'(_0xffd0c2,_0x585fef,_0xe2fa1c=[]){if(!_0xffd0c2)throw new Error('Task\x20ID\x20is\x20required');const _0x59cc95=await fetch(API_BASE+'/tasks/'+_0xffd0c2+'/winner',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isWinner':_0x585fef,'siblings':_0xe2fa1c})});if(!_0x59cc95['ok']){const _0x386605=await _0x59cc95['json']();throw new Error(_0x386605['error']||'Failed\x20to\x20update\x20winner\x20status');}return await _0x59cc95['json']();},async 'setTaskLoser'(_0x2ee4a5,_0x540075){if(!_0x2ee4a5)throw new Error('Task\x20ID\x20is\x20required');const _0x5dbe7a=await fetch(API_BASE+'/tasks/'+_0x2ee4a5+'/loser',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'isLoser':_0x540075})});if(!_0x5dbe7a['ok']){const _0xccf02d=await _0x5dbe7a['json']();throw new Error(_0xccf02d['error']||'Failed\x20to\x20update\x20loser\x20status');}return await _0x5dbe7a['json']();},async 'createTaskGroup'(_0x40b237){const _0x439131=await fetch(API_BASE+'/tasks/groups',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x40b237)});if(!_0x439131['ok']){const _0x3e914f=await _0x439131['json']();throw new Error(_0x3e914f['error']||'Failed\x20to\x20create\x20task\x20group');}return await _0x439131['json']();},async 'getTaskGroups'(_0x173153={}){const _0x599943=new URLSearchParams();if(_0x173153['userId'])_0x599943['set']('userId',String(_0x173153['userId']));if(_0x173153['status'])_0x599943['set']('status',String(_0x173153['status']));if(_0x173153['limit'])_0x599943['set']('limit',String(_0x173153['limit']));const _0x1fbe60=API_BASE+'/tasks/groups'+(_0x599943['toString']()?'?'+_0x599943['toString']():''),_0x3178f8=await fetch(_0x1fbe60);if(!_0x3178f8['ok'])throw new Error('Failed\x20to\x20fetch\x20task\x20groups');return await _0x3178f8['json']();},async 'getTaskGroup'(_0x36e89d){const _0x2d3a28=await fetch(API_BASE+'/tasks/groups/'+_0x36e89d);if(!_0x2d3a28['ok']){const _0x89dbbf=await _0x2d3a28['json']();throw new Error(_0x89dbbf['error']||'Failed\x20to\x20fetch\x20task\x20group');}return await _0x2d3a28['json']();},async 'updateTaskGroup'(_0xd750b3,_0x3b1fe6,_0x3985da){const _0x1acbc1=await fetch(API_BASE+'/tasks/'+_0xd750b3+'/group',{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'groupId':_0x3b1fe6,'groupIndex':_0x3985da})});if(!_0x1acbc1['ok']){const _0x2118a1=await _0x1acbc1['json']();throw new Error(_0x2118a1['error']||'Failed\x20to\x20update\x20task\x20group');}return await _0x1acbc1['json']();},async 'removeTaskFromGroup'(_0x5f03f3){return this['updateTaskGroup'](_0x5f03f3,null,null);},async 'deleteTaskGroup'(_0x5b6eef,_0x290895=![]){const _0x27ff31=_0x290895?'?deleteTasks=true':'',_0x32b748=await fetch(API_BASE+'/tasks/groups/'+_0x5b6eef+_0x27ff31,{'method':'DELETE'});if(!_0x32b748['ok']){const _0x37549d=await _0x32b748['json']();throw new Error(_0x37549d['error']||'Failed\x20to\x20delete\x20task\x20group');}return!![];},async 'setGroupWinner'(_0x31825f,_0x3d387b){const _0x4412fa=await fetch(API_BASE+'/tasks/groups/'+_0x31825f+'/winner',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'taskId':_0x3d387b})});if(!_0x4412fa['ok']){const _0x2783fd=await _0x4412fa['json']();throw new Error(_0x2783fd['error']||'Failed\x20to\x20set\x20group\x20winner');}return await _0x4412fa['json']();},'generateGroupId'(){return'g-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);},async 'getComments'(_0x3b06b0){if(!_0x3b06b0)throw new Error('Task\x20ID\x20is\x20required');const _0x5256fc=await fetch(API_BASE+'/tasks/'+_0x3b06b0+'/comments');if(!_0x5256fc['ok']){const _0x4f68f8=await _0x5256fc['json']()['catch'](()=>({}));throw new Error(_0x4f68f8['error']||'Failed\x20to\x20get\x20comments');}return await _0x5256fc['json']();},async 'addComment'(_0x30c6c1,_0x2e302d){if(!_0x30c6c1)throw new Error('Task\x20ID\x20is\x20required');if(!_0x2e302d)throw new Error('Comment\x20content\x20is\x20required');const _0x18248d=await fetch(API_BASE+'/tasks/'+_0x30c6c1+'/comments',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x2e302d})});if(!_0x18248d['ok']){const _0x20255c=await _0x18248d['json']()['catch'](()=>({}));throw new Error(_0x20255c['error']||'Failed\x20to\x20add\x20comment');}return await _0x18248d['json']();},async 'updateComment'(_0x4ff69f,_0x5833fb,_0x355563){if(!_0x4ff69f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x5833fb)throw new Error('Comment\x20ID\x20is\x20required');if(!_0x355563)throw new Error('Comment\x20content\x20is\x20required');const _0x766f48=await fetch(API_BASE+'/tasks/'+_0x4ff69f+'/comments/'+_0x5833fb,{'method':'PATCH','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x355563})});if(!_0x766f48['ok']){const _0x25c95e=await _0x766f48['json']()['catch'](()=>({}));throw new Error(_0x25c95e['error']||'Failed\x20to\x20update\x20comment');}return await _0x766f48['json']();},async 'deleteComment'(_0x16f43f,_0x1c08ef){if(!_0x16f43f)throw new Error('Task\x20ID\x20is\x20required');if(!_0x1c08ef)throw new Error('Comment\x20ID\x20is\x20required');const _0x595b9a=await fetch(API_BASE+'/tasks/'+_0x16f43f+'/comments/'+_0x1c08ef,{'method':'DELETE'});if(!_0x595b9a['ok']){const _0x3e97c5=await _0x595b9a['json']()['catch'](()=>({}));throw new Error(_0x3e97c5['error']||'Failed\x20to\x20delete\x20comment');}return await _0x595b9a['json']();},async 'createObjective'(_0x495f7d){const _0x548e6b={'objective':!![],'name':_0x495f7d['name']||'','environment':_0x495f7d['environment']||null,'agents':_0x495f7d['agents']||[],'branches':_0x495f7d['branches']||{},'isPinned':_0x495f7d['isPinned']||![],'parentObjectiveId':_0x495f7d['parentObjectiveId']||null,'env_vars':_0x495f7d['envVars']||{},'parameters':{'instructions':_0x495f7d['instructions']||''},'files':_0x495f7d['files']||[],'jira':_0x495f7d['jira']||null};return this['createTask'](_0x548e6b);},async 'updateObjective'(_0x51ebdd,_0x545f35,_0x450ba9=[],_0x3108e3=[]){let _0x242aa5,_0x2590ee={};const _0x20beec={..._0x545f35};_0x3108e3&&_0x3108e3['length']>0x0&&(_0x20beec['removeAttachments']=_0x3108e3);if(_0x450ba9&&_0x450ba9['length']>0x0){const _0x481ec4=new FormData();for(const [_0x52defd,_0x1cf4b3]of Object['entries'](_0x20beec)){if(_0x1cf4b3==null)continue;typeof _0x1cf4b3==='object'?_0x481ec4['append'](_0x52defd,JSON['stringify'](_0x1cf4b3)):_0x481ec4['append'](_0x52defd,String(_0x1cf4b3));}for(const _0x22718f of _0x450ba9){_0x481ec4['append']('attachments',_0x22718f);}_0x242aa5=_0x481ec4;}else _0x2590ee['Content-Type']='application/json',_0x242aa5=JSON['stringify'](_0x20beec);const _0x532bdb=await fetch(API_BASE+'/tasks/'+_0x51ebdd,{'method':'PATCH','headers':_0x2590ee,'body':_0x242aa5});if(!_0x532bdb['ok']){const _0x8aad82=await _0x532bdb['json']();throw new Error(_0x8aad82['error']||'Failed\x20to\x20update\x20objective');}return await _0x532bdb['json']();},async 'deleteObjective'(_0x17dc75){return this['deleteTask'](_0x17dc75);},async 'launchObjective'(_0x1613b0,_0x2631a7={}){const _0x51bfe3=await fetch(API_BASE+'/tasks/'+_0x1613b0+'/launch',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2631a7)});if(!_0x51bfe3['ok']){const _0x48dfed=await _0x51bfe3['json']();throw new Error(_0x48dfed['error']||'Failed\x20to\x20launch\x20objective');}return await _0x51bfe3['json']();},async 'getObjectiveAttachments'(_0x89bf12){return this['getTaskAttachments'](_0x89bf12);},async 'createJudgeTask'({environment:_0x28a19e,judgeAgent:_0x4ef39a,groupId:_0x3e6094,taskIds:_0x4e8874,judgeCustomInstructions:_0x3b4f93,isPinned:_0x4eaaa2}){const _0x78fb42=await fetch(API_BASE+'/tasks/judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x28a19e,'judgeAgent':_0x4ef39a,'groupId':_0x3e6094,'taskIds':_0x4e8874,'judgeCustomInstructions':_0x3b4f93,'isPinned':_0x4eaaa2})});if(!_0x78fb42['ok']){const _0x119e8a=await _0x78fb42['json']();throw new Error(_0x119e8a['error']||'Failed\x20to\x20create\x20judge\x20task');}return await _0x78fb42['json']();},async 'getJudgeTasks'(_0x5b6d7e){const _0x4ae575=await fetch(API_BASE+'/tasks/judge?groupId='+encodeURIComponent(_0x5b6d7e));if(!_0x4ae575['ok']){const _0x3f77f8=await _0x4ae575['json']();throw new Error(_0x3f77f8['error']||'Failed\x20to\x20fetch\x20judge\x20tasks');}return await _0x4ae575['json']();},async 'sendJudgeFeedbackAsFollowUp'(_0x1e90cb,_0x552549,_0x30579b=''){const _0x2fbce3=await fetch(API_BASE+'/tasks/'+_0x1e90cb+'/follow-up-from-judge',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'judgeTaskId':_0x552549,'customPreamble':_0x30579b})});if(!_0x2fbce3['ok']){const _0x371f34=await _0x2fbce3['json']();throw new Error(_0x371f34['error']||'Failed\x20to\x20send\x20judge\x20feedback');}return await _0x2fbce3['json']();},async 'getJiraConfig'(){const _0x4955d6=await fetch(API_BASE+'/jira/config');if(!_0x4955d6['ok'])throw new Error('Failed\x20to\x20get\x20Jira\x20configuration');return await _0x4955d6['json']();},async 'getJiraIssue'(_0x201b6e){const _0x18ba73=await fetch(API_BASE+'/jira/issues/'+_0x201b6e);if(!_0x18ba73['ok']){const _0x41ee87=await _0x18ba73['json']()['catch'](()=>({}));throw new Error(_0x41ee87['message']||'Failed\x20to\x20fetch\x20Jira\x20issue:\x20'+_0x18ba73['statusText']);}return await _0x18ba73['json']();},async 'searchJiraIssues'(_0x3173bf,_0x417b9c=0x14){const _0x471bbf=await fetch(API_BASE+'/jira/search',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'query':_0x3173bf,'maxResults':_0x417b9c})});if(!_0x471bbf['ok']){const _0x57e5d4=await _0x471bbf['json']()['catch'](()=>({}));throw new Error(_0x57e5d4['message']||'Failed\x20to\x20search\x20Jira\x20issues:\x20'+_0x471bbf['statusText']);}return await _0x471bbf['json']();},async 'postJiraComment'(_0x49a07f,_0x5e15d9){const _0x1f2193=await fetch(API_BASE+'/jira/issues/'+_0x49a07f+'/comment',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'comment':_0x5e15d9})});if(!_0x1f2193['ok']){const _0x5ebf41=await _0x1f2193['json']()['catch'](()=>({}));throw new Error(_0x5ebf41['message']||'Failed\x20to\x20post\x20comment\x20to\x20Jira:\x20'+_0x1f2193['statusText']);}return await _0x1f2193['json']();},async 'getJiraComments'(_0xc9c761){const _0x33ad20=await fetch(API_BASE+'/jira/issues/'+_0xc9c761+'/comments');if(!_0x33ad20['ok']){const _0x21f74d=await _0x33ad20['json']()['catch'](()=>({}));throw new Error(_0x21f74d['message']||'Failed\x20to\x20fetch\x20Jira\x20comments:\x20'+_0x33ad20['statusText']);}return await _0x33ad20['json']();},async 'promptParameter'({environment:_0x2b2bb8,command:_0x1ea5ec,parser:parser='json'}){const _0x4e42a3=await fetch(API_BASE+'/prompt-parameter',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'environment':_0x2b2bb8,'command':_0x1ea5ec,'parser':parser})});if(!_0x4e42a3['ok']){const _0x612e8=await _0x4e42a3['json']()['catch'](()=>({}));throw new Error(_0x612e8['message']||_0x612e8['error']||'Failed\x20to\x20fetch\x20prompt\x20choices:\x20'+_0x4e42a3['statusText']);}return await _0x4e42a3['json']();},async 'promptParameterStream'(_0x34d05d,_0x98551a){const _0x260b00=await fetch(API_BASE+'/prompt-parameter/stream',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x34d05d)});if(!_0x260b00['ok'])throw new Error('Failed\x20to\x20start\x20prompt\x20stream:\x20'+_0x260b00['statusText']);const _0x269e74=_0x260b00['body']['getReader'](),_0x26f819=new TextDecoder();let _0xb58b1b='';return new Promise((_0x4f9347,_0x2c2ef4)=>{const _0x252880=async()=>{try{const {done:_0x365220,value:_0x3a04b8}=await _0x269e74['read']();if(_0x365220)return;_0xb58b1b+=_0x26f819['decode'](_0x3a04b8,{'stream':!![]});const _0x43b31d=_0xb58b1b['split']('\x0a\x0a');_0xb58b1b=_0x43b31d['pop']()||'';for(const _0x2c00c1 of _0x43b31d){if(!_0x2c00c1['trim']())continue;const _0x481944=_0x2c00c1['split']('\x0a');let _0x2047de='message',_0x2a6dd5='';for(const _0x4e1308 of _0x481944){if(_0x4e1308['startsWith']('event:'))_0x2047de=_0x4e1308['substring'](0x6)['trim']();else _0x4e1308['startsWith']('data:')&&(_0x2a6dd5=_0x4e1308['substring'](0x5)['trim']());}if(!_0x2a6dd5)continue;try{const _0x50b80f=JSON['parse'](_0x2a6dd5);if(_0x2047de==='progress'&&_0x98551a)_0x98551a(_0x50b80f['stage'],_0x50b80f['message']);else{if(_0x2047de==='result'){_0x4f9347(_0x50b80f);return;}else{if(_0x2047de==='error'){let _0x5351bc=_0x50b80f['message']||_0x50b80f['error']||'Prompt\x20command\x20failed';_0x50b80f['rawOutput']&&(_0x5351bc+='\x0a\x0aRaw\x20output:\x0a'+_0x50b80f['rawOutput']);_0x2c2ef4(new Error(_0x5351bc));return;}}}}catch(_0x100ee8){console['error']('Failed\x20to\x20parse\x20SSE\x20event\x20data:',_0x100ee8),console['error']('Event\x20type:',_0x2047de),console['error']('Event\x20data:',_0x2a6dd5),console['error']('First\x20200\x20chars:',_0x2a6dd5['substring'](0x0,0xc8)),_0x2c2ef4(new Error('Failed\x20to\x20parse\x20SSE\x20data:\x20'+_0x100ee8['message']+'\x0a\x0aData:\x20'+_0x2a6dd5['substring'](0x0,0x1f4)));return;}}_0x252880();}catch(_0xa2648b){_0x2c2ef4(_0xa2648b);}};_0x252880();});},'getBaseUrl'(){return API_BASE;},async 'get'(_0x14d487){const _0x1f3bba=await fetch(''+API_BASE+_0x14d487);if(!_0x1f3bba['ok']){const _0x4eb522=await _0x1f3bba['json']()['catch'](()=>({'error':_0x1f3bba['statusText']})),_0x55b9c6=new Error(_0x4eb522['error']||_0x4eb522['message']||_0x1f3bba['statusText']);if(_0x4eb522['detail']!==undefined)_0x55b9c6['detail']=_0x4eb522['detail'];throw _0x55b9c6;}return await _0x1f3bba['json']();},async 'post'(_0x3b05f6,_0x1403a9){const _0x566cc9=await fetch(''+API_BASE+_0x3b05f6,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x1403a9)});if(!_0x566cc9['ok']){const _0x3e053d=await _0x566cc9['json']()['catch'](()=>({'error':_0x566cc9['statusText']})),_0x4b7cbe=new Error(_0x3e053d['error']||_0x3e053d['message']||_0x566cc9['statusText']);if(_0x3e053d['detail']!==undefined)_0x4b7cbe['detail']=_0x3e053d['detail'];throw _0x4b7cbe;}return await _0x566cc9['json']();},async 'put'(_0x16ebc3,_0x2730cd){const _0x131d7e=await fetch(''+API_BASE+_0x16ebc3,{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2730cd)});if(!_0x131d7e['ok']){const _0x3ad290=await _0x131d7e['json']()['catch'](()=>({'error':_0x131d7e['statusText']})),_0x2c8228=new Error(_0x3ad290['error']||_0x3ad290['message']||_0x131d7e['statusText']);if(_0x3ad290['detail']!==undefined)_0x2c8228['detail']=_0x3ad290['detail'];throw _0x2c8228;}return await _0x131d7e['json']();},async 'delete'(_0x589bc3,_0x3f2e65){const _0x35070f={'method':'DELETE'};_0x3f2e65&&(_0x35070f['headers']={'Content-Type':'application/json'},_0x35070f['body']=JSON['stringify'](_0x3f2e65));const _0x35c6be=await fetch(''+API_BASE+_0x589bc3,_0x35070f);if(!_0x35c6be['ok']){const _0x36fe00=await _0x35c6be['json']()['catch'](()=>({'error':_0x35c6be['statusText']})),_0x362c38=new Error(_0x36fe00['error']||_0x36fe00['message']||_0x35c6be['statusText']);if(_0x36fe00['detail']!==undefined)_0x362c38['detail']=_0x36fe00['detail'];throw _0x362c38;}return await _0x35c6be['json']();},async 'getSkills'(){const _0x127716=await fetch(API_BASE+'/skills');if(!_0x127716['ok'])throw new Error('Failed\x20to\x20fetch\x20skills:\x20'+_0x127716['statusText']);return await _0x127716['json']();},async 'getSkill'(_0x408e0d){const _0x53d4f0=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x408e0d));if(!_0x53d4f0['ok'])throw new Error('Failed\x20to\x20fetch\x20skill:\x20'+_0x53d4f0['statusText']);return await _0x53d4f0['json']();},async 'createSkill'(_0x25a0b2){const _0x5043c5=await fetch(API_BASE+'/skills',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x25a0b2)});if(!_0x5043c5['ok']){const _0x58b202=await _0x5043c5['json']()['catch'](()=>({'error':_0x5043c5['statusText']})),_0x236229=new Error(_0x58b202['error']||_0x58b202['message']||_0x5043c5['statusText']);if(_0x58b202['detail']!==undefined)_0x236229['detail']=_0x58b202['detail'];throw _0x236229;}return await _0x5043c5['json']();},async 'updateSkill'(_0x53192e,_0xce393f){const _0x86158e=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x53192e),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0xce393f)});if(!_0x86158e['ok']){const _0x63da52=await _0x86158e['json']()['catch'](()=>({'error':_0x86158e['statusText']})),_0x15adea=new Error(_0x63da52['error']||_0x63da52['message']||_0x86158e['statusText']);if(_0x63da52['detail']!==undefined)_0x15adea['detail']=_0x63da52['detail'];throw _0x15adea;}return await _0x86158e['json']();},async 'deleteSkill'(_0x15ebf8){const _0x232f17=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x15ebf8),{'method':'DELETE'});if(!_0x232f17['ok']){const _0x17d25b=await _0x232f17['json']()['catch'](()=>({'error':_0x232f17['statusText']})),_0x2cfb3a=new Error(_0x17d25b['error']||_0x17d25b['message']||_0x232f17['statusText']);if(_0x17d25b['detail']!==undefined)_0x2cfb3a['detail']=_0x17d25b['detail'];throw _0x2cfb3a;}return await _0x232f17['json']();},async 'getSkillFile'(_0x1552a0,_0x4f9952){const _0x417347=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1552a0)+'/files/'+_0x4f9952);if(!_0x417347['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20file:\x20'+_0x417347['statusText']);return await _0x417347['json']();},async 'saveSkillFile'(_0x23cb07,_0xdc8d0a,_0x4d9f59){const _0x251a20=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x23cb07)+'/files/'+_0xdc8d0a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'content':_0x4d9f59})});if(!_0x251a20['ok']){const _0x1f2a74=await _0x251a20['json']()['catch'](()=>({'error':_0x251a20['statusText']})),_0x39d00b=new Error(_0x1f2a74['error']||_0x1f2a74['message']||_0x251a20['statusText']);if(_0x1f2a74['detail']!==undefined)_0x39d00b['detail']=_0x1f2a74['detail'];throw _0x39d00b;}return await _0x251a20['json']();},async 'deleteSkillFile'(_0x1e9937,_0x1b78e5){const _0xcf7768=await fetch(API_BASE+'/skills/'+encodeURIComponent(_0x1e9937)+'/files/'+_0x1b78e5,{'method':'DELETE'});if(!_0xcf7768['ok']){const _0x12b9b7=await _0xcf7768['json']()['catch'](()=>({'error':_0xcf7768['statusText']})),_0x48a8ef=new Error(_0x12b9b7['error']||_0x12b9b7['message']||_0xcf7768['statusText']);if(_0x12b9b7['detail']!==undefined)_0x48a8ef['detail']=_0x12b9b7['detail'];throw _0x48a8ef;}return await _0xcf7768['json']();},async 'pullSkills'(){const _0x12c851=await fetch(API_BASE+'/skills/git/pull',{'method':'POST'});if(!_0x12c851['ok']){const _0xc622b0=await _0x12c851['json']()['catch'](()=>({'error':_0x12c851['statusText']})),_0x41753a=new Error(_0xc622b0['error']||_0xc622b0['message']||_0x12c851['statusText']);if(_0xc622b0['detail']!==undefined)_0x41753a['detail']=_0xc622b0['detail'];throw _0x41753a;}return await _0x12c851['json']();},async 'commitSkills'(_0x406947,_0x1e0798={}){const {push:push=!![],pullFirst:pullFirst=!![],scope:scope='skills'}=_0x1e0798,_0x279c56=await fetch(API_BASE+'/skills/git/commit',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'message':_0x406947,'push':push,'pullFirst':pullFirst,'scope':scope})});if(!_0x279c56['ok']){const _0x2003df=await _0x279c56['json']()['catch'](()=>({'error':_0x279c56['statusText']})),_0x34740f=new Error(_0x2003df['error']||_0x2003df['message']||_0x279c56['statusText']);if(_0x2003df['detail']!==undefined)_0x34740f['detail']=_0x2003df['detail'];throw _0x34740f;}return await _0x279c56['json']();},async 'discardSkillsChanges'(){const _0x4d1f01=await fetch(API_BASE+'/skills/git/discard',{'method':'POST'});if(!_0x4d1f01['ok']){const _0x5cae9c=await _0x4d1f01['json']()['catch'](()=>({'error':_0x4d1f01['statusText']})),_0x355799=new Error(_0x5cae9c['error']||_0x5cae9c['message']||_0x4d1f01['statusText']);if(_0x5cae9c['detail']!==undefined)_0x355799['detail']=_0x5cae9c['detail'];throw _0x355799;}return await _0x4d1f01['json']();},async 'getSkillCatalog'(){const _0x39218c=await fetch(API_BASE+'/external-skills/catalog');if(!_0x39218c['ok'])throw new Error('Failed\x20to\x20fetch\x20skill\x20catalog:\x20'+_0x39218c['statusText']);return await _0x39218c['json']();},async 'getImportedSkillsRegistry'(){const _0x205478=await fetch(API_BASE+'/external-skills/registry');if(!_0x205478['ok'])throw new Error('Failed\x20to\x20fetch\x20imported\x20skills\x20registry:\x20'+_0x205478['statusText']);return await _0x205478['json']();},async 'importCatalogSkill'(_0x23e1a5){const _0x410957=await fetch(API_BASE+'/external-skills/import/catalog',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'skillId':_0x23e1a5})});if(!_0x410957['ok']){const _0x8bcb78=await _0x410957['json']()['catch'](()=>({'error':_0x410957['statusText']})),_0x3cf808=new Error(_0x8bcb78['error']||_0x8bcb78['message']||_0x410957['statusText']);if(_0x8bcb78['detail']!==undefined)_0x3cf808['detail']=_0x8bcb78['detail'];throw _0x3cf808;}return await _0x410957['json']();},async 'importSkillFromGit'(_0x5487bb,_0x5f1109,_0x593d8f='main',_0x30a9c3=null){const _0x53cf26=await fetch(API_BASE+'/external-skills/import/git',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x5487bb,'skillPath':_0x5f1109,'branch':_0x593d8f,'skillId':_0x30a9c3})});if(!_0x53cf26['ok']){const _0x148487=await _0x53cf26['json']()['catch'](()=>({'error':_0x53cf26['statusText']})),_0x395fc0=new Error(_0x148487['error']||_0x148487['message']||_0x53cf26['statusText']);if(_0x148487['detail']!==undefined)_0x395fc0['detail']=_0x148487['detail'];throw _0x395fc0;}return await _0x53cf26['json']();},async 'probeMarketplace'(_0x97c56e,_0x122d9f='main'){const _0x33dbd3=await fetch(API_BASE+'/external-skills/probe-marketplace',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x97c56e,'branch':_0x122d9f})});if(!_0x33dbd3['ok']){const _0x5e52df=await _0x33dbd3['json']()['catch'](()=>({'error':_0x33dbd3['statusText']})),_0x3350f6=new Error(_0x5e52df['error']||_0x5e52df['message']||_0x33dbd3['statusText']);if(_0x5e52df['detail']!==undefined)_0x3350f6['detail']=_0x5e52df['detail'];throw _0x3350f6;}return await _0x33dbd3['json']();},async 'importMarketplaceBundle'(_0x21304a,_0x49f90a,_0x2a2e15,_0x254128=null){const _0x13a0c6=await fetch(API_BASE+'/external-skills/import/marketplace-bundle',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'repoUrl':_0x21304a,'branch':_0x49f90a,'bundleId':_0x2a2e15,'selectedSkills':_0x254128})});if(!_0x13a0c6['ok']){const _0x4384ae=await _0x13a0c6['json']()['catch'](()=>({'error':_0x13a0c6['statusText']})),_0x2362ae=new Error(_0x4384ae['error']||_0x4384ae['message']||_0x13a0c6['statusText']);if(_0x4384ae['detail']!==undefined)_0x2362ae['detail']=_0x4384ae['detail'];throw _0x2362ae;}return await _0x13a0c6['json']();},async 'importSkillFromFolder'(_0x1c57b7,_0x242d83=null){const _0x17238b=await fetch(API_BASE+'/external-skills/import/folder',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'folderPath':_0x1c57b7,'skillId':_0x242d83})});if(!_0x17238b['ok']){const _0x373f47=await _0x17238b['json']()['catch'](()=>({'error':_0x17238b['statusText']})),_0x18b584=new Error(_0x373f47['error']||_0x373f47['message']||_0x17238b['statusText']);if(_0x373f47['detail']!==undefined)_0x18b584['detail']=_0x373f47['detail'];throw _0x18b584;}return await _0x17238b['json']();},async 'importSkillFromNpm'(_0x3e570b,_0x5aaa27='latest',_0x7dda1c=null,_0x1dc2dc=null){const _0x4277cd=await fetch(API_BASE+'/external-skills/import/npm',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'packageName':_0x3e570b,'version':_0x5aaa27,'skillId':_0x7dda1c,'registry':_0x1dc2dc})});if(!_0x4277cd['ok']){const _0x89db58=await _0x4277cd['json']()['catch'](()=>({'error':_0x4277cd['statusText']})),_0x44f77a=new Error(_0x89db58['error']||_0x89db58['message']||_0x4277cd['statusText']);if(_0x89db58['detail']!==undefined)_0x44f77a['detail']=_0x89db58['detail'];throw _0x44f77a;}return await _0x4277cd['json']();},async 'checkSkillUpdates'(_0x159559){const _0x869386=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x159559)+'/check-updates',{'method':'POST'});if(!_0x869386['ok']){const _0x24a984=await _0x869386['json']()['catch'](()=>({'error':_0x869386['statusText']})),_0xad95c1=new Error(_0x24a984['error']||_0x24a984['message']||_0x869386['statusText']);if(_0x24a984['detail']!==undefined)_0xad95c1['detail']=_0x24a984['detail'];throw _0xad95c1;}return await _0x869386['json']();},async 'updateExternalSkill'(_0x78ddf8){const _0x531cfa=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x78ddf8)+'/update',{'method':'POST'});if(!_0x531cfa['ok']){const _0x326e4e=await _0x531cfa['json']()['catch'](()=>({'error':_0x531cfa['statusText']})),_0x3d3303=new Error(_0x326e4e['error']||_0x326e4e['message']||_0x531cfa['statusText']);if(_0x326e4e['detail']!==undefined)_0x3d3303['detail']=_0x326e4e['detail'];throw _0x3d3303;}return await _0x531cfa['json']();},async 'updateSkillFlags'(_0x3ed742,_0x4d375e){const _0x2eef7e=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x3ed742)+'/flags',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'flags':_0x4d375e})});if(!_0x2eef7e['ok']){const _0x502b17=await _0x2eef7e['json']()['catch'](()=>({'error':_0x2eef7e['statusText']})),_0x1579c5=new Error(_0x502b17['error']||_0x502b17['message']||_0x2eef7e['statusText']);if(_0x502b17['detail']!==undefined)_0x1579c5['detail']=_0x502b17['detail'];throw _0x1579c5;}return await _0x2eef7e['json']();},async 'removeFromImportedRegistry'(_0x2ede02){const _0x29284c=await fetch(API_BASE+'/external-skills/'+encodeURIComponent(_0x2ede02)+'/registry',{'method':'DELETE'});if(!_0x29284c['ok']){const _0x21ee20=await _0x29284c['json']()['catch'](()=>({'error':_0x29284c['statusText']})),_0xa22a52=new Error(_0x21ee20['error']||_0x21ee20['message']||_0x29284c['statusText']);if(_0x21ee20['detail']!==undefined)_0xa22a52['detail']=_0x21ee20['detail'];throw _0xa22a52;}return await _0x29284c['json']();},async 'getTeams'(){const _0x5c181c=await fetch(API_BASE+'/teams');if(!_0x5c181c['ok']){const _0x4fac36=await _0x5c181c['json']()['catch'](()=>({'message':_0x5c181c['statusText']}));throw new Error(_0x4fac36['message']||'Failed\x20to\x20get\x20teams');}return await _0x5c181c['json']();},async 'getTeam'(_0xfe4029){const _0x571daf=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0xfe4029));if(!_0x571daf['ok']){const _0x4efedd=await _0x571daf['json']()['catch'](()=>({'message':_0x571daf['statusText']}));throw new Error(_0x4efedd['message']||'Failed\x20to\x20get\x20team');}return await _0x571daf['json']();},async 'createTeam'(_0x470329){const _0x3fd96f=await fetch(API_BASE+'/teams',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x470329)});if(!_0x3fd96f['ok']){const _0x20e8da=await _0x3fd96f['json']()['catch'](()=>({'message':_0x3fd96f['statusText']}));throw new Error(_0x20e8da['message']||'Failed\x20to\x20create\x20team');}return await _0x3fd96f['json']();},async 'updateTeam'(_0x5e6ca3,_0x2d8711){const _0x429353=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x5e6ca3),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2d8711)});if(!_0x429353['ok']){const _0x328f8f=await _0x429353['json']()['catch'](()=>({'message':_0x429353['statusText']}));throw new Error(_0x328f8f['message']||'Failed\x20to\x20update\x20team');}return await _0x429353['json']();},async 'deleteTeam'(_0x1ef011){const _0x7c5e27=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x1ef011),{'method':'DELETE'});if(!_0x7c5e27['ok']){const _0x35cf6f=await _0x7c5e27['json']()['catch'](()=>({'message':_0x7c5e27['statusText']}));throw new Error(_0x35cf6f['message']||'Failed\x20to\x20delete\x20team');}return await _0x7c5e27['json']();},async 'addTeamMember'(_0x39a520,_0x2144ee){const _0x2e1358=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x39a520)+'/members',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'userId':_0x2144ee})});if(!_0x2e1358['ok']){const _0x599f03=await _0x2e1358['json']()['catch'](()=>({'message':_0x2e1358['statusText']}));throw new Error(_0x599f03['message']||'Failed\x20to\x20add\x20team\x20member');}return await _0x2e1358['json']();},async 'removeTeamMember'(_0x24a4bf,_0x5f73bb){const _0x48d35e=await fetch(API_BASE+'/teams/'+encodeURIComponent(_0x24a4bf)+'/members/'+encodeURIComponent(_0x5f73bb),{'method':'DELETE'});if(!_0x48d35e['ok']){const _0x49024a=await _0x48d35e['json']()['catch'](()=>({'message':_0x48d35e['statusText']}));throw new Error(_0x49024a['message']||'Failed\x20to\x20remove\x20team\x20member');}return await _0x48d35e['json']();},async 'getBindings'(_0x186c3e={}){const _0x3f8f70=new URLSearchParams();if(_0x186c3e['resource_type'])_0x3f8f70['set']('resource_type',_0x186c3e['resource_type']);if(_0x186c3e['resource_id'])_0x3f8f70['set']('resource_id',_0x186c3e['resource_id']);if(_0x186c3e['subject_type'])_0x3f8f70['set']('subject_type',_0x186c3e['subject_type']);if(_0x186c3e['subject_id'])_0x3f8f70['set']('subject_id',_0x186c3e['subject_id']);const _0x18a182=_0x3f8f70['toString'](),_0x5b3791=await fetch(API_BASE+'/bindings'+(_0x18a182?'?'+_0x18a182:''));if(!_0x5b3791['ok']){const _0x34cbfd=await _0x5b3791['json']()['catch'](()=>({'message':_0x5b3791['statusText']}));throw new Error(_0x34cbfd['message']||'Failed\x20to\x20get\x20bindings');}return await _0x5b3791['json']();},async 'createBinding'(_0x3df450){const _0x56cc7b=await fetch(API_BASE+'/bindings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x3df450)});if(!_0x56cc7b['ok']){const _0x5c2722=await _0x56cc7b['json']()['catch'](()=>({'message':_0x56cc7b['statusText']}));throw new Error(_0x5c2722['message']||'Failed\x20to\x20create\x20binding');}return await _0x56cc7b['json']();},async 'updateBinding'(_0x39f842,_0x4b2940){const _0x4810ba=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x39f842),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4b2940)});if(!_0x4810ba['ok']){const _0x6c5603=await _0x4810ba['json']()['catch'](()=>({'message':_0x4810ba['statusText']}));throw new Error(_0x6c5603['message']||'Failed\x20to\x20update\x20binding');}return await _0x4810ba['json']();},async 'deleteBinding'(_0x4d6095){const _0x47f4cc=await fetch(API_BASE+'/bindings/'+encodeURIComponent(_0x4d6095),{'method':'DELETE'});if(!_0x47f4cc['ok']){const _0x13689e=await _0x47f4cc['json']()['catch'](()=>({'message':_0x47f4cc['statusText']}));throw new Error(_0x13689e['message']||'Failed\x20to\x20delete\x20binding');}return await _0x47f4cc['json']();},async 'getRoleDefinitions'(){const _0x27fa26=await fetch(API_BASE+'/roles');if(!_0x27fa26['ok']){const _0x2c88de=await _0x27fa26['json']()['catch'](()=>({'message':_0x27fa26['statusText']}));throw new Error(_0x2c88de['message']||'Failed\x20to\x20get\x20role\x20definitions');}return await _0x27fa26['json']();},async 'getRoleDefinition'(_0x17d7c2){const _0x3ff9c5=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x17d7c2));if(!_0x3ff9c5['ok']){const _0x332896=await _0x3ff9c5['json']()['catch'](()=>({'message':_0x3ff9c5['statusText']}));throw new Error(_0x332896['message']||'Failed\x20to\x20get\x20role\x20definition');}return await _0x3ff9c5['json']();},async 'createRoleDefinition'(_0x5935fe){const _0x16084d=await fetch(API_BASE+'/roles',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x5935fe)});if(!_0x16084d['ok']){const _0x45cbb6=await _0x16084d['json']()['catch'](()=>({'message':_0x16084d['statusText']}));throw new Error(_0x45cbb6['message']||_0x45cbb6['error']||'Failed\x20to\x20create\x20role\x20definition');}return await _0x16084d['json']();},async 'updateRoleDefinition'(_0x2f1ff0,_0x53d984){const _0x12cc6b=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x2f1ff0),{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x53d984)});if(!_0x12cc6b['ok']){const _0x479923=await _0x12cc6b['json']()['catch'](()=>({'message':_0x12cc6b['statusText']}));throw new Error(_0x479923['message']||_0x479923['error']||'Failed\x20to\x20update\x20role\x20definition');}return await _0x12cc6b['json']();},async 'deleteRoleDefinition'(_0x411bcf){const _0x2fcd8f=await fetch(API_BASE+'/roles/'+encodeURIComponent(_0x411bcf),{'method':'DELETE'});if(!_0x2fcd8f['ok']){const _0x4e3e7c=await _0x2fcd8f['json']()['catch'](()=>({'message':_0x2fcd8f['statusText']}));throw new Error(_0x4e3e7c['message']||_0x4e3e7c['error']||'Failed\x20to\x20delete\x20role\x20definition');}return await _0x2fcd8f['json']();},async 'getAvailablePermissions'(){const _0x3bcfee=await fetch(API_BASE+'/roles/available-permissions');if(!_0x3bcfee['ok']){const _0x1a1fde=await _0x3bcfee['json']()['catch'](()=>({'message':_0x3bcfee['statusText']}));throw new Error(_0x1a1fde['message']||'Failed\x20to\x20get\x20available\x20permissions');}return await _0x3bcfee['json']();},async 'getGitProviderAllowedTeams'(_0x6a5bfa){const _0x3f230d=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x6a5bfa)+'/allowed-teams');if(!_0x3f230d['ok']){const _0xef43ee=await _0x3f230d['json']()['catch'](()=>({'message':_0x3f230d['statusText']}));throw new Error(_0xef43ee['message']||'Failed\x20to\x20get\x20allowed\x20teams');}return await _0x3f230d['json']();},async 'setGitProviderAllowedTeams'(_0x5933da,_0x5598ac){const _0x3f0ef0=await fetch(API_BASE+'/settings/git-provider-setup/'+encodeURIComponent(_0x5933da)+'/allowed-teams',{'method':'PUT','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'allowedTeams':_0x5598ac})});if(!_0x3f0ef0['ok']){const _0x37aebb=await _0x3f0ef0['json']()['catch'](()=>({'message':_0x3f0ef0['statusText']}));throw new Error(_0x37aebb['message']||'Failed\x20to\x20set\x20allowed\x20teams');}return await _0x3f0ef0['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 _0x41acc0=toastState['baseBottom'];toastState['toasts']['forEach'](_0x11b6c5=>{_0x11b6c5['el']['style']['bottom']=_0x41acc0+'px';const _0x33ae4b=_0x11b6c5['el']['offsetHeight']||toastState['defaultHeight'];_0x41acc0+=_0x33ae4b+toastState['gap'];});});}function removeToastById(_0x418c7d){const _0x27f87f=toastState['toasts']['findIndex'](_0x1cd949=>_0x1cd949['id']===_0x418c7d);if(_0x27f87f===-0x1)return;const _0x514701=toastState['toasts'][_0x27f87f];if(_0x514701['timeoutId'])clearTimeout(_0x514701['timeoutId']);_0x514701['el']['classList']['remove']('show'),setTimeout(()=>_0x514701['el']['remove'](),0x12c),toastState['toasts']['splice'](_0x27f87f,0x1),repositionAllToasts();}function registerToast(_0x2d41fa){return toastState['toasts']['length']>=toastState['maxToasts']&&removeToastById(toastState['toasts'][0x0]['id']),toastState['toasts']['push'](_0x2d41fa),repositionAllToasts(),_0x2d41fa['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(_0x4dcba6){if(_0x4dcba6===null||_0x4dcba6===undefined)return'';return String(_0x4dcba6)['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}function getMarkdownCodeBlockPayload(_0xb987d7,_0x16877a){if(_0xb987d7&&typeof _0xb987d7==='object'&&!Array['isArray'](_0xb987d7))return{'code':typeof _0xb987d7['text']==='string'?_0xb987d7['text']:'','language':typeof _0xb987d7['lang']==='string'?_0xb987d7['lang']:''};return{'code':typeof _0xb987d7==='string'?_0xb987d7:'','language':typeof _0x16877a==='string'?_0x16877a:''};}function buildMermaidBlock(_0x4c1d81){const _0x15c291=String(_0x4c1d81||'');return'<div\x20class=\x22mermaid\x22\x20data-mermaid-source=\x22'+escapeHtmlValue(encodeURIComponent(_0x15c291))+'\x22>'+escapeHtmlValue(_0x15c291)+'</div>';}function getSharedMarkedRenderer(){if(sharedMarkedRenderer||typeof marked==='undefined'||!marked['Renderer'])return sharedMarkedRenderer;const _0xe38e4=new marked['Renderer'](),_0x3a64f3=_0xe38e4['code']['bind'](_0xe38e4);return _0xe38e4['code']=function(_0x45cf1a,_0x4d2acb,..._0x1a8c6f){const {code:_0x419f32,language:_0x11a2c5}=getMarkdownCodeBlockPayload(_0x45cf1a,_0x4d2acb),_0x3a8335=String(_0x11a2c5||'')['trim']()['toLowerCase']();if(_0x3a8335==='mermaid')return buildMermaidBlock(_0x419f32);const _0xa3fd30=window['hljs']||(typeof hljs!=='undefined'?hljs:null);if(_0xa3fd30&&_0x3a8335)try{const _0x2e63c9=_0xa3fd30['getLanguage'](_0x3a8335)?_0x3a8335:'plaintext',_0x3e1308=_0xa3fd30['highlight'](_0x419f32,{'language':_0x2e63c9})['value'];return'<pre><code\x20class=\x22hljs\x20language-'+escapeHtmlValue(_0x3a8335)+'\x22>'+_0x3e1308+'</code></pre>';}catch(_0x426494){console['error']('Syntax\x20highlighting\x20error:',_0x426494);}return _0x3a64f3(_0x45cf1a,_0x4d2acb,..._0x1a8c6f);},sharedMarkedRenderer=_0xe38e4,_0xe38e4;}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 _0x259d8a=window['mermaid'];if(!_0x259d8a||typeof _0x259d8a['initialize']!=='function')return _0x259d8a||null;return _0x259d8a['initialize']({'startOnLoad':![],'theme':getMermaidTheme()}),_0x259d8a;}function loadMermaid(){if(window['mermaid'])return Promise['resolve'](configureMermaidInstance());if(mermaidLoadPromise)return mermaidLoadPromise;return mermaidLoadPromise=new Promise((_0x1fec16,_0x91595d)=>{const _0x38ee97=()=>_0x1fec16(configureMermaidInstance()),_0xb59255=()=>{mermaidLoadPromise=null,_0x91595d(new Error('Failed\x20to\x20load\x20Mermaid\x20renderer'));};let _0x2028fd=document['getElementById'](MERMAID_SCRIPT_ID);!_0x2028fd&&(_0x2028fd=document['createElement']('script'),_0x2028fd['id']=MERMAID_SCRIPT_ID,_0x2028fd['src']=MERMAID_SCRIPT_SRC,_0x2028fd['async']=!![],document['head']['appendChild'](_0x2028fd));if(window['mermaid']){_0x38ee97();return;}_0x2028fd['addEventListener']('load',_0x38ee97,{'once':!![]}),_0x2028fd['addEventListener']('error',_0xb59255,{'once':!![]});}),mermaidLoadPromise;}function restoreMermaidSource(_0x513c92){const _0x4db495=_0x513c92['getAttribute']('data-mermaid-source');if(!_0x4db495)return null;let _0x16bfc4=_0x4db495;try{_0x16bfc4=decodeURIComponent(_0x4db495);}catch{}return _0x513c92['textContent']=_0x16bfc4,_0x513c92['removeAttribute']('data-processed'),_0x513c92['removeAttribute']('aria-roledescription'),_0x513c92['removeAttribute']('role'),_0x513c92['removeAttribute']('aria-label'),_0x16bfc4;}function collectMermaidNodes(_0x5c99b1,_0x4c07bd){if(!(_0x5c99b1 instanceof Element))return;_0x5c99b1['matches']('.mermaid[data-mermaid-source]')&&_0x4c07bd['add'](_0x5c99b1),_0x5c99b1['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0xd8d76=>{_0x4c07bd['add'](_0xd8d76);});}function scheduleMermaidRender(){if(mermaidRenderScheduled)return;mermaidRenderScheduled=!![];const _0x431305=typeof requestAnimationFrame==='function'?requestAnimationFrame:_0x10c9ab=>setTimeout(_0x10c9ab,0x0);_0x431305(()=>{mermaidRenderScheduled=![],flushMermaidRenderQueue()['catch'](_0x41f0a7=>{console['error']('Mermaid\x20render\x20queue\x20failed:',_0x41f0a7);});});}function queueMermaidRender(_0x5631fa){const _0x6178f7=new Set();_0x5631fa instanceof Document||_0x5631fa instanceof DocumentFragment?_0x5631fa['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x3fd9cf=>_0x6178f7['add'](_0x3fd9cf)):collectMermaidNodes(_0x5631fa,_0x6178f7);if(_0x6178f7['size']===0x0)return;_0x6178f7['forEach'](_0x57678a=>pendingMermaidNodes['add'](_0x57678a)),scheduleMermaidRender();}async function flushMermaidRenderQueue(){const _0x16c604=Array['from'](pendingMermaidNodes)['filter'](_0x2df634=>_0x2df634['isConnected']);pendingMermaidNodes['clear']();if(_0x16c604['length']===0x0)return;const _0x239403=await loadMermaid();if(!_0x239403)return;configureMermaidInstance();const _0x5afae8=getMermaidTheme();for(const _0x17b2bc of _0x16c604){const _0x1f0956=_0x17b2bc['getAttribute']('data-mermaid-source');if(!_0x1f0956)continue;const _0x475cbe=_0x17b2bc['getAttribute']('data-processed')==='true';if(_0x475cbe&&_0x17b2bc['dataset']['mermaidTheme']===_0x5afae8)continue;restoreMermaidSource(_0x17b2bc);try{if(typeof _0x239403['run']==='function')await _0x239403['run']({'nodes':[_0x17b2bc]});else typeof _0x239403['init']==='function'&&_0x239403['init'](undefined,[_0x17b2bc]);_0x17b2bc['dataset']['mermaidTheme']=_0x5afae8,delete _0x17b2bc['dataset']['mermaidError'];}catch(_0x560638){console['error']('Mermaid\x20render\x20failed:',_0x560638),restoreMermaidSource(_0x17b2bc),_0x17b2bc['dataset']['mermaidError']='true',delete _0x17b2bc['dataset']['mermaidTheme'];}}}function rerenderAllMermaidDiagrams(){document['querySelectorAll']('.mermaid[data-mermaid-source]')['forEach'](_0x25cce2=>{_0x25cce2['removeAttribute']('data-processed'),pendingMermaidNodes['add'](_0x25cce2);}),scheduleMermaidRender();}function initializeMermaidObserver(){if(mermaidObserverInitialized||!document['body'])return;mermaidObserverInitialized=!![],mermaidMutationObserver=new MutationObserver(_0x9d43cb=>{_0x9d43cb['forEach'](_0x3a7ec4=>{_0x3a7ec4['addedNodes']['forEach'](_0x2ebe92=>{_0x2ebe92['nodeType']===Node['ELEMENT_NODE']&&queueMermaidRender(_0x2ebe92);});});}),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'(_0x5a9a0d){const _0x421f0=new Date(_0x5a9a0d),_0x4d47f0=new Date(),_0x5b1c9f=_0x4d47f0-_0x421f0,_0x2bc75d=Math['floor'](_0x5b1c9f/0x3e8),_0xd80f1a=Math['floor'](_0x2bc75d/0x3c),_0x1bcc7b=Math['floor'](_0xd80f1a/0x3c),_0x135461=Math['floor'](_0x1bcc7b/0x18);if(_0x2bc75d<0x3c)return'now';if(_0xd80f1a<0x3c)return _0xd80f1a+'m\x20ago';if(_0x1bcc7b<0x18)return _0x1bcc7b+'h\x20ago';return _0x135461+'d\x20ago';},'getStatusIcon'(_0x5755ef){switch(_0x5755ef){case'completed':return'✓';case'running':return'⋯';case'interrupted':return'⏹';case'failed':return'✗';case'staged':return'◎';case'queued':return'⏸';default:return'○';}},'getStatusClass'(_0x4a53fe){switch(_0x4a53fe){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'(_0x11b323,_0x8a212f=null){if(navigator['clipboard']&&navigator['clipboard']['write'])try{const _0x5836b1={};_0x5836b1['text/plain']=new Blob([_0x11b323],{'type':'text/plain'});_0x8a212f&&(_0x5836b1['text/html']=new Blob([_0x8a212f],{'type':'text/html'}));const _0x49189=new ClipboardItem(_0x5836b1);return await navigator['clipboard']['write']([_0x49189]),!![];}catch(_0x3efc18){console['warn']('Clipboard\x20API\x20write()\x20failed,\x20trying\x20fallback:',_0x3efc18);}try{const _0x509398=_0x1ed9ea=>{_0x1ed9ea['preventDefault'](),_0x1ed9ea['clipboardData']['setData']('text/plain',_0x11b323),_0x8a212f&&_0x1ed9ea['clipboardData']['setData']('text/html',_0x8a212f);};document['addEventListener']('copy',_0x509398);const _0x36c9a6=document['execCommand']('copy');document['removeEventListener']('copy',_0x509398);if(_0x36c9a6)return!![];}catch(_0x50d355){console['warn']('execCommand\x20copy\x20event\x20injection\x20failed:',_0x50d355);}try{const _0x2c14b4=document['createElement']('textarea');_0x2c14b4['value']=_0x11b323,_0x2c14b4['style']['position']='fixed',_0x2c14b4['style']['opacity']='0',_0x2c14b4['style']['pointerEvents']='none',document['body']['appendChild'](_0x2c14b4),_0x2c14b4['select']();const _0x4a4fc4=document['execCommand']('copy');return document['body']['removeChild'](_0x2c14b4),_0x4a4fc4;}catch(_0x269cbb){return console['error']('All\x20clipboard\x20methods\x20failed:',_0x269cbb),![];}},'showToast'(_0x2bff1c,_0x1ad4ed='info'){const _0xc23dbb=getNextToastId(),_0x2e6f80=document['createElement']('div');_0x2e6f80['className']='toast\x20toast-'+_0x1ad4ed,_0x2e6f80['textContent']=_0x2bff1c,_0x2e6f80['dataset']['toastId']=_0xc23dbb,document['body']['appendChild'](_0x2e6f80);const _0x21b883=_0x1ad4ed==='error'?0x2710:0xbb8,_0x1a417b=setTimeout(()=>{removeToastById(_0xc23dbb);},_0x21b883),_0x4e2553={'id':_0xc23dbb,'el':_0x2e6f80,'timeoutId':_0x1a417b};return registerToast(_0x4e2553),requestAnimationFrame(()=>{requestAnimationFrame(()=>{_0x2e6f80['classList']['add']('show');});}),_0xc23dbb;},'showError'(_0x16010e){console['error'](_0x16010e);const _0x2d5180=typeof _0x16010e==='string'?_0x16010e:_0x16010e['message']||'An\x20error\x20occurred';this['showToast'](_0x2d5180,'error');},'showSuccess'(_0x1e65c1){this['showToast'](_0x1e65c1,'success');},'capitalize'(_0x3d68c4){if(!_0x3d68c4)return'';return _0x3d68c4['charAt'](0x0)['toUpperCase']()+_0x3d68c4['slice'](0x1)['toLowerCase']();},'escapeHtml'(_0x1dd914){return escapeHtmlValue(_0x1dd914);},'ansiToHtml'(_0xf265fb){if(_0xf265fb===null||_0xf265fb===undefined)return'';let _0x47d102=this['escapeHtml'](_0xf265fb);const _0x2911a8={'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'},_0x46ea99={'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 _0x287f0a=0x0;return _0x47d102=_0x47d102['replace'](/\x1b\[([0-9;]*)m/g,(_0x2ddead,_0x45f8a3)=>{if(!_0x45f8a3||_0x45f8a3==='0'){const _0x43e9c0='</span>'['repeat'](_0x287f0a);return _0x287f0a=0x0,_0x43e9c0;}const _0x724180=_0x45f8a3['split'](';'),_0x4fc895=[];for(const _0xfdd664 of _0x724180){if(_0xfdd664==='1')_0x4fc895['push']('font-weight:bold');else{if(_0xfdd664==='2')_0x4fc895['push']('opacity:0.7');else{if(_0xfdd664==='3')_0x4fc895['push']('font-style:italic');else{if(_0xfdd664==='4')_0x4fc895['push']('text-decoration:underline');else{if(_0xfdd664==='9')_0x4fc895['push']('text-decoration:line-through');else{if(_0x2911a8[_0xfdd664])_0x4fc895['push']('color:'+_0x2911a8[_0xfdd664]);else{if(_0x46ea99[_0xfdd664])_0x4fc895['push']('background-color:'+_0x46ea99[_0xfdd664]);}}}}}}}if(_0x4fc895['length']>0x0)return _0x287f0a++,'<span\x20style=\x22'+_0x4fc895['join'](';')+'\x22>';return'';}),_0x47d102+='</span>'['repeat'](_0x287f0a),_0x47d102=_0x47d102['replace'](/\\u001b\[([0-9;]*)m/g,(_0x79a03d,_0x226774)=>{if(!_0x226774||_0x226774==='0')return'';const _0x559830=_0x226774['split'](';'),_0x2bcb67=[];for(const _0x448594 of _0x559830){if(_0x448594==='1')_0x2bcb67['push']('font-weight:bold');else{if(_0x2911a8[_0x448594])_0x2bcb67['push']('color:'+_0x2911a8[_0x448594]);else{if(_0x46ea99[_0x448594])_0x2bcb67['push']('background-color:'+_0x46ea99[_0x448594]);}}}if(_0x2bcb67['length']>0x0)return'<span\x20style=\x22'+_0x2bcb67['join'](';')+'\x22>';return'';}),_0x47d102;},'showModal'({title:_0x1ec215,content:_0x334417,buttons:buttons=[]}){const _0x2fb88c='\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'](_0x1ec215)+'</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'+_0x334417+'\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']((_0xdc8c3c,_0x241ea0)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22'+(_0xdc8c3c['className']||'btn-secondary')+'\x22\x20data-btn-index=\x22'+_0x241ea0+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this['escapeHtml'](_0xdc8c3c['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',_0x51fe74=document['createElement']('div');_0x51fe74['id']='utils-modal',_0x51fe74['className']='modal',_0x51fe74['innerHTML']=_0x2fb88c,document['body']['appendChild'](_0x51fe74);const _0x534296=document['getElementById']('utils-modal-close');_0x534296&&_0x534296['addEventListener']('click',()=>this['hideModal']());const _0x233a93=_0x51fe74['querySelectorAll']('[data-btn-index]');_0x233a93['forEach'](_0x72c7ca=>{const _0x586b1b=parseInt(_0x72c7ca['dataset']['btnIndex']);buttons[_0x586b1b]?.['onClick']&&_0x72c7ca['addEventListener']('click',buttons[_0x586b1b]['onClick']);});const _0x537d27=document['getElementById']('utils-modal-overlay');_0x537d27&&_0x537d27['addEventListener']('click',()=>this['hideModal']());},'hideModal'(){const _0x4d9119=document['getElementById']('utils-modal');_0x4d9119&&_0x4d9119['remove']();},'parseKeyValuePairs'(_0x3ed8af){const _0x5879df={};if(!_0x3ed8af)return _0x5879df;return _0x3ed8af['split'](/\r?\n/)['map'](_0x142a67=>_0x142a67['trim']())['filter'](Boolean)['forEach'](_0x3a217d=>{const _0x2e9c83=_0x3a217d['indexOf']('=');if(_0x2e9c83>0x0){const _0x2f7399=_0x3a217d['slice'](0x0,_0x2e9c83)['trim'](),_0x29b0fc=_0x3a217d['slice'](_0x2e9c83+0x1)['trim']();if(_0x2f7399)_0x5879df[_0x2f7399]=_0x29b0fc;}}),_0x5879df;},'debounce'(_0xe9f9da,_0x2de8f9=0xfa){let _0xaa0885=null;return(..._0x34cc3d)=>{clearTimeout(_0xaa0885),_0xaa0885=setTimeout(()=>_0xe9f9da['apply'](this,_0x34cc3d),_0x2de8f9);};},'formatTimestamp'(_0x1088e3){if(!_0x1088e3)return'N/A';const _0x13b709=new Date(_0x1088e3);return _0x13b709['toLocaleDateString']()+'\x20'+_0x13b709['toLocaleTimeString']();},'getQueryParams'(){const _0x5815b3=new URLSearchParams(window['location']['search']),_0xb7f74={};for(const [_0x198a1a,_0x2a6222]of _0x5815b3){_0xb7f74[_0x198a1a]=_0x2a6222;}return _0xb7f74;},'formatDuration'(_0x4d459c,_0x376abe){if(!_0x4d459c)return'N/A';const _0x3579d9=new Date(_0x4d459c),_0x5e3e4c=_0x376abe?new Date(_0x376abe):new Date(),_0x15c031=_0x5e3e4c-_0x3579d9;if(_0x15c031<0x0)return'0s';const _0x140774=Math['floor'](_0x15c031/0x3e8),_0x341571=Math['floor'](_0x140774/0x3c),_0x350474=Math['floor'](_0x341571/0x3c),_0x528cb6=Math['floor'](_0x350474/0x18);if(_0x140774<0x3c)return _0x140774+'s';if(_0x341571<0x3c)return _0x341571+'m\x20'+_0x140774%0x3c+'s';if(_0x350474<0x18)return _0x350474+'h\x20'+_0x341571%0x3c+'m\x20'+_0x140774%0x3c+'s';return _0x528cb6+'d\x20'+_0x350474%0x18+'h\x20'+_0x341571%0x3c+'m';},'renderMarkdown'(_0x21290b,_0x1b4b4d={}){if(!_0x21290b)return'';_0x21290b=this['rewriteAttachmentLinks'](_0x21290b,_0x1b4b4d),_0x21290b=this['rewriteColorSyntax'](_0x21290b);if(typeof marked==='undefined')return console['warn']('marked.js\x20not\x20loaded,\x20using\x20fallback\x20renderer'),this['renderMarkdownFallback'](_0x21290b,_0x1b4b4d);ensureMarkedConfigured(),ensureMermaidObserver();try{return marked['parse'](_0x21290b);}catch(_0x2c31ee){return console['error']('Markdown\x20parsing\x20error:',_0x2c31ee),this['renderMarkdownFallback'](_0x21290b,_0x1b4b4d);}},'rewriteAttachmentLinks'(_0x373b5c,_0x18b045={}){const _0x54faa5=typeof _0x18b045['resolveAttachmentUrl']==='function'?_0x18b045['resolveAttachmentUrl']:_0x18b045['taskId']?_0x4eb4f6=>API_BASE+'/tasks/'+_0x18b045['taskId']+'/attachments/'+encodeURIComponent(_0x4eb4f6):null;if(!_0x54faa5)return _0x373b5c;return String(_0x373b5c)['replace'](/\]\(attachment:(?:\/\/)?([^)]+)\)/g,(_0x3277f2,_0x5477e5)=>{const _0x386e44=String(_0x5477e5||'')['trim']();if(!_0x386e44)return _0x3277f2;let _0x50a001=_0x386e44;try{_0x50a001=decodeURIComponent(_0x386e44);}catch{}const _0x13c055=_0x54faa5(_0x50a001);if(!_0x13c055)return _0x3277f2;return']('+_0x13c055+')';});},'rewriteColorSyntax'(_0x4081c8){if(!_0x4081c8)return _0x4081c8;return String(_0x4081c8)['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,(_0x3607d2,_0x61d9a5,_0x373c50)=>{const _0x16f35d=this['rewriteColorSyntax'](_0x373c50);return'<span\x20style=\x22color:\x20'+_0x61d9a5+'\x22>'+_0x16f35d+'</span>';});},'renderMarkdownFallback'(_0x3ff52b,_0x108354={}){if(!_0x3ff52b)return'';_0x3ff52b=_0x3ff52b['replace'](/\r\n/g,'\x0a'),_0x3ff52b=_0x3ff52b['replace'](/\r/g,'\x0a'),_0x3ff52b=this['rewriteAttachmentLinks'](_0x3ff52b,_0x108354);let _0x43420a=this['escapeHtml'](_0x3ff52b);return _0x43420a=_0x43420a['replace'](/^### (.*$)/gm,'<h3>$1</h3>'),_0x43420a=_0x43420a['replace'](/^## (.*$)/gm,'<h2>$1</h2>'),_0x43420a=_0x43420a['replace'](/^# (.*$)/gm,'<h1>$1</h1>'),_0x43420a=_0x43420a['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>'),_0x43420a=_0x43420a['replace'](/\*(.+?)\*/g,'<em>$1</em>'),_0x43420a=_0x43420a['replace'](/```([^`]*?)```/gs,'<pre><code>$1</code></pre>'),_0x43420a=_0x43420a['replace'](/`([^`]+?)`/g,'<code>$1</code>'),_0x43420a=_0x43420a['replace'](/\[([^\]]+)\]\(([^)]+)\)/g,'<a\x20href=\x22$2\x22\x20target=\x22_blank\x22>$1</a>'),_0x43420a=_0x43420a['replace'](/\{color:(#[0-9A-Fa-f]{3,6})\}([\s\S]*?)\{\/color\}/g,'<span\x20style=\x22color:\x20$1\x22>$2</span>'),_0x43420a=_0x43420a['replace'](/\n\n/g,'</p><p>'),_0x43420a=_0x43420a['replace'](/\n/g,'<br>'),'<p>'+_0x43420a+'</p>';},'generateUUID'(){if(typeof crypto!=='undefined'&&typeof crypto['randomUUID']==='function')return crypto['randomUUID']();const _0x34089a=new Uint8Array(0x10);crypto['getRandomValues'](_0x34089a),_0x34089a[0x6]=_0x34089a[0x6]&0xf|0x40,_0x34089a[0x8]=_0x34089a[0x8]&0x3f|0x80;const _0x5df03f=Array['from'](_0x34089a,_0x193a32=>_0x193a32['toString'](0x10)['padStart'](0x2,'0'))['join']('');return _0x5df03f['slice'](0x0,0x8)+'-'+_0x5df03f['slice'](0x8,0xc)+'-'+_0x5df03f['slice'](0xc,0x10)+'-'+_0x5df03f['slice'](0x10,0x14)+'-'+_0x5df03f['slice'](0x14);}};export class CustomSelect{constructor(_0x108260,_0x4d7628={}){this['nativeSelect']=_0x108260,this['options']=_0x4d7628,this['isOpen']=![],this['selectedValue']=_0x108260['value']||'',this['searchable']=_0x4d7628['searchable']||![],this['searchQuery']='',this['allOptions']=[],this['init']();}['init'](){const _0x5bb0ca=document['createElement']('div');_0x5bb0ca['className']='custom-select';const _0xb8f463=document['createElement']('div');_0xb8f463['className']='custom-select-trigger',_0xb8f463['setAttribute']('tabindex','0'),_0xb8f463['setAttribute']('role','button'),_0xb8f463['setAttribute']('aria-haspopup','listbox');const _0x76c443=document['createElement']('span');_0x76c443['className']='custom-select-trigger-text';const _0x2e2840=document['createElement']('span');_0x2e2840['className']='custom-select-arrow',_0x2e2840['textContent']='▼',_0xb8f463['appendChild'](_0x76c443),_0xb8f463['appendChild'](_0x2e2840);const _0x1a5cf8=document['createElement']('div');_0x1a5cf8['className']='custom-select-dropdown',_0x1a5cf8['setAttribute']('role','listbox');if(this['searchable']){const _0x1a1bfb=document['createElement']('div');_0x1a1bfb['className']='custom-select-search';const _0x1ac4c6=document['createElement']('input');_0x1ac4c6['type']='text',_0x1ac4c6['className']='custom-select-search-input',_0x1ac4c6['placeholder']='Type\x20to\x20search...',_0x1ac4c6['setAttribute']('aria-label','Search\x20options'),_0x1ac4c6['addEventListener']('input',_0x3630b4=>{this['searchQuery']=_0x3630b4['target']['value']['toLowerCase'](),this['filterOptions']();}),_0x1ac4c6['addEventListener']('keydown',_0x4c5b2e=>{if(_0x4c5b2e['key']==='Escape')_0x4c5b2e['stopPropagation'](),this['clearSearch'](),this['close']();else{if(_0x4c5b2e['key']==='Enter'){_0x4c5b2e['preventDefault'](),_0x4c5b2e['stopPropagation']();const _0x1aabc0=_0x1a5cf8['querySelector']('.custom-select-option:not([style*=\x22display:\x20none\x22])');if(_0x1aabc0){const _0x54dd47=_0x1aabc0['getAttribute']('data-value');this['select'](_0x54dd47);}}}}),_0x1a1bfb['appendChild'](_0x1ac4c6),_0x1a5cf8['appendChild'](_0x1a1bfb),this['searchInput']=_0x1ac4c6;}const _0x5bfaef=document['createElement']('div');_0x5bfaef['className']='custom-select-options',_0x1a5cf8['appendChild'](_0x5bfaef),_0x5bb0ca['appendChild'](_0xb8f463),_0x5bb0ca['appendChild'](_0x1a5cf8),this['nativeSelect']['style']['display']='none',this['nativeSelect']['parentNode']['insertBefore'](_0x5bb0ca,this['nativeSelect']),this['wrapper']=_0x5bb0ca,this['trigger']=_0xb8f463,this['triggerText']=_0x76c443,this['dropdown']=_0x1a5cf8,this['optionsContainer']=_0x5bfaef,_0xb8f463['addEventListener']('click',()=>this['toggle']()),_0xb8f463['addEventListener']('keydown',_0x398d29=>this['handleKeydown'](_0x398d29)),document['addEventListener']('click',_0x5c6b93=>{!_0x5bb0ca['contains'](_0x5c6b93['target'])&&this['close']();}),this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();const _0x257b04=new MutationObserver(()=>{this['syncOptions'](),this['updateDisplay'](),this['updateDisabledState']();});_0x257b04['observe'](this['nativeSelect'],{'childList':!![],'subtree':!![]}),this['nativeSelect']['addEventListener']('change',()=>{this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']();});const _0x556c25=new MutationObserver(()=>{this['updateDisabledState']();});_0x556c25['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['disabled']});const _0x4830ba=new MutationObserver(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());});_0x4830ba['observe'](this['nativeSelect'],{'attributes':!![],'attributeFilter':['value']}),setInterval(()=>{this['nativeSelect']['value']!==this['selectedValue']&&(this['selectedValue']=this['nativeSelect']['value'],this['updateDisplay']());},0x64);}['updateDisabledState'](){const _0x5bbb95=this['nativeSelect']['disabled'];this['wrapper']['classList']['toggle']('disabled',_0x5bbb95),this['trigger']['setAttribute']('aria-disabled',_0x5bbb95?'true':'false'),this['trigger']['setAttribute']('tabindex',_0x5bbb95?'-1':'0'),_0x5bbb95&&this['close']();}['syncOptions'](){this['optionsContainer']['innerHTML']='';const _0x489114=Array['from'](this['nativeSelect']['options']);this['allOptions']=[];const _0xf9d6db=_0x489114['filter'](_0x30a803=>!_0x30a803['disabled']&&!_0x30a803['hidden']);_0x489114['forEach']((_0x3fb32f,_0xb90119)=>{const _0x135f74=document['createElement']('div');_0x135f74['className']='custom-select-option',_0x135f74['textContent']=_0x3fb32f['textContent'],_0x135f74['setAttribute']('data-value',_0x3fb32f['value']),_0x135f74['setAttribute']('data-index',_0xb90119),_0x135f74['setAttribute']('role','option'),_0x3fb32f['disabled']?_0x135f74['classList']['add']('disabled'):_0x135f74['addEventListener']('click',()=>this['select'](_0x3fb32f['value'])),_0x3fb32f['value']===this['selectedValue']&&_0x135f74['classList']['add']('selected'),this['optionsContainer']['appendChild'](_0x135f74),this['allOptions']['push']({'element':_0x135f74,'text':_0x3fb32f['textContent']['toLowerCase'](),'value':_0x3fb32f['value'],'disabled':_0x3fb32f['disabled']});});if(this['searchable']&&this['searchInput']){const _0x47caa6=this['searchInput']['parentElement'];_0xf9d6db['length']>0x3?_0x47caa6['style']['display']='':_0x47caa6['style']['display']='none';}}['filterOptions'](){if(!this['searchable'])return;const _0x24b569=this['searchQuery']['trim']();this['allOptions']['forEach'](_0x3e8e0c=>{if(!_0x24b569||_0x3e8e0c['disabled'])_0x3e8e0c['element']['style']['display']='';else{const _0xf1d727=_0x3e8e0c['text']['includes'](_0x24b569);_0x3e8e0c['element']['style']['display']=_0xf1d727?'':'none';}});}['clearSearch'](){if(!this['searchable']||!this['searchInput'])return;this['searchInput']['value']='',this['searchQuery']='',this['filterOptions']();}['select'](_0x3c542d){if(this['nativeSelect']['disabled'])return;this['selectedValue']=_0x3c542d,this['nativeSelect']['value']=_0x3c542d;const _0x431f13=new Event('change',{'bubbles':!![]});this['nativeSelect']['dispatchEvent'](_0x431f13),this['updateDisplay'](),this['close']();}['updateDisplay'](){const _0x417f19=this['nativeSelect']['options'][this['nativeSelect']['selectedIndex']];_0x417f19&&(this['triggerText']['textContent']=_0x417f19['textContent'],_0x417f19['disabled']||_0x417f19['hidden']?this['trigger']['classList']['add']('placeholder'):this['trigger']['classList']['remove']('placeholder')),this['optionsContainer']['querySelectorAll']('.custom-select-option')['forEach'](_0x159464=>{_0x159464['getAttribute']('data-value')===this['selectedValue']?_0x159464['classList']['add']('selected'):_0x159464['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 _0x1b10fd=window['getComputedStyle'](this['dropdown']);if(_0x1b10fd['position']==='fixed'){const _0x2c3c83=this['trigger']['getBoundingClientRect'](),_0x455aff=parseInt(_0x1b10fd['maxHeight'])||0xc8,_0x42bc8f=window['innerHeight'],_0x1ace59=_0x42bc8f-_0x2c3c83['bottom'],_0x4c31b2=_0x2c3c83['top'];this['dropdown']['classList']['remove']('flipped'),this['trigger']['classList']['remove']('flipped');let _0x178cab;_0x1ace59<_0x455aff&&_0x4c31b2>_0x1ace59?(this['dropdown']['style']['top']='auto',this['dropdown']['style']['bottom']=_0x42bc8f-_0x2c3c83['top']+'px',_0x178cab=Math['min'](_0x455aff,_0x4c31b2-0xa),this['dropdown']['style']['maxHeight']=_0x178cab+'px',this['dropdown']['classList']['add']('flipped'),this['trigger']['classList']['add']('flipped')):(this['dropdown']['style']['top']=_0x2c3c83['bottom']+'px',this['dropdown']['style']['bottom']='auto',_0x178cab=Math['min'](_0x455aff,_0x1ace59-0xa),this['dropdown']['style']['maxHeight']=_0x178cab+'px');if(this['optionsContainer']){let _0x41ff40=_0x178cab;if(this['searchInput']){const _0x25f9da=this['searchInput']['parentElement'];_0x25f9da&&(_0x41ff40-=_0x25f9da['offsetHeight']);}this['optionsContainer']['style']['maxHeight']=Math['max'](0x0,_0x41ff40)+'px';}this['dropdown']['style']['left']=_0x2c3c83['left']+'px',this['dropdown']['style']['width']=_0x2c3c83['width']+'px';}this['options']['onOpen']&&this['options']['onOpen'](this);if(this['searchable']&&this['searchInput']){const _0x518b17=this['searchInput']['parentElement'];_0x518b17&&_0x518b17['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'](_0x3b6bf6){if(this['nativeSelect']['disabled'])return;if(_0x3b6bf6['key']==='Enter'||_0x3b6bf6['key']==='\x20')_0x3b6bf6['preventDefault'](),this['toggle']();else _0x3b6bf6['key']==='Escape'&&this['close']();}}export const ConfirmDialog={'_modal':null,'_resolvePromise':null,'init'(){if(document['getElementById']('confirm-dialog-modal'))return;const _0x3593bc='\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',_0x3593bc),this['_modal']=document['getElementById']('confirm-dialog-modal');const _0x26b16a=document['getElementById']('confirm-dialog-close'),_0x147470=document['getElementById']('confirm-dialog-cancel'),_0x29820b=document['getElementById']('confirm-dialog-confirm'),_0x2ae6cd=this['_modal']['querySelector']('.modal-overlay');_0x26b16a['addEventListener']('click',()=>this['_resolve'](![])),_0x147470['addEventListener']('click',()=>this['_resolve'](![])),_0x29820b['addEventListener']('click',()=>this['_resolve'](!![])),_0x2ae6cd['addEventListener']('click',()=>this['_resolve'](![])),this['_modal']['addEventListener']('keydown',_0x535805=>{if(_0x535805['key']==='Escape')_0x535805['preventDefault'](),this['_resolve'](![]);else _0x535805['key']==='Enter'&&(_0x535805['preventDefault'](),this['_resolve'](!![]));});},'show'({title:title='Confirm',message:_0x222413,confirmText:confirmText='Confirm',cancelText:cancelText='Cancel',danger:danger=![]}){return!this['_modal']&&this['init'](),new Promise(_0x1d9704=>{this['_resolvePromise']=_0x1d9704,document['getElementById']('confirm-dialog-title')['textContent']=title,document['getElementById']('confirm-dialog-message')['textContent']=_0x222413;const _0x1234fa=document['getElementById']('confirm-dialog-cancel'),_0x50db35=document['getElementById']('confirm-dialog-confirm');_0x1234fa['textContent']=cancelText,_0x50db35['textContent']=confirmText,_0x50db35['className']=danger?'btn-danger':'btn-primary',this['_modal']['hidden']=![],_0x50db35['focus']();});},'_resolve'(_0x40dd33){this['_modal']&&(this['_modal']['hidden']=!![]),this['_resolvePromise']&&(this['_resolvePromise'](_0x40dd33),this['_resolvePromise']=null);}};export class AutocompleteSelect{constructor(_0x4a2c26,_0xf7fd9e={}){this['container']=_0x4a2c26,this['options']={'placeholder':_0xf7fd9e['placeholder']||'Type\x20to\x20search...','maxItems':_0xf7fd9e['maxItems']||0x64,'loadItems':_0xf7fd9e['loadItems']||(async()=>[]),'renderItem':_0xf7fd9e['renderItem']||(_0x550a55=>({'primary':String(_0x550a55),'secondary':''})),'onSelect':_0xf7fd9e['onSelect']||(()=>{}),'filterItems':_0xf7fd9e['filterItems']||null,'getItemValue':_0xf7fd9e['getItemValue']||(_0x5a1c8c=>_0x5a1c8c),'sortItems':_0xf7fd9e['sortItems']||null,'debounceMs':_0xf7fd9e['debounceMs']||0xc8,'minCharsForSearch':_0xf7fd9e['minCharsForSearch']||0x0,'emptyMessage':_0xf7fd9e['emptyMessage']||'No\x20results\x20found','loadingMessage':_0xf7fd9e['loadingMessage']||'Loading...','preload':_0xf7fd9e['preload']!==![],'searchMode':_0xf7fd9e['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',_0x16eb78=>this['onBlur'](_0x16eb78)),this['input']['addEventListener']('input',_0x5d4d27=>this['onInput'](_0x5d4d27)),this['input']['addEventListener']('keydown',_0x20965d=>this['onKeydown'](_0x20965d)),this['clearBtn']['addEventListener']('mousedown',_0x55195a=>{_0x55195a['preventDefault'](),this['clear']();}),this['dropdown']['addEventListener']('mousedown',_0x4d55f7=>{_0x4d55f7['preventDefault']();}),document['addEventListener']('click',_0x302574=>{!this['wrapper']['contains'](_0x302574['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(_0x3b4ca1){console['error']('Failed\x20to\x20preload\x20autocomplete\x20data:',_0x3b4ca1);}}['onFocus'](){if(this['options']['searchMode']==='server')this['loadAndShow'](this['input']['value']);else!this['hasLoadedOnce']?this['loadAndShow'](''):this['filterAndShow'](this['input']['value']);}['onBlur'](_0x201680){setTimeout(()=>{!this['wrapper']['contains'](document['activeElement'])&&this['close']();},0xc8);}['onInput'](_0x44672f){const _0x6b62c1=_0x44672f['target']['value'];this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['debounceTimer']=setTimeout(()=>{if(this['options']['searchMode']==='server')this['loadAndShow'](_0x6b62c1);else this['hasLoadedOnce']&&this['options']['filterItems']?this['filterAndShow'](_0x6b62c1):this['loadAndShow'](_0x6b62c1);},this['options']['debounceMs']),this['selectedItem']&&(this['selectedItem']=null,this['clearBtn']['hidden']=!![],this['options']['onSelect'](null));}['onKeydown'](_0x3cd2c4){switch(_0x3cd2c4['key']){case'ArrowDown':_0x3cd2c4['preventDefault'](),this['moveSelection'](0x1);break;case'ArrowUp':_0x3cd2c4['preventDefault'](),this['moveSelection'](-0x1);break;case'Enter':_0x3cd2c4['preventDefault']();this['selectedIndex']>=0x0&&this['filteredItems'][this['selectedIndex']]&&this['selectItem'](this['filteredItems'][this['selectedIndex']]);break;case'Escape':_0x3cd2c4['preventDefault'](),this['close']();break;case'Tab':this['close']();break;}}['moveSelection'](_0x326139){if(!this['isOpen']||this['filteredItems']['length']===0x0)return;const _0x2f3675=this['selectedIndex']+_0x326139;if(_0x2f3675>=0x0&&_0x2f3675<this['filteredItems']['length']){this['selectedIndex']=_0x2f3675,this['updateSelectionHighlight']();const _0x111fe9=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x111fe9[this['selectedIndex']]&&_0x111fe9[this['selectedIndex']]['scrollIntoView']({'block':'nearest'});}}['updateSelectionHighlight'](){const _0x497aee=this['itemsContainer']['querySelectorAll']('.autocomplete-select-item');_0x497aee['forEach']((_0x51c40c,_0x53a2af)=>{_0x51c40c['classList']['toggle']('keyboard-selected',_0x53a2af===this['selectedIndex']);});}async['loadAndShow'](_0x875238){this['showLoading']();try{const _0x1c6301=await this['options']['loadItems'](_0x875238);if(this['options']['searchMode']==='server'){let _0x249802=_0x1c6301;this['options']['sortItems']&&(_0x249802=this['options']['sortItems']([..._0x1c6301]));this['filteredItems']=_0x249802;const _0xa06b8e=this['filteredItems']['length']>=this['options']['maxItems'];_0xa06b8e&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0xa06b8e),this['open']();}else this['allItems']=_0x1c6301,this['hasLoadedOnce']=!![],this['options']['sortItems']&&(this['allItems']=this['options']['sortItems']([...this['allItems']])),this['filterAndShow'](_0x875238);}catch(_0x1a6696){console['error']('Failed\x20to\x20load\x20autocomplete\x20items:',_0x1a6696),this['showError']('Failed\x20to\x20load\x20items');}}['filterAndShow'](_0x3e4557){this['options']['filterItems']?this['filteredItems']=this['options']['filterItems'](this['allItems'],_0x3e4557):this['filteredItems']=this['allItems'];this['options']['sortItems']&&(this['filteredItems']=this['options']['sortItems']([...this['filteredItems']]));const _0x53b424=this['filteredItems']['length']>=this['options']['maxItems'];_0x53b424&&(this['filteredItems']=this['filteredItems']['slice'](0x0,this['options']['maxItems'])),this['renderItems'](_0x53b424),this['open']();}['renderItems'](_0x1a9cc6){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']((_0x5cb856,_0x47180c)=>{const _0x9d517=document['createElement']('div');_0x9d517['className']='autocomplete-select-item',_0x9d517['setAttribute']('role','option'),_0x9d517['setAttribute']('data-index',_0x47180c);const _0x528b23=this['options']['renderItem'](_0x5cb856);let _0x28cc73='';_0x528b23['icon']&&(_0x28cc73='<span\x20class=\x22autocomplete-select-item-icon\x20'+(_0x528b23['iconClass']||'')+'\x22>'+_0x528b23['icon']+'</span>'),_0x9d517['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x28cc73+'\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'](_0x528b23['primary'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x528b23['secondary']?'<div\x20class=\x22autocomplete-select-item-secondary\x22>'+Utils['escapeHtml'](_0x528b23['secondary'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20',_0x9d517['addEventListener']('click',()=>{this['selectItem'](_0x5cb856);}),_0x9d517['addEventListener']('mouseenter',()=>{this['selectedIndex']=_0x47180c,this['updateSelectionHighlight']();}),this['itemsContainer']['appendChild'](_0x9d517);}),_0x1a9cc6?(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'](_0x2f2b62){this['isLoading']=![],this['itemsContainer']['innerHTML']='<div\x20class=\x22autocomplete-select-error\x22>'+Utils['escapeHtml'](_0x2f2b62)+'</div>',this['footer']['hidden']=!![];}['selectItem'](_0x447248){this['selectedItem']=_0x447248;const _0x47cc94=this['options']['renderItem'](_0x447248);this['input']['value']=_0x47cc94['primary'],this['clearBtn']['hidden']=![],this['close'](),this['options']['onSelect'](_0x447248);}['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'](_0x22fe25){if(_0x22fe25){this['selectedItem']=_0x22fe25;const _0x453ecf=this['options']['renderItem'](_0x22fe25);this['input']['value']=_0x453ecf['primary'],this['clearBtn']['hidden']=![];}else this['clear']();}['setItems'](_0x5b40cd){this['allItems']=_0x5b40cd,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'](_0x1bb462){this['input']['placeholder']=_0x1bb462;}['destroy'](){this['debounceTimer']&&clearTimeout(this['debounceTimer']),this['container']['innerHTML']='';}}async function initializeAdminMenu(_0x5666b1=null){const _0x9e79c7=document['getElementById']('admin-menu-container'),_0x2bf0b6=document['getElementById']('admin-menu-btn'),_0x50419b=document['getElementById']('admin-menu');if(!_0x9e79c7||!_0x2bf0b6||!_0x50419b)return;try{!_0x5666b1&&(_0x5666b1=await API['getCurrentUser']());if(_0x5666b1){const _0x4b13b=window['Permissions'],_0x52e276=_0x4b13b['hasServerPermission'](_0x5666b1,'*')||_0x4b13b['hasEnvPermission'](_0x5666b1,'environments:manage')||_0x4b13b['hasServerPermission'](_0x5666b1,'users:create')||_0x4b13b['hasTeamPermission'](_0x5666b1,'teams:manage')||_0x4b13b['hasEnvPermission'](_0x5666b1,'environments:view_details');if(!_0x52e276)return;_0x9e79c7['hidden']=![];if(!_0x4b13b['hasServerPermission'](_0x5666b1,'*')){const _0x16f3c0=_0x50419b['querySelectorAll']('.admin-menu-item');_0x16f3c0['forEach'](_0x442756=>{const _0x487e67=_0x442756['querySelector']('.option-text')?.['textContent']?.['trim']();_0x487e67==='Users'&&!_0x4b13b['hasServerPermission'](_0x5666b1,'users:create')&&(_0x442756['hidden']=!![]),_0x487e67==='Skills'&&(_0x442756['hidden']=!![]),_0x487e67==='Server\x20Settings'&&(_0x442756['hidden']=!![]),_0x487e67==='Server\x20Administration'&&(_0x442756['hidden']=!![]),_0x487e67==='Git\x20History'&&(_0x442756['hidden']=!![]),_0x487e67==='Roles'&&(_0x442756['hidden']=!![]);});}_0x2bf0b6['addEventListener']('click',_0x52207d=>{_0x52207d['stopPropagation']();const _0x141c63=document['getElementById']('actions-menu');if(_0x141c63)_0x141c63['hidden']=!![];_0x50419b['hidden']=!_0x50419b['hidden'];}),document['addEventListener']('click',_0xf44dd6=>{!_0x50419b['hidden']&&!_0x2bf0b6['contains'](_0xf44dd6['target'])&&!_0x50419b['contains'](_0xf44dd6['target'])&&(_0x50419b['hidden']=!![]);}),document['addEventListener']('keydown',_0x1bf824=>{_0x1bf824['key']==='Escape'&&!_0x50419b['hidden']&&(_0x50419b['hidden']=!![]);});}}catch(_0x474a5e){console['debug']('[CoderFlow]\x20Admin\x20menu\x20not\x20initialized:',_0x474a5e['message']);}}typeof window!=='undefined'&&(window['API']=API,window['Utils']=Utils,window['CustomSelect']=CustomSelect,window['ConfirmDialog']=ConfirmDialog,window['AutocompleteSelect']=AutocompleteSelect,window['initializeAdminMenu']=initializeAdminMenu);export{initializeAdminMenu};
|