tjbot-ce 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +382 -0
  3. package/dist/camera/camera.d.ts +62 -0
  4. package/dist/camera/camera.d.ts.map +1 -0
  5. package/dist/camera/camera.js +155 -0
  6. package/dist/camera/camera.js.map +1 -0
  7. package/dist/camera/index.d.ts +18 -0
  8. package/dist/camera/index.d.ts.map +1 -0
  9. package/dist/camera/index.js +18 -0
  10. package/dist/camera/index.js.map +1 -0
  11. package/dist/config/config-types.d.ts +75 -0
  12. package/dist/config/config-types.d.ts.map +1 -0
  13. package/dist/config/config-types.generated.d.ts +495 -0
  14. package/dist/config/config-types.generated.d.ts.map +1 -0
  15. package/dist/config/config-types.generated.js +2 -0
  16. package/dist/config/config-types.generated.js.map +1 -0
  17. package/dist/config/config-types.js +175 -0
  18. package/dist/config/config-types.js.map +1 -0
  19. package/dist/config/index.d.ts +20 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +19 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/tjbot-config.d.ts +98 -0
  24. package/dist/config/tjbot-config.d.ts.map +1 -0
  25. package/dist/config/tjbot-config.js +309 -0
  26. package/dist/config/tjbot-config.js.map +1 -0
  27. package/dist/config/vendor/colors.yaml +61 -0
  28. package/dist/config/vendor/model-registry.yaml +275 -0
  29. package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
  30. package/dist/config/vendor/tjbot.default.toml +452 -0
  31. package/dist/led/index.d.ts +20 -0
  32. package/dist/led/index.d.ts.map +1 -0
  33. package/dist/led/index.js +20 -0
  34. package/dist/led/index.js.map +1 -0
  35. package/dist/led/led-common-anode.d.ts +38 -0
  36. package/dist/led/led-common-anode.d.ts.map +1 -0
  37. package/dist/led/led-common-anode.js +79 -0
  38. package/dist/led/led-common-anode.js.map +1 -0
  39. package/dist/led/led-neopixel-spi.d.ts +60 -0
  40. package/dist/led/led-neopixel-spi.d.ts.map +1 -0
  41. package/dist/led/led-neopixel-spi.js +216 -0
  42. package/dist/led/led-neopixel-spi.js.map +1 -0
  43. package/dist/led/led-neopixel-ws281x.js +186 -0
  44. package/dist/led/led-neopixel.d.ts +57 -0
  45. package/dist/led/led-neopixel.d.ts.map +1 -0
  46. package/dist/led/led-neopixel.js +235 -0
  47. package/dist/led/led-neopixel.js.map +1 -0
  48. package/dist/microphone/index.d.ts +18 -0
  49. package/dist/microphone/index.d.ts.map +1 -0
  50. package/dist/microphone/index.js +18 -0
  51. package/dist/microphone/index.js.map +1 -0
  52. package/dist/microphone/microphone.d.ts +65 -0
  53. package/dist/microphone/microphone.d.ts.map +1 -0
  54. package/dist/microphone/microphone.js +179 -0
  55. package/dist/microphone/microphone.js.map +1 -0
  56. package/dist/rpi-drivers/index.d.ts +22 -0
  57. package/dist/rpi-drivers/index.d.ts.map +1 -0
  58. package/dist/rpi-drivers/index.js +22 -0
  59. package/dist/rpi-drivers/index.js.map +1 -0
  60. package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
  61. package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
  62. package/dist/rpi-drivers/rpi-detect.js +49 -0
  63. package/dist/rpi-drivers/rpi-detect.js.map +1 -0
  64. package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
  65. package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
  66. package/dist/rpi-drivers/rpi-driver.js +261 -0
  67. package/dist/rpi-drivers/rpi-driver.js.map +1 -0
  68. package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
  69. package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
  70. package/dist/rpi-drivers/rpi3-driver.js +145 -0
  71. package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
  72. package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
  73. package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
  74. package/dist/rpi-drivers/rpi4-driver.js +101 -0
  75. package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
  76. package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
  77. package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
  78. package/dist/rpi-drivers/rpi5-driver.js +78 -0
  79. package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
  80. package/dist/servo/index.d.ts +19 -0
  81. package/dist/servo/index.d.ts.map +1 -0
  82. package/dist/servo/index.js +19 -0
  83. package/dist/servo/index.js.map +1 -0
  84. package/dist/servo/servo-constants.d.ts +33 -0
  85. package/dist/servo/servo-constants.d.ts.map +1 -0
  86. package/dist/servo/servo-constants.js +34 -0
  87. package/dist/servo/servo-constants.js.map +1 -0
  88. package/dist/servo/servo-lgpio.d.ts +82 -0
  89. package/dist/servo/servo-lgpio.d.ts.map +1 -0
  90. package/dist/servo/servo-lgpio.js +178 -0
  91. package/dist/servo/servo-lgpio.js.map +1 -0
  92. package/dist/speaker/audio-player.d.ts +30 -0
  93. package/dist/speaker/audio-player.d.ts.map +1 -0
  94. package/dist/speaker/audio-player.js +68 -0
  95. package/dist/speaker/audio-player.js.map +1 -0
  96. package/dist/speaker/index.d.ts +18 -0
  97. package/dist/speaker/index.d.ts.map +1 -0
  98. package/dist/speaker/index.js +18 -0
  99. package/dist/speaker/index.js.map +1 -0
  100. package/dist/speaker/speaker.d.ts +53 -0
  101. package/dist/speaker/speaker.d.ts.map +1 -0
  102. package/dist/speaker/speaker.js +125 -0
  103. package/dist/speaker/speaker.js.map +1 -0
  104. package/dist/stt/backends/azure-stt.d.ts +32 -0
  105. package/dist/stt/backends/azure-stt.d.ts.map +1 -0
  106. package/dist/stt/backends/azure-stt.js +227 -0
  107. package/dist/stt/backends/azure-stt.js.map +1 -0
  108. package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
  109. package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
  110. package/dist/stt/backends/google-cloud-stt.js +371 -0
  111. package/dist/stt/backends/google-cloud-stt.js.map +1 -0
  112. package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
  113. package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
  114. package/dist/stt/backends/ibm-watson-stt.js +190 -0
  115. package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
  116. package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
  117. package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
  118. package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
  119. package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
  120. package/dist/stt/index.d.ts +20 -0
  121. package/dist/stt/index.d.ts.map +1 -0
  122. package/dist/stt/index.js +21 -0
  123. package/dist/stt/index.js.map +1 -0
  124. package/dist/stt/stt-engine.d.ts +68 -0
  125. package/dist/stt/stt-engine.d.ts.map +1 -0
  126. package/dist/stt/stt-engine.js +99 -0
  127. package/dist/stt/stt-engine.js.map +1 -0
  128. package/dist/stt/stt-utils.d.ts +36 -0
  129. package/dist/stt/stt-utils.d.ts.map +1 -0
  130. package/dist/stt/stt-utils.js +112 -0
  131. package/dist/stt/stt-utils.js.map +1 -0
  132. package/dist/stt/stt.d.ts +52 -0
  133. package/dist/stt/stt.d.ts.map +1 -0
  134. package/dist/stt/stt.js +100 -0
  135. package/dist/stt/stt.js.map +1 -0
  136. package/dist/tjbot.d.ts +317 -0
  137. package/dist/tjbot.d.ts.map +1 -0
  138. package/dist/tjbot.js +736 -0
  139. package/dist/tjbot.js.map +1 -0
  140. package/dist/tts/backends/azure-tts.d.ts +30 -0
  141. package/dist/tts/backends/azure-tts.d.ts.map +1 -0
  142. package/dist/tts/backends/azure-tts.js +92 -0
  143. package/dist/tts/backends/azure-tts.js.map +1 -0
  144. package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
  145. package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
  146. package/dist/tts/backends/google-cloud-tts.js +116 -0
  147. package/dist/tts/backends/google-cloud-tts.js.map +1 -0
  148. package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
  149. package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
  150. package/dist/tts/backends/ibm-watson-tts.js +99 -0
  151. package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
  152. package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
  153. package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
  154. package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
  155. package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
  156. package/dist/tts/index.d.ts +19 -0
  157. package/dist/tts/index.d.ts.map +1 -0
  158. package/dist/tts/index.js +20 -0
  159. package/dist/tts/index.js.map +1 -0
  160. package/dist/tts/tts-engine.d.ts +67 -0
  161. package/dist/tts/tts-engine.d.ts.map +1 -0
  162. package/dist/tts/tts-engine.js +109 -0
  163. package/dist/tts/tts-engine.js.map +1 -0
  164. package/dist/tts/tts.d.ts +47 -0
  165. package/dist/tts/tts.d.ts.map +1 -0
  166. package/dist/tts/tts.js +101 -0
  167. package/dist/tts/tts.js.map +1 -0
  168. package/dist/utils/colors.d.ts +39 -0
  169. package/dist/utils/colors.d.ts.map +1 -0
  170. package/dist/utils/colors.js +155 -0
  171. package/dist/utils/colors.js.map +1 -0
  172. package/dist/utils/constants.d.ts +41 -0
  173. package/dist/utils/constants.d.ts.map +1 -0
  174. package/dist/utils/constants.js +43 -0
  175. package/dist/utils/constants.js.map +1 -0
  176. package/dist/utils/credentials.d.ts +43 -0
  177. package/dist/utils/credentials.d.ts.map +1 -0
  178. package/dist/utils/credentials.js +121 -0
  179. package/dist/utils/credentials.js.map +1 -0
  180. package/dist/utils/errors.d.ts +26 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +32 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/index.d.ts +25 -0
  185. package/dist/utils/index.d.ts.map +1 -0
  186. package/dist/utils/index.js +23 -0
  187. package/dist/utils/index.js.map +1 -0
  188. package/dist/utils/logging.d.ts +44 -0
  189. package/dist/utils/logging.d.ts.map +1 -0
  190. package/dist/utils/logging.js +113 -0
  191. package/dist/utils/logging.js.map +1 -0
  192. package/dist/utils/model-registry.d.ts +142 -0
  193. package/dist/utils/model-registry.d.ts.map +1 -0
  194. package/dist/utils/model-registry.js +391 -0
  195. package/dist/utils/model-registry.js.map +1 -0
  196. package/dist/utils/utils.d.ts +33 -0
  197. package/dist/utils/utils.d.ts.map +1 -0
  198. package/dist/utils/utils.js +50 -0
  199. package/dist/utils/utils.js.map +1 -0
  200. package/dist/vision/backends/azure-vision.d.ts +33 -0
  201. package/dist/vision/backends/azure-vision.d.ts.map +1 -0
  202. package/dist/vision/backends/azure-vision.js +151 -0
  203. package/dist/vision/backends/azure-vision.js.map +1 -0
  204. package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
  205. package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
  206. package/dist/vision/backends/google-cloud-vision.js +193 -0
  207. package/dist/vision/backends/google-cloud-vision.js.map +1 -0
  208. package/dist/vision/backends/onnx.d.ts +116 -0
  209. package/dist/vision/backends/onnx.d.ts.map +1 -0
  210. package/dist/vision/backends/onnx.js +781 -0
  211. package/dist/vision/backends/onnx.js.map +1 -0
  212. package/dist/vision/index.d.ts +19 -0
  213. package/dist/vision/index.d.ts.map +1 -0
  214. package/dist/vision/index.js +20 -0
  215. package/dist/vision/index.js.map +1 -0
  216. package/dist/vision/vision-engine.d.ts +131 -0
  217. package/dist/vision/vision-engine.d.ts.map +1 -0
  218. package/dist/vision/vision-engine.js +97 -0
  219. package/dist/vision/vision-engine.js.map +1 -0
  220. package/dist/vision/vision.d.ts +48 -0
  221. package/dist/vision/vision.d.ts.map +1 -0
  222. package/dist/vision/vision.js +83 -0
  223. package/dist/vision/vision.js.map +1 -0
  224. package/package.json +124 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tjbot.js","sourceRoot":"","sources":["../src/tjbot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAqB,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACH,UAAU,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,KAAK,IAAI,UAAU,EACnB,UAAU,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAS/C,eAAe;AACf,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C,iCAAiC;AACjC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzF,0FAA0F;AAC1F,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpB;;GAEG;AACH,MAAM,KAAK;IACP;;;OAGG;IACH,MAAM,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;IAE5C;;;OAGG;IACK,MAAM,CAAC,QAAQ,CAAoB;IAE3C;;;OAGG;IACH,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAe;IAErB;;;OAGG;IACH,QAAQ,CAAU;IAElB;;OAEG;IACH,SAAS,CAAqB;IAE9B;;OAEG;IACK,YAAY,GAAa,EAAE,CAAC;IAEpC;;OAEG;IACK,YAAY,GAAY,KAAK,CAAC;IAEtC;;OAEG;IACK,eAAe,GAAyB,IAAI,CAAC;IAErD;;OAEG;IACK,sBAAsB,GAAY,KAAK,CAAC;IAEhD;;;OAGG;IACH;QACI,mDAAmD;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,mBAA2B,aAAa;QAC3D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,cAA2C,EAAE,gBAAyB;QACnF,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAErC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAEhE,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAClC,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACnC,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CACP,iHAAiH,CACpH,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAE9E,sBAAsB;QACtB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,+CAA+C;QAC/C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO;QACX,CAAC;QAED,MAAM,cAAc,GAAe,EAAE,CAAC;QAEtC,0CAA0C;QAC1C,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YAClC,QAAQ,MAAM,EAAE,CAAC;gBACb,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACnC,MAAM;gBACV,CAAC;gBAED,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACtC,MAAM,WAAW,GAAG,WAAW,EAAE,cAAc,IAAI,KAAK,CAAC;oBACzD,MAAM,cAAc,GAAG,WAAW,EAAE,iBAAiB,IAAI,KAAK,CAAC;oBAE/D,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,EAAE,CAAC;wBAClC,MAAM,IAAI,UAAU,CAChB,sKAAsK,CACzK,CAAC;oBACN,CAAC;oBAED,IAAI,WAAW,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CACP,0BAA0B;4BACtB,GAAG;4BACH,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChF,GAAG;4BACH,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY;gCAChC,CAAC,CAAC,QAAQ,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE;gCAC9C,CAAC,CAAC,EAAE,CAAC;4BACT,GAAG,CACV,CAAC;oBACN,CAAC;oBAED,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,CAAC,IAAI,CACP,4CAA4C,WAAW,EAAE,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,WAAW,EAAE,QAAQ,IAAI,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,CAC7J,CAAC;oBACN,CAAC;oBAED,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC3C,MAAM;gBACV,CAAC;gBAED,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;oBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,kCAAkC,MAAM,EAAE,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;oBAC9E,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACvC,MAAM;gBACV,CAAC;gBAED,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;oBAC3D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAClC,MAAM;gBACV,CAAC;gBAED,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,EAAE,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;oBAC3E,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM;gBACV,CAAC;gBACD;oBACI,MAAM;YACd,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAC5B,oDAAoD;QACpD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;QAClD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,OAAO;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACnC,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,UAAU,CAAC,oCAAoC,EAAE;oBACvD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnE,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;OAGG;IACK,0BAA0B;QAC9B,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAEnC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,KAAK,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtG,KAAK,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,KAAK,CACR,uBAAuB,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACvG,CAAC;YACF,KAAK,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,QAAiB;QAC/D,MAAM,kBAAkB,GAAG,IAAI,CAAC;QAEhC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,mCAAmC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACX,CAAC;QAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE5B,IAAI,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;aAC1E,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,mCAAmC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,UAAsB;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,IAAI,UAAU,CAChB,uFAAuF,CAC1F,CAAC;QACN,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3F,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,UAAU,CAAC,MAAM;gBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,UAAU,CAChB,qCAAqC;wBACjC,qCAAqC;wBACrC,GAAG,QAAQ,CAAC,UAAU,qCAAqC,CAClE,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,UAAU,CAAC,GAAG;gBACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,UAAU,CAChB,kCAAkC;wBAC9B,qCAAqC;wBACrC,GAAG,QAAQ,CAAC,MAAM,qCAAqC,CAC9D,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,UAAU,CAAC,KAAK;gBACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,UAAU,CAChB,uCAAuC;wBACnC,qCAAqC;wBACrC,GAAG,QAAQ,CAAC,GAAG,GAAG;wBAClB,oCAAoC,CAC3C,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,UAAU,CAAC,KAAK;gBACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,UAAU,CAChB,oCAAoC;wBAChC,qCAAqC;wBACrC,GAAG,QAAQ,CAAC,OAAO,qCAAqC,CAC/D,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,UAAU,CAAC,IAAI;gBAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,IAAI,UAAU,CAChB,uCAAuC;wBACnC,qCAAqC;wBACrC,GAAG,QAAQ,CAAC,KAAK,qCAAqC,CAC7D,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV;gBACI,MAAM;QACd,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACnB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAE/E;;;OAGG;IACH,cAAc,CAAC,SAAqB,EAAE,gBAAyB,IAAI;QAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAwBD,KAAK,CAAC,MAAM,CACR,eAAwC,EACxC,aAAsC;QAEtC,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAExC,MAAM,SAAS,GAAI,YAAY,CAAC,OAAO,EAAE,KAAiC,EAAE,KAAK,IAAI,WAAW,CAAC;QAEjG,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,MAAM,IAAI,UAAU,CAChB,cAAc,SAAS,6GAA6G,CACvI,CAAC;QACN,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,cAAc,SAAS,uDAAuD,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACvB,wHAAwH;YACxH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;gBAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC;gBAClD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,+CAA+C;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,GAAG,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,GAAG;QACL,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YACtD,IAAI,CAAC;gBACD,OAAO,MAAM,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACP,mDAAmD;gBACnD,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,QAAiB;QACxB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,KAAsB;QACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,KAAsB;QACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,KAAsB;QACpC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,KAAsB;QACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAE/E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,sBAAsB;QACtB,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAE9B,gCAAgC;QAChC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,SAAS;QACT,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,WAAmB,GAAG;QAC7C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YAC3F,QAAQ,GAAG,GAAG,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YACzF,QAAQ,GAAG,GAAG,CAAC;QACnB,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,0BAA0B;QAC1B,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,8BAA8B;QAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAErC,oBAAoB;QACpB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,aAAa;QACb,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QAC3D,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC3C,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,yBAAyB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9D,mBAAmB;QACnB,MAAM,CAAC,OAAO,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GACH,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,cAAc,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAElC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,OAAe;QACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC;QAEtC,mFAAmF;QACnF,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QACxB,MAAM,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAE/E;;;;;;OAMG;IACH,OAAO;QACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAErC,MAAM,KAAK,GAAG,GAAG,CAAC;QAElB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;;AAGL,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAE/E;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,eAAe,KAAK,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { TTSEngine } from '../tts-engine.js';
