@profoundlogic/coderflow-server 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +24 -0
  2. package/dist/README.md +24 -0
  3. package/dist/base-image/Dockerfile +5 -0
  4. package/dist/base-image/agent-wrapper.sh +12 -2
  5. package/dist/coder-server.js +1 -1
  6. package/dist/config/skill-catalog.json +27 -0
  7. package/dist/config.js +1 -1
  8. package/dist/lib/agent-keepalive.js +1 -1
  9. package/dist/lib/api-keys.js +1 -1
  10. package/dist/lib/apiKeys.js +1 -1
  11. package/dist/lib/app-server-ports.js +1 -1
  12. package/dist/lib/auto-judge.js +1 -1
  13. package/dist/lib/basic-auth.js +1 -1
  14. package/dist/lib/build-history.js +1 -1
  15. package/dist/lib/build-output-service.js +1 -1
  16. package/dist/lib/build-scheduler.js +1 -1
  17. package/dist/lib/build-service.js +1 -1
  18. package/dist/lib/ca-certificates.js +1 -1
  19. package/dist/lib/claude-oauth-refresh.js +1 -1
  20. package/dist/lib/cli/build.js +1 -1
  21. package/dist/lib/cli/config-command.js +1 -1
  22. package/dist/lib/cli/config.js +1 -1
  23. package/dist/lib/cli/create-user.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/server-manager.js +1 -1
  28. package/dist/lib/container-tokens.js +1 -1
  29. package/dist/lib/data-dir.js +1 -1
  30. package/dist/lib/deployment-history.js +1 -1
  31. package/dist/lib/deployment-service.js +1 -1
  32. package/dist/lib/docker-utils.js +1 -1
  33. package/dist/lib/email.js +1 -1
  34. package/dist/lib/emailTemplates.js +1 -1
  35. package/dist/lib/entitlement.js +1 -1
  36. package/dist/lib/fetch-utils.js +1 -1
  37. package/dist/lib/git-commit-details-route.js +1 -0
  38. package/dist/lib/git-history-diff-guardrails.js +1 -0
  39. package/dist/lib/git-provider-service.js +1 -1
  40. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  41. package/dist/lib/git-provider-setup/index.js +1 -1
  42. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  43. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  44. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  45. package/dist/lib/git-providers/github-app-provider.js +1 -1
  46. package/dist/lib/git-providers/index.js +1 -1
  47. package/dist/lib/git-providers/provider-factory.js +1 -1
  48. package/dist/lib/git-providers/provider-interface.js +1 -1
  49. package/dist/lib/github-urls.js +1 -1
  50. package/dist/lib/group-objective-linking.js +1 -0
  51. package/dist/lib/jira-client.js +1 -1
  52. package/dist/lib/judge-blinding.js +1 -0
  53. package/dist/lib/logger.js +1 -1
  54. package/dist/lib/model-fetcher.js +1 -1
  55. package/dist/lib/notifications.js +1 -1
  56. package/dist/lib/oidc-auth.js +1 -1
  57. package/dist/lib/oidc-device-flow.js +1 -1
  58. package/dist/lib/passwordTokens.js +1 -1
  59. package/dist/lib/pin-cascade.js +1 -1
  60. package/dist/lib/provider-accounts.js +1 -1
  61. package/dist/lib/provider-oauth.js +1 -1
  62. package/dist/lib/provider-profile.js +1 -1
  63. package/dist/lib/provider-token-refresh.js +1 -1
  64. package/dist/lib/request-url.js +1 -1
  65. package/dist/lib/rewind.js +1 -1
  66. package/dist/lib/roles.js +1 -1
  67. package/dist/lib/secrets.js +1 -1
  68. package/dist/lib/setup-repo-git-auth.js +1 -1
  69. package/dist/lib/state-capture.js +1 -1
  70. package/dist/lib/static-files.js +1 -1
  71. package/dist/lib/task-name-generator.js +1 -1
  72. package/dist/lib/user-git-oauth.js +1 -1
  73. package/dist/lib/user-git-tokens.js +1 -1
  74. package/dist/lib/users.js +1 -1
  75. package/dist/middleware/requireAuth.js +1 -1
  76. package/dist/middleware/requireInit.js +1 -1
  77. package/dist/middleware/requirePermission.js +1 -1
  78. package/dist/package.json +1 -1
  79. package/dist/routes/apiKeys.js +1 -1
  80. package/dist/routes/auth-oidc.js +1 -1
  81. package/dist/routes/auth.js +1 -1
  82. package/dist/routes/build.js +1 -1
  83. package/dist/routes/containers.js +1 -1
  84. package/dist/routes/deploy-task.js +1 -1
  85. package/dist/routes/environment-management.js +1 -1
  86. package/dist/routes/environments.js +1 -1
  87. package/dist/routes/external-skills.js +1 -1
  88. package/dist/routes/git-credentials.js +1 -1
  89. package/dist/routes/git-oauth.js +1 -1
  90. package/dist/routes/git-provider-setup.js +1 -1
  91. package/dist/routes/health.js +1 -1
  92. package/dist/routes/jira.js +1 -1
  93. package/dist/routes/objective-management.js +1 -1
  94. package/dist/routes/password.js +1 -1
  95. package/dist/routes/prompt.js +1 -1
  96. package/dist/routes/provider-auth.js +1 -1
  97. package/dist/routes/qa.js +1 -1
  98. package/dist/routes/settings.js +1 -1
  99. package/dist/routes/skill-management.js +1 -1
  100. package/dist/routes/skills.js +1 -1
  101. package/dist/routes/tasks.js +1 -1
  102. package/dist/routes/templates.js +1 -1
  103. package/dist/routes/test-task.js +1 -1
  104. package/dist/routes/test.js +1 -1
  105. package/dist/routes/users.js +1 -1
  106. package/dist/routes/visualizations.js +1 -1
  107. package/dist/scripts/create-user.js +1 -1
  108. package/dist/start.js +1 -1
  109. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  110. package/dist/web-ui/public/activity-feed.js +1 -1
  111. package/dist/web-ui/public/activity-formatters.js +1 -1
  112. package/dist/web-ui/public/agent-event-parser.js +1 -1
  113. package/dist/web-ui/public/app.js +1 -1
  114. package/dist/web-ui/public/approve-dialog.js +1 -1
  115. package/dist/web-ui/public/comments-widget.js +1 -1
  116. package/dist/web-ui/public/diff-utils.js +1 -1
  117. package/dist/web-ui/public/docs/tasks/providing-feedback.md +1 -1
  118. package/dist/web-ui/public/environments.html +4 -1
  119. package/dist/web-ui/public/environments.js +1 -1
  120. package/dist/web-ui/public/feedback-widget.js +1 -1
  121. package/dist/web-ui/public/git-history-lazy-utils.js +1 -0
  122. package/dist/web-ui/public/git-history.css +56 -0
  123. package/dist/web-ui/public/git-history.html +2 -2
  124. package/dist/web-ui/public/git-history.js +1 -1
  125. package/dist/web-ui/public/git-status.js +1 -1
  126. package/dist/web-ui/public/index.html +2 -0
  127. package/dist/web-ui/public/index.js +1 -1
  128. package/dist/web-ui/public/login.js +1 -1
  129. package/dist/web-ui/public/markdown-editor.js +1 -1
  130. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  131. package/dist/web-ui/public/modal-maximize.js +1 -1
  132. package/dist/web-ui/public/notifications.js +1 -1
  133. package/dist/web-ui/public/server-health.js +1 -1
  134. package/dist/web-ui/public/settings.css +48 -0
  135. package/dist/web-ui/public/settings.html +85 -2
  136. package/dist/web-ui/public/settings.js +1 -1
  137. package/dist/web-ui/public/setup-password.js +1 -1
  138. package/dist/web-ui/public/skills.js +1 -1
  139. package/dist/web-ui/public/sse-client.js +1 -1
  140. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  141. package/dist/web-ui/public/styles.css +136 -2
  142. package/dist/web-ui/public/task.html +102 -0
  143. package/dist/web-ui/public/task.js +1 -1
  144. package/dist/web-ui/public/terminal.js +1 -1
  145. package/dist/web-ui/public/theme.js +1 -1
  146. package/dist/web-ui/public/users.js +1 -1
  147. package/dist/web-ui/public/variant-grouping.js +1 -1
  148. package/package.json +1 -1
