@profoundlogic/coderflow-server 0.4.1 → 0.4.4

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 (159) hide show
  1. package/README.md +1 -1
  2. package/dist/README.md +1 -1
  3. package/dist/base-image/Dockerfile +2 -1
  4. package/dist/base-image/entrypoint.sh +11 -1
  5. package/dist/base-image/rewind-files.sh +197 -0
  6. package/dist/base-image/sync-repos.sh +53 -3
  7. package/dist/coder-server.js +1 -1
  8. package/dist/config.js +1 -1
  9. package/dist/lib/agent-keepalive.js +1 -1
  10. package/dist/lib/agent-models.js +1 -1
  11. package/dist/lib/api-keys.js +1 -1
  12. package/dist/lib/apiKeys.js +1 -1
  13. package/dist/lib/app-server-ports.js +1 -1
  14. package/dist/lib/auto-judge.js +1 -1
  15. package/dist/lib/basic-auth.js +1 -1
  16. package/dist/lib/build-history.js +1 -1
  17. package/dist/lib/build-output-service.js +1 -1
  18. package/dist/lib/build-scheduler.js +1 -1
  19. package/dist/lib/build-service.js +1 -1
  20. package/dist/lib/ca-certificates.js +1 -1
  21. package/dist/lib/claude-oauth-refresh.js +1 -1
  22. package/dist/lib/cli/build.js +1 -1
  23. package/dist/lib/cli/config-command.js +1 -1
  24. package/dist/lib/cli/config.js +1 -1
  25. package/dist/lib/cli/create-user.js +1 -1
  26. package/dist/lib/cli/init.js +1 -1
  27. package/dist/lib/cli/jira.js +1 -1
  28. package/dist/lib/cli/license.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/config-migration.js +1 -1
  31. package/dist/lib/container-credential-sync.js +1 -1
  32. package/dist/lib/container-tokens.js +1 -1
  33. package/dist/lib/data-dir.js +1 -1
  34. package/dist/lib/deployment-history.js +1 -1
  35. package/dist/lib/deployment-service.js +1 -1
  36. package/dist/lib/docker-utils.js +1 -1
  37. package/dist/lib/email.js +1 -1
  38. package/dist/lib/emailTemplates.js +1 -1
  39. package/dist/lib/entitlement.js +1 -1
  40. package/dist/lib/fetch-utils.js +1 -1
  41. package/dist/lib/git-askpass.sh +16 -0
  42. package/dist/lib/git-commit-details-route.js +1 -1
  43. package/dist/lib/git-history-diff-guardrails.js +1 -1
  44. package/dist/lib/git-provider-service.js +1 -1
  45. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  46. package/dist/lib/git-provider-setup/index.js +1 -1
  47. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  48. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  49. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  50. package/dist/lib/git-providers/github-app-provider.js +1 -1
  51. package/dist/lib/git-providers/index.js +1 -1
  52. package/dist/lib/git-providers/provider-factory.js +1 -1
  53. package/dist/lib/git-providers/provider-interface.js +1 -1
  54. package/dist/lib/github-urls.js +1 -1
  55. package/dist/lib/group-objective-linking.js +1 -1
  56. package/dist/lib/jira-client.js +1 -1
  57. package/dist/lib/judge-blinding.js +1 -1
  58. package/dist/lib/logger.js +1 -1
  59. package/dist/lib/model-fetcher.js +1 -1
  60. package/dist/lib/notifications.js +1 -1
  61. package/dist/lib/objective-context.js +1 -0
  62. package/dist/lib/oidc-auth.js +1 -1
  63. package/dist/lib/oidc-device-flow.js +1 -1
  64. package/dist/lib/passwordTokens.js +1 -1
  65. package/dist/lib/pin-cascade.js +1 -1
  66. package/dist/lib/provider-accounts.js +1 -1
  67. package/dist/lib/provider-oauth.js +1 -1
  68. package/dist/lib/provider-profile.js +1 -1
  69. package/dist/lib/provider-token-refresh.js +1 -1
  70. package/dist/lib/request-url.js +1 -1
  71. package/dist/lib/rewind.js +1 -1
  72. package/dist/lib/roles.js +1 -1
  73. package/dist/lib/secrets.js +1 -1
  74. package/dist/lib/setup-repo-git-auth.js +1 -1
  75. package/dist/lib/state-capture.js +1 -1
  76. package/dist/lib/static-files.js +1 -1
  77. package/dist/lib/task-name-format.js +1 -1
  78. package/dist/lib/task-name-generator.js +1 -1
  79. package/dist/lib/user-git-oauth.js +1 -1
  80. package/dist/lib/user-git-tokens.js +1 -1
  81. package/dist/lib/users.js +1 -1
  82. package/dist/middleware/requireAuth.js +1 -1
  83. package/dist/middleware/requireInit.js +1 -1
  84. package/dist/middleware/requirePermission.js +1 -1
  85. package/dist/package.json +2 -1
  86. package/dist/routes/apiKeys.js +1 -1
  87. package/dist/routes/auth-oidc.js +1 -1
  88. package/dist/routes/auth.js +1 -1
  89. package/dist/routes/build.js +1 -1
  90. package/dist/routes/containers.js +1 -1
  91. package/dist/routes/deploy-task.js +1 -1
  92. package/dist/routes/environment-management.js +1 -1
  93. package/dist/routes/environments.js +1 -1
  94. package/dist/routes/external-skills.js +1 -1
  95. package/dist/routes/git-credentials.js +1 -1
  96. package/dist/routes/git-oauth.js +1 -1
  97. package/dist/routes/git-provider-setup.js +1 -1
  98. package/dist/routes/health.js +1 -1
  99. package/dist/routes/jira.js +1 -1
  100. package/dist/routes/objective-management.js +1 -1
  101. package/dist/routes/password.js +1 -1
  102. package/dist/routes/prompt.js +1 -1
  103. package/dist/routes/provider-auth.js +1 -1
  104. package/dist/routes/qa.js +1 -1
  105. package/dist/routes/settings.js +1 -1
  106. package/dist/routes/skill-management.js +1 -1
  107. package/dist/routes/skills.js +1 -1
  108. package/dist/routes/tasks.js +1 -1
  109. package/dist/routes/templates.js +1 -1
  110. package/dist/routes/test-task.js +1 -1
  111. package/dist/routes/test.js +1 -1
  112. package/dist/routes/users.js +1 -1
  113. package/dist/routes/visualizations.js +1 -1
  114. package/dist/scripts/create-user.js +1 -1
  115. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  116. package/dist/shipped-skills/objective-management/SKILL.md +83 -0
  117. package/dist/start.js +1 -1
  118. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  119. package/dist/web-ui/public/activity-feed.js +1 -1
  120. package/dist/web-ui/public/activity-formatters.js +1 -1
  121. package/dist/web-ui/public/agent-event-parser.js +1 -1
  122. package/dist/web-ui/public/app.js +1 -1
  123. package/dist/web-ui/public/approve-dialog.js +1 -1
  124. package/dist/web-ui/public/comments-widget.js +1 -1
  125. package/dist/web-ui/public/diff-utils.js +1 -1
  126. package/dist/web-ui/public/docs/admin/git-providers.md +10 -5
  127. package/dist/web-ui/public/docs/admin/installation.md +1 -1
  128. package/dist/web-ui/public/environments.css +6 -0
  129. package/dist/web-ui/public/environments.html +20 -0
  130. package/dist/web-ui/public/environments.js +1 -1
  131. package/dist/web-ui/public/feedback-widget.js +1 -1
  132. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  133. package/dist/web-ui/public/git-history.js +1 -1
  134. package/dist/web-ui/public/git-status.js +1 -1
  135. package/dist/web-ui/public/index.html +21 -0
  136. package/dist/web-ui/public/index.js +1 -1
  137. package/dist/web-ui/public/login.js +1 -1
  138. package/dist/web-ui/public/markdown-editor.js +1 -1
  139. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  140. package/dist/web-ui/public/modal-maximize.js +1 -1
  141. package/dist/web-ui/public/notifications.js +1 -1
  142. package/dist/web-ui/public/pr-dialog.js +1 -1
  143. package/dist/web-ui/public/server-health.js +1 -1
  144. package/dist/web-ui/public/settings.html +22 -1
  145. package/dist/web-ui/public/settings.js +1 -1
  146. package/dist/web-ui/public/setup-password.js +1 -1
  147. package/dist/web-ui/public/skills.css +6 -0
  148. package/dist/web-ui/public/skills.html +20 -0
  149. package/dist/web-ui/public/skills.js +1 -1
  150. package/dist/web-ui/public/sse-client.js +1 -1
  151. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  152. package/dist/web-ui/public/styles.css +160 -0
  153. package/dist/web-ui/public/task.html +32 -1
  154. package/dist/web-ui/public/task.js +1 -1
  155. package/dist/web-ui/public/terminal.js +1 -1
  156. package/dist/web-ui/public/theme.js +1 -1
  157. package/dist/web-ui/public/users.js +1 -1
  158. package/dist/web-ui/public/variant-grouping.js +1 -1
  159. package/package.json +2 -1
