@misgara/ai-agent 1.1.0 → 1.2.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/README.md CHANGED
@@ -32,6 +32,7 @@ Asegúrate de configurar tus variables de entorno en un archivo `.env`:
32
32
  ```env
33
33
  GOOGLE_GENERATIVE_AI_API_KEY=tu_clave_aqui
34
34
  OPENAI_API_KEY=tu_clave_aqui
35
+ DEEPINFRA_API_KEY=tu_clave_aqui
35
36
  REDIS_URL=redis://localhost:6379
36
37
  ```
37
38
 
@@ -70,6 +71,27 @@ console.log(res.text);
70
71
 
71
72
  ```
72
73
 
74
+
75
+ ### 3. OCR (DeepSeek) + Audio a Texto (Whisper)
76
+
77
+ ```typescript
78
+ import { MediaBuilder } from '@misgara/ai-agent';
79
+
80
+ const media = new MediaBuilder()
81
+ .useDeepSeekOCR('deepseek-ai/DeepSeek-OCR')
82
+ .useOpenAIWhisper('whisper-1');
83
+
84
+ const ocr = await media.extractTextFromImage(
85
+ 'https://example.com/factura.png'
86
+ );
87
+ console.log(ocr.text);
88
+
89
+ const audio = await media.transcribeAudio(
90
+ 'https://example.com/audio.wav'
91
+ );
92
+ console.log(audio.text);
93
+ ```
94
+
73
95
  ## 🛠 Creación de Tools Personalizadas
74
96
 
75
97
  Puedes conectar el agente a tu lógica de negocio (bases de datos, APIs externas) fácilmente:
@@ -101,6 +123,7 @@ El repositorio incluye una carpeta `examples/` con casos de uso detallados:
101
123
  - `04-custom-tools.ts`: E-commerce simulado.
102
124
  - `05-multi-step-agent.ts`: Resolución de problemas complejos.
103
125
  - `10-streaming.ts`: Respuestas en tiempo real.
126
+ - `11-media-ocr-whisper.ts`: OCR con DeepSeek y transcripcion con Whisper.
104
127
 
105
128
  Para correr los ejemplos:
106
129
 
@@ -108,12 +131,41 @@ Para correr los ejemplos:
108
131
  npx tsx examples/run-all.ts
109
132
  ```
110
133
 
134
+ Demo directo de OCR + Whisper:
135
+
136
+ ```bash
137
+ npm run demo:media
138
+ ```
139
+
140
+ Nota: el demo acepta URLs remotas para imagen/audio y la libreria ahora las normaliza internamente.
141
+
142
+ Opcionalmente puedes pasar tus propias URLs:
143
+
144
+ ```bash
145
+ npm run demo:media -- "https://tu-sitio.com/imagen.png" "https://tu-sitio.com/audio.wav"
146
+ ```
147
+
111
148
  ## 🏗 Arquitectura
112
149
 
113
150
  El proyecto sigue principios de **Arquitectura Hexagonal**:
114
151
 
115
- - **Core**: Lógica del agente (`AgentBuilder`).
152
+ - **Core**: Logica del agente (`AgentBuilder`) y tareas de media (`MediaBuilder`).
116
153
  - **Puertos**: Interfaces como `IMemoryAdapter`.
117
154
  - **Adaptadores**: Implementaciones concretas (`RedisMemory`, `GeminiProvider`).
118
155
 
119
156
  Esto permite cambiar la base de datos o el proveedor de IA sin tocar la lógica de negocio.
157
+
158
+ ## Produccion y Publicacion
159
+
160
+ Antes de publicar en npm:
161
+
162
+ ```bash
163
+ npm run release:verify
164
+ ```
165
+
166
+ Este comando ejecuta:
167
+
168
+ - `clean`
169
+ - `typecheck`
170
+ - `build`
171
+ - `npm pack --dry-run` (verifica el contenido real del paquete)
@@ -2,10 +2,10 @@ import { type ToolSet, type LanguageModel, type StreamTextResult } from 'ai';
2
2
  import type { IMemoryAdapter, AgentResult } from './types.js';
3
3
  type GeminiModel = 'gemini-1.5-pro' | 'gemini-1.5-flash' | 'gemini-2.0-flash' | 'gemini-3-flash-preview';