@@ -1 +1 @@
1
- const _0x4f98dc=_0x4711;(function(_0x91e7ae,_0x117e7b){const _0x12ae2b=_0x4711,_0xec817=_0x91e7ae();while(!![]){try{const _0x36abe9=-parseInt(_0x12ae2b(0x93))/0x1+parseInt(_0x12ae2b(0x9c))/0x2*(parseInt(_0x12ae2b(0xb3))/0x3)+-parseInt(_0x12ae2b(0xa7))/0x4+parseInt(_0x12ae2b(0xc3))/0x5+-parseInt(_0x12ae2b(0xb9))/0x6*(parseInt(_0x12ae2b(0xbc))/0x7)+-parseInt(_0x12ae2b(0xc8))/0x8+parseInt(_0x12ae2b(0x82))/0x9;if(_0x36abe9===_0x117e7b)break;else _0xec817['push'](_0xec817['shift']());}catch(_0x4b7d71){_0xec817['push'](_0xec817['shift']());}}}(_0x349c,0x20564));function isSharedWorkerSupported(){const _0x5164d0=_0x4711;return typeof SharedWorker!==_0x5164d0(0x8e);}function eventTypeToHandler(_0x42a45b){const _0x4fc17d=_0x4711;if(_0x42a45b===_0x4fc17d(0x8b))return _0x4fc17d(0x85);if(_0x42a45b===_0x4fc17d(0xd4))return _0x4fc17d(0x95);return'on'+_0x42a45b['split']('-')['map'](_0x11568e=>_0x11568e[_0x4fc17d(0xd2)](0x0)['toUpperCase']()+_0x11568e['slice'](0x1))[_0x4fc17d(0xd8)]('');}function _0x349c(){const _0x549f19=['x2nVBM5Ly3reAxjLy3q','x2vTAxq','DgfZAZO','zgLZy29UBMvJDa','B3bLBG','x3n1yNnJCMLIzvrHC2TeAxjLy3q','nJu5oti1DfDZrwre','w1ntrsbdBgLLBNrDievYCM9YigLUia','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','B25dB25Uzwn0zwq','C3rHCNrZv2L0Aa','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','x3rHC2TtDwjjzenVDw50zxi','C3rYAw5N','zxzLBNrtB3vYy2u','y29UBMvJDgvK','zM9YrwfJAa','Cg9YDa','Dw5KzwzPBMvK','ywn0AxzPDhK','y29TCgXLDgu','C3rHDhvZ','z2v0','mtC2nJq5D1f0Cu5b','BgLZDgvUzxjZ','B25fCNjVCG','ywrK','BMv3lxrHC2S','zgf0yq','igXPC3rLBMvYoG','Bg9N','B25TzxnZywDL','mtbJq1zZBhC','y2HHBMDLrMLSDgvY','yxbWlxnLCNzLCI1ZDgf0Dxm','C3vTBwfYEq','CxvLDwuTCg9ZAxrPB24','x2HHBMrSzurPCMvJDfntrq','CMvJB25Uzwn0vgLTzw91Da','CgfYC2u','B25TzxnZywDLzxjYB3i','x3nJAgvKDwXLuMvJB25Uzwn0','zgLYzwn0','mJe1ndiWy2vAEvnk','C3vIC2nYAwjLvgfZAW','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','v29YA2vYig1LC3nHz2uGzxjYB3i','y2HHBMDLzc1MAwXLCW','C2v0','y29UBMvJDa','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','yMLUza','DgfZA0LK','mtuZmdKZCwj1EePI','p3vZzxjjzd0','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','CMvWBgfJzq','D29YA2vY','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','mtj0rw5hCfK','Bg9NCW','y2XVC2u','oty1nJvlBwXqDhG','zgvSzxrL','DxnLCKLK','AxnvC2LUz1nOyxjLzfDVCMTLCG','BwLU','D2fYBG','q29UBMvJDgLVBIbLCNjVCG','mta1ntaZmfHTEe9yAW','AgfZ','x2HHBMrSzvDVCMTLCK1LC3nHz2u','ywrKrxzLBNrmAxn0zw5LCG','B2zM','mte5mtuYmez6y2jyza','y2XLyxi','DhLWzq','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','Cg93','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','C25HChnOB3q','Dw5ZDwjZy3jPyMvuyxnR','l3n0CMvHBq','Cg9ZDe1LC3nHz2u','y2HHCKf0','C2L6zq','zxjYB3i','x3rHC2TtDwjZy3jPChrPB25Z','DxnLu2HHCMvKv29YA2vY','x2vUC3vYzvDVCMTLCG','AM9PBG','CMvJB25Uzwn0qxr0zw1WDhm','igrHDge6'];_0x349c=function(){return _0x549f19;};return _0x349c();}const TASK_STREAM_EVENTS=['activity',_0x4f98dc(0xba),'metadata',_0x4f98dc(0x9f),_0x4f98dc(0xac),_0x4f98dc(0x9e),_0x4f98dc(0x90)];function _0x4711(_0x3599c5,_0x293cc7){_0x3599c5=_0x3599c5-0x7d;const _0x349c8f=_0x349c();let _0x47115e=_0x349c8f[_0x3599c5];if(_0x4711['YPQHmf']===undefined){var _0x491abd=function(_0x2d2392){const _0x5b6cc7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x42a45b='',_0x11568e='';for(let _0x401732=0x0,_0x421510,_0x417562,_0x59dc67=0x0;_0x417562=_0x2d2392['charAt'](_0x59dc67++);~_0x417562&&(_0x421510=_0x401732%0x4?_0x421510*0x40+_0x417562:_0x417562,_0x401732++%0x4)?_0x42a45b+=String['fromCharCode'](0xff&_0x421510>>(-0x2*_0x401732&0x6)):0x0){_0x417562=_0x5b6cc7['indexOf'](_0x417562);}for(let _0x3b62b0=0x0,_0x46b4aa=_0x42a45b['length'];_0x3b62b0<_0x46b4aa;_0x3b62b0++){_0x11568e+='%'+('00'+_0x42a45b['charCodeAt'](_0x3b62b0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11568e);};_0x4711['zASwXA']=_0x491abd,_0x4711['kJVBYK']={},_0x4711['YPQHmf']=!![];}const _0xe45a7a=_0x349c8f[0x0],_0x93029b=_0x3599c5+_0xe45a7a,_0x3aa4c0=_0x4711['kJVBYK'][_0x93029b];return!_0x3aa4c0?(_0x47115e=_0x4711['zASwXA'](_0x47115e),_0x4711['kJVBYK'][_0x93029b]=_0x47115e):_0x47115e=_0x3aa4c0,_0x47115e;}export class TaskUpdatesClient{constructor(){const _0x5d668c=_0x4f98dc;this[_0x5d668c(0x94)]=new Map(),this[_0x5d668c(0xb7)]=null,this[_0x5d668c(0x8d)]=null,this['eventSource']=null,this['userId']=null,this[_0x5d668c(0xa2)]=null,this[_0x5d668c(0xd9)]=0x0,this[_0x5d668c(0xd6)]=isSharedWorkerSupported(),this[_0x5d668c(0x8b)]=![],this['_taskSubscriptions']=new Map(),this[_0x5d668c(0x88)]=0x0,this[_0x5d668c(0xc5)]=this[_0x5d668c(0xc5)]['bind'](this),this['_handleDirectSSE']=this[_0x5d668c(0xa1)][_0x5d668c(0xb1)](this);}['on'](_0x401732,_0x421510){const _0x31078b=_0x4f98dc;return!this[_0x31078b(0x94)][_0x31078b(0xc4)](_0x401732)&&this['listeners']['set'](_0x401732,new Set()),this[_0x31078b(0x94)][_0x31078b(0x92)](_0x401732)[_0x31078b(0x96)](_0x421510),this;}[_0x4f98dc(0xc7)](_0x417562,_0x59dc67){const _0x2ec0a3=_0x4f98dc;return this[_0x2ec0a3(0x94)][_0x2ec0a3(0xc4)](_0x417562)&&this[_0x2ec0a3(0x94)][_0x2ec0a3(0x92)](_0x417562)[_0x2ec0a3(0xbd)](_0x59dc67),this;}[_0x4f98dc(0x7d)](_0x3b62b0,_0x46b4aa){const _0x411ae9=_0x4f98dc;this[_0x411ae9(0x94)][_0x411ae9(0xc4)](_0x3b62b0)&&this[_0x411ae9(0x94)]['get'](_0x3b62b0)['forEach'](_0x13e4cd=>{const _0x4b5f0e=_0x411ae9;try{_0x13e4cd(_0x46b4aa);}catch(_0x1900c6){console[_0x4b5f0e(0xd4)](_0x4b5f0e(0x83)+_0x3b62b0+_0x4b5f0e(0x99),_0x1900c6);}});}[_0x4f98dc(0xae)](_0x2ed54d='me'){const _0x177ad2=_0x4f98dc;this['userId']=_0x2ed54d,this[_0x177ad2(0xd6)]?this['_connectViaWorker'](_0x2ed54d):this[_0x177ad2(0xdb)](_0x2ed54d);}['_connectViaWorker'](_0x168d52){const _0x369beb=_0x4f98dc;try{this[_0x369beb(0xd7)](),this['port'][_0x369beb(0xd1)]({'action':_0x369beb(0xae),'userId':_0x168d52});}catch(_0x4c2263){console[_0x369beb(0xd4)](_0x369beb(0x87),_0x4c2263),this[_0x369beb(0xd6)]=![],this[_0x369beb(0xdb)](_0x168d52);}}[_0x4f98dc(0xd7)](){const _0x4c5b40=_0x4f98dc;!this[_0x4c5b40(0xb7)]&&(this['worker']=new SharedWorker(_0x4c5b40(0xb5)),this[_0x4c5b40(0x8d)]=this[_0x4c5b40(0xb7)]['port'],this[_0x4c5b40(0x8d)][_0x4c5b40(0x9b)]=this['_handleWorkerMessage'],this[_0x4c5b40(0x8d)][_0x4c5b40(0xa4)]=_0x42c29=>{const _0x402fc8=_0x4c5b40;console['error']('[SSE\x20Client]\x20Worker\x20message\x20error:',_0x42c29),this['_emit'](_0x402fc8(0xd4),{'error':_0x402fc8(0xab)});},this[_0x4c5b40(0x8d)]['start']());}[_0x4f98dc(0xc5)](_0x4829a4){const _0x5bc0f9=_0x4f98dc,_0x124908=_0x4829a4[_0x5bc0f9(0x98)];if(_0x124908['type']&&_0x124908[_0x5bc0f9(0xca)][_0x5bc0f9(0x86)](_0x5bc0f9(0x7e))){this['_handleTaskStreamMessage'](_0x124908);return;}switch(_0x124908[_0x5bc0f9(0xca)]){case _0x5bc0f9(0x8b):this[_0x5bc0f9(0x8b)]=!![],this[_0x5bc0f9(0x7d)]('connected',{});break;case _0x5bc0f9(0xce):case'activity':case _0x5bc0f9(0x91):case _0x5bc0f9(0x97):case'queue-position':try{const _0x5648b6=JSON['parse'](_0x124908[_0x5bc0f9(0x98)]);this[_0x5bc0f9(0x7d)](_0x124908[_0x5bc0f9(0xca)],_0x5648b6);}catch(_0x3b6ba2){console[_0x5bc0f9(0xd4)](_0x5bc0f9(0xb8)+_0x124908[_0x5bc0f9(0xca)]+'\x20data:',_0x3b6ba2);}break;case _0x5bc0f9(0xd4):this['connected']=![],this[_0x5bc0f9(0x7d)]('error',_0x124908);break;default:console[_0x5bc0f9(0xc1)](_0x5bc0f9(0xa9),_0x124908[_0x5bc0f9(0xca)]);}}['_handleTaskStreamMessage'](_0x14e970){const _0x137f7a=_0x4f98dc,{taskId:_0x4daadd,type:_0x30f157,data:_0x23d7f}=_0x14e970,_0x4c57bd=this[_0x137f7a(0xd5)][_0x137f7a(0x92)](_0x4daadd);if(!_0x4c57bd||_0x4c57bd[_0x137f7a(0xd3)]===0x0)return;const _0x560311=_0x30f157[_0x137f7a(0xb6)]('task:',''),_0x477d5d=eventTypeToHandler(_0x560311);_0x4c57bd['forEach'](_0xe558a4=>{const _0xfa9ce4=_0x137f7a;if(_0xe558a4['handlers'][_0x477d5d])try{const _0x323f07=typeof _0x23d7f===_0xfa9ce4(0x89)?JSON[_0xfa9ce4(0xa3)](_0x23d7f):_0x23d7f;_0xe558a4['handlers'][_0x477d5d](_0x323f07);}catch(_0x13b655){console['error']('[SSE\x20Client]\x20Error\x20in\x20task\x20'+_0x560311+'\x20handler:',_0x13b655);}});}['_connectDirect'](_0x559df5){const _0x3ce9de=_0x4f98dc;this['eventSource']&&(this[_0x3ce9de(0x8a)]['close'](),this[_0x3ce9de(0x8a)]=null);const _0x13fdac=_0x559df5&&_0x559df5!=='me'?_0x3ce9de(0xb4)+_0x559df5:'';try{this['eventSource']=new EventSource('/tasks/updates'+_0x13fdac),this[_0x3ce9de(0x8a)]['addEventListener'](_0x3ce9de(0x80),()=>{const _0x3840ca=_0x3ce9de;this[_0x3840ca(0x8b)]=!![],this[_0x3840ca(0xd9)]=0x0,this[_0x3840ca(0x7d)]('connected',{});}),this[_0x3ce9de(0x8a)][_0x3ce9de(0xc6)](_0x3ce9de(0xce),_0x1b0f5e=>{const _0x6c63b8=_0x3ce9de;this[_0x6c63b8(0xa1)](_0x6c63b8(0xce),_0x1b0f5e),this[_0x6c63b8(0xd9)]=0x0;}),this[_0x3ce9de(0x8a)][_0x3ce9de(0xc6)](_0x3ce9de(0x8f),_0x48919c=>{const _0x2d921e=_0x3ce9de;this[_0x2d921e(0xa1)](_0x2d921e(0x8f),_0x48919c);}),this[_0x3ce9de(0x8a)][_0x3ce9de(0xc6)]('status',_0x5962f6=>{const _0x4a9083=_0x3ce9de;this[_0x4a9083(0xa1)](_0x4a9083(0x91),_0x5962f6);}),this['eventSource'][_0x3ce9de(0xc6)](_0x3ce9de(0x97),_0x4a0cdc=>{const _0x1c496a=_0x3ce9de;this[_0x1c496a(0xa1)]('new-task',_0x4a0cdc);}),this['eventSource'][_0x3ce9de(0xc6)]('queue-position',_0x541ddc=>{const _0x19bc3e=_0x3ce9de;this[_0x19bc3e(0xa1)](_0x19bc3e(0xa0),_0x541ddc);}),this[_0x3ce9de(0x8a)][_0x3ce9de(0xc6)]('error',_0x184627=>{const _0x2a6efe=_0x3ce9de;console[_0x2a6efe(0xd4)](_0x2a6efe(0xaf),_0x184627),this[_0x2a6efe(0x8b)]=![],this['_emit']('error',{'error':_0x2a6efe(0xc2)}),this[_0x2a6efe(0x8a)]&&(this[_0x2a6efe(0x8a)][_0x2a6efe(0xbb)](),this['eventSource']=null),this[_0x2a6efe(0xa5)]();});}catch(_0x271615){console['error']('[SSE\x20Client]\x20Failed\x20to\x20create\x20EventSource:',_0x271615),this[_0x3ce9de(0x7d)](_0x3ce9de(0xd4),{'error':_0x271615['message']}),this[_0x3ce9de(0xa5)]();}}[_0x4f98dc(0xa1)](_0x19b750,_0x5cb0ba){const _0x563d07=_0x4f98dc;try{const _0x44d643=JSON[_0x563d07(0xa3)](_0x5cb0ba[_0x563d07(0x98)]);this[_0x563d07(0x7d)](_0x19b750,_0x44d643);}catch(_0x3214f3){console['error']('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x19b750+_0x563d07(0xda),_0x3214f3);}}['_scheduleReconnect'](){const _0x312643=_0x4f98dc;this[_0x312643(0xa2)]&&clearTimeout(this[_0x312643(0xa2)]);const _0xd5fac2=Math[_0x312643(0xc0)](0x3e8*Math[_0x312643(0xcc)](0x2,this[_0x312643(0xd9)]),0x7530);this[_0x312643(0xd9)]++,console[_0x312643(0x9a)]('[SSE\x20Client]\x20Scheduling\x20reconnect\x20in\x20'+_0xd5fac2+'ms'),this[_0x312643(0xa2)]=setTimeout(()=>{const _0x17dd4e=_0x312643;this[_0x17dd4e(0xdb)](this[_0x17dd4e(0xbe)]);},_0xd5fac2);}[_0x4f98dc(0x9d)](_0x123acc){const _0x28c088=_0x4f98dc;if(_0x123acc===this[_0x28c088(0xbe)])return;this[_0x28c088(0xbe)]=_0x123acc;if(this[_0x28c088(0xd6)]&&this[_0x28c088(0x8d)])this[_0x28c088(0x8d)][_0x28c088(0xd1)]({'action':_0x28c088(0x9d),'userId':_0x123acc});else this[_0x28c088(0x8a)]&&this[_0x28c088(0xdb)](_0x123acc);}[_0x4f98dc(0xa8)](_0x2f6dcc,_0x212db2){const _0x1d92e6=_0x4f98dc;return this['useSharedWorker']?this['_subscribeTaskViaWorker'](_0x2f6dcc,_0x212db2):this[_0x1d92e6(0x81)](_0x2f6dcc,_0x212db2);}['unsubscribeTask'](_0x5bebdc){const _0x4eafce=_0x4f98dc;if(!_0x5bebdc)return;_0x5bebdc['type']==='worker'?this[_0x4eafce(0xaa)](_0x5bebdc):this['_unsubscribeTaskDirect'](_0x5bebdc);}[_0x4f98dc(0x84)](_0x2a8ee7,_0x45fd1c){const _0x1dda9e=_0x4f98dc;try{this[_0x1dda9e(0xd7)]();}catch(_0x17a907){return console[_0x1dda9e(0xd4)](_0x1dda9e(0xb0),_0x17a907),this['useSharedWorker']=![],this[_0x1dda9e(0x81)](_0x2a8ee7,_0x45fd1c);}const _0x6cbf7d=++this[_0x1dda9e(0x88)],_0x511be2={'type':_0x1dda9e(0xb7),'taskId':_0x2a8ee7,'handlers':_0x45fd1c,'id':_0x6cbf7d};return!this['_taskSubscriptions'][_0x1dda9e(0xc4)](_0x2a8ee7)&&(this[_0x1dda9e(0xd5)][_0x1dda9e(0xad)](_0x2a8ee7,new Set()),this[_0x1dda9e(0x8d)][_0x1dda9e(0xd1)]({'action':_0x1dda9e(0xa8),'taskId':_0x2a8ee7})),this['_taskSubscriptions']['get'](_0x2a8ee7)['add'](_0x511be2),_0x511be2;}[_0x4f98dc(0xaa)](_0x3a3ca3){const _0x1fedeb=_0x4f98dc,{taskId:_0x41870b}=_0x3a3ca3,_0x39b087=this[_0x1fedeb(0xd5)][_0x1fedeb(0x92)](_0x41870b);if(_0x39b087){_0x39b087['delete'](_0x3a3ca3);if(_0x39b087[_0x1fedeb(0xd3)]===0x0){this[_0x1fedeb(0xd5)][_0x1fedeb(0xbd)](_0x41870b);try{this[_0x1fedeb(0x8d)]&&this['port'][_0x1fedeb(0xd1)]({'action':_0x1fedeb(0xcf),'taskId':_0x41870b});}catch(_0x13ac9e){}}}}[_0x4f98dc(0x81)](_0x15e88d,_0x46b64b){const _0x2739d3=_0x4f98dc,_0x1798a2=++this[_0x2739d3(0x88)],_0x48dbe0=new EventSource('/tasks/'+_0x15e88d+_0x2739d3(0xd0)),_0x49b976={'type':_0x2739d3(0xa6),'taskId':_0x15e88d,'handlers':_0x46b64b,'id':_0x1798a2,'eventSource':_0x48dbe0};!this['_taskSubscriptions'][_0x2739d3(0xc4)](_0x15e88d)&&this[_0x2739d3(0xd5)][_0x2739d3(0xad)](_0x15e88d,new Set());this[_0x2739d3(0xd5)][_0x2739d3(0x92)](_0x15e88d)['add'](_0x49b976);for(const _0x27d5e2 of TASK_STREAM_EVENTS){const _0x5ea18e=eventTypeToHandler(_0x27d5e2);_0x48dbe0['addEventListener'](_0x27d5e2,_0x1a2f7d=>{const _0x1104a9=_0x2739d3;if(_0x46b64b[_0x5ea18e])try{const _0x48dced=JSON[_0x1104a9(0xa3)](_0x1a2f7d['data']);_0x46b64b[_0x5ea18e](_0x48dced);}catch(_0x344a04){console[_0x1104a9(0xd4)](_0x1104a9(0xcd)+_0x27d5e2+':',_0x344a04);}});}return _0x48dbe0[_0x2739d3(0xc6)](_0x2739d3(0x80),()=>{const _0x4b6ad6=_0x2739d3;if(_0x46b64b[_0x4b6ad6(0x85)])_0x46b64b[_0x4b6ad6(0x85)]();}),_0x48dbe0[_0x2739d3(0xc6)](_0x2739d3(0xd4),()=>{const _0x261567=_0x2739d3;if(_0x46b64b['onError'])_0x46b64b[_0x261567(0x95)]({'error':'Connection\x20error'});}),_0x49b976;}[_0x4f98dc(0xcb)](_0x38d738){const _0x737dd4=_0x4f98dc;_0x38d738[_0x737dd4(0x8a)]&&(_0x38d738['eventSource'][_0x737dd4(0xbb)](),_0x38d738['eventSource']=null);const _0x4321f=this[_0x737dd4(0xd5)]['get'](_0x38d738[_0x737dd4(0xb2)]);_0x4321f&&(_0x4321f['delete'](_0x38d738),_0x4321f['size']===0x0&&this[_0x737dd4(0xd5)][_0x737dd4(0xbd)](_0x38d738[_0x737dd4(0xb2)]));}[_0x4f98dc(0x7f)](){const _0x1607c7=_0x4f98dc;this['reconnectTimeout']&&(clearTimeout(this[_0x1607c7(0xa2)]),this[_0x1607c7(0xa2)]=null);this[_0x1607c7(0xd5)][_0x1607c7(0x8c)]((_0x2dfc36,_0x3f6287)=>{_0x2dfc36['forEach'](_0x1cc36a=>{const _0x3ecd7c=_0x4711;_0x1cc36a[_0x3ecd7c(0xca)]===_0x3ecd7c(0xa6)&&_0x1cc36a[_0x3ecd7c(0x8a)]&&_0x1cc36a[_0x3ecd7c(0x8a)][_0x3ecd7c(0xbb)]();});}),this[_0x1607c7(0xd5)][_0x1607c7(0xc9)]();if(this[_0x1607c7(0xd6)]&&this[_0x1607c7(0x8d)])try{this[_0x1607c7(0x8d)][_0x1607c7(0xd1)]({'action':_0x1607c7(0x7f)});}catch(_0x4957c5){}this[_0x1607c7(0x8a)]&&(this['eventSource'][_0x1607c7(0xbb)](),this[_0x1607c7(0x8a)]=null),this['connected']=![];}['isConnected'](){const _0x378422=_0x4f98dc;return this[_0x378422(0x8b)];}[_0x4f98dc(0xbf)](){const _0x4e98c2=_0x4f98dc;return this[_0x4e98c2(0xd6)];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
1
+ function _0x5b30(){const _0x172eef=['ywrK','DhLWzq','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','zxzLBNrtB3vYy2u','C3rYAw5N','w1ntrsbdBgLLBNrDifDVCMTLCIbTzxnZywDLigvYCM9YoG','zgf0yq','q29UBMvJDgLVBIbLCNjVCG','x3rHC2TtDwjZy3jPChrPB25Z','C3rHDhvZ','Bg9N','BgLZDgvUzxjZ','Bg9NCW','Cg93','yMLUza','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','nJK3nJG0zuL0u0HO','l3n0CMvHBq','nNfcCuPKBG','y29UBMvJDa','zgLZy29UBMvJDa','mZKWmdHqu2DYsxq','ywn0AxzPDhK','x3rHC2TtDwjjzenVDw50zxi','DxnLu2HHCMvKv29YA2vY','x2nVBM5Ly3reAxjLy3q','yxbWlxnLCNzLCI1ZDgf0Dxm','C2v0','zxjYB3i','CxvLDwuTCg9ZAxrPB24','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqGzM9YihrHC2SGC3vIlcbMywXSAw5NigjHy2S6','igXPC3rLBMvYoG','zM9YrwfJAa','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','AxndB25Uzwn0zwq','DgfZAZO','C3vIC2nYAwjLvgfZAW','CMvWBgfJzq','p3vZzxjjzd0','ntq3ntq0mgDpvfvXza','B2zM','l3rHC2TZl3vWzgf0zxm','y2XVC2u','D2fYBG','Dw5ZDwjZy3jPyMvuyxnR','ywrKrxzLBNrmAxn0zw5LCG','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','CMvJB25Uzwn0vgLTzw91Da','AM9PBG','B25fCNjVCG','Dg9vChbLCKnHC2u','B25dB25Uzwn0zwq','BMv3lxrHC2S','y2HHBMDLrMLSDgvY','B25TzxnZywDL','C25HChnOB3q','Cg9YDa','y2XLyxi','x2vUC3vYzvDVCMTLCG','DgfZA0LK','D29YA2vY','mtK0mJa4ofDPDgTXBG','zgLYzwn0','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','m2rXtLzqvq','B3bLBG','x2vTAxq','z2v0','x2HHBMrSzvDVCMTLCK1LC3nHz2u','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','mtq0ota0AhjzyxjX','y2HHBMDLzc1MAwXLCW','AgfZ','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','C2L6zq','x2nVBM5Ly3rwAwfxB3jRzxi','y29UBMvJDgvK','Dw5KzwzPBMvK','l3rHC2TZlW','nZK2otqWqvr2uuDx','igrHDge6','oxL1uxjMAa','CMvJB25Uzwn0qxr0zw1WDhm','odu5mtHNsMP1yLe','x3nJAgvKDwXLuMvJB25Uzwn0','C3bSAxq','v29YA2vYig1LC3nHz2uGzxjYB3i','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','CgfYC2u','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','y29TCgXLDgu','AgfUzgXLCNm','DxnLCKLK','Cg9ZDe1LC3nHz2u','B25TzxnZywDLzxjYB3i','zgvSzxrL','y2HHCKf0','x3n1yNnJCMLIzvrHC2TeAxjLy3q','x2HHBMrSzurPCMvJDfntrq'];_0x5b30=function(){return _0x172eef;};return _0x5b30();}const _0x7e2d6c=_0xfbe7;(function(_0x5cc2f5,_0x4a1b6e){const _0x47f38c=_0xfbe7,_0x2c9bea=_0x5cc2f5();while(!![]){try{const _0x20a635=parseInt(_0x47f38c(0x160))/0x1+parseInt(_0x47f38c(0x12f))/0x2+-parseInt(_0x47f38c(0x15a))/0x3*(parseInt(_0x47f38c(0x12a))/0x4)+-parseInt(_0x47f38c(0x169))/0x5+parseInt(_0x47f38c(0x12c))/0x6*(-parseInt(_0x47f38c(0x16d))/0x7)+-parseInt(_0x47f38c(0x157))/0x8+-parseInt(_0x47f38c(0x16b))/0x9*(-parseInt(_0x47f38c(0x141))/0xa);if(_0x20a635===_0x4a1b6e)break;else _0x2c9bea['push'](_0x2c9bea['shift']());}catch(_0x183edb){_0x2c9bea['push'](_0x2c9bea['shift']());}}}(_0x5b30,0x1e0e4));function isSharedWorkerSupported(){const _0x48215f=_0xfbe7;return typeof SharedWorker!==_0x48215f(0x167);}function eventTypeToHandler(_0x24793a){const _0x346014=_0xfbe7;if(_0x24793a==='connected')return _0x346014(0x14d);if(_0x24793a===_0x346014(0x136))return _0x346014(0x14b);return'on'+_0x24793a[_0x346014(0x16f)]('-')['map'](_0x43c26d=>_0x43c26d[_0x346014(0x17b)](0x0)[_0x346014(0x14c)]()+_0x43c26d['slice'](0x1))[_0x346014(0x14a)]('');}const TASK_STREAM_EVENTS=[_0x7e2d6c(0x130),_0x7e2d6c(0x126),'metadata','summary',_0x7e2d6c(0x161),_0x7e2d6c(0x134),_0x7e2d6c(0x175)];export class TaskUpdatesClient{constructor(){const _0xcebed1=_0x7e2d6c;this[_0xcebed1(0x125)]=new Map(),this[_0xcebed1(0x156)]=null,this[_0xcebed1(0x152)]=null,this[_0xcebed1(0x181)]=null,this[_0xcebed1(0x177)]=null,this['reconnectTimeout']=null,this[_0xcebed1(0x16c)]=0x0,this[_0xcebed1(0x132)]=isSharedWorkerSupported(),this[_0xcebed1(0x166)]=![],this[_0xcebed1(0x122)]=new Map(),this[_0xcebed1(0x131)]=0x0,this[_0xcebed1(0x15e)]=this['_handleWorkerMessage'][_0xcebed1(0x128)](this),this[_0xcebed1(0x17d)]=this[_0xcebed1(0x17d)][_0xcebed1(0x128)](this);}['on'](_0x413159,_0x477554){const _0x5d44d1=_0x7e2d6c;return!this[_0x5d44d1(0x125)][_0x5d44d1(0x162)](_0x413159)&&this[_0x5d44d1(0x125)][_0x5d44d1(0x135)](_0x413159,new Set()),this[_0x5d44d1(0x125)][_0x5d44d1(0x15d)](_0x413159)['add'](_0x477554),this;}[_0x7e2d6c(0x142)](_0x38392b,_0x8faa05){const _0x4f0957=_0x7e2d6c;return this[_0x4f0957(0x125)]['has'](_0x38392b)&&this[_0x4f0957(0x125)][_0x4f0957(0x15d)](_0x38392b)[_0x4f0957(0x17a)](_0x8faa05),this;}[_0x7e2d6c(0x15c)](_0x533d91,_0x38cbcb){const _0x345dde=_0x7e2d6c;this[_0x345dde(0x125)][_0x345dde(0x162)](_0x533d91)&&this[_0x345dde(0x125)][_0x345dde(0x15d)](_0x533d91)[_0x345dde(0x13a)](_0xe21090=>{const _0x2ba531=_0x345dde;try{_0xe21090(_0x38cbcb);}catch(_0x242bd7){console[_0x2ba531(0x136)]('[SSE\x20Client]\x20Error\x20in\x20'+_0x533d91+_0x2ba531(0x139),_0x242bd7);}});}[_0x7e2d6c(0x12d)](_0x4d32a4='me'){const _0x5c1141=_0x7e2d6c;this['userId']=_0x4d32a4,this[_0x5c1141(0x132)]?this[_0x5c1141(0x165)](_0x4d32a4):this[_0x5c1141(0x133)](_0x4d32a4);}[_0x7e2d6c(0x165)](_0x237c78){const _0x2ff2a7=_0x7e2d6c;try{this[_0x2ff2a7(0x154)](),this['port'][_0x2ff2a7(0x178)]({'action':_0x2ff2a7(0x12d),'userId':_0x237c78});}catch(_0x3541c2){console[_0x2ff2a7(0x136)]('[SSE\x20Client]\x20SharedWorker\x20failed,\x20falling\x20back\x20to\x20direct\x20SSE:',_0x3541c2),this[_0x2ff2a7(0x132)]=![],this[_0x2ff2a7(0x133)](_0x237c78);}}['_ensureWorker'](){const _0xceba66=_0x7e2d6c;!this[_0xceba66(0x156)]&&(this[_0xceba66(0x156)]=new SharedWorker(_0xceba66(0x13b)),this[_0xceba66(0x152)]=this[_0xceba66(0x156)]['port'],this[_0xceba66(0x152)][_0xceba66(0x150)]=this[_0xceba66(0x15e)],this['port'][_0xceba66(0x179)]=_0x5c6cfd=>{const _0x5ec686=_0xceba66;console[_0x5ec686(0x136)](_0x5ec686(0x183),_0x5c6cfd),this['_emit'](_0x5ec686(0x136),{'error':_0x5ec686(0x170)});},this[_0xceba66(0x152)]['start']());}[_0x7e2d6c(0x15e)](_0xc583d4){const _0x1f0574=_0x7e2d6c,_0x37938b=_0xc583d4[_0x1f0574(0x184)];if(_0x37938b[_0x1f0574(0x17f)]&&_0x37938b[_0x1f0574(0x17f)]['startsWith'](_0x1f0574(0x13d))){this[_0x1f0574(0x163)](_0x37938b);return;}switch(_0x37938b['type']){case'connected':this['connected']=!![],this[_0x1f0574(0x15c)](_0x1f0574(0x166),{});break;case _0x1f0574(0x151):case _0x1f0574(0x130):case _0x1f0574(0x123):case _0x1f0574(0x14e):case _0x1f0574(0x137):try{const _0x2f82a4=JSON[_0x1f0574(0x172)](_0x37938b[_0x1f0574(0x184)]);this[_0x1f0574(0x15c)](_0x37938b[_0x1f0574(0x17f)],_0x2f82a4);}catch(_0x2d4e74){console[_0x1f0574(0x136)](_0x1f0574(0x174)+_0x37938b[_0x1f0574(0x17f)]+'\x20data:',_0x2d4e74);}break;case _0x1f0574(0x136):this[_0x1f0574(0x166)]=![],this[_0x1f0574(0x15c)](_0x1f0574(0x136),_0x37938b);break;default:console[_0x1f0574(0x145)](_0x1f0574(0x129),_0x37938b['type']);}}[_0x7e2d6c(0x163)](_0x30b559){const _0x19287e=_0x7e2d6c,{taskId:_0x3e54cd,type:_0x22d30a,data:_0x577d47}=_0x30b559,_0x18a2a3=this[_0x19287e(0x122)]['get'](_0x3e54cd);if(!_0x18a2a3||_0x18a2a3[_0x19287e(0x164)]===0x0)return;const _0x112958=_0x22d30a[_0x19287e(0x13f)](_0x19287e(0x13d),''),_0x21ab50=eventTypeToHandler(_0x112958);_0x18a2a3['forEach'](_0x524a05=>{const _0x155b78=_0x19287e;if(_0x524a05[_0x155b78(0x176)][_0x21ab50])try{const _0x5dc0b8=typeof _0x577d47===_0x155b78(0x182)?JSON[_0x155b78(0x172)](_0x577d47):_0x577d47;_0x524a05[_0x155b78(0x176)][_0x21ab50](_0x5dc0b8);}catch(_0x10608c){console['error'](_0x155b78(0x159)+_0x112958+'\x20handler:',_0x10608c);}});}[_0x7e2d6c(0x133)](_0x84a655){const _0x242f0a=_0x7e2d6c;this[_0x242f0a(0x181)]&&(this[_0x242f0a(0x181)][_0x242f0a(0x144)](),this[_0x242f0a(0x181)]=null);const _0x519f71=_0x84a655&&_0x84a655!=='me'?_0x242f0a(0x140)+_0x84a655:'';try{this[_0x242f0a(0x181)]=new EventSource(_0x242f0a(0x143)+_0x519f71),this[_0x242f0a(0x181)]['addEventListener'](_0x242f0a(0x15b),()=>{const _0x138a13=_0x242f0a;this[_0x138a13(0x166)]=!![],this[_0x138a13(0x16c)]=0x0,this['_emit'](_0x138a13(0x166),{});}),this['eventSource'][_0x242f0a(0x147)](_0x242f0a(0x151),_0x4111a3=>{const _0x3e6db2=_0x242f0a;this[_0x3e6db2(0x17d)](_0x3e6db2(0x151),_0x4111a3),this[_0x3e6db2(0x16c)]=0x0;}),this['eventSource'][_0x242f0a(0x147)](_0x242f0a(0x130),_0x1857e0=>{const _0x3211c2=_0x242f0a;this[_0x3211c2(0x17d)](_0x3211c2(0x130),_0x1857e0);}),this[_0x242f0a(0x181)]['addEventListener']('status',_0x2ac2e5=>{const _0x372ea1=_0x242f0a;this[_0x372ea1(0x17d)]('status',_0x2ac2e5);}),this[_0x242f0a(0x181)][_0x242f0a(0x147)](_0x242f0a(0x14e),_0x1afe93=>{const _0x50d91=_0x242f0a;this['_handleDirectSSE'](_0x50d91(0x14e),_0x1afe93);}),this[_0x242f0a(0x181)][_0x242f0a(0x147)](_0x242f0a(0x137),_0x2d82eb=>{const _0x34bdb0=_0x242f0a;this[_0x34bdb0(0x17d)](_0x34bdb0(0x137),_0x2d82eb);}),this[_0x242f0a(0x181)][_0x242f0a(0x147)]('error',_0x35c23e=>{const _0x12a57c=_0x242f0a;console[_0x12a57c(0x136)](_0x12a57c(0x15f),_0x35c23e),this[_0x12a57c(0x166)]=![],this[_0x12a57c(0x15c)](_0x12a57c(0x136),{'error':_0x12a57c(0x185)}),this[_0x12a57c(0x181)]&&(this[_0x12a57c(0x181)][_0x12a57c(0x144)](),this['eventSource']=null),this[_0x12a57c(0x16e)]();});}catch(_0x3de0a8){console[_0x242f0a(0x136)]('[SSE\x20Client]\x20Failed\x20to\x20create\x20EventSource:',_0x3de0a8),this[_0x242f0a(0x15c)](_0x242f0a(0x136),{'error':_0x3de0a8['message']}),this['_scheduleReconnect']();}}['_handleDirectSSE'](_0x2106f2,_0x4b3039){const _0x37161d=_0x7e2d6c;try{const _0xfa537c=JSON[_0x37161d(0x172)](_0x4b3039[_0x37161d(0x184)]);this[_0x37161d(0x15c)](_0x2106f2,_0xfa537c);}catch(_0x4c5813){console[_0x37161d(0x136)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x2106f2+_0x37161d(0x16a),_0x4c5813);}}[_0x7e2d6c(0x16e)](){const _0x545d1e=_0x7e2d6c;this[_0x545d1e(0x149)]&&clearTimeout(this[_0x545d1e(0x149)]);const _0x202448=Math['min'](0x3e8*Math[_0x545d1e(0x127)](0x2,this['reconnectAttempts']),0x7530);this['reconnectAttempts']++,console[_0x545d1e(0x124)](_0x545d1e(0x148)+_0x202448+'ms'),this[_0x545d1e(0x149)]=setTimeout(()=>{const _0x56f716=_0x545d1e;this[_0x56f716(0x133)](this['userId']);},_0x202448);}[_0x7e2d6c(0x14f)](_0x2e0be8){const _0x42ec0e=_0x7e2d6c;if(_0x2e0be8===this[_0x42ec0e(0x177)])return;this[_0x42ec0e(0x177)]=_0x2e0be8;if(this['useSharedWorker']&&this[_0x42ec0e(0x152)])this[_0x42ec0e(0x152)][_0x42ec0e(0x178)]({'action':_0x42ec0e(0x14f),'userId':_0x2e0be8});else this[_0x42ec0e(0x181)]&&this[_0x42ec0e(0x133)](_0x2e0be8);}[_0x7e2d6c(0x13e)](_0x3ec48c,_0x1eae7e){const _0x31a1cb=_0x7e2d6c;return this[_0x31a1cb(0x132)]?this['_subscribeTaskViaWorker'](_0x3ec48c,_0x1eae7e):this[_0x31a1cb(0x17c)](_0x3ec48c,_0x1eae7e);}[_0x7e2d6c(0x146)](_0xc9eb34){const _0x123c68=_0x7e2d6c;if(!_0xc9eb34)return;_0xc9eb34[_0x123c68(0x17f)]===_0x123c68(0x156)?this[_0x123c68(0x180)](_0xc9eb34):this[_0x123c68(0x171)](_0xc9eb34);}['_subscribeTaskViaWorker'](_0x436516,_0x5ea186){const _0x3d01da=_0x7e2d6c;try{this[_0x3d01da(0x154)]();}catch(_0xf6103d){return console[_0x3d01da(0x136)](_0x3d01da(0x138),_0xf6103d),this['useSharedWorker']=![],this['_subscribeTaskDirect'](_0x436516,_0x5ea186);}const _0x402b32=++this[_0x3d01da(0x131)],_0x157bd4={'type':_0x3d01da(0x156),'taskId':_0x436516,'handlers':_0x5ea186,'id':_0x402b32};return!this['_taskSubscriptions']['has'](_0x436516)&&(this[_0x3d01da(0x122)][_0x3d01da(0x135)](_0x436516,new Set()),this[_0x3d01da(0x152)][_0x3d01da(0x178)]({'action':'subscribeTask','taskId':_0x436516})),this[_0x3d01da(0x122)]['get'](_0x436516)[_0x3d01da(0x17e)](_0x157bd4),_0x157bd4;}[_0x7e2d6c(0x180)](_0x14b311){const _0x5b9999=_0x7e2d6c,{taskId:_0x2f9dfc}=_0x14b311,_0x4752a1=this[_0x5b9999(0x122)][_0x5b9999(0x15d)](_0x2f9dfc);if(_0x4752a1){_0x4752a1['delete'](_0x14b311);if(_0x4752a1[_0x5b9999(0x164)]===0x0){this[_0x5b9999(0x122)][_0x5b9999(0x17a)](_0x2f9dfc);try{this['port']&&this[_0x5b9999(0x152)][_0x5b9999(0x178)]({'action':_0x5b9999(0x146),'taskId':_0x2f9dfc});}catch(_0x36875f){}}}}[_0x7e2d6c(0x17c)](_0x3a9440,_0x39f4f4){const _0x1843e0=_0x7e2d6c,_0x4af359=++this[_0x1843e0(0x131)],_0x1a9bf6=new EventSource(_0x1843e0(0x168)+_0x3a9440+_0x1843e0(0x12b)),_0x17a331={'type':_0x1843e0(0x158),'taskId':_0x3a9440,'handlers':_0x39f4f4,'id':_0x4af359,'eventSource':_0x1a9bf6};!this[_0x1843e0(0x122)]['has'](_0x3a9440)&&this['_taskSubscriptions']['set'](_0x3a9440,new Set());this[_0x1843e0(0x122)][_0x1843e0(0x15d)](_0x3a9440)[_0x1843e0(0x17e)](_0x17a331);for(const _0xc2ee29 of TASK_STREAM_EVENTS){const _0x911f92=eventTypeToHandler(_0xc2ee29);_0x1a9bf6[_0x1843e0(0x147)](_0xc2ee29,_0x429c97=>{const _0x5ef157=_0x1843e0;if(_0x39f4f4[_0x911f92])try{const _0x2ed2f6=JSON['parse'](_0x429c97[_0x5ef157(0x184)]);_0x39f4f4[_0x911f92](_0x2ed2f6);}catch(_0x4c982b){console['error'](_0x5ef157(0x173)+_0xc2ee29+':',_0x4c982b);}});}return _0x1a9bf6[_0x1843e0(0x147)](_0x1843e0(0x15b),()=>{const _0x1bacc6=_0x1843e0;if(_0x39f4f4[_0x1bacc6(0x14d)])_0x39f4f4[_0x1bacc6(0x14d)]();}),_0x1a9bf6[_0x1843e0(0x147)](_0x1843e0(0x136),()=>{if(_0x39f4f4['onError'])_0x39f4f4['onError']({'error':'Connection\x20error'});}),_0x17a331;}[_0x7e2d6c(0x171)](_0x23ad18){const _0x5d6ed4=_0x7e2d6c;_0x23ad18['eventSource']&&(_0x23ad18[_0x5d6ed4(0x181)][_0x5d6ed4(0x144)](),_0x23ad18[_0x5d6ed4(0x181)]=null);const _0x596277=this[_0x5d6ed4(0x122)]['get'](_0x23ad18['taskId']);_0x596277&&(_0x596277[_0x5d6ed4(0x17a)](_0x23ad18),_0x596277['size']===0x0&&this['_taskSubscriptions'][_0x5d6ed4(0x17a)](_0x23ad18[_0x5d6ed4(0x155)]));}[_0x7e2d6c(0x12e)](){const _0x311da4=_0x7e2d6c;this['reconnectTimeout']&&(clearTimeout(this[_0x311da4(0x149)]),this[_0x311da4(0x149)]=null);this[_0x311da4(0x122)][_0x311da4(0x13a)]((_0x36e52a,_0x3d0876)=>{const _0x62c337=_0x311da4;_0x36e52a[_0x62c337(0x13a)](_0x1e2667=>{const _0x24b5e3=_0x62c337;_0x1e2667[_0x24b5e3(0x17f)]==='direct'&&_0x1e2667[_0x24b5e3(0x181)]&&_0x1e2667[_0x24b5e3(0x181)][_0x24b5e3(0x144)]();});}),this[_0x311da4(0x122)][_0x311da4(0x153)]();if(this[_0x311da4(0x132)]&&this[_0x311da4(0x152)])try{this[_0x311da4(0x152)][_0x311da4(0x178)]({'action':_0x311da4(0x12e)});}catch(_0x3d3fe9){}this[_0x311da4(0x181)]&&(this['eventSource']['close'](),this[_0x311da4(0x181)]=null),this[_0x311da4(0x166)]=![];}[_0x7e2d6c(0x13c)](){return this['connected'];}['isUsingSharedWorker'](){const _0x15c1a6=_0x7e2d6c;return this[_0x15c1a6(0x132)];}}let globalClient=null;function _0xfbe7(_0x2a72e4,_0x51f02e){_0x2a72e4=_0x2a72e4-0x122;const _0x5b3056=_0x5b30();let _0xfbe7c5=_0x5b3056[_0x2a72e4];if(_0xfbe7['dsMQBU']===undefined){var _0x3ce2d0=function(_0x3a042c){const _0x2d6fc9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24793a='',_0x43c26d='';for(let _0x413159=0x0,_0x477554,_0x38392b,_0x8faa05=0x0;_0x38392b=_0x3a042c['charAt'](_0x8faa05++);~_0x38392b&&(_0x477554=_0x413159%0x4?_0x477554*0x40+_0x38392b:_0x38392b,_0x413159++%0x4)?_0x24793a+=String['fromCharCode'](0xff&_0x477554>>(-0x2*_0x413159&0x6)):0x0){_0x38392b=_0x2d6fc9['indexOf'](_0x38392b);}for(let _0x533d91=0x0,_0x38cbcb=_0x24793a['length'];_0x533d91<_0x38cbcb;_0x533d91++){_0x43c26d+='%'+('00'+_0x24793a['charCodeAt'](_0x533d91)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c26d);};_0xfbe7['PEouaj']=_0x3ce2d0,_0xfbe7['JJVepZ']={},_0xfbe7['dsMQBU']=!![];}const _0x12afa0=_0x5b3056[0x0],_0x541f68=_0x2a72e4+_0x12afa0,_0x257f3a=_0xfbe7['JJVepZ'][_0x541f68];return!_0x257f3a?(_0xfbe7c5=_0xfbe7['PEouaj'](_0xfbe7c5),_0xfbe7['JJVepZ'][_0x541f68]=_0xfbe7c5):_0xfbe7c5=_0x257f3a,_0xfbe7c5;}export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
@@ -1 +1 @@
1
- const _0x19ecf2=_0x4425;(function(_0xa59a2,_0x38e1b1){const _0x4a78b4=_0x4425,_0x1e7d33=_0xa59a2();while(!![]){try{const _0x8ba016=parseInt(_0x4a78b4(0xc0))/0x1*(parseInt(_0x4a78b4(0xed))/0x2)+-parseInt(_0x4a78b4(0xad))/0x3+parseInt(_0x4a78b4(0xd9))/0x4*(parseInt(_0x4a78b4(0xd3))/0x5)+parseInt(_0x4a78b4(0xe6))/0x6+parseInt(_0x4a78b4(0xb2))/0x7*(parseInt(_0x4a78b4(0xe4))/0x8)+-parseInt(_0x4a78b4(0xb9))/0x9*(-parseInt(_0x4a78b4(0xb0))/0xa)+-parseInt(_0x4a78b4(0xde))/0xb*(parseInt(_0x4a78b4(0xbf))/0xc);if(_0x8ba016===_0x38e1b1)break;else _0x1e7d33['push'](_0x1e7d33['shift']());}catch(_0x40e274){_0x1e7d33['push'](_0x1e7d33['shift']());}}}(_0x3392,0x4a6ab));function _0x3392(){const _0x5d9d0b=['nfHbvLfeBq','CxvLDwuTCg9ZAxrPB24','Bg9N','C2L6zq','zM9YrwfJAa','mtyYodiZnZzRzLfJvw0','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','D2fYBG','zgvSzxrL','y29TCgXLDgu','Cg9YDhm','mtuYndq5nLzXAe9ryW','zxzLBNrtB3vYy2u','mJm2oduWB3Dqt3vN','DgfZAZO','Bwv0ywrHDge','zgLZy29UBMvJDa','zxjYB3i','BwLU','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','ndK4rMnft0Hm','C3rHCNq','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','C25HChnOB3q','l3rHC2TZl3vWzgf0zxm','Cg93','BxmGkgf0DgvTChqG','C3rYAw5NAwz5','t1bftG','CMvHzhLtDgf0zq','DgfZAZPJB25Uzwn0zwq','otK2ntmXv3LKu0L5','ywn0AxzPDhK','C3rHDhvZ','mJGXmfD5rKL0ta','CMvJB25Uzwn0qxr0zw1WDhm','mtrWugDNy0S','q0Xpu0ve','C2v0','yxbWlxnLCNzLCI1ZDgf0Dxm','y29UBMvJDgvK','BwvZC2fNzq','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','mtGWmJDbqNHXzwS','AgfZ','CMvJB25Uzwn0vgLTzw91Da','ywrKrxzLBNrmAxn0zw5LCG','Cg9ZDe1LC3nHz2u','DgfZAZPLCNjVCG','mtjhDK5iB1q','mJiWm3DICLrYra','l3rHC2TZlW','B25TzxnZywDLzxjYB3i','y2XVC2u','ChvZAa','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','C3vIC2nYAwjLvgfZAW','zgf0yq','z2v0','Bg9NCW','C3vIC2nYAwjLzfbVCNrZ','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','BMv3lxrHC2S','y2HHBMDLrMLSDgvY','y2HHBMDLzc1MAwXLCW','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','C3vTBwfYEq','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','Dw5ZDwjZy3jPyMvuyxnR','mJKYnJa3nuPLs3veAG','q29UBMvJDgLVBIbLCNjVCG','B25TzxnZywDL','B3bLBG','ywrK','y29UBMvJDa'];_0x3392=function(){return _0x5d9d0b;};return _0x3392();}const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x19ecf2(0xae),_0x19ecf2(0xc9),_0x19ecf2(0xe8),_0x19ecf2(0xd0),_0x19ecf2(0xce),_0x19ecf2(0xb5),_0x19ecf2(0xe2)];function connect(_0x2c0641){const _0x3a457e=_0x19ecf2;eventSource&&currentUserId!==_0x2c0641&&(eventSource['close'](),eventSource=null);if(eventSource&&eventSource[_0x3a457e(0xf6)]!==EventSource[_0x3a457e(0xb3)])return;currentUserId=_0x2c0641;const _0x3db830=_0x2c0641&&_0x2c0641!=='me'?'?userId='+_0x2c0641:'';try{eventSource=new EventSource(_0x3a457e(0xf1)+_0x3db830),eventSource['addEventListener'](_0x3a457e(0xf0),_0x126e0e=>{const _0x141d7b=_0x3a457e;broadcast({'type':_0x141d7b(0xf0),'data':_0x126e0e[_0x141d7b(0xc7)]}),reconnectAttempts=0x0;}),eventSource[_0x3a457e(0xbc)](_0x3a457e(0xae),_0x50c613=>{const _0x461bad=_0x3a457e;broadcast({'type':_0x461bad(0xae),'data':_0x50c613[_0x461bad(0xc7)]});}),eventSource['addEventListener'](_0x3a457e(0xaf),_0x1cacc=>{const _0x17c4ea=_0x3a457e;broadcast({'type':_0x17c4ea(0xaf),'data':_0x1cacc[_0x17c4ea(0xc7)]});}),eventSource[_0x3a457e(0xbc)](_0x3a457e(0xcc),_0x56c456=>{const _0x146f42=_0x3a457e;broadcast({'type':_0x146f42(0xcc),'data':_0x56c456[_0x146f42(0xc7)]});}),eventSource['addEventListener'](_0x3a457e(0xda),_0x211723=>{const _0x320262=_0x3a457e;broadcast({'type':'queue-position','data':_0x211723[_0x320262(0xc7)]});}),eventSource['addEventListener'](_0x3a457e(0xd6),()=>{const _0x15a584=_0x3a457e;broadcast({'type':_0x15a584(0xb6)}),reconnectAttempts=0x0;}),eventSource['addEventListener'](_0x3a457e(0xea),_0x16801c=>{const _0x3e67cd=_0x3a457e;console[_0x3e67cd(0xea)]('[SSE\x20Worker]\x20Connection\x20error:',_0x16801c),broadcast({'type':'error','error':_0x3e67cd(0xd4)}),eventSource&&(eventSource['close'](),eventSource=null),scheduleReconnect();});}catch(_0x213137){console[_0x3a457e(0xea)](_0x3a457e(0xc5),_0x213137),broadcast({'type':'error','error':_0x213137[_0x3a457e(0xb7)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x178652=_0x19ecf2;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x178652(0xdc)]===0x0)return;const _0x51d6db=Math[_0x178652(0xeb)](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console['log'](_0x178652(0xb8)+_0x51d6db+_0x178652(0xf3)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x47eea0=_0x178652;ports[_0x47eea0(0xdc)]>0x0&&connect(currentUserId);},_0x51d6db);}function broadcast(_0x3a6c87){const _0x25f7d0=_0x19ecf2,_0x1fa988=[];ports['forEach'](_0x2e6ddd=>{const _0x1f6036=_0x4425;try{_0x2e6ddd[_0x1f6036(0xbd)](_0x3a6c87);}catch(_0x2a2182){console['warn'](_0x1f6036(0xd1),_0x2a2182),_0x1fa988[_0x1f6036(0xc4)](_0x2e6ddd);}}),_0x1fa988['length']>0x0&&cleanUpDeadPorts(_0x1fa988),ports[_0x25f7d0(0xdc)]===0x0&&eventSource&&(console[_0x25f7d0(0xdb)](_0x25f7d0(0xef)),eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x212a0d,_0x482882){const _0x43eaa1=_0x19ecf2;let _0x528756=taskStreams[_0x43eaa1(0xc8)](_0x482882);!_0x528756&&(_0x528756={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x43eaa1(0xb4)](_0x482882,_0x528756));_0x528756['subscribedPorts'][_0x43eaa1(0xd7)](_0x212a0d);if(!_0x528756[_0x43eaa1(0xe5)]||_0x528756[_0x43eaa1(0xe5)][_0x43eaa1(0xf6)]===EventSource[_0x43eaa1(0xb3)])connectTaskStream(_0x482882);else{if(_0x528756[_0x43eaa1(0xe5)][_0x43eaa1(0xf6)]===EventSource[_0x43eaa1(0xf5)])try{_0x212a0d[_0x43eaa1(0xbd)]({'type':_0x43eaa1(0xf7),'taskId':_0x482882});}catch(_0x545563){}}}function _0x4425(_0x3216c9,_0xa4b6b){_0x3216c9=_0x3216c9-0xad;const _0x339278=_0x3392();let _0x442562=_0x339278[_0x3216c9];if(_0x4425['sgYAUH']===undefined){var _0x31ae87=function(_0x2c03a2){const _0x1e9cc6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c0641='',_0x3db830='';for(let _0x126e0e=0x0,_0x50c613,_0x1cacc,_0x56c456=0x0;_0x1cacc=_0x2c03a2['charAt'](_0x56c456++);~_0x1cacc&&(_0x50c613=_0x126e0e%0x4?_0x50c613*0x40+_0x1cacc:_0x1cacc,_0x126e0e++%0x4)?_0x2c0641+=String['fromCharCode'](0xff&_0x50c613>>(-0x2*_0x126e0e&0x6)):0x0){_0x1cacc=_0x1e9cc6['indexOf'](_0x1cacc);}for(let _0x211723=0x0,_0x16801c=_0x2c0641['length'];_0x211723<_0x16801c;_0x211723++){_0x3db830+='%'+('00'+_0x2c0641['charCodeAt'](_0x211723)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3db830);};_0x4425['FgxlCe']=_0x31ae87,_0x4425['kGLIMF']={},_0x4425['sgYAUH']=!![];}const _0x53dc60=_0x339278[0x0],_0x568e49=_0x3216c9+_0x53dc60,_0x480ebe=_0x4425['kGLIMF'][_0x568e49];return!_0x480ebe?(_0x442562=_0x4425['FgxlCe'](_0x442562),_0x4425['kGLIMF'][_0x568e49]=_0x442562):_0x442562=_0x480ebe,_0x442562;}function unsubscribeTask(_0x4a7fac,_0x2dd49d){const _0x5277f8=_0x19ecf2,_0x163446=taskStreams[_0x5277f8(0xc8)](_0x2dd49d);if(!_0x163446)return;_0x163446['subscribedPorts']['delete'](_0x4a7fac),_0x163446[_0x5277f8(0xca)]['size']===0x0&&deferredCloseTaskStream(_0x2dd49d);}function connectTaskStream(_0x3eaa73){const _0x3c47d0=_0x19ecf2,_0x4b0afc=taskStreams[_0x3c47d0(0xc8)](_0x3eaa73);if(!_0x4b0afc)return;_0x4b0afc['eventSource']&&(_0x4b0afc['eventSource'][_0x3c47d0(0xc3)](),_0x4b0afc[_0x3c47d0(0xe5)]=null);try{_0x4b0afc[_0x3c47d0(0xe5)]=new EventSource(_0x3c47d0(0xc1)+_0x3eaa73+'/stream');for(const _0x4a55d4 of TASK_STREAM_EVENTS){_0x4b0afc[_0x3c47d0(0xe5)][_0x3c47d0(0xbc)](_0x4a55d4,_0x4ce08e=>{const _0x3ea5ee=_0x3c47d0;broadcastToTask(_0x3eaa73,_0x3ea5ee(0xe7)+_0x4a55d4,_0x4ce08e[_0x3ea5ee(0xc7)]),_0x4b0afc[_0x3ea5ee(0xb1)]=0x0;});}_0x4b0afc['eventSource'][_0x3c47d0(0xbc)](_0x3c47d0(0xd6),()=>{const _0x37f68f=_0x3c47d0;broadcastToTask(_0x3eaa73,_0x37f68f(0xf7),'{}'),_0x4b0afc[_0x37f68f(0xb1)]=0x0;}),_0x4b0afc[_0x3c47d0(0xe5)][_0x3c47d0(0xbc)](_0x3c47d0(0xea),()=>{const _0x3079a7=_0x3c47d0;broadcastToTask(_0x3eaa73,_0x3079a7(0xbe),JSON[_0x3079a7(0xf4)]({'error':_0x3079a7(0xd4)})),_0x4b0afc[_0x3079a7(0xe5)]&&(_0x4b0afc[_0x3079a7(0xe5)]['close'](),_0x4b0afc[_0x3079a7(0xe5)]=null),scheduleTaskReconnect(_0x3eaa73);});}catch(_0x1897eb){console[_0x3c47d0(0xea)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x3eaa73+':',_0x1897eb),broadcastToTask(_0x3eaa73,'task:error',JSON['stringify']({'error':_0x1897eb[_0x3c47d0(0xb7)]})),scheduleTaskReconnect(_0x3eaa73);}}function broadcastToTask(_0x3b8ed1,_0xc72d09,_0x5f274b){const _0xa59e0=_0x19ecf2,_0x873d6f=taskStreams['get'](_0x3b8ed1);if(!_0x873d6f)return;const _0xc4f309=[];_0x873d6f[_0xa59e0(0xca)]['forEach'](_0x3be699=>{const _0x45e5e9=_0xa59e0;try{_0x3be699['postMessage']({'type':_0xc72d09,'taskId':_0x3b8ed1,'data':_0x5f274b});}catch(_0x130718){_0xc4f309[_0x45e5e9(0xc4)](_0x3be699);}}),_0xc4f309['length']>0x0&&(_0xc4f309[_0xa59e0(0xdd)](_0x4863d3=>_0x873d6f['subscribedPorts'][_0xa59e0(0xe1)](_0x4863d3)),cleanUpDeadPorts(_0xc4f309),_0x873d6f['subscribedPorts']['size']===0x0&&closeTaskStream(_0x3b8ed1));}function closeTaskStream(_0xc1d1ef){const _0x30b98d=_0x19ecf2,_0x4c2372=taskStreams[_0x30b98d(0xc8)](_0xc1d1ef);if(!_0x4c2372)return;_0x4c2372['eventSource']&&_0x4c2372[_0x30b98d(0xe5)][_0x30b98d(0xc3)](),_0x4c2372[_0x30b98d(0xbb)]&&clearTimeout(_0x4c2372[_0x30b98d(0xbb)]),taskStreams[_0x30b98d(0xe1)](_0xc1d1ef);}function deferredCloseTaskStream(_0x2ad2af){setTimeout(()=>{const _0x368d0f=_0x4425,_0x3521b3=taskStreams['get'](_0x2ad2af);_0x3521b3&&_0x3521b3['subscribedPorts'][_0x368d0f(0xdc)]===0x0&&closeTaskStream(_0x2ad2af);},0x0);}function scheduleTaskReconnect(_0x34337c){const _0xd8db69=_0x19ecf2,_0x40e882=taskStreams['get'](_0x34337c);if(!_0x40e882||_0x40e882['subscribedPorts']['size']===0x0)return;_0x40e882[_0xd8db69(0xbb)]&&clearTimeout(_0x40e882['reconnectTimeout']);const _0x5e4011=Math[_0xd8db69(0xeb)](0x3e8*Math[_0xd8db69(0xf2)](0x2,_0x40e882[_0xd8db69(0xb1)]),MAX_RECONNECT_DELAY);_0x40e882[_0xd8db69(0xb1)]++,console['log']('[SSE\x20Worker]\x20Scheduling\x20task\x20stream\x20reconnect\x20for\x20'+_0x34337c+'\x20in\x20'+_0x5e4011+'ms'),_0x40e882['reconnectTimeout']=setTimeout(()=>{const _0x47c453=_0xd8db69;_0x40e882[_0x47c453(0xca)]['size']>0x0&&connectTaskStream(_0x34337c);},_0x5e4011);}function cleanUpDeadPorts(_0x28d828){const _0x4324d5=_0x19ecf2;for(const _0x48c18a of _0x28d828){ports['delete'](_0x48c18a),taskStreams[_0x4324d5(0xdd)]((_0x49a216,_0xf5f421)=>{const _0xbd0423=_0x4324d5;_0x49a216[_0xbd0423(0xca)][_0xbd0423(0xe1)](_0x48c18a),_0x49a216[_0xbd0423(0xca)][_0xbd0423(0xdc)]===0x0&&closeTaskStream(_0xf5f421);});}}function removePortFromAllTasks(_0x43b674){const _0x556d2c=_0x19ecf2;taskStreams[_0x556d2c(0xdd)]((_0x3bc129,_0x1411ef)=>{const _0x2ed880=_0x556d2c;_0x3bc129['subscribedPorts'][_0x2ed880(0xba)](_0x43b674)&&(_0x3bc129[_0x2ed880(0xca)]['delete'](_0x43b674),_0x3bc129[_0x2ed880(0xca)][_0x2ed880(0xdc)]===0x0&&closeTaskStream(_0x1411ef));});}self['onconnect']=function(_0x4e62b3){const _0xd7f874=_0x19ecf2,_0x537c34=_0x4e62b3[_0xd7f874(0xe3)][0x0];ports['add'](_0x537c34),console[_0xd7f874(0xdb)](_0xd7f874(0xdf)+ports[_0xd7f874(0xdc)]),_0x537c34[_0xd7f874(0xd5)]=function(_0x2654eb){const _0x13e282=_0xd7f874,{action:_0x31f74a,userId:_0x22bd46,taskId:_0x4bc026}=_0x2654eb[_0x13e282(0xc7)];switch(_0x31f74a){case _0x13e282(0xd8):connect(_0x22bd46);eventSource&&eventSource['readyState']===EventSource[_0x13e282(0xf5)]&&_0x537c34[_0x13e282(0xbd)]({'type':_0x13e282(0xb6)});break;case _0x13e282(0xe9):ports[_0x13e282(0xe1)](_0x537c34),removePortFromAllTasks(_0x537c34),console['log'](_0x13e282(0xec)+ports[_0x13e282(0xdc)]);ports[_0x13e282(0xdc)]===0x0&&eventSource&&(eventSource[_0x13e282(0xc3)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x13e282(0xcd):_0x22bd46!==currentUserId&&connect(_0x22bd46);break;case _0x13e282(0xc6):subscribeTask(_0x537c34,_0x4bc026);break;case _0x13e282(0xd2):unsubscribeTask(_0x537c34,_0x4bc026);break;default:console[_0x13e282(0xe0)](_0x13e282(0xcb),_0x31f74a);}},_0x537c34[_0xd7f874(0xc2)]=function(_0x10ce68){const _0x914788=_0xd7f874;console[_0x914788(0xea)](_0x914788(0xcf),_0x10ce68),ports[_0x914788(0xe1)](_0x537c34),removePortFromAllTasks(_0x537c34);},_0x537c34[_0xd7f874(0xee)]();};
1
+ const _0x31af25=_0x5397;(function(_0x3f9299,_0x16a3ef){const _0x484740=_0x5397,_0x1a43c5=_0x3f9299();while(!![]){try{const _0x3e12dd=-parseInt(_0x484740(0x104))/0x1*(parseInt(_0x484740(0x10c))/0x2)+-parseInt(_0x484740(0x10d))/0x3*(parseInt(_0x484740(0xf6))/0x4)+-parseInt(_0x484740(0x127))/0x5*(parseInt(_0x484740(0x108))/0x6)+-parseInt(_0x484740(0x12c))/0x7+-parseInt(_0x484740(0xef))/0x8+parseInt(_0x484740(0x11c))/0x9*(-parseInt(_0x484740(0xf3))/0xa)+parseInt(_0x484740(0x10a))/0xb;if(_0x3e12dd===_0x16a3ef)break;else _0x1a43c5['push'](_0x1a43c5['shift']());}catch(_0x15e80a){_0x1a43c5['push'](_0x1a43c5['shift']());}}}(_0x4447,0x7fddd));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','logs','metadata','summary',_0x31af25(0x125),_0x31af25(0x122),'complete'];function connect(_0x5626bd){const _0x2cb8bb=_0x31af25;eventSource&&currentUserId!==_0x5626bd&&(eventSource[_0x2cb8bb(0x10b)](),eventSource=null);if(eventSource&&eventSource[_0x2cb8bb(0x12a)]!==EventSource[_0x2cb8bb(0xf7)])return;currentUserId=_0x5626bd;const _0x29e273=_0x5626bd&&_0x5626bd!=='me'?'?userId='+_0x5626bd:'';try{eventSource=new EventSource('/tasks/updates'+_0x29e273),eventSource[_0x2cb8bb(0x116)](_0x2cb8bb(0xfb),_0x54dd0d=>{const _0x6e736f=_0x2cb8bb;broadcast({'type':'snapshot','data':_0x54dd0d[_0x6e736f(0xf1)]}),reconnectAttempts=0x0;}),eventSource['addEventListener'](_0x2cb8bb(0x112),_0x3eaeb3=>{const _0x26995f=_0x2cb8bb;broadcast({'type':'activity','data':_0x3eaeb3[_0x26995f(0xf1)]});}),eventSource[_0x2cb8bb(0x116)](_0x2cb8bb(0x10e),_0x5ee879=>{const _0x5f2c53=_0x2cb8bb;broadcast({'type':_0x5f2c53(0x10e),'data':_0x5ee879[_0x5f2c53(0xf1)]});}),eventSource['addEventListener']('new-task',_0x26217f=>{broadcast({'type':'new-task','data':_0x26217f['data']});}),eventSource['addEventListener']('queue-position',_0x4b0703=>{const _0x2b9915=_0x2cb8bb;broadcast({'type':_0x2b9915(0xfa),'data':_0x4b0703[_0x2b9915(0xf1)]});}),eventSource[_0x2cb8bb(0x116)]('open',()=>{const _0x1bdc48=_0x2cb8bb;broadcast({'type':_0x1bdc48(0x126)}),reconnectAttempts=0x0;}),eventSource[_0x2cb8bb(0x116)](_0x2cb8bb(0x119),_0x2f9099=>{const _0x2e004f=_0x2cb8bb;console[_0x2e004f(0x119)](_0x2e004f(0xf8),_0x2f9099),broadcast({'type':'error','error':_0x2e004f(0x100)}),eventSource&&(eventSource[_0x2e004f(0x10b)](),eventSource=null),scheduleReconnect();});}catch(_0x1e9ff2){console[_0x2cb8bb(0x119)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0x1e9ff2),broadcast({'type':_0x2cb8bb(0x119),'error':_0x1e9ff2[_0x2cb8bb(0x12d)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x5ec78f=_0x31af25;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports['size']===0x0)return;const _0x445986=Math['min'](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x5ec78f(0x11e)](_0x5ec78f(0x102)+_0x445986+_0x5ec78f(0xf4)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{ports['size']>0x0&&connect(currentUserId);},_0x445986);}function _0x5397(_0x55e4d9,_0x68d575){_0x55e4d9=_0x55e4d9-0xee;const _0x4447be=_0x4447();let _0x5397ac=_0x4447be[_0x55e4d9];if(_0x5397['hWpvgl']===undefined){var _0x263b63=function(_0x22b5e0){const _0x509f68='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5626bd='',_0x29e273='';for(let _0x54dd0d=0x0,_0x3eaeb3,_0x5ee879,_0x26217f=0x0;_0x5ee879=_0x22b5e0['charAt'](_0x26217f++);~_0x5ee879&&(_0x3eaeb3=_0x54dd0d%0x4?_0x3eaeb3*0x40+_0x5ee879:_0x5ee879,_0x54dd0d++%0x4)?_0x5626bd+=String['fromCharCode'](0xff&_0x3eaeb3>>(-0x2*_0x54dd0d&0x6)):0x0){_0x5ee879=_0x509f68['indexOf'](_0x5ee879);}for(let _0x4b0703=0x0,_0x2f9099=_0x5626bd['length'];_0x4b0703<_0x2f9099;_0x4b0703++){_0x29e273+='%'+('00'+_0x5626bd['charCodeAt'](_0x4b0703)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x29e273);};_0x5397['FhVIpR']=_0x263b63,_0x5397['jBTDTO']={},_0x5397['hWpvgl']=!![];}const _0xd9cd2c=_0x4447be[0x0],_0x248efb=_0x55e4d9+_0xd9cd2c,_0x44cc4e=_0x5397['jBTDTO'][_0x248efb];return!_0x44cc4e?(_0x5397ac=_0x5397['FhVIpR'](_0x5397ac),_0x5397['jBTDTO'][_0x248efb]=_0x5397ac):_0x5397ac=_0x44cc4e,_0x5397ac;}function broadcast(_0x22e6f8){const _0x2a9857=_0x31af25,_0x451d21=[];ports[_0x2a9857(0x123)](_0x2dbcbf=>{const _0x28a873=_0x2a9857;try{_0x2dbcbf[_0x28a873(0x107)](_0x22e6f8);}catch(_0x564018){console[_0x28a873(0x115)](_0x28a873(0x11a),_0x564018),_0x451d21[_0x28a873(0xf2)](_0x2dbcbf);}}),_0x451d21['length']>0x0&&cleanUpDeadPorts(_0x451d21),ports['size']===0x0&&eventSource&&(console[_0x2a9857(0x11e)](_0x2a9857(0xf9)),eventSource[_0x2a9857(0x10b)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0xba4b61,_0x43ca3c){const _0x2360bc=_0x31af25;let _0x163c46=taskStreams[_0x2360bc(0xfe)](_0x43ca3c);!_0x163c46&&(_0x163c46={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x2360bc(0x129)](_0x43ca3c,_0x163c46));_0x163c46[_0x2360bc(0xff)][_0x2360bc(0x11b)](_0xba4b61);if(!_0x163c46[_0x2360bc(0xf0)]||_0x163c46[_0x2360bc(0xf0)][_0x2360bc(0x12a)]===EventSource['CLOSED'])connectTaskStream(_0x43ca3c);else{if(_0x163c46[_0x2360bc(0xf0)][_0x2360bc(0x12a)]===EventSource[_0x2360bc(0x117)])try{_0xba4b61[_0x2360bc(0x107)]({'type':_0x2360bc(0x124),'taskId':_0x43ca3c});}catch(_0x46a225){}}}function unsubscribeTask(_0x12d8ee,_0x34af32){const _0x44a22f=_0x31af25,_0x47ca9a=taskStreams[_0x44a22f(0xfe)](_0x34af32);if(!_0x47ca9a)return;_0x47ca9a[_0x44a22f(0xff)]['delete'](_0x12d8ee),_0x47ca9a[_0x44a22f(0xff)][_0x44a22f(0xfc)]===0x0&&deferredCloseTaskStream(_0x34af32);}function connectTaskStream(_0x57b90e){const _0x4b23a8=_0x31af25,_0x56abea=taskStreams[_0x4b23a8(0xfe)](_0x57b90e);if(!_0x56abea)return;_0x56abea[_0x4b23a8(0xf0)]&&(_0x56abea[_0x4b23a8(0xf0)][_0x4b23a8(0x10b)](),_0x56abea[_0x4b23a8(0xf0)]=null);try{_0x56abea[_0x4b23a8(0xf0)]=new EventSource(_0x4b23a8(0x110)+_0x57b90e+_0x4b23a8(0x10f));for(const _0x13b743 of TASK_STREAM_EVENTS){_0x56abea[_0x4b23a8(0xf0)]['addEventListener'](_0x13b743,_0xe657f1=>{const _0x1e855e=_0x4b23a8;broadcastToTask(_0x57b90e,'task:'+_0x13b743,_0xe657f1[_0x1e855e(0xf1)]),_0x56abea['reconnectAttempts']=0x0;});}_0x56abea[_0x4b23a8(0xf0)][_0x4b23a8(0x116)](_0x4b23a8(0x114),()=>{const _0x21ae0a=_0x4b23a8;broadcastToTask(_0x57b90e,_0x21ae0a(0x124),'{}'),_0x56abea[_0x21ae0a(0x120)]=0x0;}),_0x56abea[_0x4b23a8(0xf0)][_0x4b23a8(0x116)](_0x4b23a8(0x119),()=>{const _0x71ab42=_0x4b23a8;broadcastToTask(_0x57b90e,_0x71ab42(0x103),JSON['stringify']({'error':_0x71ab42(0x100)})),_0x56abea[_0x71ab42(0xf0)]&&(_0x56abea[_0x71ab42(0xf0)][_0x71ab42(0x10b)](),_0x56abea[_0x71ab42(0xf0)]=null),scheduleTaskReconnect(_0x57b90e);});}catch(_0x5574e2){console[_0x4b23a8(0x119)](_0x4b23a8(0x12b)+_0x57b90e+':',_0x5574e2),broadcastToTask(_0x57b90e,_0x4b23a8(0x103),JSON[_0x4b23a8(0x111)]({'error':_0x5574e2[_0x4b23a8(0x12d)]})),scheduleTaskReconnect(_0x57b90e);}}function broadcastToTask(_0x51390b,_0x4e719d,_0x47b4e4){const _0x46a7d0=_0x31af25,_0xb2ab13=taskStreams[_0x46a7d0(0xfe)](_0x51390b);if(!_0xb2ab13)return;const _0x5e52c6=[];_0xb2ab13[_0x46a7d0(0xff)]['forEach'](_0x4472f0=>{const _0x353b88=_0x46a7d0;try{_0x4472f0[_0x353b88(0x107)]({'type':_0x4e719d,'taskId':_0x51390b,'data':_0x47b4e4});}catch(_0x6bc908){_0x5e52c6[_0x353b88(0xf2)](_0x4472f0);}}),_0x5e52c6[_0x46a7d0(0xfd)]>0x0&&(_0x5e52c6[_0x46a7d0(0x123)](_0x495636=>_0xb2ab13['subscribedPorts']['delete'](_0x495636)),cleanUpDeadPorts(_0x5e52c6),_0xb2ab13[_0x46a7d0(0xff)]['size']===0x0&&closeTaskStream(_0x51390b));}function closeTaskStream(_0x46cbb3){const _0x1a755c=_0x31af25,_0xb4231e=taskStreams[_0x1a755c(0xfe)](_0x46cbb3);if(!_0xb4231e)return;_0xb4231e[_0x1a755c(0xf0)]&&_0xb4231e[_0x1a755c(0xf0)]['close'](),_0xb4231e[_0x1a755c(0xee)]&&clearTimeout(_0xb4231e[_0x1a755c(0xee)]),taskStreams[_0x1a755c(0xf5)](_0x46cbb3);}function deferredCloseTaskStream(_0xf5228d){setTimeout(()=>{const _0x5ad102=_0x5397,_0x138639=taskStreams[_0x5ad102(0xfe)](_0xf5228d);_0x138639&&_0x138639[_0x5ad102(0xff)][_0x5ad102(0xfc)]===0x0&&closeTaskStream(_0xf5228d);},0x0);}function scheduleTaskReconnect(_0xf30ecd){const _0x1711bf=_0x31af25,_0x384d32=taskStreams[_0x1711bf(0xfe)](_0xf30ecd);if(!_0x384d32||_0x384d32['subscribedPorts'][_0x1711bf(0xfc)]===0x0)return;_0x384d32['reconnectTimeout']&&clearTimeout(_0x384d32[_0x1711bf(0xee)]);const _0x5bea86=Math[_0x1711bf(0x113)](0x3e8*Math[_0x1711bf(0x128)](0x2,_0x384d32[_0x1711bf(0x120)]),MAX_RECONNECT_DELAY);_0x384d32[_0x1711bf(0x120)]++,console['log']('[SSE\x20Worker]\x20Scheduling\x20task\x20stream\x20reconnect\x20for\x20'+_0xf30ecd+'\x20in\x20'+_0x5bea86+'ms'),_0x384d32[_0x1711bf(0xee)]=setTimeout(()=>{const _0x1acc94=_0x1711bf;_0x384d32[_0x1acc94(0xff)][_0x1acc94(0xfc)]>0x0&&connectTaskStream(_0xf30ecd);},_0x5bea86);}function cleanUpDeadPorts(_0x4977da){const _0x866196=_0x31af25;for(const _0x4b7636 of _0x4977da){ports[_0x866196(0xf5)](_0x4b7636),taskStreams[_0x866196(0x123)]((_0x37b9e9,_0x5bcbda)=>{const _0x3fb193=_0x866196;_0x37b9e9['subscribedPorts'][_0x3fb193(0xf5)](_0x4b7636),_0x37b9e9[_0x3fb193(0xff)]['size']===0x0&&closeTaskStream(_0x5bcbda);});}}function removePortFromAllTasks(_0x372205){const _0x3231f2=_0x31af25;taskStreams[_0x3231f2(0x123)]((_0x519ed2,_0x39a6ec)=>{const _0x53093d=_0x3231f2;_0x519ed2[_0x53093d(0xff)][_0x53093d(0x105)](_0x372205)&&(_0x519ed2[_0x53093d(0xff)]['delete'](_0x372205),_0x519ed2['subscribedPorts'][_0x53093d(0xfc)]===0x0&&closeTaskStream(_0x39a6ec));});}self[_0x31af25(0x11d)]=function(_0x5db33c){const _0x1959f0=_0x31af25,_0x36ac6e=_0x5db33c[_0x1959f0(0x118)][0x0];ports[_0x1959f0(0x11b)](_0x36ac6e),console[_0x1959f0(0x11e)]('[SSE\x20Worker]\x20New\x20port\x20connected.\x20Total\x20ports:\x20'+ports[_0x1959f0(0xfc)]),_0x36ac6e[_0x1959f0(0x11f)]=function(_0x49d088){const _0x41103b=_0x1959f0,{action:_0x2b0a5f,userId:_0x5f4d59,taskId:_0x51d7c3}=_0x49d088['data'];switch(_0x2b0a5f){case _0x41103b(0x106):connect(_0x5f4d59);eventSource&&eventSource[_0x41103b(0x12a)]===EventSource[_0x41103b(0x117)]&&_0x36ac6e['postMessage']({'type':'connected'});break;case _0x41103b(0x121):ports[_0x41103b(0xf5)](_0x36ac6e),removePortFromAllTasks(_0x36ac6e),console['log']('[SSE\x20Worker]\x20Port\x20disconnected.\x20Total\x20ports:\x20'+ports[_0x41103b(0xfc)]);ports[_0x41103b(0xfc)]===0x0&&eventSource&&(eventSource[_0x41103b(0x10b)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x41103b(0x101):_0x5f4d59!==currentUserId&&connect(_0x5f4d59);break;case'subscribeTask':subscribeTask(_0x36ac6e,_0x51d7c3);break;case _0x41103b(0x109):unsubscribeTask(_0x36ac6e,_0x51d7c3);break;default:console[_0x41103b(0x115)]('[SSE\x20Worker]\x20Unknown\x20action:',_0x2b0a5f);}},_0x36ac6e['onmessageerror']=function(_0x484f20){const _0x4287bc=_0x1959f0;console['error']('[SSE\x20Worker]\x20Port\x20message\x20error:',_0x484f20),ports[_0x4287bc(0xf5)](_0x36ac6e),removePortFromAllTasks(_0x36ac6e);},_0x36ac6e[_0x1959f0(0x12e)]();};function _0x4447(){const _0x5f360d=['w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','CxvLDwuTCg9ZAxrPB24','C25HChnOB3q','C2L6zq','BgvUz3rO','z2v0','C3vIC2nYAwjLzfbVCNrZ','q29UBMvJDgLVBIbLCNjVCG','y2HHBMDLrMLSDgvY','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','DgfZAZPLCNjVCG','mJGZnJj4A3HMCve','AgfZ','y29UBMvJDa','Cg9ZDe1LC3nHz2u','nZjowuHcA2e','Dw5ZDwjZy3jPyMvuyxnR','ntm3mtiXnJrIDvDOrNm','y2XVC2u','nJH4AeLmAva','otu4mK5TthrHzW','C3rHDhvZ','l3n0CMvHBq','l3rHC2TZlW','C3rYAw5NAwz5','ywn0AxzPDhK','BwLU','B3bLBG','D2fYBG','ywrKrxzLBNrmAxn0zw5LCG','t1bftG','Cg9YDhm','zxjYB3i','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','ywrK','mZa0ode4m2jNA3Hlta','B25JB25Uzwn0','Bg9N','B25TzxnZywDL','CMvJB25Uzwn0qxr0zw1WDhm','zgLZy29UBMvJDa','yxbWlxnLCNzLCI1ZDgf0Dxm','zM9YrwfJAa','DgfZAZPJB25Uzwn0zwq','y2HHBMDLzc1MAwXLCW','y29UBMvJDgvK','mtuYndK1Eef1uej5','Cg93','C2v0','CMvHzhLtDgf0zq','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','nJKXmZaYnxjfs3vTwG','BwvZC2fNzq','C3rHCNq','CMvJB25Uzwn0vgLTzw91Da','oda3ndi0ohz4wLHrBq','zxzLBNrtB3vYy2u','zgf0yq','ChvZAa','mZbmz2Xbvhe','BxmGkgf0DgvTChqG','zgvSzxrL','mJbXANntC2u','q0Xpu0ve'];_0x4447=function(){return _0x5f360d;};return _0x4447();}
@@ -751,7 +751,7 @@ header.app-header {
751
751
  position: absolute;
752
752
  top: calc(100% + 8px);
753
753
  right: 0;
754
- min-width: 220px;
754
+ min-width: 280px;
755
755
  background: var(--color-surface);
756
756
  border: 1px solid var(--color-border);
757
757
  border-radius: var(--radius-medium);
@@ -14949,6 +14949,121 @@ select option[value=""] {
14949
14949
  margin-bottom: 0;
14950
14950
  }
14951
14951
 
14952
+ .judgment-variant-legend {
14953
+ margin-top: 16px;
14954
+ margin-bottom: 0;
14955
+ padding: 10px 12px;
14956
+ background: var(--color-surface);
14957
+ border: 1px solid var(--color-border);
14958
+ border-radius: 8px;
14959
+ }
14960
+
14961
+ .judgment-variant-legend-summary {
14962
+ display: flex;
14963
+ align-items: center;
14964
+ justify-content: space-between;
14965
+ gap: 8px;
14966
+ cursor: pointer;
14967
+ list-style: none;
14968
+ }
14969
+
14970
+ .judgment-variant-legend-summary::-webkit-details-marker {
14971
+ display: none;
14972
+ }
14973
+
14974
+ .judgment-variant-legend-summary::before {
14975
+ content: '▸';
14976
+ color: var(--color-text-muted);
14977
+ font-size: 11px;
14978
+ margin-right: 2px;
14979
+ transform-origin: center;
14980
+ transition: transform 0.15s ease;
14981
+ }
14982
+
14983
+ .judgment-variant-legend[open] .judgment-variant-legend-summary::before {
14984
+ transform: rotate(90deg);
14985
+ }
14986
+
14987
+ .judgment-variant-legend-title {
14988
+ font-size: 12px;
14989
+ font-weight: 600;
14990
+ color: var(--color-text);
14991
+ letter-spacing: 0.02em;
14992
+ }
14993
+
14994
+ .judgment-variant-legend-summary-meta {
14995
+ font-size: 12px;
14996
+ color: var(--color-text-muted);
14997
+ }
14998
+
14999
+ .judgment-variant-legend-note {
15000
+ margin: 8px 0 8px;
15001
+ font-size: 12px;
15002
+ color: var(--color-text-muted);
15003
+ }
15004
+
15005
+ .judgment-variant-legend-table {
15006
+ width: 100%;
15007
+ margin-top: 2px;
15008
+ border-collapse: collapse;
15009
+ font-size: 12px;
15010
+ }
15011
+
15012
+ .judgment-variant-legend-table th,
15013
+ .judgment-variant-legend-table td {
15014
+ border: 1px solid var(--color-border);
15015
+ padding: 6px 8px;
15016
+ text-align: left;
15017
+ vertical-align: top;
15018
+ }
15019
+
15020
+ .judgment-variant-legend-table th {
15021
+ background: var(--color-surface-muted);
15022
+ font-weight: 600;
15023
+ }
15024
+
15025
+ .judgment-variant-task-id-row {
15026
+ display: flex;
15027
+ align-items: center;
15028
+ gap: 8px;
15029
+ flex-wrap: wrap;
15030
+ }
15031
+
15032
+ .judgment-variant-task-id {
15033
+ font-family: var(--font-mono);
15034
+ font-size: 11px;
15035
+ padding: 2px 6px;
15036
+ border-radius: 4px;
15037
+ background: var(--color-surface-muted);
15038
+ }
15039
+
15040
+ .judgment-variant-copy-id-btn {
15041
+ border: 1px solid var(--color-border);
15042
+ background: var(--color-surface-muted);
15043
+ color: var(--color-text-muted);
15044
+ border-radius: 4px;
15045
+ font-size: 11px;
15046
+ line-height: 1;
15047
+ padding: 4px 7px;
15048
+ cursor: pointer;
15049
+ }
15050
+
15051
+ .judgment-variant-copy-id-btn:hover {
15052
+ border-color: var(--color-primary);
15053
+ color: var(--color-primary);
15054
+ }
15055
+
15056
+ .judgment-variant-copy-id-btn:disabled {
15057
+ opacity: 0.7;
15058
+ cursor: default;
15059
+ }
15060
+
15061
+ .judgment-variant-task-name {
15062
+ display: block;
15063
+ margin-top: 4px;
15064
+ color: var(--color-text-muted);
15065
+ }
15066
+
14952
15067
  /* Preview Placeholder */
14953
15068
  .preview-placeholder {
14954
15069
  display: flex;
@@ -15776,6 +15891,21 @@ select option[value=""] {
15776
15891
  color: var(--color-text-muted);
15777
15892
  }
15778
15893
 
15894
+ input.generating {
15895
+ background: linear-gradient(90deg, var(--color-surface) 0%, var(--color-bg-secondary) 50%, var(--color-surface) 100%);
15896
+ background-size: 200% 100%;
15897
+ animation: generating-shimmer 1.5s ease-in-out infinite;
15898
+ }
15899
+
15900
+ input.generating::placeholder {
15901
+ color: var(--color-text-secondary, var(--color-text-muted));
15902
+ }
15903
+
15904
+ @keyframes generating-shimmer {
15905
+ 0% { background-position: 200% 0; }
15906
+ 100% { background-position: -200% 0; }
15907
+ }
15908
+
15779
15909
  .objective-instructions-input {
15780
15910
  flex: 1;
15781
15911
  min-height: 150px;
@@ -17994,6 +18124,11 @@ body.task-list-open .task-list-side-trigger {
17994
18124
  margin-left: 12px;
17995
18125
  }
17996
18126
 
18127
+ .provider-account-actions .btn-small {
18128
+ padding: 4px 10px;
18129
+ font-size: 12px;
18130
+ }
18131
+
17997
18132
  .btn-icon {
17998
18133
  display: flex;
17999
18134
  align-items: center;
@@ -19326,4 +19461,3 @@ body.task-list-open .task-list-side-trigger {
19326
19461
  :root[data-theme="dark"] .task-todo-icon.icon-pending {
19327
19462
  background-color: var(--color-surface);
19328
19463
  }
19329
-
@@ -177,6 +177,13 @@
177
177
  </svg>
178
178
  <span class="option-text">Resubmit Task...</span>
179
179
  </button>
180
+ <button class="dropdown-item" id="more-save-as-objective" data-action="save-as-objective">
181
+ <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">
182
+ <circle cx="12" cy="12" r="10"></circle>
183
+ <circle cx="12" cy="12" r="3"></circle>
184
+ </svg>
185
+ <span class="option-text">Save as Objective...</span>
186
+ </button>
180
187
  <button class="dropdown-item" id="more-pull-changes" data-action="pull-changes">
181
188
  <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">
182
189
  <path d="M12 5v14"></path>
@@ -1128,6 +1135,101 @@
1128
1135
  </div>
1129
1136
  </div>
1130
1137
 
1138
+ <!-- Save as Objective Modal -->
1139
+ <div id="save-as-objective-modal" class="modal" hidden>
1140
+ <div class="modal-overlay"></div>
1141
+ <div class="modal-content">
1142
+ <div class="modal-header">
1143
+ <h2>Save as Objective</h2>
1144
+ <button class="modal-close" id="close-save-as-objective-modal">&times;</button>
1145
+ </div>
1146
+ <div class="modal-body">
1147
+ <div class="modal-section">
1148
+ <p class="field-hint">Create a reusable objective from this task's configuration.</p>
1149
+ </div>
1150
+
1151
+ <!-- Name Field -->
1152
+ <div class="modal-section">
1153
+ <label for="save-objective-name" class="field-label" style="display: block; margin-bottom: 6px; font-size: 13px; color: var(--color-text-secondary);">Name</label>
1154
+ <input type="text" id="save-objective-name" class="text-input" placeholder="Objective name" style="width: 100%; padding: 8px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-bg-secondary); color: var(--color-text); font-size: 14px;">
1155
+ </div>
1156
+
1157
+ <!-- Environment (read-only display) -->
1158
+ <div class="modal-section" id="save-objective-env-section">
1159
+ <label class="field-label" style="display: block; margin-bottom: 6px; font-size: 13px; color: var(--color-text-secondary);">Environment</label>
1160
+ <div id="save-objective-environment" style="padding: 8px 12px; background: var(--color-bg-tertiary); border-radius: var(--radius-small); font-size: 14px; color: var(--color-text-secondary);"></div>
1161
+ </div>
1162
+
1163
+ <!-- Agent Selection -->
1164
+ <div class="modal-section">
1165
+ <label class="field-label" style="display: block; margin-bottom: 6px; font-size: 13px; color: var(--color-text-secondary);">Agents</label>
1166
+ <div style="display: flex; align-items: center; gap: 8px;">
1167
+ <div class="agent-selector" role="group" aria-label="Agent selection" id="save-objective-agent-selector">
1168
+ <div class="agent-card" data-agent="claude" data-count="0">
1169
+ <button type="button" class="agent-btn-decrement" data-counter="down" aria-label="Decrease Claude count" title="Remove Claude">&#8722;</button>
1170
+ <div class="agent-icon" role="button" tabindex="0" aria-label="Claude" title="Claude (click to add, right-click to remove)">
1171
+ <svg viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
1172
+ <path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 4.212z"/>
1173
+ </svg>
1174
+ </div>
1175
+ <button type="button" class="agent-btn-increment" data-counter="up" aria-label="Increase Claude count" title="Add Claude">+</button>
1176
+ <div class="agent-count-badge" id="save-objective-claude-count-display">0</div>
1177
+ <input type="number" min="0" max="5" step="1" id="save-objective-claude-count" value="0" hidden readonly aria-label="Number of Claude agents">
1178
+ </div>
1179
+ <div class="agent-card" data-agent="codex" data-count="0">
1180
+ <button type="button" class="agent-btn-decrement" data-counter="down" aria-label="Decrease Codex count" title="Remove Codex">&#8722;</button>
1181
+ <div class="agent-icon" role="button" tabindex="0" aria-label="Codex" title="Codex (click to add, right-click to remove)">
1182
+ <svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
1183
+ <path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"/>
1184
+ </svg>
1185
+ </div>
1186
+ <button type="button" class="agent-btn-increment" data-counter="up" aria-label="Increase Codex count" title="Add Codex">+</button>
1187
+ <div class="agent-count-badge" id="save-objective-codex-count-display">0</div>
1188
+ <input type="number" min="0" max="5" step="1" id="save-objective-codex-count" value="0" hidden readonly aria-label="Number of Codex agents">
1189
+ </div>
1190
+ <div class="agent-card" data-agent="gemini" data-count="0">
1191
+ <button type="button" class="agent-btn-decrement" data-counter="down" aria-label="Decrease Gemini count" title="Remove Gemini">&#8722;</button>
1192
+ <div class="agent-icon" role="button" tabindex="0" aria-label="Gemini" title="Gemini (click to add, right-click to remove)">
1193
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1194
+ <path d="M12 2L9.09 9.09 2 12l7.09 2.91L12 22l2.91-7.09L22 12l-7.09-2.91z"></path>
1195
+ </svg>
1196
+ </div>
1197
+ <button type="button" class="agent-btn-increment" data-counter="up" aria-label="Increase Gemini count" title="Add Gemini">+</button>
1198
+ <div class="agent-count-badge" id="save-objective-gemini-count-display">0</div>
1199
+ <input type="number" min="0" max="5" step="1" id="save-objective-gemini-count" value="0" hidden readonly aria-label="Number of Gemini agents">
1200
+ </div>
1201
+ </div>
1202
+ <div class="agent-hint" id="save-objective-agent-hint" data-visible="true">
1203
+ <span class="agent-hint-arrow">&larr;</span>
1204
+ <span class="agent-hint-text">Select Agents</span>
1205
+ </div>
1206
+ </div>
1207
+ </div>
1208
+
1209
+ <!-- Instructions Section -->
1210
+ <div class="modal-section">
1211
+ <label for="save-objective-instructions" class="field-label" style="display: block; margin-bottom: 6px; font-size: 13px; color: var(--color-text-secondary);">Instructions</label>
1212
+ <div class="resubmit-markdown-editor-container">
1213
+ <textarea
1214
+ id="save-objective-instructions"
1215
+ class="resubmit-instructions-textarea"
1216
+ placeholder="Enter instructions for this objective..."
1217
+ rows="3"></textarea>
1218
+ </div>
1219
+ </div>
1220
+
1221
+ <!-- Error Message Container -->
1222
+ <div class="modal-section" id="save-objective-error-section" hidden>
1223
+ <div id="save-objective-error-message" style="color: var(--color-danger); font-size: 13px; padding: 8px 12px; background: rgba(229,83,104,0.08); border-radius: 4px; border-left: 3px solid var(--color-danger);"></div>
1224
+ </div>
1225
+ </div>
1226
+ <div class="modal-footer">
1227
+ <button class="btn-ghost" id="cancel-save-as-objective">Cancel</button>
1228
+ <button class="btn-primary" id="confirm-save-as-objective">Save Objective</button>
1229
+ </div>
1230
+ </div>
1231
+ </div>
1232
+
1131
1233
  <!-- Follow-Up History Modal (Read-Only) -->
1132
1234
  <div id="follow-up-history-modal" class="modal" hidden>
1133
1235
  <div class="modal-overlay"></div>