@@ -1 +1 @@
1
- const _0x2c91e6=_0x5e9d;function _0x5e9d(_0x784f05,_0x59c253){_0x784f05=_0x784f05-0x10c;const _0x41dc43=_0x41dc();let _0x5e9dd0=_0x41dc43[_0x784f05];if(_0x5e9d['UBshUf']===undefined){var _0x5e9d79=function(_0x62fdaf){const _0x4f304f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc28675='',_0x419d4e='';for(let _0x380125=0x0,_0x37b6ee,_0x390e06,_0x1ab6ea=0x0;_0x390e06=_0x62fdaf['charAt'](_0x1ab6ea++);~_0x390e06&&(_0x37b6ee=_0x380125%0x4?_0x37b6ee*0x40+_0x390e06:_0x390e06,_0x380125++%0x4)?_0xc28675+=String['fromCharCode'](0xff&_0x37b6ee>>(-0x2*_0x380125&0x6)):0x0){_0x390e06=_0x4f304f['indexOf'](_0x390e06);}for(let _0x5e2408=0x0,_0x1f13a2=_0xc28675['length'];_0x5e2408<_0x1f13a2;_0x5e2408++){_0x419d4e+='%'+('00'+_0xc28675['charCodeAt'](_0x5e2408)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x419d4e);};_0x5e9d['rbZPDY']=_0x5e9d79,_0x5e9d['XMTLva']={},_0x5e9d['UBshUf']=!![];}const _0x2b68e9=_0x41dc43[0x0],_0x5c020b=_0x784f05+_0x2b68e9,_0xab55c=_0x5e9d['XMTLva'][_0x5c020b];return!_0xab55c?(_0x5e9dd0=_0x5e9d['rbZPDY'](_0x5e9dd0),_0x5e9d['XMTLva'][_0x5c020b]=_0x5e9dd0):_0x5e9dd0=_0xab55c,_0x5e9dd0;}(function(_0xe47624,_0x1512d4){const _0x277d70=_0x5e9d,_0x5c6bfa=_0xe47624();while(!![]){try{const _0x42896e=-parseInt(_0x277d70(0x135))/0x1+parseInt(_0x277d70(0x155))/0x2+parseInt(_0x277d70(0x13c))/0x3*(parseInt(_0x277d70(0x142))/0x4)+parseInt(_0x277d70(0x170))/0x5+parseInt(_0x277d70(0x151))/0x6*(-parseInt(_0x277d70(0x10f))/0x7)+parseInt(_0x277d70(0x12c))/0x8+-parseInt(_0x277d70(0x157))/0x9*(parseInt(_0x277d70(0x13b))/0xa);if(_0x42896e===_0x1512d4)break;else _0x5c6bfa['push'](_0x5c6bfa['shift']());}catch(_0x431b44){_0x5c6bfa['push'](_0x5c6bfa['shift']());}}}(_0x41dc,0xb3def));function isSharedWorkerSupported(){const _0x1046ca=_0x5e9d;return typeof SharedWorker!==_0x1046ca(0x162);}function eventTypeToHandler(_0xc28675){const _0xdb32b9=_0x5e9d;if(_0xc28675===_0xdb32b9(0x12f))return _0xdb32b9(0x10e);if(_0xc28675===_0xdb32b9(0x149))return'onError';return'on'+_0xc28675[_0xdb32b9(0x16b)]('-')[_0xdb32b9(0x136)](_0x419d4e=>_0x419d4e[_0xdb32b9(0x159)](0x0)[_0xdb32b9(0x14e)]()+_0x419d4e['slice'](0x1))[_0xdb32b9(0x15f)]('');}function _0x41dc(){const _0xf0c2fc=['Cg9ZDe1LC3nHz2u','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','y29UBMvJDgvK','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','AxnvC2LUz1nOyxjLzfDVCMTLCG','Cg9YDa','l3rHC2TZlW','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','nJe0nZe0CuzeyvvA','BwfW','x2vTAxq','C3rHDhvZ','y2HHBMDLzc1MAwXLCW','ywrK','ndy0otK5mgrPCLvnuG','ntq5owjICvnZzG','D29YA2vY','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','v29YA2vYig1LC3nHz2uGzxjYB3i','Bwv0ywrHDge','x2vUC3vYzvDVCMTLCG','mZe2ruzIrMnL','CMvJB25Uzwn0qxr0zw1WDhm','yxbWlxnLCNzLCI1ZDgf0Dxm','igHHBMrSzxi6','yMLUza','C2v0','DhLWzq','zxjYB3i','z2v0','x3n1yNnJCMLIzvrHC2TeAxjLy3q','C3rHCNrZv2L0Aa','DxnLCKLK','Dg9vChbLCKnHC2u','x3nJAgvKDwXLuMvJB25Uzwn0','CgfYC2u','mtKYCNHxyxnr','zgLZy29UBMvJDa','C2L6zq','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','nJe1nZa0q2DVze9p','BwvZC2fNzq','mtHluwfcs2G','BMv3lxrHC2S','y2HHCKf0','ywn0AxzPDhK','DgfZA0LK','q29UBMvJDgLVBIbLCNjVCG','AgfUzgXLCNm','x2nVBM5Ly3reAxjLy3q','AM9PBG','CxvLDwuTCg9ZAxrPB24','B3bLBG','Dw5KzwzPBMvK','y2XLyxi','x3rHC2TtDwjjzenVDw50zxi','x2nVBM5Ly3rwAwfxB3jRzxi','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','Bg9N','BwLU','x3rHC2TtDwjZy3jPChrPB25Z','C3rHCNq','C3bSAxq','zxzLBNrtB3vYy2u','DxnLu2HHCMvKv29YA2vY','w1ntrsbdBgLLBNrDievYCM9YigLUia','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','nJK4mJi4mfvdB0L4AG','B2zM','y29UBMvJDa','zM9YrwfJAa','l3rHC2TZl3vWzgf0zxm','B25dB25Uzwn0zwq','mJi3nJK2uKzUCfbL','Bg9NCW','l3nZzs1ZAgfYzwqTD29YA2vYlMPZ','CMvJB25Uzwn0vgLTzw91Da','C3vIC2nYAwjLvgfZAW','B25fCNjVCG','y2HHBMDLrMLSDgvY','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','y2XVC2u','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','DgfZAZO','Cg93','B25TzxnZywDL','D2fYBG','igrHDge6','zgLYzwn0','zgvSzxrL','ywrKrxzLBNrmAxn0zw5LCG','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','C25HChnOB3q','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','Dw5ZDwjZy3jPyMvuyxnR','zgf0yq','BgLZDgvUzxjZ','x2HHBMrSzvDVCMTLCK1LC3nHz2u','CMvWBgfJzq','AgfZ','x2HHBMrSzurPCMvJDfntrq','AxndB25Uzwn0zwq','mte3odu5ntjrBwrSAgW'];_0x41dc=function(){return _0xf0c2fc;};return _0x41dc();}const TASK_STREAM_EVENTS=[_0x2c91e6(0x15a),_0x2c91e6(0x110),_0x2c91e6(0x140),'summary',_0x2c91e6(0x139),_0x2c91e6(0x144),'complete'];export class TaskUpdatesClient{constructor(){const _0x3a5d7d=_0x2c91e6;this[_0x3a5d7d(0x126)]=new Map(),this[_0x3a5d7d(0x13d)]=null,this[_0x3a5d7d(0x132)]=null,this[_0x3a5d7d(0x16c)]=null,this[_0x3a5d7d(0x14d)]=null,this['reconnectTimeout']=null,this[_0x3a5d7d(0x143)]=0x0,this[_0x3a5d7d(0x16d)]=isSharedWorkerSupported(),this[_0x3a5d7d(0x12f)]=![],this[_0x3a5d7d(0x169)]=new Map(),this[_0x3a5d7d(0x164)]=0x0,this[_0x3a5d7d(0x127)]=this[_0x3a5d7d(0x127)][_0x3a5d7d(0x146)](this),this[_0x3a5d7d(0x12a)]=this['_handleDirectSSE'][_0x3a5d7d(0x146)](this);}['on'](_0x380125,_0x37b6ee){const _0x5bcbf8=_0x2c91e6;return!this[_0x5bcbf8(0x126)][_0x5bcbf8(0x129)](_0x380125)&&this[_0x5bcbf8(0x126)][_0x5bcbf8(0x147)](_0x380125,new Set()),this[_0x5bcbf8(0x126)][_0x5bcbf8(0x14a)](_0x380125)['add'](_0x37b6ee),this;}[_0x2c91e6(0x171)](_0x390e06,_0x1ab6ea){const _0x29a9bb=_0x2c91e6;return this['listeners'][_0x29a9bb(0x129)](_0x390e06)&&this[_0x29a9bb(0x126)][_0x29a9bb(0x14a)](_0x390e06)[_0x29a9bb(0x11f)](_0x1ab6ea),this;}[_0x2c91e6(0x137)](_0x5e2408,_0x1f13a2){const _0x52706e=_0x2c91e6;this[_0x52706e(0x126)][_0x52706e(0x129)](_0x5e2408)&&this['listeners'][_0x52706e(0x14a)](_0x5e2408)['forEach'](_0x1f932f=>{const _0x1c193d=_0x52706e;try{_0x1f932f(_0x1f13a2);}catch(_0x32e3bd){console['error'](_0x1c193d(0x16e)+_0x5e2408+'\x20listener:',_0x32e3bd);}});}[_0x2c91e6(0x172)](_0x2efb5d='me'){const _0x5c6b48=_0x2c91e6;this[_0x5c6b48(0x14d)]=_0x2efb5d,this[_0x5c6b48(0x16d)]?this[_0x5c6b48(0x165)](_0x2efb5d):this[_0x5c6b48(0x15e)](_0x2efb5d);}['_connectViaWorker'](_0x113884){const _0x4bd190=_0x2c91e6;try{this[_0x4bd190(0x141)](),this['port'][_0x4bd190(0x12d)]({'action':_0x4bd190(0x172),'userId':_0x113884});}catch(_0x3d7dc3){console['error'](_0x4bd190(0x166),_0x3d7dc3),this['useSharedWorker']=![],this[_0x4bd190(0x15e)](_0x113884);}}[_0x2c91e6(0x141)](){const _0x30edb8=_0x2c91e6;!this['worker']&&(this['worker']=new SharedWorker(_0x30edb8(0x111)),this[_0x30edb8(0x132)]=this[_0x30edb8(0x13d)]['port'],this[_0x30edb8(0x132)][_0x30edb8(0x11b)]=this[_0x30edb8(0x127)],this[_0x30edb8(0x132)]['onmessageerror']=_0x4a3643=>{const _0x4bf251=_0x30edb8;console['error']('[SSE\x20Client]\x20Worker\x20message\x20error:',_0x4a3643),this[_0x4bf251(0x137)](_0x4bf251(0x149),{'error':_0x4bf251(0x13f)});},this['port'][_0x30edb8(0x16a)]());}[_0x2c91e6(0x127)](_0x444885){const _0x4d9d75=_0x2c91e6,_0x17bbcd=_0x444885[_0x4d9d75(0x125)];if(_0x17bbcd[_0x4d9d75(0x148)]&&_0x17bbcd[_0x4d9d75(0x148)][_0x4d9d75(0x14c)](_0x4d9d75(0x119))){this[_0x4d9d75(0x116)](_0x17bbcd);return;}switch(_0x17bbcd[_0x4d9d75(0x148)]){case _0x4d9d75(0x12f):this[_0x4d9d75(0x12f)]=!![],this[_0x4d9d75(0x137)](_0x4d9d75(0x12f),{});break;case _0x4d9d75(0x122):case'activity':case'status':case _0x4d9d75(0x158):case _0x4d9d75(0x160):try{const _0xc19d33=JSON[_0x4d9d75(0x150)](_0x17bbcd[_0x4d9d75(0x125)]);this[_0x4d9d75(0x137)](_0x17bbcd[_0x4d9d75(0x148)],_0xc19d33);}catch(_0x397d84){console[_0x4d9d75(0x149)](_0x4d9d75(0x134)+_0x17bbcd['type']+'\x20data:',_0x397d84);}break;case'error':this['connected']=![],this[_0x4d9d75(0x137)]('error',_0x17bbcd);break;default:console[_0x4d9d75(0x11c)](_0x4d9d75(0x154),_0x17bbcd[_0x4d9d75(0x148)]);}}[_0x2c91e6(0x116)](_0x560c54){const _0x5aea09=_0x2c91e6,{taskId:_0x174ddf,type:_0x455023,data:_0x1cd71d}=_0x560c54,_0x1917b2=this['_taskSubscriptions'][_0x5aea09(0x14a)](_0x174ddf);if(!_0x1917b2||_0x1917b2[_0x5aea09(0x153)]===0x0)return;const _0x1ec4ea=_0x455023[_0x5aea09(0x128)](_0x5aea09(0x119),''),_0x3e1bbc=eventTypeToHandler(_0x1ec4ea);_0x1917b2[_0x5aea09(0x10c)](_0x44ac09=>{const _0x47601a=_0x5aea09;if(_0x44ac09['handlers'][_0x3e1bbc])try{const _0x144bc0=typeof _0x1cd71d==='string'?JSON[_0x47601a(0x150)](_0x1cd71d):_0x1cd71d;_0x44ac09[_0x47601a(0x15d)][_0x3e1bbc](_0x144bc0);}catch(_0x3de5d8){console['error'](_0x47601a(0x13e)+_0x1ec4ea+_0x47601a(0x145),_0x3de5d8);}});}[_0x2c91e6(0x15e)](_0x34e793){const _0x1d2cc9=_0x2c91e6;this[_0x1d2cc9(0x16c)]&&(this[_0x1d2cc9(0x16c)][_0x1d2cc9(0x117)](),this[_0x1d2cc9(0x16c)]=null);const _0x300114=_0x34e793&&_0x34e793!=='me'?'?userId='+_0x34e793:'';try{this['eventSource']=new EventSource(_0x1d2cc9(0x10d)+_0x300114),this[_0x1d2cc9(0x16c)][_0x1d2cc9(0x120)]('open',()=>{const _0x4f72a8=_0x1d2cc9;this['connected']=!![],this[_0x4f72a8(0x143)]=0x0,this[_0x4f72a8(0x137)](_0x4f72a8(0x12f),{});}),this[_0x1d2cc9(0x16c)][_0x1d2cc9(0x120)](_0x1d2cc9(0x122),_0x2673f7=>{const _0x21c1b8=_0x1d2cc9;this[_0x21c1b8(0x12a)]('snapshot',_0x2673f7),this[_0x21c1b8(0x143)]=0x0;}),this[_0x1d2cc9(0x16c)]['addEventListener'](_0x1d2cc9(0x15a),_0x5d6171=>{const _0x1adc64=_0x1d2cc9;this[_0x1adc64(0x12a)](_0x1adc64(0x15a),_0x5d6171);}),this[_0x1d2cc9(0x16c)][_0x1d2cc9(0x120)](_0x1d2cc9(0x138),_0x45f369=>{const _0x3bad93=_0x1d2cc9;this[_0x3bad93(0x12a)](_0x3bad93(0x138),_0x45f369);}),this[_0x1d2cc9(0x16c)]['addEventListener']('new-task',_0x272b16=>{const _0x3c0812=_0x1d2cc9;this[_0x3c0812(0x12a)](_0x3c0812(0x158),_0x272b16);}),this[_0x1d2cc9(0x16c)][_0x1d2cc9(0x120)](_0x1d2cc9(0x160),_0x2a1f82=>{const _0x237bf1=_0x1d2cc9;this[_0x237bf1(0x12a)](_0x237bf1(0x160),_0x2a1f82);}),this[_0x1d2cc9(0x16c)]['addEventListener']('error',_0x3615e3=>{const _0x37b7e3=_0x1d2cc9;console[_0x37b7e3(0x149)](_0x37b7e3(0x118),_0x3615e3),this['connected']=![],this['_emit'](_0x37b7e3(0x149),{'error':_0x37b7e3(0x15c)}),this[_0x37b7e3(0x16c)]&&(this[_0x37b7e3(0x16c)][_0x37b7e3(0x117)](),this[_0x37b7e3(0x16c)]=null),this[_0x37b7e3(0x14f)]();});}catch(_0x43250e){console[_0x1d2cc9(0x149)]('[SSE\x20Client]\x20Failed\x20to\x20create\x20EventSource:',_0x43250e),this['_emit'](_0x1d2cc9(0x149),{'error':_0x43250e[_0x1d2cc9(0x156)]}),this['_scheduleReconnect']();}}['_handleDirectSSE'](_0xded6d0,_0x4fbf5c){const _0x2e5584=_0x2c91e6;try{const _0x4982e4=JSON[_0x2e5584(0x150)](_0x4fbf5c[_0x2e5584(0x125)]);this[_0x2e5584(0x137)](_0xded6d0,_0x4982e4);}catch(_0x355395){console[_0x2e5584(0x149)](_0x2e5584(0x134)+_0xded6d0+_0x2e5584(0x11d),_0x355395);}}[_0x2c91e6(0x14f)](){const _0x3782bf=_0x2c91e6;this[_0x3782bf(0x112)]&&clearTimeout(this[_0x3782bf(0x112)]);const _0x316c04=Math[_0x3782bf(0x168)](0x3e8*Math[_0x3782bf(0x11a)](0x2,this[_0x3782bf(0x143)]),0x7530);this[_0x3782bf(0x143)]++,console[_0x3782bf(0x167)](_0x3782bf(0x123)+_0x316c04+'ms'),this[_0x3782bf(0x112)]=setTimeout(()=>{const _0x2f4235=_0x3782bf;this['_connectDirect'](this[_0x2f4235(0x14d)]);},_0x316c04);}[_0x2c91e6(0x115)](_0x27fe63){const _0xcc4e8d=_0x2c91e6;if(_0x27fe63===this[_0xcc4e8d(0x14d)])return;this[_0xcc4e8d(0x14d)]=_0x27fe63;if(this[_0xcc4e8d(0x16d)]&&this['port'])this[_0xcc4e8d(0x132)]['postMessage']({'action':_0xcc4e8d(0x115),'userId':_0x27fe63});else this[_0xcc4e8d(0x16c)]&&this['_connectDirect'](_0x27fe63);}[_0x2c91e6(0x113)](_0x1a892d,_0x208df9){const _0x74420d=_0x2c91e6;return this[_0x74420d(0x16d)]?this[_0x74420d(0x16f)](_0x1a892d,_0x208df9):this[_0x74420d(0x14b)](_0x1a892d,_0x208df9);}[_0x2c91e6(0x124)](_0x552270){const _0x597967=_0x2c91e6;if(!_0x552270)return;_0x552270[_0x597967(0x148)]===_0x597967(0x13d)?this[_0x597967(0x121)](_0x552270):this[_0x597967(0x130)](_0x552270);}[_0x2c91e6(0x16f)](_0x16ddd1,_0x4cc1d1){const _0x44bf8d=_0x2c91e6;try{this['_ensureWorker']();}catch(_0x58da31){return console[_0x44bf8d(0x149)]('[SSE\x20Client]\x20SharedWorker\x20failed\x20for\x20task\x20sub,\x20falling\x20back:',_0x58da31),this[_0x44bf8d(0x16d)]=![],this[_0x44bf8d(0x14b)](_0x16ddd1,_0x4cc1d1);}const _0x45278b=++this[_0x44bf8d(0x164)],_0xd762c0={'type':'worker','taskId':_0x16ddd1,'handlers':_0x4cc1d1,'id':_0x45278b};return!this[_0x44bf8d(0x169)][_0x44bf8d(0x129)](_0x16ddd1)&&(this['_taskSubscriptions'][_0x44bf8d(0x147)](_0x16ddd1,new Set()),this[_0x44bf8d(0x132)][_0x44bf8d(0x12d)]({'action':_0x44bf8d(0x113),'taskId':_0x16ddd1})),this['_taskSubscriptions'][_0x44bf8d(0x14a)](_0x16ddd1)[_0x44bf8d(0x13a)](_0xd762c0),_0xd762c0;}[_0x2c91e6(0x121)](_0x453327){const _0x35e369=_0x2c91e6,{taskId:_0x35511d}=_0x453327,_0x5d5ef9=this[_0x35e369(0x169)]['get'](_0x35511d);if(_0x5d5ef9){_0x5d5ef9[_0x35e369(0x11f)](_0x453327);if(_0x5d5ef9[_0x35e369(0x153)]===0x0){this[_0x35e369(0x169)][_0x35e369(0x11f)](_0x35511d);try{this[_0x35e369(0x132)]&&this['port']['postMessage']({'action':_0x35e369(0x124),'taskId':_0x35511d});}catch(_0x772213){}}}}[_0x2c91e6(0x14b)](_0x42a491,_0x1d0e74){const _0x2452bb=_0x2c91e6,_0xdc9150=++this['_taskSubIdCounter'],_0xd8d348=new EventSource(_0x2452bb(0x133)+_0x42a491+'/stream'),_0x17356d={'type':_0x2452bb(0x11e),'taskId':_0x42a491,'handlers':_0x1d0e74,'id':_0xdc9150,'eventSource':_0xd8d348};!this[_0x2452bb(0x169)][_0x2452bb(0x129)](_0x42a491)&&this['_taskSubscriptions'][_0x2452bb(0x147)](_0x42a491,new Set());this[_0x2452bb(0x169)][_0x2452bb(0x14a)](_0x42a491)['add'](_0x17356d);for(const _0x592c93 of TASK_STREAM_EVENTS){const _0xb39d8=eventTypeToHandler(_0x592c93);_0xd8d348[_0x2452bb(0x120)](_0x592c93,_0x29470e=>{const _0x471819=_0x2452bb;if(_0x1d0e74[_0xb39d8])try{const _0x1207f7=JSON[_0x471819(0x150)](_0x29470e[_0x471819(0x125)]);_0x1d0e74[_0xb39d8](_0x1207f7);}catch(_0x365e2f){console[_0x471819(0x149)](_0x471819(0x12e)+_0x592c93+':',_0x365e2f);}});}return _0xd8d348[_0x2452bb(0x120)](_0x2452bb(0x161),()=>{const _0x561a24=_0x2452bb;if(_0x1d0e74[_0x561a24(0x10e)])_0x1d0e74['onConnected']();}),_0xd8d348[_0x2452bb(0x120)](_0x2452bb(0x149),()=>{const _0x2924eb=_0x2452bb;if(_0x1d0e74[_0x2924eb(0x114)])_0x1d0e74['onError']({'error':_0x2924eb(0x15c)});}),_0x17356d;}['_unsubscribeTaskDirect'](_0x14f650){const _0x5bb2f3=_0x2c91e6;_0x14f650['eventSource']&&(_0x14f650['eventSource'][_0x5bb2f3(0x117)](),_0x14f650['eventSource']=null);const _0x131a54=this['_taskSubscriptions'][_0x5bb2f3(0x14a)](_0x14f650[_0x5bb2f3(0x15b)]);_0x131a54&&(_0x131a54[_0x5bb2f3(0x11f)](_0x14f650),_0x131a54['size']===0x0&&this[_0x5bb2f3(0x169)][_0x5bb2f3(0x11f)](_0x14f650['taskId']));}[_0x2c91e6(0x152)](){const _0x4e2136=_0x2c91e6;this[_0x4e2136(0x112)]&&(clearTimeout(this['reconnectTimeout']),this['reconnectTimeout']=null);this['_taskSubscriptions'][_0x4e2136(0x10c)]((_0x263270,_0x151e3a)=>{_0x263270['forEach'](_0x49a132=>{const _0x3a2871=_0x5e9d;_0x49a132[_0x3a2871(0x148)]===_0x3a2871(0x11e)&&_0x49a132['eventSource']&&_0x49a132[_0x3a2871(0x16c)][_0x3a2871(0x117)]();});}),this[_0x4e2136(0x169)][_0x4e2136(0x163)]();if(this[_0x4e2136(0x16d)]&&this[_0x4e2136(0x132)])try{this['port']['postMessage']({'action':_0x4e2136(0x152)});}catch(_0x57b6cb){}this['eventSource']&&(this['eventSource'][_0x4e2136(0x117)](),this[_0x4e2136(0x16c)]=null),this['connected']=![];}[_0x2c91e6(0x12b)](){const _0x3d52d0=_0x2c91e6;return this[_0x3d52d0(0x12f)];}[_0x2c91e6(0x131)](){return this['useSharedWorker'];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
1
+ const _0x4d1a2e=_0xbd5f;(function(_0x5cfc46,_0x55d730){const _0x2f569f=_0xbd5f,_0x20fd83=_0x5cfc46();while(!![]){try{const _0x15fd19=-parseInt(_0x2f569f(0x179))/0x1*(-parseInt(_0x2f569f(0x1bb))/0x2)+parseInt(_0x2f569f(0x1cc))/0x3*(parseInt(_0x2f569f(0x1a9))/0x4)+-parseInt(_0x2f569f(0x188))/0x5+-parseInt(_0x2f569f(0x1b9))/0x6+parseInt(_0x2f569f(0x1b6))/0x7+-parseInt(_0x2f569f(0x192))/0x8*(-parseInt(_0x2f569f(0x19a))/0x9)+-parseInt(_0x2f569f(0x1c7))/0xa*(parseInt(_0x2f569f(0x193))/0xb);if(_0x15fd19===_0x55d730)break;else _0x20fd83['push'](_0x20fd83['shift']());}catch(_0x42dc3a){_0x20fd83['push'](_0x20fd83['shift']());}}}(_0x1ba5,0x8560c));function _0xbd5f(_0x4382e7,_0x3bda40){_0x4382e7=_0x4382e7-0x175;const _0x1ba5b6=_0x1ba5();let _0xbd5f5=_0x1ba5b6[_0x4382e7];if(_0xbd5f['WqvbGT']===undefined){var _0x722455=function(_0x318e2f){const _0x2921ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x261697='',_0x1fb1df='';for(let _0x2b0606=0x0,_0x31a474,_0x5d4936,_0xd41ecd=0x0;_0x5d4936=_0x318e2f['charAt'](_0xd41ecd++);~_0x5d4936&&(_0x31a474=_0x2b0606%0x4?_0x31a474*0x40+_0x5d4936:_0x5d4936,_0x2b0606++%0x4)?_0x261697+=String['fromCharCode'](0xff&_0x31a474>>(-0x2*_0x2b0606&0x6)):0x0){_0x5d4936=_0x2921ba['indexOf'](_0x5d4936);}for(let _0x2c9bc1=0x0,_0x268b56=_0x261697['length'];_0x2c9bc1<_0x268b56;_0x2c9bc1++){_0x1fb1df+='%'+('00'+_0x261697['charCodeAt'](_0x2c9bc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1fb1df);};_0xbd5f['mHmpFg']=_0x722455,_0xbd5f['sraSVj']={},_0xbd5f['WqvbGT']=!![];}const _0x4895d2=_0x1ba5b6[0x0],_0x445948=_0x4382e7+_0x4895d2,_0x1da6f2=_0xbd5f['sraSVj'][_0x445948];return!_0x1da6f2?(_0xbd5f5=_0xbd5f['mHmpFg'](_0xbd5f5),_0xbd5f['sraSVj'][_0x445948]=_0xbd5f5):_0xbd5f5=_0x1da6f2,_0xbd5f5;}function isSharedWorkerSupported(){const _0x4d604d=_0xbd5f;return typeof SharedWorker!==_0x4d604d(0x18d);}function eventTypeToHandler(_0x261697){const _0x3c4286=_0xbd5f;if(_0x261697===_0x3c4286(0x18a))return _0x3c4286(0x1c5);if(_0x261697===_0x3c4286(0x19f))return _0x3c4286(0x1c9);return'on'+_0x261697[_0x3c4286(0x197)]('-')[_0x3c4286(0x1d6)](_0x1fb1df=>_0x1fb1df[_0x3c4286(0x185)](0x0)[_0x3c4286(0x1c2)]()+_0x1fb1df[_0x3c4286(0x190)](0x1))[_0x3c4286(0x1b7)]('');}const TASK_STREAM_EVENTS=[_0x4d1a2e(0x1d5),'logs','metadata',_0x4d1a2e(0x1cf),_0x4d1a2e(0x1a2),_0x4d1a2e(0x1cb),_0x4d1a2e(0x1ce)];export class TaskUpdatesClient{constructor(){const _0x1f5827=_0x4d1a2e;this[_0x1f5827(0x1b5)]=new Map(),this['worker']=null,this[_0x1f5827(0x1b0)]=null,this[_0x1f5827(0x17a)]=null,this[_0x1f5827(0x183)]=null,this[_0x1f5827(0x1d4)]=null,this['reconnectAttempts']=0x0,this[_0x1f5827(0x199)]=isSharedWorkerSupported(),this['connected']=![],this[_0x1f5827(0x187)]=new Map(),this[_0x1f5827(0x18b)]=0x0,this[_0x1f5827(0x1c6)]=this[_0x1f5827(0x1c6)][_0x1f5827(0x1ae)](this),this[_0x1f5827(0x182)]=this[_0x1f5827(0x182)]['bind'](this);}['on'](_0x2b0606,_0x31a474){const _0x383957=_0x4d1a2e;return!this[_0x383957(0x1b5)]['has'](_0x2b0606)&&this[_0x383957(0x1b5)][_0x383957(0x176)](_0x2b0606,new Set()),this['listeners'][_0x383957(0x1be)](_0x2b0606)[_0x383957(0x18f)](_0x31a474),this;}[_0x4d1a2e(0x180)](_0x5d4936,_0xd41ecd){const _0xc7c4f7=_0x4d1a2e;return this[_0xc7c4f7(0x1b5)][_0xc7c4f7(0x1c3)](_0x5d4936)&&this['listeners'][_0xc7c4f7(0x1be)](_0x5d4936)['delete'](_0xd41ecd),this;}['_emit'](_0x2c9bc1,_0x268b56){const _0xa86565=_0x4d1a2e;this[_0xa86565(0x1b5)][_0xa86565(0x1c3)](_0x2c9bc1)&&this[_0xa86565(0x1b5)][_0xa86565(0x1be)](_0x2c9bc1)[_0xa86565(0x1b8)](_0x277b91=>{const _0x37c71e=_0xa86565;try{_0x277b91(_0x268b56);}catch(_0x162a5a){console[_0x37c71e(0x19f)](_0x37c71e(0x195)+_0x2c9bc1+_0x37c71e(0x17f),_0x162a5a);}});}[_0x4d1a2e(0x1da)](_0x619578='me'){const _0x2493aa=_0x4d1a2e;this['userId']=_0x619578,this['useSharedWorker']?this[_0x2493aa(0x1a4)](_0x619578):this[_0x2493aa(0x1d2)](_0x619578);}['_connectViaWorker'](_0xafffda){const _0x500b54=_0x4d1a2e;try{this[_0x500b54(0x1b4)](),this[_0x500b54(0x1b0)]['postMessage']({'action':_0x500b54(0x1da),'userId':_0xafffda});}catch(_0xc26143){console[_0x500b54(0x19f)](_0x500b54(0x1d1),_0xc26143),this[_0x500b54(0x199)]=![],this[_0x500b54(0x1d2)](_0xafffda);}}['_ensureWorker'](){const _0x1e64fd=_0x4d1a2e;!this[_0x1e64fd(0x1a3)]&&(this[_0x1e64fd(0x1a3)]=new SharedWorker('/sse-shared-worker.js'),this[_0x1e64fd(0x1b0)]=this[_0x1e64fd(0x1a3)][_0x1e64fd(0x1b0)],this[_0x1e64fd(0x1b0)]['onmessage']=this[_0x1e64fd(0x1c6)],this[_0x1e64fd(0x1b0)][_0x1e64fd(0x198)]=_0x56e229=>{const _0x1951e5=_0x1e64fd;console[_0x1951e5(0x19f)]('[SSE\x20Client]\x20Worker\x20message\x20error:',_0x56e229),this[_0x1951e5(0x1bf)](_0x1951e5(0x19f),{'error':'Worker\x20message\x20error'});},this['port'][_0x1e64fd(0x1aa)]());}['_handleWorkerMessage'](_0x49378c){const _0x5374cd=_0x4d1a2e,_0x48e5be=_0x49378c[_0x5374cd(0x1cd)];if(_0x48e5be[_0x5374cd(0x1d9)]&&_0x48e5be[_0x5374cd(0x1d9)]['startsWith'](_0x5374cd(0x1ad))){this[_0x5374cd(0x1af)](_0x48e5be);return;}switch(_0x48e5be[_0x5374cd(0x1d9)]){case _0x5374cd(0x18a):this[_0x5374cd(0x18a)]=!![],this[_0x5374cd(0x1bf)]('connected',{});break;case'snapshot':case'activity':case _0x5374cd(0x1d0):case _0x5374cd(0x1bc):case _0x5374cd(0x1a0):try{const _0x379882=JSON[_0x5374cd(0x1b2)](_0x48e5be[_0x5374cd(0x1cd)]);this[_0x5374cd(0x1bf)](_0x48e5be['type'],_0x379882);}catch(_0x22b5e5){console[_0x5374cd(0x19f)]('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x48e5be[_0x5374cd(0x1d9)]+_0x5374cd(0x1a8),_0x22b5e5);}break;case _0x5374cd(0x19f):this['connected']=![],this['_emit'](_0x5374cd(0x19f),_0x48e5be);break;default:console[_0x5374cd(0x1b3)](_0x5374cd(0x19c),_0x48e5be[_0x5374cd(0x1d9)]);}}[_0x4d1a2e(0x1af)](_0x6cf98){const _0x440b5e=_0x4d1a2e,{taskId:_0x19cf9b,type:_0x2b57b9,data:_0x443c8a}=_0x6cf98,_0x416af7=this['_taskSubscriptions'][_0x440b5e(0x1be)](_0x19cf9b);if(!_0x416af7||_0x416af7[_0x440b5e(0x18e)]===0x0)return;const _0x4e65cc=_0x2b57b9[_0x440b5e(0x19b)]('task:',''),_0x6fabc7=eventTypeToHandler(_0x4e65cc);_0x416af7['forEach'](_0x2b1501=>{const _0x49f86b=_0x440b5e;if(_0x2b1501[_0x49f86b(0x1a5)][_0x6fabc7])try{const _0x5affa0=typeof _0x443c8a===_0x49f86b(0x1d7)?JSON[_0x49f86b(0x1b2)](_0x443c8a):_0x443c8a;_0x2b1501[_0x49f86b(0x1a5)][_0x6fabc7](_0x5affa0);}catch(_0x331a8c){console['error'](_0x49f86b(0x1ba)+_0x4e65cc+_0x49f86b(0x1d3),_0x331a8c);}});}['_connectDirect'](_0x19353f){const _0x3f7270=_0x4d1a2e;this[_0x3f7270(0x17a)]&&(this['eventSource'][_0x3f7270(0x189)](),this[_0x3f7270(0x17a)]=null);const _0x54fdd7=_0x19353f&&_0x19353f!=='me'?_0x3f7270(0x19e)+_0x19353f:'';try{this[_0x3f7270(0x17a)]=new EventSource(_0x3f7270(0x1bd)+_0x54fdd7),this[_0x3f7270(0x17a)]['addEventListener']('open',()=>{const _0x2771e6=_0x3f7270;this[_0x2771e6(0x18a)]=!![],this['reconnectAttempts']=0x0,this[_0x2771e6(0x1bf)]('connected',{});}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x178),_0x5f3474=>{const _0x146a91=_0x3f7270;this[_0x146a91(0x182)](_0x146a91(0x178),_0x5f3474),this['reconnectAttempts']=0x0;}),this[_0x3f7270(0x17a)]['addEventListener'](_0x3f7270(0x1d5),_0x111843=>{const _0x17888f=_0x3f7270;this['_handleDirectSSE'](_0x17888f(0x1d5),_0x111843);}),this[_0x3f7270(0x17a)]['addEventListener'](_0x3f7270(0x1d0),_0x372e32=>{const _0x7a4521=_0x3f7270;this[_0x7a4521(0x182)]('status',_0x372e32);}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x1bc),_0x675870=>{const _0x1bcfa4=_0x3f7270;this[_0x1bcfa4(0x182)](_0x1bcfa4(0x1bc),_0x675870);}),this[_0x3f7270(0x17a)][_0x3f7270(0x175)](_0x3f7270(0x1a0),_0x229777=>{const _0x4b5449=_0x3f7270;this[_0x4b5449(0x182)]('queue-position',_0x229777);}),this[_0x3f7270(0x17a)]['addEventListener']('error',_0x420f0a=>{const _0x2f0c08=_0x3f7270;console[_0x2f0c08(0x19f)](_0x2f0c08(0x184),_0x420f0a),this['connected']=![],this[_0x2f0c08(0x1bf)](_0x2f0c08(0x19f),{'error':_0x2f0c08(0x196)}),this[_0x2f0c08(0x17a)]&&(this[_0x2f0c08(0x17a)][_0x2f0c08(0x189)](),this[_0x2f0c08(0x17a)]=null),this[_0x2f0c08(0x191)]();});}catch(_0x506255){console['error'](_0x3f7270(0x177),_0x506255),this[_0x3f7270(0x1bf)]('error',{'error':_0x506255[_0x3f7270(0x1c4)]}),this[_0x3f7270(0x191)]();}}['_handleDirectSSE'](_0x19cecb,_0xfd903b){const _0x15490c=_0x4d1a2e;try{const _0x102b98=JSON[_0x15490c(0x1b2)](_0xfd903b[_0x15490c(0x1cd)]);this[_0x15490c(0x1bf)](_0x19cecb,_0x102b98);}catch(_0x925760){console[_0x15490c(0x19f)](_0x15490c(0x19d)+_0x19cecb+_0x15490c(0x1a8),_0x925760);}}['_scheduleReconnect'](){const _0x1bd57b=_0x4d1a2e;this['reconnectTimeout']&&clearTimeout(this[_0x1bd57b(0x1d4)]);const _0x5d7c5b=Math[_0x1bd57b(0x17c)](0x3e8*Math[_0x1bd57b(0x181)](0x2,this['reconnectAttempts']),0x7530);this[_0x1bd57b(0x1b1)]++,console[_0x1bd57b(0x1a6)](_0x1bd57b(0x1d8)+_0x5d7c5b+'ms'),this[_0x1bd57b(0x1d4)]=setTimeout(()=>{const _0x428740=_0x1bd57b;this[_0x428740(0x1d2)](this[_0x428740(0x183)]);},_0x5d7c5b);}[_0x4d1a2e(0x17b)](_0x278363){const _0x21a694=_0x4d1a2e;if(_0x278363===this[_0x21a694(0x183)])return;this['userId']=_0x278363;if(this[_0x21a694(0x199)]&&this[_0x21a694(0x1b0)])this['port']['postMessage']({'action':'changeFilter','userId':_0x278363});else this[_0x21a694(0x17a)]&&this[_0x21a694(0x1d2)](_0x278363);}[_0x4d1a2e(0x1c8)](_0x4e0ffc,_0x1a5ff9){const _0x5c1e22=_0x4d1a2e;return this[_0x5c1e22(0x199)]?this[_0x5c1e22(0x1a7)](_0x4e0ffc,_0x1a5ff9):this['_subscribeTaskDirect'](_0x4e0ffc,_0x1a5ff9);}['unsubscribeTask'](_0x166f97){const _0x54222f=_0x4d1a2e;if(!_0x166f97)return;_0x166f97[_0x54222f(0x1d9)]===_0x54222f(0x1a3)?this[_0x54222f(0x194)](_0x166f97):this[_0x54222f(0x186)](_0x166f97);}[_0x4d1a2e(0x1a7)](_0x56758c,_0x14e704){const _0x494c14=_0x4d1a2e;try{this[_0x494c14(0x1b4)]();}catch(_0x1f2a9a){return console[_0x494c14(0x19f)]('[SSE\x20Client]\x20SharedWorker\x20failed\x20for\x20task\x20sub,\x20falling\x20back:',_0x1f2a9a),this[_0x494c14(0x199)]=![],this[_0x494c14(0x1ac)](_0x56758c,_0x14e704);}const _0x4e090e=++this['_taskSubIdCounter'],_0x815f98={'type':_0x494c14(0x1a3),'taskId':_0x56758c,'handlers':_0x14e704,'id':_0x4e090e};return!this[_0x494c14(0x187)][_0x494c14(0x1c3)](_0x56758c)&&(this['_taskSubscriptions'][_0x494c14(0x176)](_0x56758c,new Set()),this['port']['postMessage']({'action':_0x494c14(0x1c8),'taskId':_0x56758c})),this[_0x494c14(0x187)]['get'](_0x56758c)[_0x494c14(0x18f)](_0x815f98),_0x815f98;}[_0x4d1a2e(0x194)](_0x44d92a){const _0x3501ce=_0x4d1a2e,{taskId:_0xfb4cd4}=_0x44d92a,_0x39a57b=this[_0x3501ce(0x187)][_0x3501ce(0x1be)](_0xfb4cd4);if(_0x39a57b){_0x39a57b[_0x3501ce(0x17d)](_0x44d92a);if(_0x39a57b[_0x3501ce(0x18e)]===0x0){this[_0x3501ce(0x187)]['delete'](_0xfb4cd4);try{this[_0x3501ce(0x1b0)]&&this[_0x3501ce(0x1b0)][_0x3501ce(0x1c0)]({'action':_0x3501ce(0x1db),'taskId':_0xfb4cd4});}catch(_0xaef4d2){}}}}[_0x4d1a2e(0x1ac)](_0x9dd06d,_0x474f33){const _0xa9edc9=_0x4d1a2e,_0xd1c9b9=++this[_0xa9edc9(0x18b)],_0x2fca45=new EventSource(_0xa9edc9(0x1ca)+_0x9dd06d+'/stream'),_0x3fc088={'type':'direct','taskId':_0x9dd06d,'handlers':_0x474f33,'id':_0xd1c9b9,'eventSource':_0x2fca45};!this[_0xa9edc9(0x187)]['has'](_0x9dd06d)&&this['_taskSubscriptions'][_0xa9edc9(0x176)](_0x9dd06d,new Set());this[_0xa9edc9(0x187)][_0xa9edc9(0x1be)](_0x9dd06d)[_0xa9edc9(0x18f)](_0x3fc088);for(const _0x504e64 of TASK_STREAM_EVENTS){const _0x457ec8=eventTypeToHandler(_0x504e64);_0x2fca45['addEventListener'](_0x504e64,_0x1be195=>{const _0x56cc33=_0xa9edc9;if(_0x474f33[_0x457ec8])try{const _0x495aa5=JSON[_0x56cc33(0x1b2)](_0x1be195[_0x56cc33(0x1cd)]);_0x474f33[_0x457ec8](_0x495aa5);}catch(_0x251f91){console[_0x56cc33(0x19f)](_0x56cc33(0x17e)+_0x504e64+':',_0x251f91);}});}return _0x2fca45['addEventListener']('open',()=>{const _0x2dd9b9=_0xa9edc9;if(_0x474f33['onConnected'])_0x474f33[_0x2dd9b9(0x1c5)]();}),_0x2fca45[_0xa9edc9(0x175)](_0xa9edc9(0x19f),()=>{const _0x1d91c3=_0xa9edc9;if(_0x474f33['onError'])_0x474f33[_0x1d91c3(0x1c9)]({'error':_0x1d91c3(0x196)});}),_0x3fc088;}[_0x4d1a2e(0x186)](_0x33c253){const _0xd995a=_0x4d1a2e;_0x33c253[_0xd995a(0x17a)]&&(_0x33c253[_0xd995a(0x17a)][_0xd995a(0x189)](),_0x33c253[_0xd995a(0x17a)]=null);const _0x4e26e7=this['_taskSubscriptions'][_0xd995a(0x1be)](_0x33c253['taskId']);_0x4e26e7&&(_0x4e26e7[_0xd995a(0x17d)](_0x33c253),_0x4e26e7[_0xd995a(0x18e)]===0x0&&this['_taskSubscriptions']['delete'](_0x33c253[_0xd995a(0x1c1)]));}[_0x4d1a2e(0x1ab)](){const _0x1949c1=_0x4d1a2e;this[_0x1949c1(0x1d4)]&&(clearTimeout(this['reconnectTimeout']),this[_0x1949c1(0x1d4)]=null);this[_0x1949c1(0x187)][_0x1949c1(0x1b8)]((_0x35ffd0,_0x386e11)=>{const _0x5196b2=_0x1949c1;_0x35ffd0[_0x5196b2(0x1b8)](_0xa9847d=>{const _0x2eb9ec=_0x5196b2;_0xa9847d[_0x2eb9ec(0x1d9)]==='direct'&&_0xa9847d[_0x2eb9ec(0x17a)]&&_0xa9847d[_0x2eb9ec(0x17a)][_0x2eb9ec(0x189)]();});}),this[_0x1949c1(0x187)][_0x1949c1(0x18c)]();if(this[_0x1949c1(0x199)]&&this['port'])try{this['port']['postMessage']({'action':_0x1949c1(0x1ab)});}catch(_0x57be8d){}this[_0x1949c1(0x17a)]&&(this[_0x1949c1(0x17a)][_0x1949c1(0x189)](),this['eventSource']=null),this[_0x1949c1(0x18a)]=![];}[_0x4d1a2e(0x1a1)](){return this['connected'];}['isUsingSharedWorker'](){const _0x47f5a5=_0x4d1a2e;return this[_0x47f5a5(0x199)];}}let globalClient=null;function _0x1ba5(){const _0xe8160b=['C25HChnOB3q','otK5odH6wxb5C1e','zxzLBNrtB3vYy2u','y2HHBMDLrMLSDgvY','BwLU','zgvSzxrL','w1ntrsbdBgLLBNrDievYCM9YihbHCNnPBMCGDgfZAYa','igXPC3rLBMvYoG','B2zM','Cg93','x2HHBMrSzurPCMvJDfntrq','DxnLCKLK','w1ntrsbdBgLLBNrDierPCMvJDcbtu0uGzxjYB3i6','y2HHCKf0','x3vUC3vIC2nYAwjLvgfZA0rPCMvJDa','x3rHC2TtDwjZy3jPChrPB25Z','mtqXotyYnwzABhnOuW','y2XVC2u','y29UBMvJDgvK','x3rHC2TtDwjjzenVDw50zxi','y2XLyxi','Dw5KzwzPBMvK','C2L6zq','ywrK','C2XPy2u','x3nJAgvKDwXLuMvJB25Uzwn0','mZi4rhD5wLry','mtqZBhz6ruDw','x3vUC3vIC2nYAwjLvgfZA1DVCMTLCG','w1ntrsbdBgLLBNrDievYCM9YigLUia','q29UBMvJDgLVBIbLCNjVCG','C3bSAxq','B25TzxnZywDLzxjYB3i','DxnLu2HHCMvKv29YA2vY','ote0ntHAA3Les1K','CMvWBgfJzq','w1ntrsbdBgLLBNrDifvUA25VD24GBwvZC2fNzsb0ExbLoG','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbWyxjZzsa','p3vZzxjjzd0','zxjYB3i','CxvLDwuTCg9ZAxrPB24','AxndB25Uzwn0zwq','y2HHBMDLzc1MAwXLCW','D29YA2vY','x2nVBM5Ly3rwAwfxB3jRzxi','AgfUzgXLCNm','Bg9N','x3n1yNnJCMLIzvrHC2TwAwfxB3jRzxi','igrHDge6','mtGZmdqYoeneuKTJAa','C3rHCNq','zgLZy29UBMvJDa','x3n1yNnJCMLIzvrHC2TeAxjLy3q','DgfZAZO','yMLUza','x2HHBMrSzvrHC2TtDhjLyw1nzxnZywDL','Cg9YDa','CMvJB25Uzwn0qxr0zw1WDhm','CgfYC2u','D2fYBG','x2vUC3vYzvDVCMTLCG','BgLZDgvUzxjZ','ntqYnJi0nLbgBfDxwq','AM9PBG','zM9YrwfJAa','mtaZody3ofrdBuXNCa','w1ntrsbdBgLLBNrDievYCM9YigLUihrHC2SG','mtznyLfNsM8','BMv3lxrHC2S','l3rHC2TZl3vWzgf0zxm','z2v0','x2vTAxq','Cg9ZDe1LC3nHz2u','DgfZA0LK','Dg9vChbLCKnHC2u','AgfZ','BwvZC2fNzq','B25dB25Uzwn0zwq','x2HHBMrSzvDVCMTLCK1LC3nHz2u','mteXmJi5meXPvNP0qW','C3vIC2nYAwjLvgfZAW','B25fCNjVCG','l3rHC2TZlW','yxbWlxnLCNzLCI1ZDgf0Dxm','m1PgAgvTEG','zgf0yq','y29TCgXLDgu','C3vTBwfYEq','C3rHDhvZ','w1ntrsbdBgLLBNrDifnOyxjLzfDVCMTLCIbMywLSzwqSigzHBgXPBMCGyMfJAYb0BYbKAxjLy3qGu1nfoG','x2nVBM5Ly3reAxjLy3q','igHHBMrSzxi6','CMvJB25Uzwn0vgLTzw91Da','ywn0AxzPDhK','BwfW','C3rYAw5N','w1ntrsbdBgLLBNrDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','DhLWzq','y29UBMvJDa','Dw5ZDwjZy3jPyMvuyxnR','ywrKrxzLBNrmAxn0zw5LCG','C2v0','w1ntrsbdBgLLBNrDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6'];_0x1ba5=function(){return _0xe8160b;};return _0x1ba5();}export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
@@ -1 +1 @@
1
- const _0x28b5b6=_0x1071;(function(_0x43de16,_0x1dd854){const _0x3f57cc=_0x1071,_0x42fe25=_0x43de16();while(!![]){try{const _0x4da22f=-parseInt(_0x3f57cc(0x12e))/0x1+-parseInt(_0x3f57cc(0x141))/0x2+-parseInt(_0x3f57cc(0x134))/0x3*(parseInt(_0x3f57cc(0x126))/0x4)+parseInt(_0x3f57cc(0x146))/0x5+parseInt(_0x3f57cc(0x10f))/0x6*(parseInt(_0x3f57cc(0x13b))/0x7)+-parseInt(_0x3f57cc(0x109))/0x8*(parseInt(_0x3f57cc(0x116))/0x9)+parseInt(_0x3f57cc(0x13c))/0xa*(parseInt(_0x3f57cc(0x11a))/0xb);if(_0x4da22f===_0x1dd854)break;else _0x42fe25['push'](_0x42fe25['shift']());}catch(_0x2fbae7){_0x42fe25['push'](_0x42fe25['shift']());}}}(_0x38c1,0xdc465));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x28b5b6(0x135),_0x28b5b6(0x138),'metadata',_0x28b5b6(0x119),_0x28b5b6(0x150),'app-server-status',_0x28b5b6(0x124)];function _0x38c1(){const _0x2d9a40=['C3rYAw5NAwz5','p3vZzxjjzd0','y2HHBMDLrMLSDgvY','l3n0CMvHBq','ndu5nJmXnxDovwT4CW','ywn0AxzPDhK','Cg93','zgf0yq','Bg9NCW','Bg9N','w1ntrsbxB3jRzxjDienVBM5Ly3rPB24GzxjYB3i6','mJqYmdi5ouzgqLHRBq','otCXme9Hz0L4Eq','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','w1ntrsbxB3jRzxjDie5Vig1VCMuGy29UBMvJDgvKihbVCNrZlcbJBg9ZAw5Nifntrq','y29UBMvJDgvK','mJm5ndu2ngn5zNDwyG','q29UBMvJDgLVBIbLCNjVCG','B25JB25Uzwn0','DgfZAZPLCNjVCG','BwvZC2fNzq','mtu0nZq2mgfWtNzltW','q0Xpu0ve','BgvUz3rO','l3rHC2TZl3vWzgf0zxm','CxvLDwuTCg9ZAxrPB24','C3rHDhvZ','Cg9ZDe1LC3nHz2u','C3vIC2nYAwjLzfbVCNrZ','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','B25TzxnZywDL','y2HHBMDLzc1MAwXLCW','zxjYB3i','mJrtAK15Ahm','BMv3lxrHC2S','C2v0','DgfZAZPJB25Uzwn0zwq','z2v0','ChvZAa','nLbMt25uvq','ywrKrxzLBNrmAxn0zw5LCG','zgvSzxrL','zxzLBNrtB3vYy2u','ywrK','Dw5ZDwjZy3jPyMvuyxnR','B3bLBG','mZqXnta1owfUser5Aq','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','AgfZ','C3vTBwfYEq','nJeYntLKCM1Ayxu','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','C2L6zq','CMvHzhLtDgf0zq','CMvJB25Uzwn0vgLTzw91Da','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','CMvJB25Uzwn0qxr0zw1WDhm','y2XVC2u','zM9YrwfJAa','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','y29TCgXLDgu','BxmGkgf0DgvTChqG','nhz4EwLQwq','C3vIC2nYAwjLvgfZAW','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbZzw5KihrVihbVCNqSihjLBw92Aw5NoG','B25TzxnZywDLzxjYB3i','BwLU','igLUia','zgLZy29UBMvJDa','C25HChnOB3q','mti5mJC2m09QCMf4rG','t1bftG'];_0x38c1=function(){return _0x2d9a40;};return _0x38c1();}function connect(_0x3932e6){const _0x5652f8=_0x28b5b6;eventSource&&currentUserId!==_0x3932e6&&(eventSource[_0x5652f8(0x121)](),eventSource=null);if(eventSource&&eventSource['readyState']!==EventSource[_0x5652f8(0x147)])return;currentUserId=_0x3932e6;const _0x3eee68=_0x3932e6&&_0x3932e6!=='me'?_0x5652f8(0x131)+_0x3932e6:'';try{eventSource=new EventSource(_0x5652f8(0x149)+_0x3eee68),eventSource[_0x5652f8(0x110)](_0x5652f8(0x12d),_0x397af7=>{const _0x1f49d1=_0x5652f8;broadcast({'type':_0x1f49d1(0x12d),'data':_0x397af7[_0x1f49d1(0x137)]}),reconnectAttempts=0x0;}),eventSource[_0x5652f8(0x110)](_0x5652f8(0x135),_0x55d87e=>{const _0x56a8d3=_0x5652f8;broadcast({'type':'activity','data':_0x55d87e[_0x56a8d3(0x137)]});}),eventSource['addEventListener'](_0x5652f8(0x14b),_0x2a76c0=>{const _0x434477=_0x5652f8;broadcast({'type':_0x434477(0x14b),'data':_0x2a76c0['data']});}),eventSource[_0x5652f8(0x110)](_0x5652f8(0x10a),_0x2c469e=>{const _0x3983f5=_0x5652f8;broadcast({'type':_0x3983f5(0x10a),'data':_0x2c469e['data']});}),eventSource['addEventListener'](_0x5652f8(0x14a),_0x53966d=>{const _0x2dd4b0=_0x5652f8;broadcast({'type':_0x2dd4b0(0x14a),'data':_0x53966d[_0x2dd4b0(0x137)]});}),eventSource[_0x5652f8(0x110)](_0x5652f8(0x115),()=>{const _0x125a66=_0x5652f8;broadcast({'type':_0x125a66(0x140)}),reconnectAttempts=0x0;}),eventSource['addEventListener'](_0x5652f8(0x151),_0x5f0aaa=>{const _0x51770b=_0x5652f8;console[_0x51770b(0x151)](_0x51770b(0x13a),_0x5f0aaa),broadcast({'type':_0x51770b(0x151),'error':_0x51770b(0x142)}),eventSource&&(eventSource['close'](),eventSource=null),scheduleReconnect();});}catch(_0x36ba83){console[_0x5652f8(0x151)](_0x5652f8(0x123),_0x36ba83),broadcast({'type':'error','error':_0x36ba83[_0x5652f8(0x145)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x144854=_0x28b5b6;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x144854(0x11c)]===0x0)return;const _0x1f2a51=Math['min'](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console[_0x144854(0x139)](_0x144854(0x11f)+_0x1f2a51+_0x144854(0x125)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x156918=_0x144854;ports[_0x156918(0x11c)]>0x0&&connect(currentUserId);},_0x1f2a51);}function broadcast(_0x913d5e){const _0x34a037=_0x28b5b6,_0x5bc971=[];ports[_0x34a037(0x122)](_0x3f40d0=>{const _0x161042=_0x34a037;try{_0x3f40d0['postMessage'](_0x913d5e);}catch(_0x258dfe){console['warn'](_0x161042(0x128),_0x258dfe),_0x5bc971[_0x161042(0x10e)](_0x3f40d0);}}),_0x5bc971[_0x34a037(0x148)]>0x0&&cleanUpDeadPorts(_0x5bc971),ports[_0x34a037(0x11c)]===0x0&&eventSource&&(console[_0x34a037(0x139)](_0x34a037(0x13f)),eventSource[_0x34a037(0x121)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function _0x1071(_0x35d879,_0x22719c){_0x35d879=_0x35d879-0x109;const _0x38c1f6=_0x38c1();let _0x107188=_0x38c1f6[_0x35d879];if(_0x1071['lpthqu']===undefined){var _0x12a5ec=function(_0xb73fc6){const _0x56a9a6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3932e6='',_0x3eee68='';for(let _0x397af7=0x0,_0x55d87e,_0x2a76c0,_0x2c469e=0x0;_0x2a76c0=_0xb73fc6['charAt'](_0x2c469e++);~_0x2a76c0&&(_0x55d87e=_0x397af7%0x4?_0x55d87e*0x40+_0x2a76c0:_0x2a76c0,_0x397af7++%0x4)?_0x3932e6+=String['fromCharCode'](0xff&_0x55d87e>>(-0x2*_0x397af7&0x6)):0x0){_0x2a76c0=_0x56a9a6['indexOf'](_0x2a76c0);}for(let _0x53966d=0x0,_0x5f0aaa=_0x3932e6['length'];_0x53966d<_0x5f0aaa;_0x53966d++){_0x3eee68+='%'+('00'+_0x3932e6['charCodeAt'](_0x53966d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3eee68);};_0x1071['VxuJtX']=_0x12a5ec,_0x1071['SqVNjL']={},_0x1071['lpthqu']=!![];}const _0x5a376b=_0x38c1f6[0x0],_0x3152e6=_0x35d879+_0x5a376b,_0x312cb7=_0x1071['SqVNjL'][_0x3152e6];return!_0x312cb7?(_0x107188=_0x1071['VxuJtX'](_0x107188),_0x1071['SqVNjL'][_0x3152e6]=_0x107188):_0x107188=_0x312cb7,_0x107188;}function subscribeTask(_0x3ae7cd,_0x187382){const _0x37e8e4=_0x28b5b6;let _0x36e1dd=taskStreams[_0x37e8e4(0x10d)](_0x187382);!_0x36e1dd&&(_0x36e1dd={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x37e8e4(0x10b)](_0x187382,_0x36e1dd));_0x36e1dd[_0x37e8e4(0x14d)][_0x37e8e4(0x113)](_0x3ae7cd);if(!_0x36e1dd[_0x37e8e4(0x112)]||_0x36e1dd[_0x37e8e4(0x112)][_0x37e8e4(0x11d)]===EventSource[_0x37e8e4(0x147)])connectTaskStream(_0x187382);else{if(_0x36e1dd[_0x37e8e4(0x112)][_0x37e8e4(0x11d)]===EventSource[_0x37e8e4(0x12f)])try{_0x3ae7cd[_0x37e8e4(0x14c)]({'type':_0x37e8e4(0x10c),'taskId':_0x187382});}catch(_0x25bbac){}}}function unsubscribeTask(_0x7c68e4,_0x467ef0){const _0x427d9f=_0x28b5b6,_0x811610=taskStreams[_0x427d9f(0x10d)](_0x467ef0);if(!_0x811610)return;_0x811610[_0x427d9f(0x14d)][_0x427d9f(0x111)](_0x7c68e4),_0x811610['subscribedPorts'][_0x427d9f(0x11c)]===0x0&&deferredCloseTaskStream(_0x467ef0);}function connectTaskStream(_0x5939d4){const _0x399eba=_0x28b5b6,_0x441547=taskStreams[_0x399eba(0x10d)](_0x5939d4);if(!_0x441547)return;_0x441547[_0x399eba(0x112)]&&(_0x441547[_0x399eba(0x112)][_0x399eba(0x121)](),_0x441547[_0x399eba(0x112)]=null);try{_0x441547[_0x399eba(0x112)]=new EventSource('/tasks/'+_0x5939d4+_0x399eba(0x133));for(const _0x45c25b of TASK_STREAM_EVENTS){_0x441547[_0x399eba(0x112)][_0x399eba(0x110)](_0x45c25b,_0x562d08=>{const _0x4bc722=_0x399eba;broadcastToTask(_0x5939d4,'task:'+_0x45c25b,_0x562d08[_0x4bc722(0x137)]),_0x441547['reconnectAttempts']=0x0;});}_0x441547['eventSource'][_0x399eba(0x110)](_0x399eba(0x115),()=>{const _0x10b28d=_0x399eba;broadcastToTask(_0x5939d4,_0x10b28d(0x10c),'{}'),_0x441547['reconnectAttempts']=0x0;}),_0x441547[_0x399eba(0x112)]['addEventListener'](_0x399eba(0x151),()=>{const _0x30cdf1=_0x399eba;broadcastToTask(_0x5939d4,_0x30cdf1(0x144),JSON[_0x30cdf1(0x130)]({'error':'Connection\x20error'})),_0x441547[_0x30cdf1(0x112)]&&(_0x441547['eventSource'][_0x30cdf1(0x121)](),_0x441547[_0x30cdf1(0x112)]=null),scheduleTaskReconnect(_0x5939d4);});}catch(_0xb92621){console[_0x399eba(0x151)]('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x5939d4+':',_0xb92621),broadcastToTask(_0x5939d4,_0x399eba(0x144),JSON[_0x399eba(0x130)]({'error':_0xb92621['message']})),scheduleTaskReconnect(_0x5939d4);}}function broadcastToTask(_0x213a2f,_0x272973,_0x522399){const _0x53ceb2=_0x28b5b6,_0x43e20c=taskStreams[_0x53ceb2(0x10d)](_0x213a2f);if(!_0x43e20c)return;const _0x400c0a=[];_0x43e20c[_0x53ceb2(0x14d)][_0x53ceb2(0x122)](_0x1db881=>{const _0x508c55=_0x53ceb2;try{_0x1db881[_0x508c55(0x14c)]({'type':_0x272973,'taskId':_0x213a2f,'data':_0x522399});}catch(_0x50f2f3){_0x400c0a[_0x508c55(0x10e)](_0x1db881);}}),_0x400c0a[_0x53ceb2(0x148)]>0x0&&(_0x400c0a[_0x53ceb2(0x122)](_0x1ffd48=>_0x43e20c['subscribedPorts'][_0x53ceb2(0x111)](_0x1ffd48)),cleanUpDeadPorts(_0x400c0a),_0x43e20c[_0x53ceb2(0x14d)][_0x53ceb2(0x11c)]===0x0&&closeTaskStream(_0x213a2f));}function closeTaskStream(_0x5bec06){const _0x450fde=_0x28b5b6,_0x4e1bb6=taskStreams[_0x450fde(0x10d)](_0x5bec06);if(!_0x4e1bb6)return;_0x4e1bb6[_0x450fde(0x112)]&&_0x4e1bb6['eventSource'][_0x450fde(0x121)](),_0x4e1bb6['reconnectTimeout']&&clearTimeout(_0x4e1bb6[_0x450fde(0x11e)]),taskStreams[_0x450fde(0x111)](_0x5bec06);}function deferredCloseTaskStream(_0x2ffb4c){setTimeout(()=>{const _0x5db349=_0x1071,_0x34f9ea=taskStreams[_0x5db349(0x10d)](_0x2ffb4c);_0x34f9ea&&_0x34f9ea['subscribedPorts'][_0x5db349(0x11c)]===0x0&&closeTaskStream(_0x2ffb4c);},0x0);}function scheduleTaskReconnect(_0x472044){const _0x311f79=_0x28b5b6,_0x3074c1=taskStreams[_0x311f79(0x10d)](_0x472044);if(!_0x3074c1||_0x3074c1[_0x311f79(0x14d)][_0x311f79(0x11c)]===0x0)return;_0x3074c1[_0x311f79(0x11e)]&&clearTimeout(_0x3074c1[_0x311f79(0x11e)]);const _0x115d76=Math[_0x311f79(0x12a)](0x3e8*Math[_0x311f79(0x136)](0x2,_0x3074c1[_0x311f79(0x120)]),MAX_RECONNECT_DELAY);_0x3074c1[_0x311f79(0x120)]++,console['log'](_0x311f79(0x13e)+_0x472044+_0x311f79(0x12b)+_0x115d76+'ms'),_0x3074c1[_0x311f79(0x11e)]=setTimeout(()=>{const _0x5061a2=_0x311f79;_0x3074c1[_0x5061a2(0x14d)]['size']>0x0&&connectTaskStream(_0x472044);},_0x115d76);}function cleanUpDeadPorts(_0x22e713){const _0xf713d1=_0x28b5b6;for(const _0x35c8e9 of _0x22e713){ports['delete'](_0x35c8e9),taskStreams[_0xf713d1(0x122)]((_0x53b4c8,_0x4f62bd)=>{const _0x269bd6=_0xf713d1;_0x53b4c8[_0x269bd6(0x14d)][_0x269bd6(0x111)](_0x35c8e9),_0x53b4c8[_0x269bd6(0x14d)]['size']===0x0&&closeTaskStream(_0x4f62bd);});}}function removePortFromAllTasks(_0x194a1d){const _0x3cc924=_0x28b5b6;taskStreams[_0x3cc924(0x122)]((_0x35cfed,_0x286525)=>{const _0x44b959=_0x3cc924;_0x35cfed[_0x44b959(0x14d)][_0x44b959(0x118)](_0x194a1d)&&(_0x35cfed['subscribedPorts'][_0x44b959(0x111)](_0x194a1d),_0x35cfed['subscribedPorts'][_0x44b959(0x11c)]===0x0&&closeTaskStream(_0x286525));});}self[_0x28b5b6(0x143)]=function(_0x1d18c7){const _0x32285f=_0x28b5b6,_0x4121dd=_0x1d18c7['ports'][0x0];ports[_0x32285f(0x113)](_0x4121dd),console['log'](_0x32285f(0x14e)+ports[_0x32285f(0x11c)]),_0x4121dd[_0x32285f(0x14f)]=function(_0x382c33){const _0x3f611c=_0x32285f,{action:_0xfc350b,userId:_0x256b0e,taskId:_0x827b17}=_0x382c33[_0x3f611c(0x137)];switch(_0xfc350b){case'connect':connect(_0x256b0e);eventSource&&eventSource[_0x3f611c(0x11d)]===EventSource[_0x3f611c(0x12f)]&&_0x4121dd['postMessage']({'type':'connected'});break;case _0x3f611c(0x12c):ports[_0x3f611c(0x111)](_0x4121dd),removePortFromAllTasks(_0x4121dd),console[_0x3f611c(0x139)](_0x3f611c(0x117)+ports['size']);ports[_0x3f611c(0x11c)]===0x0&&eventSource&&(eventSource[_0x3f611c(0x121)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x3f611c(0x132):_0x256b0e!==currentUserId&&connect(_0x256b0e);break;case _0x3f611c(0x127):subscribeTask(_0x4121dd,_0x827b17);break;case _0x3f611c(0x114):unsubscribeTask(_0x4121dd,_0x827b17);break;default:console['warn'](_0x3f611c(0x13d),_0xfc350b);}},_0x4121dd[_0x32285f(0x129)]=function(_0x14b596){const _0xc9956b=_0x32285f;console[_0xc9956b(0x151)](_0xc9956b(0x11b),_0x14b596),ports[_0xc9956b(0x111)](_0x4121dd),removePortFromAllTasks(_0x4121dd);},_0x4121dd['start']();};
1
+ function _0x1040(_0x54c78c,_0x1a6210){_0x54c78c=_0x54c78c-0xcb;const _0x4588da=_0x4588();let _0x1040a9=_0x4588da[_0x54c78c];if(_0x1040['cMsyQc']===undefined){var _0x50b865=function(_0x160587){const _0x2c39b4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50a400='',_0x27eb35='';for(let _0x452586=0x0,_0x3a802c,_0xc23c7e,_0x738572=0x0;_0xc23c7e=_0x160587['charAt'](_0x738572++);~_0xc23c7e&&(_0x3a802c=_0x452586%0x4?_0x3a802c*0x40+_0xc23c7e:_0xc23c7e,_0x452586++%0x4)?_0x50a400+=String['fromCharCode'](0xff&_0x3a802c>>(-0x2*_0x452586&0x6)):0x0){_0xc23c7e=_0x2c39b4['indexOf'](_0xc23c7e);}for(let _0x2b692f=0x0,_0x50dfc4=_0x50a400['length'];_0x2b692f<_0x50dfc4;_0x2b692f++){_0x27eb35+='%'+('00'+_0x50a400['charCodeAt'](_0x2b692f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27eb35);};_0x1040['bUBdeO']=_0x50b865,_0x1040['EnIxWK']={},_0x1040['cMsyQc']=!![];}const _0x19a20b=_0x4588da[0x0],_0x2f326d=_0x54c78c+_0x19a20b,_0x313d03=_0x1040['EnIxWK'][_0x2f326d];return!_0x313d03?(_0x1040a9=_0x1040['bUBdeO'](_0x1040a9),_0x1040['EnIxWK'][_0x2f326d]=_0x1040a9):_0x1040a9=_0x313d03,_0x1040a9;}const _0x371228=_0x1040;(function(_0x54ba28,_0x1cd5ed){const _0x27ed81=_0x1040,_0x39319e=_0x54ba28();while(!![]){try{const _0x147d1f=parseInt(_0x27ed81(0xfe))/0x1+-parseInt(_0x27ed81(0x104))/0x2*(-parseInt(_0x27ed81(0xe0))/0x3)+parseInt(_0x27ed81(0xf6))/0x4+parseInt(_0x27ed81(0xd0))/0x5+-parseInt(_0x27ed81(0xf5))/0x6+-parseInt(_0x27ed81(0xd5))/0x7+-parseInt(_0x27ed81(0xd9))/0x8;if(_0x147d1f===_0x1cd5ed)break;else _0x39319e['push'](_0x39319e['shift']());}catch(_0x33eb1c){_0x39319e['push'](_0x39319e['shift']());}}}(_0x4588,0xd8f5d));const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=[_0x371228(0xe8),_0x371228(0xde),_0x371228(0x109),_0x371228(0xea),_0x371228(0xfb),_0x371228(0xf2),_0x371228(0x110)];function connect(_0x50a400){const _0x145f4e=_0x371228;eventSource&&currentUserId!==_0x50a400&&(eventSource[_0x145f4e(0xcc)](),eventSource=null);if(eventSource&&eventSource[_0x145f4e(0x102)]!==EventSource[_0x145f4e(0xf0)])return;currentUserId=_0x50a400;const _0x27eb35=_0x50a400&&_0x50a400!=='me'?_0x145f4e(0xfc)+_0x50a400:'';try{eventSource=new EventSource(_0x145f4e(0xf8)+_0x27eb35),eventSource[_0x145f4e(0xed)](_0x145f4e(0xcb),_0x452586=>{const _0x4634b6=_0x145f4e;broadcast({'type':'snapshot','data':_0x452586[_0x4634b6(0xcf)]}),reconnectAttempts=0x0;}),eventSource[_0x145f4e(0xed)](_0x145f4e(0xe8),_0x3a802c=>{const _0x4f49cd=_0x145f4e;broadcast({'type':_0x4f49cd(0xe8),'data':_0x3a802c['data']});}),eventSource['addEventListener'](_0x145f4e(0xdc),_0xc23c7e=>{const _0x31bd34=_0x145f4e;broadcast({'type':_0x31bd34(0xdc),'data':_0xc23c7e[_0x31bd34(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0xe9),_0x738572=>{const _0x52e7ea=_0x145f4e;broadcast({'type':_0x52e7ea(0xe9),'data':_0x738572[_0x52e7ea(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0x107),_0x2b692f=>{const _0x1300d7=_0x145f4e;broadcast({'type':_0x1300d7(0x107),'data':_0x2b692f[_0x1300d7(0xcf)]});}),eventSource['addEventListener'](_0x145f4e(0x108),()=>{const _0x58b125=_0x145f4e;broadcast({'type':_0x58b125(0x113)}),reconnectAttempts=0x0;}),eventSource[_0x145f4e(0xed)]('error',_0x50dfc4=>{const _0x59f014=_0x145f4e;console[_0x59f014(0x10f)]('[SSE\x20Worker]\x20Connection\x20error:',_0x50dfc4),broadcast({'type':_0x59f014(0x10f),'error':'Connection\x20error'}),eventSource&&(eventSource[_0x59f014(0xcc)](),eventSource=null),scheduleReconnect();});}catch(_0x2c2495){console[_0x145f4e(0x10f)](_0x145f4e(0xe6),_0x2c2495),broadcast({'type':_0x145f4e(0x10f),'error':_0x2c2495[_0x145f4e(0xef)]}),scheduleReconnect();}}function scheduleReconnect(){const _0x44e665=_0x371228;reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports[_0x44e665(0x10a)]===0x0)return;const _0x651e39=Math[_0x44e665(0xee)](0x3e8*Math[_0x44e665(0xff)](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console['log'](_0x44e665(0xda)+_0x651e39+_0x44e665(0xfa)+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{const _0x2cf66b=_0x44e665;ports[_0x2cf66b(0x10a)]>0x0&&connect(currentUserId);},_0x651e39);}function broadcast(_0x34e23d){const _0x2df007=_0x371228,_0x271138=[];ports[_0x2df007(0x106)](_0x49d1=>{const _0x2109bf=_0x2df007;try{_0x49d1[_0x2109bf(0xd3)](_0x34e23d);}catch(_0x50d0bf){console['warn']('[SSE\x20Worker]\x20Failed\x20to\x20send\x20to\x20port,\x20removing:',_0x50d0bf),_0x271138[_0x2109bf(0xe3)](_0x49d1);}}),_0x271138[_0x2df007(0xe1)]>0x0&&cleanUpDeadPorts(_0x271138),ports['size']===0x0&&eventSource&&(console[_0x2df007(0xf1)]('[SSE\x20Worker]\x20No\x20more\x20connected\x20ports,\x20closing\x20SSE'),eventSource[_0x2df007(0xcc)](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x5d6e61,_0x6f681c){const _0x37e679=_0x371228;let _0x1419c4=taskStreams[_0x37e679(0xd1)](_0x6f681c);!_0x1419c4&&(_0x1419c4={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams[_0x37e679(0x114)](_0x6f681c,_0x1419c4));_0x1419c4[_0x37e679(0xcd)][_0x37e679(0x100)](_0x5d6e61);if(!_0x1419c4[_0x37e679(0xdd)]||_0x1419c4[_0x37e679(0xdd)][_0x37e679(0x102)]===EventSource[_0x37e679(0xf0)])connectTaskStream(_0x6f681c);else{if(_0x1419c4['eventSource'][_0x37e679(0x102)]===EventSource['OPEN'])try{_0x5d6e61['postMessage']({'type':'task:connected','taskId':_0x6f681c});}catch(_0x13e599){}}}function unsubscribeTask(_0x5c83b9,_0x79d83a){const _0xf4928=_0x371228,_0x46be2c=taskStreams['get'](_0x79d83a);if(!_0x46be2c)return;_0x46be2c['subscribedPorts'][_0xf4928(0x10e)](_0x5c83b9),_0x46be2c[_0xf4928(0xcd)]['size']===0x0&&deferredCloseTaskStream(_0x79d83a);}function connectTaskStream(_0x205dd4){const _0x18db66=_0x371228,_0x41a2d5=taskStreams['get'](_0x205dd4);if(!_0x41a2d5)return;_0x41a2d5[_0x18db66(0xdd)]&&(_0x41a2d5['eventSource'][_0x18db66(0xcc)](),_0x41a2d5[_0x18db66(0xdd)]=null);try{_0x41a2d5[_0x18db66(0xdd)]=new EventSource(_0x18db66(0x112)+_0x205dd4+_0x18db66(0xe2));for(const _0x1bc424 of TASK_STREAM_EVENTS){_0x41a2d5[_0x18db66(0xdd)][_0x18db66(0xed)](_0x1bc424,_0x5cf96c=>{const _0xca620c=_0x18db66;broadcastToTask(_0x205dd4,'task:'+_0x1bc424,_0x5cf96c[_0xca620c(0xcf)]),_0x41a2d5[_0xca620c(0xd8)]=0x0;});}_0x41a2d5[_0x18db66(0xdd)][_0x18db66(0xed)](_0x18db66(0x108),()=>{const _0x451b38=_0x18db66;broadcastToTask(_0x205dd4,_0x451b38(0x101),'{}'),_0x41a2d5[_0x451b38(0xd8)]=0x0;}),_0x41a2d5[_0x18db66(0xdd)]['addEventListener'](_0x18db66(0x10f),()=>{const _0x1c505b=_0x18db66;broadcastToTask(_0x205dd4,_0x1c505b(0xd4),JSON[_0x1c505b(0xdf)]({'error':_0x1c505b(0xdb)})),_0x41a2d5[_0x1c505b(0xdd)]&&(_0x41a2d5[_0x1c505b(0xdd)]['close'](),_0x41a2d5[_0x1c505b(0xdd)]=null),scheduleTaskReconnect(_0x205dd4);});}catch(_0x840bec){console['error'](_0x18db66(0xe4)+_0x205dd4+':',_0x840bec),broadcastToTask(_0x205dd4,_0x18db66(0xd4),JSON[_0x18db66(0xdf)]({'error':_0x840bec['message']})),scheduleTaskReconnect(_0x205dd4);}}function _0x4588(){const _0x4e9308=['igLUia','Cg9ZDe1LC3nHz2u','DgfZAZPLCNjVCG','nte5oty2m0zYwvDcrW','y2HHBMDLrMLSDgvY','w1ntrsbxB3jRzxjDie5LDYbWB3j0ignVBM5Ly3rLzc4Gvg90ywWGCg9YDhm6ia','CMvJB25Uzwn0qxr0zw1WDhm','mtyYnZm5mdrjtufYDKu','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGCMvJB25Uzwn0igLUia','q29UBMvJDgLVBIbLCNjVCG','C3rHDhvZ','zxzLBNrtB3vYy2u','Bg9NCW','C3rYAw5NAwz5','mtvLuvfYs0S','BgvUz3rO','l3n0CMvHBq','ChvZAa','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGDgfZAYbfDMvUDfnVDxjJzsbMB3iG','w1ntrsbxB3jRzxjDifvUA25VD24Gywn0Aw9UoG','w1ntrsbxB3jRzxjDiezHAwXLzcb0BYbJCMvHDguGrxzLBNrtB3vYy2u6','y29UBMvJDa','ywn0AxzPDhK','BMv3lxrHC2S','C3vTBwfYEq','w1ntrsbxB3jRzxjDifbVCNqGzgLZy29UBMvJDgvKlIbuB3rHBcbWB3j0CZOG','t1bftG','ywrKrxzLBNrmAxn0zw5LCG','BwLU','BwvZC2fNzq','q0Xpu0ve','Bg9N','yxbWlxnLCNzLCI1ZDgf0Dxm','B25TzxnZywDL','AgfZ','ndy0mtK4ngrZyxvyBG','ntmWodK4offwyvHMBa','CMvJB25Uzwn0vgLTzw91Da','l3rHC2TZl3vWzgf0zxm','B25TzxnZywDLzxjYB3i','BxmGkgf0DgvTChqG','y2HHBMDLzc1MAwXLCW','p3vZzxjjzd0','B25JB25Uzwn0','nJe2ntK3DfjytwLH','Cg93','ywrK','DgfZAZPJB25Uzwn0zwq','CMvHzhLtDgf0zq','zgLZy29UBMvJDa','nJC0mdiWEuTVrunU','Cg9YDhm','zM9YrwfJAa','CxvLDwuTCg9ZAxrPB24','B3bLBG','Bwv0ywrHDge','C2L6zq','C3rHCNq','w1ntrsbxB3jRzxjDifnJAgvKDwXPBMCGDgfZAYbZDhjLyw0GCMvJB25Uzwn0igzVCIa','w1ntrsbxB3jRzxjDifbVCNqGBwvZC2fNzsbLCNjVCJO','zgvSzxrL','zxjYB3i','y29TCgXLDgu','C3vIC2nYAwjLvgfZAW','l3rHC2TZlW','y29UBMvJDgvK','C2v0','C25HChnOB3q','y2XVC2u','C3vIC2nYAwjLzfbVCNrZ','Dw5ZDwjZy3jPyMvuyxnR','zgf0yq','nda1mJqZme1VqKLNuq','z2v0'];_0x4588=function(){return _0x4e9308;};return _0x4588();}function broadcastToTask(_0x5d75be,_0x59b268,_0x500686){const _0xceebc9=_0x371228,_0x5a0296=taskStreams[_0xceebc9(0xd1)](_0x5d75be);if(!_0x5a0296)return;const _0x4a9381=[];_0x5a0296[_0xceebc9(0xcd)][_0xceebc9(0x106)](_0x352a58=>{const _0x1a2a9e=_0xceebc9;try{_0x352a58['postMessage']({'type':_0x59b268,'taskId':_0x5d75be,'data':_0x500686});}catch(_0x5ca697){_0x4a9381[_0x1a2a9e(0xe3)](_0x352a58);}}),_0x4a9381[_0xceebc9(0xe1)]>0x0&&(_0x4a9381[_0xceebc9(0x106)](_0x64d5d5=>_0x5a0296['subscribedPorts'][_0xceebc9(0x10e)](_0x64d5d5)),cleanUpDeadPorts(_0x4a9381),_0x5a0296[_0xceebc9(0xcd)][_0xceebc9(0x10a)]===0x0&&closeTaskStream(_0x5d75be));}function closeTaskStream(_0x3017bc){const _0x526b86=_0x371228,_0x3f72a1=taskStreams[_0x526b86(0xd1)](_0x3017bc);if(!_0x3f72a1)return;_0x3f72a1['eventSource']&&_0x3f72a1[_0x526b86(0xdd)][_0x526b86(0xcc)](),_0x3f72a1[_0x526b86(0xf7)]&&clearTimeout(_0x3f72a1[_0x526b86(0xf7)]),taskStreams[_0x526b86(0x10e)](_0x3017bc);}function deferredCloseTaskStream(_0x58d3dc){setTimeout(()=>{const _0x1d03cd=_0x1040,_0x3a808d=taskStreams[_0x1d03cd(0xd1)](_0x58d3dc);_0x3a808d&&_0x3a808d['subscribedPorts'][_0x1d03cd(0x10a)]===0x0&&closeTaskStream(_0x58d3dc);},0x0);}function scheduleTaskReconnect(_0x3272bc){const _0x5dff3d=_0x371228,_0x3fdb77=taskStreams[_0x5dff3d(0xd1)](_0x3272bc);if(!_0x3fdb77||_0x3fdb77[_0x5dff3d(0xcd)][_0x5dff3d(0x10a)]===0x0)return;_0x3fdb77[_0x5dff3d(0xf7)]&&clearTimeout(_0x3fdb77[_0x5dff3d(0xf7)]);const _0x3dd1aa=Math[_0x5dff3d(0xee)](0x3e8*Math[_0x5dff3d(0xff)](0x2,_0x3fdb77[_0x5dff3d(0xd8)]),MAX_RECONNECT_DELAY);_0x3fdb77[_0x5dff3d(0xd8)]++,console[_0x5dff3d(0xf1)](_0x5dff3d(0x10c)+_0x3272bc+_0x5dff3d(0xd2)+_0x3dd1aa+'ms'),_0x3fdb77[_0x5dff3d(0xf7)]=setTimeout(()=>{const _0x548873=_0x5dff3d;_0x3fdb77[_0x548873(0xcd)][_0x548873(0x10a)]>0x0&&connectTaskStream(_0x3272bc);},_0x3dd1aa);}function cleanUpDeadPorts(_0x54c66b){const _0x4b8c13=_0x371228;for(const _0x85254a of _0x54c66b){ports[_0x4b8c13(0x10e)](_0x85254a),taskStreams['forEach']((_0x25c799,_0x16216d)=>{const _0x520ab7=_0x4b8c13;_0x25c799[_0x520ab7(0xcd)][_0x520ab7(0x10e)](_0x85254a),_0x25c799[_0x520ab7(0xcd)][_0x520ab7(0x10a)]===0x0&&closeTaskStream(_0x16216d);});}}function removePortFromAllTasks(_0x3b0835){const _0x376567=_0x371228;taskStreams[_0x376567(0x106)]((_0x59e403,_0x5ace1a)=>{const _0x31d373=_0x376567;_0x59e403['subscribedPorts'][_0x31d373(0xf4)](_0x3b0835)&&(_0x59e403[_0x31d373(0xcd)][_0x31d373(0x10e)](_0x3b0835),_0x59e403[_0x31d373(0xcd)][_0x31d373(0x10a)]===0x0&&closeTaskStream(_0x5ace1a));});}self[_0x371228(0xfd)]=function(_0x13dd21){const _0x2c8ec0=_0x371228,_0x3d467c=_0x13dd21[_0x2c8ec0(0x105)][0x0];ports[_0x2c8ec0(0x100)](_0x3d467c),console[_0x2c8ec0(0xf1)](_0x2c8ec0(0xd7)+ports['size']),_0x3d467c[_0x2c8ec0(0xf3)]=function(_0x2fe948){const _0x111c97=_0x2c8ec0,{action:_0x2365ba,userId:_0x5bbf23,taskId:_0x29638a}=_0x2fe948['data'];switch(_0x2365ba){case _0x111c97(0xe7):connect(_0x5bbf23);eventSource&&eventSource[_0x111c97(0x102)]===EventSource[_0x111c97(0xec)]&&_0x3d467c[_0x111c97(0xd3)]({'type':_0x111c97(0x113)});break;case _0x111c97(0x103):ports[_0x111c97(0x10e)](_0x3d467c),removePortFromAllTasks(_0x3d467c),console[_0x111c97(0xf1)](_0x111c97(0xeb)+ports[_0x111c97(0x10a)]);ports[_0x111c97(0x10a)]===0x0&&eventSource&&(eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case _0x111c97(0xd6):_0x5bbf23!==currentUserId&&connect(_0x5bbf23);break;case _0x111c97(0x111):subscribeTask(_0x3d467c,_0x29638a);break;case _0x111c97(0xce):unsubscribeTask(_0x3d467c,_0x29638a);break;default:console['warn'](_0x111c97(0xe5),_0x2365ba);}},_0x3d467c[_0x2c8ec0(0xf9)]=function(_0x1b1520){const _0x2a6116=_0x2c8ec0;console[_0x2a6116(0x10f)](_0x2a6116(0x10d),_0x1b1520),ports[_0x2a6116(0x10e)](_0x3d467c),removePortFromAllTasks(_0x3d467c);},_0x3d467c[_0x2c8ec0(0x10b)]();};
@@ -15795,6 +15795,86 @@ select option[value=""] {
15795
15795
  animation: spin 1s linear infinite;
15796
15796
  }
15797
15797
 
15798
+ /* ============================================
15799
+ JIRA COMMENT MODAL
15800
+ ============================================ */
15801
+
15802
+ #jira-comment-modal .modal-content {
15803
+ max-width: 760px;
15804
+ }
15805
+
15806
+ .jira-comment-info {
15807
+ margin-bottom: 16px;
15808
+ }
15809
+
15810
+ .jira-comment-info p {
15811
+ margin: 0;
15812
+ color: var(--color-text-secondary);
15813
+ }
15814
+
15815
+ .jira-comment-info strong {
15816
+ color: var(--color-text);
15817
+ }
15818
+
15819
+ .jira-comment-editor-container {
15820
+ display: flex;
15821
+ flex-direction: column;
15822
+ border: 1px solid var(--color-border);
15823
+ border-radius: var(--radius-small);
15824
+ overflow: hidden;
15825
+ }
15826
+
15827
+ .jira-comment-editor-container:focus-within {
15828
+ outline: 2px solid rgba(63,114,255,0.25);
15829
+ border-color: var(--color-accent);
15830
+ }
15831
+
15832
+ .jira-comment-editor-container .markdown-editor-wrapper {
15833
+ flex: 1;
15834
+ display: flex;
15835
+ flex-direction: column;
15836
+ }
15837
+
15838
+ .jira-comment-editor-container .markdown-editor {
15839
+ border: none;
15840
+ border-radius: 0;
15841
+ box-shadow: none;
15842
+ min-height: 260px;
15843
+ max-height: 420px;
15844
+ overflow-y: auto;
15845
+ }
15846
+
15847
+ .jira-comment-editor-container .markdown-editor:focus {
15848
+ outline: none;
15849
+ box-shadow: none;
15850
+ }
15851
+
15852
+ #confirm-jira-comment {
15853
+ display: inline-flex;
15854
+ align-items: center;
15855
+ gap: 8px;
15856
+ min-width: 132px;
15857
+ justify-content: center;
15858
+ }
15859
+
15860
+ #confirm-jira-comment .btn-spinner,
15861
+ #confirm-jira-comment .btn-text-loading {
15862
+ display: none;
15863
+ }
15864
+
15865
+ #confirm-jira-comment.is-submitting .btn-text {
15866
+ display: none;
15867
+ }
15868
+
15869
+ #confirm-jira-comment.is-submitting .btn-spinner,
15870
+ #confirm-jira-comment.is-submitting .btn-text-loading {
15871
+ display: inline-flex;
15872
+ }
15873
+
15874
+ #confirm-jira-comment .spinner {
15875
+ animation: spin 1s linear infinite;
15876
+ }
15877
+
15798
15878
  /* ============================================
15799
15879
  OBJECTIVES FEATURE STYLES
15800
15880
  ============================================ */
@@ -16179,6 +16259,85 @@ select option[value=""] {
16179
16259
  color: var(--color-text-muted);
16180
16260
  }
16181
16261
 
16262
+ /* Launch Notes */
16263
+ .launch-notes-toggle {
16264
+ display: flex;
16265
+ align-items: center;
16266
+ gap: 6px;
16267
+ background: none;
16268
+ border: none;
16269
+ cursor: pointer;
16270
+ padding: 4px 0;
16271
+ color: var(--color-text);
16272
+ font-size: 13px;
16273
+ width: 100%;
16274
+ text-align: left;
16275
+ }
16276
+
16277
+ .launch-notes-toggle:hover {
16278
+ color: var(--color-accent);
16279
+ }
16280
+
16281
+ #objective-launch-notes-field > .collapsible-content {
16282
+ display: flex;
16283
+ flex-direction: column;
16284
+ gap: 8px;
16285
+ padding-top: 8px;
16286
+ }
16287
+
16288
+ .launch-notes-chips {
16289
+ display: flex;
16290
+ flex-wrap: wrap;
16291
+ gap: 6px;
16292
+ }
16293
+
16294
+ .launch-note-chip {
16295
+ padding: 4px 10px;
16296
+ font-size: 12px;
16297
+ font-family: inherit;
16298
+ border: 1px solid var(--color-border);
16299
+ border-radius: 12px;
16300
+ background: var(--color-bg-secondary);
16301
+ color: var(--color-text-secondary);
16302
+ cursor: pointer;
16303
+ transition: all 0.15s ease;
16304
+ white-space: nowrap;
16305
+ }
16306
+
16307
+ .launch-note-chip:hover {
16308
+ border-color: var(--color-accent);
16309
+ color: var(--color-accent);
16310
+ }
16311
+
16312
+ .launch-note-chip.selected {
16313
+ background: var(--color-accent);
16314
+ border-color: var(--color-accent);
16315
+ color: #fff;
16316
+ }
16317
+
16318
+ .launch-notes-textarea {
16319
+ width: 100%;
16320
+ padding: 8px 12px;
16321
+ border: 1px solid var(--color-border);
16322
+ border-radius: var(--radius-small);
16323
+ font-size: 13px;
16324
+ font-family: inherit;
16325
+ background: var(--color-surface);
16326
+ color: var(--color-text);
16327
+ resize: vertical;
16328
+ min-height: 60px;
16329
+ box-sizing: border-box;
16330
+ }
16331
+
16332
+ .launch-notes-textarea:focus {
16333
+ outline: 2px solid rgba(63,114,255,0.25);
16334
+ border-color: var(--color-accent);
16335
+ }
16336
+
16337
+ .launch-notes-textarea::placeholder {
16338
+ color: var(--color-text-muted);
16339
+ }
16340
+
16182
16341
  .objective-name-input {
16183
16342
  padding: 8px 12px;
16184
16343
  border: 1px solid var(--color-border);
@@ -16517,6 +16676,7 @@ input.generating::placeholder {
16517
16676
  #objective-modal.instructions-maximized #objective-agents-field,
16518
16677
  #objective-modal.instructions-maximized #objective-model-config-field,
16519
16678
  #objective-modal.instructions-maximized #objective-comments-field,
16679
+ #objective-modal.instructions-maximized #objective-launch-notes-field,
16520
16680
  #objective-modal.instructions-maximized .objective-modal-actions {
16521
16681
  display: none;
16522
16682
  }
@@ -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=69"></script>
41
+ <script type="module" src="task.js?v=70"></script>
42
42
  <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
43
43
  </head>
44
44
  <body>
@@ -1041,6 +1041,37 @@
1041
1041
  </div>
1042
1042
  </div>
1043
1043
 
1044
+ <!-- Jira Comment Modal -->
1045
+ <div id="jira-comment-modal" class="modal" hidden>
1046
+ <div class="modal-overlay"></div>
1047
+ <div class="modal-content modal-medium">
1048
+ <div class="modal-header">
1049
+ <h2>Post Comment to Jira</h2>
1050
+ <button class="modal-close" id="close-jira-comment-modal">&times;</button>
1051
+ </div>
1052
+ <div class="modal-body">
1053
+ <div class="jira-comment-info">
1054
+ <p>Edit this comment before posting to <strong id="jira-comment-issue-key">Jira</strong>:</p>
1055
+ </div>
1056
+ <div class="jira-comment-editor-container">
1057
+ <div id="jira-comment-editor"></div>
1058
+ </div>
1059
+ </div>
1060
+ <div class="modal-footer">
1061
+ <button class="btn-ghost" id="cancel-jira-comment">Cancel</button>
1062
+ <button class="btn-primary" id="confirm-jira-comment">
1063
+ <span class="btn-spinner">
1064
+ <svg class="spinner" viewBox="0 0 24 24" width="16" height="16">
1065
+ <circle cx="12" cy="12" r="10" fill="none" stroke="currentColor" stroke-width="3" stroke-dasharray="31.4 31.4" stroke-linecap="round"/>
1066
+ </svg>
1067
+ </span>
1068
+ <span class="btn-text">Post to Jira</span>
1069
+ <span class="btn-text-loading">Posting...</span>
1070
+ </button>
1071
+ </div>
1072
+ </div>
1073
+ </div>
1074
+
1044
1075
  <!-- Resubmit Modal -->
1045
1076
  <div id="resubmit-modal" class="modal" hidden>
1046
1077
  <div class="modal-overlay"></div>