crewly 1.13.1 → 1.14.1

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 (426) hide show
  1. package/config/constants.ts +8 -0
  2. package/config/roles/orchestrator/prompt.md +23 -0
  3. package/config/skills/agent/core/reply-channel/SKILL.md +6 -0
  4. package/config/skills/agent/core/reply-channel/execute.sh +14 -2
  5. package/config/skills/agent/core/slack-post/SKILL.md +126 -0
  6. package/config/skills/agent/core/slack-post/execute.sh +127 -0
  7. package/config/skills/agent/remote-browser/SKILL.md +178 -0
  8. package/config/skills/agent/xiaoyuzhoufm-transcript/SKILL.md +46 -22
  9. package/config/skills/agent/xiaoyuzhoufm-transcript/execute.sh +82 -214
  10. package/config/skills/agent/xiaoyuzhoufm-transcript/skill.json +3 -3
  11. package/config/skills/orchestrator/get-team-status/SKILL.md +5 -1
  12. package/config/skills/orchestrator/get-team-status/execute.sh +28 -2
  13. package/config/slack-app-manifest.json +7 -1
  14. package/dist/backend/backend/src/config/oauth.config.d.ts +93 -19
  15. package/dist/backend/backend/src/config/oauth.config.d.ts.map +1 -1
  16. package/dist/backend/backend/src/config/oauth.config.js +121 -19
  17. package/dist/backend/backend/src/config/oauth.config.js.map +1 -1
  18. package/dist/backend/backend/src/constants.d.ts +60 -0
  19. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  20. package/dist/backend/backend/src/constants.js +74 -0
  21. package/dist/backend/backend/src/constants.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/chat/chat.controller.js +33 -4
  24. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js +27 -9
  27. package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  29. package/dist/backend/backend/src/controllers/slack/slack.controller.js +342 -0
  30. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  31. package/dist/backend/backend/src/index.d.ts.map +1 -1
  32. package/dist/backend/backend/src/index.js +31 -7
  33. package/dist/backend/backend/src/index.js.map +1 -1
  34. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +10 -0
  35. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  36. package/dist/backend/backend/src/services/agent/idle-detection.service.js +37 -0
  37. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  38. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  39. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +13 -11
  40. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  41. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +14 -0
  42. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  43. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +56 -0
  44. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  45. package/dist/backend/backend/src/services/browser/browser-services.registry.d.ts +63 -0
  46. package/dist/backend/backend/src/services/browser/browser-services.registry.d.ts.map +1 -0
  47. package/dist/backend/backend/src/services/browser/browser-services.registry.js +74 -0
  48. package/dist/backend/backend/src/services/browser/browser-services.registry.js.map +1 -0
  49. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +25 -1
  50. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -7
  52. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +66 -0
  54. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +121 -1
  56. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  57. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +35 -0
  58. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +63 -0
  60. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  61. package/dist/backend/backend/src/services/core/storage.service.d.ts +6 -0
  62. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/core/storage.service.js +1 -1
  64. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  65. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +6 -2
  67. package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
  68. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +14 -0
  70. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  71. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +8 -0
  72. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +31 -3
  74. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  75. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +34 -0
  76. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +99 -10
  78. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  79. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts +209 -0
  80. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -0
  81. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js +416 -0
  82. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js.map +1 -0
  83. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +124 -0
  84. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -0
  85. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +243 -0
  86. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -0
  87. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +11 -0
  88. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/slack/slack-initializer.js +56 -0
  90. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  91. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts +103 -0
  92. package/dist/backend/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -0
  93. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js +197 -0
  94. package/dist/backend/backend/src/services/slack/slack-mention-resolver.js.map +1 -0
  95. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +18 -0
  97. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  98. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +329 -0
  99. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -0
  100. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +821 -0
  101. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -0
  102. package/dist/backend/backend/src/services/slack/slack.service.d.ts +116 -1
  103. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/slack/slack.service.js +297 -3
  105. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +22 -0
  107. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  108. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +71 -0
  109. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  110. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts +20 -2
  111. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js +27 -2
  113. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js.map +1 -1
  114. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts +36 -2
  115. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js +86 -10
  117. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js.map +1 -1
  118. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts +37 -0
  119. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +74 -8
  121. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -1
  122. package/dist/backend/backend/src/types/slack.types.d.ts +87 -0
  123. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  124. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  125. package/dist/backend/build-info.json +2 -2
  126. package/dist/backend/config/constants.d.ts +8 -0
  127. package/dist/backend/config/constants.d.ts.map +1 -1
  128. package/dist/backend/config/constants.js +8 -0
  129. package/dist/backend/config/constants.js.map +1 -1
  130. package/dist/cli/backend/src/config/oauth.config.d.ts +93 -19
  131. package/dist/cli/backend/src/config/oauth.config.d.ts.map +1 -1
  132. package/dist/cli/backend/src/config/oauth.config.js +121 -19
  133. package/dist/cli/backend/src/config/oauth.config.js.map +1 -1
  134. package/dist/cli/backend/src/constants.d.ts +60 -0
  135. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  136. package/dist/cli/backend/src/constants.js +74 -0
  137. package/dist/cli/backend/src/constants.js.map +1 -1
  138. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +292 -0
  139. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -0
  140. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +420 -0
  141. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -0
  142. package/dist/cli/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts +134 -0
  143. package/dist/cli/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts.map +1 -0
  144. package/dist/cli/backend/src/services/chat-v2/chat-v2.mention-resolver.js +232 -0
  145. package/dist/cli/backend/src/services/chat-v2/chat-v2.mention-resolver.js.map +1 -0
  146. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +66 -0
  147. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  148. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +121 -1
  149. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  150. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +35 -0
  151. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  152. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +63 -0
  153. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  154. package/dist/cli/backend/src/services/core/storage.service.d.ts +6 -0
  155. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  156. package/dist/cli/backend/src/services/core/storage.service.js +1 -1
  157. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  158. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
  159. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +6 -2
  160. package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
  161. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +8 -0
  162. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  163. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +31 -3
  164. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  165. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts +209 -0
  166. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -0
  167. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js +416 -0
  168. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js.map +1 -0
  169. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts +103 -0
  170. package/dist/cli/backend/src/services/slack/slack-mention-resolver.d.ts.map +1 -0
  171. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js +197 -0
  172. package/dist/cli/backend/src/services/slack/slack-mention-resolver.js.map +1 -0
  173. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  174. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +18 -0
  175. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  176. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +329 -0
  177. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -0
  178. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +821 -0
  179. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -0
  180. package/dist/cli/backend/src/services/slack/slack.service.d.ts +116 -1
  181. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  182. package/dist/cli/backend/src/services/slack/slack.service.js +297 -3
  183. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  184. package/dist/cli/backend/src/types/slack.types.d.ts +87 -0
  185. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  186. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  187. package/dist/cli/backend/src/utils/team.utils.d.ts +40 -0
  188. package/dist/cli/backend/src/utils/team.utils.d.ts.map +1 -0
  189. package/dist/cli/backend/src/utils/team.utils.js +66 -0
  190. package/dist/cli/backend/src/utils/team.utils.js.map +1 -0
  191. package/dist/cli/cli/src/index.js +0 -0
  192. package/dist/cli/config/constants.d.ts +8 -0
  193. package/dist/cli/config/constants.d.ts.map +1 -1
  194. package/dist/cli/config/constants.js +8 -0
  195. package/dist/cli/config/constants.js.map +1 -1
  196. package/frontend/dist/assets/{index-890d3f9d.js → index-190a957f.js} +294 -294
  197. package/frontend/dist/assets/{index-8205ea5e.css → index-88feb412.css} +1 -1
  198. package/frontend/dist/index.html +2 -2
  199. package/package.json +1 -1
  200. package/config/constants.d.ts.map +0 -1
  201. package/config/index.d.ts.map +0 -1
  202. package/dist/backend/backend/src/controllers/knowledge/index.d.ts +0 -7
  203. package/dist/backend/backend/src/controllers/knowledge/index.d.ts.map +0 -1
  204. package/dist/backend/backend/src/controllers/knowledge/index.js +0 -7
  205. package/dist/backend/backend/src/controllers/knowledge/index.js.map +0 -1
  206. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.d.ts +0 -71
  207. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.d.ts.map +0 -1
  208. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.js +0 -237
  209. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.js.map +0 -1
  210. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.d.ts +0 -24
  211. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.d.ts.map +0 -1
  212. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.js +0 -34
  213. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.js.map +0 -1
  214. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts +0 -91
  215. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts.map +0 -1
  216. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js +0 -290
  217. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js.map +0 -1
  218. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +0 -169
  219. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +0 -1
  220. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +0 -1779
  221. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +0 -1
  222. package/dist/backend/backend/src/index.js.orc-bak-20260529 +0 -3130
  223. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts +0 -27
  224. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts.map +0 -1
  225. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js +0 -40
  226. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js.map +0 -1
  227. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +0 -513
  228. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +0 -1
  229. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +0 -1568
  230. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +0 -1
  231. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +0 -86
  232. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +0 -1
  233. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +0 -147
  234. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +0 -1
  235. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +0 -68
  236. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +0 -1
  237. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +0 -131
  238. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +0 -1
  239. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +0 -130
  240. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +0 -1
  241. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +0 -263
  242. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +0 -1
  243. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +0 -74
  244. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +0 -1
  245. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +0 -140
  246. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +0 -1
  247. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +0 -29
  248. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +0 -1
  249. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +0 -279
  250. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +0 -1
  251. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +0 -340
  252. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +0 -1
  253. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +0 -1176
  254. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +0 -1
  255. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +0 -79
  256. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +0 -1
  257. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +0 -145
  258. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +0 -1
  259. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +0 -79
  260. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +0 -1
  261. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +0 -218
  262. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +0 -1
  263. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +0 -16
  264. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +0 -1
  265. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +0 -16
  266. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +0 -1
  267. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +0 -135
  268. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +0 -1
  269. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +0 -185
  270. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +0 -1
  271. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +0 -141
  272. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +0 -1
  273. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +0 -310
  274. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +0 -1
  275. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +0 -91
  276. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +0 -1
  277. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +0 -143
  278. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +0 -1
  279. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +0 -103
  280. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +0 -1
  281. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +0 -256
  282. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +0 -1
  283. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +0 -143
  284. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +0 -1
  285. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +0 -264
  286. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +0 -1
  287. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +0 -13
  288. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +0 -1
  289. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +0 -91
  290. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +0 -1
  291. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +0 -135
  292. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +0 -1
  293. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +0 -1937
  294. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +0 -1
  295. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +0 -429
  296. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +0 -1
  297. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +0 -852
  298. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +0 -1
  299. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts +0 -78
  300. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts.map +0 -1
  301. package/dist/backend/backend/src/services/knowledge/embedding-provider.js +0 -179
  302. package/dist/backend/backend/src/services/knowledge/embedding-provider.js.map +0 -1
  303. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts +0 -118
  304. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +0 -1
  305. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +0 -241
  306. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +0 -1
  307. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +0 -102
  308. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +0 -1
  309. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js +0 -118
  310. package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js.map +0 -1
  311. package/dist/backend/backend/src/services/knowledge/index.d.ts +0 -8
  312. package/dist/backend/backend/src/services/knowledge/index.d.ts.map +0 -1
  313. package/dist/backend/backend/src/services/knowledge/index.js +0 -8
  314. package/dist/backend/backend/src/services/knowledge/index.js.map +0 -1
  315. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +0 -241
  316. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +0 -1
  317. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +0 -590
  318. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +0 -1
  319. package/dist/backend/backend/src/services/knowledge/knowledge.service.d.ts +0 -153
  320. package/dist/backend/backend/src/services/knowledge/knowledge.service.d.ts.map +0 -1
  321. package/dist/backend/backend/src/services/knowledge/knowledge.service.js +0 -409
  322. package/dist/backend/backend/src/services/knowledge/knowledge.service.js.map +0 -1
  323. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts +0 -331
  324. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +0 -1
  325. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +0 -830
  326. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +0 -1
  327. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts +0 -115
  328. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +0 -1
  329. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js +0 -215
  330. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js.map +0 -1
  331. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts +0 -78
  332. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts.map +0 -1
  333. package/dist/backend/backend/src/services/memory/embedding-provider.js +0 -185
  334. package/dist/backend/backend/src/services/memory/embedding-provider.js.map +0 -1
  335. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts +0 -331
  336. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +0 -1
  337. package/dist/backend/backend/src/services/memory/vector-store.service.js +0 -825
  338. package/dist/backend/backend/src/services/memory/vector-store.service.js.map +0 -1
  339. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +0 -171
  340. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
  341. package/dist/backend/backend/src/services/project/task-tracking.service.js +0 -725
  342. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +0 -1
  343. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +0 -118
  344. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +0 -1
  345. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +0 -326
  346. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +0 -1
  347. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +0 -74
  348. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +0 -1
  349. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +0 -154
  350. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +0 -1
  351. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts +0 -234
  352. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts.map +0 -1
  353. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js +0 -636
  354. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js.map +0 -1
  355. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts +0 -156
  356. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts.map +0 -1
  357. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js +0 -81
  358. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js.map +0 -1
  359. package/dist/backend/backend/src/types/auto-assign.types.d.ts +0 -271
  360. package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +0 -1
  361. package/dist/backend/backend/src/types/auto-assign.types.js +0 -136
  362. package/dist/backend/backend/src/types/auto-assign.types.js.map +0 -1
  363. package/dist/backend/backend/src/types/knowledge.types.d.ts +0 -195
  364. package/dist/backend/backend/src/types/knowledge.types.d.ts.map +0 -1
  365. package/dist/backend/backend/src/types/knowledge.types.js +0 -38
  366. package/dist/backend/backend/src/types/knowledge.types.js.map +0 -1
  367. package/dist/backend/backend/src/utils/esm-require.utils.d.ts +0 -111
  368. package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +0 -1
  369. package/dist/backend/backend/src/utils/esm-require.utils.js +0 -124
  370. package/dist/backend/backend/src/utils/esm-require.utils.js.map +0 -1
  371. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts +0 -78
  372. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts.map +0 -1
  373. package/dist/cli/backend/src/services/knowledge/embedding-provider.js +0 -179
  374. package/dist/cli/backend/src/services/knowledge/embedding-provider.js.map +0 -1
  375. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts +0 -118
  376. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +0 -1
  377. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +0 -241
  378. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +0 -1
  379. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +0 -102
  380. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +0 -1
  381. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js +0 -118
  382. package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js.map +0 -1
  383. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
  384. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
  385. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
  386. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
  387. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +0 -241
  388. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +0 -1
  389. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +0 -590
  390. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +0 -1
  391. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts +0 -153
  392. package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts.map +0 -1
  393. package/dist/cli/backend/src/services/knowledge/knowledge.service.js +0 -409
  394. package/dist/cli/backend/src/services/knowledge/knowledge.service.js.map +0 -1
  395. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts +0 -159
  396. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -1
  397. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js +0 -304
  398. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js.map +0 -1
  399. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts +0 -331
  400. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +0 -1
  401. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +0 -830
  402. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +0 -1
  403. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +0 -115
  404. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +0 -1
  405. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +0 -215
  406. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +0 -1
  407. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +0 -78
  408. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +0 -1
  409. package/dist/cli/backend/src/services/memory/embedding-provider.js +0 -179
  410. package/dist/cli/backend/src/services/memory/embedding-provider.js.map +0 -1
  411. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +0 -331
  412. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +0 -1
  413. package/dist/cli/backend/src/services/memory/vector-store.service.js +0 -814
  414. package/dist/cli/backend/src/services/memory/vector-store.service.js.map +0 -1
  415. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +0 -171
  416. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
  417. package/dist/cli/backend/src/services/project/task-tracking.service.js +0 -725
  418. package/dist/cli/backend/src/services/project/task-tracking.service.js.map +0 -1
  419. package/dist/cli/backend/src/types/auto-assign.types.d.ts +0 -271
  420. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +0 -1
  421. package/dist/cli/backend/src/types/auto-assign.types.js +0 -136
  422. package/dist/cli/backend/src/types/auto-assign.types.js.map +0 -1
  423. package/dist/cli/backend/src/types/knowledge.types.d.ts +0 -195
  424. package/dist/cli/backend/src/types/knowledge.types.d.ts.map +0 -1
  425. package/dist/cli/backend/src/types/knowledge.types.js +0 -38
  426. package/dist/cli/backend/src/types/knowledge.types.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-team-channel.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAgBpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,6BAA6B,CAAC;AAsF1F,MAAM,WAAW,GAA0B;IACzC,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,MAAM,GAAG,EAAE;IAC/D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAC1B,CAAC;SACE,WAAW,EAAE;SACb,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;SAClC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;IACvC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;AAC7G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAU;IAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA8B,EAC9B,WAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI;QAC5B,CAAC,CAAC,4BAA4B,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,IAAI,4BAA4B,CAAC,kBAAkB,EAAE,CAAC;AAC/F,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,MAAM,CAAkB;IACxB,IAAI,CAA8B;IAClC,SAAS,CAAS;IAC3B,KAAK,GAAiC,IAAI,CAAC;IAC3C,OAAO,GAA0C,IAAI,CAAC;IACtD,kBAAkB,GAAwB,IAAI,CAAC;IAC/C,mBAAmB,GAAwB,IAAI,CAAC;IACvC,aAAa,GAAG,CAAC,GAAmB,EAAQ,EAAE;QAC7D,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC;IACM,OAAO,GAAG,KAAK,CAAC;IACxB,kFAAkF;IACjE,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhE,YAAY,IAAiC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,4BAA4B,CAAC,cAAc,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IACvF,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,KAAK,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,IAAI,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,4EAA4E;IAC5E,QAAQ;IACR,4EAA4E;IAE5E,yEAAyE;IACjE,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAwB,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3F,MAAM,KAAK,GAA0B;oBACnC,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,GAAG,EAAE,UAAU,KAAK,KAAK;oBACrC,aAAa,EAAE,OAAO,GAAG,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;oBAC9E,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;iBAC7E,CAAC;gBACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,KAAwC;QAC3D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC3E,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YAAE,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1F,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,IAAI,IAAI,CAAC;IACvF,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,aAAqB;QACvC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB;QAGzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,CAAC,CAAC,EAAE;YACZ,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM;YACzC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,yBAAyB;IACzB,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,iBAAiB,CACrB,IAAU,EACV,UAAuC,EAAE;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,OAAyB,CAAC;YAC9B,IAAI,WAAoB,CAAC;YACzB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC1E,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;gBACjF,IAAI,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAChE,yEAAyE;oBACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE;wBAC1E,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC;gBACf,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;gBACnG,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC;gBACzE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;wBACpD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACzC,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;gBACxB,OAAO,EAAE,0BAA0B,IAAI,CAAC,IAAI,EAAE;gBAC9C,kEAAkE;gBAClE,0DAA0D;gBAC1D,cAAc,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5F,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;aAC/C,CAAC,CAAC;YAEH,MAAM,OAAO,GAA4B;gBACvC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,cAAc,EAAE,OAAO,CAAC,EAAE;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,IAAI;gBAC9B,aAAa,EAAE,MAAM,CAAC,EAAE;gBACxB,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC1D,WAAW;aACZ,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAElB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,YAAY,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChC,MAAM,EAAE,MAAM,CAAC,EAAE;gBACjB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,WAAW;aACZ,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,UAA6C,EAAE;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACjE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAClF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;wBAClD,OAAO,EAAE,OAAO,CAAC,gBAAgB;wBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACxC,MAAM;gBACN,YAAY,EAAE,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;aAC7C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,IAAU,EACV,OAAiC;QAEjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAmB;QAC1C,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,OAAO;oBAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,kEAAkE;YAClE,8DAA8D;YAC9D,qEAAqE;YACrE,kEAAkE;YAClE,uEAAuE;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,OAAO;YACnE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY,CAAC,OAA6B;QAC9C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;gBACvE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,aAAa;aAC9B,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS;SAC/D,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAEtE,sBAAsB;QACtB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;QACrD,IAAI,QAA4B,CAAC;QACjC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzF,QAAQ,GAAG,IAAI,EAAE,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;QACtE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACvD,SAAS,EAAE,OAAO,CAAC,aAAa;YAChC,UAAU,EAAE,MAAM;YAClB,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YAC3B,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE;gBACR,MAAM,EAAE,OAAO;gBACf,cAAc,EAAE,OAAO,CAAC,SAAS;gBACjC,aAAa;gBACb,OAAO,EAAE,OAAO,CAAC,EAAE;gBACnB,WAAW,EAAE,OAAO,CAAC,MAAM;aAC5B;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;aAClB,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,4BAA4B,CAAC,gBAAgB,CAAC;aACzF,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAAiC,IAAI,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE;gBAC9D,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,EAAE;gBAClC,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE;gBACjF,MAAM,EAAE,OAAO,CAAC,aAAa;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,IAAI,OAAO,CAAC,gBAAgB,EAAE;YAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,MAAM;YACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED,4EAA4E;IAC5E,4BAA4B;IAC5B,4EAA4E;IAE5E;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,GAAmB;QACtC,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,UAAU,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC7C,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YACnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,OAAO,KAAK,CAAC;YAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzE,kEAAkE;YAClE,0BAA0B;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;YAC3E,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEvG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAChC,SAAS,EAAE,OAAO,CAAC,cAAc;gBACjC,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,QAAQ;gBACR,gBAAgB,EAAE,IAAI;gBACtB,GAAG,QAAQ;aACZ,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAClD,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,QAAQ;gBACpB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,OAAgC,EAAE,GAAmB;QACnF,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;YACzC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;QAC3C,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,4EAA4E;IAC5E,oCAAoC;IACpC,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,gBAAgB,CACpB,IAAU,EACV,OAAgC;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACxC,MAAM,MAAM,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAqB,EAAE,CAAC;QAC5F,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,wBAAwB,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,YAAY,GAA0D,EAAE,CAAC;QAC/E,KAAK,MAAM,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;oBACjI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,8DAA8D;oBAC9D,+DAA+D;oBAC/D,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC1G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;wBAClE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;wBACzB,MAAM;oBACR,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;oBACtG,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrH,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5G,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;oBAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACjF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;iBAClB,WAAW,CAAC;gBACX,SAAS,EAAE,OAAO,CAAC,cAAc;gBACjC,IAAI,EAAE;oBACJ,WAAW,IAAI,CAAC,IAAI,OAAO,YAAY,CAAC,MAAM,gCAAgC;oBAC9E,GAAG,KAAK;oBACR,gCAAgC;iBACjC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,gBAAgB,EAAE,IAAI;aACvB,CAAC;iBACD,IAAI,CAAC,KAAK,IAAI,EAAE;gBACf,KAAK,MAAM,CAAC,IAAI,YAAY;oBAAE,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC/G,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpH,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,yBAAyB,CAAC,YAAoB;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,SAAS;YAAE,OAAO;QAC/B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC;gBAAE,SAAS;YACpF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC5E,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,iEAAiE;IACzD,KAAK,CAAC,SAAS,CAAC,OAAgC,EAAE,YAAoB,EAAE,SAAiB;QAC/F,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjI,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACnH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAEpE,KAAK,CAAC,WAAW,CACvB,OAAgC,EAChC,IAAU,EACV,OAAqB;QAErB,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7E,CAAC,CAAC,sBAAsB,CAAC;QAC7B,MAAM,IAAI,GAAG;YACX,cAAc,IAAI,CAAC,IAAI,WAAW;YAClC,EAAE;YACF,KAAK;YACL,MAAM;YACN,EAAE;YACF,4DAA4D;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;aAClB,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;aAChF,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;gBACzD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,OAA6B,EAC7B,OAAwD,EACxD,UAA8B;QAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;YACxF,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,SAAS,CAC/B,CAAC;QACF,MAAM,UAAU,GACd,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,UAAU,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/D,CAAC,CAAC,YAAY,CAAC;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;aAClB,WAAW,CAAC;YACX,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE;YACxC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,qCAAqC;YAC7E,gBAAgB,EAAE,IAAI;SACvB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,yEAAyE;IACjE,UAAU,CAAI,MAAc,EAAE,EAAoB;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,uEAAuE;QACvE,qEAAqE;QACrE,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,6CAA6C;AAC7C,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,CAAC,GAAG,KAAgD,CAAC;IAC3D,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAC5B,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;QACpC,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,CACpC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,IAAI,QAAQ,GAAmC,IAAI,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAuC;IAChF,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * @module services/slack
