@profoundlogic/coderflow-server 0.4.4 → 0.4.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.
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
+ const _0x4d8b09=_0x4a51;(function(_0x1af1ba,_0x2a63e3){const _0x480a10=_0x4a51,_0x29664e=_0x1af1ba();while(!![]){try{const _0x3393fc=-parseInt(_0x480a10(0x213))/0x1+-parseInt(_0x480a10(0x22b))/0x2*(-parseInt(_0x480a10(0x207))/0x3)+-parseInt(_0x480a10(0x21b))/0x4+-parseInt(_0x480a10(0x1f8))/0x5+parseInt(_0x480a10(0x1fb))/0x6+-parseInt(_0x480a10(0x222))/0x7*(parseInt(_0x480a10(0x1ea))/0x8)+parseInt(_0x480a10(0x231))/0x9*(parseInt(_0x480a10(0x1f3))/0xa);if(_0x3393fc===_0x2a63e3)break;else _0x29664e['push'](_0x29664e['shift']());}catch(_0x24271c){_0x29664e['push'](_0x29664e['shift']());}}}(_0x3b78,0xb46f9));function _0x4a51(_0x19596c,_0x168b6f){_0x19596c=_0x19596c-0x1ce;const _0x3b7801=_0x3b78();let _0x4a51da=_0x3b7801[_0x19596c];if(_0x4a51['BWggrA']===undefined){var _0x5d3492=function(_0x5bbbc9){const _0x472e26='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d37d5='',_0xa6afe2='';for(let _0x3f6e78=0x0,_0x31e260,_0xcf8fc8,_0x2c0fe8=0x0;_0xcf8fc8=_0x5bbbc9['charAt'](_0x2c0fe8++);~_0xcf8fc8&&(_0x31e260=_0x3f6e78%0x4?_0x31e260*0x40+_0xcf8fc8:_0xcf8fc8,_0x3f6e78++%0x4)?_0x2d37d5+=String['fromCharCode'](0xff&_0x31e260>>(-0x2*_0x3f6e78&0x6)):0x0){_0xcf8fc8=_0x472e26['indexOf'](_0xcf8fc8);}for(let _0x2335c4=0x0,_0x3a0b81=_0x2d37d5['length'];_0x2335c4<_0x3a0b81;_0x2335c4++){_0xa6afe2+='%'+('00'+_0x2d37d5['charCodeAt'](_0x2335c4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa6afe2);};_0x4a51['vPhaWZ']=_0x5d3492,_0x4a51['ffgcOH']={},_0x4a51['BWggrA']=!![];}const _0x5ba0db=_0x3b7801[0x0],_0x218ad3=_0x19596c+_0x5ba0db,_0x1f5f10=_0x4a51['ffgcOH'][_0x218ad3];return!_0x1f5f10?(_0x4a51da=_0x4a51['vPhaWZ'](_0x4a51da),_0x4a51['ffgcOH'][_0x218ad3]=_0x4a51da):_0x4a51da=_0x1f5f10,_0x4a51da;}function isSharedWorkerSupported(){return typeof SharedWorker!=='undefined';}function eventTypeToHandler(_0x2d37d5){const _0x2fe7b2=_0x4a51;if(_0x2d37d5===_0x2fe7b2(0x219))return'onConnected';if(_0x2d37d5===_0x2fe7b2(0x230))return _0x2fe7b2(0x20d);return'on'+_0x2d37d5[_0x2fe7b2(0x1e3)]('-')[_0x2fe7b2(0x223)](_0xa6afe2=>_0xa6afe2[_0x2fe7b2(0x1e8)](0x0)[_0x2fe7b2(0x22c)]()+_0xa6afe2[_0x2fe7b2(0x22e)](0x1))['join']('');}const TASK_STREAM_EVENTS=[_0x4d8b09(0x1f9),_0x4d8b09(0x200),_0x4d8b09(0x1df),'summary',_0x4d8b09(0x1ef),'app-server-status',_0x4d8b09(0x21f)];function _0x3b78(){const _0x5953c=['w1ntrsbdBgLLBNrDievYCM9YigLUia','C3rYAw5N','igXPC3rLBMvYoG','AgfZ','x3n1yNnJCMLIzvrHC2TeAxjLy3q','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','Cg93','C25HChnOB3q','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','DgfZA0LK','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','x2vTAxq','x3nJAgvKDwXLuMvJB25Uzwn0','Cg9ZDe1LC3nHz2u','AgfUzgXLCNm','C3rHDhvZ','y29UBMvJDa','Dw5ZDwjZy3jPyMvuyxnR','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','D29YA2vY','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','Bwv0ywrHDge','y2XVC2u','BwvZC2fNzq','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','C3bSAxq','B25TzxnZywDLzxjYB3i','ywrKrxzLBNrmAxn0zw5LCG','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','y2XLyxi','y2HHCKf0','BgLZDgvUzxjZ','oejlyMDgCG','CxvLDwuTCg9ZAxrPB24','DxnLu2HHCMvKv29YA2vY','BMv3lxrHC2S','zxzLBNrtB3vYy2u','y2HHBMDLzc1MAwXLCW','CMvJB25Uzwn0vgLTzw91Da','D2fYBG','Bg9N','mtm2mZbZzeTrsum','x2HHBMrSzurPCMvJDfntrq','B25dB25Uzwn0zwq','x2nVBM5Ly3reAxjLy3q','q29UBMvJDgLVBIbLCNjVCG','nZe0odGWnuXctfDRvq','ywn0AxzPDhK','B3bLBG','nZC3otKZnKfoq25sqG','x2vUC3vYzvDVCMTLCG','zgf0yq','zgLZy29UBMvJDa','C2v0','Bg9NCW','zM9YrwfJAa','zgLYzwn0','DxnLCKLK','z2v0','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','m211vu5mEa','igHHBMrSzxi6','y2HHBMDLrMLSDgvY','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','l3rHC2TZlW','ywrK','B25fCNjVCG','Cg9YDa','CgfYC2u','DgfZAZO','x2nVBM5Ly3rwAwfxB3jRzxi','AxndB25Uzwn0zwq','ndyXmdfyyKL6te8','yMLUza','DhLWzq','x3rHC2TtDwjjzenVDw50zxi','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','CMvJB25Uzwn0qxr0zw1WDhm','y29UBMvJDgvK','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','mJuXotmYnhDfs3b5yq','AxnvC2LUz1nOyxjLzfDVCMTLCG','x3rHC2TtDwjZy3jPChrPB25Z','B2zM','y29TCgXLDgu','l3rHC2TZl3vWzgf0zxm','C3vIC2nYAwjLvgfZAW','nte1ntGWog5vBgHvqW','BwfW','zgvSzxrL','C3rHCNq','x2HHBMrSzvDVCMTLCK1LC3nHz2u','l3n0CMvHBq','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','C3rHCNrZv2L0Aa','nJKWmtK0wxrgCeLY','Dg9vChbLCKnHC2u','B25TzxnZywDL','C2XPy2u','C2L6zq','zxjYB3i','mti4mdDkAeDrr1O'];_0x3b78=function(){return _0x5953c;};return _0x3b78();}export class TaskUpdatesClient{constructor(){const _0x17172b=_0x4d8b09;this[_0x17172b(0x1e9)]=new Map(),this[_0x17172b(0x1dd)]=null,this[_0x17172b(0x20e)]=null,this[_0x17172b(0x1ee)]=null,this[_0x17172b(0x203)]=null,this[_0x17172b(0x1f0)]=null,this[_0x17172b(0x218)]=0x0,this[_0x17172b(0x1ec)]=isSharedWorkerSupported(),this[_0x17172b(0x219)]=![],this[_0x17172b(0x21d)]=new Map(),this[_0x17172b(0x216)]=0x0,this[_0x17172b(0x226)]=this['_handleWorkerMessage'][_0x17172b(0x214)](this),this[_0x17172b(0x1f4)]=this[_0x17172b(0x1f4)][_0x17172b(0x214)](this);}['on'](_0x3f6e78,_0x31e260){const _0x500e39=_0x4d8b09;return!this[_0x500e39(0x1e9)][_0x500e39(0x235)](_0x3f6e78)&&this[_0x500e39(0x1e9)][_0x500e39(0x1ff)](_0x3f6e78,new Set()),this[_0x500e39(0x1e9)][_0x500e39(0x204)](_0x3f6e78)['add'](_0x31e260),this;}[_0x4d8b09(0x21e)](_0xcf8fc8,_0x2c0fe8){const _0x158679=_0x4d8b09;return this[_0x158679(0x1e9)]['has'](_0xcf8fc8)&&this[_0x158679(0x1e9)][_0x158679(0x204)](_0xcf8fc8)[_0x158679(0x224)](_0x2c0fe8),this;}[_0x4d8b09(0x1d5)](_0x2335c4,_0x3a0b81){const _0x3fa6a4=_0x4d8b09;this[_0x3fa6a4(0x1e9)]['has'](_0x2335c4)&&this[_0x3fa6a4(0x1e9)][_0x3fa6a4(0x204)](_0x2335c4)[_0x3fa6a4(0x201)](_0x89f7cf=>{const _0x340bbb=_0x3fa6a4;try{_0x89f7cf(_0x3a0b81);}catch(_0xdbe276){console[_0x340bbb(0x230)](_0x340bbb(0x232)+_0x2335c4+_0x340bbb(0x234),_0xdbe276);}});}[_0x4d8b09(0x1da)](_0x48d265='me'){const _0x3fc75a=_0x4d8b09;this[_0x3fc75a(0x203)]=_0x48d265,this[_0x3fc75a(0x1ec)]?this[_0x3fc75a(0x211)](_0x48d265):this[_0x3fc75a(0x1f6)](_0x48d265);}[_0x4d8b09(0x211)](_0x23e45f){const _0x5945e0=_0x4d8b09;try{this[_0x5945e0(0x1fc)](),this[_0x5945e0(0x20e)][_0x5945e0(0x1d7)]({'action':_0x5945e0(0x1da),'userId':_0x23e45f});}catch(_0x57a57a){console[_0x5945e0(0x230)](_0x5945e0(0x1d4),_0x57a57a),this['useSharedWorker']=![],this[_0x5945e0(0x1f6)](_0x23e45f);}}[_0x4d8b09(0x1fc)](){const _0x27a066=_0x4d8b09;!this['worker']&&(this[_0x27a066(0x1dd)]=new SharedWorker(_0x27a066(0x206)),this[_0x27a066(0x20e)]=this[_0x27a066(0x1dd)][_0x27a066(0x20e)],this['port'][_0x27a066(0x22d)]=this[_0x27a066(0x226)],this['port'][_0x27a066(0x1e4)]=_0x217a34=>{const _0x405c0d=_0x27a066;console['error'](_0x405c0d(0x1dc),_0x217a34),this[_0x405c0d(0x1d5)](_0x405c0d(0x230),{'error':'Worker\x20message\x20error'});},this[_0x27a066(0x20e)][_0x27a066(0x225)]());}[_0x4d8b09(0x226)](_0x3fb9b2){const _0x4869e5=_0x4d8b09,_0x639e1d=_0x3fb9b2[_0x4869e5(0x1fd)];if(_0x639e1d['type']&&_0x639e1d[_0x4869e5(0x215)][_0x4869e5(0x22a)]('task:')){this[_0x4869e5(0x1d2)](_0x639e1d);return;}switch(_0x639e1d[_0x4869e5(0x215)]){case _0x4869e5(0x219):this[_0x4869e5(0x219)]=!![],this['_emit'](_0x4869e5(0x219),{});break;case'snapshot':case _0x4869e5(0x1f9):case _0x4869e5(0x1d9):case'new-task':case _0x4869e5(0x1eb):try{const _0x40b09e=JSON['parse'](_0x639e1d[_0x4869e5(0x1fd)]);this[_0x4869e5(0x1d5)](_0x639e1d[_0x4869e5(0x215)],_0x40b09e);}catch(_0x49aeed){console[_0x4869e5(0x230)](_0x4869e5(0x20a)+_0x639e1d[_0x4869e5(0x215)]+'\x20data:',_0x49aeed);}break;case _0x4869e5(0x230):this[_0x4869e5(0x219)]=![],this['_emit'](_0x4869e5(0x230),_0x639e1d);break;default:console[_0x4869e5(0x1f1)](_0x4869e5(0x205),_0x639e1d[_0x4869e5(0x215)]);}}[_0x4d8b09(0x1d2)](_0x4cbbd5){const _0x14a126=_0x4d8b09,{taskId:_0x3336e6,type:_0x3a441b,data:_0x4a344b}=_0x4cbbd5,_0x4968d8=this['_taskSubscriptions'][_0x14a126(0x204)](_0x3336e6);if(!_0x4968d8||_0x4968d8[_0x14a126(0x22f)]===0x0)return;const _0x472c55=_0x3a441b['replace'](_0x14a126(0x210),''),_0x32fd7f=eventTypeToHandler(_0x472c55);_0x4968d8[_0x14a126(0x201)](_0x31ed1b=>{const _0x10b3ff=_0x14a126;if(_0x31ed1b[_0x10b3ff(0x1d8)][_0x32fd7f])try{const _0x46da2b=typeof _0x4a344b===_0x10b3ff(0x233)?JSON[_0x10b3ff(0x20f)](_0x4a344b):_0x4a344b;_0x31ed1b[_0x10b3ff(0x1d8)][_0x32fd7f](_0x46da2b);}catch(_0x4826dd){console['error'](_0x10b3ff(0x21a)+_0x472c55+_0x10b3ff(0x208),_0x4826dd);}});}[_0x4d8b09(0x1f6)](_0x3d966c){const _0x1805b3=_0x4d8b09;this[_0x1805b3(0x1ee)]&&(this[_0x1805b3(0x1ee)][_0x1805b3(0x1e0)](),this['eventSource']=null);const _0x40b34a=_0x3d966c&&_0x3d966c!=='me'?'?userId='+_0x3d966c:'';try{this['eventSource']=new EventSource(_0x1805b3(0x220)+_0x40b34a),this[_0x1805b3(0x1ee)][_0x1805b3(0x1e5)](_0x1805b3(0x1fa),()=>{const _0x42b30d=_0x1805b3;this[_0x42b30d(0x219)]=!![],this[_0x42b30d(0x218)]=0x0,this[_0x42b30d(0x1d5)](_0x42b30d(0x219),{});}),this[_0x1805b3(0x1ee)]['addEventListener'](_0x1805b3(0x1d1),_0x1c1af1=>{const _0x2fdd40=_0x1805b3;this[_0x2fdd40(0x1f4)]('snapshot',_0x1c1af1),this['reconnectAttempts']=0x0;}),this[_0x1805b3(0x1ee)][_0x1805b3(0x1e5)](_0x1805b3(0x1f9),_0x4f1ea6=>{const _0x445d92=_0x1805b3;this[_0x445d92(0x1f4)](_0x445d92(0x1f9),_0x4f1ea6);}),this[_0x1805b3(0x1ee)][_0x1805b3(0x1e5)](_0x1805b3(0x1d9),_0x178636=>{const _0x3005f5=_0x1805b3;this[_0x3005f5(0x1f4)](_0x3005f5(0x1d9),_0x178636);}),this['eventSource']['addEventListener'](_0x1805b3(0x1ed),_0x5896b8=>{const _0x401767=_0x1805b3;this[_0x401767(0x1f4)](_0x401767(0x1ed),_0x5896b8);}),this['eventSource']['addEventListener'](_0x1805b3(0x1eb),_0x328f4a=>{const _0x5888ff=_0x1805b3;this['_handleDirectSSE'](_0x5888ff(0x1eb),_0x328f4a);}),this['eventSource']['addEventListener'](_0x1805b3(0x230),_0x2b364b=>{const _0x4280ee=_0x1805b3;console[_0x4280ee(0x230)](_0x4280ee(0x1cf),_0x2b364b),this[_0x4280ee(0x219)]=![],this['_emit'](_0x4280ee(0x230),{'error':'Connection\x20error'}),this[_0x4280ee(0x1ee)]&&(this['eventSource'][_0x4280ee(0x1e0)](),this[_0x4280ee(0x1ee)]=null),this[_0x4280ee(0x1d6)]();});}catch(_0x163b6d){console['error'](_0x1805b3(0x1de),_0x163b6d),this[_0x1805b3(0x1d5)](_0x1805b3(0x230),{'error':_0x163b6d[_0x1805b3(0x1e1)]}),this[_0x1805b3(0x1d6)]();}}[_0x4d8b09(0x1f4)](_0x2c7c74,_0x2cc329){const _0x48b33e=_0x4d8b09;try{const _0x2e58f1=JSON[_0x48b33e(0x20f)](_0x2cc329[_0x48b33e(0x1fd)]);this[_0x48b33e(0x1d5)](_0x2c7c74,_0x2e58f1);}catch(_0x5d6732){console[_0x48b33e(0x230)](_0x48b33e(0x20a)+_0x2c7c74+'\x20data:',_0x5d6732);}}[_0x4d8b09(0x1d6)](){const _0x2bba79=_0x4d8b09;this['reconnectTimeout']&&clearTimeout(this[_0x2bba79(0x1f0)]);const _0x498638=Math['min'](0x3e8*Math[_0x2bba79(0x1d0)](0x2,this[_0x2bba79(0x218)]),0x7530);this[_0x2bba79(0x218)]++,console[_0x2bba79(0x1f2)]('[SSE\x20Client]\x20Scheduling\x20reconnect\x20in\x20'+_0x498638+'ms'),this[_0x2bba79(0x1f0)]=setTimeout(()=>{const _0x271f35=_0x2bba79;this[_0x271f35(0x1f6)](this[_0x271f35(0x203)]);},_0x498638);}[_0x4d8b09(0x209)](_0x2b8f4a){const _0x10e6c2=_0x4d8b09;if(_0x2b8f4a===this[_0x10e6c2(0x203)])return;this[_0x10e6c2(0x203)]=_0x2b8f4a;if(this[_0x10e6c2(0x1ec)]&&this[_0x10e6c2(0x20e)])this[_0x10e6c2(0x20e)][_0x10e6c2(0x1d7)]({'action':_0x10e6c2(0x209),'userId':_0x2b8f4a});else this[_0x10e6c2(0x1ee)]&&this['_connectDirect'](_0x2b8f4a);}[_0x4d8b09(0x221)](_0x9a172f,_0x587965){const _0x23ef0e=_0x4d8b09;return this['useSharedWorker']?this[_0x23ef0e(0x228)](_0x9a172f,_0x587965):this[_0x23ef0e(0x1ce)](_0x9a172f,_0x587965);}[_0x4d8b09(0x1db)](_0x3d6257){const _0x309f7c=_0x4d8b09;if(!_0x3d6257)return;_0x3d6257[_0x309f7c(0x215)]===_0x309f7c(0x1dd)?this[_0x309f7c(0x1e2)](_0x3d6257):this[_0x309f7c(0x1e6)](_0x3d6257);}[_0x4d8b09(0x228)](_0x2a296b,_0x12e43b){const _0x4a3270=_0x4d8b09;try{this[_0x4a3270(0x1fc)]();}catch(_0x32f28e){return console[_0x4a3270(0x230)](_0x4a3270(0x229),_0x32f28e),this[_0x4a3270(0x1ec)]=![],this[_0x4a3270(0x1ce)](_0x2a296b,_0x12e43b);}const _0x9a53fa=++this[_0x4a3270(0x216)],_0x361dbe={'type':'worker','taskId':_0x2a296b,'handlers':_0x12e43b,'id':_0x9a53fa};return!this['_taskSubscriptions'][_0x4a3270(0x235)](_0x2a296b)&&(this[_0x4a3270(0x21d)][_0x4a3270(0x1ff)](_0x2a296b,new Set()),this[_0x4a3270(0x20e)][_0x4a3270(0x1d7)]({'action':'subscribeTask','taskId':_0x2a296b})),this[_0x4a3270(0x21d)][_0x4a3270(0x204)](_0x2a296b)[_0x4a3270(0x20c)](_0x361dbe),_0x361dbe;}[_0x4d8b09(0x1e2)](_0x1379e0){const _0x1cbfc0=_0x4d8b09,{taskId:_0x2dc16f}=_0x1379e0,_0x46e7f7=this['_taskSubscriptions']['get'](_0x2dc16f);if(_0x46e7f7){_0x46e7f7[_0x1cbfc0(0x224)](_0x1379e0);if(_0x46e7f7[_0x1cbfc0(0x22f)]===0x0){this[_0x1cbfc0(0x21d)][_0x1cbfc0(0x224)](_0x2dc16f);try{this[_0x1cbfc0(0x20e)]&&this[_0x1cbfc0(0x20e)][_0x1cbfc0(0x1d7)]({'action':_0x1cbfc0(0x1db),'taskId':_0x2dc16f});}catch(_0x39bfd8){}}}}[_0x4d8b09(0x1ce)](_0x5fca72,_0xd766c5){const _0x2a6aa8=_0x4d8b09,_0x2e6505=++this[_0x2a6aa8(0x216)],_0x22d903=new EventSource(_0x2a6aa8(0x20b)+_0x5fca72+_0x2a6aa8(0x227)),_0x4606cd={'type':_0x2a6aa8(0x202),'taskId':_0x5fca72,'handlers':_0xd766c5,'id':_0x2e6505,'eventSource':_0x22d903};!this[_0x2a6aa8(0x21d)][_0x2a6aa8(0x235)](_0x5fca72)&&this['_taskSubscriptions'][_0x2a6aa8(0x1ff)](_0x5fca72,new Set());this[_0x2a6aa8(0x21d)][_0x2a6aa8(0x204)](_0x5fca72)['add'](_0x4606cd);for(const _0x2bd705 of TASK_STREAM_EVENTS){const _0x17dfc7=eventTypeToHandler(_0x2bd705);_0x22d903[_0x2a6aa8(0x1e5)](_0x2bd705,_0x20529b=>{const _0x3a1892=_0x2a6aa8;if(_0xd766c5[_0x17dfc7])try{const _0x53f082=JSON['parse'](_0x20529b[_0x3a1892(0x1fd)]);_0xd766c5[_0x17dfc7](_0x53f082);}catch(_0x39f846){console['error'](_0x3a1892(0x217)+_0x2bd705+':',_0x39f846);}});}return _0x22d903[_0x2a6aa8(0x1e5)](_0x2a6aa8(0x1fa),()=>{const _0x21625f=_0x2a6aa8;if(_0xd766c5['onConnected'])_0xd766c5[_0x21625f(0x1f5)]();}),_0x22d903['addEventListener'](_0x2a6aa8(0x230),()=>{const _0x2f9f35=_0x2a6aa8;if(_0xd766c5[_0x2f9f35(0x20d)])_0xd766c5[_0x2f9f35(0x20d)]({'error':_0x2f9f35(0x1f7)});}),_0x4606cd;}[_0x4d8b09(0x1e6)](_0x27043a){const _0x3f847f=_0x4d8b09;_0x27043a[_0x3f847f(0x1ee)]&&(_0x27043a[_0x3f847f(0x1ee)][_0x3f847f(0x1e0)](),_0x27043a[_0x3f847f(0x1ee)]=null);const _0x21ec81=this[_0x3f847f(0x21d)][_0x3f847f(0x204)](_0x27043a[_0x3f847f(0x1d3)]);_0x21ec81&&(_0x21ec81[_0x3f847f(0x224)](_0x27043a),_0x21ec81[_0x3f847f(0x22f)]===0x0&&this[_0x3f847f(0x21d)][_0x3f847f(0x224)](_0x27043a[_0x3f847f(0x1d3)]));}[_0x4d8b09(0x1fe)](){const _0x235a00=_0x4d8b09;this['reconnectTimeout']&&(clearTimeout(this[_0x235a00(0x1f0)]),this['reconnectTimeout']=null);this[_0x235a00(0x21d)]['forEach']((_0x3623a1,_0x1beeac)=>{const _0x79f5f2=_0x235a00;_0x3623a1[_0x79f5f2(0x201)](_0x8ee74d=>{const _0x59240f=_0x79f5f2;_0x8ee74d[_0x59240f(0x215)]===_0x59240f(0x202)&&_0x8ee74d[_0x59240f(0x1ee)]&&_0x8ee74d[_0x59240f(0x1ee)][_0x59240f(0x1e0)]();});}),this['_taskSubscriptions'][_0x235a00(0x1e7)]();if(this['useSharedWorker']&&this[_0x235a00(0x20e)])try{this['port'][_0x235a00(0x1d7)]({'action':'disconnect'});}catch(_0x400e0e){}this[_0x235a00(0x1ee)]&&(this['eventSource'][_0x235a00(0x1e0)](),this[_0x235a00(0x1ee)]=null),this[_0x235a00(0x219)]=![];}[_0x4d8b09(0x212)](){const _0x1a8c5d=_0x4d8b09;return this[_0x1a8c5d(0x219)];}[_0x4d8b09(0x21c)](){return this['useSharedWorker'];}}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
+ function _0x1de4(){const _0x50e977=['w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','y29TCgXLDgu','BMv3lxrHC2S','CMvJB25Uzwn0qxr0zw1WDhm','zxjYB3i','B25TzxnZywDL','C25HChnOB3q','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','C2v0','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','B3bLBG','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','Bwv0ywrHDge','BgvUz3rO','BwLU','zgLZy29UBMvJDa','mtm0nJuXnejmr3nLBW','ndC4zMjyAK1q','CMvJB25Uzwn0vgLTzw91Da','BxmGkgf0DgvTChqG','Cg9ZDe1LC3nHz2u','mta4m1jozMD2va','zgvSzxrL','DgfZAZPLCNjVCG','Bg9NCW','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','otm5mLviCLrdDa','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','B25JB25Uzwn0','mJi0ogvQDfzyDq','C3rYAw5NAwz5','q0Xpu0ve','D2fYBG','zgf0yq','odu1nZC3nMnACLDdqq','z2v0','B25TzxnZywDLzxjYB3i','ntq0mZKXnhbHCxPsua','ywn0AxzPDhK','igLUia','ntiXnJbLtNLluMC','y2HHBMDLrMLSDgvY','mtiYnfHOquL1rq','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','ChvZAa','p3vZzxjjzd0','l3rHC2TZlW','C3rHDhvZ','Bg9N','l3rHC2TZl3vWzgf0zxm','t1bftG','mZiWmtmWzKz3vKDu','C2L6zq','ywrKrxzLBNrmAxn0zw5LCG','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','DgfZAZPJB25Uzwn0zwq','DgfZAZO','mJzcy2DXzeq','yxbWlxnLCNzLCI1ZDgf0Dxm','CxvLDwuTCg9ZAxrPB24','zxzLBNrtB3vYy2u','y29UBMvJDgvK','q29UBMvJDgLVBIbLCNjVCG','mJa5uxHVyLLc','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','l3n0CMvHBq','y29UBMvJDa','y2XVC2u','C3vTBwfYEq','C3rHCNq','C3vIC2nYAwjLzfbVCNrZ','zM9YrwfJAa','BwvZC2fNzq','nvHLDKLSyG','Cg9YDhm','CMvHzhLtDgf0zq','C3vIC2nYAwjLvgfZAW'];_0x1de4=function(){return _0x50e977;};return _0x1de4();}const _0x117da6=_0x2b84;function _0x2b84(_0x2f9745,_0x4476bd){_0x2f9745=_0x2f9745-0x1d3;const _0x1de496=_0x1de4();let _0x2b84c5=_0x1de496[_0x2f9745];if(_0x2b84['ETthqb']===undefined){var _0x132a33=function(_0x2b8b17){const _0x3ef80f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41608f='',_0x21f922='';for(let _0xc17b9d=0x0,_0x5c0dad,_0x4ee39e,_0x1877f5=0x0;_0x4ee39e=_0x2b8b17['charAt'](_0x1877f5++);~_0x4ee39e&&(_0x5c0dad=_0xc17b9d%0x4?_0x5c0dad*0x40+_0x4ee39e:_0x4ee39e,_0xc17b9d++%0x4)?_0x41608f+=String['fromCharCode'](0xff&_0x5c0dad>>(-0x2*_0xc17b9d&0x6)):0x0){_0x4ee39e=_0x3ef80f['indexOf'](_0x4ee39e);}for(let _0x2d050b=0x0,_0x491d21=_0x41608f['length'];_0x2d050b<_0x491d21;_0x2d050b++){_0x21f922+='%'+('00'+_0x41608f['charCodeAt'](_0x2d050b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21f922);};_0x2b84['SuSCZO']=_0x132a33,_0x2b84['rSJYaN']={},_0x2b84['ETthqb']=!![];}const _0xeae6fb=_0x1de496[0x0],_0x4de56f=_0x2f9745+_0xeae6fb,_0xb44898=_0x2b84['rSJYaN'][_0x4de56f];return!_0xb44898?(_0x2b84c5=_0x2b84['SuSCZO'](_0x2b84c5),_0x2b84['rSJYaN'][_0x4de56f]=_0x2b84c5):_0x2b84c5=_0xb44898,_0x2b84c5;}(function(_0x53a78c,_0x36359a){const _0x51010e=_0x2b84,_0x8b6d8e=_0x53a78c();while(!![]){try{const _0x2f8eb4=-parseInt(_0x51010e(0x1fa))/0x1*(parseInt(_0x51010e(0x206))/0x2)+parseInt(_0x51010e(0x1fe))/0x3*(parseInt(_0x51010e(0x203))/0x4)+parseInt(_0x51010e(0x1e4))/0x5*(-parseInt(_0x51010e(0x1f9))/0x6)+-parseInt(_0x51010e(0x20e))/0x7+parseInt(_0x51010e(0x211))/0x8*(-parseInt(_0x51010e(0x213))/0x9)+-parseInt(_0x51010e(0x21c))/0xa*(-parseInt(_0x51010e(0x1da))/0xb)+parseInt(_0x51010e(0x20b))/0xc*(parseInt(_0x51010e(0x1d4))/0xd);if(_0x2f8eb4===_0x36359a)break;else _0x8b6d8e['push'](_0x8b6d8e['shift']());}catch(_0xafaca4){_0x8b6d8e['push'](_0x8b6d8e['shift']());}}}(_0x1de4,0x6f57a));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=['activity',_0x117da6(0x201),_0x117da6(0x1f5),_0x117da6(0x1df),'changed-files',_0x117da6(0x1d5),_0x117da6(0x1e9)];function connect(_0x41608f){const _0x2fec10=_0x117da6;eventSource&&currentUserId!==_0x41608f&&(eventSource[_0x2fec10(0x1de)](),eventSource=null);if(eventSource&&eventSource[_0x2fec10(0x1e6)]!==EventSource['CLOSED'])return;currentUserId=_0x41608f;const _0x21f922=_0x41608f&&_0x41608f!=='me'?_0x2fec10(0x216)+_0x41608f:'';try{eventSource=new EventSource(_0x2fec10(0x21a)+_0x21f922),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x1ee),_0xc17b9d=>{const _0x2cc1a9=_0x2fec10;broadcast({'type':'snapshot','data':_0xc17b9d[_0x2cc1a9(0x20a)]}),reconnectAttempts=0x0;}),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x20f),_0x5c0dad=>{const _0x2df0a5=_0x2fec10;broadcast({'type':'activity','data':_0x5c0dad[_0x2df0a5(0x20a)]});}),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x218),_0x4ee39e=>{const _0x1c74c1=_0x2fec10;broadcast({'type':_0x1c74c1(0x218),'data':_0x4ee39e[_0x1c74c1(0x20a)]});}),eventSource['addEventListener'](_0x2fec10(0x1ea),_0x1877f5=>{const _0x214c57=_0x2fec10;broadcast({'type':'new-task','data':_0x1877f5[_0x214c57(0x20a)]});}),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x1d6),_0x2d050b=>{const _0x453a6c=_0x2fec10;broadcast({'type':_0x453a6c(0x1d6),'data':_0x2d050b[_0x453a6c(0x20a)]});}),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x1f2),()=>{const _0x2016b0=_0x2fec10;broadcast({'type':_0x2016b0(0x1d8)}),reconnectAttempts=0x0;}),eventSource[_0x2fec10(0x21e)](_0x2fec10(0x1ec),_0x491d21=>{const _0x259c0f=_0x2fec10;console[_0x259c0f(0x1ec)](_0x259c0f(0x1f1),_0x491d21),broadcast({'type':_0x259c0f(0x1ec),'error':_0x259c0f(0x1d9)}),eventSource&&(eventSource[_0x259c0f(0x1de)](),eventSource=null),scheduleReconnect();});}catch(_0x48da38){console['error'](_0x2fec10(0x1ef),_0x48da38),broadcast({'type':_0x2fec10(0x1ec),'error':_0x48da38[_0x2fec10(0x1e3)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x1a1e07=_0x117da6;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x1a1e07(0x21d)]===0x0)return;const _0x514c99=Math[_0x1a1e07(0x1f7)](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x1a1e07(0x219)](_0x1a1e07(0x21f)+_0x514c99+_0x1a1e07(0x1fc)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{ports['size']>0x0&&connect(currentUserId);},_0x514c99);}function broadcast(_0x40f49a){const _0x11fbec=_0x117da6,_0x3c7b00=[];ports['forEach'](_0xdd8f10=>{const _0x13ab93=_0x2b84;try{_0xdd8f10['postMessage'](_0x40f49a);}catch(_0x5ac59f){console[_0x13ab93(0x209)](_0x13ab93(0x214),_0x5ac59f),_0x3c7b00[_0x13ab93(0x215)](_0xdd8f10);}}),_0x3c7b00[_0x11fbec(0x1f6)]>0x0&&cleanUpDeadPorts(_0x3c7b00),ports['size']===0x0&&eventSource&&(console['log'](_0x11fbec(0x204)),eventSource[_0x11fbec(0x1de)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x218fcc,_0x161140){const _0x4cba5a=_0x117da6;let _0x340850=taskStreams[_0x4cba5a(0x20c)](_0x161140);!_0x340850&&(_0x340850={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x4cba5a(0x1f0)](_0x161140,_0x340850));_0x340850['subscribedPorts']['add'](_0x218fcc);if(!_0x340850['eventSource']||_0x340850[_0x4cba5a(0x1d7)][_0x4cba5a(0x1e6)]===EventSource[_0x4cba5a(0x208)])connectTaskStream(_0x161140);else{if(_0x340850[_0x4cba5a(0x1d7)][_0x4cba5a(0x1e6)]===EventSource[_0x4cba5a(0x21b)])try{_0x218fcc[_0x4cba5a(0x1fd)]({'type':_0x4cba5a(0x220),'taskId':_0x161140});}catch(_0x5055d5){}}}function unsubscribeTask(_0x22f66f,_0x1e4e08){const _0xb55659=_0x117da6,_0x363e2d=taskStreams['get'](_0x1e4e08);if(!_0x363e2d)return;_0x363e2d[_0xb55659(0x1e1)]['delete'](_0x22f66f),_0x363e2d['subscribedPorts'][_0xb55659(0x21d)]===0x0&&deferredCloseTaskStream(_0x1e4e08);}function connectTaskStream(_0x143d49){const _0x171b28=_0x117da6,_0x3d292f=taskStreams['get'](_0x143d49);if(!_0x3d292f)return;_0x3d292f['eventSource']&&(_0x3d292f['eventSource'][_0x171b28(0x1de)](),_0x3d292f[_0x171b28(0x1d7)]=null);try{_0x3d292f[_0x171b28(0x1d7)]=new EventSource(_0x171b28(0x217)+_0x143d49+_0x171b28(0x1dc));for(const _0x11573b of TASK_STREAM_EVENTS){_0x3d292f[_0x171b28(0x1d7)][_0x171b28(0x21e)](_0x11573b,_0x471863=>{const _0x57cbb1=_0x171b28;broadcastToTask(_0x143d49,_0x57cbb1(0x1d3)+_0x11573b,_0x471863[_0x57cbb1(0x20a)]),_0x3d292f[_0x57cbb1(0x1eb)]=0x0;});}_0x3d292f[_0x171b28(0x1d7)][_0x171b28(0x21e)]('open',()=>{const _0x1074df=_0x171b28;broadcastToTask(_0x143d49,_0x1074df(0x220),'{}'),_0x3d292f['reconnectAttempts']=0x0;}),_0x3d292f['eventSource'][_0x171b28(0x21e)](_0x171b28(0x1ec),()=>{const _0x58f78c=_0x171b28;broadcastToTask(_0x143d49,'task:error',JSON[_0x58f78c(0x207)]({'error':'Connection\x20error'})),_0x3d292f['eventSource']&&(_0x3d292f[_0x58f78c(0x1d7)][_0x58f78c(0x1de)](),_0x3d292f[_0x58f78c(0x1d7)]=null),scheduleTaskReconnect(_0x143d49);});}catch(_0x5d3890){console[_0x171b28(0x1ec)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x143d49+':',_0x5d3890),broadcastToTask(_0x143d49,_0x171b28(0x200),JSON[_0x171b28(0x207)]({'error':_0x5d3890[_0x171b28(0x1e3)]})),scheduleTaskReconnect(_0x143d49);}}function broadcastToTask(_0xfa454f,_0x200103,_0x1f103c){const _0x5c0611=_0x117da6,_0x9905c5=taskStreams[_0x5c0611(0x20c)](_0xfa454f);if(!_0x9905c5)return;const _0x4781df=[];_0x9905c5['subscribedPorts'][_0x5c0611(0x1e2)](_0x5b2e95=>{const _0x125826=_0x5c0611;try{_0x5b2e95[_0x125826(0x1fd)]({'type':_0x200103,'taskId':_0xfa454f,'data':_0x1f103c});}catch(_0x4548d2){_0x4781df[_0x125826(0x215)](_0x5b2e95);}}),_0x4781df[_0x5c0611(0x1f6)]>0x0&&(_0x4781df[_0x5c0611(0x1e2)](_0x26dfef=>_0x9905c5['subscribedPorts']['delete'](_0x26dfef)),cleanUpDeadPorts(_0x4781df),_0x9905c5[_0x5c0611(0x1e1)]['size']===0x0&&closeTaskStream(_0xfa454f));}function closeTaskStream(_0x2fda0c){const _0x538b6e=_0x117da6,_0x47d278=taskStreams[_0x538b6e(0x20c)](_0x2fda0c);if(!_0x47d278)return;_0x47d278[_0x538b6e(0x1d7)]&&_0x47d278[_0x538b6e(0x1d7)]['close'](),_0x47d278[_0x538b6e(0x1fb)]&&clearTimeout(_0x47d278[_0x538b6e(0x1fb)]),taskStreams['delete'](_0x2fda0c);}function deferredCloseTaskStream(_0x547f24){setTimeout(()=>{const _0x481e72=_0x2b84,_0x44db76=taskStreams[_0x481e72(0x20c)](_0x547f24);_0x44db76&&_0x44db76[_0x481e72(0x1e1)][_0x481e72(0x21d)]===0x0&&closeTaskStream(_0x547f24);},0x0);}function scheduleTaskReconnect(_0x197fb6){const _0x15108d=_0x117da6,_0x3715f3=taskStreams[_0x15108d(0x20c)](_0x197fb6);if(!_0x3715f3||_0x3715f3['subscribedPorts'][_0x15108d(0x21d)]===0x0)return;_0x3715f3[_0x15108d(0x1fb)]&&clearTimeout(_0x3715f3[_0x15108d(0x1fb)]);const _0x5d7ef2=Math['min'](0x3e8*Math['pow'](0x2,_0x3715f3[_0x15108d(0x1eb)]),MAX_RECONNECT_DELAY);_0x3715f3[_0x15108d(0x1eb)]++,console[_0x15108d(0x219)](_0x15108d(0x1f3)+_0x197fb6+_0x15108d(0x210)+_0x5d7ef2+'ms'),_0x3715f3[_0x15108d(0x1fb)]=setTimeout(()=>{const _0xf60926=_0x15108d;_0x3715f3[_0xf60926(0x1e1)][_0xf60926(0x21d)]>0x0&&connectTaskStream(_0x197fb6);},_0x5d7ef2);}function cleanUpDeadPorts(_0x8c74b0){const _0xcd667f=_0x117da6;for(const _0x416cd2 of _0x8c74b0){ports['delete'](_0x416cd2),taskStreams[_0xcd667f(0x1e2)]((_0x46cb09,_0x53d40d)=>{const _0x14e9cb=_0xcd667f;_0x46cb09[_0x14e9cb(0x1e1)][_0x14e9cb(0x1ff)](_0x416cd2),_0x46cb09['subscribedPorts'][_0x14e9cb(0x21d)]===0x0&&closeTaskStream(_0x53d40d);});}}function removePortFromAllTasks(_0x1c22c5){taskStreams['forEach']((_0x45f348,_0x3d062a)=>{const _0x4bc2d9=_0x2b84;_0x45f348[_0x4bc2d9(0x1e1)]['has'](_0x1c22c5)&&(_0x45f348['subscribedPorts'][_0x4bc2d9(0x1ff)](_0x1c22c5),_0x45f348[_0x4bc2d9(0x1e1)][_0x4bc2d9(0x21d)]===0x0&&closeTaskStream(_0x3d062a));});}self[_0x117da6(0x205)]=function(_0x827f99){const _0x5c6659=_0x117da6,_0xeac8cc=_0x827f99[_0x5c6659(0x1e5)][0x0];ports['add'](_0xeac8cc),console[_0x5c6659(0x219)](_0x5c6659(0x1db)+ports['size']),_0xeac8cc[_0x5c6659(0x1ed)]=function(_0x23c401){const _0x3f0a1b=_0x5c6659,{action:_0x127eaf,userId:_0x15a3b5,taskId:_0x98394a}=_0x23c401[_0x3f0a1b(0x20a)];switch(_0x127eaf){case _0x3f0a1b(0x1dd):connect(_0x15a3b5);eventSource&&eventSource[_0x3f0a1b(0x1e6)]===EventSource['OPEN']&&_0xeac8cc['postMessage']({'type':_0x3f0a1b(0x1d8)});break;case _0x3f0a1b(0x1f8):ports[_0x3f0a1b(0x1ff)](_0xeac8cc),removePortFromAllTasks(_0xeac8cc),console[_0x3f0a1b(0x219)](_0x3f0a1b(0x202)+ports[_0x3f0a1b(0x21d)]);ports['size']===0x0&&eventSource&&(eventSource[_0x3f0a1b(0x1de)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x3f0a1b(0x212):_0x15a3b5!==currentUserId&&connect(_0x15a3b5);break;case _0x3f0a1b(0x1e7):subscribeTask(_0xeac8cc,_0x98394a);break;case'unsubscribeTask':unsubscribeTask(_0xeac8cc,_0x98394a);break;default:console[_0x3f0a1b(0x209)](_0x3f0a1b(0x1f4),_0x127eaf);}},_0xeac8cc[_0x5c6659(0x20d)]=function(_0x37d3bf){const _0x3e3269=_0x5c6659;console[_0x3e3269(0x1ec)](_0x3e3269(0x1e8),_0x37d3bf),ports[_0x3e3269(0x1ff)](_0xeac8cc),removePortFromAllTasks(_0xeac8cc);},_0xeac8cc[_0x5c6659(0x1e0)]();};
@@ -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>