@profoundlogic/coderflow-server 0.4.2 → 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 (182) hide show
  1. package/README.md +1 -1
  2. package/dist/README.md +1 -1
  3. package/dist/base-image/entrypoint.sh +2 -1
  4. package/dist/coder-server.js +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/lib/agent-keepalive.js +1 -1
  7. package/dist/lib/agent-models.js +1 -1
  8. package/dist/lib/api-keys.js +1 -1
  9. package/dist/lib/apiKeys.js +1 -1
  10. package/dist/lib/app-server-ports.js +1 -1
  11. package/dist/lib/auto-judge.js +1 -1
  12. package/dist/lib/automation-service.js +1 -0
  13. package/dist/lib/basic-auth.js +1 -1
  14. package/dist/lib/bindings.js +1 -0
  15. package/dist/lib/build-history.js +1 -1
  16. package/dist/lib/build-output-service.js +1 -1
  17. package/dist/lib/build-scheduler.js +1 -1
  18. package/dist/lib/build-service.js +1 -1
  19. package/dist/lib/ca-certificates.js +1 -1
  20. package/dist/lib/claude-oauth-refresh.js +1 -1
  21. package/dist/lib/cli/build.js +1 -1
  22. package/dist/lib/cli/config-command.js +1 -1
  23. package/dist/lib/cli/config.js +1 -1
  24. package/dist/lib/cli/create-user.js +1 -1
  25. package/dist/lib/cli/init.js +1 -1
  26. package/dist/lib/cli/jira.js +1 -1
  27. package/dist/lib/cli/license.js +1 -1
  28. package/dist/lib/cli/server-manager.js +1 -1
  29. package/dist/lib/config-migration.js +1 -1
  30. package/dist/lib/container-credential-sync.js +1 -1
  31. package/dist/lib/container-tokens.js +1 -1
  32. package/dist/lib/data-dir.js +1 -1
  33. package/dist/lib/deployment-history.js +1 -1
  34. package/dist/lib/deployment-service.js +1 -1
  35. package/dist/lib/docker-utils.js +1 -1
  36. package/dist/lib/email.js +1 -1
  37. package/dist/lib/emailTemplates.js +1 -1
  38. package/dist/lib/entitlement.js +1 -1
  39. package/dist/lib/fetch-utils.js +1 -1
  40. package/dist/lib/git-askpass.sh +16 -0
  41. package/dist/lib/git-commit-details-route.js +1 -1
  42. package/dist/lib/git-history-diff-guardrails.js +1 -1
  43. package/dist/lib/git-provider-service.js +1 -1
  44. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  45. package/dist/lib/git-provider-setup/index.js +1 -1
  46. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  47. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  48. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  49. package/dist/lib/git-providers/github-app-provider.js +1 -1
  50. package/dist/lib/git-providers/index.js +1 -1
  51. package/dist/lib/git-providers/provider-factory.js +1 -1
  52. package/dist/lib/git-providers/provider-interface.js +1 -1
  53. package/dist/lib/github-urls.js +1 -1
  54. package/dist/lib/group-objective-linking.js +1 -1
  55. package/dist/lib/jira-client.js +1 -1
  56. package/dist/lib/judge-blinding.js +1 -1
  57. package/dist/lib/logger.js +1 -1
  58. package/dist/lib/migration-to-scoped-rbac.js +1 -0
  59. package/dist/lib/model-fetcher.js +1 -1
  60. package/dist/lib/notifications.js +1 -1
  61. package/dist/lib/objective-context.js +1 -1
  62. package/dist/lib/oidc-auth.js +1 -1
  63. package/dist/lib/oidc-device-flow.js +1 -1
  64. package/dist/lib/passwordTokens.js +1 -1
  65. package/dist/lib/permission-resolver.js +1 -0
  66. package/dist/lib/pin-cascade.js +1 -1
  67. package/dist/lib/provider-accounts.js +1 -1
  68. package/dist/lib/provider-oauth.js +1 -1
  69. package/dist/lib/provider-profile.js +1 -1
  70. package/dist/lib/provider-token-refresh.js +1 -1
  71. package/dist/lib/request-url.js +1 -1
  72. package/dist/lib/rewind.js +1 -1
  73. package/dist/lib/role-definitions.js +1 -0
  74. package/dist/lib/roles.js +1 -1
  75. package/dist/lib/secrets.js +1 -1
  76. package/dist/lib/setup-repo-git-auth.js +1 -1
  77. package/dist/lib/state-capture.js +1 -1
  78. package/dist/lib/static-files.js +1 -1
  79. package/dist/lib/task-name-format.js +1 -1
  80. package/dist/lib/task-name-generator.js +1 -1
  81. package/dist/lib/task-source-metadata.js +1 -0
  82. package/dist/lib/teams.js +1 -0
  83. package/dist/lib/user-git-oauth.js +1 -1
  84. package/dist/lib/user-git-tokens.js +1 -1
  85. package/dist/lib/users.js +1 -1
  86. package/dist/middleware/requireAuth.js +1 -1
  87. package/dist/middleware/requireInit.js +1 -1
  88. package/dist/middleware/requirePermission.js +1 -1
  89. package/dist/package-lock.json +211 -21
  90. package/dist/package.json +3 -1
  91. package/dist/playwright.config.js +1 -0
  92. package/dist/routes/apiKeys.js +1 -1
  93. package/dist/routes/auth-oidc.js +1 -1
  94. package/dist/routes/auth.js +1 -1
  95. package/dist/routes/automations.js +1 -0
  96. package/dist/routes/bindings.js +1 -0
  97. package/dist/routes/build.js +1 -1
  98. package/dist/routes/containers.js +1 -1
  99. package/dist/routes/deploy-task.js +1 -1
  100. package/dist/routes/environment-management.js +1 -1
  101. package/dist/routes/environments.js +1 -1
  102. package/dist/routes/external-skills.js +1 -1
  103. package/dist/routes/git-credentials.js +1 -1
  104. package/dist/routes/git-oauth.js +1 -1
  105. package/dist/routes/git-provider-setup.js +1 -1
  106. package/dist/routes/health.js +1 -1
  107. package/dist/routes/jira.js +1 -1
  108. package/dist/routes/objective-management.js +1 -1
  109. package/dist/routes/password.js +1 -1
  110. package/dist/routes/prompt.js +1 -1
  111. package/dist/routes/provider-auth.js +1 -1
  112. package/dist/routes/qa.js +1 -1
  113. package/dist/routes/roles.js +1 -0
  114. package/dist/routes/settings.js +1 -1
  115. package/dist/routes/skill-management.js +1 -1
  116. package/dist/routes/skills.js +1 -1
  117. package/dist/routes/tasks.js +1 -1
  118. package/dist/routes/teams.js +1 -0
  119. package/dist/routes/templates.js +1 -1
  120. package/dist/routes/test-task.js +1 -1
  121. package/dist/routes/test.js +1 -1
  122. package/dist/routes/users.js +1 -1
  123. package/dist/routes/visualizations.js +1 -1
  124. package/dist/scripts/create-user.js +1 -1
  125. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  126. package/dist/scripts/migrate-to-scoped-rbac.js +2 -0
  127. package/dist/start.js +1 -1
  128. package/dist/start.js.bak +1381 -0
  129. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  130. package/dist/web-ui/public/activity-feed.js +1 -1
  131. package/dist/web-ui/public/activity-formatters.js +1 -1
  132. package/dist/web-ui/public/agent-event-parser.js +1 -1
  133. package/dist/web-ui/public/app.js +1 -1
  134. package/dist/web-ui/public/approve-dialog.js +1 -1
  135. package/dist/web-ui/public/automation-links.js +1 -0
  136. package/dist/web-ui/public/automation-schedule.js +1 -0
  137. package/dist/web-ui/public/comments-widget.js +1 -1
  138. package/dist/web-ui/public/diff-utils.js +1 -1
  139. package/dist/web-ui/public/docs/_sidebar.md +1 -0
  140. package/dist/web-ui/public/docs/admin/automations.md +75 -0
  141. package/dist/web-ui/public/docs/admin/git-providers.md +10 -5
  142. package/dist/web-ui/public/docs/admin/installation.md +1 -1
  143. package/dist/web-ui/public/docs/admin/users-and-roles.md +14 -4
  144. package/dist/web-ui/public/environments.css +253 -125
  145. package/dist/web-ui/public/environments.html +366 -2
  146. package/dist/web-ui/public/environments.js +1 -1
  147. package/dist/web-ui/public/feedback-widget.css +42 -0
  148. package/dist/web-ui/public/feedback-widget.js +1 -1
  149. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  150. package/dist/web-ui/public/git-history.html +15 -0
  151. package/dist/web-ui/public/git-history.js +1 -1
  152. package/dist/web-ui/public/git-status.js +1 -1
  153. package/dist/web-ui/public/index.html +27 -0
  154. package/dist/web-ui/public/index.js +1 -1
  155. package/dist/web-ui/public/login.js +1 -1
  156. package/dist/web-ui/public/markdown-editor.js +1 -1
  157. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  158. package/dist/web-ui/public/modal-maximize.js +1 -1
  159. package/dist/web-ui/public/notifications.js +1 -1
  160. package/dist/web-ui/public/pr-dialog.js +1 -1
  161. package/dist/web-ui/public/roles.html +247 -0
  162. package/dist/web-ui/public/roles.js +1 -0
  163. package/dist/web-ui/public/server-health.js +1 -1
  164. package/dist/web-ui/public/settings.html +84 -1
  165. package/dist/web-ui/public/settings.js +1 -1
  166. package/dist/web-ui/public/setup-password.js +1 -1
  167. package/dist/web-ui/public/skills.css +6 -0
  168. package/dist/web-ui/public/skills.html +35 -0
  169. package/dist/web-ui/public/skills.js +1 -1
  170. package/dist/web-ui/public/sse-client.js +1 -1
  171. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  172. package/dist/web-ui/public/styles.css +278 -161
  173. package/dist/web-ui/public/task.html +33 -2
  174. package/dist/web-ui/public/task.js +1 -1
  175. package/dist/web-ui/public/teams.html +285 -0
  176. package/dist/web-ui/public/teams.js +1 -0
  177. package/dist/web-ui/public/terminal.js +1 -1
  178. package/dist/web-ui/public/theme.js +1 -1
  179. package/dist/web-ui/public/users.html +87 -29
  180. package/dist/web-ui/public/users.js +1 -1
  181. package/dist/web-ui/public/variant-grouping.js +1 -1
  182. package/package.json +7 -3
