@misgara/ai-agent 1.0.0 → 1.1.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 +119 -0
- package/dist/core/AgentBuilder.d.ts +7 -2
- package/dist/core/AgentBuilder.d.ts.map +1 -1
- package/dist/core/AgentBuilder.js +25 -40
- package/dist/core/AgentBuilder.js.map +1 -1
- package/dist/demo.d.ts +2 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +75 -0
- package/dist/demo.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -75
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/InMemory.d.ts.map +1 -1
- package/dist/infrastructure/InMemory.js.map +1 -1
- package/dist/infrastructure/RedisMemory.d.ts.map +1 -1
- package/dist/infrastructure/RedisMemory.js +0 -1
- package/dist/infrastructure/RedisMemory.js.map +1 -1
- package/dist/tools/common.d.ts +1 -1
- package/dist/tools/common.d.ts.map +1 -1
- package/dist/tools/common.js.map +1 -1
- package/package.json +11 -3
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# 🤖 @misgara/ai-agent
|
|
2
|
+
|
|
3
|
+
Una librería ligera, flexible y agnóstica para construir Agentes de IA en Node.js/TypeScript. Diseñada con arquitectura hexagonal, soporta múltiples proveedores (OpenAI, Google Gemini), gestión de memoria persistente (Redis) y ejecución de herramientas (Function Calling).
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
## ✨ Características
|
|
9
|
+
|
|
10
|
+
- **Fluent Interface**: API intuitiva con `AgentBuilder` para configurar agentes rápidamente.
|
|
11
|
+
- **Multi-Modelo**: Soporte nativo para Google Gemini y OpenAI (fácilmente extensible).
|
|
12
|
+
- **Memoria Persistente**:
|
|
13
|
+
- `InMemoryAdapter` para desarrollo.
|
|
14
|
+
- `RedisMemory` para producción (escalable).
|
|
15
|
+
- **Herramientas (Tools)**: Sistema robusto de *Function Calling* utilizando esquemas Zod.
|
|
16
|
+
- **Modos de Ejecución**:
|
|
17
|
+
- `run`: Chat con estado (memoria).
|
|
18
|
+
- `runStateless`: Ejecución única sin memoria.
|
|
19
|
+
- `stream`: Respuestas en tiempo real.
|
|
20
|
+
- **Multi-paso (Agentic)**: Capacidad de resolver problemas complejos ejecutando múltiples herramientas en bucle.
|
|
21
|
+
|
|
22
|
+
## 📦 Instalación
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @misgara/ai-agent
|
|
26
|
+
# o
|
|
27
|
+
yarn add @misgara/ai-agent
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Asegúrate de configurar tus variables de entorno en un archivo `.env`:
|
|
31
|
+
|
|
32
|
+
```env
|
|
33
|
+
GOOGLE_GENERATIVE_AI_API_KEY=tu_clave_aqui
|
|
34
|
+
OPENAI_API_KEY=tu_clave_aqui
|
|
35
|
+
REDIS_URL=redis://localhost:6379
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 🚀 Uso Rápido
|
|
39
|
+
|
|
40
|
+
### 1. Chat Básico
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { AgentBuilder } from '@misgara/ai-agent';
|
|
44
|
+
|
|
45
|
+
const agent = new AgentBuilder()
|
|
46
|
+
.useOpenAI('gpt-4o-mini')
|
|
47
|
+
.setSystem('Eres un asistente experto en programación.');
|
|
48
|
+
|
|
49
|
+
const response = await agent.runStateless('¿Qué es una promesa en JS?');
|
|
50
|
+
console.log(response.text);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 2. Chat con Memoria y Herramientas
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { AgentBuilder, InMemoryAdapter, CommonTools } from '@misgara/ai-agent';
|
|
57
|
+
|
|
58
|
+
const memory = new InMemoryAdapter();
|
|
59
|
+
|
|
60
|
+
const agent = new AgentBuilder()
|
|
61
|
+
.useGemini('gemini-1.5-flash')
|
|
62
|
+
.withMemory(memory, 'session-user-123')
|
|
63
|
+
.addTools({
|
|
64
|
+
hora: CommonTools.time,
|
|
65
|
+
calcular: CommonTools.calculator
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const res = await agent.run('¿Qué hora es y cuánto es 25 * 40?');
|
|
69
|
+
console.log(res.text);
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 🛠 Creación de Tools Personalizadas
|
|
74
|
+
|
|
75
|
+
Puedes conectar el agente a tu lógica de negocio (bases de datos, APIs externas) fácilmente:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { tool } from 'ai';
|
|
79
|
+
import { z } from 'zod';
|
|
80
|
+
|
|
81
|
+
const myTool = tool({
|
|
82
|
+
description: 'Busca el estado de un pedido',
|
|
83
|
+
inputSchema: z.object({
|
|
84
|
+
orderId: z.string().describe('ID del pedido (ej: ORD-001)')
|
|
85
|
+
}),
|
|
86
|
+
execute: async ({ orderId }) => {
|
|
87
|
+
return JSON.stringify({ status: 'En camino', eta: '2 horas' });
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
agent.addTools({ buscarPedido: myTool });
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 📚 Ejemplos
|
|
95
|
+
|
|
96
|
+
El repositorio incluye una carpeta `examples/` con casos de uso detallados:
|
|
97
|
+
|
|
98
|
+
- `01-basic-chat.ts`: Chat simple.
|
|
99
|
+
- `02-with-memory.ts`: Persistencia de contexto.
|
|
100
|
+
- `03-with-tools.ts`: Uso de herramientas predefinidas.
|
|
101
|
+
- `04-custom-tools.ts`: E-commerce simulado.
|
|
102
|
+
- `05-multi-step-agent.ts`: Resolución de problemas complejos.
|
|
103
|
+
- `10-streaming.ts`: Respuestas en tiempo real.
|
|
104
|
+
|
|
105
|
+
Para correr los ejemplos:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx tsx examples/run-all.ts
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 🏗 Arquitectura
|
|
112
|
+
|
|
113
|
+
El proyecto sigue principios de **Arquitectura Hexagonal**:
|
|
114
|
+
|
|
115
|
+
- **Core**: Lógica del agente (`AgentBuilder`).
|
|
116
|
+
- **Puertos**: Interfaces como `IMemoryAdapter`.
|
|
117
|
+
- **Adaptadores**: Implementaciones concretas (`RedisMemory`, `GeminiProvider`).
|
|
118
|
+
|
|
119
|
+
Esto permite cambiar la base de datos o el proveedor de IA sin tocar la lógica de negocio.
|
|
@@ -2,12 +2,12 @@ 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
6
|
/**
|
|
6
7
|
* AgentBuilder - Fluent interface for building AI agents
|
|
7
8
|
* Supports both Google Gemini and OpenAI models
|
|
8
9
|
*
|
|
9
10
|
* @example
|
|
10
|
-
* ```typescript
|
|
11
11
|
* // Using Gemini
|
|
12
12
|
* const agent = new AgentBuilder()
|
|
13
13
|
* .useGemini('gemini-3-flash-preview')
|
|
@@ -22,7 +22,6 @@ type OpenAIModel = 'gpt-4o' | 'gpt-4o-mini' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-na
|
|
|
22
22
|
*
|
|
23
23
|
* const result = await agent.run('Hello!');
|
|
24
24
|
* console.log(result.text);
|
|
25
|
-
* ```
|
|
26
25
|
*/
|
|
27
26
|
export declare class AgentBuilder {
|
|
28
27
|
private model;
|
|
@@ -41,6 +40,11 @@ export declare class AgentBuilder {
|
|
|
41
40
|
* Sets an OpenAI model
|
|
42
41
|
*/
|
|
43
42
|
useOpenAI(modelId: OpenAIModel): this;
|
|
43
|
+
/**
|
|
44
|
+
* Sets a DeepSeek model via DeepInfra
|
|
45
|
+
* Uses DEEPINFRA_API_KEY from environment variables automatically
|
|
46
|
+
*/
|
|
47
|
+
useDeepSeek(modelId: DeepSeekModel): this;
|
|
44
48
|
/**
|
|
45
49
|
* @deprecated Use useGemini() instead
|
|
46
50
|
* Sets the Gemini model to use (legacy method)
|
|
@@ -76,6 +80,7 @@ export declare class AgentBuilder {
|
|
|
76
80
|
* Sets maximum output tokens for generation
|
|
77
81
|
*/
|
|
78
82
|
setMaxOutputTokens(tokens: number): this;
|
|
83
|
+
private createUserMessage;
|
|
79
84
|
private formatStepResult;
|
|
80
85
|
/**
|
|
81
86
|
* Runs the agent with a user prompt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"
|
|
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,13 +1,12 @@
|
|
|
1
|
-
// src/core/AgentBuilder.ts
|
|
2
1
|
import { generateText, streamText, stepCountIs } from 'ai';
|
|
3
2
|
import { google } from '@ai-sdk/google';
|
|
4
3
|
import { openai } from '@ai-sdk/openai';
|
|
4
|
+
import { deepinfra } from '@ai-sdk/deepinfra';
|
|
5
5
|
/**
|
|
6
6
|
* AgentBuilder - Fluent interface for building AI agents
|
|
7
7
|
* Supports both Google Gemini and OpenAI models
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
|
-
* ```typescript
|
|
11
10
|
* // Using Gemini
|
|
12
11
|
* const agent = new AgentBuilder()
|
|
13
12
|
* .useGemini('gemini-3-flash-preview')
|
|
@@ -22,7 +21,6 @@ import { openai } from '@ai-sdk/openai';
|
|
|
22
21
|
*
|
|
23
22
|
* const result = await agent.run('Hello!');
|
|
24
23
|
* console.log(result.text);
|
|
25
|
-
* ```
|
|
26
24
|
*/
|
|
27
25
|
export class AgentBuilder {
|
|
28
26
|
model = google('gemini-3-flash-preview');
|
|
@@ -30,7 +28,7 @@ export class AgentBuilder {
|
|
|
30
28
|
tools = {};
|
|
31
29
|
memory;
|
|
32
30
|
sessionId;
|
|
33
|
-
maxSteps = 1;
|
|
31
|
+
maxSteps = 1;
|
|
34
32
|
temperature = 0.5;
|
|
35
33
|
maxOutputTokens;
|
|
36
34
|
// --- CONFIGURATION (Fluent Interface) ---
|
|
@@ -48,6 +46,14 @@ export class AgentBuilder {
|
|
|
48
46
|
this.model = openai(modelId);
|
|
49
47
|
return this;
|
|
50
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets a DeepSeek model via DeepInfra
|
|
51
|
+
* Uses DEEPINFRA_API_KEY from environment variables automatically
|
|
52
|
+
*/
|
|
53
|
+
useDeepSeek(modelId) {
|
|
54
|
+
this.model = deepinfra(modelId);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
51
57
|
/**
|
|
52
58
|
* @deprecated Use useGemini() instead
|
|
53
59
|
* Sets the Gemini model to use (legacy method)
|
|
@@ -112,6 +118,17 @@ export class AgentBuilder {
|
|
|
112
118
|
return this;
|
|
113
119
|
}
|
|
114
120
|
// --- PRIVATE HELPERS ---
|
|
121
|
+
createUserMessage(userPrompt, imageUrl) {
|
|
122
|
+
return {
|
|
123
|
+
role: 'user',
|
|
124
|
+
content: imageUrl
|
|
125
|
+
? [
|
|
126
|
+
{ type: 'text', text: userPrompt },
|
|
127
|
+
{ type: 'image', image: imageUrl },
|
|
128
|
+
]
|
|
129
|
+
: userPrompt,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
115
132
|
formatStepResult(steps) {
|
|
116
133
|
return steps.map((step) => ({
|
|
117
134
|
text: step.text,
|
|
@@ -139,15 +156,7 @@ export class AgentBuilder {
|
|
|
139
156
|
history = await this.memory.get(this.sessionId);
|
|
140
157
|
}
|
|
141
158
|
// 2. Prepare Current Message (supports multimodal)
|
|
142
|
-
const currentMessage =
|
|
143
|
-
role: 'user',
|
|
144
|
-
content: imageUrl
|
|
145
|
-
? [
|
|
146
|
-
{ type: 'text', text: userPrompt },
|
|
147
|
-
{ type: 'image', image: imageUrl },
|
|
148
|
-
]
|
|
149
|
-
: userPrompt,
|
|
150
|
-
};
|
|
159
|
+
const currentMessage = this.createUserMessage(userPrompt, imageUrl);
|
|
151
160
|
// 3. Call AI SDK with generateText
|
|
152
161
|
// In v6, stopWhen with stepCountIs controls the multi-step behavior
|
|
153
162
|
const hasTools = Object.keys(this.tools).length > 0;
|
|
@@ -182,15 +191,7 @@ export class AgentBuilder {
|
|
|
182
191
|
* Runs the agent without saving to memory (stateless)
|
|
183
192
|
*/
|
|
184
193
|
async runStateless(userPrompt, imageUrl) {
|
|
185
|
-
const currentMessage =
|
|
186
|
-
role: 'user',
|
|
187
|
-
content: imageUrl
|
|
188
|
-
? [
|
|
189
|
-
{ type: 'text', text: userPrompt },
|
|
190
|
-
{ type: 'image', image: imageUrl },
|
|
191
|
-
]
|
|
192
|
-
: userPrompt,
|
|
193
|
-
};
|
|
194
|
+
const currentMessage = this.createUserMessage(userPrompt, imageUrl);
|
|
194
195
|
const hasTools = Object.keys(this.tools).length > 0;
|
|
195
196
|
const result = await generateText({
|
|
196
197
|
model: this.model,
|
|
@@ -223,15 +224,7 @@ export class AgentBuilder {
|
|
|
223
224
|
history = await this.memory.get(this.sessionId);
|
|
224
225
|
}
|
|
225
226
|
// 2. Prepare Current Message
|
|
226
|
-
const currentMessage =
|
|
227
|
-
role: 'user',
|
|
228
|
-
content: imageUrl
|
|
229
|
-
? [
|
|
230
|
-
{ type: 'text', text: userPrompt },
|
|
231
|
-
{ type: 'image', image: imageUrl },
|
|
232
|
-
]
|
|
233
|
-
: userPrompt,
|
|
234
|
-
};
|
|
227
|
+
const currentMessage = this.createUserMessage(userPrompt, imageUrl);
|
|
235
228
|
const hasTools = Object.keys(this.tools).length > 0;
|
|
236
229
|
// 3. Start Stream
|
|
237
230
|
const result = streamText({
|
|
@@ -257,15 +250,7 @@ export class AgentBuilder {
|
|
|
257
250
|
* Stateless version of Streaming (no persistence)
|
|
258
251
|
*/
|
|
259
252
|
async streamStateless(userPrompt, imageUrl) {
|
|
260
|
-
const currentMessage =
|
|
261
|
-
role: 'user',
|
|
262
|
-
content: imageUrl
|
|
263
|
-
? [
|
|
264
|
-
{ type: 'text', text: userPrompt },
|
|
265
|
-
{ type: 'image', image: imageUrl },
|
|
266
|
-
]
|
|
267
|
-
: userPrompt,
|
|
268
|
-
};
|
|
253
|
+
const currentMessage = this.createUserMessage(userPrompt, imageUrl);
|
|
269
254
|
const hasTools = Object.keys(this.tools).length > 0;
|
|
270
255
|
return streamText({
|
|
271
256
|
model: this.model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../src/core/AgentBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/demo.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
package/dist/demo.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
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
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
export * from './core/AgentBuilder.js';
|
|
2
|
+
export * from './core/types.js';
|
|
3
|
+
export * from './infrastructure/InMemory.js';
|
|
4
|
+
export * from './infrastructure/RedisMemory.js';
|
|
5
|
+
export * from './tools/common.js';
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,76 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { InMemoryAdapter } from './infrastructure/InMemory.js';
|
|
7
|
-
import { CommonTools } from './tools/common.js';
|
|
8
|
-
async function main() {
|
|
9
|
-
const userId = 'usuario-dev-01';
|
|
10
|
-
// Choose your memory adapter:
|
|
11
|
-
// Option 1: Redis (requires Redis running)
|
|
12
|
-
// const memory = new RedisMemory();
|
|
13
|
-
// Option 2: In-Memory (for development, no external deps)
|
|
14
|
-
const memory = new InMemoryAdapter();
|
|
15
|
-
// Build the agent with fluent interface
|
|
16
|
-
const agent = new AgentBuilder()
|
|
17
|
-
.useModel('gemini-3-flash-preview')
|
|
18
|
-
.setSystem('Eres un asistente financiero sarcástico pero muy útil.')
|
|
19
|
-
.withMemory(memory, userId)
|
|
20
|
-
.setTemperature(0.7)
|
|
21
|
-
// 1. Inject pre-built common tools
|
|
22
|
-
.addTools({
|
|
23
|
-
hora: CommonTools.time,
|
|
24
|
-
web: CommonTools.webSearchMock,
|
|
25
|
-
calcular: CommonTools.calculator,
|
|
26
|
-
})
|
|
27
|
-
// 2. Inject an ad-hoc project-specific tool
|
|
28
|
-
.addTools({
|
|
29
|
-
comprarCripto: tool({
|
|
30
|
-
description: 'Compra una criptomoneda específica',
|
|
31
|
-
inputSchema: z.object({
|
|
32
|
-
moneda: z.string().describe('El símbolo de la criptomoneda (BTC, ETH, etc.)'),
|
|
33
|
-
cantidad: z.number().describe('La cantidad a comprar'),
|
|
34
|
-
}),
|
|
35
|
-
execute: async ({ moneda, cantidad }) => {
|
|
36
|
-
// Simulated order - replace with actual exchange API
|
|
37
|
-
const orderId = Math.random().toString(36).substring(7);
|
|
38
|
-
return JSON.stringify({
|
|
39
|
-
success: true,
|
|
40
|
-
orderId,
|
|
41
|
-
message: `Orden de compra creada: ${cantidad} ${moneda.toUpperCase()}`,
|
|
42
|
-
estimatedPrice: `$${(Math.random() * 50000 + 20000).toFixed(2)} USD`,
|
|
43
|
-
});
|
|
44
|
-
},
|
|
45
|
-
}),
|
|
46
|
-
});
|
|
47
|
-
console.log('--- 🤖 Inicio del Chat ---\n');
|
|
48
|
-
// Prompt 1: Requires web search and time
|
|
49
|
-
console.log('👤 Usuario: Hola, ¿qué hora es y busca en internet a cuánto está el Bitcoin hoy?');
|
|
50
|
-
const resp1 = await agent.run('Hola, ¿qué hora es y busca en internet a cuánto está el Bitcoin hoy?');
|
|
51
|
-
console.log('🤖 IA:', resp1.text);
|
|
52
|
-
console.log('📊 Tokens usados:', resp1.usage.totalTokens);
|
|
53
|
-
console.log('🔧 Tools usadas:', resp1.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
|
|
54
|
-
console.log();
|
|
55
|
-
// Prompt 2: Context + new tool (Buy crypto)
|
|
56
|
-
// Thanks to memory, the agent knows we were talking about Bitcoin
|
|
57
|
-
console.log('👤 Usuario: Ok, compra 5 unidades de esa moneda entonces.');
|
|
58
|
-
const resp2 = await agent.run('Ok, compra 5 unidades de esa moneda entonces.');
|
|
59
|
-
console.log('🤖 IA:', resp2.text);
|
|
60
|
-
console.log('📊 Tokens usados:', resp2.usage.totalTokens);
|
|
61
|
-
console.log('🔧 Tools usadas:', resp2.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
|
|
62
|
-
console.log();
|
|
63
|
-
// Prompt 3: Using calculator
|
|
64
|
-
console.log('👤 Usuario: Si compré a $45000, ¿cuánto gasto en total?');
|
|
65
|
-
const resp3 = await agent.run('Si compré a $45000, ¿cuánto gasto en total por las 5 unidades?');
|
|
66
|
-
console.log('🤖 IA:', resp3.text);
|
|
67
|
-
console.log('📊 Tokens usados:', resp3.usage.totalTokens);
|
|
68
|
-
console.log('🔧 Tools usadas:', resp3.steps.flatMap((s) => s.toolCalls.map((t) => t.toolName)).join(', ') || 'ninguna');
|
|
69
|
-
console.log('\n--- ✅ Chat Finalizado ---');
|
|
70
|
-
process.exit(0);
|
|
71
|
-
}
|
|
72
|
-
main().catch((err) => {
|
|
73
|
-
console.error('❌ Error:', err);
|
|
74
|
-
process.exit(1);
|
|
75
|
-
});
|
|
1
|
+
export * from './core/AgentBuilder.js';
|
|
2
|
+
export * from './core/types.js';
|
|
3
|
+
export * from './infrastructure/InMemory.js';
|
|
4
|
+
export * from './infrastructure/RedisMemory.js';
|
|
5
|
+
export * from './tools/common.js';
|
|
76
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemory.d.ts","sourceRoot":"","sources":["../../src/infrastructure/InMemory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InMemory.d.ts","sourceRoot":"","sources":["../../src/infrastructure/InMemory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAClD,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAIxC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI/C,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACH,QAAQ,IAAI,IAAI;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemory.js","sourceRoot":"","sources":["../../src/infrastructure/InMemory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InMemory.js","sourceRoot":"","sources":["../../src/infrastructure/InMemory.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,eAAe;IAChB,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1C,WAAW,CAAS;IAE5B,YAAY,OAAkC;QAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,QAAwB;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisMemory.d.ts","sourceRoot":"","sources":["../../src/infrastructure/RedisMemory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RedisMemory.d.ts","sourceRoot":"","sources":["../../src/infrastructure/RedisMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;IAC9C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,CAAC,EAAE;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB;IAOD,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK/C,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisMemory.js","sourceRoot":"","sources":["../../src/infrastructure/RedisMemory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"RedisMemory.js","sourceRoot":"","sources":["../../src/infrastructure/RedisMemory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC;;GAEG;AACH,MAAM,OAAO,WAAW;IACZ,MAAM,CAAQ;IACd,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,UAAU,CAAS;IAE3B,YAAY,OAKX;QACG,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,wBAAwB,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,mBAAmB;IACvE,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,WAA2B;QACpD,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACJ"}
|
package/dist/tools/common.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;;;;;IA+BH;;OAEG;;;;IAqBH;;OAEG;;;;;IAaH;;OAEG
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;;;;;IA+BH;;OAEG;;;;IAqBH;;OAEG;;;;;IAaH;;OAEG;;cAQ8C,MAAM;mBAAa,MAAM;;CAiB7E,CAAC"}
|
package/dist/tools/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;QACP,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;gBACtB,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE;gBAC3B,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;aAC7D,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAEF,uCAAuC;IACvC,UAAU,EAAE,IAAI,CAAC;QACb,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;SAClH,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@misgara/ai-agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.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
|
-
"dev": "tsx src/
|
|
8
|
+
"dev": "tsx src/demo.ts",
|
|
9
9
|
"build": "tsc",
|
|
10
10
|
"start": "node dist/index.js",
|
|
11
11
|
"typecheck": "tsc --noEmit",
|
|
12
12
|
"prepublishOnly": "npm run build"
|
|
13
13
|
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"require": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
14
21
|
"files": [
|
|
15
22
|
"dist"
|
|
16
23
|
],
|
|
@@ -27,6 +34,7 @@
|
|
|
27
34
|
"license": "ISC",
|
|
28
35
|
"type": "module",
|
|
29
36
|
"dependencies": {
|
|
37
|
+
"@ai-sdk/deepinfra": "^2.0.26",
|
|
30
38
|
"@ai-sdk/google": "^3.0.6",
|
|
31
39
|
"@ai-sdk/openai": "^3.0.7",
|
|
32
40
|
"ai": "^6.0.27",
|
|
@@ -41,4 +49,4 @@
|
|
|
41
49
|
"tsx": "^4.21.0",
|
|
42
50
|
"typescript": "^5.9.3"
|
|
43
51
|
}
|
|
44
|
-
}
|
|
52
|
+
}
|