8
8
  */
9
9
  import { EventEmitter } from 'events';
10
- import type { SlackConfig, SlackIncomingMessage, SlackOutgoingMessage, SlackServiceStatus, SlackConversationContext, SlackNotification, SlackBlock } from '../../types/slack.types.js';
10
+ import type { SlackConfig, SlackIncomingMessage, SlackOutgoingMessage, SlackServiceStatus, SlackConversationContext, SlackNotification, SlackBlock, SlackChannelInfo } from '../../types/slack.types.js';
11
11
  /**
12
12
  * Events emitted by SlackService
13
13
  */
@@ -37,6 +37,10 @@ export declare class SlackService extends EventEmitter {
37
37
  private app;
38
38
  private client;
39
39
  private config;
40
+ /** Bot user id from `auth.test`, cached by getBotUserId(). */
41
+ private cachedBotUserId;
42
+ /** Lower-cased handle/display name → Slack user id, filled by findUserByHandle(). */
43
+ private userHandleCache;
40
44
  private status;
41
45
  private conversationContexts;
42
46
  /** Cached Bolt App constructor from the first successful dynamic import */
@@ -220,6 +224,117 @@ export declare class SlackService extends EventEmitter {
220
224
  * @returns The bot token string, or null if not initialized
221
225
  */
222
226
  getBotToken(): string | null;
227
+ /**
228
+ * Resolve the bot user's Slack id (`U…`) via `auth.test`, cached after the
229
+ * first call. Team-channel routing uses it to ignore `<@bot>` mentions in
230
+ * inbound text and to invite the bot into linked channels.
231
+ *
232
+ * @returns The bot user id, or null when not connected or the API omits it
233
+ */
234
+ getBotUserId(): Promise<string | null>;
235
+ /**
236
+ * Create a public Slack channel. When Slack reports `name_taken`, the
237
+ * existing channel of that name is looked up and returned instead, so a
238
+ * team whose channel already exists (e.g. after a re-install) links to
239
+ * it rather than failing.
240
+ *
241
+ * Requires the `channels:manage` scope (and `channels:read` for the
242
+ * name-taken fallback).
243
+ *
244
+ * @param name - Channel name without `#`, already sanitised by the caller
245
+ * @returns The created (or pre-existing) channel
246
+ * @throws Error when the client is not initialised or Slack refuses
247
+ */
248
+ createChannel(name: string): Promise<SlackChannelInfo>;
249
+ /**
250
+ * Find a public or private channel by exact name (case-insensitive),
251
+ * paging through `conversations.list`.
252
+ *
253
+ * @param name - Channel name without `#`
254
+ * @returns The channel, or null when no channel has that name
255
+ */
256
+ findChannelByName(name: string): Promise<SlackChannelInfo | null>;
257
+ /**
258
+ * Fetch a channel by id.
259
+ *
260
+ * @param channelId - Slack channel id
261
+ * @returns The channel, or null when Slack reports `channel_not_found`
262
+ */
263
+ getChannelInfo(channelId: string): Promise<SlackChannelInfo | null>;
264
+ /**
265
+ * Join a public channel as the bot (idempotent). Requires `channels:join`.
266
+ *
267
+ * @param channelId - Slack channel id
268
+ */
269
+ joinChannel(channelId: string): Promise<void>;
270
+ /**
271
+ * Invite users (or other bots) into a channel the bot is a member of.
272
+ *
273
+ * @param channelId - Slack channel id
274
+ * @param userIds - Slack user ids to invite
275
+ */
276
+ inviteToChannel(channelId: string, userIds: string[]): Promise<void>;
277
+ /**
278
+ * Set a channel's purpose line. Requires `channels:manage`.
279
+ *
280
+ * @param channelId - Slack channel id
281
+ * @param purpose - Purpose text (Slack caps it at 250 chars)
282
+ */
283
+ setChannelPurpose(channelId: string, purpose: string): Promise<void>;
284
+ /**
285
+ * Archive a channel. `already_archived` is treated as success so the
286
+ * team-deleted path is idempotent.
287
+ *
288
+ * @param channelId - Slack channel id
289
+ */
290
+ archiveChannel(channelId: string): Promise<void>;
291
+ /**
292
+ * Open (or reuse) the DM channel with a person and return its id.
293
+ *
294
+ * Requires `im:write` on the token used. Pass `botToken` to open the DM as
295
+ * an agent's own bot user — that is a different conversation from the one
296
+ * the default Crewly bot has with the same person.
297
+ *
298
+ * @param userId - Slack user id of the person (`U…` / `W…`)
299
+ * @param botToken - Optional per-call token override
300
+ * @returns The DM channel id (`D…`)
301
+ * @throws Error when the client is not initialised or Slack refuses
302
+ */
303
+ openDirectMessage(userId: string, botToken?: string): Promise<string>;
304
+ /**
305
+ * Resolve an `@handle` (or display / real name) to a Slack user id by
306
+ * scanning the directory. Results are cached for the process lifetime —
307
+ * handles change rarely and the listing is expensive.
308
+ *
309
+ * Bots and deactivated accounts are skipped so `@sam` never resolves to a
310
+ * bot that happens to share the name.
311
+ *
312
+ * @param handle - Handle without `@`, case-insensitive
313
+ * @returns The user id, or null when nobody matches
314
+ * @throws Error when the client is not initialised or lacks `users:read`
315
+ */
316
+ findUserByHandle(handle: string): Promise<string | null>;
317
+ /**
318
+ * The conversations API of the live client, or throw when Slack is not
319
+ * initialised. Centralised so every channel helper reports the same
320
+ * error text.
321
+ */
322
+ private requireConversationsApi;
323
+ /**
324
+ * Extract Slack's machine-readable error code (`name_taken`,
325
+ * `channel_not_found`, …) from a thrown Web API error.
326
+ *
327
+ * @param error - The caught value
328
+ * @returns The code, or null when the error carries none
329
+ */
330
+ static slackErrorCode(error: unknown): string | null;
331
+ /**
332
+ * Normalise a raw conversations-API channel object.
333
+ *
334
+ * @param raw - Slack's channel object
335
+ * @returns The trimmed descriptor, or null when the id is missing
336
+ */
337
+ private static toChannelInfo;
223
338
  /**
224
339
  * Upload an image file to a Slack channel.
225
340
  *
@@ -1 +1 @@
1
- {"version":3,"file":"slack.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack.service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { createReadStream } from 'fs';
11
11
  import { basename } from 'path';
12
12
  import { isUserAllowed } from '../../types/slack.types.js';
13
13
  import { CROSS_MACHINE_PREFIX } from '../../types/cross-machine.types.js';
14
- import { SLACK_IMAGE_CONSTANTS, SLACK_FILE_UPLOAD_CONSTANTS, SLACK_DEDUP_CONSTANTS, SLACK_RECONNECT_CONSTANTS, ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
14
+ import { SLACK_IMAGE_CONSTANTS, SLACK_FILE_UPLOAD_CONSTANTS, SLACK_DEDUP_CONSTANTS, SLACK_RECONNECT_CONSTANTS, SLACK_TEAM_CHANNEL_CONSTANTS, ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
15
15
  import { LoggerService } from '../core/logger.service.js';
16
16
  import { ContentApprovalService } from '../onboarding/content-approval.service.js';
17
17
  import { getAgentBehaviorLogService } from '../observability/agent-behavior-log.singleton.js';
@@ -27,6 +27,10 @@ export class SlackService extends EventEmitter {
27
27
  app = null;
28
28
  client = null;
29
29
  config = null;
30
+ /** Bot user id from `auth.test`, cached by getBotUserId(). */
31
+ cachedBotUserId = null;
32
+ /** Lower-cased handle/display name → Slack user id, filled by findUserByHandle(). */
33
+ userHandleCache = new Map();
30
34
  status = {
31
35
  connected: false,
32
36
  socketMode: false,
@@ -619,13 +623,27 @@ export class SlackService extends EventEmitter {
619
623
  attachments: message.attachments,
620
624
  unfurl_links: message.unfurlLinks,
621
625
  unfurl_media: message.unfurlMedia,
626
+ // Per-agent identity for team channels. A real agent bot token wins
627
+ // (the message is posted by that bot user); otherwise the cosmetic
628
+ // username/icon override. Only sent when set so the orchestrator's
629
+ // plain posts keep the app's default bot identity.
630
+ ...(message.botToken
631
+ ? { token: message.botToken }
632
+ : {
633
+ ...(message.username ? { username: message.username } : {}),
634
+ ...(message.iconEmoji
635
+ ? { icon_emoji: message.iconEmoji }
636
+ : message.iconUrl
637
+ ? { icon_url: message.iconUrl }
638
+ : {}),
639
+ }),
622
640
  });
623
641
  this.status.messagesSent++;
624
642
  // Track this fingerprint for future dedup
625
643
  this.trackMessageFingerprint(fingerprint, now);
626
644
  // Mirror the outbound reply into chat-v2 so the Slack thread shows both
627
645
  // sides ("收和发") in the consolidated chat. Best-effort, thread-only.
628
- if (message.threadTs) {
646
+ if (message.threadTs && !message.skipChatV2Mirror) {
629
647
  void this.recordOutboundToChatV2(message);
630
648
  }
631
649
  return result.ts || '';
@@ -716,7 +734,10 @@ export class SlackService extends EventEmitter {
716
734
  for (let i = 0; i < text.length; i++) {
717
735
  hash = ((hash << 5) + hash + text.charCodeAt(i)) | 0;
718
736
  }
719
- return `${message.channelId}:${message.threadTs || ''}:${hash}`;
737
+ // Two agents saying the same thing in the same thread are two messages,
738
+ // so the sender identity is part of the key.
739
+ const sender = message.botToken ? `bot:${message.botToken.slice(-8)}` : message.username || '';
740
+ return `${message.channelId}:${message.threadTs || ''}:${sender}:${hash}`;
720
741
  }
721
742
  /**
722
743
  * Track a message fingerprint and evict stale entries.
@@ -905,6 +926,279 @@ export class SlackService extends EventEmitter {
905
926
  getBotToken() {
906
927
  return this.config?.botToken || null;
907
928
  }
929
+ /**
930
+ * Resolve the bot user's Slack id (`U…`) via `auth.test`, cached after the
931
+ * first call. Team-channel routing uses it to ignore `<@bot>` mentions in
932
+ * inbound text and to invite the bot into linked channels.
933
+ *
934
+ * @returns The bot user id, or null when not connected or the API omits it
935
+ */
936
+ async getBotUserId() {
937
+ if (this.cachedBotUserId)
938
+ return this.cachedBotUserId;
939
+ if (!this.client)
940
+ return null;
941
+ try {
942
+ const res = await this.client.auth.test();
943
+ const id = res?.user_id ?? null;
944
+ if (id)
945
+ this.cachedBotUserId = id;
946
+ return id;
947
+ }
948
+ catch (error) {
949
+ this.logger.warn('auth.test failed while resolving bot user id', {
950
+ error: error instanceof Error ? error.message : String(error),
951
+ });
952
+ return null;
953
+ }
954
+ }
955
+ /**
956
+ * Create a public Slack channel. When Slack reports `name_taken`, the
957
+ * existing channel of that name is looked up and returned instead, so a
958
+ * team whose channel already exists (e.g. after a re-install) links to
959
+ * it rather than failing.
960
+ *
961
+ * Requires the `channels:manage` scope (and `channels:read` for the
962
+ * name-taken fallback).
963
+ *
964
+ * @param name - Channel name without `#`, already sanitised by the caller
965
+ * @returns The created (or pre-existing) channel
966
+ * @throws Error when the client is not initialised or Slack refuses
967
+ */
968
+ async createChannel(name) {
969
+ const conversations = this.requireConversationsApi();
970
+ try {
971
+ const res = await conversations.create({ name, is_private: false });
972
+ const channel = SlackService.toChannelInfo(res.channel);
973
+ if (!channel)
974
+ throw new Error('conversations.create returned no channel');
975
+ return channel;
976
+ }
977
+ catch (error) {
978
+ if (SlackService.slackErrorCode(error) === 'name_taken') {
979
+ const existing = await this.findChannelByName(name);
980
+ if (existing) {
981
+ // The bot may not be in a channel it did not create; joining is
982
+ // idempotent and needed before it can post or read there.
983
+ await this.joinChannel(existing.id).catch(() => undefined);
984
+ return existing;
985
+ }
986
+ }
987
+ throw error;
988
+ }
989
+ }
990
+ /**
991
+ * Find a public or private channel by exact name (case-insensitive),
992
+ * paging through `conversations.list`.
993
+ *
994
+ * @param name - Channel name without `#`
995
+ * @returns The channel, or null when no channel has that name
996
+ */
997
+ async findChannelByName(name) {
998
+ const conversations = this.requireConversationsApi();
999
+ const wanted = name.toLowerCase();
1000
+ let cursor;
1001
+ // Bounded paging so a pathological workspace cannot spin forever.
1002
+ for (let page = 0; page < 20; page++) {
1003
+ const res = await conversations.list({
1004
+ types: 'public_channel,private_channel',
1005
+ limit: 200,
1006
+ cursor,
1007
+ exclude_archived: false,
1008
+ });
1009
+ for (const raw of res.channels ?? []) {
1010
+ if ((raw.name ?? '').toLowerCase() === wanted) {
1011
+ return SlackService.toChannelInfo(raw);
1012
+ }
1013
+ }
1014
+ cursor = res.response_metadata?.next_cursor || undefined;
1015
+ if (!cursor)
1016
+ break;
1017
+ }
1018
+ return null;
1019
+ }
1020
+ /**
1021
+ * Fetch a channel by id.
1022
+ *
1023
+ * @param channelId - Slack channel id
1024
+ * @returns The channel, or null when Slack reports `channel_not_found`
1025
+ */
1026
+ async getChannelInfo(channelId) {
1027
+ const conversations = this.requireConversationsApi();
1028
+ try {
1029
+ const res = await conversations.info({ channel: channelId });
1030
+ return SlackService.toChannelInfo(res.channel);
1031
+ }
1032
+ catch (error) {
1033
+ if (SlackService.slackErrorCode(error) === 'channel_not_found')
1034
+ return null;
1035
+ throw error;
1036
+ }
1037
+ }
1038
+ /**
1039
+ * Join a public channel as the bot (idempotent). Requires `channels:join`.
1040
+ *
1041
+ * @param channelId - Slack channel id
1042
+ */
1043
+ async joinChannel(channelId) {
1044
+ const conversations = this.requireConversationsApi();
1045
+ await conversations.join({ channel: channelId });
1046
+ }
1047
+ /**
1048
+ * Invite users (or other bots) into a channel the bot is a member of.
1049
+ *
1050
+ * @param channelId - Slack channel id
1051
+ * @param userIds - Slack user ids to invite
1052
+ */
1053
+ async inviteToChannel(channelId, userIds) {
1054
+ if (userIds.length === 0)
1055
+ return;
1056
+ const conversations = this.requireConversationsApi();
1057
+ await conversations.invite({ channel: channelId, users: userIds.join(',') });
1058
+ }
1059
+ /**
1060
+ * Set a channel's purpose line. Requires `channels:manage`.
1061
+ *
1062
+ * @param channelId - Slack channel id
1063
+ * @param purpose - Purpose text (Slack caps it at 250 chars)
1064
+ */
1065
+ async setChannelPurpose(channelId, purpose) {
1066
+ const conversations = this.requireConversationsApi();
1067
+ await conversations.setPurpose({
1068
+ channel: channelId,
1069
+ purpose: purpose.slice(0, SLACK_TEAM_CHANNEL_CONSTANTS.MAX_PURPOSE_LENGTH),
1070
+ });
1071
+ }
1072
+ /**
1073
+ * Archive a channel. `already_archived` is treated as success so the
1074
+ * team-deleted path is idempotent.
1075
+ *
1076
+ * @param channelId - Slack channel id
1077
+ */
1078
+ async archiveChannel(channelId) {
1079
+ const conversations = this.requireConversationsApi();
1080
+ try {
1081
+ await conversations.archive({ channel: channelId });
1082
+ }
1083
+ catch (error) {
1084
+ const code = SlackService.slackErrorCode(error);
1085
+ if (code === 'already_archived' || code === 'channel_not_found')
1086
+ return;
1087
+ throw error;
1088
+ }
1089
+ }
1090
+ /**
1091
+ * Open (or reuse) the DM channel with a person and return its id.
1092
+ *
1093
+ * Requires `im:write` on the token used. Pass `botToken` to open the DM as
1094
+ * an agent's own bot user — that is a different conversation from the one
1095
+ * the default Crewly bot has with the same person.
1096
+ *
1097
+ * @param userId - Slack user id of the person (`U…` / `W…`)
1098
+ * @param botToken - Optional per-call token override
1099
+ * @returns The DM channel id (`D…`)
1100
+ * @throws Error when the client is not initialised or Slack refuses
1101
+ */
1102
+ async openDirectMessage(userId, botToken) {
1103
+ const conversations = this.requireConversationsApi();
1104
+ const res = await conversations.open({
1105
+ users: userId,
1106
+ ...(botToken ? { token: botToken } : {}),
1107
+ });
1108
+ const id = res.channel?.id;
1109
+ if (!id)
1110
+ throw new Error(`conversations.open returned no channel for ${userId}`);
1111
+ return id;
1112
+ }
1113
+ /**
1114
+ * Resolve an `@handle` (or display / real name) to a Slack user id by
1115
+ * scanning the directory. Results are cached for the process lifetime —
1116
+ * handles change rarely and the listing is expensive.
1117
+ *
1118
+ * Bots and deactivated accounts are skipped so `@sam` never resolves to a
1119
+ * bot that happens to share the name.
1120
+ *
1121
+ * @param handle - Handle without `@`, case-insensitive
1122
+ * @returns The user id, or null when nobody matches
1123
+ * @throws Error when the client is not initialised or lacks `users:read`
1124
+ */
1125
+ async findUserByHandle(handle) {
1126
+ const wanted = (handle ?? '').trim().replace(/^@/, '').toLowerCase();
1127
+ if (!wanted)
1128
+ return null;
1129
+ const cached = this.userHandleCache.get(wanted);
1130
+ if (cached)
1131
+ return cached;
1132
+ if (!this.client)
1133
+ throw new Error('Slack client not initialized');
1134
+ const list = this.client.users.list;
1135
+ if (!list)
1136
+ throw new Error('Slack client has no users.list API');
1137
+ let cursor;
1138
+ // Bounded paging: a very large workspace should fail loudly rather than
1139
+ // spin through the whole directory on every miss.
1140
+ for (let page = 0; page < 20; page++) {
1141
+ const res = await list({ limit: 200, cursor });
1142
+ for (const member of res.members ?? []) {
1143
+ if (!member.id || member.deleted || member.is_bot)
1144
+ continue;
1145
+ const names = [member.name, member.profile?.display_name, member.profile?.real_name, member.real_name]
1146
+ .filter((n) => !!n)
1147
+ .map((n) => n.toLowerCase());
1148
+ for (const n of names) {
1149
+ if (!this.userHandleCache.has(n))
1150
+ this.userHandleCache.set(n, member.id);
1151
+ }
1152
+ if (names.includes(wanted))
1153
+ return member.id;
1154
+ }
1155
+ cursor = res.response_metadata?.next_cursor || undefined;
1156
+ if (!cursor)
1157
+ break;
1158
+ }
1159
+ return null;
1160
+ }
1161
+ /**
1162
+ * The conversations API of the live client, or throw when Slack is not
1163
+ * initialised. Centralised so every channel helper reports the same
1164
+ * error text.
1165
+ */
1166
+ requireConversationsApi() {
1167
+ if (!this.client) {
1168
+ throw new Error('Slack client not initialized');
1169
+ }
1170
+ if (!this.client.conversations) {
1171
+ throw new Error('Slack client has no conversations API');
1172
+ }
1173
+ return this.client.conversations;
1174
+ }
1175
+ /**
1176
+ * Extract Slack's machine-readable error code (`name_taken`,
1177
+ * `channel_not_found`, …) from a thrown Web API error.
1178
+ *
1179
+ * @param error - The caught value
1180
+ * @returns The code, or null when the error carries none
1181
+ */
1182
+ static slackErrorCode(error) {
1183
+ const data = error?.data;
1184
+ return typeof data?.error === 'string' ? data.error : null;
1185
+ }
1186
+ /**
1187
+ * Normalise a raw conversations-API channel object.
1188
+ *
1189
+ * @param raw - Slack's channel object
1190
+ * @returns The trimmed descriptor, or null when the id is missing
1191
+ */
1192
+ static toChannelInfo(raw) {
1193
+ if (!raw?.id)
1194
+ return null;
1195
+ return {
1196
+ id: raw.id,
1197
+ name: raw.name ?? '',
1198
+ isArchived: raw.is_archived === true,
1199
+ isPrivate: raw.is_private === true,
1200
+ };
1201
+ }
908
1202
  /**
909
1203
  * Upload an image file to a Slack channel.
910
1204
  *