@profoundlogic/coderflow-server 0.3.1 → 0.4.0

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 (154) hide show
  1. package/dist/base-image/agent-wrapper.sh +49 -9
  2. package/dist/base-image/entrypoint.sh +12 -1
  3. package/dist/coder-server.js +1 -1
  4. package/dist/config/cli-models.json +5 -3
  5. package/dist/config.js +1 -1
  6. package/dist/lib/agent-keepalive.js +1 -1
  7. package/dist/lib/agent-models.js +1 -0
  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/basic-auth.js +1 -1
  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 -0
  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/model-fetcher.js +1 -1
  56. package/dist/lib/notifications.js +1 -1
  57. package/dist/lib/oidc-auth.js +1 -1
  58. package/dist/lib/oidc-device-flow.js +1 -1
  59. package/dist/lib/passwordTokens.js +1 -1
  60. package/dist/lib/pin-cascade.js +1 -1
  61. package/dist/lib/provider-accounts.js +1 -1
  62. package/dist/lib/provider-oauth.js +1 -1
  63. package/dist/lib/provider-profile.js +1 -1
  64. package/dist/lib/provider-token-refresh.js +1 -1
  65. package/dist/lib/request-url.js +1 -1
  66. package/dist/lib/rewind.js +1 -1
  67. package/dist/lib/roles.js +1 -1
  68. package/dist/lib/secrets.js +1 -1
  69. package/dist/lib/setup-repo-git-auth.js +1 -1
  70. package/dist/lib/state-capture.js +1 -1
  71. package/dist/lib/static-files.js +1 -1
  72. package/dist/lib/task-name-format.js +1 -0
  73. package/dist/lib/task-name-generator.js +1 -1
  74. package/dist/lib/user-git-oauth.js +1 -1
  75. package/dist/lib/user-git-tokens.js +1 -1
  76. package/dist/lib/users.js +1 -1
  77. package/dist/middleware/requireAuth.js +1 -1
  78. package/dist/middleware/requireInit.js +1 -1
  79. package/dist/middleware/requirePermission.js +1 -1
  80. package/dist/package.json +1 -1
  81. package/dist/routes/apiKeys.js +1 -1
  82. package/dist/routes/auth-oidc.js +1 -1
  83. package/dist/routes/auth.js +1 -1
  84. package/dist/routes/build.js +1 -1
  85. package/dist/routes/containers.js +1 -1
  86. package/dist/routes/deploy-task.js +1 -1
  87. package/dist/routes/environment-management.js +1 -1
  88. package/dist/routes/environments.js +1 -1
  89. package/dist/routes/external-skills.js +1 -1
  90. package/dist/routes/git-credentials.js +1 -1
  91. package/dist/routes/git-oauth.js +1 -1
  92. package/dist/routes/git-provider-setup.js +1 -1
  93. package/dist/routes/health.js +1 -1
  94. package/dist/routes/jira.js +1 -1
  95. package/dist/routes/objective-management.js +1 -1
  96. package/dist/routes/password.js +1 -1
  97. package/dist/routes/prompt.js +1 -1
  98. package/dist/routes/provider-auth.js +1 -1
  99. package/dist/routes/qa.js +1 -1
  100. package/dist/routes/settings.js +1 -1
  101. package/dist/routes/skill-management.js +1 -1
  102. package/dist/routes/skills.js +1 -1
  103. package/dist/routes/tasks.js +1 -1
  104. package/dist/routes/templates.js +1 -1
  105. package/dist/routes/test-task.js +1 -1
  106. package/dist/routes/test.js +1 -1
  107. package/dist/routes/users.js +1 -1
  108. package/dist/routes/visualizations.js +1 -1
  109. package/dist/scripts/create-user.js +1 -1
  110. package/dist/scripts/migrate-config-to-data-dir.js +2 -0
  111. package/dist/start.js +1 -1
  112. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  113. package/dist/web-ui/public/activity-feed.js +1 -1
  114. package/dist/web-ui/public/activity-formatters.js +1 -1
  115. package/dist/web-ui/public/agent-event-parser.js +1 -1
  116. package/dist/web-ui/public/app.js +1 -1
  117. package/dist/web-ui/public/approve-dialog.js +1 -1
  118. package/dist/web-ui/public/comments-widget.js +1 -1
  119. package/dist/web-ui/public/diff-utils.js +1 -1
  120. package/dist/web-ui/public/docs/README.md +1 -1
  121. package/dist/web-ui/public/docs/_sidebar.md +1 -0
  122. package/dist/web-ui/public/docs/admin/environments.md +1 -1
  123. package/dist/web-ui/public/docs/admin/jira.md +156 -0
  124. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +3 -3
  125. package/dist/web-ui/public/docs/integrations/overview.md +1 -1
  126. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +38 -0
  127. package/dist/web-ui/public/docs/tasks/creating-tasks.md +14 -0
  128. package/dist/web-ui/public/environments.js +1 -1
  129. package/dist/web-ui/public/feedback-widget.js +1 -1
  130. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  131. package/dist/web-ui/public/git-history.js +1 -1
  132. package/dist/web-ui/public/git-status.js +1 -1
  133. package/dist/web-ui/public/index.html +1 -0
  134. package/dist/web-ui/public/index.js +1 -1
  135. package/dist/web-ui/public/login.js +1 -1
  136. package/dist/web-ui/public/markdown-editor.js +1 -1
  137. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  138. package/dist/web-ui/public/modal-maximize.js +1 -1
  139. package/dist/web-ui/public/notifications.js +1 -1
  140. package/dist/web-ui/public/pr-dialog.js +1 -0
  141. package/dist/web-ui/public/server-health.js +1 -1
  142. package/dist/web-ui/public/settings.js +1 -1
  143. package/dist/web-ui/public/setup-password.js +1 -1
  144. package/dist/web-ui/public/skills.js +1 -1
  145. package/dist/web-ui/public/sse-client.js +1 -1
  146. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  147. package/dist/web-ui/public/styles.css +187 -0
  148. package/dist/web-ui/public/task.html +37 -3
  149. package/dist/web-ui/public/task.js +1 -1
  150. package/dist/web-ui/public/terminal.js +1 -1
  151. package/dist/web-ui/public/theme.js +1 -1
  152. package/dist/web-ui/public/users.js +1 -1
  153. package/dist/web-ui/public/variant-grouping.js +1 -1
  154. package/package.json +1 -1
