apexify.js 4.8.0 → 4.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/ai/ApexAI.d.ts +0 -1
- package/dist/cjs/ai/ApexAI.js +56 -68
- package/dist/cjs/ai/ApexModules.d.ts +0 -1
- package/dist/cjs/ai/ApexModules.js +25 -33
- package/dist/cjs/ai/functions/readFiles.d.ts +0 -1
- package/dist/cjs/ai/functions/readFiles.js +11 -51
- package/dist/cjs/ai/functions/tokenizer.d.ts +0 -1
- package/dist/cjs/ai/functions/tokenizer.js +1 -5
- package/dist/cjs/ai/functions/validOptions.d.ts +0 -1
- package/dist/cjs/ai/functions/validOptions.js +13 -23
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.js +5 -12
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.js +10 -17
- package/dist/cjs/ai/modals/electronHub/songModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.js +1 -3
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.js +7 -14
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.js +5 -12
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.js +4 -11
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js +9 -16
- package/dist/cjs/ai/modals/groq/whisper.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/whisper.js +20 -27
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.js +3 -7
- package/dist/cjs/ai/utils.d.ts +4 -6
- package/dist/cjs/ai/utils.js +4 -17
- package/dist/cjs/canvas/ApexPainter.d.ts +1 -2
- package/dist/cjs/canvas/ApexPainter.js +93 -101
- package/dist/cjs/canvas/utils/Background/bg.d.ts +1 -2
- package/dist/cjs/canvas/utils/Background/bg.js +8 -18
- package/dist/cjs/canvas/utils/Charts/charts.d.ts +1 -2
- package/dist/cjs/canvas/utils/Charts/charts.js +14 -23
- package/dist/cjs/canvas/utils/Custom/customLines.d.ts +1 -2
- package/dist/cjs/canvas/utils/Custom/customLines.js +4 -8
- package/dist/cjs/canvas/utils/General/conversion.d.ts +0 -1
- package/dist/cjs/canvas/utils/General/conversion.js +7 -15
- package/dist/cjs/canvas/utils/General/general functions.d.ts +1 -2
- package/dist/cjs/canvas/utils/General/general functions.js +48 -64
- package/dist/cjs/canvas/utils/Image/imageProperties.d.ts +1 -2
- package/dist/cjs/canvas/utils/Image/imageProperties.js +9 -21
- package/dist/cjs/canvas/utils/Texts/textProperties.d.ts +1 -2
- package/dist/cjs/canvas/utils/Texts/textProperties.js +3 -9
- package/dist/cjs/canvas/utils/types.d.ts +0 -1
- package/dist/cjs/canvas/utils/types.js +1 -3
- package/dist/cjs/canvas/utils/utils.d.ts +8 -9
- package/dist/cjs/canvas/utils/utils.js +8 -44
- package/dist/cjs/index.d.ts +5 -6
- package/dist/cjs/index.js +15 -65
- package/dist/cjs/utils.d.ts +3 -4
- package/dist/cjs/utils.js +4 -16
- package/dist/esm/ai/ApexAI.d.ts +0 -1
- package/dist/esm/ai/ApexAI.js +56 -68
- package/dist/esm/ai/ApexModules.d.ts +0 -1
- package/dist/esm/ai/ApexModules.js +25 -33
- package/dist/esm/ai/functions/readFiles.d.ts +0 -1
- package/dist/esm/ai/functions/readFiles.js +11 -51
- package/dist/esm/ai/functions/tokenizer.d.ts +0 -1
- package/dist/esm/ai/functions/tokenizer.js +1 -5
- package/dist/esm/ai/functions/validOptions.d.ts +0 -1
- package/dist/esm/ai/functions/validOptions.js +13 -23
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.js +5 -12
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.js +10 -17
- package/dist/esm/ai/modals/electronHub/songModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.js +1 -3
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.js +7 -14
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.js +5 -12
- package/dist/esm/ai/modals/groq/chatgroq.d.ts +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.js +4 -11
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.js +9 -16
- package/dist/esm/ai/modals/groq/whisper.d.ts +0 -1
- package/dist/esm/ai/modals/groq/whisper.js +20 -27
- package/dist/esm/ai/modals/hercai/chatModels.d.ts +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.js +3 -7
- package/dist/esm/ai/utils.d.ts +4 -6
- package/dist/esm/ai/utils.js +4 -17
- package/dist/esm/canvas/ApexPainter.d.ts +1 -2
- package/dist/esm/canvas/ApexPainter.js +93 -101
- package/dist/esm/canvas/utils/Background/bg.d.ts +1 -2
- package/dist/esm/canvas/utils/Background/bg.js +8 -18
- package/dist/esm/canvas/utils/Charts/charts.d.ts +1 -2
- package/dist/esm/canvas/utils/Charts/charts.js +14 -23
- package/dist/esm/canvas/utils/Custom/customLines.d.ts +1 -2
- package/dist/esm/canvas/utils/Custom/customLines.js +4 -8
- package/dist/esm/canvas/utils/General/conversion.d.ts +0 -1
- package/dist/esm/canvas/utils/General/conversion.js +7 -15
- package/dist/esm/canvas/utils/General/general functions.d.ts +1 -2
- package/dist/esm/canvas/utils/General/general functions.js +48 -64
- package/dist/esm/canvas/utils/Image/imageProperties.d.ts +1 -2
- package/dist/esm/canvas/utils/Image/imageProperties.js +9 -21
- package/dist/esm/canvas/utils/Texts/textProperties.d.ts +1 -2
- package/dist/esm/canvas/utils/Texts/textProperties.js +3 -9
- package/dist/esm/canvas/utils/types.d.ts +0 -1
- package/dist/esm/canvas/utils/types.js +1 -3
- package/dist/esm/canvas/utils/utils.d.ts +8 -9
- package/dist/esm/canvas/utils/utils.js +8 -44
- package/dist/esm/index.d.ts +5 -6
- package/dist/esm/index.js +15 -65
- package/dist/esm/utils.d.ts +3 -4
- package/dist/esm/utils.js +4 -16
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/lib/ai/ApexAI.ts +2 -14
- package/lib/ai/ApexModules.ts +8 -8
- package/lib/ai/modals/electronHub/chatmodels.ts +1 -1
- package/lib/ai/modals/electronHub/imageModels.ts +2 -2
- package/lib/ai/modals/electronHub/speechModels.ts +1 -1
- package/lib/ai/utils.ts +3 -5
- package/lib/canvas/ApexPainter.ts +4 -4
- package/lib/canvas/utils/Background/bg.ts +1 -1
- package/lib/canvas/utils/Charts/charts.ts +1 -1
- package/lib/canvas/utils/Custom/customLines.ts +2 -2
- package/lib/canvas/utils/General/general functions.ts +1 -1
- package/lib/canvas/utils/Image/imageProperties.ts +1 -1
- package/lib/canvas/utils/Texts/textProperties.ts +1 -1
- package/lib/canvas/utils/utils.ts +8 -8
- package/lib/index.ts +5 -5
- package/lib/utils.ts +3 -3
- package/package.json +8 -6
- package/dist/cjs/ai/ApexAI.d.ts.map +0 -1
- package/dist/cjs/ai/ApexAI.js.map +0 -1
- package/dist/cjs/ai/ApexModules.d.ts.map +0 -1
- package/dist/cjs/ai/ApexModules.js.map +0 -1
- package/dist/cjs/ai/buttons/drawMenu.d.ts +0 -3
- package/dist/cjs/ai/buttons/drawMenu.d.ts.map +0 -1
- package/dist/cjs/ai/buttons/drawMenu.js +0 -273
- package/dist/cjs/ai/buttons/drawMenu.js.map +0 -1
- package/dist/cjs/ai/buttons/tools.d.ts +0 -3
- package/dist/cjs/ai/buttons/tools.d.ts.map +0 -1
- package/dist/cjs/ai/buttons/tools.js +0 -445
- package/dist/cjs/ai/buttons/tools.js.map +0 -1
- package/dist/cjs/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/cjs/ai/functions/readFiles.js.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.js.map +0 -1
- package/dist/cjs/ai/functions/typeWriter.d.ts +0 -2
- package/dist/cjs/ai/functions/typeWriter.d.ts.map +0 -1
- package/dist/cjs/ai/functions/typeWriter.js +0 -24
- package/dist/cjs/ai/functions/typeWriter.js.map +0 -1
- package/dist/cjs/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/cjs/ai/functions/validOptions.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.js.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/cjs/ai/utils.d.ts.map +0 -1
- package/dist/cjs/ai/utils.js.map +0 -1
- package/dist/cjs/canvas/ApexPainter.d.ts.map +0 -1
- package/dist/cjs/canvas/ApexPainter.js.map +0 -1
- package/dist/cjs/canvas/Themes/Level-Up/levelup.d.ts +0 -11
- package/dist/cjs/canvas/Themes/Level-Up/levelup.d.ts.map +0 -1
- package/dist/cjs/canvas/Themes/Level-Up/levelup.js +0 -163
- package/dist/cjs/canvas/Themes/Level-Up/levelup.js.map +0 -1
- package/dist/cjs/canvas/utils/Background/bg.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Background/bg.js.map +0 -1
- package/dist/cjs/canvas/utils/Charts/charts.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Charts/charts.js.map +0 -1
- package/dist/cjs/canvas/utils/Custom/customLines.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Custom/customLines.js.map +0 -1
- package/dist/cjs/canvas/utils/General/conversion.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/General/conversion.js.map +0 -1
- package/dist/cjs/canvas/utils/General/general functions.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/General/general functions.js.map +0 -1
- package/dist/cjs/canvas/utils/Image/imageProperties.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Image/imageProperties.js.map +0 -1
- package/dist/cjs/canvas/utils/Texts/textProperties.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Texts/textProperties.js.map +0 -1
- package/dist/cjs/canvas/utils/types.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/types.js.map +0 -1
- package/dist/cjs/canvas/utils/utils.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/utils.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/ai/ApexAI.d.ts.map +0 -1
- package/dist/esm/ai/ApexAI.js.map +0 -1
- package/dist/esm/ai/ApexModules.d.ts.map +0 -1
- package/dist/esm/ai/ApexModules.js.map +0 -1
- package/dist/esm/ai/buttons/drawMenu.d.ts +0 -3
- package/dist/esm/ai/buttons/drawMenu.d.ts.map +0 -1
- package/dist/esm/ai/buttons/drawMenu.js +0 -273
- package/dist/esm/ai/buttons/drawMenu.js.map +0 -1
- package/dist/esm/ai/buttons/tools.d.ts +0 -3
- package/dist/esm/ai/buttons/tools.d.ts.map +0 -1
- package/dist/esm/ai/buttons/tools.js +0 -445
- package/dist/esm/ai/buttons/tools.js.map +0 -1
- package/dist/esm/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/esm/ai/functions/readFiles.js.map +0 -1
- package/dist/esm/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/esm/ai/functions/tokenizer.js.map +0 -1
- package/dist/esm/ai/functions/typeWriter.d.ts +0 -2
- package/dist/esm/ai/functions/typeWriter.d.ts.map +0 -1
- package/dist/esm/ai/functions/typeWriter.js +0 -24
- package/dist/esm/ai/functions/typeWriter.js.map +0 -1
- package/dist/esm/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/esm/ai/functions/validOptions.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.js.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/esm/ai/utils.d.ts.map +0 -1
- package/dist/esm/ai/utils.js.map +0 -1
- package/dist/esm/canvas/ApexPainter.d.ts.map +0 -1
- package/dist/esm/canvas/ApexPainter.js.map +0 -1
- package/dist/esm/canvas/Themes/Level-Up/levelup.d.ts +0 -11
- package/dist/esm/canvas/Themes/Level-Up/levelup.d.ts.map +0 -1
- package/dist/esm/canvas/Themes/Level-Up/levelup.js +0 -163
- package/dist/esm/canvas/Themes/Level-Up/levelup.js.map +0 -1
- package/dist/esm/canvas/utils/Background/bg.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Background/bg.js.map +0 -1
- package/dist/esm/canvas/utils/Charts/charts.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Charts/charts.js.map +0 -1
- package/dist/esm/canvas/utils/Custom/customLines.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Custom/customLines.js.map +0 -1
- package/dist/esm/canvas/utils/General/conversion.d.ts.map +0 -1
- package/dist/esm/canvas/utils/General/conversion.js.map +0 -1
- package/dist/esm/canvas/utils/General/general functions.d.ts.map +0 -1
- package/dist/esm/canvas/utils/General/general functions.js.map +0 -1
- package/dist/esm/canvas/utils/Image/imageProperties.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Image/imageProperties.js.map +0 -1
- package/dist/esm/canvas/utils/Texts/textProperties.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Texts/textProperties.js.map +0 -1
- package/dist/esm/canvas/utils/types.d.ts.map +0 -1
- package/dist/esm/canvas/utils/types.js.map +0 -1
- package/dist/esm/canvas/utils/utils.d.ts.map +0 -1
- package/dist/esm/canvas/utils/utils.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/esm/utils.js.map +0 -1
- package/lib/ai/buttons/drawMenu.ts +0 -361
- package/lib/ai/buttons/tools.ts +0 -551
- package/lib/ai/functions/typeWriter.ts +0 -24
- package/lib/canvas/Themes/Level-Up/levelup.ts +0 -183
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
### Jedi-Studio Introduce
|
|
4
4
|
|
|
5
|
-
Greetings everyone! 🌟
|
|
5
|
+
Greetings everyone! 🌟 If you encounter any issues or need assistance, feel free to reach out. Direct message me on Discord at `elioo.79` (ID: 1130583393176920095).
|
|
6
6
|
|
|
7
7
|
## 🚀 Usage Guidelines
|
|
8
8
|
|
package/dist/cjs/ai/ApexAI.d.ts
CHANGED
|
@@ -142,4 +142,3 @@ export interface Options {
|
|
|
142
142
|
}
|
|
143
143
|
export declare function ApexAI(message: Message, ApexOptions: Options): Promise<any>;
|
|
144
144
|
export declare function handleVoiceAI(message: any, voiceChannelId: string, chat: any, modelName?: string, personality?: string): Promise<any>;
|
|
145
|
-
//# sourceMappingURL=ApexAI.d.ts.map
|
package/dist/cjs/ai/ApexAI.js
CHANGED
|
@@ -1,41 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const voice_1 = require("@discordjs/voice");
|
|
11
|
-
const tools_1 = require("./buttons/tools");
|
|
12
|
-
const drawMenu_1 = require("./buttons/drawMenu");
|
|
13
|
-
const whisper_1 = require("./modals/groq/whisper");
|
|
14
|
-
const stream_1 = require("stream");
|
|
15
|
-
const prism_media_1 = __importDefault(require("prism-media"));
|
|
16
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const fs_1 = __importDefault(require("fs"));
|
|
18
|
-
const child_process_1 = require("child_process");
|
|
1
|
+
import { groqAnalyzer, readFile, ApexImagine, ApexText2Speech, ApexListener, ApexChat } from "./utils.js";
|
|
2
|
+
import { ActionRowBuilder, EmbedBuilder, AttachmentBuilder, ButtonStyle, ButtonBuilder, PermissionFlagsBits } from "discord.js";
|
|
3
|
+
import { joinVoiceChannel, createAudioPlayer, createAudioResource, EndBehaviorType, AudioPlayerStatus } from "@discordjs/voice";
|
|
4
|
+
import { whisper } from "./modals/groq/whisper.js";
|
|
5
|
+
import { pipeline, Readable } from "stream";
|
|
6
|
+
import prism from "prism-media";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import fs from "fs";
|
|
9
|
+
import { execSync } from "child_process";
|
|
19
10
|
function createButtonRows(buttons) {
|
|
20
11
|
if (!Array.isArray(buttons) || buttons.length === 0)
|
|
21
12
|
return [];
|
|
22
13
|
const buttonRows = [];
|
|
23
|
-
let currentRow = new
|
|
14
|
+
let currentRow = new ActionRowBuilder();
|
|
24
15
|
for (const button of buttons) {
|
|
25
16
|
if (!button.label || !button.style || !button.custom_id)
|
|
26
17
|
continue;
|
|
27
|
-
const buttonComponent = new
|
|
18
|
+
const buttonComponent = new ButtonBuilder()
|
|
28
19
|
.setLabel(button.label)
|
|
29
20
|
.setStyle(button.style)
|
|
30
21
|
.setCustomId(button.custom_id);
|
|
31
22
|
if (button.emoji)
|
|
32
23
|
buttonComponent.setEmoji(button.emoji);
|
|
33
|
-
if (button.url && button.style ===
|
|
24
|
+
if (button.url && button.style === ButtonStyle.Link)
|
|
34
25
|
buttonComponent.setURL(button.url);
|
|
35
26
|
currentRow.addComponents(buttonComponent);
|
|
36
27
|
if (currentRow.components.length === 5) {
|
|
37
28
|
buttonRows.push(currentRow);
|
|
38
|
-
currentRow = new
|
|
29
|
+
currentRow = new ActionRowBuilder();
|
|
39
30
|
}
|
|
40
31
|
}
|
|
41
32
|
if (currentRow.components.length > 0) {
|
|
@@ -43,11 +34,9 @@ function createButtonRows(buttons) {
|
|
|
43
34
|
}
|
|
44
35
|
return buttonRows.slice(0, 5);
|
|
45
36
|
}
|
|
46
|
-
async function ApexAI(message, ApexOptions) {
|
|
37
|
+
export async function ApexAI(message, ApexOptions) {
|
|
47
38
|
if (!message.guild || message.author.bot)
|
|
48
39
|
return;
|
|
49
|
-
await (0, drawMenu_1.imageTools)(message.client, discord_js_1.ModalBuilder, discord_js_1.TextInputBuilder, discord_js_1.TextInputStyle, discord_js_1.ActionRowBuilder);
|
|
50
|
-
await (0, tools_1.filters)(message.client);
|
|
51
40
|
let prompt = message.content || "";
|
|
52
41
|
const { others, chat, voice, imagine, voiceChannel } = ApexOptions;
|
|
53
42
|
const { permissions, channel, messageType, onMention, loader, buttons } = others ?? {};
|
|
@@ -91,18 +80,18 @@ async function ApexAI(message, ApexOptions) {
|
|
|
91
80
|
console.error("Audio file exceeds 25MB.");
|
|
92
81
|
continue;
|
|
93
82
|
}
|
|
94
|
-
prompt += `\n> Transcribed from audio:\n${await
|
|
83
|
+
prompt += `\n> Transcribed from audio:\n${await whisper(prompt, url)}`;
|
|
95
84
|
}
|
|
96
85
|
else if (["image/png", "image/jpeg", "image/jpg", "image/webp"].includes(contentType)) {
|
|
97
86
|
if (!Api_Keys?.groq_API) {
|
|
98
87
|
console.error("Missing Groq API Key.");
|
|
99
88
|
continue;
|
|
100
89
|
}
|
|
101
|
-
prompt += `\n> Image analysis:\n${await
|
|
90
|
+
prompt += `\n> Image analysis:\n${await groqAnalyzer({ img: url, ApiKey: Api_Keys.groq_API })}`;
|
|
102
91
|
}
|
|
103
92
|
else if (attachment.name.endsWith(".pdf") || attachment.name.endsWith(".txt")) {
|
|
104
93
|
const fileType = attachment.name.endsWith(".pdf") ? "pdf" : "txt";
|
|
105
|
-
const fileContent = await
|
|
94
|
+
const fileContent = await readFile(url, fileType);
|
|
106
95
|
prompt += `\n\n- 📜 ${attachment.name} content:\n${fileContent}`;
|
|
107
96
|
}
|
|
108
97
|
else {
|
|
@@ -124,7 +113,7 @@ async function ApexAI(message, ApexOptions) {
|
|
|
124
113
|
prevReply += fetchedMessage.content || "";
|
|
125
114
|
const firstAttachment = fetchedMessage.attachments?.first();
|
|
126
115
|
if (firstAttachment && /\.(png|jpg|jpeg|webp)$/i.test(firstAttachment.url)) {
|
|
127
|
-
prevReply += await
|
|
116
|
+
prevReply += await groqAnalyzer({
|
|
128
117
|
img: firstAttachment.url,
|
|
129
118
|
ApiKey: Api_Keys?.groq_API,
|
|
130
119
|
prompt,
|
|
@@ -171,14 +160,14 @@ async function ApexAI(message, ApexOptions) {
|
|
|
171
160
|
let tempEnhancer;
|
|
172
161
|
if (enhancer) {
|
|
173
162
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n`;
|
|
174
|
-
tempEnhancer = await
|
|
163
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
175
164
|
}
|
|
176
|
-
genImage = await
|
|
165
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: imagine?.enhancer?.width, height: imagine?.enhancer?.height, format: imagine?.enhancer?.format,
|
|
177
166
|
quality: imagine?.enhancer?.quality, negative_prompt: imagine?.enhancer?.negative_prompt, nsfw: imagine?.nsfw?.enable,
|
|
178
167
|
nsfwWords: imagine?.nsfw?.keywords, deepCheck: imagine?.nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
179
168
|
instruction += `\n\nThe image has already been generated. Do not attempt to generate or describe another image. Instead, provide feedback, thoughts, or a critique based on the given prompt:\n\n`;
|
|
180
169
|
}
|
|
181
|
-
aiResponse = await
|
|
170
|
+
aiResponse = await ApexChat(chat?.chatModel, prompt, { instruction, memory: chat?.memory?.memoryOn, userId: chat?.memory?.id, limit: chat?.memory?.limit, threshold: chat?.memory?.threshold });
|
|
182
171
|
}
|
|
183
172
|
else if (voiceEnabled) {
|
|
184
173
|
let instruction = chat?.instruction;
|
|
@@ -187,24 +176,24 @@ async function ApexAI(message, ApexOptions) {
|
|
|
187
176
|
let tempEnhancer;
|
|
188
177
|
if (enhancer) {
|
|
189
178
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n`;
|
|
190
|
-
tempEnhancer = await
|
|
179
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
191
180
|
}
|
|
192
|
-
genImage = await
|
|
181
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: enhancer?.width, height: enhancer?.height, format: enhancer?.format,
|
|
193
182
|
quality: enhancer?.quality, negative_prompt: enhancer?.negative_prompt, nsfw: nsfw?.enable,
|
|
194
183
|
nsfwWords: nsfw?.keywords, deepCheck: nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
195
184
|
instruction += `\n\nThe image has already been generated. Do not attempt to generate or describe another image. Instead, provide feedback, thoughts, or a critique based on the given prompt:\n\n`;
|
|
196
185
|
}
|
|
197
|
-
aiResponse = await
|
|
198
|
-
aiResponse = await
|
|
186
|
+
aiResponse = await ApexChat(chat?.chatModel, prompt, { instruction, memory: chat?.memory?.memoryOn, userId: chat?.memory?.id, limit: chat?.memory?.limit, threshold: chat?.memory?.threshold });
|
|
187
|
+
aiResponse = await ApexText2Speech({ modelName: voice?.voiceModel, inputText: aiResponse, personality: voice?.characterName });
|
|
199
188
|
}
|
|
200
189
|
else if (imageEnabled && drawTrigger) {
|
|
201
190
|
const enhancer = imagine?.enhancer?.enable ? imagine.enhancer : undefined;
|
|
202
191
|
let tempEnhancer;
|
|
203
192
|
if (enhancer) {
|
|
204
193
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n${prompt}`;
|
|
205
|
-
tempEnhancer = await
|
|
194
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
206
195
|
}
|
|
207
|
-
genImage = await
|
|
196
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: enhancer?.width, height: enhancer?.height, format: enhancer?.format,
|
|
208
197
|
quality: enhancer?.quality, negative_prompt: enhancer?.negative_prompt, nsfw: nsfw?.enable,
|
|
209
198
|
nsfwWords: nsfw?.keywords, deepCheck: nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
210
199
|
}
|
|
@@ -218,12 +207,12 @@ async function ApexAI(message, ApexOptions) {
|
|
|
218
207
|
const imageAttachments = [];
|
|
219
208
|
if (genImage.length > 0) {
|
|
220
209
|
for (const imageUrl of genImage) {
|
|
221
|
-
imageAttachments.push(new
|
|
210
|
+
imageAttachments.push(new AttachmentBuilder(imageUrl, { name: `image-${Date.now()}.png` }));
|
|
222
211
|
}
|
|
223
212
|
}
|
|
224
213
|
let voiceAttachment = null;
|
|
225
214
|
if (voiceEnabled && aiResponse instanceof Buffer) {
|
|
226
|
-
voiceAttachment = new
|
|
215
|
+
voiceAttachment = new AttachmentBuilder(aiResponse, { name: "ai_voice.mp3" });
|
|
227
216
|
}
|
|
228
217
|
const chunkMessage = (text, maxLength = 2000) => {
|
|
229
218
|
const chunks = [];
|
|
@@ -245,7 +234,7 @@ async function ApexAI(message, ApexOptions) {
|
|
|
245
234
|
if (!content.trim())
|
|
246
235
|
return;
|
|
247
236
|
if (messageType?.sendAs === "embed") {
|
|
248
|
-
const embed = new
|
|
237
|
+
const embed = new EmbedBuilder()
|
|
249
238
|
.setColor(0x0099ff)
|
|
250
239
|
.setDescription(content)
|
|
251
240
|
.setFooter({ text: "AI Response" });
|
|
@@ -329,12 +318,12 @@ let voiceConnection = null;
|
|
|
329
318
|
let activeUser = null;
|
|
330
319
|
let isRecording = false;
|
|
331
320
|
let silenceTimer = null;
|
|
332
|
-
const recordingsDir =
|
|
333
|
-
if (!
|
|
334
|
-
|
|
321
|
+
const recordingsDir = path.join(process.cwd(), "recordings");
|
|
322
|
+
if (!fs.existsSync(recordingsDir)) {
|
|
323
|
+
fs.mkdirSync(recordingsDir, { recursive: true });
|
|
335
324
|
}
|
|
336
325
|
try {
|
|
337
|
-
|
|
326
|
+
execSync("ffmpeg -version > nul 2>&1");
|
|
338
327
|
}
|
|
339
328
|
catch (err) {
|
|
340
329
|
console.error("🚨 FFmpeg is NOT installed or not in PATH! Install it first.");
|
|
@@ -343,7 +332,7 @@ function resetSilenceTimer() {
|
|
|
343
332
|
if (silenceTimer)
|
|
344
333
|
clearTimeout(silenceTimer);
|
|
345
334
|
}
|
|
346
|
-
async function handleVoiceAI(message, voiceChannelId, chat, modelName, personality) {
|
|
335
|
+
export async function handleVoiceAI(message, voiceChannelId, chat, modelName, personality) {
|
|
347
336
|
const guild = message.guild;
|
|
348
337
|
if (!guild)
|
|
349
338
|
return;
|
|
@@ -355,16 +344,16 @@ async function handleVoiceAI(message, voiceChannelId, chat, modelName, personali
|
|
|
355
344
|
if (!botMember)
|
|
356
345
|
return;
|
|
357
346
|
const permissions = channel.permissionsFor(botMember);
|
|
358
|
-
if (!permissions?.has(
|
|
359
|
-
!permissions.has(
|
|
360
|
-
!permissions.has(
|
|
361
|
-
!permissions.has(
|
|
347
|
+
if (!permissions?.has(PermissionFlagsBits.Connect) ||
|
|
348
|
+
!permissions.has(PermissionFlagsBits.Speak) ||
|
|
349
|
+
!permissions.has(PermissionFlagsBits.Stream) ||
|
|
350
|
+
!permissions.has(PermissionFlagsBits.UseVAD)) {
|
|
362
351
|
return await message.reply("🚫 I don't have the required permissions to join and speak in this voice channel.");
|
|
363
352
|
}
|
|
364
353
|
if (voiceConnection) {
|
|
365
354
|
return await message.reply("⚠️ AI is already in a voice channel.");
|
|
366
355
|
}
|
|
367
|
-
voiceConnection =
|
|
356
|
+
voiceConnection = joinVoiceChannel({
|
|
368
357
|
channelId: channel.id,
|
|
369
358
|
guildId: guild.id,
|
|
370
359
|
adapterCreator: guild.voiceAdapterCreator,
|
|
@@ -382,18 +371,18 @@ function captureAudio(connection, chat, modelName, personality) {
|
|
|
382
371
|
isRecording = false;
|
|
383
372
|
}
|
|
384
373
|
resetSilenceTimer();
|
|
385
|
-
const rawFilePath =
|
|
386
|
-
const wavFilePath =
|
|
374
|
+
const rawFilePath = path.join(recordingsDir, `${userId}.pcm`);
|
|
375
|
+
const wavFilePath = path.join(recordingsDir, `${userId}.wav`);
|
|
387
376
|
const opusStream = receiver.subscribe(userId, {
|
|
388
|
-
end: { behavior:
|
|
377
|
+
end: { behavior: EndBehaviorType.AfterSilence, duration: 2000 }
|
|
389
378
|
});
|
|
390
|
-
const pcmStream = new
|
|
379
|
+
const pcmStream = new prism.opus.Decoder({
|
|
391
380
|
frameSize: 960,
|
|
392
381
|
channels: 1,
|
|
393
382
|
rate: 48000
|
|
394
383
|
});
|
|
395
|
-
const writeStream =
|
|
396
|
-
|
|
384
|
+
const writeStream = fs.createWriteStream(rawFilePath);
|
|
385
|
+
pipeline(opusStream, pcmStream, writeStream, (err) => {
|
|
397
386
|
if (err) {
|
|
398
387
|
console.error("❌ Error writing PCM file:", err);
|
|
399
388
|
return;
|
|
@@ -423,12 +412,12 @@ function startSilenceTimer(chat, modelName, personality) {
|
|
|
423
412
|
}, 5000);
|
|
424
413
|
}
|
|
425
414
|
function convertPCMtoWAV(inputPCM, outputWAV, chat, modelName, personality) {
|
|
426
|
-
if (!
|
|
415
|
+
if (!fs.existsSync(inputPCM) || fs.statSync(inputPCM).size === 0) {
|
|
427
416
|
return;
|
|
428
417
|
}
|
|
429
418
|
try {
|
|
430
|
-
|
|
431
|
-
if (
|
|
419
|
+
execSync(`ffmpeg -y -f s16le -ar 48000 -ac 1 -i "${inputPCM}" -acodec pcm_s16le "${outputWAV}" > nul 2>&1`);
|
|
420
|
+
if (fs.existsSync(outputWAV)) {
|
|
432
421
|
transcribeAudio(outputWAV, chat, modelName, personality);
|
|
433
422
|
}
|
|
434
423
|
}
|
|
@@ -438,7 +427,7 @@ function convertPCMtoWAV(inputPCM, outputWAV, chat, modelName, personality) {
|
|
|
438
427
|
}
|
|
439
428
|
async function transcribeAudio(filePath, chat, modelName, personality) {
|
|
440
429
|
try {
|
|
441
|
-
const transcribedText = await
|
|
430
|
+
const transcribedText = await ApexListener({
|
|
442
431
|
filepath: filePath,
|
|
443
432
|
prompt: "Transcribe what the user said in English.",
|
|
444
433
|
lang: "en"
|
|
@@ -447,7 +436,7 @@ async function transcribeAudio(filePath, chat, modelName, personality) {
|
|
|
447
436
|
voiceQueue.push({ userId: activeUser || "unknown", text: transcribedText.transcribe });
|
|
448
437
|
processQueue(chat, modelName, personality);
|
|
449
438
|
}
|
|
450
|
-
|
|
439
|
+
fs.unlinkSync(filePath);
|
|
451
440
|
}
|
|
452
441
|
catch (error) {
|
|
453
442
|
console.error("❌ Error in transcription:", error);
|
|
@@ -461,20 +450,20 @@ async function processQueue(chat, modelName, personality) {
|
|
|
461
450
|
activeUser = userId;
|
|
462
451
|
resetSilenceTimer();
|
|
463
452
|
try {
|
|
464
|
-
const aiResponse = await
|
|
453
|
+
const aiResponse = await ApexChat(chat?.chatModel || "gpt-4o", text, {
|
|
465
454
|
instruction: chat.instruction,
|
|
466
455
|
memory: chat?.memory?.memoryOn,
|
|
467
456
|
userId,
|
|
468
457
|
limit: chat?.memory?.limit,
|
|
469
458
|
threshold: chat?.memory?.threshold
|
|
470
459
|
});
|
|
471
|
-
const audioBuffer = await
|
|
460
|
+
const audioBuffer = await ApexText2Speech({ inputText: aiResponse, modelName, personality });
|
|
472
461
|
if (voiceConnection) {
|
|
473
|
-
const player =
|
|
474
|
-
const resource =
|
|
462
|
+
const player = createAudioPlayer();
|
|
463
|
+
const resource = createAudioResource(Readable.from(audioBuffer));
|
|
475
464
|
voiceConnection.subscribe(player);
|
|
476
465
|
player.play(resource);
|
|
477
|
-
player.on(
|
|
466
|
+
player.on(AudioPlayerStatus.Idle, () => {
|
|
478
467
|
isProcessing = false;
|
|
479
468
|
if (voiceQueue.length > 0) {
|
|
480
469
|
processQueue(chat, modelName, personality);
|
|
@@ -495,4 +484,3 @@ function leaveVoiceChannel() {
|
|
|
495
484
|
resetSilenceTimer();
|
|
496
485
|
}
|
|
497
486
|
}
|
|
498
|
-
//# sourceMappingURL=ApexAI.js.map
|
|
@@ -1,34 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const verse_db_1 = require("verse.db");
|
|
13
|
-
const chatgroq_1 = require("./modals/groq/chatgroq");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
const imageModels_1 = require("./modals/electronHub/imageModels");
|
|
16
|
-
const chatmodels_1 = require("./modals/electronHub/chatmodels");
|
|
17
|
-
const speechModels_1 = require("./modals/electronHub/speechModels");
|
|
18
|
-
const videoModels_1 = require("./modals/electronHub/videoModels");
|
|
19
|
-
const generative_ai_1 = require("@google/generative-ai");
|
|
1
|
+
import { Hercai } from 'hercai';
|
|
2
|
+
import { validateModels } from "./functions/validOptions.js";
|
|
3
|
+
import { whisper } from './modals/groq/whisper.js';
|
|
4
|
+
import { connect } from 'verse.db';
|
|
5
|
+
import { chatGroq } from './modals/groq/chatgroq.js';
|
|
6
|
+
import { groqAnalyzer } from './utils.js';
|
|
7
|
+
import { electronImagine } from './modals/electronHub/imageModels.js';
|
|
8
|
+
import { electronChat } from './modals/electronHub/chatmodels.js';
|
|
9
|
+
import { electronSpeech } from './modals/electronHub/speechModels.js';
|
|
10
|
+
import { electronVideo } from './modals/electronHub/videoModels.js';
|
|
11
|
+
import { GoogleGenerativeAI } from "@google/generative-ai";
|
|
20
12
|
const dbConfig = {
|
|
21
13
|
adapter: 'json',
|
|
22
14
|
dataPath: 'Ai_Chat-History'
|
|
23
15
|
};
|
|
24
|
-
const db = new
|
|
25
|
-
const hercai = new
|
|
16
|
+
const db = new connect(dbConfig);
|
|
17
|
+
const hercai = new Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
|
|
26
18
|
async function ApexImagine(model, prompt, options) {
|
|
27
19
|
let imageURL = '';
|
|
28
20
|
let response = [];
|
|
29
|
-
const imageType = await
|
|
21
|
+
const imageType = await validateModels();
|
|
30
22
|
const { Api_Key = 'eaebff6e-c7b2-477c-8edd-9aa91becf1e3', nsfw = false, deepCheck = false, nsfwWords = [], count = 2, negative_prompt = "", sampler = "DPM++ 2M Karras", height = 1024, width = 1024, cfg_scale = 9, steps = 20, seed = -1, image_style = "cinematic" } = options ?? {};
|
|
31
|
-
const translatedText = await
|
|
23
|
+
const translatedText = await electronChat({ modelName: 'gpt-4o', prompt: `Translate The text below into english:\n\n${prompt}` });
|
|
32
24
|
if (count > 4 || count <= 0)
|
|
33
25
|
throw new Error("Inavlid usage. Count can't be less than 0 or more than 4.");
|
|
34
26
|
if ((width || height) <= 0)
|
|
@@ -56,7 +48,7 @@ async function ApexImagine(model, prompt, options) {
|
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
50
|
else if (imageType.validElectronModels.includes(model)) {
|
|
59
|
-
const gen = await
|
|
51
|
+
const gen = await electronImagine({ ApiKey: Api_Key, prompt: translatedText, modelName: model, resizeOptions: { height, width, format: options?.format, quality: options?.quality } });
|
|
60
52
|
if (gen === null)
|
|
61
53
|
throw new Error('this model reached rate limit. Provide your own api key from: "https://discord.gg/94qUZWhwFE"');
|
|
62
54
|
imageURL = gen;
|
|
@@ -553,7 +545,7 @@ async function ApexImagine(model, prompt, options) {
|
|
|
553
545
|
];
|
|
554
546
|
let shouldExclude = false;
|
|
555
547
|
if (nsfw === true) {
|
|
556
|
-
const caption = await
|
|
548
|
+
const caption = await groqAnalyzer({ img: imageURL, prompt });
|
|
557
549
|
if (!caption)
|
|
558
550
|
return;
|
|
559
551
|
shouldExclude = NSFWWORDS.some(word => caption.includes(word));
|
|
@@ -614,7 +606,7 @@ async function ApexChat(model, prompt, { userId, memory, limit, instruction, Api
|
|
|
614
606
|
return '';
|
|
615
607
|
}
|
|
616
608
|
}
|
|
617
|
-
const genAI = new
|
|
609
|
+
const genAI = new GoogleGenerativeAI('AIzaSyAdlBVg12yjqqGfBqxT5DLGMhP2jysG7Hk');
|
|
618
610
|
const model = genAI.getGenerativeModel({ model: "text-embedding-004" });
|
|
619
611
|
async function getRelevantHistoryAI(prompt, history, maxResults, threshold = 0.7) {
|
|
620
612
|
const trimmedPrompt = prompt.length > 20000 ? prompt.slice(0, 10000) + "..." + prompt.slice(-10000) : prompt;
|
|
@@ -714,7 +706,7 @@ async function resetHistory({ id, last }) {
|
|
|
714
706
|
}
|
|
715
707
|
}
|
|
716
708
|
async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
717
|
-
const validOptions = await
|
|
709
|
+
const validOptions = await validateModels();
|
|
718
710
|
let response;
|
|
719
711
|
switch (true) {
|
|
720
712
|
case validOptions.validHercChatModels.includes(model):
|
|
@@ -725,7 +717,7 @@ async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
|
725
717
|
})).reply;
|
|
726
718
|
break;
|
|
727
719
|
case validOptions.validGroqChatModels.includes(model):
|
|
728
|
-
response = await
|
|
720
|
+
response = await chatGroq({
|
|
729
721
|
API_KEY: ApiKey,
|
|
730
722
|
apiName: model,
|
|
731
723
|
prompt,
|
|
@@ -733,7 +725,7 @@ async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
|
733
725
|
});
|
|
734
726
|
break;
|
|
735
727
|
case validOptions.validElectronModels.includes(model):
|
|
736
|
-
response = (await
|
|
728
|
+
response = (await electronChat({
|
|
737
729
|
ApiKey,
|
|
738
730
|
prompt,
|
|
739
731
|
instruction: personality,
|
|
@@ -751,7 +743,7 @@ async function ApexListener(options) {
|
|
|
751
743
|
if (!validatedLang) {
|
|
752
744
|
throw new Error(`Unsupported language: ${lang}. Please provide a valid ISO 639-1 language code or language name.`);
|
|
753
745
|
}
|
|
754
|
-
const transcribe = await
|
|
746
|
+
const transcribe = await whisper(prompt, filepath, validatedLang, apiKey);
|
|
755
747
|
const enhancer = `Below is the the speech/text that has been said in the voice/audio file.\n\n${transcribe}`;
|
|
756
748
|
let response = "";
|
|
757
749
|
if (model)
|
|
@@ -811,9 +803,9 @@ function validateLanguageInput(lang) {
|
|
|
811
803
|
async function ApexText2Speech({ ApiKey, inputText, modelName, personality }) {
|
|
812
804
|
const maxLength = 3000;
|
|
813
805
|
const trimmedInput = inputText.length > maxLength ? inputText.slice(0, maxLength) : inputText;
|
|
814
|
-
return await
|
|
806
|
+
return await electronSpeech({ ApiKey, inputText: trimmedInput, modelName, personality });
|
|
815
807
|
}
|
|
816
808
|
async function ApexVideo({ ApiKey, prompt, modelName }) {
|
|
817
|
-
return await
|
|
809
|
+
return await electronVideo({ ApiKey, prompt, modelName });
|
|
818
810
|
}
|
|
819
|
-
|
|
811
|
+
export { ApexImagine, ApexChat, ApexListener, ApexText2Speech, ApexVideo, resetHistory };
|
|
@@ -1,50 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.readFile = readFile;
|
|
40
|
-
const pdf_parse_1 = __importDefault(require("pdf-parse"));
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const https = __importStar(require("https"));
|
|
43
|
-
const fs_1 = require("fs");
|
|
44
|
-
const util_1 = require("util");
|
|
45
|
-
const path_1 = __importDefault(require("path"));
|
|
46
|
-
const readFileAsync = (0, util_1.promisify)(fs.readFile);
|
|
47
|
-
async function readFile(pathOrUrl, type) {
|
|
1
|
+
import pdf from "pdf-parse";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as https from "https";
|
|
4
|
+
import { createWriteStream } from "fs";
|
|
5
|
+
import { promisify } from "util";
|
|
6
|
+
import path from "path";
|
|
7
|
+
const readFileAsync = promisify(fs.readFile);
|
|
8
|
+
export async function readFile(pathOrUrl, type) {
|
|
48
9
|
const buffer = await loadFile(pathOrUrl);
|
|
49
10
|
const ext = type || getFileExtension(pathOrUrl);
|
|
50
11
|
switch (ext) {
|
|
@@ -57,7 +18,7 @@ async function readFile(pathOrUrl, type) {
|
|
|
57
18
|
function getFileExtension(pathOrUrl) {
|
|
58
19
|
const parsedPath = new URL(pathOrUrl, "file://");
|
|
59
20
|
const pathname = parsedPath.pathname || pathOrUrl;
|
|
60
|
-
const ext =
|
|
21
|
+
const ext = path.extname(pathname).toLowerCase();
|
|
61
22
|
return ext ? ext.slice(1) : undefined;
|
|
62
23
|
}
|
|
63
24
|
async function loadFile(pathOrUrl) {
|
|
@@ -68,7 +29,7 @@ function isUrl(pathOrUrl) {
|
|
|
68
29
|
}
|
|
69
30
|
async function downloadFile(url) {
|
|
70
31
|
const tempFilePath = "temp";
|
|
71
|
-
const file =
|
|
32
|
+
const file = createWriteStream(tempFilePath);
|
|
72
33
|
await new Promise((resolve, reject) => {
|
|
73
34
|
https.get(url, (response) => {
|
|
74
35
|
// @ts-ignore
|
|
@@ -83,7 +44,7 @@ async function downloadFile(url) {
|
|
|
83
44
|
}
|
|
84
45
|
async function readPdf(buffer) {
|
|
85
46
|
try {
|
|
86
|
-
const data = await (
|
|
47
|
+
const data = await pdf(buffer);
|
|
87
48
|
console.log("PDF Metadata:", data.metadata);
|
|
88
49
|
console.log("PDF Text:", data.text);
|
|
89
50
|
return data.text || "No readable text found in PDF.";
|
|
@@ -93,4 +54,3 @@ async function readPdf(buffer) {
|
|
|
93
54
|
return "Failed to extract text from PDF.";
|
|
94
55
|
}
|
|
95
56
|
}
|
|
96
|
-
//# sourceMappingURL=readFiles.js.map
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tokenLimit = tokenLimit;
|
|
4
1
|
/**
|
|
5
2
|
* Optimized tokenization function that processes characters in a single pass.
|
|
6
3
|
* - Splits words & punctuation efficiently.
|
|
@@ -40,7 +37,7 @@ function optimizedTokenCount(text) {
|
|
|
40
37
|
* - Keeps the full instruction intact.
|
|
41
38
|
* - Trims only the user’s prompt if needed.
|
|
42
39
|
*/
|
|
43
|
-
function tokenLimit(instruction, prompt, maxTokens = 3964) {
|
|
40
|
+
export function tokenLimit(instruction, prompt, maxTokens = 3964) {
|
|
44
41
|
const instructionTokens = optimizedTokenCount(instruction);
|
|
45
42
|
const remainingTokens = maxTokens - instructionTokens;
|
|
46
43
|
if (remainingTokens <= 0) {
|
|
@@ -61,4 +58,3 @@ function optimizedTrimText(text, maxTokens) {
|
|
|
61
58
|
}
|
|
62
59
|
return tokens.slice(0, maxTokens).join(' ');
|
|
63
60
|
}
|
|
64
|
-
//# sourceMappingURL=tokenizer.js.map
|