@cogitator-ai/core 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cogitator/message-builder.d.ts +8 -1
- package/dist/cogitator/message-builder.d.ts.map +1 -1
- package/dist/cogitator/message-builder.js +63 -4
- package/dist/cogitator/message-builder.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/bedrock.d.ts.map +1 -1
- package/dist/llm/bedrock.js +22 -12
- package/dist/llm/bedrock.js.map +1 -1
- package/dist/llm/ollama.d.ts.map +1 -1
- package/dist/llm/ollama.js +14 -8
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/plugin.d.ts +1 -3
- package/dist/llm/plugin.d.ts.map +1 -1
- package/dist/llm/plugin.js.map +1 -1
- package/dist/security/patterns.js +2 -2
- package/dist/security/patterns.js.map +1 -1
- package/dist/security/prompt-injection-detector.d.ts +1 -2
- package/dist/security/prompt-injection-detector.d.ts.map +1 -1
- package/dist/security/prompt-injection-detector.js.map +1 -1
- package/dist/tools/audio-generate.d.ts +25 -0
- package/dist/tools/audio-generate.d.ts.map +1 -0
- package/dist/tools/audio-generate.js +82 -0
- package/dist/tools/audio-generate.js.map +1 -0
- package/dist/tools/audio-transcribe.d.ts +27 -0
- package/dist/tools/audio-transcribe.d.ts.map +1 -0
- package/dist/tools/audio-transcribe.js +71 -0
- package/dist/tools/audio-transcribe.js.map +1 -0
- package/dist/tools/datetime.d.ts +1 -1
- package/dist/tools/filesystem.d.ts +2 -2
- package/dist/tools/http.d.ts +1 -1
- package/dist/tools/image-analyze.d.ts +56 -0
- package/dist/tools/image-analyze.d.ts.map +1 -0
- package/dist/tools/image-analyze.js +72 -0
- package/dist/tools/image-analyze.js.map +1 -0
- package/dist/tools/image-generate.d.ts +35 -0
- package/dist/tools/image-generate.d.ts.map +1 -0
- package/dist/tools/image-generate.js +69 -0
- package/dist/tools/image-generate.js.map +1 -0
- package/dist/tools/index.d.ts +10 -6
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/random.d.ts +2 -2
- package/dist/tools/web-scrape.js +3 -3
- package/dist/tools/web-scrape.js.map +1 -1
- package/dist/utils/audio-fetch.d.ts +17 -0
- package/dist/utils/audio-fetch.d.ts.map +1 -0
- package/dist/utils/audio-fetch.js +93 -0
- package/dist/utils/audio-fetch.js.map +1 -0
- package/dist/utils/image-fetch.d.ts +16 -0
- package/dist/utils/image-fetch.d.ts.map +1 -0
- package/dist/utils/image-fetch.js +68 -0
- package/dist/utils/image-fetch.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-injection-detector.js","sourceRoot":"","sources":["../../src/security/prompt-injection-detector.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAItE,MAAM,OAAO,uBAAuB;IAC1B,UAAU,CAAsB;IAChC,MAAM,CAAwB;IAC9B,cAAc,GAAa,EAAE,CAAC;IAC9B,YAAY,
|
|
1
|
+
{"version":3,"file":"prompt-injection-detector.js","sourceRoot":"","sources":["../../src/security/prompt-injection-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type TTSModel = 'tts-1' | 'tts-1-hd' | 'gpt-4o-mini-tts';
|
|
2
|
+
export type TTSVoice = 'alloy' | 'ash' | 'ballad' | 'coral' | 'echo' | 'fable' | 'nova' | 'onyx' | 'sage' | 'shimmer' | 'verse' | 'marin' | 'cedar';
|
|
3
|
+
export type TTSFormat = 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm';
|
|
4
|
+
export interface GenerateSpeechConfig {
|
|
5
|
+
apiKey?: string;
|
|
6
|
+
defaultModel?: TTSModel;
|
|
7
|
+
defaultVoice?: TTSVoice;
|
|
8
|
+
defaultFormat?: TTSFormat;
|
|
9
|
+
defaultSpeed?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SpeechResult {
|
|
12
|
+
audioBase64: string;
|
|
13
|
+
format: TTSFormat;
|
|
14
|
+
voice: TTSVoice;
|
|
15
|
+
model: TTSModel;
|
|
16
|
+
textLength: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function createGenerateSpeechTool(config?: GenerateSpeechConfig): import("@cogitator-ai/types").Tool<{
|
|
19
|
+
text: string;
|
|
20
|
+
model?: "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts" | undefined;
|
|
21
|
+
format?: "mp3" | "wav" | "flac" | "opus" | "aac" | "pcm" | undefined;
|
|
22
|
+
voice?: "alloy" | "ash" | "ballad" | "coral" | "echo" | "fable" | "nova" | "onyx" | "sage" | "shimmer" | "verse" | "marin" | "cedar" | undefined;
|
|
23
|
+
speed?: number | undefined;
|
|
24
|
+
}, SpeechResult>;
|
|
25
|
+
//# sourceMappingURL=audio-generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-generate.d.ts","sourceRoot":"","sources":["../../src/tools/audio-generate.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEhE,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,KAAK,GACL,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,oBAAyB;;;;;;iBAuEzE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tool } from '../tool';
|
|
3
|
+
const voiceSchema = z.enum([
|
|
4
|
+
'alloy',
|
|
5
|
+
'ash',
|
|
6
|
+
'ballad',
|
|
7
|
+
'coral',
|
|
8
|
+
'echo',
|
|
9
|
+
'fable',
|
|
10
|
+
'nova',
|
|
11
|
+
'onyx',
|
|
12
|
+
'sage',
|
|
13
|
+
'shimmer',
|
|
14
|
+
'verse',
|
|
15
|
+
'marin',
|
|
16
|
+
'cedar',
|
|
17
|
+
]);
|
|
18
|
+
const formatSchema = z.enum(['mp3', 'opus', 'aac', 'flac', 'wav', 'pcm']);
|
|
19
|
+
const modelSchema = z.enum(['tts-1', 'tts-1-hd', 'gpt-4o-mini-tts']);
|
|
20
|
+
export function createGenerateSpeechTool(config = {}) {
|
|
21
|
+
const getApiKey = () => config.apiKey || process.env.OPENAI_API_KEY;
|
|
22
|
+
return tool({
|
|
23
|
+
name: 'generateSpeech',
|
|
24
|
+
description: 'Convert text to natural-sounding speech using OpenAI TTS. Returns base64-encoded audio. Max input: 4096 characters.',
|
|
25
|
+
parameters: z.object({
|
|
26
|
+
text: z.string().max(4096).describe('Text to convert to speech (max 4096 characters)'),
|
|
27
|
+
voice: voiceSchema
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('Voice to use. Options: alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse, marin, cedar'),
|
|
30
|
+
model: modelSchema
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('TTS model. tts-1 is fast, tts-1-hd is higher quality'),
|
|
33
|
+
speed: z
|
|
34
|
+
.number()
|
|
35
|
+
.min(0.25)
|
|
36
|
+
.max(4.0)
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('Speech speed (0.25 to 4.0, default 1.0)'),
|
|
39
|
+
format: formatSchema.optional().describe('Output audio format (default: mp3)'),
|
|
40
|
+
}),
|
|
41
|
+
sideEffects: ['network', 'external'],
|
|
42
|
+
execute: async ({ text, voice, model, speed, format }) => {
|
|
43
|
+
const apiKey = getApiKey();
|
|
44
|
+
if (!apiKey) {
|
|
45
|
+
throw new Error('OpenAI API key required for speech generation');
|
|
46
|
+
}
|
|
47
|
+
const selectedModel = model || config.defaultModel || 'tts-1';
|
|
48
|
+
const selectedVoice = voice || config.defaultVoice || 'alloy';
|
|
49
|
+
const selectedFormat = format || config.defaultFormat || 'mp3';
|
|
50
|
+
const selectedSpeed = speed ?? config.defaultSpeed ?? 1.0;
|
|
51
|
+
const response = await fetch('https://api.openai.com/v1/audio/speech', {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: {
|
|
54
|
+
Authorization: `Bearer ${apiKey}`,
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
},
|
|
57
|
+
body: JSON.stringify({
|
|
58
|
+
model: selectedModel,
|
|
59
|
+
input: text,
|
|
60
|
+
voice: selectedVoice,
|
|
61
|
+
speed: selectedSpeed,
|
|
62
|
+
response_format: selectedFormat,
|
|
63
|
+
}),
|
|
64
|
+
});
|
|
65
|
+
if (!response.ok) {
|
|
66
|
+
const errorData = await response.json().catch(() => ({}));
|
|
67
|
+
const errorMessage = errorData.error?.message || response.statusText || 'Unknown error';
|
|
68
|
+
throw new Error(`Speech generation failed: ${errorMessage}`);
|
|
69
|
+
}
|
|
70
|
+
const audioBuffer = await response.arrayBuffer();
|
|
71
|
+
const audioBase64 = Buffer.from(audioBuffer).toString('base64');
|
|
72
|
+
return {
|
|
73
|
+
audioBase64,
|
|
74
|
+
format: selectedFormat,
|
|
75
|
+
voice: selectedVoice,
|
|
76
|
+
model: selectedModel,
|
|
77
|
+
textLength: text.length,
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=audio-generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-generate.js","sourceRoot":"","sources":["../../src/tools/audio-generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type TranscriptionModel = 'whisper-1' | 'gpt-4o-transcribe' | 'gpt-4o-mini-transcribe';
|
|
2
|
+
export interface TranscribeAudioConfig {
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
defaultModel?: TranscriptionModel;
|
|
5
|
+
defaultLanguage?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TranscriptionWord {
|
|
8
|
+
word: string;
|
|
9
|
+
start: number;
|
|
10
|
+
end: number;
|
|
11
|
+
}
|
|
12
|
+
export interface TranscriptionResult {
|
|
13
|
+
text: string;
|
|
14
|
+
language?: string;
|
|
15
|
+
duration?: number;
|
|
16
|
+
words?: TranscriptionWord[];
|
|
17
|
+
}
|
|
18
|
+
export declare function createTranscribeAudioTool(config?: TranscribeAudioConfig): import("@cogitator-ai/types").Tool<{
|
|
19
|
+
audio: string | {
|
|
20
|
+
data: string;
|
|
21
|
+
format: "mp3" | "mp4" | "mpeg" | "mpga" | "m4a" | "wav" | "webm" | "ogg" | "flac";
|
|
22
|
+
};
|
|
23
|
+
model?: "whisper-1" | "gpt-4o-transcribe" | "gpt-4o-mini-transcribe" | undefined;
|
|
24
|
+
language?: string | undefined;
|
|
25
|
+
timestamps?: boolean | undefined;
|
|
26
|
+
}, TranscriptionResult>;
|
|
27
|
+
//# sourceMappingURL=audio-transcribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-transcribe.d.ts","sourceRoot":"","sources":["../../src/tools/audio-transcribe.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,mBAAmB,GAAG,wBAAwB,CAAC;AAE9F,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAYD,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,qBAA0B;;;;;;;;wBAsE3E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tool } from '../tool';
|
|
3
|
+
import { audioInputToBuffer } from '../utils/audio-fetch';
|
|
4
|
+
const audioInputSchema = z.union([
|
|
5
|
+
z.string().describe('URL of the audio file'),
|
|
6
|
+
z.object({
|
|
7
|
+
data: z.string().describe('Base64 encoded audio data'),
|
|
8
|
+
format: z
|
|
9
|
+
.enum(['mp3', 'mp4', 'mpeg', 'mpga', 'm4a', 'wav', 'webm', 'ogg', 'flac'])
|
|
10
|
+
.describe('Audio format'),
|
|
11
|
+
}),
|
|
12
|
+
]);
|
|
13
|
+
export function createTranscribeAudioTool(config = {}) {
|
|
14
|
+
const getApiKey = () => config.apiKey || process.env.OPENAI_API_KEY;
|
|
15
|
+
return tool({
|
|
16
|
+
name: 'transcribeAudio',
|
|
17
|
+
description: 'Transcribe audio to text using OpenAI Whisper. Supports mp3, mp4, wav, webm, m4a, ogg, flac formats up to 25MB.',
|
|
18
|
+
parameters: z.object({
|
|
19
|
+
audio: audioInputSchema.describe('Audio file as URL or base64 data'),
|
|
20
|
+
language: z
|
|
21
|
+
.string()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('ISO-639-1 language code (e.g., "en", "es", "fr", "de", "ja")'),
|
|
24
|
+
model: z
|
|
25
|
+
.enum(['whisper-1', 'gpt-4o-transcribe', 'gpt-4o-mini-transcribe'])
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Transcription model to use'),
|
|
28
|
+
timestamps: z
|
|
29
|
+
.boolean()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Include word-level timestamps (only supported with whisper-1)'),
|
|
32
|
+
}),
|
|
33
|
+
execute: async ({ audio, language, model, timestamps }) => {
|
|
34
|
+
const apiKey = getApiKey();
|
|
35
|
+
if (!apiKey) {
|
|
36
|
+
throw new Error('OpenAI API key required for audio transcription');
|
|
37
|
+
}
|
|
38
|
+
const { buffer, filename } = await audioInputToBuffer(audio);
|
|
39
|
+
const selectedModel = model || config.defaultModel || 'whisper-1';
|
|
40
|
+
const selectedLanguage = language || config.defaultLanguage;
|
|
41
|
+
const formData = new FormData();
|
|
42
|
+
formData.append('file', new Blob([new Uint8Array(buffer)]), filename);
|
|
43
|
+
formData.append('model', selectedModel);
|
|
44
|
+
if (selectedLanguage) {
|
|
45
|
+
formData.append('language', selectedLanguage);
|
|
46
|
+
}
|
|
47
|
+
if (timestamps && selectedModel === 'whisper-1') {
|
|
48
|
+
formData.append('response_format', 'verbose_json');
|
|
49
|
+
formData.append('timestamp_granularities[]', 'word');
|
|
50
|
+
}
|
|
51
|
+
const response = await fetch('https://api.openai.com/v1/audio/transcriptions', {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
54
|
+
body: formData,
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
const errorData = await response.json().catch(() => ({}));
|
|
58
|
+
const errorMessage = errorData.error?.message || response.statusText || 'Unknown error';
|
|
59
|
+
throw new Error(`Transcription failed: ${errorMessage}`);
|
|
60
|
+
}
|
|
61
|
+
const result = await response.json();
|
|
62
|
+
return {
|
|
63
|
+
text: result.text,
|
|
64
|
+
language: result.language,
|
|
65
|
+
duration: result.duration,
|
|
66
|
+
words: result.words,
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=audio-transcribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-transcribe.js","sourceRoot":"","sources":["../../src/tools/audio-transcribe.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/datetime.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* DateTime tool - provides current date/time information
|
|
3
3
|
*/
|
|
4
4
|
export declare const datetime: import("@cogitator-ai/types").Tool<{
|
|
5
|
-
timezone?: string | undefined;
|
|
6
5
|
format?: "date" | "iso" | "unix" | "readable" | "time" | undefined;
|
|
6
|
+
timezone?: string | undefined;
|
|
7
7
|
}, {
|
|
8
8
|
error: string;
|
|
9
9
|
timezone: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare const fileRead: import("@cogitator-ai/types").Tool<{
|
|
5
5
|
path: string;
|
|
6
|
-
encoding?: "
|
|
6
|
+
encoding?: "utf-8" | "base64" | undefined;
|
|
7
7
|
}, {
|
|
8
8
|
content: string;
|
|
9
9
|
path: string;
|
|
@@ -26,7 +26,7 @@ export declare const fileRead: import("@cogitator-ai/types").Tool<{
|
|
|
26
26
|
export declare const fileWrite: import("@cogitator-ai/types").Tool<{
|
|
27
27
|
path: string;
|
|
28
28
|
content: string;
|
|
29
|
-
encoding?: "
|
|
29
|
+
encoding?: "utf-8" | "base64" | undefined;
|
|
30
30
|
createDirs?: boolean | undefined;
|
|
31
31
|
}, {
|
|
32
32
|
success: boolean;
|
package/dist/tools/http.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ export declare const httpRequest: import("@cogitator-ai/types").Tool<{
|
|
|
5
5
|
url: string;
|
|
6
6
|
timeout?: number | undefined;
|
|
7
7
|
method?: "POST" | "GET" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | undefined;
|
|
8
|
-
headers?: Record<string, string> | undefined;
|
|
9
8
|
body?: string | undefined;
|
|
9
|
+
headers?: Record<string, string> | undefined;
|
|
10
10
|
}, {
|
|
11
11
|
status: number;
|
|
12
12
|
statusText: string;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { LLMBackend } from '@cogitator-ai/types';
|
|
3
|
+
export interface AnalyzeImageConfig {
|
|
4
|
+
llm: LLMBackend;
|
|
5
|
+
defaultModel?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createAnalyzeImageTool(config: AnalyzeImageConfig): import("@cogitator-ai/types").Tool<{
|
|
8
|
+
image: string | {
|
|
9
|
+
data: string;
|
|
10
|
+
mimeType: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
11
|
+
};
|
|
12
|
+
model?: string | undefined;
|
|
13
|
+
prompt?: string | undefined;
|
|
14
|
+
detail?: "auto" | "low" | "high" | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
analysis: string;
|
|
17
|
+
model: string;
|
|
18
|
+
usage: {
|
|
19
|
+
inputTokens: number;
|
|
20
|
+
outputTokens: number;
|
|
21
|
+
totalTokens: number;
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
export declare const analyzeImageSchema: z.ZodObject<{
|
|
25
|
+
image: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
26
|
+
data: z.ZodString;
|
|
27
|
+
mimeType: z.ZodEnum<["image/jpeg", "image/png", "image/gif", "image/webp"]>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
data: string;
|
|
30
|
+
mimeType: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
31
|
+
}, {
|
|
32
|
+
data: string;
|
|
33
|
+
mimeType: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
34
|
+
}>]>;
|
|
35
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
36
|
+
detail: z.ZodOptional<z.ZodEnum<["auto", "low", "high"]>>;
|
|
37
|
+
model: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
image: string | {
|
|
40
|
+
data: string;
|
|
41
|
+
mimeType: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
42
|
+
};
|
|
43
|
+
model?: string | undefined;
|
|
44
|
+
prompt?: string | undefined;
|
|
45
|
+
detail?: "auto" | "low" | "high" | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
image: string | {
|
|
48
|
+
data: string;
|
|
49
|
+
mimeType: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
50
|
+
};
|
|
51
|
+
model?: string | undefined;
|
|
52
|
+
prompt?: string | undefined;
|
|
53
|
+
detail?: "auto" | "low" | "high" | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
export type AnalyzeImageInput = z.infer<typeof analyzeImageSchema>;
|
|
56
|
+
//# sourceMappingURL=image-analyze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-analyze.d.ts","sourceRoot":"","sources":["../../src/tools/image-analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAYnE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB;;;;;;;;;;;;;;;;GA+DhE;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tool } from '../tool';
|
|
3
|
+
const imageSourceSchema = z.union([
|
|
4
|
+
z.string().url().describe('URL of the image to analyze'),
|
|
5
|
+
z.object({
|
|
6
|
+
data: z.string().describe('Base64 encoded image data'),
|
|
7
|
+
mimeType: z
|
|
8
|
+
.enum(['image/jpeg', 'image/png', 'image/gif', 'image/webp'])
|
|
9
|
+
.describe('MIME type of the image'),
|
|
10
|
+
}),
|
|
11
|
+
]);
|
|
12
|
+
export function createAnalyzeImageTool(config) {
|
|
13
|
+
const { llm, defaultModel = 'gpt-4o' } = config;
|
|
14
|
+
return tool({
|
|
15
|
+
name: 'analyzeImage',
|
|
16
|
+
description: 'Analyze an image using a vision-capable AI model. Can describe contents, extract text, identify objects, answer questions about the image, and more.',
|
|
17
|
+
parameters: z.object({
|
|
18
|
+
image: imageSourceSchema.describe('The image to analyze - either a URL or base64 data'),
|
|
19
|
+
prompt: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Specific question or instruction about the image. Defaults to general description.'),
|
|
23
|
+
detail: z
|
|
24
|
+
.enum(['auto', 'low', 'high'])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Level of detail for analysis. "high" uses more tokens but provides better analysis.'),
|
|
27
|
+
model: z.string().optional().describe('Vision model to use. Defaults to gpt-4o.'),
|
|
28
|
+
}),
|
|
29
|
+
execute: async ({ image, prompt, detail, model }) => {
|
|
30
|
+
const content = [];
|
|
31
|
+
content.push({
|
|
32
|
+
type: 'text',
|
|
33
|
+
text: prompt ||
|
|
34
|
+
'Describe this image in detail. Include any text, objects, people, colors, and notable elements.',
|
|
35
|
+
});
|
|
36
|
+
if (typeof image === 'string') {
|
|
37
|
+
content.push({
|
|
38
|
+
type: 'image_url',
|
|
39
|
+
image_url: {
|
|
40
|
+
url: image,
|
|
41
|
+
detail: detail || 'auto',
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
content.push({
|
|
47
|
+
type: 'image_base64',
|
|
48
|
+
image_base64: {
|
|
49
|
+
data: image.data,
|
|
50
|
+
media_type: image.mimeType,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const response = await llm.chat({
|
|
55
|
+
model: model || defaultModel,
|
|
56
|
+
messages: [{ role: 'user', content }],
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
analysis: response.content,
|
|
60
|
+
model: model || defaultModel,
|
|
61
|
+
usage: response.usage,
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export const analyzeImageSchema = z.object({
|
|
67
|
+
image: imageSourceSchema,
|
|
68
|
+
prompt: z.string().optional(),
|
|
69
|
+
detail: z.enum(['auto', 'low', 'high']).optional(),
|
|
70
|
+
model: z.string().optional(),
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=image-analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-analyze.js","sourceRoot":"","sources":["../../src/tools/image-analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export interface GenerateImageConfig {
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
baseUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function createGenerateImageTool(config?: GenerateImageConfig): import("@cogitator-ai/types").Tool<{
|
|
7
|
+
prompt: string;
|
|
8
|
+
size?: "1024x1024" | "1792x1024" | "1024x1792" | undefined;
|
|
9
|
+
quality?: "standard" | "hd" | undefined;
|
|
10
|
+
style?: "vivid" | "natural" | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
url: string;
|
|
13
|
+
revisedPrompt: string | undefined;
|
|
14
|
+
size: "1024x1024" | "1792x1024" | "1024x1792";
|
|
15
|
+
quality: "standard" | "hd";
|
|
16
|
+
style: "vivid" | "natural";
|
|
17
|
+
}>;
|
|
18
|
+
export declare const generateImageSchema: z.ZodObject<{
|
|
19
|
+
prompt: z.ZodString;
|
|
20
|
+
size: z.ZodOptional<z.ZodEnum<["1024x1024", "1792x1024", "1024x1792"]>>;
|
|
21
|
+
quality: z.ZodOptional<z.ZodEnum<["standard", "hd"]>>;
|
|
22
|
+
style: z.ZodOptional<z.ZodEnum<["vivid", "natural"]>>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
prompt: string;
|
|
25
|
+
size?: "1024x1024" | "1792x1024" | "1024x1792" | undefined;
|
|
26
|
+
quality?: "standard" | "hd" | undefined;
|
|
27
|
+
style?: "vivid" | "natural" | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
prompt: string;
|
|
30
|
+
size?: "1024x1024" | "1792x1024" | "1024x1792" | undefined;
|
|
31
|
+
quality?: "standard" | "hd" | undefined;
|
|
32
|
+
style?: "vivid" | "natural" | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
export type GenerateImageInput = z.infer<typeof generateImageSchema>;
|
|
35
|
+
//# sourceMappingURL=image-generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-generate.d.ts","sourceRoot":"","sources":["../../src/tools/image-generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,GAAE,mBAAwB;;;;;;;;;;;GA4EvE;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tool } from '../tool';
|
|
3
|
+
export function createGenerateImageTool(config = {}) {
|
|
4
|
+
const { apiKey, baseUrl = 'https://api.openai.com/v1' } = config;
|
|
5
|
+
return tool({
|
|
6
|
+
name: 'generateImage',
|
|
7
|
+
description: 'Generate an image using DALL-E 3. Creates high-quality images from text descriptions.',
|
|
8
|
+
parameters: z.object({
|
|
9
|
+
prompt: z
|
|
10
|
+
.string()
|
|
11
|
+
.describe('Detailed description of the image to generate. Be specific about style, composition, colors, etc.'),
|
|
12
|
+
size: z
|
|
13
|
+
.enum(['1024x1024', '1792x1024', '1024x1792'])
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Image dimensions. 1024x1024 is square, others are landscape/portrait.'),
|
|
16
|
+
quality: z
|
|
17
|
+
.enum(['standard', 'hd'])
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Image quality. "hd" creates more detailed images with finer textures.'),
|
|
20
|
+
style: z
|
|
21
|
+
.enum(['vivid', 'natural'])
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('"vivid" for dramatic/hyper-real images, "natural" for more realistic/subdued.'),
|
|
24
|
+
}),
|
|
25
|
+
sideEffects: ['network', 'external'],
|
|
26
|
+
execute: async ({ prompt, size, quality, style }) => {
|
|
27
|
+
const key = apiKey || process.env.OPENAI_API_KEY;
|
|
28
|
+
if (!key) {
|
|
29
|
+
throw new Error('OpenAI API key required for image generation. Set OPENAI_API_KEY environment variable.');
|
|
30
|
+
}
|
|
31
|
+
const response = await fetch(`${baseUrl}/images/generations`, {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
headers: {
|
|
34
|
+
'Content-Type': 'application/json',
|
|
35
|
+
Authorization: `Bearer ${key}`,
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify({
|
|
38
|
+
model: 'dall-e-3',
|
|
39
|
+
prompt,
|
|
40
|
+
n: 1,
|
|
41
|
+
size: size || '1024x1024',
|
|
42
|
+
quality: quality || 'standard',
|
|
43
|
+
style: style || 'vivid',
|
|
44
|
+
response_format: 'url',
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const error = await response.text();
|
|
49
|
+
throw new Error(`Image generation failed: ${response.status} ${error}`);
|
|
50
|
+
}
|
|
51
|
+
const data = (await response.json());
|
|
52
|
+
const image = data.data[0];
|
|
53
|
+
return {
|
|
54
|
+
url: image.url,
|
|
55
|
+
revisedPrompt: image.revised_prompt,
|
|
56
|
+
size: size || '1024x1024',
|
|
57
|
+
quality: quality || 'standard',
|
|
58
|
+
style: style || 'vivid',
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export const generateImageSchema = z.object({
|
|
64
|
+
prompt: z.string(),
|
|
65
|
+
size: z.enum(['1024x1024', '1792x1024', '1024x1792']).optional(),
|
|
66
|
+
quality: z.enum(['standard', 'hd']).optional(),
|
|
67
|
+
style: z.enum(['vivid', 'natural']).optional(),
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=image-generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-generate.js","sourceRoot":"","sources":["../../src/tools/image-generate.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export { sqlQuery } from './sql-query';
|
|
|
16
16
|
export { vectorSearch } from './vector-search';
|
|
17
17
|
export { sendEmail } from './email';
|
|
18
18
|
export { githubApi } from './github';
|
|
19
|
+
export { createAnalyzeImageTool, type AnalyzeImageConfig, type AnalyzeImageInput, } from './image-analyze';
|
|
20
|
+
export { createGenerateImageTool, type GenerateImageConfig, type GenerateImageInput, } from './image-generate';
|
|
21
|
+
export { createTranscribeAudioTool, type TranscribeAudioConfig, type TranscriptionModel, type TranscriptionWord, type TranscriptionResult, } from './audio-transcribe';
|
|
22
|
+
export { createGenerateSpeechTool, type GenerateSpeechConfig, type TTSModel, type TTSVoice, type TTSFormat, type SpeechResult, } from './audio-generate';
|
|
19
23
|
export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<{
|
|
20
24
|
expression: string;
|
|
21
25
|
}, {
|
|
@@ -27,8 +31,8 @@ export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<
|
|
|
27
31
|
expression: string;
|
|
28
32
|
error?: undefined;
|
|
29
33
|
}>, import("@cogitator-ai/types").Tool<{
|
|
30
|
-
timezone?: string | undefined;
|
|
31
34
|
format?: "date" | "iso" | "unix" | "readable" | "time" | undefined;
|
|
35
|
+
timezone?: string | undefined;
|
|
32
36
|
}, {
|
|
33
37
|
error: string;
|
|
34
38
|
timezone: string;
|
|
@@ -72,11 +76,11 @@ export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<
|
|
|
72
76
|
error?: undefined;
|
|
73
77
|
}>, import("@cogitator-ai/types").Tool<{
|
|
74
78
|
length: number;
|
|
75
|
-
charset?: "
|
|
79
|
+
charset?: "hex" | "numeric" | "alphanumeric" | "alpha" | undefined;
|
|
76
80
|
}, {
|
|
77
81
|
result: string;
|
|
78
82
|
length: number;
|
|
79
|
-
charset: "
|
|
83
|
+
charset: "hex" | "numeric" | "alphanumeric" | "alpha";
|
|
80
84
|
}>, import("@cogitator-ai/types").Tool<{
|
|
81
85
|
data: string;
|
|
82
86
|
encoding?: "base64" | "hex" | undefined;
|
|
@@ -174,7 +178,7 @@ export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<
|
|
|
174
178
|
flags?: undefined;
|
|
175
179
|
}>, import("@cogitator-ai/types").Tool<{
|
|
176
180
|
path: string;
|
|
177
|
-
encoding?: "
|
|
181
|
+
encoding?: "utf-8" | "base64" | undefined;
|
|
178
182
|
}, {
|
|
179
183
|
content: string;
|
|
180
184
|
path: string;
|
|
@@ -196,7 +200,7 @@ export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<
|
|
|
196
200
|
}>, import("@cogitator-ai/types").Tool<{
|
|
197
201
|
path: string;
|
|
198
202
|
content: string;
|
|
199
|
-
encoding?: "
|
|
203
|
+
encoding?: "utf-8" | "base64" | undefined;
|
|
200
204
|
createDirs?: boolean | undefined;
|
|
201
205
|
}, {
|
|
202
206
|
success: boolean;
|
|
@@ -261,8 +265,8 @@ export declare const builtinTools: readonly [import("@cogitator-ai/types").Tool<
|
|
|
261
265
|
url: string;
|
|
262
266
|
timeout?: number | undefined;
|
|
263
267
|
method?: "POST" | "GET" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | undefined;
|
|
264
|
-
headers?: Record<string, string> | undefined;
|
|
265
268
|
body?: string | undefined;
|
|
269
|
+
headers?: Record<string, string> | undefined;
|
|
266
270
|
}, {
|
|
267
271
|
status: number;
|
|
268
272
|
statusText: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAqB1B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2Bf,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -16,6 +16,10 @@ export { sqlQuery } from './sql-query';
|
|
|
16
16
|
export { vectorSearch } from './vector-search';
|
|
17
17
|
export { sendEmail } from './email';
|
|
18
18
|
export { githubApi } from './github';
|
|
19
|
+
export { createAnalyzeImageTool, } from './image-analyze';
|
|
20
|
+
export { createGenerateImageTool, } from './image-generate';
|
|
21
|
+
export { createTranscribeAudioTool, } from './audio-transcribe';
|
|
22
|
+
export { createGenerateSpeechTool, } from './audio-generate';
|
|
19
23
|
import { calculator } from './calculator';
|
|
20
24
|
import { datetime } from './datetime';
|
|
21
25
|
import { uuid } from './uuid';
|