@vextlabs/theron-cli 0.1.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 (111) hide show
  1. package/LICENSE +15 -0
  2. package/LICENSE.txt +190 -0
  3. package/README.md +98 -0
  4. package/bin/theron +22 -0
  5. package/bin/theron.js +25 -0
  6. package/dist/api.d.ts +111 -0
  7. package/dist/api.js +328 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/auth.d.ts +15 -0
  10. package/dist/auth.js +92 -0
  11. package/dist/auth.js.map +1 -0
  12. package/dist/banner.d.ts +29 -0
  13. package/dist/banner.js +191 -0
  14. package/dist/banner.js.map +1 -0
  15. package/dist/cap_config.d.ts +28 -0
  16. package/dist/cap_config.js +83 -0
  17. package/dist/cap_config.js.map +1 -0
  18. package/dist/config.d.ts +18 -0
  19. package/dist/config.js +65 -0
  20. package/dist/config.js.map +1 -0
  21. package/dist/connections.d.ts +3 -0
  22. package/dist/connections.js +105 -0
  23. package/dist/connections.js.map +1 -0
  24. package/dist/import_claude.d.ts +3 -0
  25. package/dist/import_claude.js +268 -0
  26. package/dist/import_claude.js.map +1 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.js +237 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/onboard.d.ts +3 -0
  31. package/dist/onboard.js +234 -0
  32. package/dist/onboard.js.map +1 -0
  33. package/dist/profile_match.d.ts +15 -0
  34. package/dist/profile_match.js +107 -0
  35. package/dist/profile_match.js.map +1 -0
  36. package/dist/profiles/index.d.ts +20 -0
  37. package/dist/profiles/index.js +56 -0
  38. package/dist/profiles/index.js.map +1 -0
  39. package/dist/profiles/seeds.d.ts +4 -0
  40. package/dist/profiles/seeds.js +500 -0
  41. package/dist/profiles/seeds.js.map +1 -0
  42. package/dist/profiles/types.d.ts +35 -0
  43. package/dist/profiles/types.js +18 -0
  44. package/dist/profiles/types.js.map +1 -0
  45. package/dist/render.d.ts +18 -0
  46. package/dist/render.js +82 -0
  47. package/dist/render.js.map +1 -0
  48. package/dist/repl.d.ts +13 -0
  49. package/dist/repl.js +821 -0
  50. package/dist/repl.js.map +1 -0
  51. package/dist/streaming.d.ts +28 -0
  52. package/dist/streaming.js +118 -0
  53. package/dist/streaming.js.map +1 -0
  54. package/dist/tools/bash.d.ts +8 -0
  55. package/dist/tools/bash.js +57 -0
  56. package/dist/tools/bash.js.map +1 -0
  57. package/dist/tools/edit.d.ts +9 -0
  58. package/dist/tools/edit.js +42 -0
  59. package/dist/tools/edit.js.map +1 -0
  60. package/dist/tools/glob.d.ts +7 -0
  61. package/dist/tools/glob.js +40 -0
  62. package/dist/tools/glob.js.map +1 -0
  63. package/dist/tools/grep.d.ts +9 -0
  64. package/dist/tools/grep.js +73 -0
  65. package/dist/tools/grep.js.map +1 -0
  66. package/dist/tools/index.d.ts +31 -0
  67. package/dist/tools/index.js +180 -0
  68. package/dist/tools/index.js.map +1 -0
  69. package/dist/tools/ls.d.ts +6 -0
  70. package/dist/tools/ls.js +25 -0
  71. package/dist/tools/ls.js.map +1 -0
  72. package/dist/tools/read.d.ts +8 -0
  73. package/dist/tools/read.js +43 -0
  74. package/dist/tools/read.js.map +1 -0
  75. package/dist/tools/stoa.d.ts +34 -0
  76. package/dist/tools/stoa.js +103 -0
  77. package/dist/tools/stoa.js.map +1 -0
  78. package/dist/tools/write.d.ts +7 -0
  79. package/dist/tools/write.js +15 -0
  80. package/dist/tools/write.js.map +1 -0
  81. package/dist/verifiers/ai_ism_check.d.ts +2 -0
  82. package/dist/verifiers/ai_ism_check.js +48 -0
  83. package/dist/verifiers/ai_ism_check.js.map +1 -0
  84. package/dist/verifiers/arithmetic_recheck.d.ts +2 -0
  85. package/dist/verifiers/arithmetic_recheck.js +74 -0
  86. package/dist/verifiers/arithmetic_recheck.js.map +1 -0
  87. package/dist/verifiers/citation_presence.d.ts +2 -0
  88. package/dist/verifiers/citation_presence.js +42 -0
  89. package/dist/verifiers/citation_presence.js.map +1 -0
  90. package/dist/verifiers/em_dash_check.d.ts +2 -0
  91. package/dist/verifiers/em_dash_check.js +23 -0
  92. package/dist/verifiers/em_dash_check.js.map +1 -0
  93. package/dist/verifiers/index.d.ts +16 -0
  94. package/dist/verifiers/index.js +123 -0
  95. package/dist/verifiers/index.js.map +1 -0
  96. package/dist/verifiers/lint.d.ts +2 -0
  97. package/dist/verifiers/lint.js +90 -0
  98. package/dist/verifiers/lint.js.map +1 -0
  99. package/dist/verifiers/style_lint.d.ts +2 -0
  100. package/dist/verifiers/style_lint.js +115 -0
  101. package/dist/verifiers/style_lint.js.map +1 -0
  102. package/dist/verifiers/test_smoke.d.ts +2 -0
  103. package/dist/verifiers/test_smoke.js +94 -0
  104. package/dist/verifiers/test_smoke.js.map +1 -0
  105. package/dist/verifiers/typecheck.d.ts +2 -0
  106. package/dist/verifiers/typecheck.js +98 -0
  107. package/dist/verifiers/typecheck.js.map +1 -0
  108. package/dist/verifiers/types.d.ts +33 -0
  109. package/dist/verifiers/types.js +23 -0
  110. package/dist/verifiers/types.js.map +1 -0
  111. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uEAAuE;AACvE,kEAAkE;AAClE,oBAAoB;AAEpB,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAqE,MAAM,UAAU,CAAC;AAC/H,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAsB,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,GAGhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AAaxB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAgB;QACvB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,EAAE,GAAG,IAAI;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IAEF,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,IAAI,cAAc,GAAyB,EAAE,CAAC;IAE9C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IACvH,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,6DAA6D;IAC7D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,oEAAoE;IACpE,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,EAAc;QAC3B,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC;QAClE;oEAC4D;QAC5D,oBAAoB,EAAE,EAAY;KACnC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,iEAAiE;QACjE,iEAAiE;QACjE,uDAAuD;QACvD,MAAM,KAAK,GAAgB;YACzB;gBACE,KAAK,EAAE,yCAAyC;gBAChD,IAAI,EAAE;oBACJ,iEAAiE;oBACjE,+DAA+D;iBAChE;aACF;YACD;gBACE,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE;oBACJ,wDAAwD;oBACxD,uEAAuE;iBACxE;aACF;YACD;gBACE,KAAK,EAAE,iCAAiC;gBACxC,IAAI,EAAE;oBACJ,+DAA+D;oBAC/D,6DAA6D;iBAC9D;aACF;SACF,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,GAAG,kBAAkB,EAAE,GAAG,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;QACxG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;SACpC,CAAC,GAAG,MAAM,CAAC,CAAC;QACb,+DAA+D;QAC/D,gEAAgE;QAChE,uCAAuC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC,CAAC;IACvH,CAAC;IAED,MAAM,UAAU,GAAG,GAA2B,EAAE,CAC9C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/C,IAAI,CAAC;YACH,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yDAAyD;YACzD,qDAAqD;YACrD,IAAK,GAAyB,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO;YAAE,MAAM;QACtD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;gBACvC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACvB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;aACpC,CAAC,GAAG,IAAI,CAAC,CAAC;YACX,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YACpD,4DAA4D;YAC5D,qDAAqD;YACrD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,MAAM,uCAAuC,CAAC,GAAG,IAAI,CAAC,CAAC;YACxH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACvC,4DAA4D;YAC5D,8DAA8D;YAC9D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,IAAI,8BAA8B,CAAC,CAAC,CAAC;gBACvF,SAAS;YACX,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,yDAAyD;YACzD,6BAA6B;YAC7B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,cAAc,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAC1D,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,IAAI;gBACV,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC;gBAC/D,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAC7E,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;gBACnB,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACvG,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAClD,2DAA2D;YAC3D,8DAA8D;YAC9D,0DAA0D;YAC1D,8BAA8B;YAC9B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE;oBAChE,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;iBACxC,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;oBACT,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAA6E,CAAC;oBAC1G,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,MAAM,0CAA0C,CAAC,GAAG,IAAI,CAAC,CAAC;oBACzH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;wBAClC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;wBAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAClD,MAAM,WAAW,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;wBACpF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;oBACtI,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;oBACvG,CAAC;oBACD,kEAAkE;oBAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1E,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;oBAC/F,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAC9E,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,GAAG,IAAI,CAAC,CAAC;YACrG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,kEAAkE;QAClE,qEAAqE;QACrE,iEAAiE;QACjE,6BAA6B;QAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAC;gBAClG,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBAC3F,SAAS;YACX,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACrG,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3H,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,MAAM,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBACvF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACpH,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,gEAAgE;YAChE,+DAA+D;YAC/D,gEAAgE;YAChE,4DAA4D;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC,CAAC;YAC5G,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACpE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3G,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAC9D,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mJAAmJ,CAAC,CAAC,CAAC;YACnL,SAAS;QACX,CAAC;QACD,2CAA2C;QAC3C,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE;oBAC5E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;iBACxC,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAI3B,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBACnG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtG,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uCAAuC,EAAE,CAAC,GAAG,MAAM,CACzJ,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,SAAS;QACX,CAAC;QACD,8DAA8D;QAC9D,+DAA+D;QAC/D,kEAAkE;QAClE,2DAA2D;QAC3D,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChE,kEAAkE;YAClE,kEAAkE;YAClE,8DAA8D;YAC9D,mEAAmE;YACnE,+DAA+D;YAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAC3B,oKAAoK,CACrK,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,EAAE;oBACzE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,kBAAkB,EAAE,UAAU;qBAC/B;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;oBACzE,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAS3B,CAAC;gBACF,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAChF,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3F,CAAC;gBACD,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9G,CAAC;YACD,SAAS;QACX,CAAC;QACD,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,uDAAuD;QACvD,CAAC;YACC,MAAM,YAAY,GAAG,4DAA4D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChG,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,MAAM,qBAAqB,MAAM,2CAA2C,CAAC,CAAC,CAAC;oBACxH,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,wBAAwB,CAAC;gBACtE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACvC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC;wBACT,UAAU,CAAC;gBAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC7D,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM;oBACJ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,QAAQ,MAAM,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,QAAQ,MAAM,CAAC,CAChD,CAAC;gBACF,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,+DAA+D;YAC/D,+DAA+D;YAC/D,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,0FAA0F,CAAC;YAC5G,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBACT,UAAU,CAAC;YAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7D,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;YAChG,SAAS;QACX,CAAC;QACD,kCAAkC;QAClC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC3G,SAAS;QACX,CAAC;QAED,kEAAkE;QAClE,4DAA4D;QAC5D,iCAAiC;QACjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;oBACrD,OAAO,GAAG,QAAQ,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QACD,cAAc,GAAG,EAAE,CAAC;QAEpB,iEAAiE;QACjE,gEAAgE;QAChE,qDAAqD;QACrD,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,8DAA8D;YAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;YACF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;YAC7D,CAAC;YACD,6CAA6C;YAC7C,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,kEAAkE;QAClE,mEAAmE;QACnE,8DAA8D;QAC9D,mBAAmB;QACnB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACjC,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAC;YACxD,OAAO,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,iEAAiE;QACjE,mEAAmE;QACnE,+DAA+D;QAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjG,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;YACF,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,+DAA+D;QAC/D,+BAA+B;QAC/B,MAAM,WAAW,GAAG,oBAAoB,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnD,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC3C,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,OAAO,SAAS,GAAG,EAAE,EAAE,CAAC;YACtB,SAAS,IAAI,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ;gBACR,GAAG;gBACH,EAAE;gBACF,8DAA8D;gBAC9D,gEAAgE;gBAChE,4CAA4C;gBAC5C,WAAW,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBACrD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC7B,gBAAgB,EAAE,YAAY;aAC/B,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;gBACrD,MAAM;YACR,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5B,iBAAiB,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,0BAA0B;QAC5B,CAAC;QAED,iEAAiE;QACjE,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,0DAA0D;QAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC3D,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,aAAa,EAAE,iBAAiB;gBAChC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBACtC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;aAC9B,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;oBACjB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,IAAI,CAAC;oBACzC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBAClC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,gEAAgE;gBAChE,6BAA6B;gBAC7B,OAAO,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,+DAA+D;QAC/D,iDAAiD;QACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM;IAC1B,CAAC;IAED,EAAE,EAAE,KAAK,EAAE,CAAC;IACZ,iEAAiE;IACjE,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAoBzB;IACC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAuE,EAAE,CAAC;IACzF,IAAI,UAAU,GAA4D,IAAI,CAAC;IAC/E,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,gEAAgE;IAChE,2CAA2C;IAC3C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,iEAAiE;IACjE,iEAAiE;IACjE,qCAAqC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,UAAU,CACd;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,EACD;QACE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;YACD,aAAa,IAAI,CAAC,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,2DAA2D;YAC3D,IAAI,UAAU;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,UAAU,GAAG,OAAO,CAAC;YACrB,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACzD,CAAC;KACF,CACF,CAAC;IAEF,gEAAgE;IAChE,oEAAoE;IACpE,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,aAAa;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzF,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAE9E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAEvE,4CAA4C;IAC5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,IAAI,CAAC,EAAE;gBACrB,OAAO,EAAE,yBAAyB,IAAI,CAAC,IAAI,EAAE;aAC9C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,6DAA6D;QAC7D,oDAAoD;QACpD,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,GAAI,IAAI,CAAC,IAA8C,EAAE,SAAS;mBACtE,IAAI,CAAC,IAA8C,EAAE,IAAI,CAAC;YAChE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,8DAA8D;QAC9D,UAAU;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,IAAI,CAAC,EAAE;oBACrB,OAAO,EAAE,sCAAsC,IAAI,CAAC,IAAI,GAAG;iBAC5D,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACtD,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,8DAA8D;YAC9D,6DAA6D;YAC7D,gEAAgE;YAChE,gEAAgE;YAChE,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,GAAG,WAAW,IAAI,CAAC,IAAI,YAAY,MAAM,yJAAyJ,CAAC;YACzM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,gEAAgE;QAChE,gEAAgE;QAChE,qDAAqD;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,EAA6B;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,gEAAgE;IAChE,gBAAgB;IAChB,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC;gBACH,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;oBACpD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACnC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,0DAA0D;gBAC1D,0DAA0D;gBAC1D,IAAK,GAAyB,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAC/D,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iEAAiE;IACjE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;YAC/B,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,CAAS,EAAE,GAAW;IAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,sEAAsE,CAAC;AACvH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAwB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,uDAAuD,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED;;;uEAGuE;AACvE,SAAS,oBAAoB,CAAC,CAAqB;IACjD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,KAAK,oBAAoB,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,kCAAkC,EAAE,CAAC;IAC/G,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,YAAY,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC;AAED;cACc;AACd,SAAS,kBAAkB;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AAClD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** Live status line that re-paints itself in place. Used for "thinking…",
