choavis-agent 1.4.0 → 1.4.2

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 (131) hide show
  1. package/.env.example +3 -2
  2. package/README.md +120 -205
  3. package/dist/agent/adapters/claude.d.ts +13 -0
  4. package/dist/agent/adapters/claude.d.ts.map +1 -0
  5. package/dist/agent/adapters/claude.js +199 -0
  6. package/dist/agent/adapters/claude.js.map +1 -0
  7. package/dist/agent/protocol.d.ts +56 -0
  8. package/dist/agent/protocol.d.ts.map +1 -0
  9. package/dist/agent/protocol.js +9 -0
  10. package/dist/agent/protocol.js.map +1 -0
  11. package/dist/agent/queue.d.ts.map +1 -1
  12. package/dist/agent/queue.js +4 -2
  13. package/dist/agent/queue.js.map +1 -1
  14. package/dist/agent/runner.d.ts +8 -0
  15. package/dist/agent/runner.d.ts.map +1 -1
  16. package/dist/agent/runner.js +13 -39
  17. package/dist/agent/runner.js.map +1 -1
  18. package/dist/agent/session.d.ts +27 -1
  19. package/dist/agent/session.d.ts.map +1 -1
  20. package/dist/agent/session.js +79 -3
  21. package/dist/agent/session.js.map +1 -1
  22. package/dist/agent/usage.d.ts +8 -5
  23. package/dist/agent/usage.d.ts.map +1 -1
  24. package/dist/agent/usage.js +21 -0
  25. package/dist/agent/usage.js.map +1 -1
  26. package/dist/approval/server.d.ts +11 -1
  27. package/dist/approval/server.d.ts.map +1 -1
  28. package/dist/approval/server.js +46 -4
  29. package/dist/approval/server.js.map +1 -1
  30. package/dist/approval/setup.d.ts +5 -0
  31. package/dist/approval/setup.d.ts.map +1 -1
  32. package/dist/approval/setup.js +31 -0
  33. package/dist/approval/setup.js.map +1 -1
  34. package/dist/cli/config.d.ts.map +1 -1
  35. package/dist/cli/config.js +18 -8
  36. package/dist/cli/config.js.map +1 -1
  37. package/dist/cli/onboard.d.ts.map +1 -1
  38. package/dist/cli/onboard.js +299 -51
  39. package/dist/cli/onboard.js.map +1 -1
  40. package/dist/cli.js +10 -5
  41. package/dist/cli.js.map +1 -1
  42. package/dist/config.d.ts +5 -0
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/config.js +9 -1
  45. package/dist/config.js.map +1 -1
  46. package/dist/index.js +2 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/slack/commands/compact.js +2 -2
  49. package/dist/slack/commands/compact.js.map +1 -1
  50. package/dist/slack/commands/help.d.ts.map +1 -1
  51. package/dist/slack/commands/help.js +16 -11
  52. package/dist/slack/commands/help.js.map +1 -1
  53. package/dist/slack/commands/index.d.ts.map +1 -1
  54. package/dist/slack/commands/index.js +26 -0
  55. package/dist/slack/commands/index.js.map +1 -1
  56. package/dist/slack/commands/inject.d.ts +3 -0
  57. package/dist/slack/commands/inject.d.ts.map +1 -0
  58. package/dist/slack/commands/inject.js +44 -0
  59. package/dist/slack/commands/inject.js.map +1 -0
  60. package/dist/slack/commands/memory.js +7 -7
  61. package/dist/slack/commands/memory.js.map +1 -1
  62. package/dist/slack/commands/model.d.ts +3 -0
  63. package/dist/slack/commands/model.d.ts.map +1 -0
  64. package/dist/slack/commands/model.js +43 -0
  65. package/dist/slack/commands/model.js.map +1 -0
  66. package/dist/slack/commands/new.js +1 -1
  67. package/dist/slack/commands/new.js.map +1 -1
  68. package/dist/slack/commands/permission.d.ts +3 -0
  69. package/dist/slack/commands/permission.d.ts.map +1 -0
  70. package/dist/slack/commands/permission.js +51 -0
  71. package/dist/slack/commands/permission.js.map +1 -0
  72. package/dist/slack/commands/project.js +2 -2
  73. package/dist/slack/commands/project.js.map +1 -1
  74. package/dist/slack/commands/resume.d.ts +3 -0
  75. package/dist/slack/commands/resume.d.ts.map +1 -0
  76. package/dist/slack/commands/resume.js +93 -0
  77. package/dist/slack/commands/resume.js.map +1 -0
  78. package/dist/slack/commands/session-info.d.ts +3 -0
  79. package/dist/slack/commands/session-info.d.ts.map +1 -0
  80. package/dist/slack/commands/session-info.js +33 -0
  81. package/dist/slack/commands/session-info.js.map +1 -0
  82. package/dist/slack/commands/sessions.d.ts +3 -0
  83. package/dist/slack/commands/sessions.d.ts.map +1 -0
  84. package/dist/slack/commands/sessions.js +54 -0
  85. package/dist/slack/commands/sessions.js.map +1 -0
  86. package/dist/slack/commands/status.d.ts.map +1 -1
  87. package/dist/slack/commands/status.js +7 -2
  88. package/dist/slack/commands/status.js.map +1 -1
  89. package/dist/slack/commands/usage.d.ts +5 -0
  90. package/dist/slack/commands/usage.d.ts.map +1 -1
  91. package/dist/slack/commands/usage.js +93 -12
  92. package/dist/slack/commands/usage.js.map +1 -1
  93. package/dist/slack/context.d.ts +11 -8
  94. package/dist/slack/context.d.ts.map +1 -1
  95. package/dist/slack/context.js +36 -14
  96. package/dist/slack/context.js.map +1 -1
  97. package/dist/slack/file-downloader.d.ts +18 -0
  98. package/dist/slack/file-downloader.d.ts.map +1 -0
  99. package/dist/slack/file-downloader.js +196 -0
  100. package/dist/slack/file-downloader.js.map +1 -0
  101. package/dist/slack/formatter.d.ts +0 -4
  102. package/dist/slack/formatter.d.ts.map +1 -1
  103. package/dist/slack/formatter.js +0 -8
  104. package/dist/slack/formatter.js.map +1 -1
  105. package/dist/slack/handlers.d.ts +3 -4
  106. package/dist/slack/handlers.d.ts.map +1 -1
  107. package/dist/slack/handlers.js +372 -259
  108. package/dist/slack/handlers.js.map +1 -1
  109. package/dist/slack/link-resolver.d.ts +24 -0
  110. package/dist/slack/link-resolver.d.ts.map +1 -0
  111. package/dist/slack/link-resolver.js +52 -0
  112. package/dist/slack/link-resolver.js.map +1 -0
  113. package/dist/slack/middleware.d.ts +17 -0
  114. package/dist/slack/middleware.d.ts.map +1 -0
  115. package/dist/slack/middleware.js +73 -0
  116. package/dist/slack/middleware.js.map +1 -0
  117. package/dist/slack/slack-retry.d.ts +18 -0
  118. package/dist/slack/slack-retry.d.ts.map +1 -0
  119. package/dist/slack/slack-retry.js +71 -0
  120. package/dist/slack/slack-retry.js.map +1 -0
  121. package/dist/slack/tool-formatter.d.ts +18 -0
  122. package/dist/slack/tool-formatter.d.ts.map +1 -0
  123. package/dist/slack/tool-formatter.js +154 -0
  124. package/dist/slack/tool-formatter.js.map +1 -0
  125. package/dist/slack/types.d.ts +22 -0
  126. package/dist/slack/types.d.ts.map +1 -0
  127. package/dist/slack/types.js +2 -0
  128. package/dist/slack/types.js.map +1 -0
  129. package/package.json +10 -10
  130. package/scripts/pretool-hook.mjs +0 -0
  131. package/slack-app-manifest.json +12 -1
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/slack/handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAoB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,gBAAgB;AAChB,mBAAmB,EAAE,CAAC;AAEtB,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,6CAA6C;AAC7C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC5C,MAAM,YAAY,GAAG,MAAM,CAAC;AAE5B,+BAA+B;AAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAE1F,aAAa;AACb,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9E,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,mBAAmB,KAAa,OAAO,gBAAgB,CAAC,CAAC,CAAC;AAC1E,MAAM,UAAU,gBAAgB,KAAa,OAAO,cAAc,CAAC,CAAC,CAAC;AAErE,8BAA8B;AAC9B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;AAElD,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAKD,KAAK,UAAU,eAAe,CAAC,MAAmB,EAAE,OAAe,EAAE,QAAgB,EAAE,MAAc;IACnG,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC3C,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,QAAQ;YACnB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAaD,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,MAAmB,EACnB,MAAe,EACf,YAAqB;IAErB,eAAe;IACf,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IACD,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAEpE,aAAa;IACb,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1D,WAAW;IACX,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;QACvJ,OAAO;IACT,CAAC;IAED,aAAa;IACb,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5B,OAAO;YACP,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,yCAAyC;SAChD,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB,EAAE,CAAC;IACnB,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,cAAc;QACd,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YACzB,OAAO;YACP,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnB,oCAAoC;QACpC,IAAI,UAA8B,CAAC;QAEnC,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE5D,8BAA8B;QAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEhC,IAAI,cAAc,GAA0B,IAAI,CAAC;QACjD,IAAI,WAAW,GAAiC,IAAI,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YAEnE,6BAA6B;YAC7B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnD,sCAAsC;YACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC;YACvD,IAAI,YAAgC,CAAC;YAErC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACrC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;gBACtC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAwB,EAAE,EAAE;oBACtD,KAAK,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;gBACH,YAAY,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC5C,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAE7D,2BAA2B;gBAC3B,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtD,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;gBAChC,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,SAAS,IAAI,SAAS;gBACjC,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,eAAe,CAAC,MAAM;gBACnC,YAAY;aACb,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEhC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,YAAgC,CAAC;YACrC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnC,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,CAAC;oBAED,gBAAgB;oBAChB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBAC5E,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC;oBAClC,CAAC;oBAED,qCAAqC;oBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAI,KAA8C,CAAC,SAAS,CAAC;wBAC5E,IAAI,SAAS,EAAE,CAAC;4BACd,YAAY,GAAG,SAAS,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;wBAC9D,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnC,CAAC;oBAED,kBAAkB;oBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;4BACjB,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;wBAC9B,CAAC;wBACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;4BACrB,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC;wBAClC,CAAC;wBAED,qCAAqC;wBACrC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BAChB,KAAK,WAAW,CAAC;gCACf,MAAM,EAAE,MAAM,IAAI,SAAS;gCAC3B,QAAQ;gCACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gCACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;gCAC/B,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;gCAC1C,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC;gCAC5C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;6BACnC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBAED,YAAY;oBACZ,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC9B,YAAY,EAAE,CAAC;oBACjB,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;wBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC9B,MAAM,OAAO,GAAG,UAAU;iCACvB,MAAM,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iCACjE,GAAG,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iCACnD,IAAI,CAAC,EAAE,CAAC,CAAC;4BAEZ,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gCACtD,UAAU,EAAE,CAAC;gCACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;gCAC3D,4CAA4C;gCAC5C,IAAI,UAAU,EAAE,CAAC;oCACf,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gCAC7G,CAAC;gCACD,YAAY,IAAI,iDAAiD,CAAC;4BACpE,CAAC;iCAAM,IAAI,KAAK,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;gCACjD,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gCAClD,YAAY,CAAC,QAAQ,CAAC,CAAC;gCACvB,YAAY,IAAI,qDAAqD,CAAC;4BACxE,CAAC;iCAAM,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;gCACrE,cAAc,GAAG,IAAI,CAAC;gCACtB,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gCACrD,sBAAsB;gCACtB,IAAI,UAAU,EAAE,CAAC;oCACf,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gCAC/G,CAAC;gCAED,IAAI,CAAC;oCACH,MAAM,aAAa,GAAG,QAAQ,CAAC;wCAC7B,MAAM,EAAE,UAAU;wCAClB,SAAS,EAAE,YAAY,IAAI,SAAS,IAAI,SAAS;wCACjD,OAAO,EAAE,aAAa;qCACvB,CAAC,CAAC;oCACH,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;wCAC5C,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;4CAC1C,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC;4CAC7B,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;wCACtC,CAAC;oCACH,CAAC;oCACD,YAAY,IAAI,6CAA6C,CAAC;gCAChE,CAAC;gCAAC,OAAO,UAAU,EAAE,CAAC;oCACpB,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oCACrD,YAAY,IAAI,0CAA0C,CAAC;gCAC7D,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,YAAY,IAAI,SAAS,OAAO,EAAE,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,sBAAsB;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,YAAY,IAAI,GAAG,GAAG,YAAY,IAAI,yBAAyB,EAAE,CAAC;wBACpE,YAAY,GAAG,GAAG,CAAC;wBACnB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,IAAI;4BACxC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,gBAAgB;4BAChD,CAAC,CAAC,YAAY,GAAG,gBAAgB,CAAC;wBACpC,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,sBAAsB;4BACtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gCACxC,OAAO;gCACP,SAAS,EAAE,QAAQ;gCACnB,IAAI,EAAE,OAAO;6BACd,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;4BACrB,IAAI,GAAG,EAAE,EAAE;gCAAE,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gCACvB,OAAO;gCACP,EAAE,EAAE,UAAU;gCACd,IAAI,EAAE,OAAO;6BACd,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;YAED,WAAW;YACX,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,WAAW;YACX,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;gBAClC,YAAY,IAAI,mCAAmC,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzB,YAAY,GAAG,kCAAkC,CAAC;YACpD,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAEvC,IAAI,UAAU,EAAE,CAAC;gBACf,uBAAuB;gBACvB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,OAAO;oBACP,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,4BAA4B;gBAC5B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBACxC,OAAO;oBACP,SAAS,EAAE,QAAQ;oBACnB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChB,CAAC,CAAC;gBACH,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YACtB,CAAC;YAED,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC5B,OAAO;oBACP,SAAS,EAAE,QAAQ;oBACnB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,gBAAgB;YAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,MAAM,CAAC,aAAa,CAAC;oBACzB,UAAU,EAAE,OAAO;oBACnB,SAAS,EAAE,QAAQ;oBACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;oBACtB,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;YACL,CAAC;YAED,YAAY;YACZ,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC5B,OAAO;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,OAAO;gBACP,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACzF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC5B,OAAO;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,OAAO;gBACP,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAErD,WAAW;YACX,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtC,CAAC;YAED,gBAAgB,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wBAAwB;AACxB,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhE,SAAS,cAAc,CAAC,OAAe,EAAE,QAAgB;IACvD,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,SAAkC;IAC3E,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;IAC1D,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAChD,OAAO,SAAS,SAAS,CAAC,SAAS,IAAI,CAAC;IAC1C,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO,SAAS,SAAS,CAAC,SAAS,IAAI,CAAC;IAC1C,CAAC;IACD,IAAI,QAAQ,KAAK,cAAc,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;QAC3D,OAAO,SAAS,SAAS,CAAC,aAAa,IAAI,CAAC;IAC9C,CAAC;IACD,eAAe;IACf,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,MAAmB,EACnB,OAAe,EACf,QAAgB,EAChB,OAAwB;IAExB,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5B,OAAO;YACP,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,gBAAgB,OAAO,CAAC,QAAQ,EAAE;YACxC,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,mCAAmC,OAAO,CAAC,QAAQ,aAAa,OAAO,EAAE;qBAChF;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,uBAAuB,EAAE;4BAC3D,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,cAAc;4BACzB,KAAK,EAAE,OAAO,CAAC,SAAS;yBACzB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5C,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,OAAO,CAAC,SAAS;yBACzB;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,mBAAmB;IACnB,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACjE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,MAAM,SAAS,GAAI,IAAsC,CAAC,OAAO,EAAE,EAAE,CAAC;QAEtE,sBAAsB;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;gBACvC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO;gBACP,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,4BAA4B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;yBAC/D;qBACF;iBACF;aACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9D,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,MAAM,SAAS,GAAI,IAAsC,CAAC,OAAO,EAAE,EAAE,CAAC;QAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO;gBACP,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;yBAChD;qBACF;iBACF;aACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,OAAuB,CAAC;QACpC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO;QAEtC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,4BAA4B;QAE/C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC;QAEzC,gCAAgC;QAChC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,YAAY,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC;QAE7C,mBAAmB;QACnB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,uBAAuB;YACvB,YAAY,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/slack/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAA4B,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAEL,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,gBAAgB;AAChB,mBAAmB,EAAE,CAAC;AAEtB,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,wBAAwB;AACxB,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhE,SAAS,cAAc,CAAC,OAAe,EAAE,QAAgB;IACvD,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,MAAmB,EACnB,MAAe;IAEf,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACvG,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,MAAmB,EACnB,MAAe,EACf,YAAqB,EACrB,KAAuB,EACvB,YAAY,GAAG,KAAK;IAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,mCAAmC;QACnC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1D,WAAW;IACX,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;QAC1C,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;QACvJ,OAAO;IACT,CAAC;IAED,0CAA0C;IAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,aAAa;IACb,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAC1C,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;QAChE,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,EAChH,yBAAyB,CAC1B,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACjC,oBAAoB,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,UAA8B,CAAC;QACnC,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE5D,8BAA8B;QAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEhC,IAAI,cAAc,GAA0B,IAAI,CAAC;QACjD,IAAI,WAAW,GAAiC,IAAI,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YAEnE,6BAA6B;YAC7B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEtE,WAAW;YACX,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjG,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;gBACvC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzE,MAAM,UAAU,CACd,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAC/E,+BAA+B,CAChC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnD,sCAAsC;YACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;YAC7C,IAAI,YAAgC,CAAC;YAErC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACrC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;gBACtC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAwB,EAAE,EAAE;oBACtD,KAAK,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;gBACH,YAAY,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC5C,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAE7D,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtD,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;gBAClC,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,SAAS,IAAI,SAAS;gBACjC,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,eAAe,CAAC,MAAM;gBACnC,YAAY;aACb,CAAC,CAAC;YACH,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE9B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,YAAgC,CAAC;YACrC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnC,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,CAAC;oBAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,OAAO;4BACV,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;4BAC/B,MAAM;wBAER,KAAK,MAAM;4BACT,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gCACf,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oCACvB,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gCACpC,CAAC;qCAAM,CAAC;oCACN,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gCACrC,CAAC;4BACH,CAAC;4BACD,MAAM;wBAER,KAAK,UAAU;4BACb,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gCACvB,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;4BACnC,CAAC;4BACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gCACpB,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;4BACjC,CAAC;4BACD,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gCACtB,KAAK,WAAW,CAAC;oCACf,MAAM,EAAE,MAAM,IAAI,SAAS;oCAC3B,QAAQ;oCACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oCACrB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;oCAC1C,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;oCACzC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;oCAC3C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iCACnC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC3B,CAAC;4BACD,MAAM;wBAER,KAAK,iBAAiB;4BACpB,YAAY,EAAE,CAAC;4BACf,MAAM;wBAER,KAAK,SAAS;4BACZ,MAAM,kBAAkB,CAAC,KAAK,EAAE;gCAC9B,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM;gCACrC,SAAS,EAAE,YAAY,EAAE,aAAa;gCACtC,UAAU,EAAE,cAAc;gCAC1B,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;gCAChC,WAAW,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC;gCAC7C,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC3C,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;6BAC1C,CAAC,CAAC;4BACH,MAAM;wBAER;4BACE,MAAM;oBACV,CAAC;oBAED,oBAAoB;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,YAAY,IAAI,GAAG,GAAG,YAAY,IAAI,yBAAyB,EAAE,CAAC;wBACpE,YAAY,GAAG,GAAG,CAAC;wBACnB,iDAAiD;wBACjD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,MAAM,OAAO,GAAG,YAAY,GAAG,gBAAgB,CAAC;wBAChD,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC9E,0BAA0B,CAC3B,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAA2B,CAAC;4BAC9C,IAAI,GAAG,EAAE,EAAE;gCAAE,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,MAAM,UAAU,CACd,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACpE,qBAAqB,CACtB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE;oBACjC,MAAM;oBACN,OAAO;oBACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;oBACtC,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,WAAW;YACX,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;gBAClC,YAAY,IAAI,mCAAmC,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzB,YAAY,GAAG,kCAAkC,CAAC;YACpD,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAEvC,yBAAyB;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAC9C,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAExD,yBAAyB;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAClG,CAAC;YAED,sCAAsC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9F,0BAA0B,CAAC,GAAG,CAC/B,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;oBACzB,UAAU,EAAE,OAAO;oBACnB,SAAS,EAAE,QAAQ;oBACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,EACF,iBAAiB,OAAO,CAAC,QAAQ,GAAG,CACrC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;oBACrB,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACzF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC;YAC7H,CAAC;QAEH,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3B,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAErD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtC,CAAC;YAED,oBAAoB,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAkBD,KAAK,UAAU,kBAAkB,CAAC,KAAmB,EAAE,GAAwB;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClI,CAAC;QACD,GAAG,CAAC,UAAU,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,GAAG,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,qDAAqD,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,GAAG,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACvE,GAAG,CAAC,WAAW,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpI,CAAC;QACD,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC;gBAC7B,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS,IAAI,SAAS;gBACzD,OAAO,EAAE,GAAG,CAAC,aAAa;aAC3B,CAAC,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAC1C,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;oBAC/B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YACD,GAAG,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,UAAU,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,MAAmB,EACnB,OAAe,EACf,QAAgB,EAChB,OAAwB;IAExB,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5B,OAAO;YACP,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,gBAAgB,OAAO,CAAC,QAAQ,EAAE;YACxC,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,mCAAmC,OAAO,CAAC,QAAQ,aAAa,OAAO,EAAE;qBAChF;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5C,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,cAAc;4BACzB,KAAK,EAAE,WAAW;yBACnB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;4BAC3C,SAAS,EAAE,qBAAqB;4BAChC,KAAK,EAAE,WAAW;yBACnB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;4BACxC,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,WAAW;yBACnB;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,sCAAsC;IACtC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC9B,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9D,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACpF,MAAM,mBAAmB,CAAC;gBACxB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE;oBACrD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE;oBAC/C,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;iBACnD;aACF,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;YACpD,MAAM,GAAG,GAAG,OAAkC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM;gBAAE,OAAO;YAExE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC;YAC5J,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM;gBAAE,OAAO;YAExC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAE3C,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,WAAW,GAAoB,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjF,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;gBACxB,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;YAC1B,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,cAAc,CAAC,IAAI,IAAI,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7J,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEzB,kBAAkB;IAClB,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;YAAE,OAAO;QAEjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzB,OAAO,EAAE,KAAK,CAAC,IAAI;gBACnB,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE;yBACpD;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,4CAA4C;6BACnD;yBACF;wBACD,EAAE,IAAI,EAAE,SAAS,EAAE;wBACnB;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,aAAa;sCACf,sDAAsD;sCACtD,2CAA2C;6BAChD;yBACF;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,WAAW;sCACb,iCAAiC;sCACjC,2BAA2B;sCAC3B,wBAAwB;sCACxB,6CAA6C;sCAC7C,sDAAsD;sCACtD,6BAA6B;sCAC7B,kCAAkC;sCAClC,uCAAuC;sCACvC,sCAAsC;sCACtC,+BAA+B;sCAC/B,qBAAqB;sCACrB,uBAAuB;sCACvB,2BAA2B;sCAC3B,kBAAkB;6BACvB;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACjE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,MAAM,SAAS,GAAI,IAAsC,CAAC,OAAO,EAAE,EAAE,CAAC;QAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;gBACvC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO;gBACP,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,8BAA8B;gBACpC,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,iCAAiC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;yBAC7E;qBACF;iBACF;aACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QACxE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAI,IAA6C,CAAC,OAAO,EAAE,SAAS,CAAC;QACnF,MAAM,SAAS,GAAI,IAAsC,CAAC,OAAO,EAAE,EAAE,CAAC;QAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7C,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACjF,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBAC9D,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO;gBACP,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,8BAA8B,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;yBAC1E;qBACF;iBACF;aACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9D,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjC,MAAM,SAAS,GAAI,IAAsC,CAAC,OAAO,EAAE,EAAE,CAAC;QAEtE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO;gBACP,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,YAAY,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;yBACxD;qBACF;iBACF;aACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,OAAuB,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO;QAExE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO;QAExC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC;QACvC,4BAA4B;QAC5B,MAAM,UAAU,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,CAC3C,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CACxE,CAAC;QAEF,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAEjC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC;QAEzC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAoB,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;YACxB,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU;YAC1B,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAEjB,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,cAAc,CAAC,SAAS,IAAI,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClK,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAI,KAAgD,CAAC,KAAK,CAAC;QACtE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO;QAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC;QAE7C,wBAAwB;QACxB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7B,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,mBAAmB;QACnB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAoB,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACvF,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;YACxB,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5B,sBAAsB;YACtB,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,cAAc,CAAC,IAAI,IAAI,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnK,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ interface ResolvedSession {
2
+ sessionId: string;
3
+ workDir?: string;
4
+ }
5
+ /**
6
+ * Slack 메시지/스레드 링크에서 threadTs를 추출.
7
+ *
8
+ * Slack 링크 형식:
9
+ * - 메시지: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP>
10
+ * - 스레드: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP?thread_ts=THREAD_TS&cid=CID>
11
+ *
12
+ * pTIMESTAMP: 'p' + ts에서 '.' 제거한 값 (예: p1708000001000100 → 1708000001.000100)
13
+ */
14
+ export declare function parseSlackLink(text: string): {
15
+ channel: string;
16
+ threadTs: string;
17
+ } | null;
18
+ /**
19
+ * 텍스트에서 Slack 링크를 찾아 해당 스레드의 세션을 조회.
20
+ * 세션이 있으면 sessionId와 workDir을 반환.
21
+ */
22
+ export declare function resolveSessionFromLink(text: string): ResolvedSession | null;
23
+ export {};
24
+ //# sourceMappingURL=link-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-resolver.d.ts","sourceRoot":"","sources":["../../src/slack/link-resolver.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsBzF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAa3E"}
@@ -0,0 +1,52 @@
1
+ import { getSession, getWorkDir } from '../agent/session.js';
2
+ import { createLogger } from '../utils/logger.js';
3
+ const log = createLogger('link-resolver');
4
+ /**
5
+ * Slack 메시지/스레드 링크에서 threadTs를 추출.
6
+ *
7
+ * Slack 링크 형식:
8
+ * - 메시지: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP>
9
+ * - 스레드: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP?thread_ts=THREAD_TS&cid=CID>
10
+ *
11
+ * pTIMESTAMP: 'p' + ts에서 '.' 제거한 값 (예: p1708000001000100 → 1708000001.000100)
12
+ */
13
+ export function parseSlackLink(text) {
14
+ const pattern = /https?:\/\/[^/]+\.slack\.com\/archives\/([A-Z0-9]+)\/p(\d+)(?:\?[^\s>]*)?/;
15
+ const match = text.match(pattern);
16
+ if (!match)
17
+ return null;
18
+ const channel = match[1];
19
+ const rawTs = match[2];
20
+ // thread_ts 파라미터가 있으면 그것을 사용 (스레드 내 메시지 링크)
21
+ const threadTsMatch = text.match(/thread_ts=(\d+\.\d+)/);
22
+ let threadTs;
23
+ if (threadTsMatch) {
24
+ threadTs = threadTsMatch[1];
25
+ }
26
+ else {
27
+ // pTIMESTAMP에서 threadTs 복원: 뒤 6자리 앞에 '.' 삽입
28
+ if (rawTs.length <= 6)
29
+ return null;
30
+ threadTs = rawTs.slice(0, rawTs.length - 6) + '.' + rawTs.slice(rawTs.length - 6);
31
+ }
32
+ log.info('Slack 링크 파싱', { channel, threadTs });
33
+ return { channel, threadTs };
34
+ }
35
+ /**
36
+ * 텍스트에서 Slack 링크를 찾아 해당 스레드의 세션을 조회.
37
+ * 세션이 있으면 sessionId와 workDir을 반환.
38
+ */
39
+ export function resolveSessionFromLink(text) {
40
+ const link = parseSlackLink(text);
41
+ if (!link)
42
+ return null;
43
+ const sessionId = getSession(link.threadTs);
44
+ if (!sessionId) {
45
+ log.info('링크된 스레드에 세션 없음', { threadTs: link.threadTs });
46
+ return null;
47
+ }
48
+ const workDir = getWorkDir(link.threadTs);
49
+ log.info('링크에서 세션 조회 성공', { threadTs: link.threadTs, sessionId });
50
+ return { sessionId, workDir };
51
+ }
52
+ //# sourceMappingURL=link-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["../../src/slack/link-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAO1C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,2EAA2E,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,4CAA4C;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzD,IAAI,QAAgB,CAAC;IAErB,IAAI,aAAa,EAAE,CAAC;QAClB,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { SlackClient } from './types.js';
2
+ export declare const BOOT_TS: number;
3
+ export declare const DEDUP_TTL_MS = 60000;
4
+ export declare const mentionStartedThreads: Map<string, NodeJS.Timeout>;
5
+ export declare function trackMentionThread(threadTs: string): void;
6
+ export declare function getActiveAgentCount(): number;
7
+ export declare function getMaxConcurrent(): number;
8
+ export declare function incrementActiveCount(): void;
9
+ export declare function decrementActiveCount(): void;
10
+ export declare function getActiveKill(threadTs: string): (() => void) | undefined;
11
+ export declare function setActiveKill(threadTs: string, kill: () => void): void;
12
+ export declare function deleteActiveKill(threadTs: string): void;
13
+ export declare function isBootMessage(messageTs: string): boolean;
14
+ export declare function isDuplicate(messageTs: string): boolean;
15
+ export declare function isAllowedUser(userId: string | undefined): boolean;
16
+ export declare function setTypingStatus(client: SlackClient, channel: string, threadTs: string, status: string): Promise<void>;
17
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/slack/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,eAAO,MAAM,OAAO,QAAoB,CAAC;AAIzC,eAAO,MAAM,YAAY,QAAS,CAAC;AAInC,eAAO,MAAM,qBAAqB,6BAAmD,CAAC;AAGtF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKzD;AAMD,wBAAgB,mBAAmB,IAAI,MAAM,CAA6B;AAC1E,wBAAgB,gBAAgB,IAAI,MAAM,CAA2B;AACrE,wBAAgB,oBAAoB,IAAI,IAAI,CAAwB;AACpE,wBAAgB,oBAAoB,IAAI,IAAI,CAAwB;AAKpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAExE;AACD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAEtE;AACD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvD;AAGD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3H"}
@@ -0,0 +1,73 @@
1
+ import { createLogger } from '../utils/logger.js';
2
+ import { config } from '../config.js';
3
+ const log = createLogger('middleware');
4
+ // 앱 시작 시각 — 이전 이벤트는 무시 (재시작 시 밀린 이벤트 방지)
5
+ export const BOOT_TS = Date.now() / 1000;
6
+ // 이벤트 중복 처리 방지 (message + app_mention 동시 발생)
7
+ const processedMessages = new Set();
8
+ export const DEDUP_TTL_MS = 60_000;
9
+ // 멘션된 스레드 추적 (후속 메시지는 멘션 없이도 처리)
10
+ // 세션 생성 전 짧은 구간을 커버하는 용도 (세션 저장 후에는 hasThread로 판단)
11
+ export const mentionStartedThreads = new Map();
12
+ const MENTION_TRACK_TTL_MS = 60 * 60 * 1000; // 1시간 (세션이 생기면 불필요)
13
+ export function trackMentionThread(threadTs) {
14
+ const existing = mentionStartedThreads.get(threadTs);
15
+ if (existing)
16
+ clearTimeout(existing);
17
+ const timer = setTimeout(() => mentionStartedThreads.delete(threadTs), MENTION_TRACK_TTL_MS);
18
+ mentionStartedThreads.set(threadTs, timer);
19
+ }
20
+ // 동시 프로세스 제한
21
+ const MAX_CONCURRENT = config.slack.maxConcurrentAgents;
22
+ let activeAgentCount = 0;
23
+ export function getActiveAgentCount() { return activeAgentCount; }
24
+ export function getMaxConcurrent() { return MAX_CONCURRENT; }
25
+ export function incrementActiveCount() { activeAgentCount++; }
26
+ export function decrementActiveCount() { activeAgentCount--; }
27
+ // 실행 중인 에이전트 프로세스의 kill 함수 추적
28
+ const activeKills = new Map();
29
+ export function getActiveKill(threadTs) {
30
+ return activeKills.get(threadTs);
31
+ }
32
+ export function setActiveKill(threadTs, kill) {
33
+ activeKills.set(threadTs, kill);
34
+ }
35
+ export function deleteActiveKill(threadTs) {
36
+ activeKills.delete(threadTs);
37
+ }
38
+ // 메시지 중복 체크 함수
39
+ export function isBootMessage(messageTs) {
40
+ return parseFloat(messageTs) < BOOT_TS;
41
+ }
42
+ export function isDuplicate(messageTs) {
43
+ if (processedMessages.has(messageTs))
44
+ return true;
45
+ processedMessages.add(messageTs);
46
+ setTimeout(() => processedMessages.delete(messageTs), DEDUP_TTL_MS);
47
+ return false;
48
+ }
49
+ export function isAllowedUser(userId) {
50
+ const users = config.slack.allowedUsers;
51
+ // null = ALLOWED_SLACK_USERS 미설정 → 전체 거부
52
+ if (users === null)
53
+ return false;
54
+ // 빈 배열 = 설정됐지만 유효 ID 없음 → 전체 거부
55
+ if (users.length === 0)
56
+ return false;
57
+ if (!userId)
58
+ return false;
59
+ return users.includes(userId);
60
+ }
61
+ export async function setTypingStatus(client, channel, threadTs, status) {
62
+ try {
63
+ await client.assistant?.threads?.setStatus?.({
64
+ channel_id: channel,
65
+ thread_ts: threadTs,
66
+ status,
67
+ });
68
+ }
69
+ catch {
70
+ // Slack Assistant API 미지원 시 조용히 무시
71
+ }
72
+ }
73
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/slack/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ interface RetryOptions {
2
+ maxRetries?: number;
3
+ baseDelayMs?: number;
4
+ maxDelayMs?: number;
5
+ }
6
+ /**
7
+ * Slack API 호출을 지수 백오프로 재시도하는 래퍼.
8
+ * 네트워크 오류나 rate limit 시 자동 재시도하여 Slack 연결 불안정에도
9
+ * Claude 작업 결과가 유실되지 않도록 함.
10
+ */
11
+ export declare function withRetry<T>(fn: () => Promise<T>, label: string, options?: RetryOptions): Promise<T>;
12
+ /**
13
+ * Slack API 호출을 시도하되, 실패해도 무시 (best-effort).
14
+ * 리액션 추가/제거 등 실패해도 치명적이지 않은 호출에 사용.
15
+ */
16
+ export declare function bestEffort<T>(fn: () => Promise<T>, label: string): Promise<T | undefined>;
17
+ export {};
18
+ //# sourceMappingURL=slack-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-retry.d.ts","sourceRoot":"","sources":["../../src/slack/slack-retry.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAOxB"}
@@ -0,0 +1,71 @@
1
+ import { createLogger } from '../utils/logger.js';
2
+ const log = createLogger('slack-retry');
3
+ const DEFAULT_OPTIONS = {
4
+ maxRetries: 3,
5
+ baseDelayMs: 1000,
6
+ maxDelayMs: 10_000,
7
+ };
8
+ function isRetryableError(err) {
9
+ if (err && typeof err === 'object') {
10
+ const code = err.code;
11
+ // Slack rate limit (429) or network errors
12
+ if (code === 'slack_webapi_platform_error')
13
+ return false; // 잘못된 요청은 재시도 불필요
14
+ if (code === 'slack_webapi_rate_limited')
15
+ return true;
16
+ const message = String(err.message || '');
17
+ if (message.includes('ECONNREFUSED') || message.includes('ETIMEDOUT') ||
18
+ message.includes('ENOTFOUND') || message.includes('socket hang up') ||
19
+ message.includes('network') || message.includes('rate_limited') ||
20
+ message.includes('request_timeout') || message.includes('service_unavailable')) {
21
+ return true;
22
+ }
23
+ }
24
+ return false;
25
+ }
26
+ function delay(ms) {
27
+ return new Promise(resolve => setTimeout(resolve, ms));
28
+ }
29
+ /**
30
+ * Slack API 호출을 지수 백오프로 재시도하는 래퍼.
31
+ * 네트워크 오류나 rate limit 시 자동 재시도하여 Slack 연결 불안정에도
32
+ * Claude 작업 결과가 유실되지 않도록 함.
33
+ */
34
+ export async function withRetry(fn, label, options) {
35
+ const opts = { ...DEFAULT_OPTIONS, ...options };
36
+ for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
37
+ try {
38
+ return await fn();
39
+ }
40
+ catch (err) {
41
+ if (attempt === opts.maxRetries || !isRetryableError(err)) {
42
+ log.error(`${label} 최종 실패`, { attempt, error: String(err) });
43
+ throw err;
44
+ }
45
+ const retryAfterMs = err.retryAfter
46
+ ? err.retryAfter * 1000
47
+ : undefined;
48
+ const jitter = Math.random() * 500;
49
+ const delayMs = retryAfterMs
50
+ ?? Math.min(opts.baseDelayMs * 2 ** attempt + jitter, opts.maxDelayMs);
51
+ log.warn(`${label} 재시도 ${attempt + 1}/${opts.maxRetries}`, { delayMs: Math.round(delayMs), error: String(err) });
52
+ await delay(delayMs);
53
+ }
54
+ }
55
+ // unreachable, but TypeScript needs it
56
+ throw new Error(`${label}: retry exhausted`);
57
+ }
58
+ /**
59
+ * Slack API 호출을 시도하되, 실패해도 무시 (best-effort).
60
+ * 리액션 추가/제거 등 실패해도 치명적이지 않은 호출에 사용.
61
+ */
62
+ export async function bestEffort(fn, label) {
63
+ try {
64
+ return await withRetry(fn, label, { maxRetries: 1 });
65
+ }
66
+ catch {
67
+ log.warn(`${label} best-effort 실패, 무시`);
68
+ return undefined;
69
+ }
70
+ }
71
+ //# sourceMappingURL=slack-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-retry.js","sourceRoot":"","sources":["../../src/slack/slack-retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Tool-type별 Slack 포맷팅
3
+ * Claude Code의 tool_use 이벤트를 도구 종류에 따라 다른 형식으로 표시
4
+ */
5
+ export interface ToolEvent {
6
+ toolName: string;
7
+ toolInput: Record<string, unknown>;
8
+ }
9
+ /**
10
+ * 단일 도구 이벤트를 간결한 텍스트로 포맷 (승인 버튼 등에서 사용)
11
+ */
12
+ export declare function formatToolInline(event: ToolEvent): string;
13
+ /**
14
+ * 도구 사용 이벤트 목록을 Slack mrkdwn 요약으로 변환
15
+ * 최대 maxDisplay개 표시, 나머지는 "+N more" 로 축약
16
+ */
17
+ export declare function formatToolSummary(events: ToolEvent[], maxDisplay?: number): string;
18
+ //# sourceMappingURL=tool-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-formatter.d.ts","sourceRoot":"","sources":["../../src/slack/tool-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAqHD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,SAAI,GAAG,MAAM,CAoB7E"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Tool-type별 Slack 포맷팅
3
+ * Claude Code의 tool_use 이벤트를 도구 종류에 따라 다른 형식으로 표시
4
+ */
5
+ function formatBash(input) {
6
+ const cmd = String(input.command || '').slice(0, 150);
7
+ return {
8
+ icon: ':terminal:',
9
+ label: 'Bash',
10
+ detail: `\`${cmd}\`${String(input.command || '').length > 150 ? '...' : ''}`,
11
+ };
12
+ }
13
+ function formatEdit(input) {
14
+ const filePath = String(input.file_path || '');
15
+ const shortPath = filePath.split('/').slice(-2).join('/');
16
+ return {
17
+ icon: ':pencil2:',
18
+ label: 'Edit',
19
+ detail: `\`${shortPath}\``,
20
+ };
21
+ }
22
+ function formatWrite(input) {
23
+ const filePath = String(input.file_path || '');
24
+ const shortPath = filePath.split('/').slice(-2).join('/');
25
+ return {
26
+ icon: ':page_facing_up:',
27
+ label: 'Write',
28
+ detail: `\`${shortPath}\``,
29
+ };
30
+ }
31
+ function formatRead(input) {
32
+ const filePath = String(input.file_path || '');
33
+ const shortPath = filePath.split('/').slice(-2).join('/');
34
+ return {
35
+ icon: ':mag:',
36
+ label: 'Read',
37
+ detail: `\`${shortPath}\``,
38
+ };
39
+ }
40
+ function formatGlob(input) {
41
+ return {
42
+ icon: ':file_folder:',
43
+ label: 'Glob',
44
+ detail: `\`${input.pattern || '*'}\``,
45
+ };
46
+ }
47
+ function formatGrep(input) {
48
+ return {
49
+ icon: ':mag_right:',
50
+ label: 'Grep',
51
+ detail: `\`${String(input.pattern || '').slice(0, 80)}\``,
52
+ };
53
+ }
54
+ function formatWebSearch(input) {
55
+ return {
56
+ icon: ':globe_with_meridians:',
57
+ label: 'WebSearch',
58
+ detail: `\`${String(input.query || '').slice(0, 80)}\``,
59
+ };
60
+ }
61
+ function formatTask(input) {
62
+ const desc = String(input.description || input.prompt || '').slice(0, 80);
63
+ return {
64
+ icon: ':robot_face:',
65
+ label: 'Task',
66
+ detail: desc ? `_${desc}_` : '',
67
+ };
68
+ }
69
+ function stringifyValue(val) {
70
+ if (val === null || val === undefined)
71
+ return '';
72
+ if (typeof val === 'string')
73
+ return val;
74
+ if (typeof val === 'number' || typeof val === 'boolean')
75
+ return String(val);
76
+ try {
77
+ return JSON.stringify(val);
78
+ }
79
+ catch {
80
+ return '(...)';
81
+ }
82
+ }
83
+ function formatDefault(toolName, input) {
84
+ const keys = Object.keys(input).slice(0, 2);
85
+ const summary = keys.map(k => `${k}: ${stringifyValue(input[k]).slice(0, 50)}`).join(', ');
86
+ return {
87
+ icon: ':gear:',
88
+ label: toolName,
89
+ detail: summary || '',
90
+ };
91
+ }
92
+ const FORMATTERS = {
93
+ Bash: formatBash,
94
+ Edit: formatEdit,
95
+ Write: formatWrite,
96
+ MultiEdit: formatEdit,
97
+ Read: formatRead,
98
+ Glob: formatGlob,
99
+ Grep: formatGrep,
100
+ WebSearch: formatWebSearch,
101
+ WebFetch: (input) => ({ icon: ':link:', label: 'WebFetch', detail: `\`${String(input.url || '').slice(0, 80)}\`` }),
102
+ Task: formatTask,
103
+ NotebookEdit: (input) => ({ icon: ':notebook:', label: 'NotebookEdit', detail: `\`${String(input.notebook_path || '').split('/').slice(-2).join('/')}\`` }),
104
+ };
105
+ function formatSingleTool(event) {
106
+ const formatter = FORMATTERS[event.toolName];
107
+ if (formatter)
108
+ return formatter(event.toolInput);
109
+ return formatDefault(event.toolName, event.toolInput);
110
+ }
111
+ /**
112
+ * 단일 도구 이벤트를 간결한 텍스트로 포맷 (승인 버튼 등에서 사용)
113
+ */
114
+ export function formatToolInline(event) {
115
+ const { label, detail } = formatSingleTool(event);
116
+ return detail ? `${label}: ${detail}` : label;
117
+ }
118
+ /**
119
+ * 도구 사용 이벤트 목록을 Slack mrkdwn 요약으로 변환
120
+ * 최대 maxDisplay개 표시, 나머지는 "+N more" 로 축약
121
+ */
122
+ export function formatToolSummary(events, maxDisplay = 8) {
123
+ if (events.length === 0)
124
+ return '';
125
+ const lines = [];
126
+ // 같은 도구가 연속으로 쓰이면 그룹핑
127
+ const grouped = groupConsecutiveTools(events);
128
+ const displayItems = grouped.slice(0, maxDisplay);
129
+ for (const item of displayItems) {
130
+ const formatted = formatSingleTool(item.event);
131
+ const countSuffix = item.count > 1 ? ` (x${item.count})` : '';
132
+ lines.push(`${formatted.icon} *${formatted.label}*${countSuffix} ${formatted.detail}`);
133
+ }
134
+ if (grouped.length > maxDisplay) {
135
+ lines.push(`_...+${grouped.length - maxDisplay} more tools_`);
136
+ }
137
+ return `:hammer_and_wrench: *도구 사용 (${events.length}회)*\n${lines.join('\n')}`;
138
+ }
139
+ function groupConsecutiveTools(events) {
140
+ const groups = [];
141
+ for (const event of events) {
142
+ const last = groups[groups.length - 1];
143
+ if (last && last.event.toolName === event.toolName) {
144
+ last.count++;
145
+ // 마지막 이벤트로 업데이트 (가장 최근 것 표시)
146
+ last.event = event;
147
+ }
148
+ else {
149
+ groups.push({ event, count: 1 });
150
+ }
151
+ }
152
+ return groups;
153
+ }
154
+ //# sourceMappingURL=tool-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-formatter.js","sourceRoot":"","sources":["../../src/slack/tool-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type SlackClient = any;
2
+ export interface SlackFileInfo {
3
+ id: string;
4
+ name: string;
5
+ mimetype: string;
6
+ filetype: string;
7
+ size: number;
8
+ url_private: string;
9
+ url_private_download?: string;
10
+ }
11
+ export interface SlackMessage {
12
+ subtype?: string;
13
+ bot_id?: string;
14
+ channel: string;
15
+ channel_type?: string;
16
+ thread_ts?: string;
17
+ ts: string;
18
+ text?: string;
19
+ user?: string;
20
+ files?: SlackFileInfo[];
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slack/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/slack/types.ts"],"names":[],"mappings":""}