4
4
  type OpenAIModel = 'gpt-4o' | 'gpt-4o-mini' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.2' | 'o1' | 'o1-mini' | 'o3' | 'o3-mini' | 'o3-pro' | 'o4-mini';
5
- type DeepSeekModel = 'deepseek-ai/DeepSeek-V3' | 'deepseek-ai/DeepSeek-R1' | 'deepseek-ai/DeepSeek-V3.2';
5
+ type DeepSeekModel = 'deepseek-ai/DeepSeek-OCR' | 'deepseek-ai/DeepSeek-V3' | 'deepseek-ai/DeepSeek-R1' | 'deepseek-ai/DeepSeek-V3.2';
6
6
  /**
7
7
  * AgentBuilder - Fluent interface for building AI agents
8
- * Supports both Google Gemini and OpenAI models
8
+ * Supports Google Gemini, OpenAI, and DeepSeek models
9
9
  *
10
10
  * @example
11
11
  * // Using Gemini
@@ -45,6 +45,10 @@ export declare class AgentBuilder {
45
45
  * Uses DEEPINFRA_API_KEY from environment variables automatically
46
46
  */
47
47
  useDeepSeek(modelId: DeepSeekModel): this;
48
+ /**
49
+ * Shortcut for DeepSeek OCR model via DeepInfra
50
+ */
51
+ useDeepSeekOCR(): this;
48
52
  /**
49
53
  * @deprecated Use useGemini() instead
50
54
  * Sets the Gemini model to use (legacy method)
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,OAAO,EAAE,KAAK,aAAa,EAAsB,KAAK,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAI3J,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAA0C,MAAM,YAAY,CAAC;AAGtG,KAAK,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;AACzG,KAAK,WAAW,GACV,QAAQ,GAAG,aAAa,GACxB,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GACjD,IAAI,GAAG,SAAS,GAChB,IAAI,GAAG,SAAS,GAAG,QAAQ,GAC3B,SAAS,CAAC;AAEhB,KAAK,aAAa,GACZ,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,eAAe,CAAC,CAAS;IAIjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKrC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK1C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5D;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS9B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4CtE;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2B/E;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAmC5F;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;CAexG"}
1
+ {"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,OAAO,EAAE,KAAK,aAAa,EAAsB,KAAK,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAI3J,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAA0C,MAAM,YAAY,CAAC;AAGtG,KAAK,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;AACzG,KAAK,WAAW,GACV,QAAQ,GAAG,aAAa,GACxB,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GACjD,IAAI,GAAG,SAAS,GAChB,IAAI,GAAG,SAAS,GAAG,QAAQ,GAC3B,SAAS,CAAC;AAEhB,KAAK,aAAa,GACZ,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,eAAe,CAAC,CAAS;IAIjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKrC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK1C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5D;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS9B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4CtE;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2B/E;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAmC5F;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;CAexG"}
@@ -4,7 +4,7 @@ import { openai } from '@ai-sdk/openai';
4
4
  import { deepinfra } from '@ai-sdk/deepinfra';
5
5
  /**
6
6
  * AgentBuilder - Fluent interface for building AI agents
7
- * Supports both Google Gemini and OpenAI models
7
+ * Supports Google Gemini, OpenAI, and DeepSeek models
8
8
  *
9
9
  * @example
10
10
  * // Using Gemini
@@ -54,6 +54,12 @@ export class AgentBuilder {
54
54
  this.model = deepinfra(modelId);
55
55
  return this;
56
56
  }
57
+ /**
58
+ * Shortcut for DeepSeek OCR model via DeepInfra
59
+ */
60
+ useDeepSeekOCR() {
61
+ return this.useDeepSeek('deepseek-ai/DeepSeek-OCR');
62
+ }
57
63
  /**
58
64
  * @deprecated Use useGemini() instead
59
65
  * Sets the Gemini model to use (legacy method)
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { type LanguageModel, type TranscriptionModel } from 'ai';
2
+ import type { AudioTranscriptionResult, MediaInput, OCRResult } from './types.js';
3
+ type DeepSeekOCRModel = 'deepseek-ai/DeepSeek-OCR' | (string & {});
4
+ type OpenAIWhisperModel = 'whisper-1' | 'gpt-4o-mini-transcribe' | 'gpt-4o-transcribe';
5
+ /**
6
+ * MediaBuilder - Fluent interface for OCR and audio transcription tasks.
7
+ * Keeps media workflows separated from the conversational AgentBuilder.
8
+ */
9
+ export declare class MediaBuilder {
10
+ private ocrModel;
11
+ private transcriptionModel;
12
+ private ocrSystemPrompt;
13
+ private ocrTemperature;
14
+ private ocrMaxOutputTokens;
15
+ private normalizeMediaInput;
16
+ /**
17
+ * Sets a DeepSeek OCR model via DeepInfra.
18
+ */
19
+ useDeepSeekOCR(modelId?: DeepSeekOCRModel): this;
20
+ /**
21
+ * Sets an OpenAI Whisper/transcription model.
22
+ */
23
+ useOpenAIWhisper(modelId?: OpenAIWhisperModel): this;
24
+ /**
25
+ * Sets a custom OCR language model.
26
+ */
27
+ useCustomOCRModel(model: LanguageModel): this;
28
+ /**
29
+ * Sets a custom transcription model.
30
+ */
31
+ useCustomTranscriptionModel(model: TranscriptionModel): this;
32
+ /**
33
+ * Sets the OCR system prompt.
34
+ */
35
+ setOCRSystem(prompt: string): this;
36
+ /**
37
+ * Sets OCR temperature (0-2). Defaults to 0 for deterministic extraction.
38
+ */
39
+ setOCRTemperature(temp: number): this;
40
+ /**
41
+ * Sets OCR max output tokens.
42
+ */
43
+ setOCRMaxOutputTokens(tokens: number): this;
44
+ /**
45
+ * Extracts text from an image using the configured OCR model.
46
+ * Accepts URL, data URL/base64, or binary data.
47
+ */
48
+ extractTextFromImage(image: MediaInput, prompt?: string): Promise<OCRResult>;
49
+ /**
50
+ * Transcribes audio to text using the configured transcription model (Whisper by default).
51
+ * Accepts URL, data URL/base64, or binary data.
52
+ */
53
+ transcribeAudio(audio: MediaInput): Promise<AudioTranscriptionResult>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=MediaBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaBuilder.d.ts","sourceRoot":"","sources":["../../src/core/MediaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAGtH,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElF,KAAK,gBAAgB,GAAG,0BAA0B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnE,KAAK,kBAAkB,GAAG,WAAW,GAAG,wBAAwB,GAAG,mBAAmB,CAAC;AAEvF;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,kBAAkB,CAAyD;IACnF,OAAO,CAAC,eAAe,CAAgF;IACvG,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,kBAAkB,CAAQ;IAElC,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,cAAc,CAAC,OAAO,GAAE,gBAA6C,GAAG,IAAI;IAK5E;;OAEG;IACH,gBAAgB,CAAC,OAAO,GAAE,kBAAgC,GAAG,IAAI;IAKjE;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK7C;;OAEG;IACH,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAK5D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3C;;;OAGG;IACG,oBAAoB,CACtB,KAAK,EAAE,UAAU,EACjB,MAAM,SAAwG,GAC/G,OAAO,CAAC,SAAS,CAAC;IA8BrB;;;OAGG;IACG,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQ9E"}
@@ -0,0 +1,121 @@
1
+ import { experimental_transcribe as transcribe, generateText } from 'ai';
2
+ import { deepinfra } from '@ai-sdk/deepinfra';
3
+ import { openai } from '@ai-sdk/openai';
4
+ /**
5
+ * MediaBuilder - Fluent interface for OCR and audio transcription tasks.
6
+ * Keeps media workflows separated from the conversational AgentBuilder.
7
+ */
8
+ export class MediaBuilder {
9
+ ocrModel = deepinfra('deepseek-ai/DeepSeek-OCR');
10
+ transcriptionModel = openai.transcription('whisper-1');
11
+ ocrSystemPrompt = 'Eres un motor OCR preciso. Extrae texto fielmente, sin inventar contenido.';
12
+ ocrTemperature = 0;
13
+ ocrMaxOutputTokens = 1200;
14
+ normalizeMediaInput(input) {
15
+ if (typeof input !== 'string') {
16
+ return input;
17
+ }
18
+ const trimmed = input.trim();
19
+ if (/^https?:\/\//i.test(trimmed)) {
20
+ try {
21
+ return new URL(trimmed);
22
+ }
23
+ catch {
24
+ return input;
25
+ }
26
+ }
27
+ return input;
28
+ }
29
+ /**
30
+ * Sets a DeepSeek OCR model via DeepInfra.
31
+ */
32
+ useDeepSeekOCR(modelId = 'deepseek-ai/DeepSeek-OCR') {
33
+ this.ocrModel = deepinfra(modelId);
34
+ return this;
35
+ }
36
+ /**
37
+ * Sets an OpenAI Whisper/transcription model.
38
+ */
39
+ useOpenAIWhisper(modelId = 'whisper-1') {
40
+ this.transcriptionModel = openai.transcription(modelId);
41
+ return this;
42
+ }
43
+ /**
44
+ * Sets a custom OCR language model.
45
+ */
46
+ useCustomOCRModel(model) {
47
+ this.ocrModel = model;
48
+ return this;
49
+ }
50
+ /**
51
+ * Sets a custom transcription model.
52
+ */
53
+ useCustomTranscriptionModel(model) {
54
+ this.transcriptionModel = model;
55
+ return this;
56
+ }
57
+ /**
58
+ * Sets the OCR system prompt.
59
+ */
60
+ setOCRSystem(prompt) {
61
+ this.ocrSystemPrompt = prompt;
62
+ return this;
63
+ }
64
+ /**
65
+ * Sets OCR temperature (0-2). Defaults to 0 for deterministic extraction.
66
+ */
67
+ setOCRTemperature(temp) {
68
+ this.ocrTemperature = Math.max(0, Math.min(2, temp));
69
+ return this;
70
+ }
71
+ /**
72
+ * Sets OCR max output tokens.
73
+ */
74
+ setOCRMaxOutputTokens(tokens) {
75
+ this.ocrMaxOutputTokens = Math.max(64, Math.floor(tokens));
76
+ return this;
77
+ }
78
+ /**
79
+ * Extracts text from an image using the configured OCR model.
80
+ * Accepts URL, data URL/base64, or binary data.
81
+ */
82
+ async extractTextFromImage(image, prompt = 'Extrae todo el texto visible exactamente como aparece. Conserva saltos de linea cuando sea posible.') {
83
+ const normalizedImage = this.normalizeMediaInput(image);
84
+ const result = await generateText({
85
+ model: this.ocrModel,
86
+ system: this.ocrSystemPrompt,
87
+ messages: [
88
+ {
89
+ role: 'user',
90
+ content: [
91
+ { type: 'text', text: prompt },
92
+ { type: 'image', image: normalizedImage },
93
+ ],
94
+ },
95
+ ],
96
+ temperature: this.ocrTemperature,
97
+ maxOutputTokens: this.ocrMaxOutputTokens,
98
+ });
99
+ return {
100
+ text: result.text,
101
+ usage: {
102
+ inputTokens: result.usage.inputTokens,
103
+ outputTokens: result.usage.outputTokens,
104
+ totalTokens: result.usage.totalTokens,
105
+ },
106
+ totalUsage: result.usage,
107
+ };
108
+ }
109
+ /**
110
+ * Transcribes audio to text using the configured transcription model (Whisper by default).
111
+ * Accepts URL, data URL/base64, or binary data.
112
+ */
113
+ async transcribeAudio(audio) {
114
+ const normalizedAudio = this.normalizeMediaInput(audio);
115
+ return transcribe({
116
+ model: this.transcriptionModel,
117
+ audio: normalizedAudio,
118
+ });
119
+ }
120
+ }
121
+ //# sourceMappingURL=MediaBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaBuilder.js","sourceRoot":"","sources":["../../src/core/MediaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,IAAI,UAAU,EAAE,YAAY,EAA+C,MAAM,IAAI,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC;;;GAGG;AACH,MAAM,OAAO,YAAY;IACb,QAAQ,GAAkB,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAChE,kBAAkB,GAAuB,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3E,eAAe,GAAG,4EAA4E,CAAC;IAC/F,cAAc,GAAG,CAAC,CAAC;IACnB,kBAAkB,GAAG,IAAI,CAAC;IAE1B,mBAAmB,CAAC,KAAiB;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAA4B,0BAA0B;QACjE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAA8B,WAAW;QACtD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAoB;QAClC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,2BAA2B,CAAC,KAAyB;QACjD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAY;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CACtB,KAAiB,EACjB,MAAM,GAAG,qGAAqG;QAE9G,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,MAAM,EAAE,IAAI,CAAC,eAAe;YAC5B,QAAQ,EAAE;gBACN;oBACI,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;qBAC5C;iBACJ;aACJ;YACD,WAAW,EAAE,IAAI,CAAC,cAAc;YAChC,eAAe,EAAE,IAAI,CAAC,kBAAkB;SAC3C,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE;gBACH,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;gBACrC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;gBACvC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;aACxC;YACD,UAAU,EAAE,MAAM,CAAC,KAAK;SAC3B,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,KAAiB;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExD,OAAO,UAAU,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,KAAK,EAAE,eAAe;SACzB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -57,4 +57,36 @@ export interface AgentResult {
57
57
  /** Total usage across all steps */
58
58
  totalUsage: LanguageModelUsage;
59
59
  }
