apexify.js 4.5.54 → 4.5.56

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 (247) hide show
  1. package/dist/cjs/ai/ApexAI.d.ts +1 -164
  2. package/dist/cjs/ai/ApexAI.d.ts.map +1 -1
  3. package/dist/cjs/ai/ApexAI.js +190 -373
  4. package/dist/cjs/ai/ApexAI.js.map +1 -1
  5. package/dist/cjs/ai/ApexModules.d.ts +1 -1
  6. package/dist/cjs/ai/ApexModules.d.ts.map +1 -1
  7. package/dist/cjs/ai/ApexModules.js +6 -18
  8. package/dist/cjs/ai/ApexModules.js.map +1 -1
  9. package/dist/cjs/ai/functions/draw.d.ts.map +1 -1
  10. package/dist/cjs/ai/functions/draw.js +6 -6
  11. package/dist/cjs/ai/functions/draw.js.map +1 -1
  12. package/dist/cjs/ai/modals-chat/electronHub/imageModels.d.ts +1 -1
  13. package/dist/cjs/ai/modals-chat/electronHub/imageModels.d.ts.map +1 -1
  14. package/dist/cjs/ai/modals-chat/electronHub/imageModels.js +1 -4
  15. package/dist/cjs/ai/modals-chat/electronHub/imageModels.js.map +1 -1
  16. package/dist/cjs/ai/utils.d.ts +1 -4
  17. package/dist/cjs/ai/utils.d.ts.map +1 -1
  18. package/dist/cjs/ai/utils.js +1 -7
  19. package/dist/cjs/ai/utils.js.map +1 -1
  20. package/dist/cjs/canvas/ApexPainter.d.ts +17 -14
  21. package/dist/cjs/canvas/ApexPainter.d.ts.map +1 -1
  22. package/dist/cjs/canvas/ApexPainter.js +29 -11
  23. package/dist/cjs/canvas/ApexPainter.js.map +1 -1
  24. package/dist/cjs/canvas/utils/Background/bg.d.ts +24 -0
  25. package/dist/cjs/canvas/utils/Background/bg.d.ts.map +1 -0
  26. package/dist/{esm/canvas/utils → cjs/canvas/utils/Background}/bg.js +27 -52
  27. package/dist/cjs/canvas/utils/Background/bg.js.map +1 -0
  28. package/dist/cjs/canvas/utils/Background/circular.d.ts +3 -0
  29. package/dist/cjs/canvas/utils/Background/circular.d.ts.map +1 -0
  30. package/dist/{esm/canvas/utils → cjs/canvas/utils/Background}/circular.js +0 -8
  31. package/dist/cjs/canvas/utils/{circular.js.map → Background/circular.js.map} +1 -1
  32. package/dist/cjs/canvas/utils/Background/radius.d.ts +18 -0
  33. package/dist/cjs/canvas/utils/Background/radius.d.ts.map +1 -0
  34. package/dist/cjs/canvas/utils/Background/radius.js +115 -0
  35. package/dist/cjs/canvas/utils/Background/radius.js.map +1 -0
  36. package/dist/cjs/canvas/utils/{charts.d.ts → Charts/charts.d.ts} +1 -1
  37. package/dist/cjs/canvas/utils/Charts/charts.d.ts.map +1 -0
  38. package/dist/cjs/canvas/utils/Charts/charts.js.map +1 -0
  39. package/dist/cjs/canvas/utils/Custom/customLines.d.ts +3 -0
  40. package/dist/cjs/canvas/utils/Custom/customLines.d.ts.map +1 -0
  41. package/dist/cjs/canvas/utils/Custom/customLines.js.map +1 -0
  42. package/dist/cjs/canvas/utils/General/conversion.d.ts.map +1 -0
  43. package/dist/cjs/canvas/utils/General/conversion.js.map +1 -0
  44. package/dist/cjs/canvas/utils/{general functions.d.ts → General/general functions.d.ts } +18 -4
  45. package/dist/cjs/canvas/utils/General/general functions.d.ts.map +1 -0
  46. package/dist/{esm/canvas/utils → cjs/canvas/utils/General}/general functions.js +89 -58
  47. package/dist/cjs/canvas/utils/General/general functions.js.map +1 -0
  48. package/dist/cjs/canvas/utils/Image/imageProperties.d.ts +81 -0
  49. package/dist/cjs/canvas/utils/Image/imageProperties.d.ts.map +1 -0
  50. package/dist/{esm/canvas/utils → cjs/canvas/utils/Image}/imageProperties.js +224 -45
  51. package/dist/cjs/canvas/utils/Image/imageProperties.js.map +1 -0
  52. package/dist/{esm/canvas/utils → cjs/canvas/utils/Texts}/textProperties.d.ts +1 -1
  53. package/dist/cjs/canvas/utils/Texts/textProperties.d.ts.map +1 -0
  54. package/dist/cjs/canvas/utils/Texts/textProperties.js.map +1 -0
  55. package/dist/cjs/canvas/utils/types.d.ts +41 -1
  56. package/dist/cjs/canvas/utils/types.d.ts.map +1 -1
  57. package/dist/cjs/canvas/utils/types.js.map +1 -1
  58. package/dist/cjs/canvas/utils/utils.d.ts +11 -11
  59. package/dist/cjs/canvas/utils/utils.d.ts.map +1 -1
  60. package/dist/cjs/canvas/utils/utils.js +11 -10
  61. package/dist/cjs/canvas/utils/utils.js.map +1 -1
  62. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  63. package/dist/esm/ai/ApexAI.d.ts +1 -164
  64. package/dist/esm/ai/ApexAI.d.ts.map +1 -1
  65. package/dist/esm/ai/ApexAI.js +190 -373
  66. package/dist/esm/ai/ApexAI.js.map +1 -1
  67. package/dist/esm/ai/ApexModules.d.ts +1 -1
  68. package/dist/esm/ai/ApexModules.d.ts.map +1 -1
  69. package/dist/esm/ai/ApexModules.js +6 -18
  70. package/dist/esm/ai/ApexModules.js.map +1 -1
  71. package/dist/esm/ai/functions/draw.d.ts.map +1 -1
  72. package/dist/esm/ai/functions/draw.js +6 -6
  73. package/dist/esm/ai/functions/draw.js.map +1 -1
  74. package/dist/esm/ai/modals-chat/electronHub/imageModels.d.ts +1 -1
  75. package/dist/esm/ai/modals-chat/electronHub/imageModels.d.ts.map +1 -1
  76. package/dist/esm/ai/modals-chat/electronHub/imageModels.js +1 -4
  77. package/dist/esm/ai/modals-chat/electronHub/imageModels.js.map +1 -1
  78. package/dist/esm/ai/utils.d.ts +1 -4
  79. package/dist/esm/ai/utils.d.ts.map +1 -1
  80. package/dist/esm/ai/utils.js +1 -7
  81. package/dist/esm/ai/utils.js.map +1 -1
  82. package/dist/esm/canvas/ApexPainter.d.ts +17 -14
  83. package/dist/esm/canvas/ApexPainter.d.ts.map +1 -1
  84. package/dist/esm/canvas/ApexPainter.js +29 -11
  85. package/dist/esm/canvas/ApexPainter.js.map +1 -1
  86. package/dist/esm/canvas/utils/Background/bg.d.ts +24 -0
  87. package/dist/esm/canvas/utils/Background/bg.d.ts.map +1 -0
  88. package/dist/{cjs/canvas/utils → esm/canvas/utils/Background}/bg.js +27 -52
  89. package/dist/esm/canvas/utils/Background/bg.js.map +1 -0
  90. package/dist/esm/canvas/utils/Background/circular.d.ts +3 -0
  91. package/dist/esm/canvas/utils/Background/circular.d.ts.map +1 -0
  92. package/dist/{cjs/canvas/utils → esm/canvas/utils/Background}/circular.js +0 -8
  93. package/dist/esm/canvas/utils/{circular.js.map → Background/circular.js.map} +1 -1
  94. package/dist/esm/canvas/utils/Background/radius.d.ts +18 -0
  95. package/dist/esm/canvas/utils/Background/radius.d.ts.map +1 -0
  96. package/dist/esm/canvas/utils/Background/radius.js +115 -0
  97. package/dist/esm/canvas/utils/Background/radius.js.map +1 -0
  98. package/dist/esm/canvas/utils/{charts.d.ts → Charts/charts.d.ts} +1 -1
  99. package/dist/esm/canvas/utils/Charts/charts.d.ts.map +1 -0
  100. package/dist/esm/canvas/utils/Charts/charts.js.map +1 -0
  101. package/dist/esm/canvas/utils/Custom/customLines.d.ts +3 -0
  102. package/dist/esm/canvas/utils/Custom/customLines.d.ts.map +1 -0
  103. package/dist/esm/canvas/utils/Custom/customLines.js.map +1 -0
  104. package/dist/esm/canvas/utils/General/conversion.d.ts.map +1 -0
  105. package/dist/esm/canvas/utils/General/conversion.js.map +1 -0
  106. package/dist/esm/canvas/utils/{general functions.d.ts → General/general functions.d.ts } +18 -4
  107. package/dist/esm/canvas/utils/General/general functions.d.ts.map +1 -0
  108. package/dist/{cjs/canvas/utils → esm/canvas/utils/General}/general functions.js +89 -58
  109. package/dist/esm/canvas/utils/General/general functions.js.map +1 -0
  110. package/dist/esm/canvas/utils/Image/imageProperties.d.ts +81 -0
  111. package/dist/esm/canvas/utils/Image/imageProperties.d.ts.map +1 -0
  112. package/dist/{cjs/canvas/utils → esm/canvas/utils/Image}/imageProperties.js +224 -45
  113. package/dist/esm/canvas/utils/Image/imageProperties.js.map +1 -0
  114. package/dist/{cjs/canvas/utils → esm/canvas/utils/Texts}/textProperties.d.ts +1 -1
  115. package/dist/esm/canvas/utils/Texts/textProperties.d.ts.map +1 -0
  116. package/dist/esm/canvas/utils/Texts/textProperties.js.map +1 -0
  117. package/dist/esm/canvas/utils/types.d.ts +41 -1
  118. package/dist/esm/canvas/utils/types.d.ts.map +1 -1
  119. package/dist/esm/canvas/utils/types.js.map +1 -1
  120. package/dist/esm/canvas/utils/utils.d.ts +11 -11
  121. package/dist/esm/canvas/utils/utils.d.ts.map +1 -1
  122. package/dist/esm/canvas/utils/utils.js +11 -10
  123. package/dist/esm/canvas/utils/utils.js.map +1 -1
  124. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  125. package/lib/ai/ApexAI.ts +195 -697
  126. package/lib/ai/ApexModules.ts +7 -17
  127. package/lib/ai/functions/draw.ts +6 -8
  128. package/lib/ai/modals-chat/electronHub/imageModels.ts +2 -5
  129. package/lib/ai/utils.ts +0 -6
  130. package/lib/canvas/ApexPainter.ts +73 -38
  131. package/lib/canvas/utils/Background/bg.ts +97 -0
  132. package/lib/canvas/utils/Background/circular.ts +17 -0
  133. package/lib/canvas/utils/Background/radius.ts +113 -0
  134. package/lib/canvas/utils/{charts.ts → Charts/charts.ts} +1 -1
  135. package/lib/canvas/utils/{customLines.ts → Custom/customLines.ts} +1 -1
  136. package/lib/canvas/utils/{conversion.ts → General/conversion.ts} +1 -1
  137. package/lib/canvas/utils/{general functions.ts → General/general functions.ts } +143 -121
  138. package/lib/canvas/utils/Image/imageProperties.ts +631 -0
  139. package/lib/canvas/utils/{textProperties.ts → Texts/textProperties.ts} +1 -1
  140. package/lib/canvas/utils/types.ts +45 -2
  141. package/lib/canvas/utils/utils.ts +14 -11
  142. package/package.json +1 -4
  143. package/dist/cjs/ai/functions/generateVoiceResponse.d.ts +0 -10
  144. package/dist/cjs/ai/functions/generateVoiceResponse.d.ts.map +0 -1
  145. package/dist/cjs/ai/functions/generateVoiceResponse.js +0 -161
  146. package/dist/cjs/ai/functions/generateVoiceResponse.js.map +0 -1
  147. package/dist/cjs/ai/modals-chat/gemini/Gemini-flash.d.ts +0 -13
  148. package/dist/cjs/ai/modals-chat/gemini/Gemini-flash.d.ts.map +0 -1
  149. package/dist/cjs/ai/modals-chat/gemini/Gemini-flash.js +0 -185
  150. package/dist/cjs/ai/modals-chat/gemini/Gemini-flash.js.map +0 -1
  151. package/dist/cjs/ai/modals-chat/gemini/Gemini-pro.d.ts +0 -13
  152. package/dist/cjs/ai/modals-chat/gemini/Gemini-pro.d.ts.map +0 -1
  153. package/dist/cjs/ai/modals-chat/gemini/Gemini-pro.js +0 -185
  154. package/dist/cjs/ai/modals-chat/gemini/Gemini-pro.js.map +0 -1
  155. package/dist/cjs/ai/modals-chat/gemini/config.d.ts +0 -5
  156. package/dist/cjs/ai/modals-chat/gemini/config.d.ts.map +0 -1
  157. package/dist/cjs/ai/modals-chat/gemini/config.js +0 -13
  158. package/dist/cjs/ai/modals-chat/gemini/config.js.map +0 -1
  159. package/dist/cjs/ai/modals-chat/gemini/geminiFast.d.ts +0 -15
  160. package/dist/cjs/ai/modals-chat/gemini/geminiFast.d.ts.map +0 -1
  161. package/dist/cjs/ai/modals-chat/gemini/geminiFast.js +0 -146
  162. package/dist/cjs/ai/modals-chat/gemini/geminiFast.js.map +0 -1
  163. package/dist/cjs/canvas/utils/bg.d.ts +0 -23
  164. package/dist/cjs/canvas/utils/bg.d.ts.map +0 -1
  165. package/dist/cjs/canvas/utils/bg.js.map +0 -1
  166. package/dist/cjs/canvas/utils/charts.d.ts.map +0 -1
  167. package/dist/cjs/canvas/utils/charts.js.map +0 -1
  168. package/dist/cjs/canvas/utils/circular.d.ts +0 -10
  169. package/dist/cjs/canvas/utils/circular.d.ts.map +0 -1
  170. package/dist/cjs/canvas/utils/conversion.d.ts.map +0 -1
  171. package/dist/cjs/canvas/utils/conversion.js.map +0 -1
  172. package/dist/cjs/canvas/utils/customLines.d.ts +0 -3
  173. package/dist/cjs/canvas/utils/customLines.d.ts.map +0 -1
  174. package/dist/cjs/canvas/utils/customLines.js.map +0 -1
  175. package/dist/cjs/canvas/utils/general functions.d.ts.map +0 -1
  176. package/dist/cjs/canvas/utils/general functions.js.map +0 -1
  177. package/dist/cjs/canvas/utils/imageProperties.d.ts +0 -62
  178. package/dist/cjs/canvas/utils/imageProperties.d.ts.map +0 -1
  179. package/dist/cjs/canvas/utils/imageProperties.js.map +0 -1
  180. package/dist/cjs/canvas/utils/radius.d.ts +0 -10
  181. package/dist/cjs/canvas/utils/radius.d.ts.map +0 -1
  182. package/dist/cjs/canvas/utils/radius.js +0 -30
  183. package/dist/cjs/canvas/utils/radius.js.map +0 -1
  184. package/dist/cjs/canvas/utils/textProperties.d.ts.map +0 -1
  185. package/dist/cjs/canvas/utils/textProperties.js.map +0 -1
  186. package/dist/esm/ai/functions/generateVoiceResponse.d.ts +0 -10
  187. package/dist/esm/ai/functions/generateVoiceResponse.d.ts.map +0 -1
  188. package/dist/esm/ai/functions/generateVoiceResponse.js +0 -161
  189. package/dist/esm/ai/functions/generateVoiceResponse.js.map +0 -1
  190. package/dist/esm/ai/modals-chat/gemini/Gemini-flash.d.ts +0 -13
  191. package/dist/esm/ai/modals-chat/gemini/Gemini-flash.d.ts.map +0 -1
  192. package/dist/esm/ai/modals-chat/gemini/Gemini-flash.js +0 -185
  193. package/dist/esm/ai/modals-chat/gemini/Gemini-flash.js.map +0 -1
  194. package/dist/esm/ai/modals-chat/gemini/Gemini-pro.d.ts +0 -13
  195. package/dist/esm/ai/modals-chat/gemini/Gemini-pro.d.ts.map +0 -1
  196. package/dist/esm/ai/modals-chat/gemini/Gemini-pro.js +0 -185
  197. package/dist/esm/ai/modals-chat/gemini/Gemini-pro.js.map +0 -1
  198. package/dist/esm/ai/modals-chat/gemini/config.d.ts +0 -5
  199. package/dist/esm/ai/modals-chat/gemini/config.d.ts.map +0 -1
  200. package/dist/esm/ai/modals-chat/gemini/config.js +0 -13
  201. package/dist/esm/ai/modals-chat/gemini/config.js.map +0 -1
  202. package/dist/esm/ai/modals-chat/gemini/geminiFast.d.ts +0 -15
  203. package/dist/esm/ai/modals-chat/gemini/geminiFast.d.ts.map +0 -1
  204. package/dist/esm/ai/modals-chat/gemini/geminiFast.js +0 -146
  205. package/dist/esm/ai/modals-chat/gemini/geminiFast.js.map +0 -1
  206. package/dist/esm/canvas/utils/bg.d.ts +0 -23
  207. package/dist/esm/canvas/utils/bg.d.ts.map +0 -1
  208. package/dist/esm/canvas/utils/bg.js.map +0 -1
  209. package/dist/esm/canvas/utils/charts.d.ts.map +0 -1
  210. package/dist/esm/canvas/utils/charts.js.map +0 -1
  211. package/dist/esm/canvas/utils/circular.d.ts +0 -10
  212. package/dist/esm/canvas/utils/circular.d.ts.map +0 -1
  213. package/dist/esm/canvas/utils/conversion.d.ts.map +0 -1
  214. package/dist/esm/canvas/utils/conversion.js.map +0 -1
  215. package/dist/esm/canvas/utils/customLines.d.ts +0 -3
  216. package/dist/esm/canvas/utils/customLines.d.ts.map +0 -1
  217. package/dist/esm/canvas/utils/customLines.js.map +0 -1
  218. package/dist/esm/canvas/utils/general functions.d.ts.map +0 -1
  219. package/dist/esm/canvas/utils/general functions.js.map +0 -1
  220. package/dist/esm/canvas/utils/imageProperties.d.ts +0 -62
  221. package/dist/esm/canvas/utils/imageProperties.d.ts.map +0 -1
  222. package/dist/esm/canvas/utils/imageProperties.js.map +0 -1
  223. package/dist/esm/canvas/utils/radius.d.ts +0 -10
  224. package/dist/esm/canvas/utils/radius.d.ts.map +0 -1
  225. package/dist/esm/canvas/utils/radius.js +0 -30
  226. package/dist/esm/canvas/utils/radius.js.map +0 -1
  227. package/dist/esm/canvas/utils/textProperties.d.ts.map +0 -1
  228. package/dist/esm/canvas/utils/textProperties.js.map +0 -1
  229. package/lib/ai/functions/generateVoiceResponse.ts +0 -186
  230. package/lib/ai/modals-chat/gemini/Gemini-flash.ts +0 -200
  231. package/lib/ai/modals-chat/gemini/Gemini-pro.ts +0 -203
  232. package/lib/ai/modals-chat/gemini/config.ts +0 -11
  233. package/lib/ai/modals-chat/gemini/geminiFast.ts +0 -169
  234. package/lib/canvas/utils/bg.ts +0 -120
  235. package/lib/canvas/utils/circular.ts +0 -17
  236. package/lib/canvas/utils/imageProperties.ts +0 -418
  237. package/lib/canvas/utils/radius.ts +0 -26
  238. /package/dist/cjs/canvas/utils/{charts.js → Charts/charts.js} +0 -0
  239. /package/dist/cjs/canvas/utils/{customLines.js → Custom/customLines.js} +0 -0
  240. /package/dist/cjs/canvas/utils/{conversion.d.ts → General/conversion.d.ts} +0 -0
  241. /package/dist/cjs/canvas/utils/{conversion.js → General/conversion.js} +0 -0
  242. /package/dist/cjs/canvas/utils/{textProperties.js → Texts/textProperties.js} +0 -0
  243. /package/dist/esm/canvas/utils/{charts.js → Charts/charts.js} +0 -0
  244. /package/dist/esm/canvas/utils/{customLines.js → Custom/customLines.js} +0 -0
  245. /package/dist/esm/canvas/utils/{conversion.d.ts → General/conversion.d.ts} +0 -0
  246. /package/dist/esm/canvas/utils/{conversion.js → General/conversion.js} +0 -0
  247. /package/dist/esm/canvas/utils/{textProperties.js → Texts/textProperties.js} +0 -0