2
+ * "running tool: Bash…", etc. Always renders on stderr so it doesn't
3
+ * pollute piped stdout. */
4
+ export declare class Spinner {
5
+ private timer;
6
+ private idx;
7
+ private lastWrite;
8
+ private startTime;
9
+ private label;
10
+ constructor(label?: string);
11
+ start(label?: string): void;
12
+ /** Update the label without restarting the spinner. */
13
+ setLabel(label: string): void;
14
+ /** Stop the spinner and clear its line. Optional `final` text writes
15
+ * in place of the spinner — used for "✓ done in 2.1s" style notices. */
16
+ stop(final?: string): void;
17
+ private paint;
18
+ private clearLine;
19
+ }
20
+ export declare const streamingCursor: {
21
+ shown: boolean;
22
+ show(): void;
23
+ hide(): void;
24
+ };
25
+ export declare function announceTool(name: string, detail: string): string;
26
+ export declare function announcePin(slugs: string[]): string;
27
+ export declare function announceError(msg: string): string;
28
+ export declare function announceWarn(msg: string): string;
@@ -0,0 +1,118 @@
1
+ // Terminal-streaming polish — spinner + thinking indicator + cursor.
2
+ //
3
+ // Anna 2026-05-10: 'we didn't perfect the terminal CLI first... DO IT
4
+ // all.' The CLI feels cheap when there's silence between prompt
5
+ // submission and first token. These helpers give Theron a real
6
+ // streaming heartbeat — same rhythm Claude Code, Cursor, and Aider
7
+ // have in their terminals.
8
+ //
9
+ // Everything writes to stderr where appropriate so stdout stays clean
10
+ // for the actual response (so `theron "..." > out.md` works).
11
+ import chalk from "chalk";
12
+ const AMBER = "#FFAE00";
13
+ const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
14
+ const FRAME_MS = 80;
15
+ /** Live status line that re-paints itself in place. Used for "thinking…",
16
+ * "running tool: Bash…", etc. Always renders on stderr so it doesn't
17
+ * pollute piped stdout. */
18
+ export class Spinner {
19
+ timer = null;
20
+ idx = 0;
21
+ lastWrite = "";
22
+ startTime = 0;
23
+ label;
24
+ constructor(label = "thinking…") {
25
+ this.label = label;
26
+ }
27
+ start(label) {
28
+ if (label)
29
+ this.label = label;
30
+ this.startTime = Date.now();
31
+ if (this.timer)
32
+ return;
33
+ this.paint();
34
+ this.timer = setInterval(() => this.paint(), FRAME_MS);
35
+ }
36
+ /** Update the label without restarting the spinner. */
37
+ setLabel(label) {
38
+ this.label = label;
39
+ if (this.timer)
40
+ this.paint();
41
+ }
42
+ /** Stop the spinner and clear its line. Optional `final` text writes
43
+ * in place of the spinner — used for "✓ done in 2.1s" style notices. */
44
+ stop(final) {
45
+ if (this.timer) {
46
+ clearInterval(this.timer);
47
+ this.timer = null;
48
+ }
49
+ this.clearLine();
50
+ if (final) {
51
+ process.stderr.write(final + "\n");
52
+ }
53
+ }
54
+ paint() {
55
+ const frame = SPINNER_FRAMES[this.idx % SPINNER_FRAMES.length];
56
+ this.idx += 1;
57
+ const elapsed = Date.now() - this.startTime;
58
+ const elapsedStr = elapsed > 800 ? chalk.dim(` (${(elapsed / 1000).toFixed(1)}s)`) : "";
59
+ const out = `${chalk.hex(AMBER)(frame)} ${chalk.dim(this.label)}${elapsedStr}`;
60
+ this.clearLine();
61
+ process.stderr.write(out);
62
+ this.lastWrite = out;
63
+ }
64
+ clearLine() {
65
+ if (!this.lastWrite)
66
+ return;
67
+ // Move to start of line + clear to end. Works on every modern
68
+ // terminal; falls back gracefully (just looks like extra whitespace
69
+ // on dumb pipes, where stderr usually isn't visible anyway).
70
+ process.stderr.write("\r\x1b[K");
71
+ this.lastWrite = "";
72
+ }
73
+ }
74
+ // ─── Streaming cursor ──────────────────────────────────────────────────
75
+ // During text streaming, show a soft amber block at the end of the
76
+ // line so the user can see WHERE new tokens are landing. Rendered as
77
+ // a single character via stdout (NOT stderr — it has to be inline with
78
+ // the text). When the next token arrives we just keep streaming; when
79
+ // the stream ENDS we wipe the cursor so the rendered output is clean.
80
+ //
81
+ // This is implementation-light: callers call streamingCursor.show()
82
+ // once they know tokens are flowing, and streamingCursor.hide() before
83
+ // the final newline. We don't track per-token cursor moves — the cost
84
+ // of repainting on every token is too high for piped streams.
85
+ export const streamingCursor = {
86
+ shown: false,
87
+ show() {
88
+ if (this.shown)
89
+ return;
90
+ process.stdout.write(chalk.hex(AMBER).dim("▍"));
91
+ this.shown = true;
92
+ },
93
+ hide() {
94
+ if (!this.shown)
95
+ return;
96
+ process.stdout.write("\b \b");
97
+ this.shown = false;
98
+ },
99
+ };
100
+ // ─── Helpers used by the REPL ──────────────────────────────────────────
101
+ export function announceTool(name, detail) {
102
+ // Same `· ToolName <detail>` shape as before, but with brighter
103
+ // amber and a leading dot that aligns with markdown bullets so the
104
+ // user reads the tool calls as a list of actions rather than chrome.
105
+ return `${chalk.hex(AMBER)("●")} ${chalk.bold.hex(AMBER)(name)} ${chalk.dim(detail)}`;
106
+ }
107
+ export function announcePin(slugs) {
108
+ if (slugs.length === 0)
109
+ return "";
110
+ return chalk.dim(`◉ pinned: ${slugs.map((s) => chalk.hex(AMBER)("@" + s)).join(", ")}`);
111
+ }
112
+ export function announceError(msg) {
113
+ return chalk.red("✗ ") + msg;
114
+ }
115
+ export function announceWarn(msg) {
116
+ return chalk.yellow("! ") + msg;
117
+ }
118
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ToolContext } from "./index.js";
2
+ interface BashArgs {
3
+ command: string;
4
+ timeout?: number;
5
+ description?: string;
6
+ }
7
+ export declare function execBash(args: BashArgs, ctx: ToolContext): Promise<string>;
8
+ export {};
@@ -0,0 +1,57 @@
1
+ // Bash tool — runs a shell command and returns combined stdout/stderr.
2
+ // Captured incrementally so we can stream long-running output.
3
+ import { spawn } from "node:child_process";
4
+ const DEFAULT_TIMEOUT_MS = 120_000;
5
+ const MAX_TIMEOUT_MS = 600_000;
6
+ export async function execBash(args, ctx) {
7
+ const timeout = Math.min(Math.max(args.timeout ?? DEFAULT_TIMEOUT_MS, 1000), MAX_TIMEOUT_MS);
8
+ return await new Promise((resolve) => {
9
+ const proc = spawn(args.command, {
10
+ shell: true,
11
+ cwd: ctx.cwd,
12
+ env: { ...process.env, FORCE_COLOR: "0" },
13
+ });
14
+ let stdout = "";
15
+ let stderr = "";
16
+ let killedByTimeout = false;
17
+ let bytes = 0;
18
+ const cap = Math.max(64 * 1024, ctx.maxBytes);
19
+ proc.stdout?.on("data", (d) => {
20
+ const s = d.toString("utf-8");
21
+ bytes += s.length;
22
+ if (bytes > cap) {
23
+ if (stdout.length < cap)
24
+ stdout += s.slice(0, cap - stdout.length);
25
+ return;
26
+ }
27
+ stdout += s;
28
+ });
29
+ proc.stderr?.on("data", (d) => {
30
+ const s = d.toString("utf-8");
31
+ bytes += s.length;
32
+ if (bytes > cap) {
33
+ if (stderr.length < cap)
34
+ stderr += s.slice(0, cap - stderr.length);
35
+ return;
36
+ }
37
+ stderr += s;
38
+ });
39
+ const timer = setTimeout(() => {
40
+ killedByTimeout = true;
41
+ proc.kill("SIGKILL");
42
+ }, timeout);
43
+ proc.on("close", (code) => {
44
+ clearTimeout(timer);
45
+ const head = `$ ${args.command}\n[exit ${code ?? "?"}${killedByTimeout ? ", killed by timeout" : ""}, ${bytes}b]`;
46
+ const out = stdout.trim() ? `\n--- stdout ---\n${stdout}` : "";
47
+ const err = stderr.trim() ? `\n--- stderr ---\n${stderr}` : "";
48
+ const truncated = bytes > cap ? "\n[output truncated to maxBytes]" : "";
49
+ resolve(`${head}${out}${err}${truncated}`);
50
+ });
51
+ proc.on("error", (err) => {
52
+ clearTimeout(timer);
53
+ resolve(`$ ${args.command}\n[spawn error: ${err.message}]`);
54
+ });
55
+ });
56
+ }
57
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ToolContext } from "./index.js";
2
+ interface EditArgs {
3
+ file_path: string;
4
+ old_string: string;
5
+ new_string: string;
6
+ replace_all?: boolean;
7
+ }
8
+ export declare function execEdit(args: EditArgs, ctx: ToolContext): Promise<string>;
9
+ export {};
@@ -0,0 +1,42 @@
1
+ // Edit tool — exact-substring replacement.
2
+ import { promises as fs } from "node:fs";
3
+ import path from "node:path";
4
+ export async function execEdit(args, ctx) {
5
+ const target = path.isAbsolute(args.file_path)
6
+ ? args.file_path
7
+ : path.resolve(ctx.cwd, args.file_path);
8
+ let original;
9
+ try {
10
+ original = await fs.readFile(target, "utf-8");
11
+ }
12
+ catch (err) {
13
+ return `[error] Cannot read ${target}: ${err instanceof Error ? err.message : String(err)}`;
14
+ }
15
+ if (args.old_string === args.new_string) {
16
+ return `[error] old_string === new_string — nothing to change.`;
17
+ }
18
+ let replaced;
19
+ let count = 0;
20
+ if (args.replace_all) {
21
+ // Count occurrences then split/join (no regex escapes needed).
22
+ const parts = original.split(args.old_string);
23
+ count = parts.length - 1;
24
+ if (count === 0)
25
+ return `[error] old_string not found in ${target}.`;
26
+ replaced = parts.join(args.new_string);
27
+ }
28
+ else {
29
+ const idx = original.indexOf(args.old_string);
30
+ if (idx < 0)
31
+ return `[error] old_string not found in ${target}.`;
32
+ const second = original.indexOf(args.old_string, idx + args.old_string.length);
33
+ if (second >= 0) {
34
+ return `[error] old_string appears multiple times in ${target}. Make it unique with surrounding context, or set replace_all=true.`;
35
+ }
36
+ replaced = original.slice(0, idx) + args.new_string + original.slice(idx + args.old_string.length);
37
+ count = 1;
38
+ }
39
+ await fs.writeFile(target, replaced, "utf-8");
40
+ return `Edited ${target}: ${count} replacement${count === 1 ? "" : "s"}`;
41
+ }
42
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAgB;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,uBAAuB,MAAM,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9F,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,wDAAwD,CAAC;IAClE,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,+DAA+D;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,mCAAmC,MAAM,GAAG,CAAC;QACrE,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,mCAAmC,MAAM,GAAG,CAAC;QACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,gDAAgD,MAAM,qEAAqE,CAAC;QACrI,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnG,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,UAAU,MAAM,KAAK,KAAK,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ToolContext } from "./index.js";
2
+ interface GlobArgs {
3
+ pattern: string;
4
+ path?: string;
5
+ }
6
+ export declare function execGlob(args: GlobArgs, ctx: ToolContext): Promise<string>;
7
+ export {};
@@ -0,0 +1,40 @@
1
+ // Glob tool — find files by pattern, sorted by mtime descending.
2
+ import path from "node:path";
3
+ import { promises as fs } from "node:fs";
4
+ import fg from "fast-glob";
5
+ export async function execGlob(args, ctx) {
6
+ // The model occasionally emits a Glob call with a missing/empty pattern;
7
+ // passing undefined to fast-glob throws an opaque "Patterns must be a
8
+ // string" error that derails the agent loop. Return an actionable hint.
9
+ if (typeof args.pattern !== "string" || args.pattern.trim() === "") {
10
+ return '[Glob error] missing required "pattern". Retry with e.g. {"pattern":"**/*.ts"} or {"pattern":"**/checkout*.ts"}.';
11
+ }
12
+ const root = args.path
13
+ ? (path.isAbsolute(args.path) ? args.path : path.resolve(ctx.cwd, args.path))
14
+ : ctx.cwd;
15
+ const matches = await fg(args.pattern, {
16
+ cwd: root,
17
+ absolute: true,
18
+ onlyFiles: true,
19
+ dot: false,
20
+ ignore: ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**", "**/.next/**", "**/.vercel/**"],
21
+ suppressErrors: true,
22
+ });
23
+ // Stat each for mtime — cap at 200 to keep this snappy.
24
+ const stats = await Promise.all(matches.slice(0, 500).map(async (p) => {
25
+ try {
26
+ const s = await fs.stat(p);
27
+ return { path: p, mtime: s.mtimeMs };
28
+ }
29
+ catch {
30
+ return { path: p, mtime: 0 };
31
+ }
32
+ }));
33
+ stats.sort((a, b) => b.mtime - a.mtime);
34
+ if (stats.length === 0)
35
+ return `[no matches for ${args.pattern} in ${root}]`;
36
+ const lines = stats.slice(0, 200).map((s) => s.path).join("\n");
37
+ const overflow = stats.length > 200 ? `\n[+${stats.length - 200} more, narrow the pattern]` : "";
38
+ return `${lines}${overflow}`;
39
+ }
40
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,WAAW,CAAC;AAQ3B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAgB;IAC7D,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnE,OAAO,kHAAkH,CAAC;IAC5H,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAEZ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;QACrC,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC;QACzG,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,wDAAwD;IACxD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,IAAI,CAAC,OAAO,OAAO,IAAI,GAAG,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ToolContext } from "./index.js";
2
+ interface GrepArgs {
3
+ pattern: string;
4
+ path?: string;
5
+ glob?: string;
6
+ case_insensitive?: boolean;
7
+ }
8
+ export declare function execGrep(args: GrepArgs, ctx: ToolContext): Promise<string>;
9
+ export {};
@@ -0,0 +1,73 @@
1
+ // Grep tool — uses ripgrep when available, falls back to Node-based
2
+ // scan. Prefer ripgrep because the user may have huge repos.
3
+ import { spawn } from "node:child_process";
4
+ import path from "node:path";
5
+ export async function execGrep(args, ctx) {
6
+ if (typeof args.pattern !== "string" || args.pattern === "") {
7
+ return '[Grep error] missing required "pattern". Retry with e.g. {"pattern":"startCheckout","glob":"*.ts"}.';
8
+ }
9
+ const root = args.path
10
+ ? (path.isAbsolute(args.path) ? args.path : path.resolve(ctx.cwd, args.path))
11
+ : ctx.cwd;
12
+ const rgArgs = [
13
+ "--line-number",
14
+ "--no-heading",
15
+ "--with-filename",
16
+ "--max-count", "200",
17
+ "--max-columns", "400",
18
+ ...(args.case_insensitive ? ["-i"] : []),
19
+ ...(args.glob ? ["--glob", args.glob] : []),
20
+ "--",
21
+ args.pattern,
22
+ root,
23
+ ];
24
+ return await new Promise((resolve) => {
25
+ const proc = spawn("rg", rgArgs, { cwd: ctx.cwd });
26
+ let stdout = "";
27
+ let stderr = "";
28
+ let bytes = 0;
29
+ const cap = Math.max(48 * 1024, ctx.maxBytes);
30
+ proc.stdout?.on("data", (d) => {
31
+ const s = d.toString("utf-8");
32
+ bytes += s.length;
33
+ if (bytes > cap)
34
+ return;
35
+ stdout += s;
36
+ });
37
+ proc.stderr?.on("data", (d) => { stderr += d.toString("utf-8"); });
38
+ proc.on("error", () => {
39
+ // ripgrep not installed — fall back to plain grep
40
+ resolve(fallbackGrep(args, ctx));
41
+ });
42
+ proc.on("close", (code) => {
43
+ if (code === 1)
44
+ resolve(`[no matches for "${args.pattern}"]`);
45
+ else if (code === 0) {
46
+ const truncated = bytes > cap ? "\n[results truncated]" : "";
47
+ resolve(stdout.trim() + truncated);
48
+ }
49
+ else {
50
+ resolve(`[grep failed exit=${code}]\n${stderr}`);
51
+ }
52
+ });
53
+ });
54
+ }
55
+ async function fallbackGrep(args, ctx) {
56
+ return await new Promise((resolve) => {
57
+ const grepArgs = [
58
+ "-rn",
59
+ "--include=*",
60
+ "--binary-files=without-match",
61
+ ...(args.case_insensitive ? ["-i"] : []),
62
+ "--",
63
+ args.pattern,
64
+ args.path || ".",
65
+ ];
66
+ const proc = spawn("grep", grepArgs, { cwd: ctx.cwd });
67
+ let stdout = "";
68
+ proc.stdout?.on("data", (d) => { stdout += d.toString("utf-8"); });
69
+ proc.on("close", () => resolve(stdout.trim() || `[no matches for "${args.pattern}"]`));
70
+ proc.on("error", (err) => resolve(`[grep unavailable: ${err.message}]`));
71
+ });
72
+ }
73
+ //# sourceMappingURL=grep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ToolDef {
2
+ /** OpenAI-compatible function tool definition. */
3
+ type: "function";
4
+ function: {
5
+ name: string;
6
+ description: string;
7
+ parameters: Record<string, unknown>;
8
+ };
9
+ }
10
+ export interface ToolExecutor {
11
+ name: string;
12
+ /** Returns rendered text for the model. May truncate long outputs. */
13
+ execute: (args: Record<string, unknown>, ctx: ToolContext) => Promise<string>;
14
+ /** When set, the user is asked to confirm before this tool runs.
15
+ * "always" → confirm every time, "auto" → auto-approve unless user
16
+ * flipped --no-yolo, "never" → no confirmation. */
17
+ confirmPolicy: "always" | "auto" | "never";
18
+ /** Short label rendered in the CLI when the tool fires
19
+ * (e.g. "Reading src/foo.ts"). */
20
+ describe: (args: Record<string, unknown>) => string;
21
+ }
22
+ export interface ToolContext {
23
+ cwd: string;
24
+ /** Hard cap on bytes returned to the model for any single tool call.
25
+ * Prevents a 100MB file dump blowing the context window. */
26
+ maxBytes: number;
27
+ /** Skip per-tool confirmation prompts (--yes mode). */
28
+ yolo: boolean;
29
+ }
30
+ export declare const TOOL_REGISTRY: Record<string, ToolExecutor>;
31
+ export declare const TOOL_SCHEMAS: ToolDef[];