@@ -1 +1 @@
1
- const _0x2b6792=_0x39a3;(function(_0x344065,_0x2ee28a){const _0x521a2c=_0x39a3,_0x3c087f=_0x344065();while(!![]){try{const _0x468b03=-parseInt(_0x521a2c(0xad))/0x1+parseInt(_0x521a2c(0xc8))/0x2*(-parseInt(_0x521a2c(0x75))/0x3)+-parseInt(_0x521a2c(0xa0))/0x4*(parseInt(_0x521a2c(0xcd))/0x5)+-parseInt(_0x521a2c(0xca))/0x6+-parseInt(_0x521a2c(0x73))/0x7*(-parseInt(_0x521a2c(0xcf))/0x8)+parseInt(_0x521a2c(0xa5))/0x9+parseInt(_0x521a2c(0xb6))/0xa;if(_0x468b03===_0x2ee28a)break;else _0x3c087f['push'](_0x3c087f['shift']());}catch(_0xa6f1c5){_0x3c087f['push'](_0x3c087f['shift']());}}}(_0x5613,0x4f63e));function isSharedWorkerSupported(){return typeof SharedWorker!=='undefined';}function eventTypeToHandler(_0x519878){const _0x47a8df=_0x39a3;if(_0x519878===_0x47a8df(0xc4))return _0x47a8df(0xc0);if(_0x519878==='error')return'onError';return'on'+_0x519878['split']('-')[_0x47a8df(0x94)](_0x436b71=>_0x436b71[_0x47a8df(0xb3)](0x0)[_0x47a8df(0x8d)]()+_0x436b71[_0x47a8df(0x9d)](0x1))[_0x47a8df(0xbf)]('');}const TASK_STREAM_EVENTS=[_0x2b6792(0x83),_0x2b6792(0x96),_0x2b6792(0x8b),_0x2b6792(0x85),_0x2b6792(0x78),_0x2b6792(0x74),_0x2b6792(0xb1)];export class TaskUpdatesClient{constructor(){const _0x198768=_0x2b6792;this[_0x198768(0x70)]=new Map(),this[_0x198768(0x92)]=null,this[_0x198768(0xc9)]=null,this['eventSource']=null,this[_0x198768(0xb0)]=null,this[_0x198768(0xb2)]=null,this[_0x198768(0x91)]=0x0,this[_0x198768(0x95)]=isSharedWorkerSupported(),this[_0x198768(0xc4)]=![],this[_0x198768(0x9f)]=new Map(),this['_taskSubIdCounter']=0x0,this[_0x198768(0x7d)]=this['_handleWorkerMessage'][_0x198768(0xc1)](this),this[_0x198768(0xaf)]=this[_0x198768(0xaf)]['bind'](this);}['on'](_0x30aad0,_0xe2825d){const _0x5c8f11=_0x2b6792;return!this['listeners'][_0x5c8f11(0x90)](_0x30aad0)&&this[_0x5c8f11(0x70)][_0x5c8f11(0xa1)](_0x30aad0,new Set()),this[_0x5c8f11(0x70)][_0x5c8f11(0x71)](_0x30aad0)[_0x5c8f11(0xab)](_0xe2825d),this;}[_0x2b6792(0x99)](_0x3fb267,_0x40c420){const _0x20ed40=_0x2b6792;return this[_0x20ed40(0x70)][_0x20ed40(0x90)](_0x3fb267)&&this['listeners']['get'](_0x3fb267)[_0x20ed40(0xaa)](_0x40c420),this;}['_emit'](_0x488848,_0x5b9235){const _0x4c6582=_0x2b6792;this[_0x4c6582(0x70)][_0x4c6582(0x90)](_0x488848)&&this['listeners'][_0x4c6582(0x71)](_0x488848)['forEach'](_0x749155=>{const _0x55b9c9=_0x4c6582;try{_0x749155(_0x5b9235);}catch(_0x2d47ad){console[_0x55b9c9(0xa2)](_0x55b9c9(0x9b)+_0x488848+_0x55b9c9(0xac),_0x2d47ad);}});}[_0x2b6792(0xba)](_0x5933dd='me'){const _0x1b8f72=_0x2b6792;this['userId']=_0x5933dd,this[_0x1b8f72(0x95)]?this[_0x1b8f72(0x7c)](_0x5933dd):this[_0x1b8f72(0x8c)](_0x5933dd);}['_connectViaWorker'](_0x37b170){const _0x32122a=_0x2b6792;try{this[_0x32122a(0x76)](),this[_0x32122a(0xc9)]['postMessage']({'action':_0x32122a(0xba),'userId':_0x37b170});}catch(_0x2850ba){console[_0x32122a(0xa2)](_0x32122a(0xc5),_0x2850ba),this[_0x32122a(0x95)]=![],this['_connectDirect'](_0x37b170);}}[_0x2b6792(0x76)](){const _0x1aa109=_0x2b6792;!this[_0x1aa109(0x92)]&&(this[_0x1aa109(0x92)]=new SharedWorker(_0x1aa109(0xc2)),this[_0x1aa109(0xc9)]=this[_0x1aa109(0x92)][_0x1aa109(0xc9)],this[_0x1aa109(0xc9)]['onmessage']=this[_0x1aa109(0x7d)],this['port'][_0x1aa109(0x89)]=_0x1f40db=>{const _0x599e0f=_0x1aa109;console['error'](_0x599e0f(0xa7),_0x1f40db),this[_0x599e0f(0xbd)](_0x599e0f(0xa2),{'error':_0x599e0f(0x80)});},this['port']['start']());}[_0x2b6792(0x7d)](_0x327281){const _0x2822ca=_0x2b6792,_0x407534=_0x327281[_0x2822ca(0x7a)];if(_0x407534[_0x2822ca(0x9e)]&&_0x407534['type']['startsWith']('task:')){this['_handleTaskStreamMessage'](_0x407534);return;}switch(_0x407534['type']){case'connected':this[_0x2822ca(0xc4)]=!![],this[_0x2822ca(0xbd)](_0x2822ca(0xc4),{});break;case'snapshot':case _0x2822ca(0x83):case'status':case _0x2822ca(0xa9):case _0x2822ca(0xa4):try{const _0x54b231=JSON[_0x2822ca(0x98)](_0x407534[_0x2822ca(0x7a)]);this['_emit'](_0x407534['type'],_0x54b231);}catch(_0x12cac1){console[_0x2822ca(0xa2)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x407534[_0x2822ca(0x9e)]+_0x2822ca(0x9c),_0x12cac1);}break;case _0x2822ca(0xa2):this['connected']=![],this[_0x2822ca(0xbd)](_0x2822ca(0xa2),_0x407534);break;default:console[_0x2822ca(0x72)](_0x2822ca(0xc3),_0x407534[_0x2822ca(0x9e)]);}}[_0x2b6792(0xb5)](_0x3e0e7d){const _0x27429f=_0x2b6792,{taskId:_0x43b686,type:_0x44ae56,data:_0x1f2570}=_0x3e0e7d,_0x57875f=this[_0x27429f(0x9f)][_0x27429f(0x71)](_0x43b686);if(!_0x57875f||_0x57875f[_0x27429f(0x97)]===0x0)return;const _0x36a3fb=_0x44ae56['replace']('task:',''),_0x15641e=eventTypeToHandler(_0x36a3fb);_0x57875f['forEach'](_0x318280=>{const _0x1cd900=_0x27429f;if(_0x318280['handlers'][_0x15641e])try{const _0x434038=typeof _0x1f2570==='string'?JSON[_0x1cd900(0x98)](_0x1f2570):_0x1f2570;_0x318280[_0x1cd900(0x7f)][_0x15641e](_0x434038);}catch(_0x369416){console[_0x1cd900(0xa2)](_0x1cd900(0xc7)+_0x36a3fb+_0x1cd900(0xc6),_0x369416);}});}[_0x2b6792(0x8c)](_0x1d4386){const _0x27cc05=_0x2b6792;this[_0x27cc05(0xce)]&&(this[_0x27cc05(0xce)][_0x27cc05(0x93)](),this[_0x27cc05(0xce)]=null);const _0x403ef3=_0x1d4386&&_0x1d4386!=='me'?_0x27cc05(0x8a)+_0x1d4386:'';try{this[_0x27cc05(0xce)]=new EventSource(_0x27cc05(0x8e)+_0x403ef3),this[_0x27cc05(0xce)][_0x27cc05(0x88)](_0x27cc05(0x82),()=>{const _0x23bfc2=_0x27cc05;this[_0x23bfc2(0xc4)]=!![],this[_0x23bfc2(0x91)]=0x0,this['_emit'](_0x23bfc2(0xc4),{});}),this[_0x27cc05(0xce)][_0x27cc05(0x88)](_0x27cc05(0x79),_0x38b667=>{const _0x37ec23=_0x27cc05;this[_0x37ec23(0xaf)](_0x37ec23(0x79),_0x38b667),this[_0x37ec23(0x91)]=0x0;}),this[_0x27cc05(0xce)]['addEventListener']('activity',_0x5012fc=>{const _0x345615=_0x27cc05;this[_0x345615(0xaf)]('activity',_0x5012fc);}),this['eventSource'][_0x27cc05(0x88)]('status',_0x3a8125=>{const _0x2ecafc=_0x27cc05;this[_0x2ecafc(0xaf)](_0x2ecafc(0x84),_0x3a8125);}),this[_0x27cc05(0xce)][_0x27cc05(0x88)]('new-task',_0x42bccb=>{this['_handleDirectSSE']('new-task',_0x42bccb);}),this[_0x27cc05(0xce)][_0x27cc05(0x88)](_0x27cc05(0xa4),_0x2f604b=>{const _0x5d8cb3=_0x27cc05;this[_0x5d8cb3(0xaf)](_0x5d8cb3(0xa4),_0x2f604b);}),this[_0x27cc05(0xce)][_0x27cc05(0x88)]('error',_0x4ef842=>{const _0x2b5af3=_0x27cc05;console[_0x2b5af3(0xa2)](_0x2b5af3(0x7e),_0x4ef842),this[_0x2b5af3(0xc4)]=![],this['_emit'](_0x2b5af3(0xa2),{'error':'Connection\x20error'}),this['eventSource']&&(this[_0x2b5af3(0xce)][_0x2b5af3(0x93)](),this['eventSource']=null),this[_0x2b5af3(0x81)]();});}catch(_0x31c1ee){console['error'](_0x27cc05(0xbb),_0x31c1ee),this[_0x27cc05(0xbd)](_0x27cc05(0xa2),{'error':_0x31c1ee['message']}),this[_0x27cc05(0x81)]();}}['_handleDirectSSE'](_0x58e1e6,_0x47179b){const _0x55816d=_0x2b6792;try{const _0x4b6f1b=JSON[_0x55816d(0x98)](_0x47179b[_0x55816d(0x7a)]);this[_0x55816d(0xbd)](_0x58e1e6,_0x4b6f1b);}catch(_0x32e635){console[_0x55816d(0xa2)](_0x55816d(0x7b)+_0x58e1e6+'\x20data:',_0x32e635);}}[_0x2b6792(0x81)](){const _0x588626=_0x2b6792;this[_0x588626(0xb2)]&&clearTimeout(this['reconnectTimeout']);const _0x37ca48=Math['min'](0x3e8*Math['pow'](0x2,this[_0x588626(0x91)]),0x7530);this[_0x588626(0x91)]++,console['log'](_0x588626(0x87)+_0x37ca48+'ms'),this[_0x588626(0xb2)]=setTimeout(()=>{this['_connectDirect'](this['userId']);},_0x37ca48);}[_0x2b6792(0xae)](_0x293298){const _0x1754f2=_0x2b6792;if(_0x293298===this['userId'])return;this[_0x1754f2(0xb0)]=_0x293298;if(this[_0x1754f2(0x95)]&&this[_0x1754f2(0xc9)])this[_0x1754f2(0xc9)][_0x1754f2(0x86)]({'action':_0x1754f2(0xae),'userId':_0x293298});else this[_0x1754f2(0xce)]&&this[_0x1754f2(0x8c)](_0x293298);}[_0x2b6792(0xb4)](_0x313e8f,_0x417307){const _0x7afcca=_0x2b6792;return this[_0x7afcca(0x95)]?this[_0x7afcca(0xcc)](_0x313e8f,_0x417307):this[_0x7afcca(0xb8)](_0x313e8f,_0x417307);}[_0x2b6792(0xa6)](_0x457f2a){const _0x189941=_0x2b6792;if(!_0x457f2a)return;_0x457f2a[_0x189941(0x9e)]==='worker'?this[_0x189941(0xbc)](_0x457f2a):this[_0x189941(0xb7)](_0x457f2a);}['_subscribeTaskViaWorker'](_0x4085fd,_0x3d2d5d){const _0x26a82c=_0x2b6792;try{this[_0x26a82c(0x76)]();}catch(_0x4e5176){return console[_0x26a82c(0xa2)](_0x26a82c(0x8f),_0x4e5176),this[_0x26a82c(0x95)]=![],this[_0x26a82c(0xb8)](_0x4085fd,_0x3d2d5d);}const _0x26fdac=++this['_taskSubIdCounter'],_0x2a481f={'type':_0x26a82c(0x92),'taskId':_0x4085fd,'handlers':_0x3d2d5d,'id':_0x26fdac};return!this[_0x26a82c(0x9f)][_0x26a82c(0x90)](_0x4085fd)&&(this[_0x26a82c(0x9f)][_0x26a82c(0xa1)](_0x4085fd,new Set()),this['port']['postMessage']({'action':_0x26a82c(0xb4),'taskId':_0x4085fd})),this[_0x26a82c(0x9f)]['get'](_0x4085fd)['add'](_0x2a481f),_0x2a481f;}[_0x2b6792(0xbc)](_0xaa50cc){const _0x11df03=_0x2b6792,{taskId:_0x507328}=_0xaa50cc,_0x4f7cdf=this[_0x11df03(0x9f)][_0x11df03(0x71)](_0x507328);if(_0x4f7cdf){_0x4f7cdf[_0x11df03(0xaa)](_0xaa50cc);if(_0x4f7cdf[_0x11df03(0x97)]===0x0){this[_0x11df03(0x9f)][_0x11df03(0xaa)](_0x507328);try{this[_0x11df03(0xc9)]&&this[_0x11df03(0xc9)][_0x11df03(0x86)]({'action':_0x11df03(0xa6),'taskId':_0x507328});}catch(_0x305ec0){}}}}[_0x2b6792(0xb8)](_0x20d489,_0x361e2b){const _0x15078c=_0x2b6792,_0x157564=++this[_0x15078c(0x77)],_0x48e28a=new EventSource(_0x15078c(0xbe)+_0x20d489+'/stream'),_0xb8fe8={'type':_0x15078c(0xa8),'taskId':_0x20d489,'handlers':_0x361e2b,'id':_0x157564,'eventSource':_0x48e28a};!this['_taskSubscriptions']['has'](_0x20d489)&&this['_taskSubscriptions']['set'](_0x20d489,new Set());this[_0x15078c(0x9f)][_0x15078c(0x71)](_0x20d489)[_0x15078c(0xab)](_0xb8fe8);for(const _0x220e3d of TASK_STREAM_EVENTS){const _0x3bd3d3=eventTypeToHandler(_0x220e3d);_0x48e28a['addEventListener'](_0x220e3d,_0x4f455f=>{const _0x1e49a9=_0x15078c;if(_0x361e2b[_0x3bd3d3])try{const _0x527a94=JSON[_0x1e49a9(0x98)](_0x4f455f[_0x1e49a9(0x7a)]);_0x361e2b[_0x3bd3d3](_0x527a94);}catch(_0x3c4f9e){console[_0x1e49a9(0xa2)]('[SSE\x20Client]\x20Error\x20parsing\x20task\x20'+_0x220e3d+':',_0x3c4f9e);}});}return _0x48e28a[_0x15078c(0x88)](_0x15078c(0x82),()=>{const _0x2f4399=_0x15078c;if(_0x361e2b[_0x2f4399(0xc0)])_0x361e2b[_0x2f4399(0xc0)]();}),_0x48e28a[_0x15078c(0x88)]('error',()=>{if(_0x361e2b['onError'])_0x361e2b['onError']({'error':'Connection\x20error'});}),_0xb8fe8;}[_0x2b6792(0xb7)](_0x2dccf9){const _0x1e8103=_0x2b6792;_0x2dccf9[_0x1e8103(0xce)]&&(_0x2dccf9[_0x1e8103(0xce)][_0x1e8103(0x93)](),_0x2dccf9[_0x1e8103(0xce)]=null);const _0x5c9ec6=this[_0x1e8103(0x9f)][_0x1e8103(0x71)](_0x2dccf9[_0x1e8103(0xa3)]);_0x5c9ec6&&(_0x5c9ec6[_0x1e8103(0xaa)](_0x2dccf9),_0x5c9ec6[_0x1e8103(0x97)]===0x0&&this[_0x1e8103(0x9f)][_0x1e8103(0xaa)](_0x2dccf9[_0x1e8103(0xa3)]));}[_0x2b6792(0x9a)](){const _0x1eeaf9=_0x2b6792;this[_0x1eeaf9(0xb2)]&&(clearTimeout(this[_0x1eeaf9(0xb2)]),this['reconnectTimeout']=null);this['_taskSubscriptions'][_0x1eeaf9(0xcb)]((_0x56bbc8,_0x4729ef)=>{const _0x20c455=_0x1eeaf9;_0x56bbc8[_0x20c455(0xcb)](_0x311d0f=>{const _0x535967=_0x20c455;_0x311d0f['type']===_0x535967(0xa8)&&_0x311d0f[_0x535967(0xce)]&&_0x311d0f['eventSource'][_0x535967(0x93)]();});}),this['_taskSubscriptions'][_0x1eeaf9(0xb9)]();if(this[_0x1eeaf9(0x95)]&&this[_0x1eeaf9(0xc9)])try{this[_0x1eeaf9(0xc9)][_0x1eeaf9(0x86)]({'action':_0x1eeaf9(0x9a)});}catch(_0x55d9ee){}this['eventSource']&&(this[_0x1eeaf9(0xce)]['close'](),this[_0x1eeaf9(0xce)]=null),this[_0x1eeaf9(0xc4)]=![];}['isConnected'](){const _0x493c6e=_0x2b6792;return this[_0x493c6e(0xc4)];}['isUsingSharedWorker'](){return this['useSharedWorker'];}}function _0x39a3(_0x21a52e,_0x3de6ca){_0x21a52e=_0x21a52e-0x70;const _0x56138f=_0x5613();let _0x39a35c=_0x56138f[_0x21a52e];if(_0x39a3['TaYnYb']===undefined){var _0x436bb8=function(_0xeebb8c){const _0x51361f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x519878='',_0x436b71='';for(let _0x30aad0=0x0,_0xe2825d,_0x3fb267,_0x40c420=0x0;_0x3fb267=_0xeebb8c['charAt'](_0x40c420++);~_0x3fb267&&(_0xe2825d=_0x30aad0%0x4?_0xe2825d*0x40+_0x3fb267:_0x3fb267,_0x30aad0++%0x4)?_0x519878+=String['fromCharCode'](0xff&_0xe2825d>>(-0x2*_0x30aad0&0x6)):0x0){_0x3fb267=_0x51361f['indexOf'](_0x3fb267);}for(let _0x488848=0x0,_0x5b9235=_0x519878['length'];_0x488848<_0x5b9235;_0x488848++){_0x436b71+='%'+('00'+_0x519878['charCodeAt'](_0x488848)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x436b71);};_0x39a3['lSoRmL']=_0x436bb8,_0x39a3['gLUeMV']={},_0x39a3['TaYnYb']=!![];}const _0x4fb161=_0x56138f[0x0],_0x568ada=_0x21a52e+_0x4fb161,_0x3fbe69=_0x39a3['gLUeMV'][_0x568ada];return!_0x3fbe69?(_0x39a35c=_0x39a3['lSoRmL'](_0x39a35c),_0x39a3['gLUeMV'][_0x568ada]=_0x39a35c):_0x39a35c=_0x3fbe69,_0x39a35c;}let globalClient=null;function _0x5613(){const _0x50255a=['zxjYB3i','DgfZA0LK','CxvLDwuTCg9ZAxrPB24','ndqZnZm1muXhvxDbwG','Dw5ZDwjZy3jPyMvuyxnR','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','zgLYzwn0','BMv3lxrHC2S','zgvSzxrL','ywrK','igXPC3rLBMvYoG','nte1mtG1ueLnwxjX','y2HHBMDLrMLSDgvY','x2HHBMrSzurPCMvJDfntrq','DxnLCKLK','y29TCgXLDgu','CMvJB25Uzwn0vgLTzw91Da','y2HHCKf0','C3vIC2nYAwjLvgfZAW','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','mtm3oti0mtb6CwTQvMK','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','x3n1yNnJCMLIzvrHC2TeAxjLy3q','y2XLyxi','y29UBMvJDa','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','x2vTAxq','l3rHC2TZlW','AM9PBG','B25dB25Uzwn0zwq','yMLUza','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','y29UBMvJDgvK','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','igHHBMrSzxi6','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','mtuZmZGYq2rbzu1Y','Cg9YDa','mZC5otmZofHMweryCG','zM9YrwfJAa','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','mtK1BNzcBwLs','zxzLBNrtB3vYy2u','otm2nZjiAxfly3O','BgLZDgvUzxjZ','z2v0','D2fYBG','mJHNr2nwtuq','yxbWlxnLCNzLCI1ZDgf0Dxm','mtjRC2DKs0W','x2vUC3vYzvDVCMTLCG','x3rHC2TtDwjjzenVDw50zxi','y2HHBMDLzc1MAwXLCW','C25HChnOB3q','zgf0yq','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','x2nVBM5Ly3rwAwfxB3jRzxi','x2HHBMrSzvDVCMTLCK1LC3nHz2u','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','AgfUzgXLCNm','v29YA2vYig1LC3nHz2uGzxjYB3i','x3nJAgvKDwXLuMvJB25Uzwn0','B3bLBG','ywn0AxzPDhK','C3rHDhvZ','C3vTBwfYEq','Cg9ZDe1LC3nHz2u','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','ywrKrxzLBNrmAxn0zw5LCG','B25TzxnZywDLzxjYB3i','p3vZzxjjzd0','Bwv0ywrHDge','x2nVBM5Ly3reAxjLy3q','Dg9vChbLCKnHC2u','l3rHC2TZl3vWzgf0zxm','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','AgfZ','CMvJB25Uzwn0qxr0zw1WDhm','D29YA2vY','y2XVC2u','BwfW','DxnLu2HHCMvKv29YA2vY','Bg9NCW','C2L6zq','CgfYC2u','B2zM','zgLZy29UBMvJDa','w1ntrsbdBgLLBNrDievYCM9YigLUia','igrHDge6','C2XPy2u','DhLWzq','x3rHC2TtDwjZy3jPChrPB25Z','mtqYmZjor2jmr0S','C2v0'];_0x5613=function(){return _0x50255a;};return _0x5613();}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
- const _0x2491a8=_0x7c2b;(function(_0x97e1ad,_0x133f25){const _0x4e7359=_0x7c2b,_0x483409=_0x97e1ad();while(!![]){try{const _0x514f41=parseInt(_0x4e7359(0x1e8))/0x1+parseInt(_0x4e7359(0x20a))/0x2*(-parseInt(_0x4e7359(0x1c8))/0x3)+parseInt(_0x4e7359(0x200))/0x4*(-parseInt(_0x4e7359(0x1fd))/0x5)+-parseInt(_0x4e7359(0x1c9))/0x6*(parseInt(_0x4e7359(0x1f8))/0x7)+-parseInt(_0x4e7359(0x1e5))/0x8*(parseInt(_0x4e7359(0x1dd))/0x9)+parseInt(_0x4e7359(0x1e1))/0xa*(-parseInt(_0x4e7359(0x1e7))/0xb)+-parseInt(_0x4e7359(0x209))/0xc*(-parseInt(_0x4e7359(0x1db))/0xd);if(_0x514f41===_0x133f25)break;else _0x483409['push'](_0x483409['shift']());}catch(_0x38727d){_0x483409['push'](_0x483409['shift']());}}}(_0x348e,0xc3077));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x2491a8(0x1e9),'logs',_0x2491a8(0x1ca),_0x2491a8(0x1d0),_0x2491a8(0x203),'app-server-status',_0x2491a8(0x1cc)];function connect(_0x2e3313){const _0x52bc2c=_0x2491a8;eventSource&&currentUserId!==_0x2e3313&&(eventSource[_0x52bc2c(0x1fc)](),eventSource=null);if(eventSource&&eventSource[_0x52bc2c(0x1ec)]!==EventSource[_0x52bc2c(0x1d6)])return;currentUserId=_0x2e3313;const _0xed9536=_0x2e3313&&_0x2e3313!=='me'?'?userId='+_0x2e3313:'';try{eventSource=new EventSource('/tasks/updates'+_0xed9536),eventSource[_0x52bc2c(0x1fe)](_0x52bc2c(0x20d),_0x4916d4=>{const _0x2dfee3=_0x52bc2c;broadcast({'type':_0x2dfee3(0x20d),'data':_0x4916d4[_0x2dfee3(0x1d5)]}),reconnectAttempts=0x0;}),eventSource['addEventListener']('activity',_0x53daef=>{const _0x13564a=_0x52bc2c;broadcast({'type':_0x13564a(0x1e9),'data':_0x53daef[_0x13564a(0x1d5)]});}),eventSource[_0x52bc2c(0x1fe)](_0x52bc2c(0x1f0),_0x7b080c=>{const _0xa54159=_0x52bc2c;broadcast({'type':_0xa54159(0x1f0),'data':_0x7b080c[_0xa54159(0x1d5)]});}),eventSource[_0x52bc2c(0x1fe)](_0x52bc2c(0x1ee),_0x250909=>{const _0x247b9f=_0x52bc2c;broadcast({'type':_0x247b9f(0x1ee),'data':_0x250909['data']});}),eventSource['addEventListener'](_0x52bc2c(0x20e),_0x3f70d9=>{const _0x3f3457=_0x52bc2c;broadcast({'type':_0x3f3457(0x20e),'data':_0x3f70d9[_0x3f3457(0x1d5)]});}),eventSource[_0x52bc2c(0x1fe)](_0x52bc2c(0x201),()=>{const _0x5caa69=_0x52bc2c;broadcast({'type':_0x5caa69(0x1ef)}),reconnectAttempts=0x0;}),eventSource[_0x52bc2c(0x1fe)]('error',_0x3fc9dd=>{const _0x4a5af8=_0x52bc2c;console[_0x4a5af8(0x1e0)](_0x4a5af8(0x1da),_0x3fc9dd),broadcast({'type':_0x4a5af8(0x1e0),'error':_0x4a5af8(0x1d7)}),eventSource&&(eventSource[_0x4a5af8(0x1fc)](),eventSource=null),scheduleReconnect();});}catch(_0x585997){console[_0x52bc2c(0x1e0)](_0x52bc2c(0x1f2),_0x585997),broadcast({'type':'error','error':_0x585997[_0x52bc2c(0x207)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x541640=_0x2491a8;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x541640(0x1df)]===0x0)return;const _0x193b90=Math['min'](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x541640(0x205)](_0x541640(0x1f9)+_0x193b90+_0x541640(0x1ed)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x176fe3=_0x541640;ports[_0x176fe3(0x1df)]>0x0&&connect(currentUserId);},_0x193b90);}function broadcast(_0x5d1313){const _0x325d0c=_0x2491a8,_0x11feb2=[];ports[_0x325d0c(0x1f1)](_0x3023a5=>{const _0x482a63=_0x325d0c;try{_0x3023a5[_0x482a63(0x20c)](_0x5d1313);}catch(_0x40c124){console['warn']('[SSE\x20Worker]\x20Failed\x20to\x20send\x20to\x20port,\x20removing:',_0x40c124),_0x11feb2[_0x482a63(0x1f7)](_0x3023a5);}}),_0x11feb2[_0x325d0c(0x1e2)]>0x0&&cleanUpDeadPorts(_0x11feb2),ports[_0x325d0c(0x1df)]===0x0&&eventSource&&(console[_0x325d0c(0x205)](_0x325d0c(0x1f3)),eventSource[_0x325d0c(0x1fc)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function _0x7c2b(_0x31ad24,_0x416249){_0x31ad24=_0x31ad24-0x1c8;const _0x348ee2=_0x348e();let _0x7c2b15=_0x348ee2[_0x31ad24];if(_0x7c2b['hvDjFp']===undefined){var _0x2f4fe4=function(_0x83cf97){const _0x114ea1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e3313='',_0xed9536='';for(let _0x4916d4=0x0,_0x53daef,_0x7b080c,_0x250909=0x0;_0x7b080c=_0x83cf97['charAt'](_0x250909++);~_0x7b080c&&(_0x53daef=_0x4916d4%0x4?_0x53daef*0x40+_0x7b080c:_0x7b080c,_0x4916d4++%0x4)?_0x2e3313+=String['fromCharCode'](0xff&_0x53daef>>(-0x2*_0x4916d4&0x6)):0x0){_0x7b080c=_0x114ea1['indexOf'](_0x7b080c);}for(let _0x3f70d9=0x0,_0x3fc9dd=_0x2e3313['length'];_0x3f70d9<_0x3fc9dd;_0x3f70d9++){_0xed9536+='%'+('00'+_0x2e3313['charCodeAt'](_0x3f70d9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xed9536);};_0x7c2b['JlmAfc']=_0x2f4fe4,_0x7c2b['OCAEDc']={},_0x7c2b['hvDjFp']=!![];}const _0x33910e=_0x348ee2[0x0],_0x485102=_0x31ad24+_0x33910e,_0x552cc2=_0x7c2b['OCAEDc'][_0x485102];return!_0x552cc2?(_0x7c2b15=_0x7c2b['JlmAfc'](_0x7c2b15),_0x7c2b['OCAEDc'][_0x485102]=_0x7c2b15):_0x7c2b15=_0x552cc2,_0x7c2b15;}function subscribeTask(_0x240cf8,_0x36b57d){const _0x4382ba=_0x2491a8;let _0x3462e6=taskStreams[_0x4382ba(0x1cd)](_0x36b57d);!_0x3462e6&&(_0x3462e6={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams['set'](_0x36b57d,_0x3462e6));_0x3462e6['subscribedPorts']['add'](_0x240cf8);if(!_0x3462e6[_0x4382ba(0x1e3)]||_0x3462e6[_0x4382ba(0x1e3)][_0x4382ba(0x1ec)]===EventSource[_0x4382ba(0x1d6)])connectTaskStream(_0x36b57d);else{if(_0x3462e6[_0x4382ba(0x1e3)][_0x4382ba(0x1ec)]===EventSource[_0x4382ba(0x1fb)])try{_0x240cf8['postMessage']({'type':'task:connected','taskId':_0x36b57d});}catch(_0x23b2ab){}}}function unsubscribeTask(_0x1eb0eb,_0x487bb4){const _0x15fe03=_0x2491a8,_0x3d2a8b=taskStreams[_0x15fe03(0x1cd)](_0x487bb4);if(!_0x3d2a8b)return;_0x3d2a8b['subscribedPorts'][_0x15fe03(0x1eb)](_0x1eb0eb),_0x3d2a8b['subscribedPorts'][_0x15fe03(0x1df)]===0x0&&deferredCloseTaskStream(_0x487bb4);}function connectTaskStream(_0xc0599c){const _0x7dd47e=_0x2491a8,_0x21166d=taskStreams[_0x7dd47e(0x1cd)](_0xc0599c);if(!_0x21166d)return;_0x21166d[_0x7dd47e(0x1e3)]&&(_0x21166d[_0x7dd47e(0x1e3)][_0x7dd47e(0x1fc)](),_0x21166d[_0x7dd47e(0x1e3)]=null);try{_0x21166d[_0x7dd47e(0x1e3)]=new EventSource(_0x7dd47e(0x20b)+_0xc0599c+_0x7dd47e(0x1d9));for(const _0x39d1df of TASK_STREAM_EVENTS){_0x21166d[_0x7dd47e(0x1e3)][_0x7dd47e(0x1fe)](_0x39d1df,_0x1fa47b=>{const _0x51c1e8=_0x7dd47e;broadcastToTask(_0xc0599c,_0x51c1e8(0x1e6)+_0x39d1df,_0x1fa47b[_0x51c1e8(0x1d5)]),_0x21166d[_0x51c1e8(0x1dc)]=0x0;});}_0x21166d['eventSource'][_0x7dd47e(0x1fe)](_0x7dd47e(0x201),()=>{const _0x5038ca=_0x7dd47e;broadcastToTask(_0xc0599c,'task:connected','{}'),_0x21166d[_0x5038ca(0x1dc)]=0x0;}),_0x21166d['eventSource'][_0x7dd47e(0x1fe)](_0x7dd47e(0x1e0),()=>{const _0x33f8ae=_0x7dd47e;broadcastToTask(_0xc0599c,'task:error',JSON[_0x33f8ae(0x1d1)]({'error':_0x33f8ae(0x1d7)})),_0x21166d[_0x33f8ae(0x1e3)]&&(_0x21166d[_0x33f8ae(0x1e3)][_0x33f8ae(0x1fc)](),_0x21166d[_0x33f8ae(0x1e3)]=null),scheduleTaskReconnect(_0xc0599c);});}catch(_0x139796){console[_0x7dd47e(0x1e0)](_0x7dd47e(0x1f6)+_0xc0599c+':',_0x139796),broadcastToTask(_0xc0599c,_0x7dd47e(0x1d3),JSON[_0x7dd47e(0x1d1)]({'error':_0x139796[_0x7dd47e(0x207)]})),scheduleTaskReconnect(_0xc0599c);}}function broadcastToTask(_0x4c4e9b,_0x404fdd,_0x746dd0){const _0x3d2a17=_0x2491a8,_0x49ac7e=taskStreams[_0x3d2a17(0x1cd)](_0x4c4e9b);if(!_0x49ac7e)return;const _0x59be1e=[];_0x49ac7e[_0x3d2a17(0x1d8)][_0x3d2a17(0x1f1)](_0x1d2102=>{const _0x2fc197=_0x3d2a17;try{_0x1d2102['postMessage']({'type':_0x404fdd,'taskId':_0x4c4e9b,'data':_0x746dd0});}catch(_0x5b5323){_0x59be1e[_0x2fc197(0x1f7)](_0x1d2102);}}),_0x59be1e[_0x3d2a17(0x1e2)]>0x0&&(_0x59be1e['forEach'](_0x50a82f=>_0x49ac7e['subscribedPorts'][_0x3d2a17(0x1eb)](_0x50a82f)),cleanUpDeadPorts(_0x59be1e),_0x49ac7e['subscribedPorts']['size']===0x0&&closeTaskStream(_0x4c4e9b));}function closeTaskStream(_0x1181b5){const _0x3c43b9=_0x2491a8,_0xfa11ce=taskStreams['get'](_0x1181b5);if(!_0xfa11ce)return;_0xfa11ce[_0x3c43b9(0x1e3)]&&_0xfa11ce[_0x3c43b9(0x1e3)][_0x3c43b9(0x1fc)](),_0xfa11ce[_0x3c43b9(0x1ea)]&&clearTimeout(_0xfa11ce['reconnectTimeout']),taskStreams['delete'](_0x1181b5);}function deferredCloseTaskStream(_0x591213){setTimeout(()=>{const _0x247f2e=_0x7c2b,_0x410dbb=taskStreams[_0x247f2e(0x1cd)](_0x591213);_0x410dbb&&_0x410dbb[_0x247f2e(0x1d8)]['size']===0x0&&closeTaskStream(_0x591213);},0x0);}function scheduleTaskReconnect(_0x34912f){const _0x59a955=_0x2491a8,_0x24ef8a=taskStreams['get'](_0x34912f);if(!_0x24ef8a||_0x24ef8a['subscribedPorts'][_0x59a955(0x1df)]===0x0)return;_0x24ef8a[_0x59a955(0x1ea)]&&clearTimeout(_0x24ef8a[_0x59a955(0x1ea)]);const _0x232536=Math[_0x59a955(0x1f5)](0x3e8*Math['pow'](0x2,_0x24ef8a[_0x59a955(0x1dc)]),MAX_RECONNECT_DELAY);_0x24ef8a[_0x59a955(0x1dc)]++,console[_0x59a955(0x205)](_0x59a955(0x1cb)+_0x34912f+_0x59a955(0x1e4)+_0x232536+'ms'),_0x24ef8a[_0x59a955(0x1ea)]=setTimeout(()=>{const _0x464d54=_0x59a955;_0x24ef8a['subscribedPorts'][_0x464d54(0x1df)]>0x0&&connectTaskStream(_0x34912f);},_0x232536);}function cleanUpDeadPorts(_0x27a409){const _0x3e764a=_0x2491a8;for(const _0x15a619 of _0x27a409){ports[_0x3e764a(0x1eb)](_0x15a619),taskStreams[_0x3e764a(0x1f1)]((_0x18b4d8,_0x476347)=>{const _0x45714b=_0x3e764a;_0x18b4d8[_0x45714b(0x1d8)]['delete'](_0x15a619),_0x18b4d8[_0x45714b(0x1d8)][_0x45714b(0x1df)]===0x0&&closeTaskStream(_0x476347);});}}function removePortFromAllTasks(_0x434b28){const _0x96b409=_0x2491a8;taskStreams[_0x96b409(0x1f1)]((_0x144bdc,_0x390151)=>{const _0x4f29fe=_0x96b409;_0x144bdc[_0x4f29fe(0x1d8)]['has'](_0x434b28)&&(_0x144bdc['subscribedPorts'][_0x4f29fe(0x1eb)](_0x434b28),_0x144bdc['subscribedPorts'][_0x4f29fe(0x1df)]===0x0&&closeTaskStream(_0x390151));});}self['onconnect']=function(_0x53eaf0){const _0x2ee514=_0x2491a8,_0x37d319=_0x53eaf0['ports'][0x0];ports[_0x2ee514(0x1fa)](_0x37d319),console[_0x2ee514(0x205)](_0x2ee514(0x1de)+ports[_0x2ee514(0x1df)]),_0x37d319[_0x2ee514(0x202)]=function(_0x243875){const _0xd5be0=_0x2ee514,{action:_0x572734,userId:_0xa9bbb0,taskId:_0x56ee58}=_0x243875[_0xd5be0(0x1d5)];switch(_0x572734){case'connect':connect(_0xa9bbb0);eventSource&&eventSource[_0xd5be0(0x1ec)]===EventSource['OPEN']&&_0x37d319[_0xd5be0(0x20c)]({'type':'connected'});break;case _0xd5be0(0x1ce):ports[_0xd5be0(0x1eb)](_0x37d319),removePortFromAllTasks(_0x37d319),console[_0xd5be0(0x205)](_0xd5be0(0x1cf)+ports[_0xd5be0(0x1df)]);ports['size']===0x0&&eventSource&&(eventSource[_0xd5be0(0x1fc)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0xd5be0(0x204):_0xa9bbb0!==currentUserId&&connect(_0xa9bbb0);break;case _0xd5be0(0x208):subscribeTask(_0x37d319,_0x56ee58);break;case _0xd5be0(0x1f4):unsubscribeTask(_0x37d319,_0x56ee58);break;default:console[_0xd5be0(0x1d4)](_0xd5be0(0x206),_0x572734);}},_0x37d319['onmessageerror']=function(_0x24e247){const _0x6dff77=_0x2ee514;console['error'](_0x6dff77(0x1d2),_0x24e247),ports['delete'](_0x37d319),removePortFromAllTasks(_0x37d319);},_0x37d319[_0x2ee514(0x1ff)]();};function _0x348e(){const _0x4f35f3=['ywrK','t1bftG','y2XVC2u','nJbfvfjzD1a','ywrKrxzLBNrmAxn0zw5LCG','C3rHCNq','mtK0mJy4CMDwrxbw','B3bLBG','B25TzxnZywDL','y2HHBMDLzc1MAwXLCW','y2HHBMDLrMLSDgvY','Bg9N','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','BwvZC2fNzq','C3vIC2nYAwjLvgfZAW','mtm5ndG3nZz0ten3Bfa','ota0odG0D0rlBLju','l3rHC2TZlW','Cg9ZDe1LC3nHz2u','C25HChnOB3q','CxvLDwuTCg9ZAxrPB24','oxPowwjTAa','mZmWvNjVAxf4','Bwv0ywrHDge','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','y29TCgXLDgu','z2v0','zgLZy29UBMvJDa','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','C3vTBwfYEq','C3rYAw5NAwz5','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','DgfZAZPLCNjVCG','D2fYBG','zgf0yq','q0Xpu0ve','q29UBMvJDgLVBIbLCNjVCG','C3vIC2nYAwjLzfbVCNrZ','l3n0CMvHBq','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','ntjmrKfbr3i','CMvJB25Uzwn0qxr0zw1WDhm','ntu0mta1n0PpCuDcCa','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','C2L6zq','zxjYB3i','ndCWEgHgy090','BgvUz3rO','zxzLBNrtB3vYy2u','igLUia','mtzJDfP4DvC','DgfZAZO','mty5mZm0sMruu1vZ','mJy4mJu2rgf3vLbj','ywn0AxzPDhK','CMvJB25Uzwn0vgLTzw91Da','zgvSzxrL','CMvHzhLtDgf0zq','BxmGkgf0DgvTChqG','BMv3lxrHC2S','y29UBMvJDgvK','C3rHDhvZ','zM9YrwfJAa','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','Dw5ZDwjZy3jPyMvuyxnR','BwLU','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','ChvZAa','mJG1mtfRsMHrD3O','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia'];_0x348e=function(){return _0x4f35f3;};return _0x348e();}
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;
@@ -15795,6 +15830,86 @@ select option[value=""] {
15795
15830
  animation: spin 1s linear infinite;
15796
15831
  }
15797
15832
 
15833
+ /* ============================================
15834
+ JIRA COMMENT MODAL
15835
+ ============================================ */
15836
+
15837
+ #jira-comment-modal .modal-content {
15838
+ max-width: 760px;
15839
+ }
15840
+
15841
+ .jira-comment-info {
15842
+ margin-bottom: 16px;
15843
+ }
15844
+
15845
+ .jira-comment-info p {
15846
+ margin: 0;
15847
+ color: var(--color-text-secondary);
15848
+ }
15849
+
15850
+ .jira-comment-info strong {
15851
+ color: var(--color-text);
15852
+ }
15853
+
15854
+ .jira-comment-editor-container {
15855
+ display: flex;
15856
+ flex-direction: column;
15857
+ border: 1px solid var(--color-border);
15858
+ border-radius: var(--radius-small);
15859
+ overflow: hidden;
15860
+ }
15861
+
15862
+ .jira-comment-editor-container:focus-within {
15863
+ outline: 2px solid rgba(63,114,255,0.25);
15864
+ border-color: var(--color-accent);
15865
+ }
15866
+
15867
+ .jira-comment-editor-container .markdown-editor-wrapper {
15868
+ flex: 1;
15869
+ display: flex;
15870
+ flex-direction: column;
15871
+ }
15872
+
15873
+ .jira-comment-editor-container .markdown-editor {
15874
+ border: none;
15875
+ border-radius: 0;
15876
+ box-shadow: none;
15877
+ min-height: 260px;
15878
+ max-height: 420px;
15879
+ overflow-y: auto;
15880
+ }
15881
+
15882
+ .jira-comment-editor-container .markdown-editor:focus {
15883
+ outline: none;
15884
+ box-shadow: none;
15885
+ }
15886
+
15887
+ #confirm-jira-comment {
15888
+ display: inline-flex;
15889
+ align-items: center;
15890
+ gap: 8px;
15891
+ min-width: 132px;
15892
+ justify-content: center;
15893
+ }
15894
+
15895
+ #confirm-jira-comment .btn-spinner,
15896
+ #confirm-jira-comment .btn-text-loading {
15897
+ display: none;
15898
+ }
15899
+
15900
+ #confirm-jira-comment.is-submitting .btn-text {
15901
+ display: none;
15902
+ }
15903
+
15904
+ #confirm-jira-comment.is-submitting .btn-spinner,
15905
+ #confirm-jira-comment.is-submitting .btn-text-loading {
15906
+ display: inline-flex;
15907
+ }
15908
+
15909
+ #confirm-jira-comment .spinner {
15910
+ animation: spin 1s linear infinite;
15911
+ }
15912
+
15798
15913
  /* ============================================
15799
15914
  OBJECTIVES FEATURE STYLES
15800
15915
  ============================================ */
@@ -19496,6 +19611,7 @@ body.task-list-open .task-list-side-trigger {
19496
19611
  border-radius: var(--radius-small);
19497
19612
  overflow: hidden;
19498
19613
  background: var(--color-surface);
19614
+ min-height: 0;
19499
19615
  }
19500
19616
 
19501
19617
  .markdown-file-editor-wrapper .markdown-editor-wrapper {
@@ -19503,6 +19619,7 @@ body.task-list-open .task-list-side-trigger {
19503
19619
  display: flex;
19504
19620
  flex-direction: column;
19505
19621
  overflow: hidden;
19622
+ min-height: 0;
19506
19623
  }
19507
19624
 
19508
19625
  .markdown-file-editor-wrapper .markdown-editor-toolbar {