@qelos/aidev 0.5.0 → 0.5.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 (99) hide show
  1. package/.env.aidev.example +8 -0
  2. package/README.md +137 -2
  3. package/dist/cli.js +14 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/accepted.d.ts +7 -2
  6. package/dist/commands/accepted.d.ts.map +1 -1
  7. package/dist/commands/accepted.js +17 -2
  8. package/dist/commands/accepted.js.map +1 -1
  9. package/dist/commands/help.d.ts.map +1 -1
  10. package/dist/commands/help.js +13 -0
  11. package/dist/commands/help.js.map +1 -1
  12. package/dist/commands/run.d.ts +16 -1
  13. package/dist/commands/run.d.ts.map +1 -1
  14. package/dist/commands/run.js +408 -20
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/commands/tasks.d.ts +1 -0
  17. package/dist/commands/tasks.d.ts.map +1 -1
  18. package/dist/commands/tasks.js +29 -0
  19. package/dist/commands/tasks.js.map +1 -1
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +6 -0
  22. package/dist/config.js.map +1 -1
  23. package/dist/github.d.ts +2 -0
  24. package/dist/github.d.ts.map +1 -1
  25. package/dist/github.js +28 -0
  26. package/dist/github.js.map +1 -1
  27. package/dist/hooks.d.ts +16 -1
  28. package/dist/hooks.d.ts.map +1 -1
  29. package/dist/hooks.js +1 -0
  30. package/dist/hooks.js.map +1 -1
  31. package/dist/providers/linear.js +1 -1
  32. package/dist/providers/linear.js.map +1 -1
  33. package/dist/sessions.d.ts +20 -0
  34. package/dist/sessions.d.ts.map +1 -0
  35. package/dist/sessions.js +171 -0
  36. package/dist/sessions.js.map +1 -0
  37. package/dist/types.d.ts +2 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/dist/__tests__/ai-runners.test.d.ts +0 -2
  41. package/dist/__tests__/ai-runners.test.d.ts.map +0 -1
  42. package/dist/__tests__/ai-runners.test.js +0 -367
  43. package/dist/__tests__/ai-runners.test.js.map +0 -1
  44. package/dist/__tests__/clickup-format.test.d.ts +0 -2
  45. package/dist/__tests__/clickup-format.test.d.ts.map +0 -1
  46. package/dist/__tests__/clickup-format.test.js +0 -256
  47. package/dist/__tests__/clickup-format.test.js.map +0 -1
  48. package/dist/__tests__/config.test.d.ts +0 -2
  49. package/dist/__tests__/config.test.d.ts.map +0 -1
  50. package/dist/__tests__/config.test.js +0 -418
  51. package/dist/__tests__/config.test.js.map +0 -1
  52. package/dist/__tests__/git.test.d.ts +0 -2
  53. package/dist/__tests__/git.test.d.ts.map +0 -1
  54. package/dist/__tests__/git.test.js +0 -697
  55. package/dist/__tests__/git.test.js.map +0 -1
  56. package/dist/__tests__/github.test.d.ts +0 -2
  57. package/dist/__tests__/github.test.d.ts.map +0 -1
  58. package/dist/__tests__/github.test.js +0 -209
  59. package/dist/__tests__/github.test.js.map +0 -1
  60. package/dist/__tests__/help.test.d.ts +0 -2
  61. package/dist/__tests__/help.test.d.ts.map +0 -1
  62. package/dist/__tests__/help.test.js +0 -34
  63. package/dist/__tests__/help.test.js.map +0 -1
  64. package/dist/__tests__/hooks.test.d.ts +0 -2
  65. package/dist/__tests__/hooks.test.d.ts.map +0 -1
  66. package/dist/__tests__/hooks.test.js +0 -333
  67. package/dist/__tests__/hooks.test.js.map +0 -1
  68. package/dist/__tests__/init.test.d.ts +0 -2
  69. package/dist/__tests__/init.test.d.ts.map +0 -1
  70. package/dist/__tests__/init.test.js +0 -596
  71. package/dist/__tests__/init.test.js.map +0 -1
  72. package/dist/__tests__/local-provider.test.d.ts +0 -2
  73. package/dist/__tests__/local-provider.test.d.ts.map +0 -1
  74. package/dist/__tests__/local-provider.test.js +0 -631
  75. package/dist/__tests__/local-provider.test.js.map +0 -1
  76. package/dist/__tests__/lockfile.test.d.ts +0 -2
  77. package/dist/__tests__/lockfile.test.d.ts.map +0 -1
  78. package/dist/__tests__/lockfile.test.js +0 -144
  79. package/dist/__tests__/lockfile.test.js.map +0 -1
  80. package/dist/__tests__/permissions.test.d.ts +0 -2
  81. package/dist/__tests__/permissions.test.d.ts.map +0 -1
  82. package/dist/__tests__/permissions.test.js +0 -151
  83. package/dist/__tests__/permissions.test.js.map +0 -1
  84. package/dist/__tests__/platform.test.d.ts +0 -2
  85. package/dist/__tests__/platform.test.d.ts.map +0 -1
  86. package/dist/__tests__/platform.test.js +0 -329
  87. package/dist/__tests__/platform.test.js.map +0 -1
  88. package/dist/__tests__/providers.test.d.ts +0 -2
  89. package/dist/__tests__/providers.test.d.ts.map +0 -1
  90. package/dist/__tests__/providers.test.js +0 -925
  91. package/dist/__tests__/providers.test.js.map +0 -1
  92. package/dist/__tests__/run.test.d.ts +0 -2
  93. package/dist/__tests__/run.test.d.ts.map +0 -1
  94. package/dist/__tests__/run.test.js +0 -529
  95. package/dist/__tests__/run.test.js.map +0 -1
  96. package/dist/__tests__/schedule.test.d.ts +0 -2
  97. package/dist/__tests__/schedule.test.d.ts.map +0 -1
  98. package/dist/__tests__/schedule.test.js +0 -258
  99. package/dist/__tests__/schedule.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../../src/__tests__/providers.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAClC,yCAAoD;AACpD,gEAAwC;AACxC,yCAAiC;AAEjC,kDAAuD;AACvD,4CAAiD;AACjD,gDAAqD;AACrD,gDAAqD;AACrD,gDAAqD;AACrD,gDAAqD;AAErD,MAAM,iBAAiB,GAAG;IACxB,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,EAAE;CACK,CAAC;AAEvB,MAAM,cAAc,GAAG;IACrB,WAAW,EAAE,+BAA+B;IAC5C,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,EAAE;CACK,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,OAAO;IACpB,mBAAmB,EAAE,SAAS;IAC9B,oBAAoB,EAAE,WAAW;IACjC,WAAW,EAAE,EAAE;CACK,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,cAAc,EAAE,YAAY;IAC5B,aAAa,EAAE,OAAO;IACtB,oBAAoB,EAAE,QAAQ;IAC9B,aAAa,EAAE,QAAQ;IACvB,oBAAoB,EAAE,eAAe;IACrC,qBAAqB,EAAE,MAAM;CACT,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,kCAAkC;IACpD,oBAAoB,EAAE,QAAQ;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,oBAAoB,EAAE,QAAQ;CACV,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,OAAO;IACpB,cAAc,EAAE,OAAO;IACvB,iBAAiB,EAAE,SAAS;IAC5B,oBAAoB,EAAE,OAAO;IAC7B,kBAAkB,EAAE,WAAW;IAC/B,gBAAgB,EAAE,MAAM;IACxB,mBAAmB,EAAE,SAAS;IAC9B,oBAAoB,EAAE,QAAQ;CACV,CAAC;AAEvB,SAAS,YAAY,CAAC,IAAa;IACjC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACtC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACtB,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACtB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC5B,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,EAAkC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiB,EAAE,cAAyB,EAAE;IAC3E,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACvC,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAEhF,IAAA,oBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,IAAkB,EAAE,EAAE;gBAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrC,OAAO,YAAY,CAAC;wBAClB,KAAK,EAAE;4BACL;gCACE,EAAE,EAAE,OAAO;gCACX,IAAI,EAAE,gBAAgB;gCACtB,WAAW,EAAE,iCAAiC;gCAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gCAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;gCACrB,GAAG,EAAE,iCAAiC;gCACtC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6BAC1B;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,OAAO,YAAY,CAAC;wBAClB,WAAW,EAAE;4BACX;gCACE,EAAE,EAAE,MAAM;gCACV,KAAK,EAAE,kBAAkB;gCACzB,GAAG,EAAE,sCAAsC;6BAC5C;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,gBAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,OAAkC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC/H,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;YACxD,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,gDAAgD,CAAC,CAAC;YACrF,gBAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,WAAW,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrC,WAAW,GAAG,GAAG,CAAC;oBAClB,OAAO,YAAY,CAAC;wBAClB,KAAK,EAAE;4BACL;gCACE,EAAE,EAAE,OAAO;gCACX,IAAI,EAAE,cAAc;gCACpB,WAAW,EAAE,2BAA2B;gCACxC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gCAC1B,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;gCACrB,GAAG,EAAE,iCAAiC;gCACtC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;6BAC3B;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,OAAO,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC;gBACnC,GAAG,iBAAiB;gBACpB,UAAU,EAAE,GAAG;aACK,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC5C,gDAAgD;YAChD,gBAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,2CAA2C,CAAC,CAAC;YAC5F,gBAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,2CAA2C,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,SAAS,CAAC;YACR,QAAQ,EAAE;gBACR,+BAA+B;gBAC/B,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACzG,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACtG,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACzH;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC,CAAC,eAAe;QACjF,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAkB,cAAc;IACnF,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,SAAS,CAAC;YACR,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACvG;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,SAAS,CAAC;YACR,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,GAAG;oBACP,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,EAAE;wBAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;qBAClD;oBACD,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE;oBACjC,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,gBAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,SAAS,CAAC;YACR,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC5F;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,kFAAkF;QAClF,0EAA0E;QAC1E,SAAS,CAAC;YACR,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1G,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC5G,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACxH,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,iCAAiC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACzH,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACzH;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,gBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,IAAA,oBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,SAAS,UAAU,CAAC,IAAY;QAC9B,OAAO;YACL,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACpE,CAAC;IACJ,CAAC;IAED,IAAA,cAAE,EAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,qBAAqB,CAAC;YACpB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;SACrI,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,qBAAqB,CAAC;YACpB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;YACvI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;YACvI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;SACpI,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAE,eAAe;QACpE,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAK,cAAc;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,qBAAqB,CAAC;YACpB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,8BAA8B,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;YACnJ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;SACxI,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,gBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACvC,OAAO,YAAY,CAAC;wBAClB,MAAM,EAAE;4BACN,UAAU,EAAE;gCACV;oCACE,EAAE,EAAE,KAAK;oCACT,QAAQ,EAAE,YAAY;oCACtB,OAAO,EAAE,iEAAiE;iCAC3E;6BACF;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7B,OAAO,YAAY,CAAC;wBAClB,QAAQ,EAAE;4BACR;gCACE,EAAE,EAAE,GAAG;gCACP,IAAI,EAAE;oCACJ,IAAI,EAAE,KAAK;oCACX,OAAO,EAAE,CAAC;oCACV,OAAO,EAAE;wCACP;4CACE,IAAI,EAAE,WAAW;4CACjB,OAAO,EAAE;gDACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;gDACzC;oDACE,IAAI,EAAE,MAAM;oDACZ,IAAI,EAAE,WAAW;oDACjB,KAAK,EAAE;wDACL;4DACE,IAAI,EAAE,MAAM;4DACZ,KAAK,EAAE;gEACL,IAAI,EAAE,iEAAiE;6DACxE;yDACF;qDACF;iDACF;6CACF;yCACF;qCACF;iCACF;gCACD,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;gCACjD,OAAO,EAAE,0BAA0B;6BACpC;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,8CAA8C,CAAC,CAAC;YAC/E,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;YAC3E,gBAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,WAAW,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,WAAW,GAAG,GAAG,CAAC;oBAClB,OAAO,YAAY,CAAC;wBAClB,MAAM,EAAE;4BACN;gCACE,EAAE,EAAE,MAAM;gCACV,GAAG,EAAE,QAAQ;gCACb,MAAM,EAAE;oCACN,OAAO,EAAE,iBAAiB;oCAC1B,WAAW,EAAE,IAAI;oCACjB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;oCACxB,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;oCACrB,MAAM,EAAE,EAAE;oCACV,IAAI,EAAE,qDAAqD;oCAC3D,UAAU,EAAE,EAAE;iCACf;6BACF;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC;gBAChC,GAAG,cAAc;gBACjB,SAAS,EAAE,GAAG;aACM,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACpC,+CAA+C;YAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACnD,gBAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,sDAAsD,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,OAAO,YAAY,CAAC;wBAClB,MAAM,EAAE;4BACN;gCACE,EAAE,EAAE,MAAM;gCACV,GAAG,EAAE,QAAQ;gCACb,MAAM,EAAE;oCACN,OAAO,EAAE,uBAAuB;oCAChC,WAAW,EAAE;wCACX,IAAI,EAAE,KAAK;wCACX,OAAO,EAAE,CAAC;wCACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;qCAC9F;oCACD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;oCACxB,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;oCACrB,MAAM,EAAE,CAAC,OAAO,CAAC;oCACjB,IAAI,EAAE,qDAAqD;oCAC3D,UAAU,EAAE;wCACV;4CACE,EAAE,EAAE,KAAK;4CACT,QAAQ,EAAE,YAAY;4CACtB,OAAO,EAAE,iEAAiE;yCAC3E;qCACF;iCACF;6BACF;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;YACxD,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;YAC/E,gBAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAE/E,IAAA,oBAAQ,EAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,IAAI,cAAc,GAA4B,EAAE,CAAC;QACjD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,IAAkB,EAAE,EAAE;YAC1F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;iBACxF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;gBAC9C,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,KAAK,EAAE;gCACL;oCACE,EAAE,EAAE,cAAc;oCAClB,UAAU,EAAE,QAAQ;oCACpB,KAAK,EAAE,eAAe;oCACtB,WAAW,EAAE,qCAAqC;oCAClD,GAAG,EAAE,qCAAqC;oCAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oCACvD,QAAQ,EAAE,CAAC;oCACX,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;iCACtB;6BACF;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC;YAClC,GAAG,gBAAgB;YACnB,WAAW,EAAE,GAAG;SACI,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpC,yCAAyC;QACzC,gBAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,oDAAoD,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,IAAkB,EAAE,EAAE;YAC1F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;iBAC1I,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,KAAK,EAAE;gCACL;oCACE,EAAE,EAAE,cAAc;oCAClB,UAAU,EAAE,QAAQ;oCACpB,KAAK,EAAE,WAAW;oCAClB,WAAW,EAAE,qBAAqB;oCAClC,GAAG,EAAE,qCAAqC;oCAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oCACvD,QAAQ,EAAE,CAAC;oCACX,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;iCACvC;6BACF;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC1D,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;QAClE,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,IAAkB,EAAE,EAAE;YAC1F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBACzE,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE;wBACJ,KAAK,EAAE;4BACL,QAAQ,EAAE;gCACR,KAAK,EAAE;oCACL,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE;oCAC9G,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE;iCAC/G;6BACF;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACnD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACjD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,IAAA,oBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAA8B,EAAE,IAAkB,EAAE,EAAE;YAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7D,OAAO,YAAY,CAAC;oBAClB,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN;gCACE,UAAU,EAAE;oCACV,MAAM,EAAE,IAAI;oCACZ,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,MAAM;4CACV,IAAI,EAAE,UAAU;4CAChB,GAAG,EAAE,qDAAqD;4CAC1D,WAAW,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;4CAC5C,aAAa,EAAE;gDACb,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE;6CAC5E;yCACF;wCACD;4CACE,EAAE,EAAE,MAAM;4CACV,IAAI,EAAE,UAAU;4CAChB,GAAG,EAAE,qDAAqD;4CAC1D,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;4CAChC,aAAa,EAAE;gDACb,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;6CAC1D;yCACF;wCACD;4CACE,EAAE,EAAE,MAAM;4CACV,IAAI,EAAE,YAAY;4CAClB,GAAG,EAAE,EAAE;4CACP,WAAW,EAAE,EAAE;4CACf,aAAa,EAAE;gDACb,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;6CAC7C;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAC1C,YAAY,CAAC;YACX,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE;4BACP,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;4BAClI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;yBACnI;qBACF;iBACF;aACF;SACF,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEpD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAE/E,IAAA,oBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,IAAkB,EAAE,EAAE;YAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBACzG,OAAO,YAAY,CAAC;oBAClB,EAAE,EAAE,kCAAkC;oBACtC,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;wBACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC3B;iBACF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO,YAAY,CAAC;oBAClB,OAAO,EAAE;wBACP;4BACE,EAAE,EAAE,sCAAsC;4BAC1C,GAAG,EAAE,oDAAoD;4BACzD,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE;gCAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gCACvC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,EAAE;6BAC7D;yBACF;wBACD;4BACE,EAAE,EAAE,sCAAsC;4BAC1C,GAAG,EAAE,4BAA4B;4BACjC,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE;gCAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;6BACvC;yBACF;qBACF;oBACD,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC9D,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACnD,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;QACjF,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAE/E,IAAA,oBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;oBAClC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;iBACxC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB;wBACE,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,gCAAgC;wBACrC,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,CAAC,WAAW,CAAC;wBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBACtC;oBACD;wBACE,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,gCAAgC;wBACrC,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,CAAC,OAAO,CAAC;wBACpB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBACtC;oBACD;wBACE,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,gCAAgC;wBACrC,MAAM,EAAE,YAAY;wBACpB,SAAS,EAAE,CAAC,WAAW,CAAC;wBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBACtC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAC7C,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;oBAClC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;iBACxC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB;wBACE,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,gCAAgC;wBACrC,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,CAAC,WAAW,CAAC;wBACxB,MAAM,EAAE,EAAE;qBACX;iBACF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAC7C,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC;YAClC,GAAG,gBAAgB;YACnB,WAAW,EAAE,GAAG;SACI,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,0BAA0B;wBAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxB,eAAe,EAAE,IAAI;wBACrB,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;qBAClE;oBACD;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,0BAA0B;wBAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxB,eAAe,EAAE,IAAI;wBACrB,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;qBAClE;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErD,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,IAAkB,EAAE,EAAE;YAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC;oBAClB,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;oBAClC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3D,gBAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC7C,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnC,IAAA,cAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,OAAO,YAAY,CAAC;oBAClB,OAAO,EAAE;wBACP,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;wBACvH,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;qBACxH;oBACD,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;QAEhF,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=run.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":""}