60
+ /**
61
+ * Shared binary/text input format used by OCR and audio transcription.
62
+ */
63
+ export type MediaInput = string | URL | Uint8Array | ArrayBuffer | Buffer;
64
+ /**
65
+ * OCR extraction result.
66
+ */
67
+ export interface OCRResult {
68
+ /** Extracted text from the input image */
69
+ text: string;
70
+ /** Token usage statistics */
71
+ usage: {
72
+ inputTokens: number | undefined;
73
+ outputTokens: number | undefined;
74
+ totalTokens: number | undefined;
75
+ };
76
+ /** Total usage across the OCR call */
77
+ totalUsage: LanguageModelUsage;
78
+ }
79
+ /**
80
+ * Audio transcription result (Whisper/OpenAI Transcription API).
81
+ */
82
+ export interface AudioTranscriptionResult {
83
+ text: string;
84
+ segments: Array<{
85
+ text: string;
86
+ startSecond: number;
87
+ endSecond: number;
88
+ }>;
89
+ language: string | undefined;
90
+ durationInSeconds: number | undefined;
91
+ }
60
92
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE;QACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,mCAAmC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE;QACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,mCAAmC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,KAAK,EAAE;QACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,sCAAsC;IACtC,UAAU,EAAE,kBAAkB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './core/AgentBuilder.js';
2
+ export * from './core/MediaBuilder.js';
2
3
  export * from './core/types.js';