17
+ /**
18
+ * Azure Cognitive Services Text-to-Speech Engine
19
+ *
20
+ * Cloud-based speech synthesis using Microsoft Azure Speech Services.
21
+ * Requires Azure subscription key and region to be configured.
22
+ * @public
23
+ */
24
+ export declare class AzureTTSEngine extends TTSEngine {
25
+ private subscriptionKey?;
26
+ private region?;
27
+ initialize(): Promise<void>;
28
+ synthesize(text: string): Promise<Buffer>;
29
+ }
30
+ //# sourceMappingURL=azure-tts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-tts.d.ts","sourceRoot":"","sources":["../../../src/tts/backends/azure-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,SAAS;IACzC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;IAElB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+DlD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import * as sdk from 'microsoft-cognitiveservices-speech-sdk';
17
+ import { loadAzureCredentials } from '../../utils/credentials.js';
18
+ import { TJBotError } from '../../utils/index.js';
19
+ import { getLogger } from '../../utils/logging.js';
20
+ import { TTSEngine } from '../tts-engine.js';
21
+ const logger = getLogger(import.meta.url);
22
+ /**
23
+ * Azure Cognitive Services Text-to-Speech Engine
24
+ *
25
+ * Cloud-based speech synthesis using Microsoft Azure Speech Services.
26
+ * Requires Azure subscription key and region to be configured.
27
+ * @public
28
+ */
29
+ export class AzureTTSEngine extends TTSEngine {
30
+ subscriptionKey;
31
+ region;
32
+ async initialize() {
33
+ const config = this.config;
34
+ const credentials = loadAzureCredentials(config?.credentialsPath);
35
+ this.subscriptionKey = credentials.speechKey;
36
+ this.region = credentials.speechRegion;
37
+ if (!config?.voice) {
38
+ throw new TJBotError('Azure TTS voice not specified. Provide voice in speak.backend.azure-tts config.');
39
+ }
40
+ if (!this.subscriptionKey || !this.region) {
41
+ throw new TJBotError('Azure Speech subscription key and region are required.');
42
+ }
43
+ logger.info('Azure TTS engine initialized');
44
+ logger.debug(`Initialized AzureTTSEngine with config:
45
+ voice: ${config?.voice},
46
+ region: ${this.region},
47
+ subscriptionKey: ${this.subscriptionKey ? '***' : 'not set'}`);
48
+ }
49
+ async synthesize(text) {
50
+ if (!this.subscriptionKey || !this.region) {
51
+ throw new TJBotError('Azure TTS not initialized. Call initialize() first.');
52
+ }
53
+ this.validateText(text);
54
+ try {
55
+ const voiceName = this.config?.voice;
56
+ if (!voiceName) {
57
+ throw new TJBotError('Azure TTS voice not specified. Provide voice in speak config.');
58
+ }
59
+ logger.verbose(`Synthesizing speech with Azure TTS (voice=${voiceName})`);
60
+ // Create speech config
61
+ const speechConfig = sdk.SpeechConfig.fromSubscription(this.subscriptionKey, this.region);
62
+ speechConfig.speechSynthesisVoiceName = voiceName;
63
+ speechConfig.speechSynthesisOutputFormat = sdk.SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm;
64
+ // Create synthesizer with null audio config to get result in memory
65
+ const synthesizer = new sdk.SpeechSynthesizer(speechConfig, undefined);
66
+ return new Promise((resolve, reject) => {
67
+ synthesizer.speakTextAsync(text, (result) => {
68
+ synthesizer.close();
69
+ if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) {
70
+ const audioData = Buffer.from(result.audioData);
71
+ logger.debug(`Azure TTS synthesis complete: ${audioData.length} bytes`);
72
+ resolve(audioData);
73
+ }
74
+ else if (result.reason === sdk.ResultReason.Canceled) {
75
+ const cancellation = sdk.SpeechSynthesisCancellationDetails.fromResult(result);
76
+ reject(new TJBotError(`Azure TTS canceled: ${cancellation.reason} - ${cancellation.errorDetails}`));
77
+ }
78
+ else {
79
+ reject(new TJBotError(`Azure TTS synthesis failed with reason: ${result.reason}`));
80
+ }
81
+ }, (error) => {
82
+ synthesizer.close();
83
+ reject(new TJBotError(`Azure TTS synthesis error: ${error}`));
84
+ });
85
+ });
86
+ }
87
+ catch (error) {
88
+ throw new TJBotError('Azure TTS synthesis failed', { cause: error });
89
+ }
90
+ }
91
+ }
92
+ //# sourceMappingURL=azure-tts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-tts.js","sourceRoot":"","sources":["../../../src/tts/backends/azure-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,GAAG,MAAM,wCAAwC,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IACjC,eAAe,CAAU;IACzB,MAAM,CAAU;IAExB,KAAK,CAAC,UAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAA+B,CAAC;QACpD,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,eAAqC,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;QAEvC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAAC,iFAAiF,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,wDAAwD,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC;qBACA,MAAM,EAAE,KAAK;sBACZ,IAAI,CAAC,MAAM;+BACF,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,qDAAqD,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,KAAe,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;YAC1F,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,6CAA6C,SAAS,GAAG,CAAC,CAAC;YAE1E,uBAAuB;YACvB,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1F,YAAY,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAClD,YAAY,CAAC,2BAA2B,GAAG,GAAG,CAAC,2BAA2B,CAAC,qBAAqB,CAAC;YAEjG,oEAAoE;YACpE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAEvE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,WAAW,CAAC,cAAc,CACtB,IAAI,EACJ,CAAC,MAAiC,EAAE,EAAE;oBAClC,WAAW,CAAC,KAAK,EAAE,CAAC;oBAEpB,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;wBAChE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAChD,MAAM,CAAC,KAAK,CAAC,iCAAiC,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;wBACxE,OAAO,CAAC,SAAS,CAAC,CAAC;oBACvB,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACrD,MAAM,YAAY,GACd,GAQH,CAAC,kCAAkC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBACxD,MAAM,CACF,IAAI,UAAU,CACV,uBAAuB,YAAY,CAAC,MAAM,MAAM,YAAY,CAAC,YAAY,EAAE,CAC9E,CACJ,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,UAAU,CAAC,2CAA2C,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACvF,CAAC;gBACL,CAAC,EACD,CAAC,KAAa,EAAE,EAAE;oBACd,WAAW,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,UAAU,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC,CACJ,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { TTSEngine } from '../tts-engine.js';
17
+ /**
18
+ * Google Cloud Text-to-Speech Engine
19
+ *
20
+ * Cloud-based speech synthesis using Google Cloud Text-to-Speech API.
21
+ * Requires Google Cloud credentials JSON file to be configured.
22
+ * @public
23
+ */
24
+ export declare class GoogleCloudTTSEngine extends TTSEngine {
25
+ private client?;
26
+ initialize(): Promise<void>;
27
+ synthesize(text: string): Promise<Buffer>;
28
+ /**
29
+ * Add WAV header to raw PCM audio data
30
+ * @param pcmData - Raw PCM audio data
31
+ * @param sampleRate - Sample rate in Hz
32
+ * @param numChannels - Number of audio channels
33
+ * @param bitsPerSample - Bits per sample (usually 16)
34
+ * @returns Buffer with WAV header prepended
35
+ */
36
+ private addWavHeader;
37
+ }
38
+ //# sourceMappingURL=google-cloud-tts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cloud-tts.d.ts","sourceRoot":"","sources":["../../../src/tts/backends/google-cloud-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAO,CAAC,MAAM,CAAC,CAAqB;IAE9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C/C;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;CA8BvB"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { TextToSpeechClient, protos as ttsProtos } from '@google-cloud/text-to-speech';
17
+ import { loadGoogleCloudCredentials } from '../../utils/credentials.js';
18
+ import { TJBotError } from '../../utils/index.js';
19
+ import { getLogger } from '../../utils/logging.js';
20
+ import { TTSEngine } from '../tts-engine.js';
21
+ const logger = getLogger(import.meta.url);
22
+ /**
23
+ * Google Cloud Text-to-Speech Engine
24
+ *
25
+ * Cloud-based speech synthesis using Google Cloud Text-to-Speech API.
26
+ * Requires Google Cloud credentials JSON file to be configured.
27
+ * @public
28
+ */
29
+ export class GoogleCloudTTSEngine extends TTSEngine {
30
+ client;
31
+ async initialize() {
32
+ const config = this.config;
33
+ const credentials = loadGoogleCloudCredentials(config?.credentialsPath);
34
+ if (!config?.voice) {
35
+ throw new TJBotError('Google Cloud TTS voice not specified. Provide voice in speak.backend.google-cloud-tts config.');
36
+ }
37
+ if (!config?.languageCode) {
38
+ throw new TJBotError('Google Cloud TTS languageCode not specified. Provide languageCode in speak.backend.google-cloud-tts config.');
39
+ }
40
+ this.client = new TextToSpeechClient();
41
+ logger.info('Google Cloud TTS engine initialized');
42
+ logger.debug(`Initialized GoogleCloudTTSEngine with config:
43
+ voice: ${config?.voice},
44
+ languageCode: ${config?.languageCode},
45
+ credentialsPath: ${credentials.credentialsPath}`);
46
+ }
47
+ async synthesize(text) {
48
+ if (!this.client) {
49
+ throw new TJBotError('Google Cloud TTS client not initialized. Call initialize() first.');
50
+ }
51
+ this.validateText(text);
52
+ try {
53
+ const voice = this.config?.voice;
54
+ const languageCode = this.config?.languageCode;
55
+ logger.verbose(`Synthesizing speech with Google Cloud TTS (voice=${voice}, language=${languageCode})`);
56
+ const request = {
57
+ input: { text },
58
+ voice: {
59
+ name: voice,
60
+ languageCode,
61
+ },
62
+ audioConfig: {
63
+ audioEncoding: ttsProtos.google.cloud.texttospeech.v1.AudioEncoding.LINEAR16,
64
+ sampleRateHertz: 24000,
65
+ },
66
+ };
67
+ const [response] = await this.client.synthesizeSpeech(request);
68
+ if (!response.audioContent) {
69
+ throw new TJBotError('No audio data returned from Google Cloud TTS');
70
+ }
71
+ // Convert audio content to Buffer
72
+ const audioBuffer = Buffer.from(response.audioContent);
73
+ // Google returns raw LINEAR16 PCM, we need to add WAV header
74
+ const wavBuffer = this.addWavHeader(audioBuffer, 24000, 1, 16);
75
+ logger.debug(`Google Cloud TTS synthesis complete: ${wavBuffer.length} bytes`);
76
+ return wavBuffer;
77
+ }
78
+ catch (error) {
79
+ throw new TJBotError('Google Cloud TTS synthesis failed', { cause: error });
80
+ }
81
+ }
82
+ /**
83
+ * Add WAV header to raw PCM audio data
84
+ * @param pcmData - Raw PCM audio data
85
+ * @param sampleRate - Sample rate in Hz
86
+ * @param numChannels - Number of audio channels
87
+ * @param bitsPerSample - Bits per sample (usually 16)
88
+ * @returns Buffer with WAV header prepended
89
+ */
90
+ addWavHeader(pcmData, sampleRate, numChannels, bitsPerSample) {
91
+ const blockAlign = (numChannels * bitsPerSample) / 8;
92
+ const byteRate = sampleRate * blockAlign;
93
+ const dataSize = pcmData.length;
94
+ const headerSize = 44;
95
+ const fileSize = headerSize + dataSize - 8;
96
+ const header = Buffer.alloc(headerSize);
97
+ // RIFF chunk descriptor
98
+ header.write('RIFF', 0);
99
+ header.writeUInt32LE(fileSize, 4);
100
+ header.write('WAVE', 8);
101
+ // fmt sub-chunk
102
+ header.write('fmt ', 12);
103
+ header.writeUInt32LE(16, 16); // Subchunk1Size (16 for PCM)
104
+ header.writeUInt16LE(1, 20); // AudioFormat (1 for PCM)
105
+ header.writeUInt16LE(numChannels, 22);
106
+ header.writeUInt32LE(sampleRate, 24);
107
+ header.writeUInt32LE(byteRate, 28);
108
+ header.writeUInt16LE(blockAlign, 32);
109
+ header.writeUInt16LE(bitsPerSample, 34);
110
+ // data sub-chunk
111
+ header.write('data', 36);
112
+ header.writeUInt32LE(dataSize, 40);
113
+ return Buffer.concat([header, pcmData]);
114
+ }
115
+ }
116
+ //# sourceMappingURL=google-cloud-tts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cloud-tts.js","sourceRoot":"","sources":["../../../src/tts/backends/google-cloud-tts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { TTSEngine } from '../tts-engine.js';
18
+ /**
19
+ * IBM Watson Text-to-Speech Engine
20
+ *
21
+ * Cloud-based speech synthesis using IBM Watson Text to Speech service.
22
+ * Requires IBM Cloud credentials to be configured in ibm-credentials.env file.
23
+ * @public
24
+ */
25
+ export declare class IBMTTSEngine extends TTSEngine {
26
+ private ttsService?;
27
+ /**
28
+ * Initialize the IBM Watson TTS service.
29
+ * Creates a new TextToSpeechV1 instance.
30
+ */
31
+ initialize(): Promise<void>;
32
+ /**
33
+ * Synthesize text to WAV audio using IBM Watson TTS.
34
+ * Voice is configured at engine initialization time via config.
35
+ *
36
+ * @param text - Text to synthesize
37
+ * @returns WAV audio buffer
38
+ * @throws Error if service is not initialized or synthesis fails
39
+ */
40
+ synthesize(text: string): Promise<Buffer>;
41
+ }
42
+ //# sourceMappingURL=ibm-watson-tts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ibm-watson-tts.d.ts","sourceRoot":"","sources":["../../../src/tts/backends/ibm-watson-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDlD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import TextToSpeechV1 from 'ibm-watson/text-to-speech/v1.js';
18
+ import { loadIBMWatsonCloudCredentials } from '../../utils/credentials.js';
19
+ import { TJBotError } from '../../utils/index.js';
20
+ import { getLogger } from '../../utils/logging.js';
21
+ import { TTSEngine } from '../tts-engine.js';
22
+ const logger = getLogger(import.meta.url);
23
+ /**
24
+ * IBM Watson Text-to-Speech Engine
25
+ *
26
+ * Cloud-based speech synthesis using IBM Watson Text to Speech service.
27
+ * Requires IBM Cloud credentials to be configured in ibm-credentials.env file.
28
+ * @public
29
+ */
30
+ export class IBMTTSEngine extends TTSEngine {
31
+ ttsService;
32
+ /**
33
+ * Initialize the IBM Watson TTS service.
34
+ * Creates a new TextToSpeechV1 instance.
35
+ */
36
+ async initialize() {
37
+ const config = this.config;
38
+ loadIBMWatsonCloudCredentials(config?.credentialsPath);
39
+ if (!config?.voice) {
40
+ throw new TJBotError('IBM Watson TTS voice not specified. Provide voice in speak.backend.ibm-watson-tts config.');
41
+ }
42
+ this.ttsService = new TextToSpeechV1({});
43
+ logger.info('IBM Watson TTS engine initialized');
44
+ logger.debug(`Initialized IBMWatsonTTSEngine with config:
45
+ voice: ${config?.voice},
46
+ credentialsPath: ${config?.credentialsPath}`);
47
+ }
48
+ /**
49
+ * Synthesize text to WAV audio using IBM Watson TTS.
50
+ * Voice is configured at engine initialization time via config.
51
+ *
52
+ * @param text - Text to synthesize
53
+ * @returns WAV audio buffer
54
+ * @throws Error if service is not initialized or synthesis fails
55
+ */
56
+ async synthesize(text) {
57
+ if (!this.ttsService) {
58
+ throw new TJBotError('IBM Watson TTS service not initialized. Call initialize() first.');
59
+ }
60
+ this.validateText(text);
61
+ try {
62
+ // Use voice from configuration
63
+ const voiceName = this.config?.voice;
64
+ if (!voiceName) {
65
+ throw new TJBotError('IBM Watson TTS voice not specified. Provide voice in speak config.');
66
+ }
67
+ const params = {
68
+ text,
69
+ voice: voiceName,
70
+ accept: 'audio/wav',
71
+ };
72
+ logger.verbose(`Synthesizing speech with IBM Watson TTS (voice=${voiceName})`);
73
+ const response = await this.ttsService.synthesize(params);
74
+ if (!response.result) {
75
+ throw new TJBotError('No audio data returned from IBM Watson TTS');
76
+ }
77
+ // Convert the readable stream to a buffer
78
+ const chunks = [];
79
+ return new Promise((resolve, reject) => {
80
+ response.result.on('data', (chunk) => {
81
+ chunks.push(Buffer.from(chunk));
82
+ });
83
+ response.result.on('end', () => {
84
+ const buffer = Buffer.concat(chunks);
85
+ logger.debug(`IBM Watson TTS synthesis complete: ${buffer.length} bytes`);
86
+ resolve(buffer);
87
+ });
88
+ response.result.on('error', (err) => {
89
+ logger.error('Error during IBM Watson TTS synthesis:', err);
90
+ reject(err);
91
+ });
92
+ });
93
+ }
94
+ catch (error) {
95
+ throw new TJBotError('IBM Watson TTS synthesis failed', { cause: error });
96
+ }
97
+ }
98
+ }
99
+ //# sourceMappingURL=ibm-watson-tts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ibm-watson-tts.js","sourceRoot":"","sources":["../../../src/tts/backends/ibm-watson-tts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { TTSEngine } from '../tts-engine.js';
17
+ /**
18
+ * Sherpa-ONNX Local Text-to-Speech Engine
19
+ *
20
+ * Offline speech synthesis using Sherpa-ONNX library with Piper voices.
21
+ * Models are automatically downloaded and cached in ~/.tjbot/models/sherpa-tts/
22
+ * @public
23
+ */
24
+ export declare class SherpaONNXTTSEngine extends TTSEngine {
25
+ private registry;
26
+ private modelInfo?;
27
+ private modelPath?;
28
+ private ttsEngine?;
29
+ /**
30
+ * Initialize the sherpa-onnx TTS engine.
31
+ * Pre-downloads the configured model.
32
+ */
33
+ initialize(): Promise<void>;
34
+ private pathForModel;
35
+ /**
36
+ * Setup synthesizer based on model configuration
37
+ */
38
+ private setupSynthesizer;
39
+ /**
40
+ * Synthesize text to WAV audio using sherpa-onnx.
41
+ * Voice is configured at engine initialization time via config.
42
+ *
43
+ * @param text - Text to synthesize
44
+ * @returns WAV audio buffer
45
+ * @throws Error if not initialized or synthesis fails
46
+ */
47
+ synthesize(text: string): Promise<Buffer>;
48
+ /**
49
+ * Resolve the data directory for VITS models. Some models include
50
+ * a separate "espeak-ng-data" folder with necessary data files.
51
+ * If that folder exists, return its path. Otherwise, return
52
+ * the base model directory.
53
+ * @returns Path to the data directory to be used for VITS synthesis
54
+ */
55
+ private resolveVitsDataDir;
56
+ /**
57
+ * Setup synthesizer based on model configuration. Creates the OfflineTts instance with the appropriate config.
58
+ * @param modelFile The full path to the model file
59
+ * @param vitsDataDir The directory containing VITS data files (may be the same as modelDir or a subdirectory)
60
+ * @returns An instance of OfflineTts configured with the specified model
61
+ */
62
+ private createOfflineTTS;
63
+ /**
64
+ * Convert PCM samples to WAV format.
65
+ * Creates a proper WAV file with header and audio data.
66
+ *
67
+ * @param samples - PCM audio samples (typically as Float32Array)
68
+ * @param sampleRate - Sample rate in Hz (e.g., 22050)
69
+ * @returns WAV file as Buffer
70
+ */
71
+ private audioToWav;
72
+ /**
73
+ * Convert Float32 PCM samples to 16-bit PCM.
74
+ *
75
+ * @param float32Samples - Float32 audio samples (range -1.0 to 1.0)
76
+ * @returns 16-bit PCM samples as Buffer
77
+ */
78
+ private float32ToPcm16;
79
+ }
80
+ //# sourceMappingURL=sherpa-onnx-tts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sherpa-onnx-tts.d.ts","sourceRoot":"","sources":["../../../src/tts/backends/sherpa-onnx-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe7C;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAa;IAE/B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCjC,OAAO,CAAC,YAAY;IAqBpB;;OAEG;YACW,gBAAgB;IAsB9B;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B/C;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAmClB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAUzB"}