@profoundlogic/coderflow-server 0.4.4 → 0.4.6

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.
Files changed (176) hide show
  1. package/dist/base-image/entrypoint.sh +2 -1
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -0
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -0
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/init.js +1 -1
  24. package/dist/lib/cli/jira.js +1 -1
  25. package/dist/lib/cli/license.js +1 -1
  26. package/dist/lib/cli/server-manager.js +1 -1
  27. package/dist/lib/config-migration.js +1 -1
  28. package/dist/lib/container-credential-sync.js +1 -1
  29. package/dist/lib/container-tokens.js +1 -1
  30. package/dist/lib/data-dir.js +1 -1
  31. package/dist/lib/deployment-history.js +1 -1
  32. package/dist/lib/deployment-service.js +1 -1
  33. package/dist/lib/docker-utils.js +1 -1
  34. package/dist/lib/email.js +1 -1
  35. package/dist/lib/emailTemplates.js +1 -1
  36. package/dist/lib/entitlement.js +1 -1
  37. package/dist/lib/fetch-utils.js +1 -1
  38. package/dist/lib/git-commit-details-route.js +1 -1
  39. package/dist/lib/git-history-diff-guardrails.js +1 -1
  40. package/dist/lib/git-provider-service.js +1 -1
  41. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  42. package/dist/lib/git-provider-setup/index.js +1 -1
  43. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  44. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  45. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  46. package/dist/lib/git-providers/github-app-provider.js +1 -1
  47. package/dist/lib/git-providers/index.js +1 -1
  48. package/dist/lib/git-providers/provider-factory.js +1 -1
  49. package/dist/lib/git-providers/provider-interface.js +1 -1
  50. package/dist/lib/github-urls.js +1 -1
  51. package/dist/lib/group-objective-linking.js +1 -1
  52. package/dist/lib/jira-client.js +1 -1
  53. package/dist/lib/judge-blinding.js +1 -1
  54. package/dist/lib/logger.js +1 -1
  55. package/dist/lib/migration-to-scoped-rbac.js +1 -0
  56. package/dist/lib/model-fetcher.js +1 -1
  57. package/dist/lib/notifications.js +1 -1
  58. package/dist/lib/objective-context.js +1 -1
  59. package/dist/lib/oidc-auth.js +1 -1
  60. package/dist/lib/oidc-device-flow.js +1 -1
  61. package/dist/lib/passwordTokens.js +1 -1
  62. package/dist/lib/permission-resolver.js +1 -0
  63. package/dist/lib/pin-cascade.js +1 -1
  64. package/dist/lib/provider-accounts.js +1 -1
  65. package/dist/lib/provider-oauth.js +1 -1
  66. package/dist/lib/provider-profile.js +1 -1
  67. package/dist/lib/provider-token-refresh.js +1 -1
  68. package/dist/lib/request-url.js +1 -1
  69. package/dist/lib/rewind.js +1 -1
  70. package/dist/lib/role-definitions.js +1 -0
  71. package/dist/lib/roles.js +1 -1
  72. package/dist/lib/secrets.js +1 -1
  73. package/dist/lib/setup-repo-git-auth.js +1 -1
  74. package/dist/lib/state-capture.js +1 -1
  75. package/dist/lib/static-files.js +1 -1
  76. package/dist/lib/task-name-format.js +1 -1
  77. package/dist/lib/task-name-generator.js +1 -1
  78. package/dist/lib/task-source-metadata.js +1 -0
  79. package/dist/lib/teams.js +1 -0
  80. package/dist/lib/user-git-oauth.js +1 -1
  81. package/dist/lib/user-git-tokens.js +1 -1
  82. package/dist/lib/users.js +1 -1
  83. package/dist/middleware/requireAuth.js +1 -1
  84. package/dist/middleware/requireInit.js +1 -1
  85. package/dist/middleware/requirePermission.js +1 -1
  86. package/dist/package-lock.json +211 -21
  87. package/dist/package.json +2 -1
  88. package/dist/playwright.config.js +1 -0
  89. package/dist/routes/apiKeys.js +1 -1
  90. package/dist/routes/auth-oidc.js +1 -1
  91. package/dist/routes/auth.js +1 -1
  92. package/dist/routes/automations.js +1 -0
  93. package/dist/routes/bindings.js +1 -0
  94. package/dist/routes/build.js +1 -1
  95. package/dist/routes/containers.js +1 -1
  96. package/dist/routes/deploy-task.js +1 -1
  97. package/dist/routes/environment-management.js +1 -1
  98. package/dist/routes/environments.js +1 -1
  99. package/dist/routes/external-skills.js +1 -1
  100. package/dist/routes/git-credentials.js +1 -1
  101. package/dist/routes/git-oauth.js +1 -1
  102. package/dist/routes/git-provider-setup.js +1 -1
  103. package/dist/routes/health.js +1 -1
  104. package/dist/routes/jira.js +1 -1
  105. package/dist/routes/objective-management.js +1 -1
  106. package/dist/routes/password.js +1 -1
  107. package/dist/routes/prompt.js +1 -1
  108. package/dist/routes/provider-auth.js +1 -1
  109. package/dist/routes/qa.js +1 -1
  110. package/dist/routes/roles.js +1 -0
  111. package/dist/routes/settings.js +1 -1
  112. package/dist/routes/skill-management.js +1 -1
  113. package/dist/routes/skills.js +1 -1
  114. package/dist/routes/tasks.js +1 -1
  115. package/dist/routes/teams.js +1 -0
  116. package/dist/routes/templates.js +1 -1
  117. package/dist/routes/test-task.js +1 -1
  118. package/dist/routes/test.js +1 -1
  119. package/dist/routes/users.js +1 -1
  120. package/dist/routes/visualizations.js +1 -1
  121. package/dist/scripts/create-user.js +1 -1
  122. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  123. package/dist/scripts/migrate-to-scoped-rbac.js +2 -0
  124. package/dist/start.js +1 -1
  125. package/dist/start.js.bak +1381 -0
  126. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  127. package/dist/web-ui/public/activity-feed.js +1 -1
  128. package/dist/web-ui/public/activity-formatters.js +1 -1
  129. package/dist/web-ui/public/agent-event-parser.js +1 -1
  130. package/dist/web-ui/public/app.js +1 -1
  131. package/dist/web-ui/public/approve-dialog.js +1 -1
  132. package/dist/web-ui/public/automation-links.js +1 -0
  133. package/dist/web-ui/public/automation-schedule.js +1 -0
  134. package/dist/web-ui/public/comments-widget.js +1 -1
  135. package/dist/web-ui/public/diff-utils.js +1 -1
  136. package/dist/web-ui/public/docs/_sidebar.md +1 -0
  137. package/dist/web-ui/public/docs/admin/automations.md +75 -0
  138. package/dist/web-ui/public/docs/admin/users-and-roles.md +14 -4
  139. package/dist/web-ui/public/environments.css +247 -125
  140. package/dist/web-ui/public/environments.html +346 -2
  141. package/dist/web-ui/public/environments.js +1 -1
  142. package/dist/web-ui/public/feedback-widget.css +42 -0
  143. package/dist/web-ui/public/feedback-widget.js +1 -1
  144. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  145. package/dist/web-ui/public/git-history.html +15 -0
  146. package/dist/web-ui/public/git-history.js +1 -1
  147. package/dist/web-ui/public/git-status.js +1 -1
  148. package/dist/web-ui/public/index.html +27 -0
  149. package/dist/web-ui/public/index.js +1 -1
  150. package/dist/web-ui/public/login.js +1 -1
  151. package/dist/web-ui/public/markdown-editor.js +1 -1
  152. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  153. package/dist/web-ui/public/modal-maximize.js +1 -1
  154. package/dist/web-ui/public/notifications.js +1 -1
  155. package/dist/web-ui/public/pr-dialog.js +1 -1
  156. package/dist/web-ui/public/roles.html +247 -0
  157. package/dist/web-ui/public/roles.js +1 -0
  158. package/dist/web-ui/public/server-health.js +1 -1
  159. package/dist/web-ui/public/settings.html +62 -0
  160. package/dist/web-ui/public/settings.js +1 -1
  161. package/dist/web-ui/public/setup-password.js +1 -1
  162. package/dist/web-ui/public/skills.html +15 -0
  163. package/dist/web-ui/public/skills.js +1 -1
  164. package/dist/web-ui/public/sse-client.js +1 -1
  165. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  166. package/dist/web-ui/public/styles.css +198 -161
  167. package/dist/web-ui/public/task.html +2 -2
  168. package/dist/web-ui/public/task.js +1 -1
  169. package/dist/web-ui/public/teams.html +285 -0
  170. package/dist/web-ui/public/teams.js +1 -0
  171. package/dist/web-ui/public/terminal.js +1 -1
  172. package/dist/web-ui/public/theme.js +1 -1
  173. package/dist/web-ui/public/users.html +87 -29
  174. package/dist/web-ui/public/users.js +1 -1
  175. package/dist/web-ui/public/variant-grouping.js +1 -1
  176. package/package.json +6 -3