@@ -1 +1 @@
1
- const _0x4ddf48=_0xdcd0;(function(_0x5b4994,_0x400575){const _0x4d32ce=_0xdcd0,_0x567277=_0x5b4994();while(!![]){try{const _0x47427f=parseInt(_0x4d32ce(0x105))/0x1*(parseInt(_0x4d32ce(0xe1))/0x2)+-parseInt(_0x4d32ce(0xda))/0x3*(parseInt(_0x4d32ce(0xfa))/0x4)+-parseInt(_0x4d32ce(0x135))/0x5*(-parseInt(_0x4d32ce(0x12b))/0x6)+-parseInt(_0x4d32ce(0x131))/0x7+-parseInt(_0x4d32ce(0x137))/0x8*(parseInt(_0x4d32ce(0xf0))/0x9)+parseInt(_0x4d32ce(0x122))/0xa*(parseInt(_0x4d32ce(0xf7))/0xb)+-parseInt(_0x4d32ce(0xd4))/0xc*(-parseInt(_0x4d32ce(0x11e))/0xd);if(_0x47427f===_0x400575)break;else _0x567277['push'](_0x567277['shift']());}catch(_0x6661ad){_0x567277['push'](_0x567277['shift']());}}}(_0x4983,0xb53e5));function isSharedWorkerSupported(){const _0xe0adaa=_0xdcd0;return typeof SharedWorker!==_0xe0adaa(0xe5);}function eventTypeToHandler(_0x55d002){const _0x43a4cc=_0xdcd0;if(_0x55d002==='connected')return'onConnected';if(_0x55d002===_0x43a4cc(0xec))return'onError';return'on'+_0x55d002[_0x43a4cc(0x112)]('-')[_0x43a4cc(0xf4)](_0x3a2319=>_0x3a2319['charAt'](0x0)[_0x43a4cc(0x11d)]()+_0x3a2319[_0x43a4cc(0x10e)](0x1))['join']('');}const TASK_STREAM_EVENTS=['activity','logs','metadata',_0x4ddf48(0x118),_0x4ddf48(0xf1),_0x4ddf48(0xff),_0x4ddf48(0xd2)];export class TaskUpdatesClient{constructor(){const _0x367761=_0x4ddf48;this['listeners']=new Map(),this[_0x367761(0x10a)]=null,this[_0x367761(0xd3)]=null,this[_0x367761(0xe2)]=null,this[_0x367761(0x110)]=null,this[_0x367761(0xd6)]=null,this[_0x367761(0xd0)]=0x0,this[_0x367761(0xfc)]=isSharedWorkerSupported(),this[_0x367761(0xe9)]=![],this[_0x367761(0xf9)]=new Map(),this[_0x367761(0x113)]=0x0,this[_0x367761(0xe6)]=this['_handleWorkerMessage']['bind'](this),this[_0x367761(0x134)]=this['_handleDirectSSE'][_0x367761(0xd5)](this);}['on'](_0x3db4b9,_0xb0bbac){const _0x148a1f=_0x4ddf48;return!this[_0x148a1f(0x12c)][_0x148a1f(0x129)](_0x3db4b9)&&this[_0x148a1f(0x12c)]['set'](_0x3db4b9,new Set()),this[_0x148a1f(0x12c)][_0x148a1f(0xdf)](_0x3db4b9)[_0x148a1f(0x114)](_0xb0bbac),this;}[_0x4ddf48(0xdd)](_0x4c3eff,_0x532129){const _0x4fadb7=_0x4ddf48;return this[_0x4fadb7(0x12c)][_0x4fadb7(0x129)](_0x4c3eff)&&this['listeners'][_0x4fadb7(0xdf)](_0x4c3eff)['delete'](_0x532129),this;}[_0x4ddf48(0x11a)](_0x408b69,_0x3fa5e2){const _0x874b2a=_0x4ddf48;this[_0x874b2a(0x12c)][_0x874b2a(0x129)](_0x408b69)&&this[_0x874b2a(0x12c)]['get'](_0x408b69)[_0x874b2a(0x133)](_0x359c9c=>{const _0x223be5=_0x874b2a;try{_0x359c9c(_0x3fa5e2);}catch(_0x231c38){console['error'](_0x223be5(0x12d)+_0x408b69+_0x223be5(0xdc),_0x231c38);}});}['connect'](_0x29e64c='me'){const _0xc0066=_0x4ddf48;this[_0xc0066(0x110)]=_0x29e64c,this[_0xc0066(0xfc)]?this[_0xc0066(0x104)](_0x29e64c):this[_0xc0066(0xe0)](_0x29e64c);}[_0x4ddf48(0x104)](_0x27f130){const _0x7be8c6=_0x4ddf48;try{this[_0x7be8c6(0x10f)](),this[_0x7be8c6(0xd3)][_0x7be8c6(0xee)]({'action':_0x7be8c6(0x111),'userId':_0x27f130});}catch(_0x11a91b){console[_0x7be8c6(0xec)](_0x7be8c6(0x130),_0x11a91b),this[_0x7be8c6(0xfc)]=![],this['_connectDirect'](_0x27f130);}}[_0x4ddf48(0x10f)](){const _0x1c774e=_0x4ddf48;!this[_0x1c774e(0x10a)]&&(this[_0x1c774e(0x10a)]=new SharedWorker(_0x1c774e(0x121)),this[_0x1c774e(0xd3)]=this[_0x1c774e(0x10a)]['port'],this[_0x1c774e(0xd3)]['onmessage']=this[_0x1c774e(0xe6)],this[_0x1c774e(0xd3)]['onmessageerror']=_0x3974c5=>{const _0x25d5c1=_0x1c774e;console['error'](_0x25d5c1(0x119),_0x3974c5),this[_0x25d5c1(0x11a)](_0x25d5c1(0xec),{'error':'Worker\x20message\x20error'});},this[_0x1c774e(0xd3)][_0x1c774e(0xfd)]());}['_handleWorkerMessage'](_0x3c5ab0){const _0x5151c6=_0x4ddf48,_0x289d22=_0x3c5ab0['data'];if(_0x289d22['type']&&_0x289d22[_0x5151c6(0x11f)]['startsWith'](_0x5151c6(0xea))){this[_0x5151c6(0x11c)](_0x289d22);return;}switch(_0x289d22[_0x5151c6(0x11f)]){case _0x5151c6(0xe9):this[_0x5151c6(0xe9)]=!![],this[_0x5151c6(0x11a)](_0x5151c6(0xe9),{});break;case _0x5151c6(0xd8):case'activity':case _0x5151c6(0xfe):case'new-task':case _0x5151c6(0xd7):try{const _0x1df1bd=JSON[_0x5151c6(0xf2)](_0x289d22[_0x5151c6(0x11b)]);this[_0x5151c6(0x11a)](_0x289d22[_0x5151c6(0x11f)],_0x1df1bd);}catch(_0x5667b6){console[_0x5151c6(0xec)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x289d22[_0x5151c6(0x11f)]+_0x5151c6(0x126),_0x5667b6);}break;case'error':this['connected']=![],this['_emit'](_0x5151c6(0xec),_0x289d22);break;default:console[_0x5151c6(0x132)](_0x5151c6(0x123),_0x289d22[_0x5151c6(0x11f)]);}}[_0x4ddf48(0x11c)](_0x2c0272){const _0x38f9ec=_0x4ddf48,{taskId:_0x584076,type:_0x451c8c,data:_0x446590}=_0x2c0272,_0x4355b2=this['_taskSubscriptions']['get'](_0x584076);if(!_0x4355b2||_0x4355b2[_0x38f9ec(0x136)]===0x0)return;const _0x46c2b5=_0x451c8c[_0x38f9ec(0x120)](_0x38f9ec(0xea),''),_0x2a84cc=eventTypeToHandler(_0x46c2b5);_0x4355b2[_0x38f9ec(0x133)](_0x5e7f51=>{const _0x136176=_0x38f9ec;if(_0x5e7f51['handlers'][_0x2a84cc])try{const _0x551bef=typeof _0x446590===_0x136176(0x10d)?JSON['parse'](_0x446590):_0x446590;_0x5e7f51[_0x136176(0xe8)][_0x2a84cc](_0x551bef);}catch(_0x93f96f){console['error'](_0x136176(0xfb)+_0x46c2b5+_0x136176(0x106),_0x93f96f);}});}[_0x4ddf48(0xe0)](_0xa8d175){const _0x58b727=_0x4ddf48;this[_0x58b727(0xe2)]&&(this[_0x58b727(0xe2)][_0x58b727(0xd9)](),this[_0x58b727(0xe2)]=null);const _0x216965=_0xa8d175&&_0xa8d175!=='me'?_0x58b727(0xe4)+_0xa8d175:'';try{this[_0x58b727(0xe2)]=new EventSource(_0x58b727(0xed)+_0x216965),this[_0x58b727(0xe2)][_0x58b727(0x115)](_0x58b727(0xe7),()=>{const _0x334983=_0x58b727;this[_0x334983(0xe9)]=!![],this[_0x334983(0xd0)]=0x0,this[_0x334983(0x11a)](_0x334983(0xe9),{});}),this[_0x58b727(0xe2)][_0x58b727(0x115)](_0x58b727(0xd8),_0x2647a7=>{const _0x1251da=_0x58b727;this[_0x1251da(0x134)](_0x1251da(0xd8),_0x2647a7),this['reconnectAttempts']=0x0;}),this['eventSource']['addEventListener'](_0x58b727(0x127),_0x517a2d=>{const _0x15eb25=_0x58b727;this['_handleDirectSSE'](_0x15eb25(0x127),_0x517a2d);}),this['eventSource'][_0x58b727(0x115)](_0x58b727(0xfe),_0x489a62=>{const _0x2f1c1c=_0x58b727;this[_0x2f1c1c(0x134)]('status',_0x489a62);}),this[_0x58b727(0xe2)][_0x58b727(0x115)](_0x58b727(0x102),_0x4caaa9=>{const _0x2d087e=_0x58b727;this[_0x2d087e(0x134)]('new-task',_0x4caaa9);}),this[_0x58b727(0xe2)]['addEventListener'](_0x58b727(0xd7),_0x898347=>{const _0x3a9c22=_0x58b727;this['_handleDirectSSE'](_0x3a9c22(0xd7),_0x898347);}),this[_0x58b727(0xe2)][_0x58b727(0x115)](_0x58b727(0xec),_0xa195b0=>{const _0x1a01be=_0x58b727;console[_0x1a01be(0xec)](_0x1a01be(0xf5),_0xa195b0),this['connected']=![],this[_0x1a01be(0x11a)](_0x1a01be(0xec),{'error':'Connection\x20error'}),this['eventSource']&&(this[_0x1a01be(0xe2)][_0x1a01be(0xd9)](),this[_0x1a01be(0xe2)]=null),this['_scheduleReconnect']();});}catch(_0x15e68a){console[_0x58b727(0xec)](_0x58b727(0x108),_0x15e68a),this['_emit']('error',{'error':_0x15e68a[_0x58b727(0x116)]}),this[_0x58b727(0xeb)]();}}[_0x4ddf48(0x134)](_0x40836f,_0x56f4f0){const _0x452527=_0x4ddf48;try{const _0x173e4f=JSON[_0x452527(0xf2)](_0x56f4f0[_0x452527(0x11b)]);this['_emit'](_0x40836f,_0x173e4f);}catch(_0x562d7b){console[_0x452527(0xec)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x40836f+'\x20data:',_0x562d7b);}}[_0x4ddf48(0xeb)](){const _0x267c9d=_0x4ddf48;this[_0x267c9d(0xd6)]&&clearTimeout(this[_0x267c9d(0xd6)]);const _0x38b1b1=Math['min'](0x3e8*Math['pow'](0x2,this[_0x267c9d(0xd0)]),0x7530);this[_0x267c9d(0xd0)]++,console[_0x267c9d(0x10c)]('[SSE\x20Client]\x20Scheduling\x20reconnect\x20in\x20'+_0x38b1b1+'ms'),this['reconnectTimeout']=setTimeout(()=>{const _0x26b4a3=_0x267c9d;this[_0x26b4a3(0xe0)](this[_0x26b4a3(0x110)]);},_0x38b1b1);}[_0x4ddf48(0x12a)](_0xbde82b){const _0x569fe6=_0x4ddf48;if(_0xbde82b===this[_0x569fe6(0x110)])return;this[_0x569fe6(0x110)]=_0xbde82b;if(this[_0x569fe6(0xfc)]&&this[_0x569fe6(0xd3)])this[_0x569fe6(0xd3)][_0x569fe6(0xee)]({'action':_0x569fe6(0x12a),'userId':_0xbde82b});else this['eventSource']&&this[_0x569fe6(0xe0)](_0xbde82b);}[_0x4ddf48(0xf6)](_0x31174d,_0x1c4ce2){const _0x3f50b1=_0x4ddf48;return this[_0x3f50b1(0xfc)]?this[_0x3f50b1(0x128)](_0x31174d,_0x1c4ce2):this['_subscribeTaskDirect'](_0x31174d,_0x1c4ce2);}['unsubscribeTask'](_0x5c4359){const _0x45cc65=_0x4ddf48;if(!_0x5c4359)return;_0x5c4359[_0x45cc65(0x11f)]===_0x45cc65(0x10a)?this[_0x45cc65(0x12f)](_0x5c4359):this[_0x45cc65(0x10b)](_0x5c4359);}['_subscribeTaskViaWorker'](_0x76da18,_0x346700){const _0xccc1ef=_0x4ddf48;try{this[_0xccc1ef(0x10f)]();}catch(_0x210597){return console['error']('[SSE\x20Client]\x20SharedWorker\x20failed\x20for\x20task\x20sub,\x20falling\x20back:',_0x210597),this['useSharedWorker']=![],this[_0xccc1ef(0x101)](_0x76da18,_0x346700);}const _0x187f0a=++this[_0xccc1ef(0x113)],_0x4e31cf={'type':'worker','taskId':_0x76da18,'handlers':_0x346700,'id':_0x187f0a};return!this[_0xccc1ef(0xf9)]['has'](_0x76da18)&&(this['_taskSubscriptions'][_0xccc1ef(0x107)](_0x76da18,new Set()),this[_0xccc1ef(0xd3)][_0xccc1ef(0xee)]({'action':_0xccc1ef(0xf6),'taskId':_0x76da18})),this[_0xccc1ef(0xf9)]['get'](_0x76da18)['add'](_0x4e31cf),_0x4e31cf;}[_0x4ddf48(0x12f)](_0x3a8090){const _0x48b0d2=_0x4ddf48,{taskId:_0xe8e8c8}=_0x3a8090,_0x2c6139=this['_taskSubscriptions']['get'](_0xe8e8c8);if(_0x2c6139){_0x2c6139[_0x48b0d2(0xe3)](_0x3a8090);if(_0x2c6139[_0x48b0d2(0x136)]===0x0){this[_0x48b0d2(0xf9)]['delete'](_0xe8e8c8);try{this[_0x48b0d2(0xd3)]&&this[_0x48b0d2(0xd3)][_0x48b0d2(0xee)]({'action':_0x48b0d2(0x125),'taskId':_0xe8e8c8});}catch(_0x240ce6){}}}}[_0x4ddf48(0x101)](_0x53c845,_0x4cbd27){const _0xb056be=_0x4ddf48,_0x5b3dad=++this[_0xb056be(0x113)],_0x2f0790=new EventSource(_0xb056be(0xde)+_0x53c845+_0xb056be(0x103)),_0x1c506b={'type':_0xb056be(0x109),'taskId':_0x53c845,'handlers':_0x4cbd27,'id':_0x5b3dad,'eventSource':_0x2f0790};!this[_0xb056be(0xf9)][_0xb056be(0x129)](_0x53c845)&&this[_0xb056be(0xf9)][_0xb056be(0x107)](_0x53c845,new Set());this[_0xb056be(0xf9)]['get'](_0x53c845)['add'](_0x1c506b);for(const _0x2737c5 of TASK_STREAM_EVENTS){const _0x4bfb7d=eventTypeToHandler(_0x2737c5);_0x2f0790[_0xb056be(0x115)](_0x2737c5,_0x61373b=>{const _0x32c7f9=_0xb056be;if(_0x4cbd27[_0x4bfb7d])try{const _0x17c822=JSON[_0x32c7f9(0xf2)](_0x61373b['data']);_0x4cbd27[_0x4bfb7d](_0x17c822);}catch(_0x40ba65){console['error'](_0x32c7f9(0xef)+_0x2737c5+':',_0x40ba65);}});}return _0x2f0790[_0xb056be(0x115)](_0xb056be(0xe7),()=>{const _0x5bb6af=_0xb056be;if(_0x4cbd27[_0x5bb6af(0xdb)])_0x4cbd27['onConnected']();}),_0x2f0790[_0xb056be(0x115)](_0xb056be(0xec),()=>{const _0x393f25=_0xb056be;if(_0x4cbd27[_0x393f25(0xf3)])_0x4cbd27[_0x393f25(0xf3)]({'error':_0x393f25(0xf8)});}),_0x1c506b;}[_0x4ddf48(0x10b)](_0x17af1a){const _0x531e02=_0x4ddf48;_0x17af1a[_0x531e02(0xe2)]&&(_0x17af1a[_0x531e02(0xe2)][_0x531e02(0xd9)](),_0x17af1a[_0x531e02(0xe2)]=null);const _0x162da8=this[_0x531e02(0xf9)]['get'](_0x17af1a[_0x531e02(0x117)]);_0x162da8&&(_0x162da8[_0x531e02(0xe3)](_0x17af1a),_0x162da8[_0x531e02(0x136)]===0x0&&this[_0x531e02(0xf9)][_0x531e02(0xe3)](_0x17af1a[_0x531e02(0x117)]));}['disconnect'](){const _0x2c0293=_0x4ddf48;this['reconnectTimeout']&&(clearTimeout(this['reconnectTimeout']),this[_0x2c0293(0xd6)]=null);this[_0x2c0293(0xf9)][_0x2c0293(0x133)]((_0xa137e0,_0x473f47)=>{const _0x1dbbc8=_0x2c0293;_0xa137e0[_0x1dbbc8(0x133)](_0x58f054=>{const _0xd9ff93=_0x1dbbc8;_0x58f054[_0xd9ff93(0x11f)]===_0xd9ff93(0x109)&&_0x58f054['eventSource']&&_0x58f054[_0xd9ff93(0xe2)]['close']();});}),this['_taskSubscriptions'][_0x2c0293(0xd1)]();if(this[_0x2c0293(0xfc)]&&this[_0x2c0293(0xd3)])try{this[_0x2c0293(0xd3)][_0x2c0293(0xee)]({'action':_0x2c0293(0x12e)});}catch(_0x327035){}this[_0x2c0293(0xe2)]&&(this[_0x2c0293(0xe2)]['close'](),this[_0x2c0293(0xe2)]=null),this[_0x2c0293(0xe9)]=![];}[_0x4ddf48(0x100)](){const _0x55a692=_0x4ddf48;return this[_0x55a692(0xe9)];}[_0x4ddf48(0x124)](){const _0x488e96=_0x4ddf48;return this[_0x488e96(0xfc)];}}function _0xdcd0(_0x339606,_0x1a20fb){_0x339606=_0x339606-0xd0;const _0x498343=_0x4983();let _0xdcd083=_0x498343[_0x339606];if(_0xdcd0['eLjDJa']===undefined){var _0x53bf8a=function(_0x2e153b){const _0x27f126='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55d002='',_0x3a2319='';for(let _0x3db4b9=0x0,_0xb0bbac,_0x4c3eff,_0x532129=0x0;_0x4c3eff=_0x2e153b['charAt'](_0x532129++);~_0x4c3eff&&(_0xb0bbac=_0x3db4b9%0x4?_0xb0bbac*0x40+_0x4c3eff:_0x4c3eff,_0x3db4b9++%0x4)?_0x55d002+=String['fromCharCode'](0xff&_0xb0bbac>>(-0x2*_0x3db4b9&0x6)):0x0){_0x4c3eff=_0x27f126['indexOf'](_0x4c3eff);}for(let _0x408b69=0x0,_0x3fa5e2=_0x55d002['length'];_0x408b69<_0x3fa5e2;_0x408b69++){_0x3a2319+='%'+('00'+_0x55d002['charCodeAt'](_0x408b69)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a2319);};_0xdcd0['qWTNEh']=_0x53bf8a,_0xdcd0['YWSVjl']={},_0xdcd0['eLjDJa']=!![];}const _0x40fc9c=_0x498343[0x0],_0x48c1c9=_0x339606+_0x40fc9c,_0x3e6121=_0xdcd0['YWSVjl'][_0x48c1c9];return!_0x3e6121?(_0xdcd083=_0xdcd0['qWTNEh'](_0xdcd083),_0xdcd0['YWSVjl'][_0x48c1c9]=_0xdcd083):_0xdcd083=_0x3e6121,_0xdcd083;}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}function _0x4983(){const _0x426465=['CMvWBgfJzq','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','mJqWmJbnvuXQyvq','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','AxnvC2LUz1nOyxjLzfDVCMTLCG','Dw5ZDwjZy3jPyMvuyxnR','igrHDge6','ywn0AxzPDhK','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','AgfZ','y2HHBMDLrMLSDgvY','mZaWmta4A3jHBu96','BgLZDgvUzxjZ','w1ntrsbdBgLLBNrDievYCM9YigLUia','zgLZy29UBMvJDa','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','ody2mZa0nMj3s0vmDW','D2fYBG','zM9YrwfJAa','x2HHBMrSzurPCMvJDfntrq','mJbIzgDUzu8','C2L6zq','nZGZmJH6BM1ktvO','CMvJB25Uzwn0qxr0zw1WDhm','y2XLyxi','y29TCgXLDgu','Cg9YDa','mJiWmJe2mJbJDvbTv0e','yMLUza','CMvJB25Uzwn0vgLTzw91Da','CxvLDwuTCg9ZAxrPB24','C25HChnOB3q','y2XVC2u','mtaYodC2qxHWteno','B25dB25Uzwn0zwq','igXPC3rLBMvYoG','B2zM','l3rHC2TZlW','z2v0','x2nVBM5Ly3reAxjLy3q','mMDdDMvpsq','zxzLBNrtB3vYy2u','zgvSzxrL','p3vZzxjjzd0','Dw5KzwzPBMvK','x2HHBMrSzvDVCMTLCK1LC3nHz2u','B3bLBG','AgfUzgXLCNm','y29UBMvJDgvK','DgfZAZO','x3nJAgvKDwXLuMvJB25Uzwn0','zxjYB3i','l3rHC2TZl3vWzgf0zxm','Cg9ZDe1LC3nHz2u','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','odaXwNLlBfDq','y2HHBMDLzc1MAwXLCW','CgfYC2u','B25fCNjVCG','BwfW','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','C3vIC2nYAwjLvgfZAW','nJq5Eu9YBeDh','q29UBMvJDgLVBIbLCNjVCG','x3rHC2TtDwjZy3jPChrPB25Z','ndHIzgnvAMW','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','DxnLu2HHCMvKv29YA2vY','C3rHCNq','C3rHDhvZ','yxbWlxnLCNzLCI1ZDgf0Dxm','AxndB25Uzwn0zwq','x3n1yNnJCMLIzvrHC2TeAxjLy3q','BMv3lxrHC2S','l3n0CMvHBq','x2nVBM5Ly3rwAwfxB3jRzxi','mta4ntKYoxvIA2rkra','igHHBMrSzxi6','C2v0','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','zgLYzwn0','D29YA2vY','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','Bg9N','C3rYAw5N','C2XPy2u','x2vUC3vYzvDVCMTLCG','DxnLCKLK','y29UBMvJDa','C3bSAxq','x3rHC2TtDwjjzenVDw50zxi','ywrK','ywrKrxzLBNrmAxn0zw5LCG','BwvZC2fNzq','DgfZA0LK','C3vTBwfYEq','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','x2vTAxq','zgf0yq','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','Dg9vChbLCKnHC2u','mtnKt1rvzhu','DhLWzq'];_0x4983=function(){return _0x426465;};return _0x4983();}
1
+ const _0x54256c=_0x1425;function _0x1425(_0x46d6fb,_0x25dce0){_0x46d6fb=_0x46d6fb-0xa9;const _0x21e56a=_0x21e5();let _0x142508=_0x21e56a[_0x46d6fb];if(_0x1425['KIlmUo']===undefined){var _0x627a9a=function(_0x462d71){const _0x5ab325='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b435a='',_0x324980='';for(let _0x53917a=0x0,_0x5c0ee7,_0x3efe7d,_0x484fa9=0x0;_0x3efe7d=_0x462d71['charAt'](_0x484fa9++);~_0x3efe7d&&(_0x5c0ee7=_0x53917a%0x4?_0x5c0ee7*0x40+_0x3efe7d:_0x3efe7d,_0x53917a++%0x4)?_0x1b435a+=String['fromCharCode'](0xff&_0x5c0ee7>>(-0x2*_0x53917a&0x6)):0x0){_0x3efe7d=_0x5ab325['indexOf'](_0x3efe7d);}for(let _0x591db0=0x0,_0x83e4ac=_0x1b435a['length'];_0x591db0<_0x83e4ac;_0x591db0++){_0x324980+='%'+('00'+_0x1b435a['charCodeAt'](_0x591db0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x324980);};_0x1425['VtTApd']=_0x627a9a,_0x1425['jTAdAX']={},_0x1425['KIlmUo']=!![];}const _0x23668a=_0x21e56a[0x0],_0x53b0e9=_0x46d6fb+_0x23668a,_0x554826=_0x1425['jTAdAX'][_0x53b0e9];return!_0x554826?(_0x142508=_0x1425['VtTApd'](_0x142508),_0x1425['jTAdAX'][_0x53b0e9]=_0x142508):_0x142508=_0x554826,_0x142508;}function _0x21e5(){const _0x29b709=['B25dB25Uzwn0zwq','x3nJAgvKDwXLuMvJB25Uzwn0','zgf0yq','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','y2HHBMDLzc1MAwXLCW','x2nVBM5Ly3reAxjLy3q','Bg9NCW','DgfZA0LK','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','nZHWELHWEwK','x3n1yNnJCMLIzvrHC2TeAxjLy3q','DgfZAZO','x2HHBMrSzurPCMvJDfntrq','y2XVC2u','BwLU','CMvJB25Uzwn0vgLTzw91Da','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','C2XPy2u','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','zxjYB3i','Dw5ZDwjZy3jPyMvuyxnR','zgLYzwn0','Cg9YDa','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','Cg9ZDe1LC3nHz2u','y2XLyxi','ndu3nda1nu9tv0vHrW','zgvSzxrL','p3vZzxjjzd0','BMv3lxrHC2S','C3rHDhvZ','nJa3nteWCLvAtKru','nZC3mZC5nvnywff4Eq','zxzLBNrtB3vYy2u','CMvJB25Uzwn0qxr0zw1WDhm','Bg9N','w1ntrsbdBgLLBNrDievYCM9YigLUia','BgLZDgvUzxjZ','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','ywrK','D29YA2vY','x2vTAxq','x2vUC3vYzvDVCMTLCG','C25HChnOB3q','x2nVBM5Ly3rwAwfxB3jRzxi','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','zM9YrwfJAa','nta1nZCZnfnlv0T4Aa','zgLZy29UBMvJDa','AxndB25Uzwn0zwq','CxvLDwuTCg9ZAxrPB24','B25fCNjVCG','y2HHBMDLrMLSDgvY','C2v0','nJmWndy5yNb5svzp','B25TzxnZywDL','mtbhAu1Ty3e','C3vTBwfYEq','igHHBMrSzxi6','oxnWwvzrAa','ywrKrxzLBNrmAxn0zw5LCG','Cg93','AM9PBG','CMvWBgfJzq','l3rHC2TZl3vWzgf0zxm','Dg9vChbLCKnHC2u','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','CgfYC2u','y29UBMvJDgvK','AgfZ','AgfUzgXLCNm','DxnLu2HHCMvKv29YA2vY','ywn0AxzPDhK','mtK2nJHIA1zirum','x3rHC2TtDwjZy3jPChrPB25Z','q29UBMvJDgLVBIbLCNjVCG','ndyXndC2mgLVA2nhvG','y29TCgXLDgu','DxnLCKLK','v29YA2vYig1LC3nHz2uGzxjYB3i','y29UBMvJDa','Bwv0ywrHDge','C3rHCNq','C2L6zq','D2fYBG','nfDwuKPQzq','C3bSAxq','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','z2v0','x2HHBMrSzvDVCMTLCK1LC3nHz2u','BwvZC2fNzq','x3rHC2TtDwjjzenVDw50zxi','B2zM','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','DhLWzq','C3vIC2nYAwjLvgfZAW','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','y2HHCKf0','igrHDge6'];_0x21e5=function(){return _0x29b709;};return _0x21e5();}(function(_0x2ddb3c,_0x54e00c){const _0x3cf887=_0x1425,_0x2dd98e=_0x2ddb3c();while(!![]){try{const _0x43023f=parseInt(_0x3cf887(0xc1))/0x1+parseInt(_0x3cf887(0xeb))/0x2+-parseInt(_0x3cf887(0xbc))/0x3*(parseInt(_0x3cf887(0xf7))/0x4)+parseInt(_0x3cf887(0xc2))/0x5+-parseInt(_0x3cf887(0xaa))/0x6*(-parseInt(_0x3cf887(0xd8))/0x7)+parseInt(_0x3cf887(0xee))/0x8*(-parseInt(_0x3cf887(0xdd))/0x9)+-parseInt(_0x3cf887(0xda))/0xa*(parseInt(_0x3cf887(0xd1))/0xb);if(_0x43023f===_0x54e00c)break;else _0x2dd98e['push'](_0x2dd98e['shift']());}catch(_0x586f39){_0x2dd98e['push'](_0x2dd98e['shift']());}}}(_0x21e5,0xbed52));function isSharedWorkerSupported(){return typeof SharedWorker!=='undefined';}function eventTypeToHandler(_0x1b435a){const _0x28b77f=_0x1425;if(_0x1b435a===_0x28b77f(0xe6))return'onConnected';if(_0x1b435a===_0x28b77f(0xb5))return _0x28b77f(0xd5);return'on'+_0x1b435a[_0x28b77f(0xf8)]('-')['map'](_0x324980=>_0x324980[_0x28b77f(0x105)](0x0)[_0x28b77f(0xe3)]()+_0x324980[_0x28b77f(0xb3)](0x1))[_0x28b77f(0xe0)]('');}const TASK_STREAM_EVENTS=[_0x54256c(0xea),_0x54256c(0x10d),_0x54256c(0xf3),_0x54256c(0xdb),_0x54256c(0x10b),'app-server-status',_0x54256c(0xef)];export class TaskUpdatesClient{constructor(){const _0x32dd97=_0x54256c;this['listeners']=new Map(),this[_0x32dd97(0xca)]=null,this[_0x32dd97(0xb8)]=null,this['eventSource']=null,this[_0x32dd97(0xf0)]=null,this[_0x32dd97(0xb0)]=null,this[_0x32dd97(0xc4)]=0x0,this[_0x32dd97(0xe9)]=isSharedWorkerSupported(),this[_0x32dd97(0xe6)]=![],this[_0x32dd97(0xec)]=new Map(),this['_taskSubIdCounter']=0x0,this[_0x32dd97(0xfd)]=this[_0x32dd97(0xfd)]['bind'](this),this[_0x32dd97(0xad)]=this[_0x32dd97(0xad)]['bind'](this);}['on'](_0x53917a,_0x5c0ee7){const _0x1a3c1c=_0x54256c;return!this['listeners'][_0x1a3c1c(0xe7)](_0x53917a)&&this[_0x1a3c1c(0xc7)][_0x1a3c1c(0xd7)](_0x53917a,new Set()),this[_0x1a3c1c(0xc7)][_0x1a3c1c(0xfc)](_0x53917a)['add'](_0x5c0ee7),this;}[_0x54256c(0x100)](_0x3efe7d,_0x484fa9){const _0x9e803c=_0x54256c;return this['listeners'][_0x9e803c(0xe7)](_0x3efe7d)&&this[_0x9e803c(0xc7)][_0x9e803c(0xfc)](_0x3efe7d)[_0x9e803c(0xbd)](_0x484fa9),this;}[_0x54256c(0xcb)](_0x591db0,_0x83e4ac){const _0x34b2de=_0x54256c;this[_0x34b2de(0xc7)][_0x34b2de(0xe7)](_0x591db0)&&this[_0x34b2de(0xc7)][_0x34b2de(0xfc)](_0x591db0)[_0x34b2de(0xd0)](_0x36a86c=>{const _0x102fdb=_0x34b2de;try{_0x36a86c(_0x83e4ac);}catch(_0x1ec076){console[_0x102fdb(0xb5)](_0x102fdb(0xc6)+_0x591db0+'\x20listener:',_0x1ec076);}});}[_0x54256c(0xf2)](_0x1af253='me'){const _0x56108d=_0x54256c;this[_0x56108d(0xf0)]=_0x1af253,this[_0x56108d(0xe9)]?this['_connectViaWorker'](_0x1af253):this['_connectDirect'](_0x1af253);}[_0x54256c(0xce)](_0x16303e){const _0x599d08=_0x54256c;try{this[_0x599d08(0xcc)](),this[_0x599d08(0xb8)][_0x599d08(0xba)]({'action':'connect','userId':_0x16303e});}catch(_0x506302){console[_0x599d08(0xb5)](_0x599d08(0xcf),_0x506302),this['useSharedWorker']=![],this['_connectDirect'](_0x16303e);}}[_0x54256c(0xcc)](){const _0x19b923=_0x54256c;!this[_0x19b923(0xca)]&&(this[_0x19b923(0xca)]=new SharedWorker(_0x19b923(0x10a)),this[_0x19b923(0xb8)]=this['worker']['port'],this['port'][_0x19b923(0xd9)]=this[_0x19b923(0xfd)],this['port']['onmessageerror']=_0xce77d4=>{const _0x4c2c60=_0x19b923;console['error']('[SSE\x20Client]\x20Worker\x20message\x20error:',_0xce77d4),this[_0x4c2c60(0xcb)](_0x4c2c60(0xb5),{'error':_0x4c2c60(0xf1)});},this[_0x19b923(0xb8)][_0x19b923(0xf4)]());}[_0x54256c(0xfd)](_0x45d5f1){const _0x33c229=_0x54256c,_0x333a2f=_0x45d5f1[_0x33c229(0x109)];if(_0x333a2f['type']&&_0x333a2f['type']['startsWith']('task:')){this[_0x33c229(0xb2)](_0x333a2f);return;}switch(_0x333a2f[_0x33c229(0x102)]){case _0x33c229(0xe6):this['connected']=!![],this[_0x33c229(0xcb)](_0x33c229(0xe6),{});break;case'snapshot':case _0x33c229(0xea):case _0x33c229(0xc0):case _0x33c229(0xbf):case _0x33c229(0xd4):try{const _0x3554a6=JSON[_0x33c229(0xe5)](_0x333a2f[_0x33c229(0x109)]);this['_emit'](_0x333a2f['type'],_0x3554a6);}catch(_0x57d7f1){console[_0x33c229(0xb5)](_0x33c229(0x101)+_0x333a2f[_0x33c229(0x102)]+_0x33c229(0x106),_0x57d7f1);}break;case _0x33c229(0xb5):this[_0x33c229(0xe6)]=![],this[_0x33c229(0xcb)](_0x33c229(0xb5),_0x333a2f);break;default:console[_0x33c229(0xf6)](_0x33c229(0xb4),_0x333a2f[_0x33c229(0x102)]);}}[_0x54256c(0xb2)](_0x2bf854){const _0x507180=_0x54256c,{taskId:_0x216766,type:_0x5d740f,data:_0x1b1d47}=_0x2bf854,_0x5168a6=this[_0x507180(0xec)][_0x507180(0xfc)](_0x216766);if(!_0x5168a6||_0x5168a6[_0x507180(0xf5)]===0x0)return;const _0x66f3bd=_0x5d740f[_0x507180(0xe1)](_0x507180(0xac),''),_0x28027d=eventTypeToHandler(_0x66f3bd);_0x5168a6[_0x507180(0xd0)](_0x1f0b78=>{const _0x4b7ef4=_0x507180;if(_0x1f0b78[_0x4b7ef4(0xe8)][_0x28027d])try{const _0x5e15a9=typeof _0x1b1d47==='string'?JSON[_0x4b7ef4(0xe5)](_0x1b1d47):_0x1b1d47;_0x1f0b78[_0x4b7ef4(0xe8)][_0x28027d](_0x5e15a9);}catch(_0x1b8b69){console[_0x4b7ef4(0xb5)](_0x4b7ef4(0xfa)+_0x66f3bd+_0x4b7ef4(0xdc),_0x1b8b69);}});}[_0x54256c(0x10c)](_0x4df77b){const _0xa718ba=_0x54256c;this[_0xa718ba(0xc3)]&&(this[_0xa718ba(0xc3)][_0xa718ba(0xae)](),this[_0xa718ba(0xc3)]=null);const _0x91c6d8=_0x4df77b&&_0x4df77b!=='me'?_0xa718ba(0xbe)+_0x4df77b:'';try{this[_0xa718ba(0xc3)]=new EventSource(_0xa718ba(0xe2)+_0x91c6d8),this['eventSource'][_0xa718ba(0xde)]('open',()=>{const _0x9928db=_0xa718ba;this[_0x9928db(0xe6)]=!![],this[_0x9928db(0xc4)]=0x0,this[_0x9928db(0xcb)](_0x9928db(0xe6),{});}),this[_0xa718ba(0xc3)][_0xa718ba(0xde)](_0xa718ba(0xcd),_0xbf157e=>{const _0x2ead8c=_0xa718ba;this['_handleDirectSSE']('snapshot',_0xbf157e),this[_0x2ead8c(0xc4)]=0x0;}),this[_0xa718ba(0xc3)]['addEventListener'](_0xa718ba(0xea),_0x2a5b2c=>{const _0x28dd69=_0xa718ba;this[_0x28dd69(0xad)](_0x28dd69(0xea),_0x2a5b2c);}),this[_0xa718ba(0xc3)]['addEventListener'](_0xa718ba(0xc0),_0x59c0c5=>{const _0x1ec1b4=_0xa718ba;this[_0x1ec1b4(0xad)](_0x1ec1b4(0xc0),_0x59c0c5);}),this['eventSource'][_0xa718ba(0xde)](_0xa718ba(0xbf),_0x112a0c=>{const _0xd7625d=_0xa718ba;this[_0xd7625d(0xad)]('new-task',_0x112a0c);}),this[_0xa718ba(0xc3)]['addEventListener'](_0xa718ba(0xd4),_0x51ab8d=>{const _0x48b3e2=_0xa718ba;this[_0x48b3e2(0xad)](_0x48b3e2(0xd4),_0x51ab8d);}),this[_0xa718ba(0xc3)][_0xa718ba(0xde)](_0xa718ba(0xb5),_0x2637a2=>{const _0xce47e0=_0xa718ba;console[_0xce47e0(0xb5)](_0xce47e0(0xfb),_0x2637a2),this[_0xce47e0(0xe6)]=![],this[_0xce47e0(0xcb)](_0xce47e0(0xb5),{'error':_0xce47e0(0xed)}),this[_0xce47e0(0xc3)]&&(this[_0xce47e0(0xc3)][_0xce47e0(0xae)](),this[_0xce47e0(0xc3)]=null),this[_0xce47e0(0x108)]();});}catch(_0x4a5a86){console[_0xa718ba(0xb5)](_0xa718ba(0xa9),_0x4a5a86),this[_0xa718ba(0xcb)](_0xa718ba(0xb5),{'error':_0x4a5a86[_0xa718ba(0xfe)]}),this[_0xa718ba(0x108)]();}}['_handleDirectSSE'](_0x20ef01,_0x405fb1){const _0x570fcd=_0x54256c;try{const _0x478eb4=JSON['parse'](_0x405fb1[_0x570fcd(0x109)]);this[_0x570fcd(0xcb)](_0x20ef01,_0x478eb4);}catch(_0x46ee9f){console[_0x570fcd(0xb5)](_0x570fcd(0x101)+_0x20ef01+_0x570fcd(0x106),_0x46ee9f);}}['_scheduleReconnect'](){const _0x2fe488=_0x54256c;this[_0x2fe488(0xb0)]&&clearTimeout(this[_0x2fe488(0xb0)]);const _0x2e073c=Math[_0x2fe488(0xaf)](0x3e8*Math[_0x2fe488(0xdf)](0x2,this[_0x2fe488(0xc4)]),0x7530);this[_0x2fe488(0xc4)]++,console[_0x2fe488(0xc5)](_0x2fe488(0xe4)+_0x2e073c+'ms'),this[_0x2fe488(0xb0)]=setTimeout(()=>{const _0x567f11=_0x2fe488;this[_0x567f11(0x10c)](this[_0x567f11(0xf0)]);},_0x2e073c);}[_0x54256c(0xd6)](_0x278254){const _0x19488e=_0x54256c;if(_0x278254===this[_0x19488e(0xf0)])return;this['userId']=_0x278254;if(this[_0x19488e(0xe9)]&&this[_0x19488e(0xb8)])this[_0x19488e(0xb8)]['postMessage']({'action':'changeFilter','userId':_0x278254});else this[_0x19488e(0xc3)]&&this[_0x19488e(0x10c)](_0x278254);}[_0x54256c(0x103)](_0x302acc,_0x4c3d22){const _0x1c8681=_0x54256c;return this['useSharedWorker']?this[_0x1c8681(0x104)](_0x302acc,_0x4c3d22):this[_0x1c8681(0xab)](_0x302acc,_0x4c3d22);}['unsubscribeTask'](_0x5319bb){const _0x9a17ba=_0x54256c;if(!_0x5319bb)return;_0x5319bb[_0x9a17ba(0x102)]==='worker'?this[_0x9a17ba(0xb9)](_0x5319bb):this[_0x9a17ba(0xc8)](_0x5319bb);}[_0x54256c(0x104)](_0x3c3e61,_0x19657e){const _0xdc2793=_0x54256c;try{this[_0xdc2793(0xcc)]();}catch(_0x2a299b){return console['error'](_0xdc2793(0xb1),_0x2a299b),this['useSharedWorker']=![],this[_0xdc2793(0xab)](_0x3c3e61,_0x19657e);}const _0x22d088=++this[_0xdc2793(0xff)],_0x4280b4={'type':_0xdc2793(0xca),'taskId':_0x3c3e61,'handlers':_0x19657e,'id':_0x22d088};return!this[_0xdc2793(0xec)][_0xdc2793(0xe7)](_0x3c3e61)&&(this[_0xdc2793(0xec)]['set'](_0x3c3e61,new Set()),this[_0xdc2793(0xb8)][_0xdc2793(0xba)]({'action':_0xdc2793(0x103),'taskId':_0x3c3e61})),this[_0xdc2793(0xec)][_0xdc2793(0xfc)](_0x3c3e61)[_0xdc2793(0xc9)](_0x4280b4),_0x4280b4;}[_0x54256c(0xb9)](_0x6a8f6a){const _0x207b43=_0x54256c,{taskId:_0xc1c2b7}=_0x6a8f6a,_0x4dcf70=this['_taskSubscriptions'][_0x207b43(0xfc)](_0xc1c2b7);if(_0x4dcf70){_0x4dcf70[_0x207b43(0xbd)](_0x6a8f6a);if(_0x4dcf70[_0x207b43(0xf5)]===0x0){this[_0x207b43(0xec)][_0x207b43(0xbd)](_0xc1c2b7);try{this[_0x207b43(0xb8)]&&this[_0x207b43(0xb8)][_0x207b43(0xba)]({'action':_0x207b43(0xb6),'taskId':_0xc1c2b7});}catch(_0x40a902){}}}}[_0x54256c(0xab)](_0xb17acd,_0x115e28){const _0x407272=_0x54256c,_0x554e1f=++this['_taskSubIdCounter'],_0x484804=new EventSource('/tasks/'+_0xb17acd+'/stream'),_0x399671={'type':_0x407272(0xb7),'taskId':_0xb17acd,'handlers':_0x115e28,'id':_0x554e1f,'eventSource':_0x484804};!this[_0x407272(0xec)][_0x407272(0xe7)](_0xb17acd)&&this['_taskSubscriptions'][_0x407272(0xd7)](_0xb17acd,new Set());this['_taskSubscriptions']['get'](_0xb17acd)[_0x407272(0xc9)](_0x399671);for(const _0x27ac04 of TASK_STREAM_EVENTS){const _0x3a99cc=eventTypeToHandler(_0x27ac04);_0x484804[_0x407272(0xde)](_0x27ac04,_0x2275b1=>{const _0x1f3485=_0x407272;if(_0x115e28[_0x3a99cc])try{const _0x5557d2=JSON[_0x1f3485(0xe5)](_0x2275b1[_0x1f3485(0x109)]);_0x115e28[_0x3a99cc](_0x5557d2);}catch(_0x479f39){console[_0x1f3485(0xb5)](_0x1f3485(0xf9)+_0x27ac04+':',_0x479f39);}});}return _0x484804[_0x407272(0xde)]('open',()=>{const _0xa164cd=_0x407272;if(_0x115e28[_0xa164cd(0x107)])_0x115e28[_0xa164cd(0x107)]();}),_0x484804[_0x407272(0xde)](_0x407272(0xb5),()=>{const _0x23b00c=_0x407272;if(_0x115e28[_0x23b00c(0xd5)])_0x115e28['onError']({'error':_0x23b00c(0xed)});}),_0x399671;}[_0x54256c(0xc8)](_0x41d76d){const _0x159d63=_0x54256c;_0x41d76d['eventSource']&&(_0x41d76d[_0x159d63(0xc3)][_0x159d63(0xae)](),_0x41d76d[_0x159d63(0xc3)]=null);const _0x14d685=this[_0x159d63(0xec)][_0x159d63(0xfc)](_0x41d76d['taskId']);_0x14d685&&(_0x14d685['delete'](_0x41d76d),_0x14d685[_0x159d63(0xf5)]===0x0&&this[_0x159d63(0xec)]['delete'](_0x41d76d[_0x159d63(0x10e)]));}[_0x54256c(0xd2)](){const _0x103717=_0x54256c;this['reconnectTimeout']&&(clearTimeout(this[_0x103717(0xb0)]),this[_0x103717(0xb0)]=null);this['_taskSubscriptions'][_0x103717(0xd0)]((_0x4e5289,_0x46a3a8)=>{const _0x47cdaa=_0x103717;_0x4e5289[_0x47cdaa(0xd0)](_0x20b144=>{const _0x525b99=_0x47cdaa;_0x20b144[_0x525b99(0x102)]===_0x525b99(0xb7)&&_0x20b144[_0x525b99(0xc3)]&&_0x20b144['eventSource'][_0x525b99(0xae)]();});}),this[_0x103717(0xec)][_0x103717(0xbb)]();if(this['useSharedWorker']&&this[_0x103717(0xb8)])try{this[_0x103717(0xb8)][_0x103717(0xba)]({'action':_0x103717(0xd2)});}catch(_0x965108){}this['eventSource']&&(this[_0x103717(0xc3)][_0x103717(0xae)](),this['eventSource']=null),this[_0x103717(0xe6)]=![];}[_0x54256c(0xd3)](){const _0x3fd7e6=_0x54256c;return this[_0x3fd7e6(0xe6)];}['isUsingSharedWorker'](){const _0x3f5dfc=_0x54256c;return this[_0x3f5dfc(0xe9)];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
@@ -1 +1 @@
1
- const _0x14897a=_0x44ba;(function(_0x2bfa3c,_0x53d20f){const _0x2d7f36=_0x44ba,_0x2d9358=_0x2bfa3c();while(!![]){try{const _0x5db877=-parseInt(_0x2d7f36(0x1ca))/0x1*(-parseInt(_0x2d7f36(0x1aa))/0x2)+-parseInt(_0x2d7f36(0x1d6))/0x3+parseInt(_0x2d7f36(0x19c))/0x4+parseInt(_0x2d7f36(0x1a0))/0x5*(-parseInt(_0x2d7f36(0x19b))/0x6)+parseInt(_0x2d7f36(0x1a7))/0x7*(-parseInt(_0x2d7f36(0x1ac))/0x8)+parseInt(_0x2d7f36(0x1d1))/0x9+-parseInt(_0x2d7f36(0x195))/0xa*(-parseInt(_0x2d7f36(0x196))/0xb);if(_0x5db877===_0x53d20f)break;else _0x2d9358['push'](_0x2d9358['shift']());}catch(_0x284d3d){_0x2d9358['push'](_0x2d9358['shift']());}}}(_0x5d21,0x24468));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x14897a(0x1cd),_0x14897a(0x1c8),_0x14897a(0x1ab),_0x14897a(0x1c4),_0x14897a(0x19e),_0x14897a(0x192),_0x14897a(0x1c7)];function _0x44ba(_0x2b8487,_0x28f095){_0x2b8487=_0x2b8487-0x18f;const _0x5d2124=_0x5d21();let _0x44ba1b=_0x5d2124[_0x2b8487];if(_0x44ba['jXIYMi']===undefined){var _0x390043=function(_0x12a549){const _0x1679ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x63a7cb='',_0x20ab29='';for(let _0x3829f4=0x0,_0x306f9f,_0x323822,_0x2b7471=0x0;_0x323822=_0x12a549['charAt'](_0x2b7471++);~_0x323822&&(_0x306f9f=_0x3829f4%0x4?_0x306f9f*0x40+_0x323822:_0x323822,_0x3829f4++%0x4)?_0x63a7cb+=String['fromCharCode'](0xff&_0x306f9f>>(-0x2*_0x3829f4&0x6)):0x0){_0x323822=_0x1679ad['indexOf'](_0x323822);}for(let _0x268fdb=0x0,_0x2066e0=_0x63a7cb['length'];_0x268fdb<_0x2066e0;_0x268fdb++){_0x20ab29+='%'+('00'+_0x63a7cb['charCodeAt'](_0x268fdb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x20ab29);};_0x44ba['qWkAap']=_0x390043,_0x44ba['PqeSUQ']={},_0x44ba['jXIYMi']=!![];}const _0x50f282=_0x5d2124[0x0],_0x1c0526=_0x2b8487+_0x50f282,_0x76a3e8=_0x44ba['PqeSUQ'][_0x1c0526];return!_0x76a3e8?(_0x44ba1b=_0x44ba['qWkAap'](_0x44ba1b),_0x44ba['PqeSUQ'][_0x1c0526]=_0x44ba1b):_0x44ba1b=_0x76a3e8,_0x44ba1b;}function connect(_0x63a7cb){const _0x35ce2a=_0x14897a;eventSource&&currentUserId!==_0x63a7cb&&(eventSource[_0x35ce2a(0x1bd)](),eventSource=null);if(eventSource&&eventSource[_0x35ce2a(0x1a1)]!==EventSource['CLOSED'])return;currentUserId=_0x63a7cb;const _0x20ab29=_0x63a7cb&&_0x63a7cb!=='me'?'?userId='+_0x63a7cb:'';try{eventSource=new EventSource(_0x35ce2a(0x1c9)+_0x20ab29),eventSource['addEventListener']('snapshot',_0x3829f4=>{const _0x472403=_0x35ce2a;broadcast({'type':_0x472403(0x1b7),'data':_0x3829f4[_0x472403(0x1d8)]}),reconnectAttempts=0x0;}),eventSource['addEventListener'](_0x35ce2a(0x1cd),_0x306f9f=>{const _0x820d3c=_0x35ce2a;broadcast({'type':_0x820d3c(0x1cd),'data':_0x306f9f['data']});}),eventSource[_0x35ce2a(0x1b0)](_0x35ce2a(0x1a9),_0x323822=>{const _0x507846=_0x35ce2a;broadcast({'type':_0x507846(0x1a9),'data':_0x323822[_0x507846(0x1d8)]});}),eventSource['addEventListener']('new-task',_0x2b7471=>{const _0x13748f=_0x35ce2a;broadcast({'type':_0x13748f(0x1b2),'data':_0x2b7471[_0x13748f(0x1d8)]});}),eventSource['addEventListener'](_0x35ce2a(0x1c5),_0x268fdb=>{const _0x13f5db=_0x35ce2a;broadcast({'type':'queue-position','data':_0x268fdb[_0x13f5db(0x1d8)]});}),eventSource[_0x35ce2a(0x1b0)](_0x35ce2a(0x19d),()=>{broadcast({'type':'connected'}),reconnectAttempts=0x0;}),eventSource[_0x35ce2a(0x1b0)]('error',_0x2066e0=>{const _0x534851=_0x35ce2a;console['error'](_0x534851(0x19a),_0x2066e0),broadcast({'type':'error','error':_0x534851(0x1cc)}),eventSource&&(eventSource['close'](),eventSource=null),scheduleReconnect();});}catch(_0xf66ff0){console[_0x35ce2a(0x1a3)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0xf66ff0),broadcast({'type':_0x35ce2a(0x1a3),'error':_0xf66ff0[_0x35ce2a(0x1ae)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x37499c=_0x14897a;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports['size']===0x0)return;const _0x3beaf2=Math[_0x37499c(0x1a8)](0x3e8*Math[_0x37499c(0x198)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x37499c(0x1be)](_0x37499c(0x1a5)+_0x3beaf2+_0x37499c(0x1b3)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0xbe03ae=_0x37499c;ports[_0xbe03ae(0x1d7)]>0x0&&connect(currentUserId);},_0x3beaf2);}function broadcast(_0x5b4b14){const _0x49e2e5=_0x14897a,_0x2ce1ce=[];ports['forEach'](_0x36d215=>{const _0x2f9a1d=_0x44ba;try{_0x36d215[_0x2f9a1d(0x18f)](_0x5b4b14);}catch(_0x34d7ac){console[_0x2f9a1d(0x1bc)](_0x2f9a1d(0x193),_0x34d7ac),_0x2ce1ce[_0x2f9a1d(0x190)](_0x36d215);}}),_0x2ce1ce[_0x49e2e5(0x1ce)]>0x0&&cleanUpDeadPorts(_0x2ce1ce),ports[_0x49e2e5(0x1d7)]===0x0&&eventSource&&(console['log'](_0x49e2e5(0x1c6)),eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x421bfc,_0x33bdab){const _0x5b0c84=_0x14897a;let _0x9aaa04=taskStreams[_0x5b0c84(0x1b5)](_0x33bdab);!_0x9aaa04&&(_0x9aaa04={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x5b0c84(0x1cf)](_0x33bdab,_0x9aaa04));_0x9aaa04[_0x5b0c84(0x194)][_0x5b0c84(0x1d4)](_0x421bfc);if(!_0x9aaa04['eventSource']||_0x9aaa04['eventSource']['readyState']===EventSource[_0x5b0c84(0x1ba)])connectTaskStream(_0x33bdab);else{if(_0x9aaa04[_0x5b0c84(0x1b1)][_0x5b0c84(0x1a1)]===EventSource[_0x5b0c84(0x191)])try{_0x421bfc[_0x5b0c84(0x18f)]({'type':_0x5b0c84(0x1bf),'taskId':_0x33bdab});}catch(_0x26d367){}}}function unsubscribeTask(_0x374063,_0x508fe2){const _0x4bb8e6=_0x14897a,_0x489bda=taskStreams['get'](_0x508fe2);if(!_0x489bda)return;_0x489bda[_0x4bb8e6(0x194)]['delete'](_0x374063),_0x489bda[_0x4bb8e6(0x194)]['size']===0x0&&deferredCloseTaskStream(_0x508fe2);}function connectTaskStream(_0x2e57fe){const _0x253f1e=_0x14897a,_0x3b25d0=taskStreams[_0x253f1e(0x1b5)](_0x2e57fe);if(!_0x3b25d0)return;_0x3b25d0[_0x253f1e(0x1b1)]&&(_0x3b25d0[_0x253f1e(0x1b1)][_0x253f1e(0x1bd)](),_0x3b25d0[_0x253f1e(0x1b1)]=null);try{_0x3b25d0['eventSource']=new EventSource(_0x253f1e(0x1c3)+_0x2e57fe+'/stream');for(const _0xd4422c of TASK_STREAM_EVENTS){_0x3b25d0[_0x253f1e(0x1b1)][_0x253f1e(0x1b0)](_0xd4422c,_0x59dd98=>{const _0x27ac97=_0x253f1e;broadcastToTask(_0x2e57fe,_0x27ac97(0x1af)+_0xd4422c,_0x59dd98[_0x27ac97(0x1d8)]),_0x3b25d0['reconnectAttempts']=0x0;});}_0x3b25d0[_0x253f1e(0x1b1)][_0x253f1e(0x1b0)](_0x253f1e(0x19d),()=>{const _0x2e6e0e=_0x253f1e;broadcastToTask(_0x2e57fe,'task:connected','{}'),_0x3b25d0[_0x2e6e0e(0x1b8)]=0x0;}),_0x3b25d0['eventSource']['addEventListener'](_0x253f1e(0x1a3),()=>{const _0x11e7c7=_0x253f1e;broadcastToTask(_0x2e57fe,_0x11e7c7(0x1b6),JSON['stringify']({'error':_0x11e7c7(0x1cc)})),_0x3b25d0['eventSource']&&(_0x3b25d0[_0x11e7c7(0x1b1)]['close'](),_0x3b25d0[_0x11e7c7(0x1b1)]=null),scheduleTaskReconnect(_0x2e57fe);});}catch(_0x34a140){console[_0x253f1e(0x1a3)](_0x253f1e(0x1bb)+_0x2e57fe+':',_0x34a140),broadcastToTask(_0x2e57fe,'task:error',JSON[_0x253f1e(0x1d2)]({'error':_0x34a140['message']})),scheduleTaskReconnect(_0x2e57fe);}}function broadcastToTask(_0x1a9d15,_0x496e55,_0x47fc9e){const _0x36e847=_0x14897a,_0x1c9ec=taskStreams['get'](_0x1a9d15);if(!_0x1c9ec)return;const _0x1462f5=[];_0x1c9ec['subscribedPorts'][_0x36e847(0x1d3)](_0x124145=>{const _0x432761=_0x36e847;try{_0x124145['postMessage']({'type':_0x496e55,'taskId':_0x1a9d15,'data':_0x47fc9e});}catch(_0x220863){_0x1462f5[_0x432761(0x190)](_0x124145);}}),_0x1462f5['length']>0x0&&(_0x1462f5[_0x36e847(0x1d3)](_0x50db5a=>_0x1c9ec[_0x36e847(0x194)][_0x36e847(0x1d0)](_0x50db5a)),cleanUpDeadPorts(_0x1462f5),_0x1c9ec['subscribedPorts'][_0x36e847(0x1d7)]===0x0&&closeTaskStream(_0x1a9d15));}function _0x5d21(){const _0x3186c6=['y2XVC2u','Bg9N','DgfZAZPJB25Uzwn0zwq','zgLZy29UBMvJDa','B25TzxnZywDLzxjYB3i','y29UBMvJDgvK','l3rHC2TZlW','C3vTBwfYEq','CxvLDwuTCg9ZAxrPB24','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','y29TCgXLDgu','Bg9NCW','l3rHC2TZl3vWzgf0zxm','mxbSBMHcqq','y29UBMvJDa','q29UBMvJDgLVBIbLCNjVCG','ywn0AxzPDhK','BgvUz3rO','C2v0','zgvSzxrL','mti2oty2nMH4qKLVwa','C3rYAw5NAwz5','zM9YrwfJAa','ywrK','AgfZ','nZCYmJe1wKTSA1L5','C2L6zq','zgf0yq','Cg9ZDe1LC3nHz2u','ChvZAa','t1bftG','yxbWlxnLCNzLCI1ZDgf0Dxm','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','C3vIC2nYAwjLzfbVCNrZ','mtq0nJe0mg5zANzpyW','mtf5EfjOq3O','y2HHBMDLrMLSDgvY','Cg93','C3vIC2nYAwjLvgfZAW','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','mtHrvhbsEuS','otiYoty0rM9KAvfW','B3bLBG','y2HHBMDLzc1MAwXLCW','igLUia','mJi3mtiWB1LnvfPv','CMvHzhLtDgf0zq','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','zxjYB3i','CMvJB25Uzwn0vgLTzw91Da','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','mtaZmZL5rfLWyLK','BwLU','C3rHDhvZ','mZuWmde4r2zsCgnf','Bwv0ywrHDge','oda4uxPNswfn','C3rHCNq','BwvZC2fNzq','DgfZAZO','ywrKrxzLBNrmAxn0zw5LCG','zxzLBNrtB3vYy2u','BMv3lxrHC2S','BxmGkgf0DgvTChqG','Cg9YDhm','z2v0','DgfZAZPLCNjVCG','C25HChnOB3q','CMvJB25Uzwn0qxr0zw1WDhm','B25JB25Uzwn0','q0Xpu0ve','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','D2fYBG'];_0x5d21=function(){return _0x3186c6;};return _0x5d21();}function closeTaskStream(_0x21fce1){const _0xb8afc2=_0x14897a,_0x48bd5d=taskStreams[_0xb8afc2(0x1b5)](_0x21fce1);if(!_0x48bd5d)return;_0x48bd5d[_0xb8afc2(0x1b1)]&&_0x48bd5d[_0xb8afc2(0x1b1)]['close'](),_0x48bd5d[_0xb8afc2(0x1a4)]&&clearTimeout(_0x48bd5d[_0xb8afc2(0x1a4)]),taskStreams[_0xb8afc2(0x1d0)](_0x21fce1);}function deferredCloseTaskStream(_0x20b72c){setTimeout(()=>{const _0x211141=_0x44ba,_0x5888fc=taskStreams['get'](_0x20b72c);_0x5888fc&&_0x5888fc[_0x211141(0x194)][_0x211141(0x1d7)]===0x0&&closeTaskStream(_0x20b72c);},0x0);}function scheduleTaskReconnect(_0x280589){const _0xf6661c=_0x14897a,_0x14bdc6=taskStreams[_0xf6661c(0x1b5)](_0x280589);if(!_0x14bdc6||_0x14bdc6[_0xf6661c(0x194)][_0xf6661c(0x1d7)]===0x0)return;_0x14bdc6[_0xf6661c(0x1a4)]&&clearTimeout(_0x14bdc6[_0xf6661c(0x1a4)]);const _0x3508f7=Math['min'](0x3e8*Math[_0xf6661c(0x198)](0x2,_0x14bdc6[_0xf6661c(0x1b8)]),MAX_RECONNECT_DELAY);_0x14bdc6['reconnectAttempts']++,console[_0xf6661c(0x1be)](_0xf6661c(0x1a2)+_0x280589+_0xf6661c(0x19f)+_0x3508f7+'ms'),_0x14bdc6[_0xf6661c(0x1a4)]=setTimeout(()=>{const _0x408885=_0xf6661c;_0x14bdc6[_0x408885(0x194)][_0x408885(0x1d7)]>0x0&&connectTaskStream(_0x280589);},_0x3508f7);}function cleanUpDeadPorts(_0x38bfab){const _0x383a85=_0x14897a;for(const _0x117b3a of _0x38bfab){ports[_0x383a85(0x1d0)](_0x117b3a),taskStreams['forEach']((_0x459697,_0x2fe1f0)=>{const _0x403dd1=_0x383a85;_0x459697[_0x403dd1(0x194)][_0x403dd1(0x1d0)](_0x117b3a),_0x459697['subscribedPorts'][_0x403dd1(0x1d7)]===0x0&&closeTaskStream(_0x2fe1f0);});}}function removePortFromAllTasks(_0x4dc981){taskStreams['forEach']((_0x541931,_0xa19b99)=>{const _0x3f00df=_0x44ba;_0x541931[_0x3f00df(0x194)][_0x3f00df(0x1d5)](_0x4dc981)&&(_0x541931[_0x3f00df(0x194)]['delete'](_0x4dc981),_0x541931[_0x3f00df(0x194)]['size']===0x0&&closeTaskStream(_0xa19b99));});}self[_0x14897a(0x1b9)]=function(_0x370687){const _0xebc464=_0x14897a,_0x349d93=_0x370687[_0xebc464(0x1b4)][0x0];ports[_0xebc464(0x1d4)](_0x349d93),console['log']('[SSE\x20Worker]\x20New\x20port\x20connected.\x20Total\x20ports:\x20'+ports[_0xebc464(0x1d7)]),_0x349d93['onmessage']=function(_0x1679ec){const _0x83b2e4=_0xebc464,{action:_0x125f7c,userId:_0x12dc79,taskId:_0x298c4c}=_0x1679ec[_0x83b2e4(0x1d8)];switch(_0x125f7c){case _0x83b2e4(0x1cb):connect(_0x12dc79);eventSource&&eventSource[_0x83b2e4(0x1a1)]===EventSource['OPEN']&&_0x349d93[_0x83b2e4(0x18f)]({'type':_0x83b2e4(0x1c2)});break;case _0x83b2e4(0x1c0):ports['delete'](_0x349d93),removePortFromAllTasks(_0x349d93),console[_0x83b2e4(0x1be)]('[SSE\x20Worker]\x20Port\x20disconnected.\x20Total\x20ports:\x20'+ports['size']);ports[_0x83b2e4(0x1d7)]===0x0&&eventSource&&(eventSource[_0x83b2e4(0x1bd)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x83b2e4(0x197):_0x12dc79!==currentUserId&&connect(_0x12dc79);break;case _0x83b2e4(0x199):subscribeTask(_0x349d93,_0x298c4c);break;case'unsubscribeTask':unsubscribeTask(_0x349d93,_0x298c4c);break;default:console[_0x83b2e4(0x1bc)]('[SSE\x20Worker]\x20Unknown\x20action:',_0x125f7c);}},_0x349d93[_0xebc464(0x1c1)]=function(_0xd14cc1){const _0x59bb1e=_0xebc464;console['error'](_0x59bb1e(0x1a6),_0xd14cc1),ports[_0x59bb1e(0x1d0)](_0x349d93),removePortFromAllTasks(_0x349d93);},_0x349d93[_0xebc464(0x1ad)]();};
1
+ const _0x3faaff=_0x2ded;(function(_0x46c9ca,_0x32eeef){const _0x3fc6ea=_0x2ded,_0x392546=_0x46c9ca();while(!![]){try{const _0x185bb0=-parseInt(_0x3fc6ea(0x184))/0x1+-parseInt(_0x3fc6ea(0x168))/0x2+parseInt(_0x3fc6ea(0x18a))/0x3*(-parseInt(_0x3fc6ea(0x1ab))/0x4)+parseInt(_0x3fc6ea(0x1af))/0x5*(-parseInt(_0x3fc6ea(0x175))/0x6)+-parseInt(_0x3fc6ea(0x19f))/0x7*(parseInt(_0x3fc6ea(0x173))/0x8)+-parseInt(_0x3fc6ea(0x17e))/0x9*(-parseInt(_0x3fc6ea(0x169))/0xa)+parseInt(_0x3fc6ea(0x17a))/0xb*(parseInt(_0x3fc6ea(0x1ad))/0xc);if(_0x185bb0===_0x32eeef)break;else _0x392546['push'](_0x392546['shift']());}catch(_0x4436c9){_0x392546['push'](_0x392546['shift']());}}}(_0x1027,0x6cf7b));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;function _0x1027(){const _0x53c478=['yxbWlxnLCNzLCI1ZDgf0Dxm','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','mtHszxbJs2m','BgvUz3rO','C25HChnOB3q','zxzLBNrtB3vYy2u','BxmGkgf0DgvTChqG','C3rHCNq','mtaWmdyYBejZz2Lg','ywrKrxzLBNrmAxn0zw5LCG','DgfZAZPLCNjVCG','l3rHC2TZl3vWzgf0zxm','C3vIC2nYAwjLzfbVCNrZ','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','mJq5u0nwtMzW','zgf0yq','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','D2fYBG','B3bLBG','l3n0CMvHBq','zM9YrwfJAa','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','DgfZAZPJB25Uzwn0zwq','Dw5ZDwjZy3jPyMvuyxnR','Bg9N','l3rHC2TZlW','y2HHBMDLrMLSDgvY','CMvJB25Uzwn0qxr0zw1WDhm','q29UBMvJDgLVBIbLCNjVCG','igLUia','B25TzxnZywDLzxjYB3i','C3rHDhvZ','Cg9ZDe1LC3nHz2u','CxvLDwuTCg9ZAxrPB24','nZDYs0TrA0O','C2v0','CMvHzhLtDgf0zq','y2XVC2u','DgfZAZO','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','z2v0','B25TzxnZywDL','q0Xpu0ve','ChvZAa','zxjYB3i','p3vZzxjjzd0','nJC5nMnizwLADq','BMv3lxrHC2S','mtm1mdeYqLvMy3jv','Bwv0ywrHDge','mJyZntq5nvvszNrlDW','C3vIC2nYAwjLvgfZAW','BwLU','odC3ntG4u2n4whPd','mZC0mda5mhPxA0DsyG','Cg93','AgfZ','y29UBMvJDgvK','y29UBMvJDa','ywn0AxzPDhK','B25JB25Uzwn0','zgvSzxrL','C3rYAw5NAwz5','ywrK','ndm4mdCYvwvXtezK','CMvJB25Uzwn0vgLTzw91Da','nNvyzNjtAa','C2L6zq','BwvZC2fNzq','t1bftG','y29TCgXLDgu','mtq3ne9myvfdrG','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa'];_0x1027=function(){return _0x53c478;};return _0x1027();}const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x3faaff(0x16e),'logs',_0x3faaff(0x1ae),'summary','changed-files',_0x3faaff(0x17c),_0x3faaff(0x179)];function connect(_0x2506ad){const _0x684c7c=_0x3faaff;eventSource&&currentUserId!==_0x2506ad&&(eventSource[_0x684c7c(0x1a2)](),eventSource=null);if(eventSource&&eventSource[_0x684c7c(0x1a1)]!==EventSource[_0x684c7c(0x1a7)])return;currentUserId=_0x2506ad;const _0x3b8fab=_0x2506ad&&_0x2506ad!=='me'?_0x684c7c(0x1aa)+_0x2506ad:'';try{eventSource=new EventSource(_0x684c7c(0x187)+_0x3b8fab),eventSource[_0x684c7c(0x185)]('snapshot',_0x1ebc7e=>{const _0x1ccc93=_0x684c7c;broadcast({'type':_0x1ccc93(0x180),'data':_0x1ebc7e[_0x1ccc93(0x18b)]}),reconnectAttempts=0x0;}),eventSource[_0x684c7c(0x185)](_0x684c7c(0x16e),_0x369d86=>{const _0x4101c9=_0x684c7c;broadcast({'type':_0x4101c9(0x16e),'data':_0x369d86[_0x4101c9(0x18b)]});}),eventSource[_0x684c7c(0x185)](_0x684c7c(0x19c),_0x2767d0=>{const _0x15b9c8=_0x684c7c;broadcast({'type':_0x15b9c8(0x19c),'data':_0x2767d0[_0x15b9c8(0x18b)]});}),eventSource[_0x684c7c(0x185)](_0x684c7c(0x1ac),_0x87d279=>{const _0x208152=_0x684c7c;broadcast({'type':_0x208152(0x1ac),'data':_0x87d279[_0x208152(0x18b)]});}),eventSource['addEventListener']('queue-position',_0x1b1390=>{const _0x180e33=_0x684c7c;broadcast({'type':_0x180e33(0x19e),'data':_0x1b1390['data']});}),eventSource['addEventListener'](_0x684c7c(0x18f),()=>{const _0x5aa3fb=_0x684c7c;broadcast({'type':_0x5aa3fb(0x16c)}),reconnectAttempts=0x0;}),eventSource['addEventListener']('error',_0x1aa7d7=>{const _0x3ec9af=_0x684c7c;console[_0x3ec9af(0x1a9)](_0x3ec9af(0x192),_0x1aa7d7),broadcast({'type':_0x3ec9af(0x1a9),'error':_0x3ec9af(0x199)}),eventSource&&(eventSource[_0x3ec9af(0x1a2)](),eventSource=null),scheduleReconnect();});}catch(_0x481365){console[_0x684c7c(0x1a9)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0x481365),broadcast({'type':_0x684c7c(0x1a9),'error':_0x481365[_0x684c7c(0x177)]}),scheduleReconnect();}}function scheduleReconnect(){const _0xb6d14=_0x3faaff;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports['size']===0x0)return;const _0x65e8b1=Math[_0xb6d14(0x1b1)](0x3e8*Math[_0xb6d14(0x16a)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0xb6d14(0x195)](_0xb6d14(0x1a4)+_0x65e8b1+_0xb6d14(0x182)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{ports['size']>0x0&&connect(currentUserId);},_0x65e8b1);}function broadcast(_0x147386){const _0x970339=_0x3faaff,_0x3b4b76=[];ports[_0x970339(0x191)](_0x31380f=>{const _0x14a576=_0x970339;try{_0x31380f[_0x14a576(0x19d)](_0x147386);}catch(_0x117035){console[_0x14a576(0x18e)]('[SSE\x20Worker]\x20Failed\x20to\x20send\x20to\x20port,\x20removing:',_0x117035),_0x3b4b76[_0x14a576(0x1a8)](_0x31380f);}}),_0x3b4b76[_0x970339(0x17f)]>0x0&&cleanUpDeadPorts(_0x3b4b76),ports['size']===0x0&&eventSource&&(console[_0x970339(0x195)](_0x970339(0x189)),eventSource[_0x970339(0x1a2)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0xa2191b,_0x77fc50){const _0x15aea7=_0x3faaff;let _0x30e01c=taskStreams[_0x15aea7(0x1a5)](_0x77fc50);!_0x30e01c&&(_0x30e01c={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x15aea7(0x1a0)](_0x77fc50,_0x30e01c));_0x30e01c['subscribedPorts'][_0x15aea7(0x172)](_0xa2191b);if(!_0x30e01c[_0x15aea7(0x181)]||_0x30e01c[_0x15aea7(0x181)][_0x15aea7(0x1a1)]===EventSource[_0x15aea7(0x1a7)])connectTaskStream(_0x77fc50);else{if(_0x30e01c['eventSource'][_0x15aea7(0x1a1)]===EventSource[_0x15aea7(0x178)])try{_0xa2191b[_0x15aea7(0x19d)]({'type':_0x15aea7(0x193),'taskId':_0x77fc50});}catch(_0x2a5fff){}}}function unsubscribeTask(_0x5b0d0d,_0x4c13f1){const _0x5b219e=_0x3faaff,_0x534735=taskStreams[_0x5b219e(0x1a5)](_0x4c13f1);if(!_0x534735)return;_0x534735[_0x5b219e(0x188)][_0x5b219e(0x170)](_0x5b0d0d),_0x534735[_0x5b219e(0x188)][_0x5b219e(0x176)]===0x0&&deferredCloseTaskStream(_0x4c13f1);}function connectTaskStream(_0x21053c){const _0x5e6a69=_0x3faaff,_0x3951ba=taskStreams['get'](_0x21053c);if(!_0x3951ba)return;_0x3951ba[_0x5e6a69(0x181)]&&(_0x3951ba[_0x5e6a69(0x181)]['close'](),_0x3951ba[_0x5e6a69(0x181)]=null);try{_0x3951ba[_0x5e6a69(0x181)]=new EventSource(_0x5e6a69(0x196)+_0x21053c+_0x5e6a69(0x190));for(const _0x4c0812 of TASK_STREAM_EVENTS){_0x3951ba[_0x5e6a69(0x181)][_0x5e6a69(0x185)](_0x4c0812,_0x32d529=>{const _0xf9e2a8=_0x5e6a69;broadcastToTask(_0x21053c,_0xf9e2a8(0x1a3)+_0x4c0812,_0x32d529[_0xf9e2a8(0x18b)]),_0x3951ba[_0xf9e2a8(0x198)]=0x0;});}_0x3951ba[_0x5e6a69(0x181)][_0x5e6a69(0x185)](_0x5e6a69(0x18f),()=>{const _0x140d23=_0x5e6a69;broadcastToTask(_0x21053c,_0x140d23(0x193),'{}'),_0x3951ba[_0x140d23(0x198)]=0x0;}),_0x3951ba[_0x5e6a69(0x181)][_0x5e6a69(0x185)]('error',()=>{const _0x18262d=_0x5e6a69;broadcastToTask(_0x21053c,_0x18262d(0x186),JSON['stringify']({'error':_0x18262d(0x199)})),_0x3951ba[_0x18262d(0x181)]&&(_0x3951ba[_0x18262d(0x181)][_0x18262d(0x1a2)](),_0x3951ba[_0x18262d(0x181)]=null),scheduleTaskReconnect(_0x21053c);});}catch(_0xca1066){console[_0x5e6a69(0x1a9)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x21053c+':',_0xca1066),broadcastToTask(_0x21053c,_0x5e6a69(0x186),JSON[_0x5e6a69(0x171)]({'error':_0xca1066['message']})),scheduleTaskReconnect(_0x21053c);}}function broadcastToTask(_0x10a178,_0x381b97,_0x377618){const _0x4f8846=_0x3faaff,_0x4ee135=taskStreams['get'](_0x10a178);if(!_0x4ee135)return;const _0x5e8aad=[];_0x4ee135[_0x4f8846(0x188)][_0x4f8846(0x191)](_0x4bb650=>{const _0xf5dcda=_0x4f8846;try{_0x4bb650[_0xf5dcda(0x19d)]({'type':_0x381b97,'taskId':_0x10a178,'data':_0x377618});}catch(_0x46ba63){_0x5e8aad[_0xf5dcda(0x1a8)](_0x4bb650);}}),_0x5e8aad[_0x4f8846(0x17f)]>0x0&&(_0x5e8aad[_0x4f8846(0x191)](_0x317f90=>_0x4ee135[_0x4f8846(0x188)][_0x4f8846(0x170)](_0x317f90)),cleanUpDeadPorts(_0x5e8aad),_0x4ee135['subscribedPorts']['size']===0x0&&closeTaskStream(_0x10a178));}function closeTaskStream(_0x316924){const _0x12dd79=_0x3faaff,_0x40fe42=taskStreams[_0x12dd79(0x1a5)](_0x316924);if(!_0x40fe42)return;_0x40fe42[_0x12dd79(0x181)]&&_0x40fe42[_0x12dd79(0x181)][_0x12dd79(0x1a2)](),_0x40fe42[_0x12dd79(0x174)]&&clearTimeout(_0x40fe42['reconnectTimeout']),taskStreams[_0x12dd79(0x170)](_0x316924);}function _0x2ded(_0x373d25,_0x3a21c0){_0x373d25=_0x373d25-0x168;const _0x1027c9=_0x1027();let _0x2ded62=_0x1027c9[_0x373d25];if(_0x2ded['vokUpi']===undefined){var _0x47b9bf=function(_0x1e7ac3){const _0x3a8131='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2506ad='',_0x3b8fab='';for(let _0x1ebc7e=0x0,_0x369d86,_0x2767d0,_0x87d279=0x0;_0x2767d0=_0x1e7ac3['charAt'](_0x87d279++);~_0x2767d0&&(_0x369d86=_0x1ebc7e%0x4?_0x369d86*0x40+_0x2767d0:_0x2767d0,_0x1ebc7e++%0x4)?_0x2506ad+=String['fromCharCode'](0xff&_0x369d86>>(-0x2*_0x1ebc7e&0x6)):0x0){_0x2767d0=_0x3a8131['indexOf'](_0x2767d0);}for(let _0x1b1390=0x0,_0x1aa7d7=_0x2506ad['length'];_0x1b1390<_0x1aa7d7;_0x1b1390++){_0x3b8fab+='%'+('00'+_0x2506ad['charCodeAt'](_0x1b1390)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b8fab);};_0x2ded['YagJlh']=_0x47b9bf,_0x2ded['DtZYaC']={},_0x2ded['vokUpi']=!![];}const _0x273ce3=_0x1027c9[0x0],_0x360b24=_0x373d25+_0x273ce3,_0x33fc0f=_0x2ded['DtZYaC'][_0x360b24];return!_0x33fc0f?(_0x2ded62=_0x2ded['YagJlh'](_0x2ded62),_0x2ded['DtZYaC'][_0x360b24]=_0x2ded62):_0x2ded62=_0x33fc0f,_0x2ded62;}function deferredCloseTaskStream(_0x574495){setTimeout(()=>{const _0x6aeb29=_0x2ded,_0x4a967d=taskStreams[_0x6aeb29(0x1a5)](_0x574495);_0x4a967d&&_0x4a967d[_0x6aeb29(0x188)][_0x6aeb29(0x176)]===0x0&&closeTaskStream(_0x574495);},0x0);}function scheduleTaskReconnect(_0x16abfa){const _0x3ee33a=_0x3faaff,_0x5eabe6=taskStreams[_0x3ee33a(0x1a5)](_0x16abfa);if(!_0x5eabe6||_0x5eabe6[_0x3ee33a(0x188)]['size']===0x0)return;_0x5eabe6[_0x3ee33a(0x174)]&&clearTimeout(_0x5eabe6[_0x3ee33a(0x174)]);const _0x36136a=Math['min'](0x3e8*Math[_0x3ee33a(0x16a)](0x2,_0x5eabe6[_0x3ee33a(0x198)]),MAX_RECONNECT_DELAY);_0x5eabe6[_0x3ee33a(0x198)]++,console[_0x3ee33a(0x195)](_0x3ee33a(0x17b)+_0x16abfa+_0x3ee33a(0x19a)+_0x36136a+'ms'),_0x5eabe6[_0x3ee33a(0x174)]=setTimeout(()=>{const _0x237e73=_0x3ee33a;_0x5eabe6[_0x237e73(0x188)][_0x237e73(0x176)]>0x0&&connectTaskStream(_0x16abfa);},_0x36136a);}function cleanUpDeadPorts(_0x41075f){const _0x4cf07c=_0x3faaff;for(const _0x6b3b50 of _0x41075f){ports[_0x4cf07c(0x170)](_0x6b3b50),taskStreams['forEach']((_0x285f2d,_0x587348)=>{const _0x125524=_0x4cf07c;_0x285f2d[_0x125524(0x188)]['delete'](_0x6b3b50),_0x285f2d[_0x125524(0x188)][_0x125524(0x176)]===0x0&&closeTaskStream(_0x587348);});}}function removePortFromAllTasks(_0x23e077){const _0x10d13f=_0x3faaff;taskStreams[_0x10d13f(0x191)]((_0x2da217,_0x1b0e54)=>{const _0x1fb3e2=_0x10d13f;_0x2da217[_0x1fb3e2(0x188)][_0x1fb3e2(0x16b)](_0x23e077)&&(_0x2da217['subscribedPorts'][_0x1fb3e2(0x170)](_0x23e077),_0x2da217[_0x1fb3e2(0x188)][_0x1fb3e2(0x176)]===0x0&&closeTaskStream(_0x1b0e54));});}self[_0x3faaff(0x16f)]=function(_0x535d6a){const _0x3e82f3=_0x3faaff,_0x548663=_0x535d6a['ports'][0x0];ports[_0x3e82f3(0x172)](_0x548663),console[_0x3e82f3(0x195)](_0x3e82f3(0x17d)+ports[_0x3e82f3(0x176)]),_0x548663[_0x3e82f3(0x1a6)]=function(_0x412955){const _0x593821=_0x3e82f3,{action:_0x115e08,userId:_0x5998d5,taskId:_0x21b7ea}=_0x412955[_0x593821(0x18b)];switch(_0x115e08){case _0x593821(0x16d):connect(_0x5998d5);eventSource&&eventSource[_0x593821(0x1a1)]===EventSource[_0x593821(0x178)]&&_0x548663[_0x593821(0x19d)]({'type':_0x593821(0x16c)});break;case'disconnect':ports['delete'](_0x548663),removePortFromAllTasks(_0x548663),console[_0x593821(0x195)]('[SSE\x20Worker]\x20Port\x20disconnected.\x20Total\x20ports:\x20'+ports[_0x593821(0x176)]);ports['size']===0x0&&eventSource&&(eventSource[_0x593821(0x1a2)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x593821(0x197):_0x5998d5!==currentUserId&&connect(_0x5998d5);break;case _0x593821(0x1b0):subscribeTask(_0x548663,_0x21b7ea);break;case _0x593821(0x194):unsubscribeTask(_0x548663,_0x21b7ea);break;default:console['warn'](_0x593821(0x18d),_0x115e08);}},_0x548663[_0x3e82f3(0x19b)]=function(_0x5b17da){const _0x12df9f=_0x3e82f3;console['error'](_0x12df9f(0x18c),_0x5b17da),ports[_0x12df9f(0x170)](_0x548663),removePortFromAllTasks(_0x548663);},_0x548663[_0x3e82f3(0x183)]();};
@@ -1771,6 +1771,7 @@ header.app-header {
1771
1771
 
1772
1772
  .status-pill.status-completed { background: rgba(46,182,125,0.12); color: var(--color-success); }
1773
1773
  .status-pill.status-running { background: rgba(244,183,64,0.16); color: var(--color-warning); }
1774
+ .status-pill.status-interrupted { background: rgba(107,114,128,0.16); color: #4b5563; }
1774
1775
  .status-pill.status-failed { background: rgba(229,83,104,0.14); color: var(--color-danger); }
1775
1776
  .status-pill.status-staged { background: rgba(139,92,246,0.14); color: #8b5cf6; }
1776
1777
  .status-pill.status-queued { background: rgba(59,130,246,0.14); color: #3b82f6; }
@@ -2192,6 +2193,7 @@ body.task-list-open .task-sticky-header {
2192
2193
 
2193
2194
  .task-tab-status.status-running,
2194
2195
  .task-tab-status.status-completed,
2196
+ .task-tab-status.status-interrupted,
2195
2197
  .task-tab-status.status-failed {
2196
2198
  background: transparent;
2197
2199
  }
@@ -2631,6 +2633,17 @@ button, .btn {
2631
2633
  background: #c73e52;
2632
2634
  }
2633
2635
 
2636
+ .btn-warning {
2637
+ background: var(--color-warning);
2638
+ color: #1f2a44;
2639
+ box-shadow: var(--shadow-soft);
2640
+ }
2641
+
2642
+ .btn-warning:hover {
2643
+ transform: translateY(-1px);
2644
+ background: #d79c22;
2645
+ }
2646
+
2634
2647
  .theme-toggle-btn {
2635
2648
  align-items: center;
2636
2649
  gap: 6px;
@@ -3238,6 +3251,11 @@ button:disabled,
3238
3251
  border-left-color: var(--color-warning);
3239
3252
  }
3240
3253
 
3254
+ .task-tile.status-interrupted {
3255
+ background: linear-gradient(135deg, rgba(107, 114, 128, 0.08) 0%, #fdfcfb 100%);
3256
+ border-left-color: #6b7280;
3257
+ }
3258
+
3241
3259
  .task-tile.status-failed {
3242
3260
  background: linear-gradient(135deg, rgba(229, 83, 104, 0.07) 0%, #fdfcfb 100%);
3243
3261
  border-left-color: var(--color-danger);
@@ -3278,6 +3296,11 @@ button:disabled,
3278
3296
  border-left-color: var(--color-warning);
3279
3297
  }
3280
3298
 
3299
+ :root[data-theme="dark"] .task-tile.status-interrupted {
3300
+ background: linear-gradient(135deg, rgba(148, 163, 184, 0.14) 0%, var(--color-surface-muted) 100%);
3301
+ border-left-color: #94a3b8;
3302
+ }
3303
+
3281
3304
  :root[data-theme="dark"] .task-tile.status-failed {
3282
3305
  background: linear-gradient(135deg, rgba(229, 83, 104, 0.12) 0%, var(--color-surface-muted) 100%);
3283
3306
  border-left-color: var(--color-danger);
@@ -3358,6 +3381,10 @@ button:disabled,
3358
3381
  color: #b8860b;
3359
3382
  animation: pulse-running 2s ease-in-out infinite;
3360
3383
  }
3384
+ .task-status-label.status-interrupted {
3385
+ background: rgba(107, 114, 128, 0.16);
3386
+ color: #4b5563;
3387
+ }
3361
3388
  .task-status-label.status-failed {
3362
3389
  background: rgba(229, 83, 104, 0.14);
3363
3390
  color: var(--color-danger);
@@ -3375,6 +3402,10 @@ button:disabled,
3375
3402
  background: rgba(244, 183, 64, 0.18);
3376
3403
  color: #f4b740;
3377
3404
  }
3405
+ :root[data-theme="dark"] .task-status-label.status-interrupted {
3406
+ background: rgba(148, 163, 184, 0.2);
3407
+ color: #cbd5e1;
3408
+ }
3378
3409
  :root[data-theme="dark"] .task-status-label.status-failed {
3379
3410
  background: rgba(229, 83, 104, 0.18);
3380
3411
  color: #f87171;
@@ -3643,6 +3674,10 @@ button:disabled,
3643
3674
  background: var(--color-success);
3644
3675
  }
3645
3676
 
3677
+ .agent-status-badge.status-interrupted {
3678
+ background: #6b7280;
3679
+ }
3680
+
3646
3681
  .agent-status-badge.status-failed {
3647
3682
  background: var(--color-danger);
3648
3683
  }
@@ -3937,6 +3972,7 @@ button:disabled,
3937
3972
 
3938
3973
  .status-completed { background: rgba(46,182,125,0.12); color: var(--color-success); }
3939
3974
  .status-running { background: rgba(244,183,64,0.16); color: var(--color-warning); }
3975
+ .status-interrupted { background: rgba(107,114,128,0.16); color: #4b5563; }
3940
3976
  .status-failed { background: rgba(229,83,104,0.14); color: var(--color-danger); }
3941
3977
  .status-staged { background: rgba(139,92,246,0.12); color: #8b5cf6; }
3942
3978
  .status-queued { background: rgba(59,130,246,0.12); color: #3b82f6; }
@@ -12402,6 +12438,143 @@ select option[value=""] {
12402
12438
  margin-top: 8px;
12403
12439
  }
12404
12440
 
12441
+ /* ============================================================
12442
+ PULL REQUEST DIALOG
12443
+ ============================================================ */
12444
+
12445
+ .profound-pr-modal {
12446
+ /* Inherits modal styles */
12447
+ }
12448
+
12449
+ .pr-title-input {
12450
+ width: 100%;
12451
+ padding: 12px;
12452
+ font-size: 14px;
12453
+ font-family: "JetBrains Mono", monospace;
12454
+ border: 1px solid var(--color-border);
12455
+ border-radius: var(--radius-medium);
12456
+ background: var(--color-background);
12457
+ color: var(--color-text);
12458
+ line-height: 1.5;
12459
+ transition: border-color 0.2s ease;
12460
+ }
12461
+
12462
+ .pr-title-input:focus {
12463
+ outline: none;
12464
+ border-color: var(--color-primary);
12465
+ }
12466
+
12467
+ .pr-title-input::placeholder {
12468
+ color: var(--color-text-muted);
12469
+ }
12470
+
12471
+ .pr-body-input {
12472
+ width: 100%;
12473
+ padding: 12px;
12474
+ font-size: 14px;
12475
+ font-family: "JetBrains Mono", monospace;
12476
+ border: 1px solid var(--color-border);
12477
+ border-radius: var(--radius-medium);
12478
+ background: var(--color-background);
12479
+ color: var(--color-text);
12480
+ line-height: 1.5;
12481
+ resize: vertical;
12482
+ min-height: 120px;
12483
+ transition: border-color 0.2s ease;
12484
+ }
12485
+
12486
+ .pr-body-input:focus {
12487
+ outline: none;
12488
+ border-color: var(--color-primary);
12489
+ }
12490
+
12491
+ .pr-body-input::placeholder {
12492
+ color: var(--color-text-muted);
12493
+ }
12494
+
12495
+ .pr-repos-list {
12496
+ display: flex;
12497
+ flex-direction: column;
12498
+ gap: 12px;
12499
+ margin-top: 8px;
12500
+ }
12501
+
12502
+ .pr-repo-selector {
12503
+ display: flex;
12504
+ align-items: center;
12505
+ gap: 10px;
12506
+ margin-bottom: 8px;
12507
+ }
12508
+
12509
+ .pr-repo-name {
12510
+ color: var(--color-text);
12511
+ font-size: 14px;
12512
+ font-weight: 500;
12513
+ white-space: nowrap;
12514
+ }
12515
+
12516
+ .pr-arrow {
12517
+ color: var(--color-text-secondary);
12518
+ font-size: 14px;
12519
+ margin: 0 4px;
12520
+ }
12521
+
12522
+ .pr-source-branch {
12523
+ color: var(--color-text-secondary);
12524
+ font-size: 14px;
12525
+ white-space: nowrap;
12526
+ }
12527
+
12528
+ .pr-base-branch {
12529
+ color: var(--color-text);
12530
+ font-size: 14px;
12531
+ white-space: nowrap;
12532
+ }
12533
+
12534
+ .pr-connections-list {
12535
+ display: flex;
12536
+ flex-direction: column;
12537
+ gap: 12px;
12538
+ margin-top: 12px;
12539
+ }
12540
+
12541
+ .pr-link {
12542
+ color: var(--color-primary);
12543
+ text-decoration: none;
12544
+ }
12545
+
12546
+ .pr-link:hover {
12547
+ text-decoration: underline;
12548
+ }
12549
+
12550
+ .pr-modal-warning {
12551
+ display: flex;
12552
+ align-items: flex-start;
12553
+ gap: 10px;
12554
+ padding: 12px;
12555
+ background: color-mix(in srgb, var(--color-warning) 10%, var(--color-bg-secondary));
12556
+ border-left: 3px solid var(--color-warning);
12557
+ border-radius: 4px;
12558
+ margin-bottom: 16px;
12559
+ }
12560
+
12561
+ .pr-modal-error {
12562
+ display: flex;
12563
+ align-items: flex-start;
12564
+ gap: 10px;
12565
+ padding: 12px;
12566
+ background: color-mix(in srgb, var(--color-error) 10%, var(--color-bg-secondary));
12567
+ border-left: 3px solid var(--color-error);
12568
+ border-radius: 4px;
12569
+ margin-bottom: 16px;
12570
+ }
12571
+
12572
+ #meta-pull-requests {
12573
+ display: flex;
12574
+ flex-wrap: wrap;
12575
+ gap: 8px;
12576
+ }
12577
+
12405
12578
  .admin-dropdown {
12406
12579
  min-width: 220px;
12407
12580
  }
@@ -14518,6 +14691,11 @@ select option[value=""] {
14518
14691
  color: var(--color-warning);
14519
14692
  }
14520
14693
 
14694
+ .timeline-status.status-interrupted {
14695
+ background: rgba(107, 114, 128, 0.16);
14696
+ color: #4b5563;
14697
+ }
14698
+
14521
14699
  .timeline-status.status-failed {
14522
14700
  background: rgba(229, 83, 104, 0.14);
14523
14701
  color: var(--color-danger);
@@ -14902,6 +15080,7 @@ select option[value=""] {
14902
15080
 
14903
15081
  .judgment-status-pill.status-completed { background: rgba(46,182,125,0.12); color: var(--color-success); }
14904
15082
  .judgment-status-pill.status-running { background: rgba(244,183,64,0.16); color: var(--color-warning); }
15083
+ .judgment-status-pill.status-interrupted { background: rgba(107,114,128,0.16); color: #4b5563; }
14905
15084
  .judgment-status-pill.status-failed { background: rgba(229,83,104,0.14); color: var(--color-danger); }
14906
15085
  .judgment-status-pill.status-staged { background: rgba(139,92,246,0.14); color: #8b5cf6; }
14907
15086
  .judgment-status-pill.status-queued { background: rgba(59,130,246,0.14); color: #3b82f6; }
@@ -16699,6 +16878,10 @@ body.task-list-open .task-list-side-trigger {
16699
16878
  background: var(--color-success);
16700
16879
  }
16701
16880
 
16881
+ .task-list-item-status.status-interrupted {
16882
+ background: #6b7280;
16883
+ }
16884
+
16702
16885
  .task-list-item-status.status-approved {
16703
16886
  background: var(--color-accent);
16704
16887
  }
@@ -18956,6 +19139,10 @@ body.task-list-open .task-list-side-trigger {
18956
19139
  color: var(--color-success);
18957
19140
  }
18958
19141
 
19142
+ .vgm-variant-status.status-interrupted {
19143
+ color: #6b7280;
19144
+ }
19145
+
18959
19146
  .vgm-variant-status.status-failed {
18960
19147
  color: var(--color-danger);
18961
19148
  }
@@ -22,7 +22,7 @@
22
22
  }
23
23
  })();
24
24
  </script>
25
- <link rel="stylesheet" href="styles.css?v=90">
25
+ <link rel="stylesheet" href="styles.css?v=91">
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=68"></script>
41
+ <script type="module" src="task.js?v=69"></script>
42
42
  <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
43
43
  </head>
44
44
  <body>
@@ -198,6 +198,12 @@
198
198
  </svg>
199
199
  <span class="option-text">Pull Latest Changes</span>
200
200
  </button>
201
+ <button class="dropdown-item" id="more-stop-container" data-action="stop-container" hidden>
202
+ <svg class="option-icon icon-stop" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
203
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
204
+ </svg>
205
+ <span class="option-text">Stop Container...</span>
206
+ </button>
201
207
  <button class="dropdown-item" id="more-delete-task" data-action="delete-task">
202
208
  <svg class="option-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
203
209
  <polyline points="3 6 5 6 21 6"></polyline>
@@ -431,8 +437,9 @@
431
437
  </button>
432
438
  </div>
433
439
  </div>
434
- <button class="btn-ghost btn-small" id="stop-task" disabled>Stop</button>
440
+ <button class="btn-warning btn-small" id="stop-task" disabled hidden>Interrupt</button>
435
441
  <button class="btn-primary btn-small" id="approve-task" disabled>Approve</button>
442
+ <button class="btn-primary btn-small" id="create-pr-task" hidden>Create Pull Request</button>
436
443
  </div>
437
444
  </div>
438
445
 
@@ -619,6 +626,10 @@
619
626
  <dt>Approved by</dt>
620
627
  <dd id="meta-approved-by">—</dd>
621
628
  </div>
629
+ <div id="meta-pull-requests-wrapper" hidden>
630
+ <dt>Pull Requests</dt>
631
+ <dd id="meta-pull-requests"></dd>
632
+ </div>
622
633
  <div id="meta-follow-ups-wrapper" hidden>
623
634
  <dt>Follow-Ups</dt>
624
635
  <dd><button id="meta-follow-ups" class="link-button" style="padding: 0; border: none; background: none; color: var(--color-primary); cursor: pointer; text-decoration: underline;">—</button></dd>
@@ -1893,6 +1904,7 @@
1893
1904
  <div class="shortcut-item"><kbd>Del</kbd> <span>Delete task</span></div>
1894
1905
  <div class="shortcut-item"><kbd>J</kbd> <span>Judge variants</span></div>
1895
1906
  <div class="shortcut-item"><kbd>R</kbd> <span>Reply to agent</span></div>
1907
+ <div class="shortcut-item"><kbd>Ctrl/Cmd</kbd> <kbd>C</kbd> <span>Interrupt running agent</span></div>
1896
1908
  </div>
1897
1909
 
1898
1910
  <!-- Help Section -->
@@ -1905,5 +1917,27 @@
1905
1917
  </div>
1906
1918
  </div>
1907
1919
  </div>
1920
+
1921
+ <!-- Git Connections Required Modal -->
1922
+ <div id="git-connections-required-modal" class="modal" hidden>
1923
+ <div class="modal-overlay"></div>
1924
+ <div class="modal-content">
1925
+ <div class="modal-header">
1926
+ <h2 id="git-connections-title">Git Connection Required</h2>
1927
+ <button type="button" class="modal-close" aria-label="Close">&times;</button>
1928
+ </div>
1929
+ <div class="modal-body">
1930
+ <p class="git-connections-intro">This task requires authorization for the following Git providers:</p>
1931
+ <div id="git-connections-required-list" class="git-connections-required-list">
1932
+ <!-- Provider cards will be populated here -->
1933
+ </div>
1934
+ <p class="git-connections-hint">Your pull request will be created once all providers are connected.</p>
1935
+ </div>
1936
+ <div class="modal-actions">
1937
+ <button type="button" class="btn-secondary" id="git-connections-close-btn">Cancel</button>
1938
+ </div>
1939
+ </div>
1940
+ </div>
1941
+
1908
1942
  </body>
1909
1943
  </html>