@ariso-ai/ivan 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +412 -0
  2. package/dist/agent.d.ts +11 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +48 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/config/config.d.ts +20 -0
  7. package/dist/config/config.d.ts.map +1 -0
  8. package/dist/config/config.js +187 -0
  9. package/dist/config/config.js.map +1 -0
  10. package/dist/config.d.ts +46 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +414 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/database/database.d.ts +12 -0
  15. package/dist/database/database.d.ts.map +1 -0
  16. package/dist/database/database.js +45 -0
  17. package/dist/database/database.js.map +1 -0
  18. package/dist/database/migration.d.ts +11 -0
  19. package/dist/database/migration.d.ts.map +1 -0
  20. package/dist/database/migration.js +64 -0
  21. package/dist/database/migration.js.map +1 -0
  22. package/dist/database/migrations/001_create_jobs_table.d.ts +3 -0
  23. package/dist/database/migrations/001_create_jobs_table.d.ts.map +1 -0
  24. package/dist/database/migrations/001_create_jobs_table.js +14 -0
  25. package/dist/database/migrations/001_create_jobs_table.js.map +1 -0
  26. package/dist/database/migrations/001_initial_schema.d.ts +3 -0
  27. package/dist/database/migrations/001_initial_schema.d.ts.map +1 -0
  28. package/dist/database/migrations/001_initial_schema.js +66 -0
  29. package/dist/database/migrations/001_initial_schema.js.map +1 -0
  30. package/dist/database/migrations/002_create_tasks_table.d.ts +3 -0
  31. package/dist/database/migrations/002_create_tasks_table.d.ts.map +1 -0
  32. package/dist/database/migrations/002_create_tasks_table.js +16 -0
  33. package/dist/database/migrations/002_create_tasks_table.js.map +1 -0
  34. package/dist/database/migrations/003_add_log_to_tasks.d.ts +3 -0
  35. package/dist/database/migrations/003_add_log_to_tasks.d.ts.map +1 -0
  36. package/dist/database/migrations/003_add_log_to_tasks.js +11 -0
  37. package/dist/database/migrations/003_add_log_to_tasks.js.map +1 -0
  38. package/dist/database/migrations/004_add_branch_to_tasks.d.ts +3 -0
  39. package/dist/database/migrations/004_add_branch_to_tasks.d.ts.map +1 -0
  40. package/dist/database/migrations/004_add_branch_to_tasks.js +11 -0
  41. package/dist/database/migrations/004_add_branch_to_tasks.js.map +1 -0
  42. package/dist/database/migrations/005_add_type_to_tasks.d.ts +3 -0
  43. package/dist/database/migrations/005_add_type_to_tasks.d.ts.map +1 -0
  44. package/dist/database/migrations/005_add_type_to_tasks.js +11 -0
  45. package/dist/database/migrations/005_add_type_to_tasks.js.map +1 -0
  46. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts +3 -0
  47. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts.map +1 -0
  48. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js +15 -0
  49. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js.map +1 -0
  50. package/dist/database/migrations/006_add_comment_url_to_tasks.d.ts +3 -0
  51. package/dist/database/migrations/006_add_comment_url_to_tasks.d.ts.map +1 -0
  52. package/dist/database/migrations/006_add_comment_url_to_tasks.js +14 -0
  53. package/dist/database/migrations/006_add_comment_url_to_tasks.js.map +1 -0
  54. package/dist/database/migrations/007_add_commit_to_tasks.d.ts +3 -0
  55. package/dist/database/migrations/007_add_commit_to_tasks.d.ts.map +1 -0
  56. package/dist/database/migrations/007_add_commit_to_tasks.js +13 -0
  57. package/dist/database/migrations/007_add_commit_to_tasks.js.map +1 -0
  58. package/dist/database/migrations/008_add_lint_and_test_task_type.d.ts +3 -0
  59. package/dist/database/migrations/008_add_lint_and_test_task_type.d.ts.map +1 -0
  60. package/dist/database/migrations/008_add_lint_and_test_task_type.js +42 -0
  61. package/dist/database/migrations/008_add_lint_and_test_task_type.js.map +1 -0
  62. package/dist/database/migrations/index.d.ts +3 -0
  63. package/dist/database/migrations/index.d.ts.map +1 -0
  64. package/dist/database/migrations/index.js +19 -0
  65. package/dist/database/migrations/index.js.map +1 -0
  66. package/dist/database/types.d.ts +34 -0
  67. package/dist/database/types.d.ts.map +1 -0
  68. package/dist/database/types.js +2 -0
  69. package/dist/database/types.js.map +1 -0
  70. package/dist/database.d.ts +13 -0
  71. package/dist/database.d.ts.map +1 -0
  72. package/dist/database.js +32 -0
  73. package/dist/database.js.map +1 -0
  74. package/dist/index.d.ts +3 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +285 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/scripts/task-executor.d.ts +3 -0
  79. package/dist/scripts/task-executor.d.ts.map +1 -0
  80. package/dist/scripts/task-executor.js +139 -0
  81. package/dist/scripts/task-executor.js.map +1 -0
  82. package/dist/scripts/task-planner.d.ts +3 -0
  83. package/dist/scripts/task-planner.d.ts.map +1 -0
  84. package/dist/scripts/task-planner.js +81 -0
  85. package/dist/scripts/task-planner.js.map +1 -0
  86. package/dist/services/address-executor.d.ts +13 -0
  87. package/dist/services/address-executor.d.ts.map +1 -0
  88. package/dist/services/address-executor.js +202 -0
  89. package/dist/services/address-executor.js.map +1 -0
  90. package/dist/services/address-task-executor.d.ts +19 -0
  91. package/dist/services/address-task-executor.d.ts.map +1 -0
  92. package/dist/services/address-task-executor.js +736 -0
  93. package/dist/services/address-task-executor.js.map +1 -0
  94. package/dist/services/claude-cli-executor.d.ts +14 -0
  95. package/dist/services/claude-cli-executor.d.ts.map +1 -0
  96. package/dist/services/claude-cli-executor.js +241 -0
  97. package/dist/services/claude-cli-executor.js.map +1 -0
  98. package/dist/services/claude-executor.d.ts +14 -0
  99. package/dist/services/claude-executor.d.ts.map +1 -0
  100. package/dist/services/claude-executor.js +274 -0
  101. package/dist/services/claude-executor.js.map +1 -0
  102. package/dist/services/claude-planner.d.ts +15 -0
  103. package/dist/services/claude-planner.d.ts.map +1 -0
  104. package/dist/services/claude-planner.js +107 -0
  105. package/dist/services/claude-planner.js.map +1 -0
  106. package/dist/services/docker-orchestrator.d.ts +11 -0
  107. package/dist/services/docker-orchestrator.d.ts.map +1 -0
  108. package/dist/services/docker-orchestrator.js +85 -0
  109. package/dist/services/docker-orchestrator.js.map +1 -0
  110. package/dist/services/executor-factory.d.ts +14 -0
  111. package/dist/services/executor-factory.d.ts.map +1 -0
  112. package/dist/services/executor-factory.js +14 -0
  113. package/dist/services/executor-factory.js.map +1 -0
  114. package/dist/services/git-manager.d.ts +36 -0
  115. package/dist/services/git-manager.d.ts.map +1 -0
  116. package/dist/services/git-manager.js +728 -0
  117. package/dist/services/git-manager.js.map +1 -0
  118. package/dist/services/index.d.ts +9 -0
  119. package/dist/services/index.d.ts.map +1 -0
  120. package/dist/services/index.js +9 -0
  121. package/dist/services/index.js.map +1 -0
  122. package/dist/services/job-manager.d.ts +30 -0
  123. package/dist/services/job-manager.d.ts.map +1 -0
  124. package/dist/services/job-manager.js +337 -0
  125. package/dist/services/job-manager.js.map +1 -0
  126. package/dist/services/openai-service.d.ts +14 -0
  127. package/dist/services/openai-service.d.ts.map +1 -0
  128. package/dist/services/openai-service.js +186 -0
  129. package/dist/services/openai-service.js.map +1 -0
  130. package/dist/services/pr-service.d.ts +31 -0
  131. package/dist/services/pr-service.d.ts.map +1 -0
  132. package/dist/services/pr-service.js +291 -0
  133. package/dist/services/pr-service.js.map +1 -0
  134. package/dist/services/repository-manager.d.ts +12 -0
  135. package/dist/services/repository-manager.d.ts.map +1 -0
  136. package/dist/services/repository-manager.js +101 -0
  137. package/dist/services/repository-manager.js.map +1 -0
  138. package/dist/services/task-executor.d.ts +20 -0
  139. package/dist/services/task-executor.d.ts.map +1 -0
  140. package/dist/services/task-executor.js +717 -0
  141. package/dist/services/task-executor.js.map +1 -0
  142. package/dist/types/non-interactive-config.d.ts +28 -0
  143. package/dist/types/non-interactive-config.d.ts.map +1 -0
  144. package/dist/types/non-interactive-config.js +2 -0
  145. package/dist/types/non-interactive-config.js.map +1 -0
  146. package/dist/web-server.d.ts +16 -0
  147. package/dist/web-server.d.ts.map +1 -0
  148. package/dist/web-server.js +488 -0
  149. package/dist/web-server.js.map +1 -0
  150. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../src/services/task-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,OAAO,YAAY;IACf,UAAU,CAAa;IACvB,UAAU,GAAsB,IAAI,CAAC;IACrC,cAAc,GAA2B,IAAI,CAAC;IAC9C,aAAa,GAAyB,IAAI,CAAC;IAC3C,iBAAiB,CAAoB;IACrC,aAAa,CAAgB;IAC7B,UAAU,CAAS;IACnB,gBAAgB,CAAqB;IAE7C;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,8BAA8B,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;YAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAEtD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,6CAA6C;YAC7C,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,mEAAmE;gBACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1F,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;oBAChG,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;wBACtD;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,uBAAuB;4BAC7B,OAAO,EAAE,6DAA6D;4BACtE,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC,CAAC;oBAEH,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACN,oDAAoD;wBACpD,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC,CAAC;oBACpG,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,mCAAmC;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAEzD,kCAAkC;YAClC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;gBAClD,MAAM,eAAe,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC1D,CAAC;YAED,qBAAqB;YACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,0CAA0C;gBAC1C,IAAI,qBAAqB,GAAG,KAAK,CAAC;gBAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAEpD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBAChD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,kHAAkH;wBAC3H,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBACH,qBAAqB,GAAG,eAAe,CAAC;gBAExC,gDAAgD;gBAChD,IAAI,iBAAiB,GAAG,KAAK,CAAC;gBAC9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;wBAC9C;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,uDAAuD;4BAChE,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC,CAAC;oBACH,iBAAiB,GAAG,aAAa,CAAC;gBACpC,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAEtD,4BAA4B;gBAC5B,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,kCAAkC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBAE3B,IAAI,iBAAiB,EAAE,CAAC;4BACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;4BAExF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;4BACpD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gCAC9C;oCACE,IAAI,EAAE,SAAS;oCACf,IAAI,EAAE,eAAe;oCACrB,OAAO,EAAE,oBAAoB;oCAC7B,OAAO,EAAE,IAAI;iCACd;6BACF,CAAC,CAAC;4BAEH,IAAI,CAAC,aAAa,EAAE,CAAC;gCACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gCAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gCACjE,SAAS;4BACX,CAAC;wBACH,CAAC;wBAED,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBAE9E,yEAAyE;gBACzE,MAAM,aAAa,GAAa,EAAE,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7D,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;wBACvC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,mBAAmB;oBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC3C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAEpE,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,2CAA2C;wBAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;wBAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAChD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAEhB,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,6BAA6B;wBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;4BAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACvC,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;4BACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;4BAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;4BACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBACnH,CAAC,EAAE,IAAI,CAAC,CAAC;wBAET,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;wBAC5D,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAElB,gDAAgD;wBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;wBACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;wBAErF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC;4BAEpF,sCAAsC;4BACtC,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;4BAClD,MAAM,eAAe,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;4BAExD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;wBAC9E,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;YACH,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,MAAgB,EAAE,SAAoB;QAC7E,MAAM,YAAY,GAAW,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,6BAA6B;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtC,uCAAuC;YACvC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAElE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,kCAAkC;gBAClC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;gBAElC,wCAAwC;gBACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,WAAW,GAAG,eAAe,QAAQ,kBAAkB,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC1J,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,WAAW,IAAI,QAAQ,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;oBAClF,CAAC;oBAED,qDAAqD;oBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAE/G,0BAA0B;oBAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;oBACnF,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,IAAI,EAAE,CAAC;wBACT,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAU;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7D,IAAI,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAEzC,OAAO,GAAG,GAAG,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC3C,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YAE3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,GAAG,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACrE,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;YAErD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE9D,OAAO,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;YAE5D,oEAAoE;YACpE,IAAI,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,oBAAoB,GAAG,GAAG,IAAI,CAAC,WAAW,0CAA0C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9G,CAAC;YAED,+EAA+E;YAC/E,MAAM,aAAa,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;YAC/F,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAEnD,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACpE,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YACvD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAEvC,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC9F,OAAO,CAAC,OAAO,CAAC,6BAA6B,aAAa,EAAE,CAAC,CAAC;YAE9D,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,mDAAmD;YACnD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,iBAAiB,GAAG,CAAC,CAAC;YAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;YAE5B,OAAO,cAAc,GAAG,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9D,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;oBACnD,kEAAkE;oBAClE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;wBACzB,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC;yBAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC9B,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;oBACnD,CAAC;oBACD,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,cAAc,EAAE,CAAC;oBAEjB,MAAM,YAAY,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAE9F,6CAA6C;oBAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,cAAc,GAAG,iBAAiB,EAAE,CAAC;wBAC9E,OAAO,CAAC,IAAI,CAAC,mCAAmC,cAAc,IAAI,iBAAiB,GAAG,CAAC,CAAC;wBACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;wBAE3E,kDAAkD;wBAClD,MAAM,YAAY,GAAG,YAAY,CAAC;wBAElC,8CAA8C;wBAC9C,MAAM,SAAS,GAAG,gDAAgD,YAAY,qGAAqG,CAAC;wBAEpL,OAAO,GAAG,GAAG,CAAC,4CAA4C,CAAC,CAAC,KAAK,EAAE,CAAC;wBAEpE,IAAI,CAAC;4BACH,+BAA+B;4BAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;4BACzG,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;4BAEtD,gDAAgD;4BAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACzE,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAC1C,IAAI,CAAC,IAAI,EACT,GAAG,WAAW,kCAAkC,cAAc,SAAS,SAAS,CAAC,GAAG,EAAE,CACvF,CAAC;4BAEF,4CAA4C;4BAC5C,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC9C,CAAC;wBAAC,OAAO,QAAQ,EAAE,CAAC;4BAClB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;4BACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,CAAC,CAAC;4BACjE,MAAM,WAAW,CAAC,CAAC,8BAA8B;wBACnD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,iDAAiD;wBACjD,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,iBAAiB,2CAA2C,CAAC,CAAC;YAC1G,CAAC;YAED,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAE3C,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,8BAA8B,CAClF,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,YAAY,CACb,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAE5C,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;YAElD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAE/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACxC,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,QAAQ,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,0DAA0D;YAC1D,IAAI,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAa,EAAE,iBAA0B;QAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAEtE,IAAI,OAAO,GAAG,GAAG,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC;QACzE,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,SAA6B,CAAC;QAElC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC3C,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YAE3D,0CAA0C;YAC1C,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW;gBACtB,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAE9G,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YAErE,OAAO,GAAG,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACrE,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;YAErD,wCAAwC;YACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;YAED,uCAAuC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEtB,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAEnF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;wBAC9C;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,oBAAoB;4BAC7B,OAAO,EAAE,IAAI;yBACd;qBACF,CAAC,CAAC;oBAEH,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;wBACjE,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEtF,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC5D,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;gBAEzC,OAAO,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAE5D,oEAAoE;gBACpE,IAAI,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,oBAAoB,GAAG,GAAG,IAAI,CAAC,WAAW,0CAA0C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9G,CAAC;gBAED,yCAAyC;gBACzC,MAAM,aAAa,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC;gBACtD,oDAAoD;gBACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,oBAAoB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;gBAC1G,yCAAyC;gBACzC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC7B,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;gBAEnD,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpE,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBAExC,2DAA2D;gBAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;gBACvD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAEvC,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;oBACtD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;oBAC9F,OAAO,CAAC,OAAO,CAAC,6BAA6B,aAAa,EAAE,CAAC,CAAC;oBAE9D,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;oBAE/C,mDAAmD;oBACnD,IAAI,cAAc,GAAG,CAAC,CAAC;oBACvB,MAAM,iBAAiB,GAAG,CAAC,CAAC;oBAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;oBAE5B,OAAO,cAAc,GAAG,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC9D,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;4BACnD,kEAAkE;4BAClE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;gCACzB,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;4BACvC,CAAC;iCAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gCAC9B,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;4BACnD,CAAC;4BACD,eAAe,GAAG,IAAI,CAAC;wBACzB,CAAC;wBAAC,OAAO,WAAW,EAAE,CAAC;4BACrB,cAAc,EAAE,CAAC;4BAEjB,MAAM,YAAY,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BAE9F,6CAA6C;4BAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,cAAc,GAAG,iBAAiB,EAAE,CAAC;gCAC9E,OAAO,CAAC,IAAI,CAAC,mCAAmC,cAAc,IAAI,iBAAiB,GAAG,CAAC,CAAC;gCACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;gCAE3E,kDAAkD;gCAClD,MAAM,YAAY,GAAG,YAAY,CAAC;gCAElC,8CAA8C;gCAC9C,MAAM,SAAS,GAAG,gDAAgD,YAAY,qGAAqG,CAAC;gCAEpL,OAAO,GAAG,GAAG,CAAC,4CAA4C,CAAC,CAAC,KAAK,EAAE,CAAC;gCAEpE,IAAI,CAAC;oCACH,qEAAqE;oCACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;oCAClG,oBAAoB;oCACpB,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;oCAChC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;oCAEtD,gDAAgD;oCAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCACzE,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAC1C,IAAI,CAAC,IAAI,EACT,GAAG,WAAW,kCAAkC,cAAc,SAAS,SAAS,CAAC,GAAG,EAAE,CACvF,CAAC;oCAEF,4CAA4C;oCAC5C,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;gCAC9C,CAAC;gCAAC,OAAO,QAAQ,EAAE,CAAC;oCAClB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;oCACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACjE,MAAM,WAAW,CAAC,CAAC,8BAA8B;gCACnD,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,iDAAiD;gCACjD,MAAM,WAAW,CAAC;4BACpB,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,eAAe,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,iBAAiB,2CAA2C,CAAC,CAAC;oBAC1G,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,mDAAmD;YACnD,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAE3C,6CAA6C;YAC7C,OAAO,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,MAAM,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,MAAM,iBAAiB,GAAG,aAAa,KAAK,CAAC,MAAM,cAAc,mBAAmB,EAAE,CAAC;YAEvF,uCAAuC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEvE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,8BAA8B,CAClF,iBAAiB,EACjB,SAAS,EACT,eAAe,CAChB,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAE5C,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;YAElD,yCAAyC;YACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,kCAAkC,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7E,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,0DAA0D;YAC1D,IAAI,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,MAA4B;QAC9D,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,8BAA8B,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;YAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAEtD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,wCAAwC;YACxC,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,gCAAgC;YAChC,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC;YAEnD,6DAA6D;YAC7D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACrD,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,uBAAuB;YACvB,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACrK,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjF,MAAM,KAAK,GAAW,EAAE,CAAC;YAEzB,KAAK,MAAM,eAAe,IAAI,UAAU,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;gBACrF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;YAExE,MAAM,qBAAqB,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC;YAE9D,qCAAqC;YACrC,IAAI,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAE9E,kBAAkB;YAClB,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACvC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC3C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEpE,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,2CAA2C;oBAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAChD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEhB,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,6BAA6B;oBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;wBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACvC,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;wBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;wBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;wBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnH,CAAC,EAAE,IAAI,CAAC,CAAC;oBAET,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC5D,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAElB,gDAAgD;oBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;oBACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;oBAErF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC;wBAEpF,sCAAsC;wBACtC,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;wBAClD,MAAM,eAAe,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;wBAExD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;oBAC9E,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ export interface NonInteractiveConfig {
2
+ /**
3
+ * Task descriptions - can be a single task or multiple tasks
4
+ */
5
+ tasks: string[];
6
+ /**
7
+ * If a single task is provided, whether to generate subtasks from it
8
+ * Only applicable when tasks.length === 1
9
+ */
10
+ generateSubtasks?: boolean;
11
+ /**
12
+ * PR strategy when multiple tasks are executed
13
+ * - 'single': Create one PR for all tasks
14
+ * - 'multiple': Create one PR per task (default)
15
+ */
16
+ prStrategy?: 'single' | 'multiple';
17
+ /**
18
+ * After completing tasks, wait 30 minutes for PR reviews and automatically address comments
19
+ * Default: false
20
+ */
21
+ waitForComments?: boolean;
22
+ /**
23
+ * Optional: Repository path to execute tasks in
24
+ * Defaults to current working directory
25
+ */
26
+ workingDir?: string;
27
+ }
28
+ //# sourceMappingURL=non-interactive-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-interactive-config.d.ts","sourceRoot":"","sources":["../../src/types/non-interactive-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEnC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=non-interactive-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-interactive-config.js","sourceRoot":"","sources":["../../src/types/non-interactive-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export declare class WebServer {
2
+ private app;
3
+ private server;
4
+ private dbManager;
5
+ private port;
6
+ constructor(port?: number);
7
+ private setupMiddleware;
8
+ private setupRoutes;
9
+ private getJobs;
10
+ private getJobTasks;
11
+ private getMainHTML;
12
+ start(): Promise<void>;
13
+ stop(): Promise<void>;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=web-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAKA,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,GAAE,MAAa;IAQ/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;YAWL,OAAO;YAeP,WAAW;IA2BzB,OAAO,CAAC,WAAW;IA0YZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}
@@ -0,0 +1,488 @@
1
+ import express from 'express';
2
+ import { DatabaseManager } from './database.js';
3
+ export class WebServer {
4
+ app;
5
+ server = null;
6
+ dbManager;
7
+ port;
8
+ constructor(port = 3000) {
9
+ this.app = express();
10
+ this.dbManager = new DatabaseManager();
11
+ this.port = port;
12
+ this.setupMiddleware();
13
+ this.setupRoutes();
14
+ }
15
+ setupMiddleware() {
16
+ this.app.use(express.json());
17
+ this.app.use(express.static('public'));
18
+ }
19
+ setupRoutes() {
20
+ // API Routes
21
+ this.app.get('/api/jobs', this.getJobs.bind(this));
22
+ this.app.get('/api/jobs/:jobId/tasks', this.getJobTasks.bind(this));
23
+ // Serve the main HTML page for all non-API routes
24
+ this.app.get('/', (req, res) => {
25
+ res.send(this.getMainHTML());
26
+ });
27
+ }
28
+ async getJobs(req, res) {
29
+ try {
30
+ const db = this.dbManager.getKysely();
31
+ const jobs = await db.selectFrom('jobs')
32
+ .selectAll()
33
+ .orderBy('created_at', 'desc')
34
+ .execute();
35
+ res.json(jobs);
36
+ }
37
+ catch (error) {
38
+ console.error('Error fetching jobs:', error);
39
+ res.status(500).json({ error: 'Failed to fetch jobs' });
40
+ }
41
+ }
42
+ async getJobTasks(req, res) {
43
+ try {
44
+ const { jobId } = req.params;
45
+ const db = this.dbManager.getKysely();
46
+ const job = await db.selectFrom('jobs')
47
+ .selectAll()
48
+ .where('uuid', '=', jobId)
49
+ .executeTakeFirst();
50
+ if (!job) {
51
+ res.status(404).json({ error: 'Job not found' });
52
+ return;
53
+ }
54
+ const tasks = await db.selectFrom('tasks')
55
+ .selectAll()
56
+ .where('job_uuid', '=', jobId)
57
+ .execute();
58
+ res.json({ job, tasks });
59
+ }
60
+ catch (error) {
61
+ console.error('Error fetching job tasks:', error);
62
+ res.status(500).json({ error: 'Failed to fetch job tasks' });
63
+ }
64
+ }
65
+ getMainHTML() {
66
+ return `<!DOCTYPE html>
67
+ <html lang="en">
68
+ <head>
69
+ <meta charset="UTF-8">
70
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
71
+ <title>Ivan - Job Dashboard</title>
72
+ <style>
73
+ * {
74
+ margin: 0;
75
+ padding: 0;
76
+ box-sizing: border-box;
77
+ }
78
+
79
+ body {
80
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
81
+ line-height: 1.6;
82
+ color: #333;
83
+ background: #f5f7fa;
84
+ }
85
+
86
+ .container {
87
+ max-width: 1200px;
88
+ margin: 0 auto;
89
+ padding: 20px;
90
+ }
91
+
92
+ .header {
93
+ background: white;
94
+ padding: 20px 30px;
95
+ border-radius: 12px;
96
+ box-shadow: 0 2px 10px rgba(0,0,0,0.05);
97
+ margin-bottom: 30px;
98
+ }
99
+
100
+ .header h1 {
101
+ color: #2c3e50;
102
+ font-size: 2rem;
103
+ margin-bottom: 10px;
104
+ }
105
+
106
+ .header p {
107
+ color: #7f8c8d;
108
+ font-size: 1.1rem;
109
+ }
110
+
111
+ .main-content {
112
+ display: flex;
113
+ gap: 30px;
114
+ }
115
+
116
+ .jobs-list {
117
+ flex: 1;
118
+ background: white;
119
+ border-radius: 12px;
120
+ box-shadow: 0 2px 10px rgba(0,0,0,0.05);
121
+ overflow: hidden;
122
+ }
123
+
124
+ .job-detail {
125
+ flex: 2;
126
+ background: white;
127
+ border-radius: 12px;
128
+ box-shadow: 0 2px 10px rgba(0,0,0,0.05);
129
+ overflow: hidden;
130
+ display: none;
131
+ }
132
+
133
+ .section-header {
134
+ background: #3498db;
135
+ color: white;
136
+ padding: 20px 30px;
137
+ font-size: 1.2rem;
138
+ font-weight: 600;
139
+ }
140
+
141
+ .job-item {
142
+ padding: 20px 30px;
143
+ border-bottom: 1px solid #ecf0f1;
144
+ cursor: pointer;
145
+ transition: background 0.2s ease;
146
+ }
147
+
148
+ .job-item:hover {
149
+ background: #f8f9fa;
150
+ }
151
+
152
+ .job-item.active {
153
+ background: #e3f2fd;
154
+ border-left: 4px solid #3498db;
155
+ }
156
+
157
+ .job-item:last-child {
158
+ border-bottom: none;
159
+ }
160
+
161
+ .job-title {
162
+ font-weight: 600;
163
+ color: #2c3e50;
164
+ margin-bottom: 5px;
165
+ }
166
+
167
+ .job-meta {
168
+ font-size: 0.9rem;
169
+ color: #7f8c8d;
170
+ }
171
+
172
+ .job-detail-content {
173
+ display: flex;
174
+ height: 100%;
175
+ }
176
+
177
+ .tasks-sidebar {
178
+ width: 350px;
179
+ border-right: 1px solid #ecf0f1;
180
+ overflow-y: auto;
181
+ }
182
+
183
+ .task-content {
184
+ flex: 1;
185
+ overflow-y: auto;
186
+ padding: 30px;
187
+ }
188
+
189
+ .task-item {
190
+ padding: 15px 20px;
191
+ border-bottom: 1px solid #ecf0f1;
192
+ cursor: pointer;
193
+ transition: background 0.2s ease;
194
+ }
195
+
196
+ .task-item:hover {
197
+ background: #f8f9fa;
198
+ }
199
+
200
+ .task-item.active {
201
+ background: #e8f5e8;
202
+ border-left: 4px solid #27ae60;
203
+ }
204
+
205
+ .task-title {
206
+ font-weight: 500;
207
+ color: #2c3e50;
208
+ margin-bottom: 5px;
209
+ }
210
+
211
+ .task-status {
212
+ font-size: 0.8rem;
213
+ padding: 2px 8px;
214
+ border-radius: 12px;
215
+ font-weight: 500;
216
+ }
217
+
218
+ .status-not_started {
219
+ background: #ffeaa7;
220
+ color: #d68910;
221
+ }
222
+
223
+ .status-active {
224
+ background: #74b9ff;
225
+ color: #0984e3;
226
+ }
227
+
228
+ .status-completed {
229
+ background: #00b894;
230
+ color: white;
231
+ }
232
+
233
+ .task-detail-header {
234
+ border-bottom: 1px solid #ecf0f1;
235
+ padding-bottom: 20px;
236
+ margin-bottom: 20px;
237
+ }
238
+
239
+ .task-detail-title {
240
+ font-size: 1.3rem;
241
+ color: #2c3e50;
242
+ margin-bottom: 10px;
243
+ }
244
+
245
+ .pr-link {
246
+ display: inline-block;
247
+ background: #3498db;
248
+ color: white;
249
+ padding: 8px 16px;
250
+ border-radius: 6px;
251
+ text-decoration: none;
252
+ font-size: 0.9rem;
253
+ margin-top: 10px;
254
+ }
255
+
256
+ .pr-link:hover {
257
+ background: #2980b9;
258
+ }
259
+
260
+ .execution-log {
261
+ background: #2c3e50;
262
+ color: #ecf0f1;
263
+ padding: 20px;
264
+ border-radius: 8px;
265
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
266
+ font-size: 0.9rem;
267
+ line-height: 1.4;
268
+ white-space: pre-wrap;
269
+ overflow-x: auto;
270
+ max-height: 500px;
271
+ overflow-y: auto;
272
+ }
273
+
274
+ .empty-state {
275
+ padding: 60px 30px;
276
+ text-align: center;
277
+ color: #7f8c8d;
278
+ }
279
+
280
+ .empty-state h3 {
281
+ margin-bottom: 10px;
282
+ color: #95a5a6;
283
+ }
284
+
285
+ .loading {
286
+ padding: 60px 30px;
287
+ text-align: center;
288
+ color: #7f8c8d;
289
+ }
290
+
291
+ @media (max-width: 768px) {
292
+ .main-content {
293
+ flex-direction: column;
294
+ height: auto;
295
+ }
296
+
297
+ .job-detail-content {
298
+ flex-direction: column;
299
+ }
300
+
301
+ .tasks-sidebar {
302
+ width: 100%;
303
+ max-height: 300px;
304
+ }
305
+ }
306
+ </style>
307
+ </head>
308
+ <body>
309
+ <div class="container">
310
+ <div class="main-content">
311
+ <div class="jobs-list">
312
+ <div class="section-header">
313
+ Jobs
314
+ </div>
315
+ <div id="jobs-container">
316
+ <div class="loading">Loading jobs...</div>
317
+ </div>
318
+ </div>
319
+
320
+ <div class="job-detail" id="job-detail">
321
+ <div class="section-header">
322
+ <span id="job-detail-title">Job Details</span>
323
+ </div>
324
+ <div class="job-detail-content">
325
+ <div class="tasks-sidebar">
326
+ <div id="tasks-container">
327
+ <div class="empty-state">
328
+ <h3>Select a job to view tasks</h3>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ <div class="task-content">
333
+ <div id="task-detail-container">
334
+ <div class="empty-state">
335
+ <h3>Select a task to view details</h3>
336
+ <p>Choose a task from the sidebar to see its execution log and details.</p>
337
+ </div>
338
+ </div>
339
+ </div>
340
+ </div>
341
+ </div>
342
+ </div>
343
+ </div>
344
+
345
+ <script>
346
+ let jobs = [];
347
+ let currentJob = null;
348
+ let currentTasks = [];
349
+
350
+ // Load jobs on page load
351
+ loadJobs();
352
+
353
+ async function loadJobs() {
354
+ try {
355
+ const response = await fetch('/api/jobs');
356
+ jobs = await response.json();
357
+ renderJobs();
358
+ } catch (error) {
359
+ console.error('Failed to load jobs:', error);
360
+ document.getElementById('jobs-container').innerHTML =
361
+ '<div class="empty-state"><h3>Failed to load jobs</h3><p>Please refresh the page</p></div>';
362
+ }
363
+ }
364
+
365
+ function renderJobs() {
366
+ const container = document.getElementById('jobs-container');
367
+
368
+ if (jobs.length === 0) {
369
+ container.innerHTML = '<div class="empty-state"><h3>No jobs found</h3><p>Create some tasks with Ivan CLI to see them here.</p></div>';
370
+ return;
371
+ }
372
+
373
+ container.innerHTML = jobs.map(job => {
374
+ const date = new Date(job.created_at).toLocaleString();
375
+ return \`
376
+ <div class="job-item" onclick="selectJob('\${job.uuid}')">
377
+ <div class="job-title">\${job.description}</div>
378
+ <div class="job-meta">
379
+ <div>Created: \${date}</div>
380
+ <div>Directory: \${job.directory}</div>
381
+ </div>
382
+ </div>
383
+ \`;
384
+ }).join('');
385
+ }
386
+
387
+ async function selectJob(jobId) {
388
+ // Update job item selection
389
+ document.querySelectorAll('.job-item').forEach(item => item.classList.remove('active'));
390
+ event.target.closest('.job-item').classList.add('active');
391
+
392
+ try {
393
+ const response = await fetch(\`/api/jobs/\${jobId}/tasks\`);
394
+ const data = await response.json();
395
+
396
+ currentJob = data.job;
397
+ currentTasks = data.tasks;
398
+
399
+ document.getElementById('job-detail-title').textContent = \`\${data.job.description}\`;
400
+ document.getElementById('job-detail').style.display = 'block';
401
+
402
+ renderTasks();
403
+
404
+ // Clear task detail
405
+ document.getElementById('task-detail-container').innerHTML =
406
+ '<div class="empty-state"><h3>Select a task to view details</h3><p>Choose a task from the sidebar to see its execution log and details.</p></div>';
407
+
408
+ // Scroll to top of page
409
+ window.scrollTo({ top: 0, behavior: 'smooth' });
410
+
411
+ } catch (error) {
412
+ console.error('Failed to load job tasks:', error);
413
+ }
414
+ }
415
+
416
+ function renderTasks() {
417
+ const container = document.getElementById('tasks-container');
418
+
419
+ if (currentTasks.length === 0) {
420
+ container.innerHTML = '<div class="empty-state"><h3>No tasks found</h3></div>';
421
+ return;
422
+ }
423
+
424
+ container.innerHTML = currentTasks.map(task => \`
425
+ <div class="task-item" onclick="selectTask('\${task.uuid}')">
426
+ <div class="task-title">\${task.description}</div>
427
+ <div class="task-status status-\${task.status}">\${task.status.replace('_', ' ')}</div>
428
+ </div>
429
+ \`).join('');
430
+ }
431
+
432
+ function selectTask(taskId) {
433
+ // Update task item selection
434
+ document.querySelectorAll('.task-item').forEach(item => item.classList.remove('active'));
435
+ event.target.closest('.task-item').classList.add('active');
436
+
437
+ const task = currentTasks.find(t => t.uuid === taskId);
438
+ if (!task) return;
439
+
440
+ const container = document.getElementById('task-detail-container');
441
+
442
+ container.innerHTML = \`
443
+ <div class="task-detail-header">
444
+ <div class="task-detail-title">\${task.description}</div>
445
+ <div class="task-status status-\${task.status}">\${task.status.replace('_', ' ')}</div>
446
+ \${task.pr_link ? \`<a href="\${task.pr_link}" target="_blank" class="pr-link">View Pull Request</a>\` : ''}
447
+ </div>
448
+ \${task.execution_log ? \`
449
+ <h3 style="margin-bottom: 15px; color: #2c3e50;">Execution Log</h3>
450
+ <div class="execution-log">\${task.execution_log}</div>
451
+ \` : '<div class="empty-state"><h3>No execution log</h3><p>This task hasn\\'t been executed yet or no log was recorded.</p></div>'}
452
+ \`;
453
+ }
454
+ </script>
455
+ </body>
456
+ </html>`;
457
+ }
458
+ start() {
459
+ return new Promise((resolve) => {
460
+ this.server = this.app.listen(this.port, () => {
461
+ console.log(`🌐 Ivan web server running at http://localhost:${this.port}`);
462
+ resolve();
463
+ });
464
+ });
465
+ }
466
+ stop() {
467
+ return new Promise((resolve, reject) => {
468
+ if (!this.server) {
469
+ resolve();
470
+ return;
471
+ }
472
+ this.server.close((err) => {
473
+ if (err) {
474
+ reject(err);
475
+ }
476
+ else {
477
+ this.server = null;
478
+ resolve();
479
+ }
480
+ });
481
+ });
482
+ }
483
+ async close() {
484
+ await this.stop();
485
+ this.dbManager.close();
486
+ }
487
+ }
488
+ //# sourceMappingURL=web-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-server.js","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"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"}