3
4
  export * from './infrastructure/InMemory.js';
4
5
  export * from './infrastructure/RedisMemory.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './core/AgentBuilder.js';
2
+ export * from './core/MediaBuilder.js';
2
3
  export * from './core/types.js';
3
4
  export * from './infrastructure/InMemory.js';
4
5
  export * from './infrastructure/RedisMemory.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,19 @@
1
1
  {
2
2
  "name": "@misgara/ai-agent",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Librería hexagonal para agentes de IA",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
8
9
  "dev": "tsx src/demo.ts",
10
+ "demo:media": "tsx src/demo-media.ts",
9
11
  "build": "tsc",
12
+ "check:package": "npm pack --dry-run",
13
+ "release:verify": "npm run clean && npm run typecheck && npm run build && npm run check:package",
10
14
  "start": "node dist/index.js",
11
15
  "typecheck": "tsc --noEmit",
12
- "prepublishOnly": "npm run build"
16
+ "prepublishOnly": "npm run release:verify"
13
17
  },
14
18
  "exports": {
15
19
  ".": {
@@ -21,10 +25,18 @@
21
25
  "files": [
22
26
  "dist"
23
27
  ],
28
+ "sideEffects": false,
29
+ "engines": {
30
+ "node": ">=18.0.0"
31
+ },
24
32
  "keywords": [
25
33
  "ai",
26
34
  "agent",
27
35
  "gemini",
36
+ "openai",
37
+ "whisper",
38
+ "deepseek",
39
+ "ocr",
28
40
  "vercel-ai-sdk"
29
41
  ],
30
42
  "publishConfig": {
package/dist/demo.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import 'dotenv/config';
2
- //# sourceMappingURL=demo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
package/dist/demo.js DELETED
@@ -1,75 +0,0 @@
1
- import 'dotenv/config';
2
- import { tool } from 'ai';
3
- import { z } from 'zod/v4';
4
- import { AgentBuilder } from './core/AgentBuilder.js';
5
- import { InMemoryAdapter } from './infrastructure/InMemory.js';
6
- import { CommonTools } from './tools/common.js';
7
- async function main() {
8
- const userId = 'usuario-dev-01';
9
- // Choose your memory adapter:
10
- // Option 1: Redis (requires Redis running)
11
- // const memory = new RedisMemory();
12
- // Option 2: In-Memory (for development, no external deps)
13
- const memory = new InMemoryAdapter();
14
- // Build the agent with fluent interface
15
- const agent = new AgentBuilder()
16
- .useDeepSeek('deepseek-ai/DeepSeek-R1')
17
- .setSystem('Eres un asistente financiero sarcástico pero muy útil.')
18
- .withMemory(memory, userId)
19
- .setTemperature(0.7)
20
- // 1. Inject pre-built common tools
21
- .addTools({
22
- hora: CommonTools.time,
23
- web: CommonTools.webSearchMock,
24
- calcular: CommonTools.calculator,
25
- })
26
- // 2. Inject an ad-hoc project-specific tool
27
- .addTools({
28
- comprarCripto: tool({
29
- description: 'Compra una criptomoneda específica',
30
- inputSchema: z.object({
31
- moneda: z.string().describe('El símbolo de la criptomoneda (BTC, ETH, etc.)'),
32
- cantidad: z.number().describe('La cantidad a comprar'),
33
- }),
34
- execute: async ({ moneda, cantidad }) => {
35
- // Simulated order - replace with actual exchange API
36
- const orderId = Math.random().toString(36).substring(7);
37
- return JSON.stringify({
38
- success: true,
39
- orderId,
40
- message: `Orden de compra creada: ${cantidad} ${moneda.toUpperCase()}`,
41
- estimatedPrice: `$${(Math.random() * 50000 + 20000).toFixed(2)} USD`,
42
- });
43
- },
44
- }),
45
- });
46
- console.log('--- 🤖 Inicio del Chat ---\n');
47
- // Prompt 1: Requires web search and time
48
- console.log('👤 Usuario: Hola, ¿qué hora es y busca en internet a cuánto está el Bitcoin hoy?');
49
- const resp1 = await agent.run('Hola, ¿qué hora es y busca en internet a cuánto está el Bitcoin hoy?');
50
- console.log('🤖 IA:', resp1.text);
51
- console.log('📊 Tokens usados:', resp1.usage.totalTokens);
52
- console.log('🔧 Tools usadas:', resp1.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
53
- console.log();
54
- // Prompt 2: Context + new tool (Buy crypto)
55
- // Thanks to memory, the agent knows we were talking about Bitcoin
56
- console.log('👤 Usuario: Ok, compra 5 unidades de esa moneda entonces.');
57
- const resp2 = await agent.run('Ok, compra 5 unidades de esa moneda entonces.');
58
- console.log('🤖 IA:', resp2.text);
59
- console.log('📊 Tokens usados:', resp2.usage.totalTokens);
60
- console.log('🔧 Tools usadas:', resp2.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
61
- console.log();
62
- // Prompt 3: Using calculator
63
- console.log('👤 Usuario: Si compré a $45000, ¿cuánto gasto en total?');
64
- const resp3 = await agent.run('Si compré a $45000, ¿cuánto gasto en total por las 5 unidades?');
65
- console.log('🤖 IA:', resp3.text);
66
- console.log('📊 Tokens usados:', resp3.usage.totalTokens);
67
- console.log('🔧 Tools usadas:', resp3.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
68
- console.log('\n--- ✅ Chat Finalizado ---');
69
- process.exit(0);
70
- }
71
- main().catch((err) => {
72
- console.error('❌ Error:', err);
73
- process.exit(1);
74
- });
75
- //# sourceMappingURL=demo.js.map
package/dist/demo.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}