package/lib/ai/ApexAI.ts CHANGED
@@ -1,699 +1,197 @@
1
- import { Hercai } from "hercai";
2
- import {
3
- imageReader,
4
- toDraw,
5
- aiImagine,
6
- aiVoice,
7
- typeWriter,
8
- groqAnalyzer,
9
- readFile,
10
- geminiPro,
11
- geminiFlash
12
- } from "./utils";
13
- import {
14
- ModalBuilder,
15
- TextInputBuilder,
16
- TextInputStyle,
17
- ActionRowBuilder,
18
- Message,
19
- PermissionResolvable
20
- } from "discord.js";
21
- import { filters } from "./buttons/tools";
22
- import { imageTools } from "./buttons/drawMenu";
23
- import { whisper } from "./modals-chat/groq/whisper";
24
- import { validateModels} from "./functions/validOptions";
25
- import { chatHercai } from "./modals-chat/hercai/chatModels";
26
- import { otherChatModels } from "./modals-chat/others/otherModels";
27
- import { chatGroq } from "./modals-chat/groq/chatgroq";
28
- import { electronChat } from "./modals-chat/electronHub/chatmodels";
1
+ // import { Hercai } from "hercai";
2
+ // import {
3
+ // toDraw,
4
+ // aiImagine,
5
+ // typeWriter,
6
+ // groqAnalyzer,
7
+ // readFile
8
+ // } from "./utils";
9
+ // import {
10
+ // ModalBuilder,
11
+ // TextInputBuilder,
12
+ // TextInputStyle,
13
+ // ActionRowBuilder,
14
+ // Message,
15
+ // PermissionResolvable
16
+ // } from "discord.js";
17
+ // import { filters } from "./buttons/tools";
18
+ // import { imageTools } from "./buttons/drawMenu";
19
+ // import { whisper } from "./modals-chat/groq/whisper";
20
+ // import { validateModels} from "./functions/validOptions";
21
+ // import { chatHercai } from "./modals-chat/hercai/chatModels";
22
+ // import { otherChatModels } from "./modals-chat/others/otherModels";
23
+ // import { chatGroq } from "./modals-chat/groq/chatgroq";
24
+ // import { electronChat } from "./modals-chat/electronHub/chatmodels";
25
+
26
+ // export interface Options {
27
+ // /**
28
+ // * Configuration options related to voice functionality.
29
+ // * @param voice.textVoice Configuration options for text-to-voice functionality.
30
+ // * @param voice.textVoice.enable Whether text-to-voice functionality is enabled.
31
+ // * @param voice.textVoice.voiceModel The voice model to be used.
32
+ // * @param voice.textVoice.voice_code The voice code only for (apexAI and zenithAI model).
33
+ // * @param voice.textVoice.apiKey The API key for accessing the voice service only for (apexAI and zenithAI model).
34
+ // * @param voice.textVoice.type The type of voice only for (apexAI and zenithAI model).
35
+ // */
36
+ // voice?: {
37
+ // textVoice?: {
38
+ // enable?: boolean;
39
+ // voiceModel?: string;
40
+ // voice_code?: string;
41
+ // apiKey?: string;
42
+ // type?: string;
43
+ // };
44
+ // };
45
+ // /**
46
+ // * Configuration options related to image generation.
47
+ // * @param imagine.enable Whether image generation is enabled.
48
+ // * @param imagine.drawTrigger The trigger phrases for initiating image generation.
49
+ // * @param imagine.imageModal The model for the image generation.
50
+ // * @param imagine.numOfImages The number of images to generate.
51
+ // * @param imagine.nsfw Configuration options for NSFW filtering.
52
+ // * @param imagine.nsfw.enable Whether NSFW filtering is enabled.
53
+ // * @param imagine.nsfw.keywords Keywords for NSFW filtering.
54
+ // * @param imagine.enhancer Configuration options for image enhancement.
55
+ // * @param imagine.enhancer.enable Whether image enhancement is enabled (rewrites your prompt in more descriptive way).
56
+ // * @param imagine.enhancer.enhancerModal The model for image enhancement only for (Prodia models).
57
+ // * @param imagine.enhancer.cfg_scale The scale for image enhancement only for (Prodia models).
58
+ // * @param imagine.enhancer.steps The number of enhancement steps only for (Prodia models).
59
+ // * @param imagine.enhancer.seed The seed for image enhancement only for (Prodia models).
60
+ // * @param imagine.enhancer.imgStyle The style of the image only for (Prodia models).
61
+ // * @param imagine.enhancer.negative_prompt The negative prompt for image enhancement only for (Prodia models).
62
+ // * @param imagine.enhancer.sampler The sampler for image enhancement only for (Prodia models).
63
+ // */
64
+ // imagine?: {
65
+ // enable?: boolean;
66
+ // drawTrigger?: string[];
67
+ // imageModel?: string;
68
+ // numOfImages?: number;
69
+ // ApiKeys?: {
70
+ // groqAPI?: string;
71
+ // rsnAPIkey?: string;
72
+ // prodiaAPI?: string;
73
+ // freesedGPTApi?: string;
74
+ // electronHubKey?: string
75
+ // };
76
+ // nsfw?: {
77
+ // enable?: boolean;
78
+ // keywords?: string[];
79
+ // deepCheck?: boolean;
80
+ // };
81
+ // enhancer?: {
82
+ // enable: boolean;
83
+ // enhancerModal?: string | "ESRGAN_4x" | "Lanczos" | "Nearest" | "LDSR" | "R-ESRGAN 4x+" | "R-ESRGAN 4x+ Anime6B" | "ScuNET GAN" | "ScuNET PSNR" | "SwinIR 4x" | undefined;
84
+ // cfg_scale?: number;
85
+ // steps?: number;
86
+ // seed?: number;
87
+ // imgStyle?: string | "3d-model" | "analog-film" | "anime" | "cinematic" | "comic-book" | "digital-art" | "enhance" | "isometric" | "fantasy-art" | "isometric" | "line-art" | "low-poly" | "neon-punk" | "origami" | "photographic" | "pixel-art" | "texture" | "craft-clay";
88
+ // negative_prompt?: string;
89
+ // sampler?: string | "DPM++ 2M Karras" | "DPM++ SDE Karras" | "DPM++ 2M SDE Exponential" | "DPM++ 2M SDE Karras" | "Euler a" | "Euler" | "LMS" | "Heun" | "DPM2" | "DPM2 a" | "DPM++ 2S a" | "DPM++ 2M" | "DPM++ SDE" | "DPM++ 2M SDE" | "DPM++ 2M SDE Heun" | "DPM++ 2M SDE Heun Karras" | "DPM++ 2M SDE Heun Exponential" | "DPM++ 3M SDE" | "DPM++ 3M SDE Karras" | "DPM++ 3M SDE Exponential" | "DPM fast" | "DPM adaptive" | "LMS Karras" | "DPM2 Karras" | "DPM2 a Karras" | "DPM++ 2S a Karras" | "Restart" | "DDIM" | "PLMS" | "UniPC";
90
+ // width?: number;
91
+ // height?: number;
92
+ // upscale?: number;
93
+ // format?: "jpeg" | "png";
94
+ // quality?: number;
95
+ // };
96
+ // };
97
+ // /**
98
+ // * Configuration options related to chat functionality.
99
+ // * @param chat.chatModel The chat model to be used.
100
+ // * @param chat.readFiles Whether to read files.
101
+ // * @param chat.readImages Whether to read images.
102
+ // * @param chat.personality The personality for the chat.
103
+ // * @param chat.API_KEY The API key for accessing the chat service.
104
+ // * @param chat.lang The Language of the voice message sent.
105
+ // * @param chat.memory Configuration options for memory.
106
+ // * @param chat.memory.memoryOn Whether memory is enabled.
107
+ // * @param chat.memory.id The ID for memory.
108
+ // * @param chat.typeWriting Configuration options for typing effect.
109
+ // * @param chat.typeWriting.enable Whether the typing effect is enabled.
110
+ // * @param chat.typeWriting.speed The speed of typing.
111
+ // * @param chat.typeWriting.delay The delay for typing.
112
+ // */
113
+ // chat?: {
114
+ // enable?: boolean;
115
+ // returnChat?: Boolean
116
+ // chatModel?: string;
117
+ // readFiles?: boolean;
118
+ // readImages?: boolean;
119
+ // personality?: string | any;
120
+ // instruction?: string;
121
+ // Api_Keys?: {
122
+ // groq_API?: string;
123
+ // rsn_API?: string;
124
+ // prodia_API?: string;
125
+ // geminiAPI?: string;
126
+ // freesedGPT_Api?: string;
127
+ // electronHub_Key?: string
128
+ // };
129
+ // lang?: string;
130
+ // memory?: {
131
+ // memoryOn?: boolean;
132
+ // id?: string;
133
+ // };
134
+ // typeWriting?: {
135
+ // enable?: boolean;
136
+ // speed?: number;
137
+ // delay?: number;
138
+ // };
139
+ // };
140
+ // /**
141
+ // * Additional configuration options.
142
+ // * @param others.messageType Configuration options for message types.
143
+ // * @param others.messageType.type The type of message.
144
+ // * @param others.messageType.intialContent The initial content of the message.
145
+ // * @param others.buttons Buttons configuration.
146
+ // * @param others.keywords Keywords for response.
147
+ // * @param others.keywordResponses Responses for keywords.
148
+ // * @param others.loader Configuration options for loader.
149
+ // * @param others.loader.enable Whether the loader is enabled.
150
+ // * @param others.loader.loadingMessage The loading message.
151
+ // * @param others.loader.loadingTimer The loading timer.
152
+ // * @param others.channel Configuration options for channels.
153
+ // * @param others.channel.enable Whether channels are enabled.
154
+ // * @param others.channel.id The ID of the channels.
155
+ // * @param others.permissions Configuration options for permissions.
156
+ // * @param others.permissions.enable Whether permissions are enabled.
157
+ // * @param others.permissions.role The role for permissions.
158
+ // * @param others.permissions.permission The permission.
159
+ // * @param others.permissions.blockedUsers Blocked users.
160
+ // */
161
+ // others?: {
162
+ // messageType?: {
163
+ // type?: string;
164
+ // intialContent?: string;
165
+ // sendAs?: string | "embed" | "content";
166
+ // };
167
+ // onMention?: boolean;
168
+ // buttons?: any[];
169
+ // keywords?: string[];
170
+ // keywordResponses?: Record<string, string>;
171
+ // loader?: {
172
+ // enable?: boolean;
173
+ // loadingMessage?: string;
174
+ // loadingTimer?: number;
175
+ // };
176
+ // channel?: {
177
+ // enable?: boolean;
178
+ // id?: string[];
179
+ // };
180
+ // permissions?: {
181
+ // enable?: boolean;
182
+ // role?: string[];
183
+ // permission?: string[];
184
+ // blockedUsers?: string[];
185
+ // };
186
+ // };
187
+ // }
188
+
189
+ // type Response = string | { content?: string; reply?: string } | any;
190
+ // const hercai = new Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
191
+
192
+
193
+ export async function ApexAI () {
194
+
195
+ throw new Error('ApexAi is deprecated for the moment. It will be back soon');
29
196
 
30
- export interface Options {
31
- /**
32
- * Configuration options related to voice functionality.
33
- * @param voice.textVoice Configuration options for text-to-voice functionality.
34
- * @param voice.textVoice.enable Whether text-to-voice functionality is enabled.
35
- * @param voice.textVoice.voiceModel The voice model to be used.
36
- * @param voice.textVoice.voice_code The voice code only for (apexAI and zenithAI model).
37
- * @param voice.textVoice.apiKey The API key for accessing the voice service only for (apexAI and zenithAI model).
38
- * @param voice.textVoice.type The type of voice only for (apexAI and zenithAI model).
39
- */
40
- voice?: {
41
- textVoice?: {
42
- enable?: boolean;
43
- voiceModel?: string;
44
- voice_code?: string;
45
- apiKey?: string;
46
- type?: string;
47
- };
48
- };
49
- /**
50
- * Configuration options related to image generation.
51
- * @param imagine.enable Whether image generation is enabled.
52
- * @param imagine.drawTrigger The trigger phrases for initiating image generation.
53
- * @param imagine.imageModal The model for the image generation.
54
- * @param imagine.numOfImages The number of images to generate.
55
- * @param imagine.nsfw Configuration options for NSFW filtering.
56
- * @param imagine.nsfw.enable Whether NSFW filtering is enabled.
57
- * @param imagine.nsfw.keywords Keywords for NSFW filtering.
58
- * @param imagine.enhancer Configuration options for image enhancement.
59
- * @param imagine.enhancer.enable Whether image enhancement is enabled (rewrites your prompt in more descriptive way).
60
- * @param imagine.enhancer.enhancerModal The model for image enhancement only for (Prodia models).
61
- * @param imagine.enhancer.cfg_scale The scale for image enhancement only for (Prodia models).
62
- * @param imagine.enhancer.steps The number of enhancement steps only for (Prodia models).
63
- * @param imagine.enhancer.seed The seed for image enhancement only for (Prodia models).
64
- * @param imagine.enhancer.imgStyle The style of the image only for (Prodia models).
65
- * @param imagine.enhancer.negative_prompt The negative prompt for image enhancement only for (Prodia models).
66
- * @param imagine.enhancer.sampler The sampler for image enhancement only for (Prodia models).
67
- */
68
- imagine?: {
69
- enable?: boolean;
70
- drawTrigger?: string[];
71
- imageModel?: string;
72
- numOfImages?: number;
73
- ApiKeys?: {
74
- groqAPI?: string;
75
- rsnAPIkey?: string;
76
- prodiaAPI?: string;
77
- freesedGPTApi?: string;
78
- electronHubKey?: string
79
- };
80
- nsfw?: {
81
- enable?: boolean;
82
- keywords?: string[];
83
- deepCheck?: boolean;
84
- };
85
- enhancer?: {
86
- enable: boolean;
87
- enhancerModal?: string | "ESRGAN_4x" | "Lanczos" | "Nearest" | "LDSR" | "R-ESRGAN 4x+" | "R-ESRGAN 4x+ Anime6B" | "ScuNET GAN" | "ScuNET PSNR" | "SwinIR 4x" | undefined;
88
- cfg_scale?: number;
89
- steps?: number;
90
- seed?: number;
91
- imgStyle?: string | "3d-model" | "analog-film" | "anime" | "cinematic" | "comic-book" | "digital-art" | "enhance" | "isometric" | "fantasy-art" | "isometric" | "line-art" | "low-poly" | "neon-punk" | "origami" | "photographic" | "pixel-art" | "texture" | "craft-clay";
92
- negative_prompt?: string;
93
- sampler?: string | "DPM++ 2M Karras" | "DPM++ SDE Karras" | "DPM++ 2M SDE Exponential" | "DPM++ 2M SDE Karras" | "Euler a" | "Euler" | "LMS" | "Heun" | "DPM2" | "DPM2 a" | "DPM++ 2S a" | "DPM++ 2M" | "DPM++ SDE" | "DPM++ 2M SDE" | "DPM++ 2M SDE Heun" | "DPM++ 2M SDE Heun Karras" | "DPM++ 2M SDE Heun Exponential" | "DPM++ 3M SDE" | "DPM++ 3M SDE Karras" | "DPM++ 3M SDE Exponential" | "DPM fast" | "DPM adaptive" | "LMS Karras" | "DPM2 Karras" | "DPM2 a Karras" | "DPM++ 2S a Karras" | "Restart" | "DDIM" | "PLMS" | "UniPC";
94
- width?: number;
95
- height?: number;
96
- upscale?: number;
97
- format?: "jpeg" | "png" | "webp";
98
- quality?: number;
99
- };
100
- };
101
- /**
102
- * Configuration options related to chat functionality.
103
- * @param chat.chatModel The chat model to be used.
104
- * @param chat.readFiles Whether to read files.
105
- * @param chat.readImages Whether to read images.
106
- * @param chat.personality The personality for the chat.
107
- * @param chat.API_KEY The API key for accessing the chat service.
108
- * @param chat.lang The Language of the voice message sent.
109
- * @param chat.memory Configuration options for memory.
110
- * @param chat.memory.memoryOn Whether memory is enabled.
111
- * @param chat.memory.id The ID for memory.
112
- * @param chat.typeWriting Configuration options for typing effect.
113
- * @param chat.typeWriting.enable Whether the typing effect is enabled.
114
- * @param chat.typeWriting.speed The speed of typing.
115
- * @param chat.typeWriting.delay The delay for typing.
116
- */
117
- chat?: {
118
- enable?: boolean;
119
- returnChat?: Boolean
120
- chatModel?: string;
121
- readFiles?: boolean;
122
- readImages?: boolean;
123
- personality?: string | any;
124
- instruction?: string;
125
- Api_Keys?: {
126
- groq_API?: string;
127
- rsn_API?: string;
128
- prodia_API?: string;
129
- geminiAPI?: string;
130
- freesedGPT_Api?: string;
131
- electronHub_Key?: string
132
- };
133
- lang?: string;
134
- memory?: {
135
- memoryOn?: boolean;
136
- id?: string;
137
- };
138
- typeWriting?: {
139
- enable?: boolean;
140
- speed?: number;
141
- delay?: number;
142
- };
143
- };
144
- /**
145
- * Additional configuration options.
146
- * @param others.messageType Configuration options for message types.
147
- * @param others.messageType.type The type of message.
148
- * @param others.messageType.intialContent The initial content of the message.
149
- * @param others.buttons Buttons configuration.
150
- * @param others.keywords Keywords for response.
151
- * @param others.keywordResponses Responses for keywords.
152
- * @param others.loader Configuration options for loader.
153
- * @param others.loader.enable Whether the loader is enabled.
154
- * @param others.loader.loadingMessage The loading message.
155
- * @param others.loader.loadingTimer The loading timer.
156
- * @param others.channel Configuration options for channels.
157
- * @param others.channel.enable Whether channels are enabled.
158
- * @param others.channel.id The ID of the channels.
159
- * @param others.permissions Configuration options for permissions.
160
- * @param others.permissions.enable Whether permissions are enabled.
161
- * @param others.permissions.role The role for permissions.
162
- * @param others.permissions.permission The permission.
163
- * @param others.permissions.blockedUsers Blocked users.
164
- */
165
- others?: {
166
- messageType?: {
167
- type?: string;
168
- intialContent?: string;
169
- sendAs?: string | "embed" | "content";
170
- };
171
- onMention?: boolean;
172
- buttons?: any[];
173
- keywords?: string[];
174
- keywordResponses?: Record<string, string>;
175
- loader?: {
176
- enable?: boolean;
177
- loadingMessage?: string;
178
- loadingTimer?: number;
179
- };
180
- channel?: {
181
- enable?: boolean;
182
- id?: string[];
183
- };
184
- permissions?: {
185
- enable?: boolean;
186
- role?: string[];
187
- permission?: string[];
188
- blockedUsers?: string[];
189
- };
190
- };
191
- }
192
-
193
- type Response = string | { content?: string; reply?: string } | any;
194
- const hercai = new Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
195
-
196
-
197
- export async function ApexAI (message: Message, aiOptions: Options) {
198
-
199
-
200
- const modelsValidate = await validateModels();
201
-
202
- await imageTools(
203
- message.client,
204
- ModalBuilder,
205
- TextInputBuilder,
206
- TextInputStyle,
207
- ActionRowBuilder
208
- );
209
-
210
- await filters(message.client);
211
-
212
- let usermsg: string = message.content || '';
213
- let RespondMessage: any;
214
- const {
215
- voice: {
216
- textVoice: {
217
- enable: textVoiceEnable = false,
218
- voiceModel: textVoiceModel = "google",
219
- voice_code: textVoiceCode = "en-US-3",
220
- apiKey: textVoiceApiKey = "",
221
- type: textVoiceType = "b"
222
- } = {}
223
- } = {},
224
- imagine: {
225
- ApiKeys: {
226
- groqAPI = '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',
227
- rsnAPIkey = 'rsnai_SbLbFcwdT2h2KoYet2LS0F34',
228
- prodiaAPI = 'eaebff6e-c7b2-477c-8edd-9aa91becf1e3',
229
- freesedGPTApi = null,
230
- electronHubKey = null
231
- } = {},
232
- enable: imagineEnable = false,
233
- drawTrigger = ["create", "رسم"],
234
- imageModel = "prodia",
235
- numOfImages = 2,
236
- nsfw: {
237
- enable: nsfwEnabled = false,
238
- keywords: nsfwKeyWords = [],
239
- deepCheck: deepCheck = false
240
- } = {},
241
- enhancer: {
242
- enable: enhancerOn = false,
243
- enhancerModal: enhanceModal = 'ESRGAN_4x',
244
- negative_prompt: negative_prompt = '',
245
- cfg_scale: cfgScale = 7,
246
- sampler: sampler = 'DDIM',
247
- steps: steps = 20,
248
- seed: seed = -1,
249
- imgStyle: imgStyle = 'enhance',
250
- width: width = 512,
251
- height: height = 512,
252
- upscale: upscale = 2,
253
- format: format = null,
254
- quality: quality = null
255
- } = {},
256
- } = {},
257
- chat: {
258
- enable: chatEnable = true,
259
- chatModel = "v3",
260
- readFiles = false,
261
- readImages = false,
262
- returnChat = true,
263
- instruction = '',
264
- Api_Keys: {
265
- groq_API = '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',
266
- rsn_API = 'rsnai_SbLbFcwdT2h2KoYet2LS0F34',
267
- geminiAPI = null,
268
- freesedGPT_Api = null,
269
- electronHub_Key = null
270
- } = {},
271
- personality = null,
272
- lang = 'en',
273
- memory: {
274
- memoryOn: memoryOn = false,
275
- id: memoryId = ''
276
- } = {},
277
- typeWriting: {
278
- enable: typeWritingEnable = false,
279
- speed = 70,
280
- delay = 2000
281
- } = {}
282
- } = {},
283
- others: {
284
- onMention = false,
285
- messageType: {
286
- type: msgType = 'reply',
287
- intialContent: msgContent = ''
288
- } = {},
289
- buttons: buttons = [],
290
- channel: {
291
- enable: channelEnable = false,
292
- id: channelIds = []
293
- } = {},
294
- keywords = [],
295
- keywordResponses = {},
296
- loader: {
297
- loadingMessage = 'loading...',
298
- loadingTimer = 3000,
299
- enable: loaderEnable = false
300
- } = {},
301
- permissions: {
302
- enable: permissionEnable = false,
303
- role = [],
304
- permission = [],
305
- blockedUsers = []
306
- } = {}
307
- } = {}
308
- } = aiOptions;
309
-
310
-
311
- if (onMention && usermsg) {
312
- const botMention = `<@${message.client.user.id}>`;
313
-
314
- if (!usermsg.startsWith(botMention)) return;
315
-
316
- usermsg = usermsg.replace(botMention, '').trim();
317
- }
318
-
319
- if (!message.guild) {
320
- return;
321
- }
322
-
323
- if (permissionEnable) {
324
- if (role.length > 0) {
325
- const userRoles = message.member?.roles.cache.map((role: any) => role.id);
326
- const hasPermission = userRoles?.some((roleId: any) => role.includes(roleId));
327
- if (!hasPermission) return;
328
- }
329
-
330
- if (permission.length > 0) {
331
- const hasPermission = permission.some(perm => message.member?.permissions.has(perm as PermissionResolvable));
332
- if (!hasPermission) return;
333
- }
334
-
335
- if (blockedUsers.length > 0) {
336
- const userId = message.author.id;
337
- if (blockedUsers.includes(userId)) return;
338
- }
339
- }
340
-
341
- if (channelEnable && !channelIds.includes(message.channel.id)) return;
342
-
343
- // @ts-ignore
344
- await message.channel?.sendTyping();
345
-
346
- if (message.attachments.size > 0) {
347
- message.attachments.forEach(async (attachment: any) => {
348
- try {
349
- const url = attachment.url;
350
- const contentType = attachment.contentType;
351
- const voiceSize = attachment.size;
352
-
353
- if (contentType.startsWith('audio/')) {
354
- if (voiceSize > (25 * 1024 * 1024)) return 'Voice/Audio file uploaded has is bigger than 25MB please decrease its size and resend it.'
355
- usermsg += await whisper(usermsg, url, lang)
356
- }
357
- } catch (e: any) {}
358
- });
359
- }
360
-
361
- const attachment = message.attachments?.first();
362
- const imgURL = attachment?.url || null;
363
-
364
- const validExtensions = /\.(png|jpg|jpeg|webp)$/i;
365
-
366
- if (readImages && attachment && validExtensions.test(attachment?.name) && imgURL && !['gemini-pro', 'gemini-flash'].includes(chatModel)) {
367
- usermsg = await groqAnalyzer({ imgURL, ApiKey: groqAPI, prompt: usermsg });
368
- usermsg += `\n-# I know you are text-based AI and can't view the images so here is the details regarding it:\n ${usermsg}`;
369
- }
370
-
371
-
372
- if (msgType === 'reply') {
373
- if (imgURL === null && usermsg === '') {
374
- return await message.reply({
375
- content: "You need to provide a message or an attachment at least.",
376
- allowedMentions: { repliedUser: false },
377
- });
378
- }
379
- } else if (msgType === 'send') {
380
- if (imgURL === null && usermsg === '') {
381
- // @ts-ignore
382
- return await message.channel.send({
383
- content: "You need to provide a message or an attachment at least.",
384
- allowedMentions: { repliedUser: false },
385
- });
386
- }
387
- }
388
-
389
- if (aiOptions.chat && readFiles && !['gemini-pro', 'gemini-flash'].includes(chatModel)) {
390
- if (message.attachments?.size > 0) {
391
- if (attachment?.name.endsWith('.pdf')) {
392
- const pdfContent = await readFile(attachment.url, 'pdf');
393
- usermsg += `\n\n- This is the pdf file content:\n\n ${pdfContent}`;
394
- } else {
395
- const txtContent = await readFile(attachment?.url as string, 'txt');
396
- usermsg += `\n\n- This is the .txt file content:\n\n ${txtContent}`;
397
- }
398
- }
399
- }
400
-
401
- if (aiOptions.others?.loader !== null && loaderEnable === true) {
402
- if (msgType === 'reply') {
403
- await message.reply({
404
- content: loadingMessage,
405
- allowedMentions: { repliedUser: false },
406
- }).then((replyMessage: any) => {
407
- setTimeout(() => {
408
- replyMessage.delete().catch(console.error);
409
- }, loadingTimer || 3000);
410
- });
411
- } else if (msgType === 'send') {
412
- // @ts-ignore
413
- await message.channel.send({
414
- content: loadingMessage
415
- }).then((replyMessage: any) => {
416
- setTimeout(() => {
417
- replyMessage.delete().catch(console.error);
418
- }, loadingTimer || 3000);
419
- });
420
- }
421
- }
422
-
423
- // @ts-ignore
424
- await message.channel?.sendTyping();
425
-
426
- let replied: string = "";
427
-
428
-
429
- if (message.reference?.messageId) {
430
- const channel = message?.guild?.channels?.cache?.get(message.channel.id);
431
- const messageId = message?.reference?.messageId;
432
- // @ts-ignore
433
- const fetchedMessage = await channel?.messages?.fetch(messageId);
434
-
435
- if (fetchedMessage.content) {
436
- replied += fetchedMessage.content;
437
- }
438
-
439
- if (fetchedMessage.attachments && validExtensions.test(fetchedMessage.attachments.name)) {
440
- replied += await groqAnalyzer({ imgURL: fetchedMessage.attachments?.first().url, ApiKey: groqAPI, prompt: usermsg });
441
- usermsg += `\n-# I know you are text-based AI and can't view the images so here is the details regarding it:\n ${replied}`;
442
- usermsg = `${usermsg}\n\n-# Note: Read previous message: \n${replied}.\n\n`;
443
- }
444
- }
445
-
446
- let response: Response = '';
447
-
448
- for (const keyword of keywords) {
449
- if (usermsg.toLowerCase().includes(keyword.toLowerCase())) {
450
- response = keywordResponses[keyword] || "";
451
- return await message.reply({
452
- content: response,
453
- allowedMentions: { repliedUser: false },
454
- });
455
- }
456
- }
457
-
458
- const drawValid: any = aiOptions.imagine && imagineEnable && toDraw(usermsg, drawTrigger);
459
- const number = numOfImages;
460
- const model = imageModel;
461
-
462
- if (drawValid) {
463
- const matchingTrigger = drawTrigger.find(trigger => usermsg.startsWith(trigger));
464
-
465
- if (matchingTrigger) {
466
- usermsg = usermsg.substring(matchingTrigger.length).trim();
467
- }
468
-
469
- if (enhancerOn) {
470
- usermsg = `Rewrite this text below in more descriptive way make it clear to be visualized correctly and enhance it and use stronger words please and please return the response with nothing else in just the enhanced prompt nothing more nothing less\n\n\n ${usermsg}`
471
- const enhancemsg = await hercai.question({ model: "v3-32k", content: usermsg});
472
- usermsg = enhancemsg.reply
473
- }
474
-
475
- return await aiImagine(
476
- message,
477
- number,
478
- usermsg,
479
- hercai,
480
- model,
481
- nsfwEnabled,
482
- nsfwKeyWords,
483
- deepCheck,
484
- aiOptions.imagine?.enhancer,
485
- buttons,
486
- RespondMessage,
487
- { rsnAPI: rsnAPIkey, groqAPI, prodiaAPI, freesedGPTApi: freesedGPTApi as string, electronHubKey: electronHubKey as string }
488
- );
489
-
490
- } else if (aiOptions.voice?.textVoice?.enable) {
491
-
492
- if (aiOptions.voice.textVoice && textVoiceEnable) {
493
- return await aiVoice(
494
- message,
495
- numOfImages,
496
- usermsg,
497
- hercai,
498
- drawValid,
499
- model,
500
- chatModel,
501
- textVoiceModel,
502
- textVoiceCode,
503
- textVoiceApiKey,
504
- textVoiceType,
505
- nsfwEnabled,
506
- nsfwKeyWords,
507
- deepCheck,
508
- aiOptions.imagine?.enhancer,
509
- buttons,
510
- RespondMessage,
511
- { rsnAPI: rsnAPIkey, groqAPI, prodiaAPI, freesedGPTApi: freesedGPTApi as string, electronHubKey: electronHubKey as string }
512
- );
513
- }
514
-
515
- if (msgType === 'reply') {
516
- if (usermsg.length >= 2000) {
517
- return await message.reply({
518
- content: 'Your message is too long for me to process. Please try sending a shorter message.',
519
- allowedMentions: { repliedUser: false },
520
- });
521
- }
522
- } else if (msgType === 'send' ) {
523
- if (usermsg.length >= 2000) {
524
- // @ts-ignore
525
- return await message.channel.send({
526
- content: 'Your message is too long for me to process. Please try sending a shorter message.'
527
- });
528
- }
529
- }
530
- } else if (chatEnable) {
531
- try {
532
- if (modelsValidate.validotherChatModels.includes(chatModel)) {
533
- response = await otherChatModels({ modelName: chatModel as any, prompt: usermsg });
534
- } else if (modelsValidate.validgroqChatModels.includes(chatModel)) {
535
- response = await chatGroq({ API_KEY: groq_API as string | undefined, prompt: usermsg, apiName: chatModel, instruction})
536
- } else if (chatModel === 'gemini-flash' || chatModel === 'gemini-pro') {
537
- const geminiFunction = chatModel === 'gemini-flash' ? geminiFlash : geminiPro;
538
-
539
- response = await geminiFunction(
540
- {
541
- userId: message.author.id,
542
- serverName: message.guild?.name as string,
543
- serverId: message.guild?.id as string,
544
- // @ts-ignore
545
- channelName: message.channel.name,
546
- attachment: attachment,
547
- db: memoryOn
548
- },
549
- {
550
- userMsg: usermsg,
551
- API_KEY: geminiAPI,
552
- AiPersonality: personality
553
- }
554
- );
555
- } else if (modelsValidate.validHercChatModels.includes(chatModel)) {
556
- response = await chatHercai(usermsg, chatModel as any, instruction, { enable: memoryOn, id: memoryId });
557
- } else if (modelsValidate.validElectronModels.includes(chatModel)) {
558
- response = await electronChat({ ApiKey: electronHub_Key as string, prompt: usermsg, instruction, modelName: chatModel });
559
- } else {
560
- throw new Error('Invalid chat model. Check documentation for valid chat models.')
561
- }
562
- } catch (error: any) {
563
- if (msgType === 'reply') {
564
- if (error.response && error.response.status === 429) {
565
- console.error("Too many requests. Please try again later.");
566
- RespondMessage = await message.reply({ content: `Please wait i am in a cool down for a minute`, components: buttons });
567
- return;
568
- } else if (error.response && error.response.status === 500) {
569
- console.error("Internal server error. Please try again later.");
570
- RespondMessage = await message.reply({ content: `Please wait i am in a cool down for a minute`, components: buttons });
571
- return;
572
- } else {
573
- console.error("The Api is on a cool down for 10 seconds", error.message);
574
- RespondMessage = await message.reply({ content: `Please wait i am in a cool down for a minute`, components: buttons });
575
- return;
576
- }
577
- } else if (msgType === 'send') {
578
- if (error.response && error.response.status === 429) {
579
- console.error("Too many requests. Please try again later.");
580
- // @ts-ignore
581
- RespondMessage = await message.channel.send({ content: `Please wait i am in a cool down for a minute`, components: buttons });
582
- return;
583
- } else if (error.response && error.response.status === 500) {
584
- console.error("Internal server error. Please try again later.");
585
- // @ts-ignore
586
- RespondMessage = await message.channel.send({ content: `Please wait i am in a cool down for a minute`, components: buttons });
587
- return;
588
- } else {
589
- // @ts-ignore
590
- await message.channel.send({ content: `Please wait i am in a cool down for a minute`, components: buttons });
591
- console.error("The Api is on a cool down for 10 seconds", error.message);
592
- }
593
- }
594
- }
595
- response = `${msgContent}${response}`
596
- if (!returnChat) {
597
- return {
598
- response
599
- }
600
- }
601
- if (msgType === 'reply') {
602
- if (typeWritingEnable) {
603
- if (response.length <= 2000) {
604
- await typeWriter(message.channel, response, speed, delay, buttons);
605
- } else {
606
- let parts: string[] = [];
607
- while (typeof response === 'string' && response.length > 0) {
608
- const substring = response.substring(0, 1999);
609
- parts.push(substring);
610
- if (response.length > 1999) {
611
- response = response.substring(1999);
612
- } else {
613
- break;
614
- }
615
- }
616
- for (const part of parts) {
617
- RespondMessage = await typeWriter(message.channel, part, speed, delay, buttons);
618
- }
619
- }
620
-
621
- } else {
622
- if (response.length <= 2000) {
623
- RespondMessage = await message.reply({
624
- content: response,
625
- components: buttons,
626
- allowedMentions: { repliedUser: false },
627
- });
628
- } else {
629
- let parts: string[] = [];
630
- while (typeof response === 'string' && response.length > 0) {
631
- const substring = response.substring(0, 1999);
632
- parts.push(substring);
633
- if (response.length > 1999) {
634
- response = response.substring(1999);
635
- } else {
636
- break;
637
- }
638
- }
639
- for (const part of parts) {
640
- RespondMessage = await message.reply({
641
- content: part,
642
- components: buttons,
643
- allowedMentions: { repliedUser: false },
644
- });
645
- }
646
- }
647
- }
648
- } else if (msgType === 'send') {
649
- if (typeWritingEnable) {
650
- if (response.length <= 2000) {
651
- RespondMessage = await typeWriter(message.channel, response, speed, delay, buttons);
652
- } else {
653
- let parts: string[] = [];
654
- while (typeof response === 'string' && response.length > 0) {
655
- const substring = response.substring(0, 1999);
656
- parts.push(substring);
657
- if (response.length > 1999) {
658
- response = response.substring(1999);
659
- } else {
660
- break;
661
- }
662
- }
663
- for (const part of parts) {
664
- RespondMessage = await typeWriter(message.channel, part, speed, delay, buttons);
665
- }
666
- }
667
- } else {
668
- if (response.length <= 2000) {
669
- // @ts-ignore
670
- RespondMessage = await message.channel.send({
671
- content: response,
672
- components: buttons
673
- });
674
- } else {
675
- let parts: string[] = [];
676
- while (typeof response === 'string' && response.length > 0) {
677
- const substring = response.substring(0, 1999);
678
- parts.push(substring);
679
- if (response.length > 1999) {
680
- response = response.substring(1999);
681
- } else {
682
- break;
683
- }
684
- }
685
- for (const part of parts) {
686
- // @ts-ignore
687
- RespondMessage = await message.channel.send({
688
- content: part,
689
- components: buttons
690
- });
691
- }
692
- }
693
- }
694
- }
695
- } else {
696
- throw new Error('You need to at least enable a single functionality: Chat | Image | Voice Speech.')
697
- }
698
- return await RespondMessage;
699
197
  };