@@ -1 +1 @@
1
- const _0x4d1a2e=_0xbd5f;(function(_0x5cfc46,_0x55d730){const _0x2f569f=_0xbd5f,_0x20fd83=_0x5cfc46();while(!![]){try{const _0x15fd19=-parseInt(_0x2f569f(0x179))/0x1*(-parseInt(_0x2f569f(0x1bb))/0x2)+parseInt(_0x2f569f(0x1cc))/0x3*(parseInt(_0x2f569f(0x1a9))/0x4)+-parseInt(_0x2f569f(0x188))/0x5+-parseInt(_0x2f569f(0x1b9))/0x6+parseInt(_0x2f569f(0x1b6))/0x7+-parseInt(_0x2f569f(0x192))/0x8*(-parseInt(_0x2f569f(0x19a))/0x9)+-parseInt(_0x2f569f(0x1c7))/0xa*(parseInt(_0x2f569f(0x193))/0xb);if(_0x15fd19===_0x55d730)break;else _0x20fd83['push'](_0x20fd83['shift']());}catch(_0x42dc3a){_0x20fd83['push'](_0x20fd83['shift']());}}}(_0x1ba5,0x8560c));function _0xbd5f(_0x4382e7,_0x3bda40){_0x4382e7=_0x4382e7-0x175;const _0x1ba5b6=_0x1ba5();let _0xbd5f5=_0x1ba5b6[_0x4382e7];if(_0xbd5f['WqvbGT']===undefined){var _0x722455=function(_0x318e2f){const _0x2921ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x261697='',_0x1fb1df='';for(let _0x2b0606=0x0,_0x31a474,_0x5d4936,_0xd41ecd=0x0;_0x5d4936=_0x318e2f['charAt'](_0xd41ecd++);~_0x5d4936&&(_0x31a474=_0x2b0606%0x4?_0x31a474*0x40+_0x5d4936:_0x5d4936,_0x2b0606++%0x4)?_0x261697+=String['fromCharCode'](0xff&_0x31a474>>(-0x2*_0x2b0606&0x6)):0x0){_0x5d4936=_0x2921ba['indexOf'](_0x5d4936);}for(let _0x2c9bc1=0x0,_0x268b56=_0x261697['length'];_0x2c9bc1<_0x268b56;_0x2c9bc1++){_0x1fb1df+='%'+('00'+_0x261697['charCodeAt'](_0x2c9bc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1fb1df);};_0xbd5f['mHmpFg']=_0x722455,_0xbd5f['sraSVj']={},_0xbd5f['WqvbGT']=!![];}const _0x4895d2=_0x1ba5b6[0x0],_0x445948=_0x4382e7+_0x4895d2,_0x1da6f2=_0xbd5f['sraSVj'][_0x445948];return!_0x1da6f2?(_0xbd5f5=_0xbd5f['mHmpFg'](_0xbd5f5),_0xbd5f['sraSVj'][_0x445948]=_0xbd5f5):_0xbd5f5=_0x1da6f2,_0xbd5f5;}function isSharedWorkerSupported(){const _0x4d604d=_0xbd5f;return typeof SharedWorker!==_0x4d604d(0x18d);}function eventTypeToHandler(_0x261697){const _0x3c4286=_0xbd5f;if(_0x261697===_0x3c4286(0x18a))return _0x3c4286(0x1c5);if(_0x261697===_0x3c4286(0x19f))return _0x3c4286(0x1c9);return'on'+_0x261697[_0x3c4286(0x197)]('-')[_0x3c4286(0x1d6)](_0x1fb1df=>_0x1fb1df[_0x3c4286(0x185)](0x0)[_0x3c4286(0x1c2)]()+_0x1fb1df[_0x3c4286(0x190)](0x1))[_0x3c4286(0x1b7)]('');}const TASK_STREAM_EVENTS=[_0x4d1a2e(0x1d5),'logs','metadata',_0x4d1a2e(0x1cf),_0x4d1a2e(0x1a2),_0x4d1a2e(0x1cb),_0x4d1a2e(0x1ce)];export class TaskUpdatesClient{constructor(){const _0x1f5827=_0x4d1a2e;this[_0x1f5827(0x1b5)]=new Map(),this['worker']=null,this[_0x1f5827(0x1b0)]=null,this[_0x1f5827(0x17a)]=null,this[_0x1f5827(0x183)]=null,this[_0x1f5827(0x1d4)]=null,this['reconnectAttempts']=0x0,this[_0x1f5827(0x199)]=isSharedWorkerSupported(),this['connected']=![],this[_0x1f5827(0x187)]=new Map(),this[_0x1f5827(0x18b)]=0x0,this[_0x1f5827(0x1c6)]=this[_0x1f5827(0x1c6)][_0x1f5827(0x1ae)](this),this[_0x1f5827(0x182)]=this[_0x1f5827(0x182)]['bind'](this);}['on'](_0x2b0606,_0x31a474){const _0x383957=_0x4d1a2e;return!this[_0x383957(0x1b5)]['has'](_0x2b0606)&&this[_0x383957(0x1b5)][_0x383957(0x176)](_0x2b0606,new Set()),this['listeners'][_0x383957(0x1be)](_0x2b0606)[_0x383957(0x18f)](_0x31a474),this;}[_0x4d1a2e(0x180)](_0x5d4936,_0xd41ecd){const _0xc7c4f7=_0x4d1a2e;return this[_0xc7c4f7(0x1b5)][_0xc7c4f7(0x1c3)](_0x5d4936)&&this['listeners'][_0xc7c4f7(0x1be)](_0x5d4936)['delete'](_0xd41ecd),this;}['_emit'](_0x2c9bc1,_0x268b56){const _0xa86565=_0x4d1a2e;this[_0xa86565(0x1b5)][_0xa86565(0x1c3)](_0x2c9bc1)&&this[_0xa86565(0x1b5)][_0xa86565(0x1be)](_0x2c9bc1)[_0xa86565(0x1b8)](_0x277b91=>{const _0x37c71e=_0xa86565;try{_0x277b91(_0x268b56);}catch(_0x162a5a){console[_0x37c71e(0x19f)](_0x37c71e(0x195)+_0x2c9bc1+_0x37c71e(0x17f),_0x162a5a);}});}[_0x4d1a2e(0x1da)](_0x619578='me'){const _0x2493aa=_0x4d1a2e;this['userId']=_0x619578,this['useSharedWorker']?this[_0x2493aa(0x1a4)](_0x619578):this[_0x2493aa(0x1d2)](_0x619578);}['_connectViaWorker'](_0xafffda){const _0x500b54=_0x4d1a2e;try{this[_0x500b54(0x1b4)](),this[_0x500b54(0x1b0)]['postMessage']({'action':_0x500b54(0x1da),'userId':_0xafffda});}catch(_0xc26143){console[_0x500b54(0x19f)](_0x500b54(0x1d1),_0xc26143),this[_0x500b54(0x199)]=![],this[_0x500b54(0x1d2)](_0xafffda);}}['_ensureWorker'](){const _0x1e64fd=_0x4d1a2e;!this[_0x1e64fd(0x1a3)]&&(this[_0x1e64fd(0x1a3)]=new SharedWorker('/sse-shared-worker.js'),this[_0x1e64fd(0x1b0)]=this[_0x1e64fd(0x1a3)][_0x1e64fd(0x1b0)],this[_0x1e64fd(0x1b0)]['onmessage']=this[_0x1e64fd(0x1c6)],this[_0x1e64fd(0x1b0)][_0x1e64fd(0x198)]=_0x56e229=>{const _0x1951e5=_0x1e64fd;console[_0x1951e5(0x19f)]('[SSE\x20Client]\x20Worker\x20message\x20error:',_0x56e229),this[_0x1951e5(0x1bf)](_0x1951e5(0x19f),{'error':'Worker\x20message\x20error'});},this['port'][_0x1e64fd(0x1aa)]());}['_handleWorkerMessage'](_0x49378c){const _0x5374cd=_0x4d1a2e,_0x48e5be=_0x49378c[_0x5374cd(0x1cd)];if(_0x48e5be[_0x5374cd(0x1d9)]&&_0x48e5be[_0x5374cd(0x1d9)]['startsWith'](_0x5374cd(0x1ad))){this[_0x5374cd(0x1af)](_0x48e5be);return;}switch(_0x48e5be[_0x5374cd(0x1d9)]){case _0x5374cd(0x18a):this[_0x5374cd(0x18a)]=!![],this[_0x5374cd(0x1bf)]('connected',{});break;case'snapshot':case'activity':case _0x5374cd(0x1d0):case _0x5374cd(0x1bc):case _0x5374cd(0x1a0):try{const _0x379882=JSON[_0x5374cd(0x1b2)](_0x48e5be[_0x5374cd(0x1cd)]);this[_0x5374cd(0x1bf)](_0x48e5be['type'],_0x379882);}catch(_0x22b5e5){console[_0x5374cd(0x19f)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x48e5be[_0x5374cd(0x1d9)]+_0x5374cd(0x1a8),_0x22b5e5);}break;case _0x5374cd(0x19f):this['connected']=![],this['_emit'](_0x5374cd(0x19f),_0x48e5be);break;default:console[_0x5374cd(0x1b3)](_0x5374cd(0x19c),_0x48e5be[_0x5374cd(0x1d9)]);}}[_0x4d1a2e(0x1af)](_0x6cf98){const _0x440b5e=_0x4d1a2e,{taskId:_0x19cf9b,type:_0x2b57b9,data:_0x443c8a}=_0x6cf98,_0x416af7=this['_taskSubscriptions'][_0x440b5e(0x1be)](_0x19cf9b);if(!_0x416af7||_0x416af7[_0x440b5e(0x18e)]===0x0)return;const _0x4e65cc=_0x2b57b9[_0x440b5e(0x19b)]('task:',''),_0x6fabc7=eventTypeToHandler(_0x4e65cc);_0x416af7['forEach'](_0x2b1501=>{const _0x49f86b=_0x440b5e;if(_0x2b1501[_0x49f86b(0x1a5)][_0x6fabc7])try{const _0x5affa0=typeof _0x443c8a===_0x49f86b(0x1d7)?JSON[_0x49f86b(0x1b2)](_0x443c8a):_0x443c8a;_0x2b1501[_0x49f86b(0x1a5)][_0x6fabc7](_0x5affa0);}catch(_0x331a8c){console['error'](_0x49f86b(0x1ba)+_0x4e65cc+_0x49f86b(0x1d3),_0x331a8c);}});}['_connectDirect'](_0x19353f){const _0x3f7270=_0x4d1a2e;this[_0x3f7270(0x17a)]&&(this['eventSource'][_0x3f7270(0x189)](),this[_0x3f7270(0x17a)]=null);const _0x54fdd7=_0x19353f&&_0x19353f!=='me'?_0x3f7270(0x19e)+_0x19353f:'';try{this[_0x3f7270(0x17a)]=new EventSource(_0x3f7270(0x1bd)+_0x54fdd7),this[_0x3f7270(0x17a)]['addEventListener']('open',()=>{const _0x2771e6=_0x3f7270;this[_0x2771e6(0x18a)]=!![],this['reconnectAttempts']=0x0,this[_0x2771e6(0x1bf)]('connected',{});}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x178),_0x5f3474=>{const _0x146a91=_0x3f7270;this[_0x146a91(0x182)](_0x146a91(0x178),_0x5f3474),this['reconnectAttempts']=0x0;}),this[_0x3f7270(0x17a)]['addEventListener'](_0x3f7270(0x1d5),_0x111843=>{const _0x17888f=_0x3f7270;this['_handleDirectSSE'](_0x17888f(0x1d5),_0x111843);}),this[_0x3f7270(0x17a)]['addEventListener'](_0x3f7270(0x1d0),_0x372e32=>{const _0x7a4521=_0x3f7270;this[_0x7a4521(0x182)]('status',_0x372e32);}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x1bc),_0x675870=>{const _0x1bcfa4=_0x3f7270;this[_0x1bcfa4(0x182)](_0x1bcfa4(0x1bc),_0x675870);}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x1a0),_0x229777=>{const _0x4b5449=_0x3f7270;this[_0x4b5449(0x182)]('queue-position',_0x229777);}),this[_0x3f7270(0x17a)]['addEventListener']('error',_0x420f0a=>{const _0x2f0c08=_0x3f7270;console[_0x2f0c08(0x19f)](_0x2f0c08(0x184),_0x420f0a),this['connected']=![],this[_0x2f0c08(0x1bf)](_0x2f0c08(0x19f),{'error':_0x2f0c08(0x196)}),this[_0x2f0c08(0x17a)]&&(this[_0x2f0c08(0x17a)][_0x2f0c08(0x189)](),this[_0x2f0c08(0x17a)]=null),this[_0x2f0c08(0x191)]();});}catch(_0x506255){console['error'](_0x3f7270(0x177),_0x506255),this[_0x3f7270(0x1bf)]('error',{'error':_0x506255[_0x3f7270(0x1c4)]}),this[_0x3f7270(0x191)]();}}['_handleDirectSSE'](_0x19cecb,_0xfd903b){const _0x15490c=_0x4d1a2e;try{const _0x102b98=JSON[_0x15490c(0x1b2)](_0xfd903b[_0x15490c(0x1cd)]);this[_0x15490c(0x1bf)](_0x19cecb,_0x102b98);}catch(_0x925760){console[_0x15490c(0x19f)](_0x15490c(0x19d)+_0x19cecb+_0x15490c(0x1a8),_0x925760);}}['_scheduleReconnect'](){const _0x1bd57b=_0x4d1a2e;this['reconnectTimeout']&&clearTimeout(this[_0x1bd57b(0x1d4)]);const _0x5d7c5b=Math[_0x1bd57b(0x17c)](0x3e8*Math[_0x1bd57b(0x181)](0x2,this['reconnectAttempts']),0x7530);this[_0x1bd57b(0x1b1)]++,console[_0x1bd57b(0x1a6)](_0x1bd57b(0x1d8)+_0x5d7c5b+'ms'),this[_0x1bd57b(0x1d4)]=setTimeout(()=>{const _0x428740=_0x1bd57b;this[_0x428740(0x1d2)](this[_0x428740(0x183)]);},_0x5d7c5b);}[_0x4d1a2e(0x17b)](_0x278363){const _0x21a694=_0x4d1a2e;if(_0x278363===this[_0x21a694(0x183)])return;this['userId']=_0x278363;if(this[_0x21a694(0x199)]&&this[_0x21a694(0x1b0)])this['port']['postMessage']({'action':'changeFilter','userId':_0x278363});else this[_0x21a694(0x17a)]&&this[_0x21a694(0x1d2)](_0x278363);}[_0x4d1a2e(0x1c8)](_0x4e0ffc,_0x1a5ff9){const _0x5c1e22=_0x4d1a2e;return this[_0x5c1e22(0x199)]?this[_0x5c1e22(0x1a7)](_0x4e0ffc,_0x1a5ff9):this['_subscribeTaskDirect'](_0x4e0ffc,_0x1a5ff9);}['unsubscribeTask'](_0x166f97){const _0x54222f=_0x4d1a2e;if(!_0x166f97)return;_0x166f97[_0x54222f(0x1d9)]===_0x54222f(0x1a3)?this[_0x54222f(0x194)](_0x166f97):this[_0x54222f(0x186)](_0x166f97);}[_0x4d1a2e(0x1a7)](_0x56758c,_0x14e704){const _0x494c14=_0x4d1a2e;try{this[_0x494c14(0x1b4)]();}catch(_0x1f2a9a){return console[_0x494c14(0x19f)]('[SSE\x20Client]\x20SharedWorker\x20failed\x20for\x20task\x20sub,\x20falling\x20back:',_0x1f2a9a),this[_0x494c14(0x199)]=![],this[_0x494c14(0x1ac)](_0x56758c,_0x14e704);}const _0x4e090e=++this['_taskSubIdCounter'],_0x815f98={'type':_0x494c14(0x1a3),'taskId':_0x56758c,'handlers':_0x14e704,'id':_0x4e090e};return!this[_0x494c14(0x187)][_0x494c14(0x1c3)](_0x56758c)&&(this['_taskSubscriptions'][_0x494c14(0x176)](_0x56758c,new Set()),this['port']['postMessage']({'action':_0x494c14(0x1c8),'taskId':_0x56758c})),this[_0x494c14(0x187)]['get'](_0x56758c)[_0x494c14(0x18f)](_0x815f98),_0x815f98;}[_0x4d1a2e(0x194)](_0x44d92a){const _0x3501ce=_0x4d1a2e,{taskId:_0xfb4cd4}=_0x44d92a,_0x39a57b=this[_0x3501ce(0x187)][_0x3501ce(0x1be)](_0xfb4cd4);if(_0x39a57b){_0x39a57b[_0x3501ce(0x17d)](_0x44d92a);if(_0x39a57b[_0x3501ce(0x18e)]===0x0){this[_0x3501ce(0x187)]['delete'](_0xfb4cd4);try{this[_0x3501ce(0x1b0)]&&this[_0x3501ce(0x1b0)][_0x3501ce(0x1c0)]({'action':_0x3501ce(0x1db),'taskId':_0xfb4cd4});}catch(_0xaef4d2){}}}}[_0x4d1a2e(0x1ac)](_0x9dd06d,_0x474f33){const _0xa9edc9=_0x4d1a2e,_0xd1c9b9=++this[_0xa9edc9(0x18b)],_0x2fca45=new EventSource(_0xa9edc9(0x1ca)+_0x9dd06d+'/stream'),_0x3fc088={'type':'direct','taskId':_0x9dd06d,'handlers':_0x474f33,'id':_0xd1c9b9,'eventSource':_0x2fca45};!this[_0xa9edc9(0x187)]['has'](_0x9dd06d)&&this['_taskSubscriptions'][_0xa9edc9(0x176)](_0x9dd06d,new Set());this[_0xa9edc9(0x187)][_0xa9edc9(0x1be)](_0x9dd06d)[_0xa9edc9(0x18f)](_0x3fc088);for(const _0x504e64 of TASK_STREAM_EVENTS){const _0x457ec8=eventTypeToHandler(_0x504e64);_0x2fca45['addEventListener'](_0x504e64,_0x1be195=>{const _0x56cc33=_0xa9edc9;if(_0x474f33[_0x457ec8])try{const _0x495aa5=JSON[_0x56cc33(0x1b2)](_0x1be195[_0x56cc33(0x1cd)]);_0x474f33[_0x457ec8](_0x495aa5);}catch(_0x251f91){console[_0x56cc33(0x19f)](_0x56cc33(0x17e)+_0x504e64+':',_0x251f91);}});}return _0x2fca45['addEventListener']('open',()=>{const _0x2dd9b9=_0xa9edc9;if(_0x474f33['onConnected'])_0x474f33[_0x2dd9b9(0x1c5)]();}),_0x2fca45[_0xa9edc9(0x175)](_0xa9edc9(0x19f),()=>{const _0x1d91c3=_0xa9edc9;if(_0x474f33['onError'])_0x474f33[_0x1d91c3(0x1c9)]({'error':_0x1d91c3(0x196)});}),_0x3fc088;}[_0x4d1a2e(0x186)](_0x33c253){const _0xd995a=_0x4d1a2e;_0x33c253[_0xd995a(0x17a)]&&(_0x33c253[_0xd995a(0x17a)][_0xd995a(0x189)](),_0x33c253[_0xd995a(0x17a)]=null);const _0x4e26e7=this['_taskSubscriptions'][_0xd995a(0x1be)](_0x33c253['taskId']);_0x4e26e7&&(_0x4e26e7[_0xd995a(0x17d)](_0x33c253),_0x4e26e7[_0xd995a(0x18e)]===0x0&&this['_taskSubscriptions']['delete'](_0x33c253[_0xd995a(0x1c1)]));}[_0x4d1a2e(0x1ab)](){const _0x1949c1=_0x4d1a2e;this[_0x1949c1(0x1d4)]&&(clearTimeout(this['reconnectTimeout']),this[_0x1949c1(0x1d4)]=null);this[_0x1949c1(0x187)][_0x1949c1(0x1b8)]((_0x35ffd0,_0x386e11)=>{const _0x5196b2=_0x1949c1;_0x35ffd0[_0x5196b2(0x1b8)](_0xa9847d=>{const _0x2eb9ec=_0x5196b2;_0xa9847d[_0x2eb9ec(0x1d9)]==='direct'&&_0xa9847d[_0x2eb9ec(0x17a)]&&_0xa9847d[_0x2eb9ec(0x17a)][_0x2eb9ec(0x189)]();});}),this[_0x1949c1(0x187)][_0x1949c1(0x18c)]();if(this[_0x1949c1(0x199)]&&this['port'])try{this['port']['postMessage']({'action':_0x1949c1(0x1ab)});}catch(_0x57be8d){}this[_0x1949c1(0x17a)]&&(this[_0x1949c1(0x17a)][_0x1949c1(0x189)](),this['eventSource']=null),this[_0x1949c1(0x18a)]=![];}[_0x4d1a2e(0x1a1)](){return this['connected'];}['isUsingSharedWorker'](){const _0x47f5a5=_0x4d1a2e;return this[_0x47f5a5(0x199)];}}let globalClient=null;function _0x1ba5(){const _0xe8160b=['C25HChnOB3q','otK5odH6wxb5C1e','zxzLBNrtB3vYy2u','y2HHBMDLrMLSDgvY','BwLU','zgvSzxrL','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','igXPC3rLBMvYoG','B2zM','Cg93','x2HHBMrSzurPCMvJDfntrq','DxnLCKLK','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','y2HHCKf0','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','x3rHC2TtDwjZy3jPChrPB25Z','mtqXotyYnwzABhnOuW','y2XVC2u','y29UBMvJDgvK','x3rHC2TtDwjjzenVDw50zxi','y2XLyxi','Dw5KzwzPBMvK','C2L6zq','ywrK','C2XPy2u','x3nJAgvKDwXLuMvJB25Uzwn0','mZi4rhD5wLry','mtqZBhz6ruDw','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','w1ntrsbdBgLLBNrDievYCM9YigLUia','q29UBMvJDgLVBIbLCNjVCG','C3bSAxq','B25TzxnZywDLzxjYB3i','DxnLu2HHCMvKv29YA2vY','ote0ntHAA3Les1K','CMvWBgfJzq','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','p3vZzxjjzd0','zxjYB3i','CxvLDwuTCg9ZAxrPB24','AxndB25Uzwn0zwq','y2HHBMDLzc1MAwXLCW','D29YA2vY','x2nVBM5Ly3rwAwfxB3jRzxi','AgfUzgXLCNm','Bg9N','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','igrHDge6','mtGZmdqYoeneuKTJAa','C3rHCNq','zgLZy29UBMvJDa','x3n1yNnJCMLIzvrHC2TeAxjLy3q','DgfZAZO','yMLUza','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','Cg9YDa','CMvJB25Uzwn0qxr0zw1WDhm','CgfYC2u','D2fYBG','x2vUC3vYzvDVCMTLCG','BgLZDgvUzxjZ','ntqYnJi0nLbgBfDxwq','AM9PBG','zM9YrwfJAa','mtaZody3ofrdBuXNCa','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','mtznyLfNsM8','BMv3lxrHC2S','l3rHC2TZl3vWzgf0zxm','z2v0','x2vTAxq','Cg9ZDe1LC3nHz2u','DgfZA0LK','Dg9vChbLCKnHC2u','AgfZ','BwvZC2fNzq','B25dB25Uzwn0zwq','x2HHBMrSzvDVCMTLCK1LC3nHz2u','mteXmJi5meXPvNP0qW','C3vIC2nYAwjLvgfZAW','B25fCNjVCG','l3rHC2TZlW','yxbWlxnLCNzLCI1ZDgf0Dxm','m1PgAgvTEG','zgf0yq','y29TCgXLDgu','C3vTBwfYEq','C3rHDhvZ','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','x2nVBM5Ly3reAxjLy3q','igHHBMrSzxi6','CMvJB25Uzwn0vgLTzw91Da','ywn0AxzPDhK','BwfW','C3rYAw5N','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','DhLWzq','y29UBMvJDa','Dw5ZDwjZy3jPyMvuyxnR','ywrKrxzLBNrmAxn0zw5LCG','C2v0','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6'];_0x1ba5=function(){return _0xe8160b;};return _0x1ba5();}export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
1
+ function _0x5f97(){const _0x320965=['Cg9ZDe1LC3nHz2u','CMvWBgfJzq','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','zgf0yq','ntqYmdm4CePYy0rR','Dg9vChbLCKnHC2u','BwvZC2fNzq','odiYmdCYogHfC3LRqG','C3rHCNrZv2L0Aa','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','y29UBMvJDa','igrHDge6','C25HChnOB3q','B25TzxnZywDLzxjYB3i','Cg93','D2fYBG','CMvJB25Uzwn0vgLTzw91Da','BMv3lxrHC2S','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','CxvLDwuTCg9ZAxrPB24','C2v0','C2L6zq','mtfYue1vrKS','ndKWmJm5nu9QAxHIyq','C3vTBwfYEq','x2vTAxq','B3bLBG','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','C3rHCNq','ywrK','AM9PBG','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','x2HHBMrSzvDVCMTLCK1LC3nHz2u','yxbWlxnLCNzLCI1ZDgf0Dxm','BwLU','DgfZA0LK','v29YA2vYig1LC3nHz2uGzxjYB3i','AgfZ','B25fCNjVCG','l3n0CMvHBq','y2HHBMDLzc1MAwXLCW','zM9YrwfJAa','BgLZDgvUzxjZ','ywn0AxzPDhK','zgLYzwn0','C2XPy2u','x3n1yNnJCMLIzvrHC2TeAxjLy3q','zxjYB3i','Dw5ZDwjZy3jPyMvuyxnR','nJeWnJeXB2TsA2Tu','x2HHBMrSzurPCMvJDfntrq','DxnLu2HHCMvKv29YA2vY','B25TzxnZywDL','D29YA2vY','C3rHDhvZ','zxzLBNrtB3vYy2u','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','y29TCgXLDgu','ywrKrxzLBNrmAxn0zw5LCG','mZe1oeX5zgPuCa','DgfZAZO','x3rHC2TtDwjjzenVDw50zxi','q29UBMvJDgLVBIbLCNjVCG','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','mZe2mZaXotbUvK1KuKK','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','AgfUzgXLCNm','CgfYC2u','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','DxnLCKLK','x2vUC3vYzvDVCMTLCG','B2zM','C3bSAxq','zgvSzxrL','C3vIC2nYAwjLvgfZAW','AxnvC2LUz1nOyxjLzfDVCMTLCG','mteYody2mdnzweXvs1G','y29UBMvJDgvK','nJyYwuLcsvDc','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','y2HHBMDLrMLSDgvY','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','BwfW','Dw5KzwzPBMvK','mZbMB3nwrhm','yMLUza','z2v0','Cg9YDa','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','x2nVBM5Ly3reAxjLy3q','igHHBMrSzxi6','CMvJB25Uzwn0qxr0zw1WDhm','nhrrz2fTDa','x3rHC2TtDwjZy3jPChrPB25Z','l3rHC2TZl3vWzgf0zxm','Bg9NCW','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','zgLZy29UBMvJDa','y2XVC2u','DhLWzq','x3nJAgvKDwXLuMvJB25Uzwn0'];_0x5f97=function(){return _0x320965;};return _0x5f97();}const _0x16a286=_0x56a8;(function(_0x352fde,_0x1672b6){const _0x5f2609=_0x56a8,_0x4a77a7=_0x352fde();while(!![]){try{const _0x286cb0=-parseInt(_0x5f2609(0x22d))/0x1*(-parseInt(_0x5f2609(0x219))/0x2)+parseInt(_0x5f2609(0x20e))/0x3+parseInt(_0x5f2609(0x1d4))/0x4*(-parseInt(_0x5f2609(0x1f4))/0x5)+-parseInt(_0x5f2609(0x233))/0x6*(parseInt(_0x5f2609(0x1e1))/0x7)+-parseInt(_0x5f2609(0x1e4))/0x8+-parseInt(_0x5f2609(0x22b))/0x9+parseInt(_0x5f2609(0x21f))/0xa*(parseInt(_0x5f2609(0x1f3))/0xb);if(_0x286cb0===_0x1672b6)break;else _0x4a77a7['push'](_0x4a77a7['shift']());}catch(_0x2e49b1){_0x4a77a7['push'](_0x4a77a7['shift']());}}}(_0x5f97,0xba2b3));function isSharedWorkerSupported(){const _0x4137bd=_0x56a8;return typeof SharedWorker!==_0x4137bd(0x232);}function _0x56a8(_0x26881e,_0x7d5326){_0x26881e=_0x26881e-0x1d3;const _0x5f97ce=_0x5f97();let _0x56a8f4=_0x5f97ce[_0x26881e];if(_0x56a8['BQepDu']===undefined){var _0x595f2d=function(_0x5d78a5){const _0x53a97a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16a4a8='',_0x348da2='';for(let _0x49d54f=0x0,_0x19097d,_0x4fc463,_0x24f494=0x0;_0x4fc463=_0x5d78a5['charAt'](_0x24f494++);~_0x4fc463&&(_0x19097d=_0x49d54f%0x4?_0x19097d*0x40+_0x4fc463:_0x4fc463,_0x49d54f++%0x4)?_0x16a4a8+=String['fromCharCode'](0xff&_0x19097d>>(-0x2*_0x49d54f&0x6)):0x0){_0x4fc463=_0x53a97a['indexOf'](_0x4fc463);}for(let _0xd9afcf=0x0,_0x3af4c8=_0x16a4a8['length'];_0xd9afcf<_0x3af4c8;_0xd9afcf++){_0x348da2+='%'+('00'+_0x16a4a8['charCodeAt'](_0xd9afcf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x348da2);};_0x56a8['eqLzcG']=_0x595f2d,_0x56a8['ykXJfD']={},_0x56a8['BQepDu']=!![];}const _0x536603=_0x5f97ce[0x0],_0x27c0c3=_0x26881e+_0x536603,_0x230be3=_0x56a8['ykXJfD'][_0x27c0c3];return!_0x230be3?(_0x56a8f4=_0x56a8['eqLzcG'](_0x56a8f4),_0x56a8['ykXJfD'][_0x27c0c3]=_0x56a8f4):_0x56a8f4=_0x230be3,_0x56a8f4;}function eventTypeToHandler(_0x16a4a8){const _0x8a1887=_0x56a8;if(_0x16a4a8==='connected')return'onConnected';if(_0x16a4a8==='error')return _0x8a1887(0x203);return'on'+_0x16a4a8[_0x8a1887(0x227)]('-')[_0x8a1887(0x231)](_0x348da2=>_0x348da2['charAt'](0x0)[_0x8a1887(0x1e2)]()+_0x348da2[_0x8a1887(0x20a)](0x1))[_0x8a1887(0x1fb)]('');}const TASK_STREAM_EVENTS=['activity',_0x16a286(0x1d7),'metadata',_0x16a286(0x1f5),_0x16a286(0x205),_0x16a286(0x1fe),_0x16a286(0x217)];export class TaskUpdatesClient{constructor(){const _0x4232c1=_0x16a286;this['listeners']=new Map(),this[_0x4232c1(0x212)]=null,this[_0x4232c1(0x236)]=null,this[_0x4232c1(0x214)]=null,this[_0x4232c1(0x224)]=null,this[_0x4232c1(0x1ed)]=null,this[_0x4232c1(0x1d3)]=0x0,this[_0x4232c1(0x210)]=isSharedWorkerSupported(),this[_0x4232c1(0x22c)]=![],this['_taskSubscriptions']=new Map(),this[_0x4232c1(0x21b)]=0x0,this['_handleWorkerMessage']=this[_0x4232c1(0x1fd)][_0x4232c1(0x234)](this),this[_0x4232c1(0x20f)]=this[_0x4232c1(0x20f)]['bind'](this);}['on'](_0x49d54f,_0x19097d){const _0x561cc0=_0x16a286;return!this['listeners'][_0x561cc0(0x202)](_0x49d54f)&&this['listeners'][_0x561cc0(0x1f1)](_0x49d54f,new Set()),this[_0x561cc0(0x207)]['get'](_0x49d54f)[_0x561cc0(0x1fa)](_0x19097d),this;}[_0x16a286(0x226)](_0x4fc463,_0x24f494){const _0x23d0c1=_0x16a286;return this['listeners'][_0x23d0c1(0x202)](_0x4fc463)&&this[_0x23d0c1(0x207)][_0x23d0c1(0x235)](_0x4fc463)['delete'](_0x24f494),this;}[_0x16a286(0x1f6)](_0xd9afcf,_0x3af4c8){const _0x4ef5e9=_0x16a286;this[_0x4ef5e9(0x207)][_0x4ef5e9(0x202)](_0xd9afcf)&&this[_0x4ef5e9(0x207)][_0x4ef5e9(0x235)](_0xd9afcf)[_0x4ef5e9(0x206)](_0x3ca7b0=>{try{_0x3ca7b0(_0x3af4c8);}catch(_0x3114c7){console['error']('[SSE\x20Client]\x20Error\x20in\x20'+_0xd9afcf+'\x20listener:',_0x3114c7);}});}[_0x16a286(0x1e7)](_0x5caf1f='me'){const _0x31b9c2=_0x16a286;this[_0x31b9c2(0x224)]=_0x5caf1f,this[_0x31b9c2(0x210)]?this['_connectViaWorker'](_0x5caf1f):this[_0x31b9c2(0x238)](_0x5caf1f);}['_connectViaWorker'](_0x2b195b){const _0x52ccd7=_0x16a286;try{this['_ensureWorker'](),this[_0x52ccd7(0x236)][_0x52ccd7(0x1dd)]({'action':'connect','userId':_0x2b195b});}catch(_0x3504e0){console['error'](_0x52ccd7(0x215),_0x3504e0),this[_0x52ccd7(0x210)]=![],this[_0x52ccd7(0x238)](_0x2b195b);}}[_0x16a286(0x225)](){const _0x17abe0=_0x16a286;!this[_0x17abe0(0x212)]&&(this[_0x17abe0(0x212)]=new SharedWorker(_0x17abe0(0x237)),this[_0x17abe0(0x236)]=this[_0x17abe0(0x212)][_0x17abe0(0x236)],this[_0x17abe0(0x236)][_0x17abe0(0x211)]=this[_0x17abe0(0x1fd)],this[_0x17abe0(0x236)][_0x17abe0(0x1ea)]=_0x2f7338=>{const _0x5c06f7=_0x17abe0;console['error'](_0x5c06f7(0x1df),_0x2f7338),this[_0x5c06f7(0x1f6)](_0x5c06f7(0x20c),{'error':_0x5c06f7(0x201)});},this[_0x17abe0(0x236)][_0x17abe0(0x1f9)]());}[_0x16a286(0x1fd)](_0x3172ab){const _0x8071be=_0x16a286,_0x41b470=_0x3172ab[_0x8071be(0x1e0)];if(_0x41b470[_0x8071be(0x1db)]&&_0x41b470[_0x8071be(0x1db)][_0x8071be(0x1e5)](_0x8071be(0x21a))){this[_0x8071be(0x220)](_0x41b470);return;}switch(_0x41b470[_0x8071be(0x1db)]){case _0x8071be(0x22c):this[_0x8071be(0x22c)]=!![],this[_0x8071be(0x1f6)](_0x8071be(0x22c),{});break;case _0x8071be(0x1e9):case _0x8071be(0x208):case _0x8071be(0x213):case _0x8071be(0x1ee):case _0x8071be(0x1f0):try{const _0x139b1c=JSON[_0x8071be(0x222)](_0x41b470[_0x8071be(0x1e0)]);this[_0x8071be(0x1f6)](_0x41b470[_0x8071be(0x1db)],_0x139b1c);}catch(_0x180551){console[_0x8071be(0x20c)](_0x8071be(0x1fc)+_0x41b470['type']+'\x20data:',_0x180551);}break;case _0x8071be(0x20c):this['connected']=![],this[_0x8071be(0x1f6)](_0x8071be(0x20c),_0x41b470);break;default:console[_0x8071be(0x1ec)](_0x8071be(0x21d),_0x41b470[_0x8071be(0x1db)]);}}[_0x16a286(0x220)](_0x214509){const _0x3f1fc7=_0x16a286,{taskId:_0x4e6d88,type:_0x211bd3,data:_0x102182}=_0x214509,_0x3bc421=this['_taskSubscriptions']['get'](_0x4e6d88);if(!_0x3bc421||_0x3bc421[_0x3f1fc7(0x1f2)]===0x0)return;const _0x18ccc7=_0x211bd3[_0x3f1fc7(0x1de)]('task:',''),_0x5608ad=eventTypeToHandler(_0x18ccc7);_0x3bc421['forEach'](_0x24ba12=>{const _0x2be28c=_0x3f1fc7;if(_0x24ba12[_0x2be28c(0x221)][_0x5608ad])try{const _0x4b66e4=typeof _0x102182==='string'?JSON[_0x2be28c(0x222)](_0x102182):_0x102182;_0x24ba12[_0x2be28c(0x221)][_0x5608ad](_0x4b66e4);}catch(_0x34151d){console[_0x2be28c(0x20c)](_0x2be28c(0x1e6)+_0x18ccc7+_0x2be28c(0x239),_0x34151d);}});}[_0x16a286(0x238)](_0x1d5cab){const _0x3408e5=_0x16a286;this[_0x3408e5(0x214)]&&(this['eventSource'][_0x3408e5(0x1da)](),this[_0x3408e5(0x214)]=null);const _0x3efcc0=_0x1d5cab&&_0x1d5cab!=='me'?'?userId='+_0x1d5cab:'';try{this['eventSource']=new EventSource(_0x3408e5(0x1d6)+_0x3efcc0),this['eventSource'][_0x3408e5(0x218)]('open',()=>{const _0x18af87=_0x3408e5;this[_0x18af87(0x22c)]=!![],this[_0x18af87(0x1d3)]=0x0,this[_0x18af87(0x1f6)](_0x18af87(0x22c),{});}),this[_0x3408e5(0x214)]['addEventListener'](_0x3408e5(0x1e9),_0x4fc313=>{const _0x4443f7=_0x3408e5;this[_0x4443f7(0x20f)](_0x4443f7(0x1e9),_0x4fc313),this['reconnectAttempts']=0x0;}),this[_0x3408e5(0x214)]['addEventListener']('activity',_0xf07036=>{const _0x21d9f3=_0x3408e5;this['_handleDirectSSE'](_0x21d9f3(0x208),_0xf07036);}),this[_0x3408e5(0x214)]['addEventListener'](_0x3408e5(0x213),_0x58a2e4=>{const _0x3d91bf=_0x3408e5;this['_handleDirectSSE'](_0x3d91bf(0x213),_0x58a2e4);}),this[_0x3408e5(0x214)][_0x3408e5(0x218)]('new-task',_0x5eb7b8=>{const _0x184496=_0x3408e5;this[_0x184496(0x20f)](_0x184496(0x1ee),_0x5eb7b8);}),this['eventSource'][_0x3408e5(0x218)]('queue-position',_0x4983fd=>{const _0x4dd187=_0x3408e5;this[_0x4dd187(0x20f)](_0x4dd187(0x1f0),_0x4983fd);}),this[_0x3408e5(0x214)][_0x3408e5(0x218)]('error',_0x16e468=>{const _0x4f9f04=_0x3408e5;console[_0x4f9f04(0x20c)](_0x4f9f04(0x1f8),_0x16e468),this[_0x4f9f04(0x22c)]=![],this[_0x4f9f04(0x1f6)](_0x4f9f04(0x20c),{'error':_0x4f9f04(0x21c)}),this[_0x4f9f04(0x214)]&&(this[_0x4f9f04(0x214)][_0x4f9f04(0x1da)](),this['eventSource']=null),this[_0x4f9f04(0x1dc)]();});}catch(_0x1c2ad3){console[_0x3408e5(0x20c)](_0x3408e5(0x22e),_0x1c2ad3),this[_0x3408e5(0x1f6)](_0x3408e5(0x20c),{'error':_0x1c2ad3[_0x3408e5(0x1e3)]}),this['_scheduleReconnect']();}}[_0x16a286(0x20f)](_0x223c2b,_0x35d680){const _0x57bd87=_0x16a286;try{const _0x5b121d=JSON['parse'](_0x35d680[_0x57bd87(0x1e0)]);this['_emit'](_0x223c2b,_0x5b121d);}catch(_0x67f190){console[_0x57bd87(0x20c)](_0x57bd87(0x1fc)+_0x223c2b+_0x57bd87(0x1e8),_0x67f190);}}[_0x16a286(0x1dc)](){const _0x378430=_0x16a286;this['reconnectTimeout']&&clearTimeout(this['reconnectTimeout']);const _0x45183b=Math[_0x378430(0x1ff)](0x3e8*Math[_0x378430(0x1eb)](0x2,this[_0x378430(0x1d3)]),0x7530);this[_0x378430(0x1d3)]++,console['log'](_0x378430(0x1ef)+_0x45183b+'ms'),this[_0x378430(0x1ed)]=setTimeout(()=>{this['_connectDirect'](this['userId']);},_0x45183b);}['changeFilter'](_0x47a06b){const _0x3bd4be=_0x16a286;if(_0x47a06b===this[_0x3bd4be(0x224)])return;this[_0x3bd4be(0x224)]=_0x47a06b;if(this['useSharedWorker']&&this[_0x3bd4be(0x236)])this[_0x3bd4be(0x236)][_0x3bd4be(0x1dd)]({'action':_0x3bd4be(0x22f),'userId':_0x47a06b});else this[_0x3bd4be(0x214)]&&this[_0x3bd4be(0x238)](_0x47a06b);}['subscribeTask'](_0x3fcfdc,_0x2e381f){const _0x192637=_0x16a286;return this['useSharedWorker']?this['_subscribeTaskViaWorker'](_0x3fcfdc,_0x2e381f):this[_0x192637(0x20b)](_0x3fcfdc,_0x2e381f);}[_0x16a286(0x20d)](_0x37e870){const _0x439a6e=_0x16a286;if(!_0x37e870)return;_0x37e870[_0x439a6e(0x1db)]===_0x439a6e(0x212)?this[_0x439a6e(0x1d8)](_0x37e870):this[_0x439a6e(0x216)](_0x37e870);}[_0x16a286(0x223)](_0x40bd21,_0x596977){const _0x5a5aa5=_0x16a286;try{this['_ensureWorker']();}catch(_0x150bd9){return console['error'](_0x5a5aa5(0x21e),_0x150bd9),this[_0x5a5aa5(0x210)]=![],this[_0x5a5aa5(0x20b)](_0x40bd21,_0x596977);}const _0x408292=++this['_taskSubIdCounter'],_0x381ed5={'type':'worker','taskId':_0x40bd21,'handlers':_0x596977,'id':_0x408292};return!this[_0x5a5aa5(0x1d5)][_0x5a5aa5(0x202)](_0x40bd21)&&(this[_0x5a5aa5(0x1d5)][_0x5a5aa5(0x1f1)](_0x40bd21,new Set()),this[_0x5a5aa5(0x236)]['postMessage']({'action':_0x5a5aa5(0x229),'taskId':_0x40bd21})),this[_0x5a5aa5(0x1d5)][_0x5a5aa5(0x235)](_0x40bd21)['add'](_0x381ed5),_0x381ed5;}[_0x16a286(0x1d8)](_0x3a16d8){const _0x327a48=_0x16a286,{taskId:_0x1502ee}=_0x3a16d8,_0x4da5df=this['_taskSubscriptions']['get'](_0x1502ee);if(_0x4da5df){_0x4da5df[_0x327a48(0x228)](_0x3a16d8);if(_0x4da5df[_0x327a48(0x1f2)]===0x0){this[_0x327a48(0x1d5)]['delete'](_0x1502ee);try{this[_0x327a48(0x236)]&&this[_0x327a48(0x236)][_0x327a48(0x1dd)]({'action':'unsubscribeTask','taskId':_0x1502ee});}catch(_0xa4b3ff){}}}}[_0x16a286(0x20b)](_0xe23802,_0x356fc6){const _0x53df33=_0x16a286,_0x1d946e=++this[_0x53df33(0x21b)],_0x288dc3=new EventSource('/tasks/'+_0xe23802+_0x53df33(0x204)),_0x342ca6={'type':_0x53df33(0x209),'taskId':_0xe23802,'handlers':_0x356fc6,'id':_0x1d946e,'eventSource':_0x288dc3};!this[_0x53df33(0x1d5)]['has'](_0xe23802)&&this[_0x53df33(0x1d5)]['set'](_0xe23802,new Set());this[_0x53df33(0x1d5)][_0x53df33(0x235)](_0xe23802)[_0x53df33(0x1fa)](_0x342ca6);for(const _0x43520e of TASK_STREAM_EVENTS){const _0x48d1fc=eventTypeToHandler(_0x43520e);_0x288dc3[_0x53df33(0x218)](_0x43520e,_0x3e179a=>{const _0x2037d5=_0x53df33;if(_0x356fc6[_0x48d1fc])try{const _0x508ea1=JSON[_0x2037d5(0x222)](_0x3e179a[_0x2037d5(0x1e0)]);_0x356fc6[_0x48d1fc](_0x508ea1);}catch(_0x22f645){console['error'](_0x2037d5(0x230)+_0x43520e+':',_0x22f645);}});}return _0x288dc3['addEventListener'](_0x53df33(0x1f7),()=>{if(_0x356fc6['onConnected'])_0x356fc6['onConnected']();}),_0x288dc3[_0x53df33(0x218)](_0x53df33(0x20c),()=>{const _0x5a70d6=_0x53df33;if(_0x356fc6[_0x5a70d6(0x203)])_0x356fc6[_0x5a70d6(0x203)]({'error':_0x5a70d6(0x21c)});}),_0x342ca6;}[_0x16a286(0x216)](_0x51a689){const _0x3a033a=_0x16a286;_0x51a689[_0x3a033a(0x214)]&&(_0x51a689[_0x3a033a(0x214)][_0x3a033a(0x1da)](),_0x51a689['eventSource']=null);const _0x51ddf4=this[_0x3a033a(0x1d5)][_0x3a033a(0x235)](_0x51a689[_0x3a033a(0x200)]);_0x51ddf4&&(_0x51ddf4[_0x3a033a(0x228)](_0x51a689),_0x51ddf4[_0x3a033a(0x1f2)]===0x0&&this['_taskSubscriptions'][_0x3a033a(0x228)](_0x51a689['taskId']));}[_0x16a286(0x1d9)](){const _0x3658e0=_0x16a286;this[_0x3658e0(0x1ed)]&&(clearTimeout(this[_0x3658e0(0x1ed)]),this[_0x3658e0(0x1ed)]=null);this['_taskSubscriptions'][_0x3658e0(0x206)]((_0x25cd43,_0x284ff8)=>{const _0x2ddc42=_0x3658e0;_0x25cd43[_0x2ddc42(0x206)](_0x508684=>{const _0x59e985=_0x2ddc42;_0x508684[_0x59e985(0x1db)]==='direct'&&_0x508684[_0x59e985(0x214)]&&_0x508684[_0x59e985(0x214)][_0x59e985(0x1da)]();});}),this['_taskSubscriptions']['clear']();if(this[_0x3658e0(0x210)]&&this[_0x3658e0(0x236)])try{this['port'][_0x3658e0(0x1dd)]({'action':_0x3658e0(0x1d9)});}catch(_0x5ed4f8){}this[_0x3658e0(0x214)]&&(this[_0x3658e0(0x214)][_0x3658e0(0x1da)](),this['eventSource']=null),this[_0x3658e0(0x22c)]=![];}['isConnected'](){return this['connected'];}[_0x16a286(0x22a)](){const _0x515b11=_0x16a286;return this[_0x515b11(0x210)];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
@@ -1 +1 @@
1
- function _0x1040(_0x54c78c,_0x1a6210){_0x54c78c=_0x54c78c-0xcb;const _0x4588da=_0x4588();let _0x1040a9=_0x4588da[_0x54c78c];if(_0x1040['cMsyQc']===undefined){var _0x50b865=function(_0x160587){const _0x2c39b4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50a400='',_0x27eb35='';for(let _0x452586=0x0,_0x3a802c,_0xc23c7e,_0x738572=0x0;_0xc23c7e=_0x160587['charAt'](_0x738572++);~_0xc23c7e&&(_0x3a802c=_0x452586%0x4?_0x3a802c*0x40+_0xc23c7e:_0xc23c7e,_0x452586++%0x4)?_0x50a400+=String['fromCharCode'](0xff&_0x3a802c>>(-0x2*_0x452586&0x6)):0x0){_0xc23c7e=_0x2c39b4['indexOf'](_0xc23c7e);}for(let _0x2b692f=0x0,_0x50dfc4=_0x50a400['length'];_0x2b692f<_0x50dfc4;_0x2b692f++){_0x27eb35+='%'+('00'+_0x50a400['charCodeAt'](_0x2b692f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27eb35);};_0x1040['bUBdeO']=_0x50b865,_0x1040['EnIxWK']={},_0x1040['cMsyQc']=!![];}const _0x19a20b=_0x4588da[0x0],_0x2f326d=_0x54c78c+_0x19a20b,_0x313d03=_0x1040['EnIxWK'][_0x2f326d];return!_0x313d03?(_0x1040a9=_0x1040['bUBdeO'](_0x1040a9),_0x1040['EnIxWK'][_0x2f326d]=_0x1040a9):_0x1040a9=_0x313d03,_0x1040a9;}const _0x371228=_0x1040;(function(_0x54ba28,_0x1cd5ed){const _0x27ed81=_0x1040,_0x39319e=_0x54ba28();while(!![]){try{const _0x147d1f=parseInt(_0x27ed81(0xfe))/0x1+-parseInt(_0x27ed81(0x104))/0x2*(-parseInt(_0x27ed81(0xe0))/0x3)+parseInt(_0x27ed81(0xf6))/0x4+parseInt(_0x27ed81(0xd0))/0x5+-parseInt(_0x27ed81(0xf5))/0x6+-parseInt(_0x27ed81(0xd5))/0x7+-parseInt(_0x27ed81(0xd9))/0x8;if(_0x147d1f===_0x1cd5ed)break;else _0x39319e['push'](_0x39319e['shift']());}catch(_0x33eb1c){_0x39319e['push'](_0x39319e['shift']());}}}(_0x4588,0xd8f5d));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x371228(0xe8),_0x371228(0xde),_0x371228(0x109),_0x371228(0xea),_0x371228(0xfb),_0x371228(0xf2),_0x371228(0x110)];function connect(_0x50a400){const _0x145f4e=_0x371228;eventSource&&currentUserId!==_0x50a400&&(eventSource[_0x145f4e(0xcc)](),eventSource=null);if(eventSource&&eventSource[_0x145f4e(0x102)]!==EventSource[_0x145f4e(0xf0)])return;currentUserId=_0x50a400;const _0x27eb35=_0x50a400&&_0x50a400!=='me'?_0x145f4e(0xfc)+_0x50a400:'';try{eventSource=new EventSource(_0x145f4e(0xf8)+_0x27eb35),eventSource[_0x145f4e(0xed)](_0x145f4e(0xcb),_0x452586=>{const _0x4634b6=_0x145f4e;broadcast({'type':'snapshot','data':_0x452586[_0x4634b6(0xcf)]}),reconnectAttempts=0x0;}),eventSource[_0x145f4e(0xed)](_0x145f4e(0xe8),_0x3a802c=>{const _0x4f49cd=_0x145f4e;broadcast({'type':_0x4f49cd(0xe8),'data':_0x3a802c['data']});}),eventSource['addEventListener'](_0x145f4e(0xdc),_0xc23c7e=>{const _0x31bd34=_0x145f4e;broadcast({'type':_0x31bd34(0xdc),'data':_0xc23c7e[_0x31bd34(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0xe9),_0x738572=>{const _0x52e7ea=_0x145f4e;broadcast({'type':_0x52e7ea(0xe9),'data':_0x738572[_0x52e7ea(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0x107),_0x2b692f=>{const _0x1300d7=_0x145f4e;broadcast({'type':_0x1300d7(0x107),'data':_0x2b692f[_0x1300d7(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0x108),()=>{const _0x58b125=_0x145f4e;broadcast({'type':_0x58b125(0x113)}),reconnectAttempts=0x0;}),eventSource[_0x145f4e(0xed)]('error',_0x50dfc4=>{const _0x59f014=_0x145f4e;console[_0x59f014(0x10f)]('[SSE\x20Worker]\x20Connection\x20error:',_0x50dfc4),broadcast({'type':_0x59f014(0x10f),'error':'Connection\x20error'}),eventSource&&(eventSource[_0x59f014(0xcc)](),eventSource=null),scheduleReconnect();});}catch(_0x2c2495){console[_0x145f4e(0x10f)](_0x145f4e(0xe6),_0x2c2495),broadcast({'type':_0x145f4e(0x10f),'error':_0x2c2495[_0x145f4e(0xef)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x44e665=_0x371228;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x44e665(0x10a)]===0x0)return;const _0x651e39=Math[_0x44e665(0xee)](0x3e8*Math[_0x44e665(0xff)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console['log'](_0x44e665(0xda)+_0x651e39+_0x44e665(0xfa)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x2cf66b=_0x44e665;ports[_0x2cf66b(0x10a)]>0x0&&connect(currentUserId);},_0x651e39);}function broadcast(_0x34e23d){const _0x2df007=_0x371228,_0x271138=[];ports[_0x2df007(0x106)](_0x49d1=>{const _0x2109bf=_0x2df007;try{_0x49d1[_0x2109bf(0xd3)](_0x34e23d);}catch(_0x50d0bf){console['warn']('[SSE\x20Worker]\x20Failed\x20to\x20send\x20to\x20port,\x20removing:',_0x50d0bf),_0x271138[_0x2109bf(0xe3)](_0x49d1);}}),_0x271138[_0x2df007(0xe1)]>0x0&&cleanUpDeadPorts(_0x271138),ports['size']===0x0&&eventSource&&(console[_0x2df007(0xf1)]('[SSE\x20Worker]\x20No\x20more\x20connected\x20ports,\x20closing\x20SSE'),eventSource[_0x2df007(0xcc)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x5d6e61,_0x6f681c){const _0x37e679=_0x371228;let _0x1419c4=taskStreams[_0x37e679(0xd1)](_0x6f681c);!_0x1419c4&&(_0x1419c4={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x37e679(0x114)](_0x6f681c,_0x1419c4));_0x1419c4[_0x37e679(0xcd)][_0x37e679(0x100)](_0x5d6e61);if(!_0x1419c4[_0x37e679(0xdd)]||_0x1419c4[_0x37e679(0xdd)][_0x37e679(0x102)]===EventSource[_0x37e679(0xf0)])connectTaskStream(_0x6f681c);else{if(_0x1419c4['eventSource'][_0x37e679(0x102)]===EventSource['OPEN'])try{_0x5d6e61['postMessage']({'type':'task:connected','taskId':_0x6f681c});}catch(_0x13e599){}}}function unsubscribeTask(_0x5c83b9,_0x79d83a){const _0xf4928=_0x371228,_0x46be2c=taskStreams['get'](_0x79d83a);if(!_0x46be2c)return;_0x46be2c['subscribedPorts'][_0xf4928(0x10e)](_0x5c83b9),_0x46be2c[_0xf4928(0xcd)]['size']===0x0&&deferredCloseTaskStream(_0x79d83a);}function connectTaskStream(_0x205dd4){const _0x18db66=_0x371228,_0x41a2d5=taskStreams['get'](_0x205dd4);if(!_0x41a2d5)return;_0x41a2d5[_0x18db66(0xdd)]&&(_0x41a2d5['eventSource'][_0x18db66(0xcc)](),_0x41a2d5[_0x18db66(0xdd)]=null);try{_0x41a2d5[_0x18db66(0xdd)]=new EventSource(_0x18db66(0x112)+_0x205dd4+_0x18db66(0xe2));for(const _0x1bc424 of TASK_STREAM_EVENTS){_0x41a2d5[_0x18db66(0xdd)][_0x18db66(0xed)](_0x1bc424,_0x5cf96c=>{const _0xca620c=_0x18db66;broadcastToTask(_0x205dd4,'task:'+_0x1bc424,_0x5cf96c[_0xca620c(0xcf)]),_0x41a2d5[_0xca620c(0xd8)]=0x0;});}_0x41a2d5[_0x18db66(0xdd)][_0x18db66(0xed)](_0x18db66(0x108),()=>{const _0x451b38=_0x18db66;broadcastToTask(_0x205dd4,_0x451b38(0x101),'{}'),_0x41a2d5[_0x451b38(0xd8)]=0x0;}),_0x41a2d5[_0x18db66(0xdd)]['addEventListener'](_0x18db66(0x10f),()=>{const _0x1c505b=_0x18db66;broadcastToTask(_0x205dd4,_0x1c505b(0xd4),JSON[_0x1c505b(0xdf)]({'error':_0x1c505b(0xdb)})),_0x41a2d5[_0x1c505b(0xdd)]&&(_0x41a2d5[_0x1c505b(0xdd)]['close'](),_0x41a2d5[_0x1c505b(0xdd)]=null),scheduleTaskReconnect(_0x205dd4);});}catch(_0x840bec){console['error'](_0x18db66(0xe4)+_0x205dd4+':',_0x840bec),broadcastToTask(_0x205dd4,_0x18db66(0xd4),JSON[_0x18db66(0xdf)]({'error':_0x840bec['message']})),scheduleTaskReconnect(_0x205dd4);}}function _0x4588(){const _0x4e9308=['igLUia','Cg9ZDe1LC3nHz2u','DgfZAZPLCNjVCG','nte5oty2m0zYwvDcrW','y2HHBMDLrMLSDgvY','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','CMvJB25Uzwn0qxr0zw1WDhm','mtyYnZm5mdrjtufYDKu','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','q29UBMvJDgLVBIbLCNjVCG','C3rHDhvZ','zxzLBNrtB3vYy2u','Bg9NCW','C3rYAw5NAwz5','mtvLuvfYs0S','BgvUz3rO','l3n0CMvHBq','ChvZAa','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','y29UBMvJDa','ywn0AxzPDhK','BMv3lxrHC2S','C3vTBwfYEq','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','t1bftG','ywrKrxzLBNrmAxn0zw5LCG','BwLU','BwvZC2fNzq','q0Xpu0ve','Bg9N','yxbWlxnLCNzLCI1ZDgf0Dxm','B25TzxnZywDL','AgfZ','ndy0mtK4ngrZyxvyBG','ntmWodK4offwyvHMBa','CMvJB25Uzwn0vgLTzw91Da','l3rHC2TZl3vWzgf0zxm','B25TzxnZywDLzxjYB3i','BxmGkgf0DgvTChqG','y2HHBMDLzc1MAwXLCW','p3vZzxjjzd0','B25JB25Uzwn0','nJe2ntK3DfjytwLH','Cg93','ywrK','DgfZAZPJB25Uzwn0zwq','CMvHzhLtDgf0zq','zgLZy29UBMvJDa','nJC0mdiWEuTVrunU','Cg9YDhm','zM9YrwfJAa','CxvLDwuTCg9ZAxrPB24','B3bLBG','Bwv0ywrHDge','C2L6zq','C3rHCNq','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','zgvSzxrL','zxjYB3i','y29TCgXLDgu','C3vIC2nYAwjLvgfZAW','l3rHC2TZlW','y29UBMvJDgvK','C2v0','C25HChnOB3q','y2XVC2u','C3vIC2nYAwjLzfbVCNrZ','Dw5ZDwjZy3jPyMvuyxnR','zgf0yq','nda1mJqZme1VqKLNuq','z2v0'];_0x4588=function(){return _0x4e9308;};return _0x4588();}function broadcastToTask(_0x5d75be,_0x59b268,_0x500686){const _0xceebc9=_0x371228,_0x5a0296=taskStreams[_0xceebc9(0xd1)](_0x5d75be);if(!_0x5a0296)return;const _0x4a9381=[];_0x5a0296[_0xceebc9(0xcd)][_0xceebc9(0x106)](_0x352a58=>{const _0x1a2a9e=_0xceebc9;try{_0x352a58['postMessage']({'type':_0x59b268,'taskId':_0x5d75be,'data':_0x500686});}catch(_0x5ca697){_0x4a9381[_0x1a2a9e(0xe3)](_0x352a58);}}),_0x4a9381[_0xceebc9(0xe1)]>0x0&&(_0x4a9381[_0xceebc9(0x106)](_0x64d5d5=>_0x5a0296['subscribedPorts'][_0xceebc9(0x10e)](_0x64d5d5)),cleanUpDeadPorts(_0x4a9381),_0x5a0296[_0xceebc9(0xcd)][_0xceebc9(0x10a)]===0x0&&closeTaskStream(_0x5d75be));}function closeTaskStream(_0x3017bc){const _0x526b86=_0x371228,_0x3f72a1=taskStreams[_0x526b86(0xd1)](_0x3017bc);if(!_0x3f72a1)return;_0x3f72a1['eventSource']&&_0x3f72a1[_0x526b86(0xdd)][_0x526b86(0xcc)](),_0x3f72a1[_0x526b86(0xf7)]&&clearTimeout(_0x3f72a1[_0x526b86(0xf7)]),taskStreams[_0x526b86(0x10e)](_0x3017bc);}function deferredCloseTaskStream(_0x58d3dc){setTimeout(()=>{const _0x1d03cd=_0x1040,_0x3a808d=taskStreams[_0x1d03cd(0xd1)](_0x58d3dc);_0x3a808d&&_0x3a808d['subscribedPorts'][_0x1d03cd(0x10a)]===0x0&&closeTaskStream(_0x58d3dc);},0x0);}function scheduleTaskReconnect(_0x3272bc){const _0x5dff3d=_0x371228,_0x3fdb77=taskStreams[_0x5dff3d(0xd1)](_0x3272bc);if(!_0x3fdb77||_0x3fdb77[_0x5dff3d(0xcd)][_0x5dff3d(0x10a)]===0x0)return;_0x3fdb77[_0x5dff3d(0xf7)]&&clearTimeout(_0x3fdb77[_0x5dff3d(0xf7)]);const _0x3dd1aa=Math[_0x5dff3d(0xee)](0x3e8*Math[_0x5dff3d(0xff)](0x2,_0x3fdb77[_0x5dff3d(0xd8)]),MAX_RECONNECT_DELAY);_0x3fdb77[_0x5dff3d(0xd8)]++,console[_0x5dff3d(0xf1)](_0x5dff3d(0x10c)+_0x3272bc+_0x5dff3d(0xd2)+_0x3dd1aa+'ms'),_0x3fdb77[_0x5dff3d(0xf7)]=setTimeout(()=>{const _0x548873=_0x5dff3d;_0x3fdb77[_0x548873(0xcd)][_0x548873(0x10a)]>0x0&&connectTaskStream(_0x3272bc);},_0x3dd1aa);}function cleanUpDeadPorts(_0x54c66b){const _0x4b8c13=_0x371228;for(const _0x85254a of _0x54c66b){ports[_0x4b8c13(0x10e)](_0x85254a),taskStreams['forEach']((_0x25c799,_0x16216d)=>{const _0x520ab7=_0x4b8c13;_0x25c799[_0x520ab7(0xcd)][_0x520ab7(0x10e)](_0x85254a),_0x25c799[_0x520ab7(0xcd)][_0x520ab7(0x10a)]===0x0&&closeTaskStream(_0x16216d);});}}function removePortFromAllTasks(_0x3b0835){const _0x376567=_0x371228;taskStreams[_0x376567(0x106)]((_0x59e403,_0x5ace1a)=>{const _0x31d373=_0x376567;_0x59e403['subscribedPorts'][_0x31d373(0xf4)](_0x3b0835)&&(_0x59e403[_0x31d373(0xcd)][_0x31d373(0x10e)](_0x3b0835),_0x59e403[_0x31d373(0xcd)][_0x31d373(0x10a)]===0x0&&closeTaskStream(_0x5ace1a));});}self[_0x371228(0xfd)]=function(_0x13dd21){const _0x2c8ec0=_0x371228,_0x3d467c=_0x13dd21[_0x2c8ec0(0x105)][0x0];ports[_0x2c8ec0(0x100)](_0x3d467c),console[_0x2c8ec0(0xf1)](_0x2c8ec0(0xd7)+ports['size']),_0x3d467c[_0x2c8ec0(0xf3)]=function(_0x2fe948){const _0x111c97=_0x2c8ec0,{action:_0x2365ba,userId:_0x5bbf23,taskId:_0x29638a}=_0x2fe948['data'];switch(_0x2365ba){case _0x111c97(0xe7):connect(_0x5bbf23);eventSource&&eventSource[_0x111c97(0x102)]===EventSource[_0x111c97(0xec)]&&_0x3d467c[_0x111c97(0xd3)]({'type':_0x111c97(0x113)});break;case _0x111c97(0x103):ports[_0x111c97(0x10e)](_0x3d467c),removePortFromAllTasks(_0x3d467c),console[_0x111c97(0xf1)](_0x111c97(0xeb)+ports[_0x111c97(0x10a)]);ports[_0x111c97(0x10a)]===0x0&&eventSource&&(eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x111c97(0xd6):_0x5bbf23!==currentUserId&&connect(_0x5bbf23);break;case _0x111c97(0x111):subscribeTask(_0x3d467c,_0x29638a);break;case _0x111c97(0xce):unsubscribeTask(_0x3d467c,_0x29638a);break;default:console['warn'](_0x111c97(0xe5),_0x2365ba);}},_0x3d467c[_0x2c8ec0(0xf9)]=function(_0x1b1520){const _0x2a6116=_0x2c8ec0;console[_0x2a6116(0x10f)](_0x2a6116(0x10d),_0x1b1520),ports[_0x2a6116(0x10e)](_0x3d467c),removePortFromAllTasks(_0x3d467c);},_0x3d467c[_0x2c8ec0(0x10b)]();};
1
+ const _0x2b50f3=_0x3e15;(function(_0x4d9b59,_0x17ffc9){const _0xc75634=_0x3e15,_0x9ada55=_0x4d9b59();while(!![]){try{const _0x3e4618=parseInt(_0xc75634(0x1f5))/0x1*(parseInt(_0xc75634(0x225))/0x2)+-parseInt(_0xc75634(0x208))/0x3+parseInt(_0xc75634(0x22d))/0x4*(-parseInt(_0xc75634(0x210))/0x5)+parseInt(_0xc75634(0x1f7))/0x6+-parseInt(_0xc75634(0x227))/0x7+-parseInt(_0xc75634(0x202))/0x8+parseInt(_0xc75634(0x20f))/0x9;if(_0x3e4618===_0x17ffc9)break;else _0x9ada55['push'](_0x9ada55['shift']());}catch(_0xc4006){_0x9ada55['push'](_0x9ada55['shift']());}}}(_0x65f7,0xb191d));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x2b50f3(0x1f4),_0x2b50f3(0x200),_0x2b50f3(0x214),_0x2b50f3(0x21d),'changed-files',_0x2b50f3(0x22e),_0x2b50f3(0x206)];function connect(_0x20c6ee){const _0x2a0ca7=_0x2b50f3;eventSource&&currentUserId!==_0x20c6ee&&(eventSource[_0x2a0ca7(0x20a)](),eventSource=null);if(eventSource&&eventSource[_0x2a0ca7(0x228)]!==EventSource[_0x2a0ca7(0x20d)])return;currentUserId=_0x20c6ee;const _0x1830a0=_0x20c6ee&&_0x20c6ee!=='me'?_0x2a0ca7(0x22f)+_0x20c6ee:'';try{eventSource=new EventSource('/tasks/updates'+_0x1830a0),eventSource[_0x2a0ca7(0x21e)](_0x2a0ca7(0x1f8),_0x137a60=>{const _0x1eb137=_0x2a0ca7;broadcast({'type':'snapshot','data':_0x137a60[_0x1eb137(0x224)]}),reconnectAttempts=0x0;}),eventSource[_0x2a0ca7(0x21e)](_0x2a0ca7(0x1f4),_0x3bc2c7=>{const _0x1359c4=_0x2a0ca7;broadcast({'type':_0x1359c4(0x1f4),'data':_0x3bc2c7[_0x1359c4(0x224)]});}),eventSource[_0x2a0ca7(0x21e)](_0x2a0ca7(0x20c),_0x482c33=>{const _0x58d9b5=_0x2a0ca7;broadcast({'type':_0x58d9b5(0x20c),'data':_0x482c33['data']});}),eventSource['addEventListener'](_0x2a0ca7(0x21a),_0x1a8f5e=>{const _0x445d32=_0x2a0ca7;broadcast({'type':_0x445d32(0x21a),'data':_0x1a8f5e[_0x445d32(0x224)]});}),eventSource['addEventListener'](_0x2a0ca7(0x1fe),_0x468867=>{const _0x5a9264=_0x2a0ca7;broadcast({'type':'queue-position','data':_0x468867[_0x5a9264(0x224)]});}),eventSource['addEventListener']('open',()=>{const _0x3990dc=_0x2a0ca7;broadcast({'type':_0x3990dc(0x22b)}),reconnectAttempts=0x0;}),eventSource[_0x2a0ca7(0x21e)](_0x2a0ca7(0x232),_0x156ff7=>{const _0x333d04=_0x2a0ca7;console['error']('[SSE\x20Worker]\x20Connection\x20error:',_0x156ff7),broadcast({'type':_0x333d04(0x232),'error':'Connection\x20error'}),eventSource&&(eventSource['close'](),eventSource=null),scheduleReconnect();});}catch(_0x339825){console['error'](_0x2a0ca7(0x216),_0x339825),broadcast({'type':_0x2a0ca7(0x232),'error':_0x339825['message']}),scheduleReconnect();}}function _0x3e15(_0x43aa0c,_0x592d78){_0x43aa0c=_0x43aa0c-0x1f4;const _0x65f77c=_0x65f7();let _0x3e15f9=_0x65f77c[_0x43aa0c];if(_0x3e15['IgCyVg']===undefined){var _0x381a8e=function(_0x3daf86){const _0x265d23='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x20c6ee='',_0x1830a0='';for(let _0x137a60=0x0,_0x3bc2c7,_0x482c33,_0x1a8f5e=0x0;_0x482c33=_0x3daf86['charAt'](_0x1a8f5e++);~_0x482c33&&(_0x3bc2c7=_0x137a60%0x4?_0x3bc2c7*0x40+_0x482c33:_0x482c33,_0x137a60++%0x4)?_0x20c6ee+=String['fromCharCode'](0xff&_0x3bc2c7>>(-0x2*_0x137a60&0x6)):0x0){_0x482c33=_0x265d23['indexOf'](_0x482c33);}for(let _0x468867=0x0,_0x156ff7=_0x20c6ee['length'];_0x468867<_0x156ff7;_0x468867++){_0x1830a0+='%'+('00'+_0x20c6ee['charCodeAt'](_0x468867)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1830a0);};_0x3e15['nmRRsg']=_0x381a8e,_0x3e15['tovdOv']={},_0x3e15['IgCyVg']=!![];}const _0x527da5=_0x65f77c[0x0],_0x429570=_0x43aa0c+_0x527da5,_0x1a0ee3=_0x3e15['tovdOv'][_0x429570];return!_0x1a0ee3?(_0x3e15f9=_0x3e15['nmRRsg'](_0x3e15f9),_0x3e15['tovdOv'][_0x429570]=_0x3e15f9):_0x3e15f9=_0x1a0ee3,_0x3e15f9;}function scheduleReconnect(){const _0x523077=_0x2b50f3;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x523077(0x1ff)]===0x0)return;const _0x18c918=Math[_0x523077(0x231)](0x3e8*Math[_0x523077(0x220)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x523077(0x21c)](_0x523077(0x1f6)+_0x18c918+'ms\x20(attempt\x20'+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x5aeb62=_0x523077;ports[_0x5aeb62(0x1ff)]>0x0&&connect(currentUserId);},_0x18c918);}function broadcast(_0x4ebca5){const _0x2c4994=_0x2b50f3,_0x23e709=[];ports[_0x2c4994(0x205)](_0x27a0b7=>{const _0x24391f=_0x2c4994;try{_0x27a0b7['postMessage'](_0x4ebca5);}catch(_0x13b3eb){console[_0x24391f(0x22c)](_0x24391f(0x223),_0x13b3eb),_0x23e709[_0x24391f(0x211)](_0x27a0b7);}}),_0x23e709[_0x2c4994(0x1fa)]>0x0&&cleanUpDeadPorts(_0x23e709),ports['size']===0x0&&eventSource&&(console[_0x2c4994(0x21c)]('[SSE\x20Worker]\x20No\x20more\x20connected\x20ports,\x20closing\x20SSE'),eventSource[_0x2c4994(0x20a)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x6023fc,_0x5922a4){const _0x50a838=_0x2b50f3;let _0x4b034c=taskStreams[_0x50a838(0x1fb)](_0x5922a4);!_0x4b034c&&(_0x4b034c={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams['set'](_0x5922a4,_0x4b034c));_0x4b034c[_0x50a838(0x217)][_0x50a838(0x20b)](_0x6023fc);if(!_0x4b034c['eventSource']||_0x4b034c[_0x50a838(0x20e)][_0x50a838(0x228)]===EventSource[_0x50a838(0x20d)])connectTaskStream(_0x5922a4);else{if(_0x4b034c[_0x50a838(0x20e)][_0x50a838(0x228)]===EventSource['OPEN'])try{_0x6023fc[_0x50a838(0x201)]({'type':_0x50a838(0x221),'taskId':_0x5922a4});}catch(_0x22c4d1){}}}function unsubscribeTask(_0x22d218,_0x1f52db){const _0x29c652=_0x2b50f3,_0x39b8d6=taskStreams[_0x29c652(0x1fb)](_0x1f52db);if(!_0x39b8d6)return;_0x39b8d6[_0x29c652(0x217)][_0x29c652(0x21f)](_0x22d218),_0x39b8d6[_0x29c652(0x217)][_0x29c652(0x1ff)]===0x0&&deferredCloseTaskStream(_0x1f52db);}function connectTaskStream(_0xa04e34){const _0xfa7811=_0x2b50f3,_0x442395=taskStreams[_0xfa7811(0x1fb)](_0xa04e34);if(!_0x442395)return;_0x442395[_0xfa7811(0x20e)]&&(_0x442395[_0xfa7811(0x20e)][_0xfa7811(0x20a)](),_0x442395[_0xfa7811(0x20e)]=null);try{_0x442395['eventSource']=new EventSource(_0xfa7811(0x234)+_0xa04e34+_0xfa7811(0x230));for(const _0x49a346 of TASK_STREAM_EVENTS){_0x442395[_0xfa7811(0x20e)][_0xfa7811(0x21e)](_0x49a346,_0x256273=>{broadcastToTask(_0xa04e34,'task:'+_0x49a346,_0x256273['data']),_0x442395['reconnectAttempts']=0x0;});}_0x442395[_0xfa7811(0x20e)][_0xfa7811(0x21e)](_0xfa7811(0x207),()=>{const _0x15d693=_0xfa7811;broadcastToTask(_0xa04e34,_0x15d693(0x221),'{}'),_0x442395[_0x15d693(0x233)]=0x0;}),_0x442395['eventSource']['addEventListener'](_0xfa7811(0x232),()=>{const _0x4ff3d1=_0xfa7811;broadcastToTask(_0xa04e34,_0x4ff3d1(0x22a),JSON[_0x4ff3d1(0x226)]({'error':_0x4ff3d1(0x1f9)})),_0x442395[_0x4ff3d1(0x20e)]&&(_0x442395['eventSource']['close'](),_0x442395[_0x4ff3d1(0x20e)]=null),scheduleTaskReconnect(_0xa04e34);});}catch(_0x10c0c7){console[_0xfa7811(0x232)](_0xfa7811(0x219)+_0xa04e34+':',_0x10c0c7),broadcastToTask(_0xa04e34,_0xfa7811(0x22a),JSON[_0xfa7811(0x226)]({'error':_0x10c0c7['message']})),scheduleTaskReconnect(_0xa04e34);}}function broadcastToTask(_0x442325,_0x1cd516,_0x20232e){const _0x3abfce=_0x2b50f3,_0x2d350c=taskStreams[_0x3abfce(0x1fb)](_0x442325);if(!_0x2d350c)return;const _0x53eaf1=[];_0x2d350c[_0x3abfce(0x217)]['forEach'](_0x11aa4b=>{const _0x260867=_0x3abfce;try{_0x11aa4b[_0x260867(0x201)]({'type':_0x1cd516,'taskId':_0x442325,'data':_0x20232e});}catch(_0x56716a){_0x53eaf1[_0x260867(0x211)](_0x11aa4b);}}),_0x53eaf1['length']>0x0&&(_0x53eaf1[_0x3abfce(0x205)](_0x120d31=>_0x2d350c[_0x3abfce(0x217)][_0x3abfce(0x21f)](_0x120d31)),cleanUpDeadPorts(_0x53eaf1),_0x2d350c['subscribedPorts'][_0x3abfce(0x1ff)]===0x0&&closeTaskStream(_0x442325));}function closeTaskStream(_0x1e4e6a){const _0x2fa4df=_0x2b50f3,_0x1965ea=taskStreams['get'](_0x1e4e6a);if(!_0x1965ea)return;_0x1965ea[_0x2fa4df(0x20e)]&&_0x1965ea[_0x2fa4df(0x20e)][_0x2fa4df(0x20a)](),_0x1965ea[_0x2fa4df(0x204)]&&clearTimeout(_0x1965ea[_0x2fa4df(0x204)]),taskStreams[_0x2fa4df(0x21f)](_0x1e4e6a);}function deferredCloseTaskStream(_0x33ef2c){setTimeout(()=>{const _0x4db851=_0x3e15,_0x3b57f9=taskStreams[_0x4db851(0x1fb)](_0x33ef2c);_0x3b57f9&&_0x3b57f9['subscribedPorts']['size']===0x0&&closeTaskStream(_0x33ef2c);},0x0);}function _0x65f7(){const _0xd71e2a=['CxvLDwuTCg9ZAxrPB24','C2L6zq','Bg9NCW','Cg9ZDe1LC3nHz2u','oty2odGXnLfoAMfmDW','zgLZy29UBMvJDa','CMvJB25Uzwn0vgLTzw91Da','zM9YrwfJAa','y29TCgXLDgu','B3bLBG','mJq5mtiXnufRAKz2yG','B25JB25Uzwn0','y2XVC2u','ywrK','C3rHDhvZ','q0Xpu0ve','zxzLBNrtB3vYy2u','mJKWmJq3mZL6qwjNrMC','mtmZndy1AM9MzMzs','ChvZAa','y2HHBMDLrMLSDgvY','B25TzxnZywDLzxjYB3i','Bwv0ywrHDge','Cg9YDhm','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','C3vIC2nYAwjLzfbVCNrZ','igLUia','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','BMv3lxrHC2S','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','Bg9N','C3vTBwfYEq','ywrKrxzLBNrmAxn0zw5LCG','zgvSzxrL','Cg93','DgfZAZPJB25Uzwn0zwq','C3rHCNq','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','zgf0yq','mJiXmtm4y2fyDfLq','C3rYAw5NAwz5','odCXmdy4oevZtK1MBG','CMvHzhLtDgf0zq','C3vIC2nYAwjLvgfZAW','DgfZAZPLCNjVCG','y29UBMvJDgvK','D2fYBG','mJbiAgzVvha','yxbWlxnLCNzLCI1ZDgf0Dxm','p3vZzxjjzd0','l3n0CMvHBq','BwLU','zxjYB3i','CMvJB25Uzwn0qxr0zw1WDhm','l3rHC2TZlW','ywn0AxzPDhK','muPnAuftAW','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','ndG1mtG0nLrYCgPpsG','C25HChnOB3q','q29UBMvJDgLVBIbLCNjVCG','BgvUz3rO','z2v0','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa'];_0x65f7=function(){return _0xd71e2a;};return _0x65f7();}function scheduleTaskReconnect(_0x296e9b){const _0x441066=_0x2b50f3,_0x1f762c=taskStreams[_0x441066(0x1fb)](_0x296e9b);if(!_0x1f762c||_0x1f762c[_0x441066(0x217)][_0x441066(0x1ff)]===0x0)return;_0x1f762c[_0x441066(0x204)]&&clearTimeout(_0x1f762c[_0x441066(0x204)]);const _0xba8858=Math[_0x441066(0x231)](0x3e8*Math[_0x441066(0x220)](0x2,_0x1f762c[_0x441066(0x233)]),MAX_RECONNECT_DELAY);_0x1f762c[_0x441066(0x233)]++,console[_0x441066(0x21c)](_0x441066(0x1fd)+_0x296e9b+_0x441066(0x218)+_0xba8858+'ms'),_0x1f762c[_0x441066(0x204)]=setTimeout(()=>{const _0x2dd514=_0x441066;_0x1f762c[_0x2dd514(0x217)][_0x2dd514(0x1ff)]>0x0&&connectTaskStream(_0x296e9b);},_0xba8858);}function cleanUpDeadPorts(_0x339bf7){const _0x22df99=_0x2b50f3;for(const _0x53cae9 of _0x339bf7){ports[_0x22df99(0x21f)](_0x53cae9),taskStreams[_0x22df99(0x205)]((_0x26b8ac,_0x484815)=>{const _0x49062a=_0x22df99;_0x26b8ac['subscribedPorts']['delete'](_0x53cae9),_0x26b8ac[_0x49062a(0x217)][_0x49062a(0x1ff)]===0x0&&closeTaskStream(_0x484815);});}}function removePortFromAllTasks(_0x596707){const _0x57279b=_0x2b50f3;taskStreams[_0x57279b(0x205)]((_0xb7ba87,_0x34be64)=>{const _0x50b5a1=_0x57279b;_0xb7ba87['subscribedPorts']['has'](_0x596707)&&(_0xb7ba87['subscribedPorts'][_0x50b5a1(0x21f)](_0x596707),_0xb7ba87[_0x50b5a1(0x217)][_0x50b5a1(0x1ff)]===0x0&&closeTaskStream(_0x34be64));});}self[_0x2b50f3(0x209)]=function(_0x2d9903){const _0x5eb20e=_0x2b50f3,_0x49bc20=_0x2d9903[_0x5eb20e(0x215)][0x0];ports[_0x5eb20e(0x20b)](_0x49bc20),console['log'](_0x5eb20e(0x21b)+ports[_0x5eb20e(0x1ff)]),_0x49bc20['onmessage']=function(_0x1948a9){const _0x4880fc=_0x5eb20e,{action:_0x2e336f,userId:_0x12a083,taskId:_0x4eb1a9}=_0x1948a9['data'];switch(_0x2e336f){case'connect':connect(_0x12a083);eventSource&&eventSource['readyState']===EventSource['OPEN']&&_0x49bc20[_0x4880fc(0x201)]({'type':_0x4880fc(0x22b)});break;case _0x4880fc(0x203):ports[_0x4880fc(0x21f)](_0x49bc20),removePortFromAllTasks(_0x49bc20),console[_0x4880fc(0x21c)]('[SSE\x20Worker]\x20Port\x20disconnected.\x20Total\x20ports:\x20'+ports[_0x4880fc(0x1ff)]);ports['size']===0x0&&eventSource&&(eventSource[_0x4880fc(0x20a)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x4880fc(0x212):_0x12a083!==currentUserId&&connect(_0x12a083);break;case _0x4880fc(0x229):subscribeTask(_0x49bc20,_0x4eb1a9);break;case'unsubscribeTask':unsubscribeTask(_0x49bc20,_0x4eb1a9);break;default:console[_0x4880fc(0x22c)](_0x4880fc(0x1fc),_0x2e336f);}},_0x49bc20[_0x5eb20e(0x213)]=function(_0x24bed4){console['error']('[SSE\x20Worker]\x20Port\x20message\x20error:',_0x24bed4),ports['delete'](_0x49bc20),removePortFromAllTasks(_0x49bc20);},_0x49bc20[_0x5eb20e(0x222)]();};
@@ -569,6 +569,18 @@ header.app-header {
569
569
  outline-offset: 2px;
570
570
  }
571
571
 
572
+ .automation-filter-banner {
573
+ display: flex;
574
+ align-items: center;
575
+ justify-content: space-between;
576
+ gap: 10px;
577
+ margin: 0 28px 16px;
578
+ padding: 10px 12px;
579
+ border-radius: var(--radius-small);
580
+ border: 1px solid rgba(59, 130, 246, 0.35);
581
+ background: rgba(59, 130, 246, 0.08);
582
+ }
583
+
572
584
  .task-filter-chip .chip-label {
573
585
  font-weight: 500;
574
586
  }
@@ -3739,6 +3751,24 @@ button:disabled,
3739
3751
  margin-left: 6px;
3740
3752
  }
3741
3753
 
3754
+ .task-tile .task-automation-pill {
3755
+ display: inline-flex;
3756
+ align-items: center;
3757
+ background: rgba(59, 130, 246, 0.12);
3758
+ border: 1px solid rgba(59, 130, 246, 0.32);
3759
+ border-radius: 999px;
3760
+ padding: 2px 8px;
3761
+ font-size: 11px;
3762
+ font-weight: 600;
3763
+ color: rgb(37, 99, 235);
3764
+ margin-left: 6px;
3765
+ text-decoration: none;
3766
+ }
3767
+
3768
+ .task-tile .task-automation-pill:hover {
3769
+ background: rgba(59, 130, 246, 0.2);
3770
+ }
3771
+
3742
3772
  .task-tile .task-params {
3743
3773
  display: flex;
3744
3774
  gap: 6px;
@@ -6894,6 +6924,51 @@ select option[value=""] {
6894
6924
  padding: 0 1px;
6895
6925
  }
6896
6926
 
6927
+ /* Maximized individual file diff */
6928
+ .file-diff.maximized {
6929
+ position: fixed;
6930
+ top: 0;
6931
+ left: 0;
6932
+ right: 0;
6933
+ bottom: 0;
6934
+ z-index: 10000;
6935
+ margin: 0;
6936
+ border-radius: 0;
6937
+ display: flex;
6938
+ flex-direction: column;
6939
+ }
6940
+
6941
+ .file-diff.maximized .file-diff-header {
6942
+ flex-shrink: 0;
6943
+ }
6944
+
6945
+ .file-diff.maximized .file-diff-content {
6946
+ max-height: none;
6947
+ flex: 1;
6948
+ overflow-y: auto;
6949
+ }
6950
+
6951
+ .file-diff.maximized .file-editor-container.editor-active {
6952
+ flex: 1;
6953
+ display: flex !important;
6954
+ flex-direction: column;
6955
+ min-height: 0;
6956
+ overflow: hidden;
6957
+ }
6958
+
6959
+ .file-diff.maximized .monaco-editor-wrapper {
6960
+ flex: 1;
6961
+ min-height: 0;
6962
+ height: 100% !important;
6963
+ display: flex;
6964
+ flex-direction: column;
6965
+ }
6966
+
6967
+ .file-diff.maximized .monaco-editor-wrapper > * {
6968
+ flex: 1;
6969
+ min-height: 0;
6970
+ }
6971
+
6897
6972
  .command-block {
6898
6973
  position: relative;
6899
6974
  border-radius: var(--radius-small);
@@ -7915,175 +7990,25 @@ select option[value=""] {
7915
7990
  text-transform: capitalize;
7916
7991
  }
7917
7992
 
7918
- .role-badge.role-admin {
7919
- background: rgba(63, 114, 255, 0.12);
7920
- color: var(--color-accent);
7921
- }
7922
-
7923
- .role-badge.role-user {
7924
- background: rgba(31, 42, 68, 0.08);
7925
- color: var(--color-text-muted);
7926
- }
7927
-
7928
- /* New role badges */
7929
- .role-badge.role-viewer {
7930
- background: rgba(128, 128, 128, 0.12);
7931
- color: var(--color-text-muted);
7932
- }
7933
-
7934
- .role-badge.role-developer {
7935
- background: rgba(34, 197, 94, 0.12);
7936
- color: #16a34a;
7937
- }
7938
-
7939
- .role-badge.role-manager {
7940
- background: rgba(234, 179, 8, 0.12);
7941
- color: #ca8a04;
7942
- }
7943
-
7944
- /* Custom permissions badge */
7945
- .custom-permissions-badge {
7946
- display: inline-flex;
7947
- align-items: center;
7948
- justify-content: center;
7949
- margin-left: 6px;
7950
- padding: 2px 6px;
7951
- border-radius: 999px;
7952
- font-size: 10px;
7953
- font-weight: 600;
7954
- background: rgba(139, 92, 246, 0.15);
7955
- color: #8b5cf6;
7956
- cursor: help;
7957
- }
7958
-
7959
- /* Permissions section styles */
7960
- .permissions-header {
7961
- display: flex;
7962
- align-items: center;
7963
- justify-content: space-between;
7964
- margin-bottom: 4px;
7965
- }
7966
-
7967
- .permissions-header label {
7968
- margin-bottom: 0 !important;
7969
- }
7970
-
7971
- .permissions-list {
7972
- margin-top: 12px;
7973
- padding: 12px;
7974
- background: var(--color-surface);
7975
- border: 1px solid var(--color-border);
7976
- border-radius: var(--radius-small);
7977
- max-height: 300px;
7978
- overflow-y: auto;
7979
- }
7980
-
7981
- .permission-category {
7982
- margin-bottom: 16px;
7983
- }
7984
-
7985
- .permission-category:last-child {
7986
- margin-bottom: 0;
7987
- }
7988
-
7989
- .permission-category-title {
7990
- font-size: 12px;
7991
- font-weight: 600;
7992
- text-transform: uppercase;
7993
- letter-spacing: 0.5px;
7994
- color: var(--color-text-muted);
7995
- margin: 0 0 8px 0;
7996
- padding-bottom: 4px;
7997
- border-bottom: 1px solid var(--color-border);
7998
- }
7999
-
8000
- .permission-items {
7993
+ .access-badges {
8001
7994
  display: flex;
8002
7995
  flex-wrap: wrap;
8003
- gap: 8px;
8004
- }
8005
-
8006
- .permission-item {
8007
- display: flex;
8008
- align-items: center;
8009
- gap: 6px;
8010
- padding: 4px 8px;
8011
- background: var(--color-background);
8012
- border: 1px solid var(--color-border);
8013
- border-radius: var(--radius-small);
8014
- cursor: pointer;
8015
- transition: all 0.15s ease;
8016
- font-weight: normal !important;
8017
- }
8018
-
8019
- .permission-item:hover {
8020
- border-color: var(--color-accent);
8021
- background: rgba(63, 114, 255, 0.05);
8022
- }
8023
-
8024
- .permission-item:has(.permission-checkbox:checked) {
8025
- border-color: var(--color-accent);
8026
- background: rgba(63, 114, 255, 0.1);
8027
- }
8028
-
8029
- .permission-checkbox {
8030
- width: auto !important;
8031
- margin: 0 !important;
8032
- cursor: pointer;
8033
- }
8034
-
8035
- .permission-key {
8036
- font-size: 12px;
8037
- font-family: monospace;
8038
- color: var(--color-text);
8039
- }
8040
-
8041
- /* Permission from role - shown as disabled/inherited */
8042
- .permission-item.permission-from-role {
8043
- background: rgba(34, 197, 94, 0.08);
8044
- border-color: rgba(34, 197, 94, 0.3);
8045
- opacity: 0.85;
8046
- }
8047
-
8048
- .permission-item.permission-from-role:hover {
8049
- background: rgba(34, 197, 94, 0.08);
8050
- border-color: rgba(34, 197, 94, 0.3);
8051
- cursor: not-allowed;
8052
- }
8053
-
8054
- .permission-item.permission-from-role .permission-checkbox {
8055
- cursor: not-allowed;
7996
+ gap: 4px;
8056
7997
  }
8057
7998
 
8058
- .permission-role-badge {
8059
- font-size: 9px;
8060
- padding: 1px 4px;
8061
- border-radius: 3px;
8062
- background: rgba(34, 197, 94, 0.15);
8063
- color: #16a34a;
8064
- font-weight: 500;
8065
- text-transform: uppercase;
8066
- letter-spacing: 0.3px;
8067
- margin-left: auto;
7999
+ .role-badge.role-admin {
8000
+ background: rgba(63, 114, 255, 0.12);
8001
+ color: var(--color-accent);
8068
8002
  }
8069
8003
 
8070
- /* Custom permission highlight */
8071
- .permission-item.permission-custom {
8072
- border-color: var(--color-accent);
8073
- background: rgba(63, 114, 255, 0.1);
8004
+ .role-badge.role-user-binding {
8005
+ background: rgba(16, 185, 129, 0.12);
8006
+ color: #059669;
8074
8007
  }
8075
8008
 
8076
- .permission-item.permission-custom::after {
8077
- content: 'custom';
8078
- font-size: 9px;
8079
- padding: 1px 4px;
8080
- border-radius: 3px;
8081
- background: rgba(139, 92, 246, 0.15);
8082
- color: #8b5cf6;
8083
- font-weight: 500;
8084
- text-transform: uppercase;
8085
- letter-spacing: 0.3px;
8086
- margin-left: auto;
8009
+ .role-badge.role-team-binding {
8010
+ background: rgba(139, 92, 246, 0.12);
8011
+ color: #7c3aed;
8087
8012
  }
8088
8013
 
8089
8014
  .form-input {
@@ -8511,6 +8436,13 @@ select option[value=""] {
8511
8436
  font-size: 1.1em;
8512
8437
  }
8513
8438
 
8439
+ .member-item {
8440
+ display: flex;
8441
+ align-items: center;
8442
+ gap: 6px;
8443
+ padding: 2px 0;
8444
+ }
8445
+
8514
8446
  .btn-icon {
8515
8447
  display: inline-flex;
8516
8448
  align-items: center;
@@ -12340,6 +12272,109 @@ select option[value=""] {
12340
12272
  text-align: center;
12341
12273
  }
12342
12274
 
12275
+ /* Profile Access Info Section */
12276
+ .profile-access-info {
12277
+ display: flex;
12278
+ flex-direction: column;
12279
+ gap: 16px;
12280
+ }
12281
+
12282
+ .profile-access-loading {
12283
+ font-size: 13px;
12284
+ color: var(--color-text-muted);
12285
+ padding: 8px 0;
12286
+ }
12287
+
12288
+ .profile-access-group {
12289
+ display: flex;
12290
+ flex-direction: column;
12291
+ gap: 6px;
12292
+ }
12293
+
12294
+ .profile-access-group-label {
12295
+ font-size: 12px;
12296
+ font-weight: 600;
12297
+ color: var(--color-text-muted);
12298
+ text-transform: uppercase;
12299
+ letter-spacing: 0.3px;
12300
+ }
12301
+
12302
+ .profile-access-items {
12303
+ display: flex;
12304
+ flex-direction: column;
12305
+ gap: 4px;
12306
+ }
12307
+
12308
+ .profile-access-item {
12309
+ display: flex;
12310
+ align-items: center;
12311
+ justify-content: space-between;
12312
+ padding: 8px 12px;
12313
+ background: var(--color-bg-secondary);
12314
+ border-radius: 6px;
12315
+ border: 1px solid var(--color-border);
12316
+ }
12317
+
12318
+ .profile-access-item-details {
12319
+ display: flex;
12320
+ flex-direction: column;
12321
+ gap: 2px;
12322
+ }
12323
+
12324
+ .profile-access-item-name {
12325
+ font-size: 13px;
12326
+ font-weight: 500;
12327
+ color: var(--color-text);
12328
+ }
12329
+
12330
+ .profile-access-via {
12331
+ font-size: 11px;
12332
+ color: var(--color-text-muted);
12333
+ }
12334
+
12335
+ .profile-access-badge {
12336
+ font-size: 11px;
12337
+ font-weight: 500;
12338
+ padding: 2px 8px;
12339
+ border-radius: 10px;
12340
+ white-space: nowrap;
12341
+ }
12342
+
12343
+ .profile-access-badge.member {
12344
+ background: rgba(96, 165, 250, 0.15);
12345
+ color: #60A5FA;
12346
+ }
12347
+
12348
+ .profile-access-badge.manager {
12349
+ background: rgba(251, 191, 36, 0.15);
12350
+ color: #FBBF24;
12351
+ }
12352
+
12353
+ .profile-access-badge.role {
12354
+ background: rgba(139, 92, 246, 0.15);
12355
+ color: #A78BFA;
12356
+ }
12357
+
12358
+ .profile-access-badge.admin {
12359
+ background: rgba(239, 68, 68, 0.15);
12360
+ color: #F87171;
12361
+ }
12362
+
12363
+ .profile-access-admin-badge {
12364
+ display: flex;
12365
+ align-items: center;
12366
+ gap: 8px;
12367
+ font-size: 13px;
12368
+ color: var(--color-text-muted);
12369
+ margin-bottom: 12px;
12370
+ }
12371
+
12372
+ .profile-access-empty {
12373
+ font-size: 13px;
12374
+ color: var(--color-text-muted);
12375
+ padding: 8px 0;
12376
+ }
12377
+
12343
12378
  /* Git Connections Required Modal */
12344
12379
  .git-connections-intro {
12345
12380
  margin-bottom: 16px;
@@ -19576,6 +19611,7 @@ body.task-list-open .task-list-side-trigger {
19576
19611
  border-radius: var(--radius-small);
19577
19612
  overflow: hidden;
19578
19613
  background: var(--color-surface);
19614
+ min-height: 0;
19579
19615
  }
19580
19616
 
19581
19617
  .markdown-file-editor-wrapper .markdown-editor-wrapper {
@@ -19583,6 +19619,7 @@ body.task-list-open .task-list-side-trigger {
19583
19619
  display: flex;
19584
19620
  flex-direction: column;
19585
19621
  overflow: hidden;
19622
+ min-height: 0;
19586
19623
  }
19587
19624
 
19588
19625
  .markdown-file-editor-wrapper .markdown-editor-toolbar {
@@ -22,7 +22,7 @@
22
22
  }
23
23
  })();
24
24
  </script>
25
- <link rel="stylesheet" href="styles.css?v=91">
25
+ <link rel="stylesheet" href="styles.css?v=92">
26
26
  <!-- Syntax highlighting -->
27
27
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css">
28
28
  <!-- Load libraries before modules (blocking) -->
@@ -38,7 +38,7 @@
38
38
  <script type="module" src="markdown-editor.js?v=1"></script>
39
39
  <script src="markdown-file-editor.js?v=1"></script>
40
40
  <script type="module" src="comments-widget.js?v=1"></script>
41
- <script type="module" src="task.js?v=70"></script>
41
+ <script type="module" src="task.js?v=71"></script>
42
42
  <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
43
43
  </head>
44
44
  <body>