@@ -1,529 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_test_1 = require("node:test");
7
- const strict_1 = __importDefault(require("node:assert/strict"));
8
- const run_1 = require("../commands/run");
9
- const baseConfig = {
10
- provider: 'clickup',
11
- githubRepo: 'owner/repo',
12
- githubBaseBranch: 'main',
13
- clickupInReviewStatus: 'review',
14
- commentPrefix: '[aidev]',
15
- };
16
- // ─── buildPRUrl ───────────────────────────────────────────────────────────────
17
- (0, node_test_1.describe)('buildPRUrl', () => {
18
- (0, node_test_1.it)('returns a GitHub compare URL', () => {
19
- const url = (0, run_1.buildPRUrl)(baseConfig, 'abc123/fix-login');
20
- strict_1.default.ok(url.startsWith('https://github.com/owner/repo/compare/'));
21
- strict_1.default.ok(url.includes('main...'));
22
- strict_1.default.ok(url.includes('expand=1'));
23
- });
24
- (0, node_test_1.it)('URL-encodes the branch name', () => {
25
- const url = (0, run_1.buildPRUrl)(baseConfig, 'abc/fix login');
26
- strict_1.default.ok(url.includes('fix%20login'));
27
- });
28
- (0, node_test_1.it)('returns empty string when githubRepo is not set', () => {
29
- const url = (0, run_1.buildPRUrl)({ ...baseConfig, githubRepo: '' }, 'abc/branch');
30
- strict_1.default.equal(url, '');
31
- });
32
- });
33
- // ─── buildPRBody ─────────────────────────────────────────────────────────────
34
- (0, node_test_1.describe)('buildPRBody', () => {
35
- const task = {
36
- id: 'abc123',
37
- name: 'Fix bug',
38
- description: 'Fix the login bug',
39
- status: 'open',
40
- url: 'https://app.clickup.com/t/abc123',
41
- tags: ['myproject'],
42
- };
43
- (0, node_test_1.it)('includes the task URL', () => {
44
- const body = (0, run_1.buildPRBody)(task);
45
- strict_1.default.ok(body.includes('https://app.clickup.com/t/abc123'));
46
- });
47
- (0, node_test_1.it)('uses default signature when PR_SIGNATURE is not set', () => {
48
- const original = process.env.PR_SIGNATURE;
49
- delete process.env.PR_SIGNATURE;
50
- const body = (0, run_1.buildPRBody)(task);
51
- strict_1.default.ok(body.includes('Automated PR by aidev.'));
52
- if (original !== undefined)
53
- process.env.PR_SIGNATURE = original;
54
- });
55
- (0, node_test_1.it)('uses PR_SIGNATURE env var when set', () => {
56
- const original = process.env.PR_SIGNATURE;
57
- process.env.PR_SIGNATURE = 'Custom signature from CI';
58
- const body = (0, run_1.buildPRBody)(task);
59
- strict_1.default.ok(body.includes('Custom signature from CI'));
60
- strict_1.default.ok(!body.includes('Automated PR by aidev.'));
61
- if (original !== undefined) {
62
- process.env.PR_SIGNATURE = original;
63
- }
64
- else {
65
- delete process.env.PR_SIGNATURE;
66
- }
67
- });
68
- (0, node_test_1.it)('formats as "Implements: <url>\\n\\n<signature>"', () => {
69
- const original = process.env.PR_SIGNATURE;
70
- delete process.env.PR_SIGNATURE;
71
- const body = (0, run_1.buildPRBody)(task);
72
- strict_1.default.equal(body, 'Implements: https://app.clickup.com/t/abc123\n\nAutomated PR by aidev.');
73
- if (original !== undefined)
74
- process.env.PR_SIGNATURE = original;
75
- });
76
- });
77
- // ─── buildCompletionComment ───────────────────────────────────────────────────
78
- (0, node_test_1.describe)('buildCompletionComment', () => {
79
- (0, node_test_1.it)('includes the branch name', () => {
80
- const comment = (0, run_1.buildCompletionComment)('abc123/fix-login', '', baseConfig);
81
- strict_1.default.ok(comment.includes('abc123/fix-login'));
82
- });
83
- (0, node_test_1.it)('includes the in-review status', () => {
84
- const comment = (0, run_1.buildCompletionComment)('abc/branch', '', baseConfig);
85
- strict_1.default.ok(comment.includes('review'));
86
- });
87
- (0, node_test_1.it)('includes PR link when provided', () => {
88
- const comment = (0, run_1.buildCompletionComment)('abc/branch', 'https://github.com/pr/1', baseConfig);
89
- strict_1.default.ok(comment.includes('https://github.com/pr/1'));
90
- });
91
- (0, node_test_1.it)('omits PR link when empty', () => {
92
- const comment = (0, run_1.buildCompletionComment)('abc/branch', '', baseConfig);
93
- strict_1.default.ok(!comment.includes('https://'));
94
- });
95
- (0, node_test_1.it)('uses custom prefix when configured', () => {
96
- const customConfig = { ...baseConfig, commentPrefix: '[mybot]' };
97
- const comment = (0, run_1.buildCompletionComment)('abc/branch', '', customConfig);
98
- strict_1.default.ok(comment.startsWith('[mybot]'));
99
- strict_1.default.ok(!comment.includes('[aidev]'));
100
- });
101
- });
102
- // ─── buildImplementPrompt ─────────────────────────────────────────────────────
103
- (0, node_test_1.describe)('buildImplementPrompt', () => {
104
- const task = {
105
- id: 'abc123',
106
- name: 'Fix login bug',
107
- description: 'Users cannot log in with email.',
108
- status: 'open',
109
- url: 'https://app.clickup.com/t/abc123',
110
- tags: ['myproject'],
111
- };
112
- (0, node_test_1.it)('includes the task name', () => {
113
- const prompt = (0, run_1.buildImplementPrompt)(task, '');
114
- strict_1.default.ok(prompt.includes('Fix login bug'));
115
- });
116
- (0, node_test_1.it)('includes the description', () => {
117
- const prompt = (0, run_1.buildImplementPrompt)(task, '');
118
- strict_1.default.ok(prompt.includes('Users cannot log in with email.'));
119
- });
120
- (0, node_test_1.it)('includes context when provided', () => {
121
- const prompt = (0, run_1.buildImplementPrompt)(task, 'Use JWT tokens.');
122
- strict_1.default.ok(prompt.includes('Use JWT tokens.'));
123
- });
124
- (0, node_test_1.it)('handles missing description gracefully', () => {
125
- const prompt = (0, run_1.buildImplementPrompt)({ ...task, description: '' }, '');
126
- strict_1.default.ok(prompt.includes('no description provided'));
127
- });
128
- });
129
- // ─── hasHumanReply ────────────────────────────────────────────────────────────
130
- function makeComment(text) {
131
- return { id: '1', text, author: 'user', authorId: '100', date: Date.now() };
132
- }
133
- (0, node_test_1.describe)('hasHumanReply', () => {
134
- (0, node_test_1.it)('returns false when fewer than 2 comments', () => {
135
- strict_1.default.equal((0, run_1.hasHumanReply)([]), false);
136
- strict_1.default.equal((0, run_1.hasHumanReply)([makeComment('hello')]), false);
137
- });
138
- (0, node_test_1.it)('returns true when last comment is from a human', () => {
139
- const comments = [
140
- makeComment('[aidev] Starting implementation'),
141
- makeComment('Please also fix the tests'),
142
- ];
143
- strict_1.default.equal((0, run_1.hasHumanReply)(comments), true);
144
- });
145
- (0, node_test_1.it)('returns false when last comment is from aidev', () => {
146
- const comments = [
147
- makeComment('[aidev] Starting implementation'),
148
- makeComment('[aidev] All AI runners failed.'),
149
- ];
150
- strict_1.default.equal((0, run_1.hasHumanReply)(comments), false);
151
- });
152
- (0, node_test_1.it)('uses custom prefix when provided', () => {
153
- const comments = [
154
- makeComment('[mybot] Starting implementation'),
155
- makeComment('Please also fix the tests'),
156
- ];
157
- strict_1.default.equal((0, run_1.hasHumanReply)(comments, '[mybot]'), true);
158
- });
159
- (0, node_test_1.it)('returns false when last comment has custom prefix', () => {
160
- const comments = [
161
- makeComment('[mybot] Starting implementation'),
162
- makeComment('[mybot] All AI runners failed.'),
163
- ];
164
- strict_1.default.equal((0, run_1.hasHumanReply)(comments, '[mybot]'), false);
165
- });
166
- });
167
- // ─── hasTriggerWord ───────────────────────────────────────────────────────────
168
- (0, node_test_1.describe)('hasTriggerWord', () => {
169
- (0, node_test_1.it)('returns false on empty comments', () => {
170
- strict_1.default.equal((0, run_1.hasTriggerWord)([], 'aidev-continue'), false);
171
- });
172
- (0, node_test_1.it)('returns true when last comment contains the trigger word', () => {
173
- const comments = [makeComment('aidev-continue please re-run')];
174
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'aidev-continue'), true);
175
- });
176
- (0, node_test_1.it)('is case-insensitive', () => {
177
- const comments = [makeComment('AIDEV-CONTINUE')];
178
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'aidev-continue'), true);
179
- });
180
- (0, node_test_1.it)('returns false when trigger word is absent', () => {
181
- const comments = [makeComment('Please fix the tests')];
182
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'aidev-continue'), false);
183
- });
184
- (0, node_test_1.it)('returns false when trigger word is empty and no default trigger present', () => {
185
- const comments = [makeComment('any text')];
186
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, ''), false);
187
- });
188
- // ── Default trigger word always works regardless of configured triggerWord ──
189
- (0, node_test_1.it)('DEFAULT_TRIGGER_WORD is "aidev-continue"', () => {
190
- strict_1.default.equal(run_1.DEFAULT_TRIGGER_WORD, 'aidev-continue');
191
- });
192
- (0, node_test_1.it)('aidev-continue works even when triggerWord is empty (no env config)', () => {
193
- const comments = [makeComment('aidev-continue')];
194
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, ''), true);
195
- });
196
- (0, node_test_1.it)('aidev-continue works even when a different triggerWord is configured', () => {
197
- const comments = [makeComment('aidev-continue')];
198
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'my-custom-word'), true);
199
- });
200
- (0, node_test_1.it)('configured custom trigger word also works', () => {
201
- const comments = [makeComment('my-custom-word go ahead')];
202
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'my-custom-word'), true);
203
- });
204
- (0, node_test_1.it)('only checks the last comment — earlier trigger word is ignored', () => {
205
- const comments = [
206
- makeComment('aidev-continue'),
207
- makeComment('Please review my changes'),
208
- ];
209
- // last comment has no trigger word
210
- strict_1.default.equal((0, run_1.hasTriggerWord)(comments, 'aidev-continue'), false);
211
- });
212
- });
213
- // ─── checkNeedsClarification ──────────────────────────────────────────────────
214
- function makeRunner(name, success, output) {
215
- return {
216
- name,
217
- isAvailable: () => true,
218
- run: async (_prompt) => ({ success, output, error: success ? '' : 'error' }),
219
- };
220
- }
221
- const clarificationTask = {
222
- id: 'abc123',
223
- name: 'Add dark mode',
224
- description: 'Support a dark color scheme.',
225
- status: 'open',
226
- url: 'https://app.clickup.com/t/abc123',
227
- tags: ['myproject'],
228
- };
229
- const clarificationConfig = {
230
- devNotesMode: 'smart',
231
- clickupPendingStatus: 'pending',
232
- };
233
- const mockProvider = {
234
- fetchTasks: async () => [],
235
- fetchTasksByStatus: async () => [],
236
- getComments: async () => [],
237
- postComment: async () => { },
238
- updateStatus: async () => { },
239
- createTask: async () => ({ id: '', url: '' }),
240
- };
241
- (0, node_test_1.describe)('checkNeedsClarification', () => {
242
- (0, node_test_1.it)('returns a question when runner says task is not clear', async () => {
243
- const runner = makeRunner('claude', true, JSON.stringify({ clear: false, question: 'Which color scheme?' }));
244
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [runner]);
245
- strict_1.default.equal(q, 'Which color scheme?');
246
- });
247
- (0, node_test_1.it)('returns null when runner says task is clear', async () => {
248
- const runner = makeRunner('claude', true, JSON.stringify({ clear: true, question: null }));
249
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [runner]);
250
- strict_1.default.equal(q, null);
251
- });
252
- (0, node_test_1.it)('falls back to next runner when first runner fails', async () => {
253
- const failing = makeRunner('cursor', false, '');
254
- const working = makeRunner('claude', true, JSON.stringify({ clear: false, question: 'Any preferences?' }));
255
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [failing, working]);
256
- strict_1.default.equal(q, 'Any preferences?');
257
- });
258
- (0, node_test_1.it)('falls back to next runner when first runner returns unparseable JSON', async () => {
259
- const bad = makeRunner('cursor', true, 'not json at all');
260
- const good = makeRunner('claude', true, JSON.stringify({ clear: true, question: null }));
261
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [bad, good]);
262
- strict_1.default.equal(q, null);
263
- });
264
- (0, node_test_1.it)('returns null when all runners fail', async () => {
265
- const a = makeRunner('cursor', false, '');
266
- const b = makeRunner('windsurf', false, '');
267
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [a, b]);
268
- strict_1.default.equal(q, null);
269
- });
270
- (0, node_test_1.it)('returns null when no runners are available', async () => {
271
- const unavailable = { name: 'cursor', isAvailable: () => false, run: async () => ({ success: false, output: '', error: '' }) };
272
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, clarificationConfig, mockProvider, [unavailable]);
273
- strict_1.default.equal(q, null);
274
- });
275
- (0, node_test_1.it)('returns the always-ask clarification prompt when devNotesMode is "always"', async () => {
276
- const config = { ...clarificationConfig, devNotesMode: 'always' };
277
- const q = await (0, run_1.checkNeedsClarification)(clarificationTask, config, mockProvider, []);
278
- strict_1.default.ok(q !== null && q.includes('Add dark mode'));
279
- });
280
- });
281
- // ─── hasAidevComment ──────────────────────────────────────────────────────────
282
- (0, node_test_1.describe)('hasAidevComment', () => {
283
- (0, node_test_1.it)('returns false on empty comments', () => {
284
- strict_1.default.equal((0, run_1.hasAidevComment)([]), false);
285
- });
286
- (0, node_test_1.it)('returns true when a comment contains [aidev]', () => {
287
- const comments = [
288
- makeComment('[aidev] Starting implementation'),
289
- makeComment('Some human reply'),
290
- ];
291
- strict_1.default.equal((0, run_1.hasAidevComment)(comments), true);
292
- });
293
- (0, node_test_1.it)('returns false when no comment contains [aidev]', () => {
294
- const comments = [
295
- makeComment('Please fix the tests'),
296
- makeComment('I agree, this needs work'),
297
- ];
298
- strict_1.default.equal((0, run_1.hasAidevComment)(comments), false);
299
- });
300
- (0, node_test_1.it)('returns true when only the last comment is from aidev', () => {
301
- const comments = [
302
- makeComment('Human wrote this'),
303
- makeComment('[aidev] Non-code task complete!'),
304
- ];
305
- strict_1.default.equal((0, run_1.hasAidevComment)(comments), true);
306
- });
307
- (0, node_test_1.it)('detects custom prefix', () => {
308
- const comments = [
309
- makeComment('[mybot] Starting implementation'),
310
- ];
311
- strict_1.default.equal((0, run_1.hasAidevComment)(comments, '[mybot]'), true);
312
- });
313
- (0, node_test_1.it)('returns false when custom prefix is not present', () => {
314
- const comments = [
315
- makeComment('[aidev] Starting implementation'),
316
- ];
317
- strict_1.default.equal((0, run_1.hasAidevComment)(comments, '[mybot]'), false);
318
- });
319
- });
320
- // ─── filterAutomatedComments ──────────────────────────────────────────────────
321
- (0, node_test_1.describe)('filterAutomatedComments', () => {
322
- (0, node_test_1.it)('returns empty array for empty input', () => {
323
- strict_1.default.deepEqual((0, run_1.filterAutomatedComments)([]), []);
324
- });
325
- (0, node_test_1.it)('removes comments containing [aidev]', () => {
326
- const human = makeComment('Please fix the tests');
327
- const automated = makeComment('[aidev] Starting implementation on branch foo');
328
- const result = (0, run_1.filterAutomatedComments)([human, automated]);
329
- strict_1.default.deepEqual(result, [human]);
330
- });
331
- (0, node_test_1.it)('keeps all comments when none are automated', () => {
332
- const comments = [
333
- makeComment('Please fix the tests'),
334
- makeComment('I agree, this needs work'),
335
- ];
336
- strict_1.default.deepEqual((0, run_1.filterAutomatedComments)(comments), comments);
337
- });
338
- (0, node_test_1.it)('removes all comments when all are automated', () => {
339
- const comments = [
340
- makeComment('[aidev] Starting implementation'),
341
- makeComment('[aidev] Merge conflicts resolved automatically.'),
342
- ];
343
- strict_1.default.deepEqual((0, run_1.filterAutomatedComments)(comments), []);
344
- });
345
- (0, node_test_1.it)('filters by custom prefix', () => {
346
- const human = makeComment('Please fix the tests');
347
- const automated = makeComment('[mybot] Starting implementation on branch foo');
348
- const result = (0, run_1.filterAutomatedComments)([human, automated], '[mybot]');
349
- strict_1.default.deepEqual(result, [human]);
350
- });
351
- });
352
- // ─── buildNonCodeCompletionComment ────────────────────────────────────────────
353
- (0, node_test_1.describe)('buildNonCodeCompletionComment', () => {
354
- (0, node_test_1.it)('includes the in-review status', () => {
355
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig);
356
- strict_1.default.ok(comment.includes('review'));
357
- });
358
- (0, node_test_1.it)('starts with the [aidev] prefix', () => {
359
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig);
360
- strict_1.default.ok(comment.startsWith('[aidev]'));
361
- });
362
- (0, node_test_1.it)('mentions non-code task', () => {
363
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig);
364
- strict_1.default.ok(comment.includes('Non-code task complete'));
365
- });
366
- (0, node_test_1.it)('does not include branch or PR info', () => {
367
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig);
368
- strict_1.default.ok(!comment.includes('Branch:'));
369
- strict_1.default.ok(!comment.includes('PR'));
370
- });
371
- (0, node_test_1.it)('includes agent response when provided', () => {
372
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig, 'The answer to your question is 42.');
373
- strict_1.default.ok(comment.includes('The answer to your question is 42.'));
374
- strict_1.default.ok(comment.includes('[aidev] Non-code task complete'));
375
- });
376
- (0, node_test_1.it)('omits agent response section when not provided', () => {
377
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig);
378
- strict_1.default.ok(!comment.includes('---'));
379
- });
380
- (0, node_test_1.it)('uses custom prefix when configured', () => {
381
- const customConfig = { ...baseConfig, commentPrefix: '[mybot]' };
382
- const comment = (0, run_1.buildNonCodeCompletionComment)(customConfig);
383
- strict_1.default.ok(comment.startsWith('[mybot]'));
384
- strict_1.default.ok(!comment.includes('[aidev]'));
385
- });
386
- (0, node_test_1.it)('filters out instructional text from agent response', () => {
387
- const agentResponse = `Here's text you can paste as the **task ticket comment** (addresses your latest ask: do it + push):
388
-
389
- ---
390
-
391
- **Done — publish + push**
392
-
393
- I published **one English post** from the LinkedIn drafts, using the **oldest draft by git history** (first commit that added the file): \`qelos-plugins-microfrontends.md\` (committed 2026-03-11 00:51, before \`qelos-netlify-plugin.md\`). The body sent to LinkedIn was the **\`## Post (English)\`** section, **without markdown** (no \`**\`, \`\`\`, or \`#\` headings) so it matches what the text webhook expects.`;
394
- const comment = (0, run_1.buildNonCodeCompletionComment)(baseConfig, agentResponse);
395
- // Should not include the instructional text
396
- strict_1.default.ok(!comment.includes('Here\'s text you can paste as the'));
397
- strict_1.default.ok(!comment.includes('task ticket comment'));
398
- strict_1.default.ok(!comment.includes('addresses your latest ask'));
399
- // Should include the actual content
400
- strict_1.default.ok(comment.includes('Done — publish + push'));
401
- strict_1.default.ok(comment.includes('I published **one English post** from the LinkedIn drafts'));
402
- strict_1.default.ok(comment.includes('qelos-plugins-microfrontends.md'));
403
- });
404
- });
405
- // ─── buildNonCodePrompt ──────────────────────────────────────────────────────
406
- (0, node_test_1.describe)('buildNonCodePrompt', () => {
407
- const task = { id: '1', name: 'Research question', description: 'What is X?', status: 'open', url: 'http://example.com', tags: [] };
408
- (0, node_test_1.it)('includes task name and description', () => {
409
- const prompt = (0, run_1.buildNonCodePrompt)(task, '');
410
- strict_1.default.ok(prompt.includes('Research question'));
411
- strict_1.default.ok(prompt.includes('What is X?'));
412
- });
413
- (0, node_test_1.it)('includes conversation context when provided', () => {
414
- const prompt = (0, run_1.buildNonCodePrompt)(task, '\n\nConversation context:\nAlice: Please clarify');
415
- strict_1.default.ok(prompt.includes('Alice: Please clarify'));
416
- });
417
- (0, node_test_1.it)('instructs AI to focus on latest comment when comments exist', () => {
418
- const prompt = (0, run_1.buildNonCodePrompt)(task, '\n\nConversation context:\nAlice: Change the env file');
419
- strict_1.default.ok(prompt.includes('LATEST comment'));
420
- strict_1.default.ok(prompt.includes('Original description'));
421
- strict_1.default.ok(prompt.includes('CRITICAL'));
422
- strict_1.default.ok(prompt.includes('FOLLOW-UP request'));
423
- strict_1.default.ok(prompt.includes('DO NOT repeat what was already done'));
424
- });
425
- (0, node_test_1.it)('does not mention latest comment when no comments', () => {
426
- const prompt = (0, run_1.buildNonCodePrompt)(task, '');
427
- strict_1.default.ok(!prompt.includes('LATEST comment'));
428
- strict_1.default.ok(!prompt.includes('Original description'));
429
- });
430
- });
431
- // ─── sortTasksByPriority ─────────────────────────────────────────────────────
432
- function makeTask(id, priority) {
433
- return { id, name: `task-${id}`, description: '', status: 'open', url: '', tags: [], priority };
434
- }
435
- (0, node_test_1.describe)('sortTasksByPriority', () => {
436
- (0, node_test_1.it)('sorts tasks by priority ascending (urgent first)', () => {
437
- const tasks = [makeTask('a', 4), makeTask('b', 1), makeTask('c', 2)];
438
- const sorted = (0, run_1.sortTasksByPriority)(tasks);
439
- strict_1.default.deepEqual(sorted.map((t) => t.id), ['b', 'c', 'a']);
440
- });
441
- (0, node_test_1.it)('puts tasks without priority last', () => {
442
- const tasks = [makeTask('a'), makeTask('b', 2), makeTask('c', 1)];
443
- const sorted = (0, run_1.sortTasksByPriority)(tasks);
444
- strict_1.default.deepEqual(sorted.map((t) => t.id), ['c', 'b', 'a']);
445
- });
446
- (0, node_test_1.it)('preserves relative order among tasks with the same priority', () => {
447
- const tasks = [makeTask('a', 2), makeTask('b', 2), makeTask('c', 2)];
448
- const sorted = (0, run_1.sortTasksByPriority)(tasks);
449
- strict_1.default.deepEqual(sorted.map((t) => t.id), ['a', 'b', 'c']);
450
- });
451
- (0, node_test_1.it)('preserves relative order among tasks without priority', () => {
452
- const tasks = [makeTask('a'), makeTask('b'), makeTask('c')];
453
- const sorted = (0, run_1.sortTasksByPriority)(tasks);
454
- strict_1.default.deepEqual(sorted.map((t) => t.id), ['a', 'b', 'c']);
455
- });
456
- (0, node_test_1.it)('does not mutate the original array', () => {
457
- const tasks = [makeTask('a', 3), makeTask('b', 1)];
458
- const sorted = (0, run_1.sortTasksByPriority)(tasks);
459
- strict_1.default.equal(tasks[0].id, 'a');
460
- strict_1.default.equal(sorted[0].id, 'b');
461
- });
462
- (0, node_test_1.it)('handles empty array', () => {
463
- strict_1.default.deepEqual((0, run_1.sortTasksByPriority)([]), []);
464
- });
465
- (0, node_test_1.it)('handles single task', () => {
466
- const sorted = (0, run_1.sortTasksByPriority)([makeTask('a', 1)]);
467
- strict_1.default.equal(sorted.length, 1);
468
- strict_1.default.equal(sorted[0].id, 'a');
469
- });
470
- });
471
- // ─── getRunSkipReason ─────────────────────────────────────────────────────────
472
- (0, node_test_1.describe)('getRunSkipReason', () => {
473
- (0, node_test_1.it)('allows open tasks for the default all filter', () => {
474
- strict_1.default.equal((0, run_1.getRunSkipReason)('open', 'all', 'pending'), null);
475
- });
476
- (0, node_test_1.it)('allows configured pending tasks for the default all filter', () => {
477
- strict_1.default.equal((0, run_1.getRunSkipReason)('Pending Review', 'all', 'pending review'), null);
478
- });
479
- (0, node_test_1.it)('skips statuses that are neither open nor pending', () => {
480
- strict_1.default.equal((0, run_1.getRunSkipReason)('failed', 'all', 'pending'), 'status "failed" is not open or pending');
481
- });
482
- (0, node_test_1.it)('skips pending tasks for the open filter', () => {
483
- strict_1.default.equal((0, run_1.getRunSkipReason)('pending', 'open', 'pending'), 'filter=open but task is pending');
484
- });
485
- (0, node_test_1.it)('skips open tasks for the pending filter', () => {
486
- strict_1.default.equal((0, run_1.getRunSkipReason)('open', 'pending', 'pending'), 'filter=pending but task is not pending');
487
- });
488
- });
489
- // ─── buildConflictResolutionPrompt ───────────────────────────────────────────
490
- (0, node_test_1.describe)('buildConflictResolutionPrompt', () => {
491
- const task = {
492
- id: 'abc123',
493
- name: 'Add user settings page',
494
- description: 'Create a settings page where users can update their profile.',
495
- status: 'pending',
496
- url: 'https://app.clickup.com/t/abc123',
497
- tags: ['myproject'],
498
- };
499
- (0, node_test_1.it)('includes the task name and description so the agent understands the task', () => {
500
- const prompt = (0, run_1.buildConflictResolutionPrompt)(task, ['src/app.ts'], '');
501
- strict_1.default.ok(prompt.includes('Add user settings page'));
502
- strict_1.default.ok(prompt.includes('Create a settings page'));
503
- });
504
- (0, node_test_1.it)('lists all conflicting files', () => {
505
- const files = ['src/app.ts', 'src/config.ts', 'package.json'];
506
- const prompt = (0, run_1.buildConflictResolutionPrompt)(task, files, '');
507
- for (const f of files) {
508
- strict_1.default.ok(prompt.includes(f));
509
- }
510
- });
511
- (0, node_test_1.it)('includes conversation context when provided', () => {
512
- const prompt = (0, run_1.buildConflictResolutionPrompt)(task, ['src/app.ts'], '\n\nConversation context:\nAlice: Use tabs not spaces');
513
- strict_1.default.ok(prompt.includes('Alice: Use tabs not spaces'));
514
- });
515
- (0, node_test_1.it)('instructs to preserve the task intent', () => {
516
- const prompt = (0, run_1.buildConflictResolutionPrompt)(task, ['src/app.ts'], '');
517
- strict_1.default.ok(prompt.includes("task's intent") || prompt.includes("task's changes"));
518
- });
519
- (0, node_test_1.it)('instructs to remove conflict markers', () => {
520
- const prompt = (0, run_1.buildConflictResolutionPrompt)(task, ['src/app.ts'], '');
521
- strict_1.default.ok(prompt.includes('<<<<<<'));
522
- strict_1.default.ok(prompt.includes('>>>>>>>'));
523
- });
524
- (0, node_test_1.it)('handles missing description gracefully', () => {
525
- const prompt = (0, run_1.buildConflictResolutionPrompt)({ ...task, description: '' }, ['a.ts'], '');
526
- strict_1.default.ok(prompt.includes('no description provided'));
527
- });
528
- });
529
- //# sourceMappingURL=run.test.js.map