@alquimia-ai/tools 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/actions/index.d.mts +38 -3
  2. package/dist/actions/index.d.ts +38 -3
  3. package/dist/actions/index.js +152 -20
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/index.mjs +153 -12
  6. package/dist/actions/index.mjs.map +1 -1
  7. package/dist/hooks/index.d.mts +2 -3
  8. package/dist/hooks/index.d.ts +2 -3
  9. package/dist/hooks/index.js +29 -60
  10. package/dist/hooks/index.js.map +1 -1
  11. package/dist/hooks/index.mjs +16 -42
  12. package/dist/hooks/index.mjs.map +1 -1
  13. package/dist/providers/index.d.mts +74 -0
  14. package/dist/providers/index.d.ts +74 -0
  15. package/dist/providers/index.js +2183 -0
  16. package/dist/providers/index.js.map +1 -0
  17. package/dist/providers/index.mjs +2173 -0
  18. package/dist/providers/index.mjs.map +1 -0
  19. package/dist/providers-D6FJ6tlA.d.mts +33 -0
  20. package/dist/providers-D6FJ6tlA.d.ts +33 -0
  21. package/dist/sdk/index.d.mts +41 -68
  22. package/dist/sdk/index.d.ts +41 -68
  23. package/dist/sdk/index.js +1 -374
  24. package/dist/sdk/index.js.map +1 -1
  25. package/dist/sdk/index.mjs +1 -356
  26. package/dist/sdk/index.mjs.map +1 -1
  27. package/dist/services/index.js +0 -7
  28. package/dist/services/index.mjs +1 -0
  29. package/dist/types/index.js +0 -4
  30. package/dist/utils/index.js +0 -14
  31. package/package.json +16 -27
  32. package/dist/actions/alquimia.action.d.mts +0 -3
  33. package/dist/actions/alquimia.action.d.ts +0 -3
  34. package/dist/actions/alquimia.action.js +0 -62
  35. package/dist/actions/alquimia.action.js.map +0 -1
  36. package/dist/actions/alquimia.action.mjs +0 -38
  37. package/dist/actions/alquimia.action.mjs.map +0 -1
  38. package/dist/actions/baseApi.action.d.mts +0 -20
  39. package/dist/actions/baseApi.action.d.ts +0 -20
  40. package/dist/actions/baseApi.action.js +0 -202
  41. package/dist/actions/baseApi.action.js.map +0 -1
  42. package/dist/actions/baseApi.action.mjs +0 -173
  43. package/dist/actions/baseApi.action.mjs.map +0 -1
  44. package/dist/alquimia-sdk-DK0XLjol.d.mts +0 -77
  45. package/dist/alquimia-sdk-DK0XLjol.d.ts +0 -77
  46. package/dist/context/index.d.mts +0 -22
  47. package/dist/context/index.d.ts +0 -22
  48. package/dist/context/index.js +0 -124
  49. package/dist/context/index.js.map +0 -1
  50. package/dist/context/index.mjs +0 -96
  51. package/dist/context/index.mjs.map +0 -1
  52. package/dist/index.d.mts +0 -33
  53. package/dist/index.d.ts +0 -33
  54. package/dist/index.js +0 -1277
  55. package/dist/index.js.map +0 -1
  56. package/dist/index.mjs +0 -1202
  57. package/dist/index.mjs.map +0 -1
@@ -149,362 +149,7 @@ var AlquimiaSDK = class {
149
149
  }
150
150
  };
151
151
  var alquimia_sdk_default = AlquimiaSDK;
152
-
153
- // src/sdk/providers/providers.ts
154
- var GenerativeProvider = class {
155
- constructor(config) {
156
- this.config = config;
157
- }
158
- };
159
- var WhisperProvider = class {
160
- constructor(config) {
161
- this.config = config;
162
- }
163
- };
164
- var StableDiffusionProvider = class {
165
- constructor(config) {
166
- this.config = config;
167
- }
168
- };
169
- var CharacterizationProvider = class {
170
- constructor(config) {
171
- this.config = config;
172
- }
173
- };
174
- var RatingsProvider = class {
175
- constructor(config) {
176
- this.config = config;
177
- }
178
- };
179
- var LoggerProvider = class {
180
- constructor(config) {
181
- this.config = config;
182
- }
183
- };
184
-
185
- // src/sdk/providers/alquimia.ts
186
- import axios2 from "axios";
187
- var AlquimiaWhisperProvider = class extends WhisperProvider {
188
- constructor(config) {
189
- super(config);
190
- }
191
- async textToSpeech(text) {
192
- const axiosClient = axios2.create({
193
- baseURL: this.config.baseURL
194
- });
195
- try {
196
- const response = await axiosClient.post(
197
- this.config.ttsRoute,
198
- {
199
- text
200
- },
201
- { responseType: "blob" }
202
- );
203
- return response.data;
204
- } catch (error) {
205
- console.error("Error converting text to speech:", error);
206
- throw error;
207
- }
208
- }
209
- async speechToText(audio) {
210
- const axiosClient = axios2.create({
211
- baseURL: this.config.baseURL
212
- });
213
- try {
214
- const response = await axiosClient.post(this.config.sttRoute, {
215
- audio
216
- });
217
- return response.data;
218
- } catch (error) {
219
- console.error("Error converting speech to text:", error);
220
- throw error;
221
- }
222
- }
223
- };
224
- var AlquimiaRatingsProvider = class extends RatingsProvider {
225
- constructor(config) {
226
- super(config);
227
- }
228
- async rate(data) {
229
- const path = `${this.config.baseUrl}${this.config.route}`;
230
- try {
231
- let response;
232
- const headers = {
233
- Authorization: `Bearer ${this.config.token}`,
234
- "Content-Type": "application/json",
235
- ...this.config.headers || {}
236
- };
237
- response = await axios2.post(`${path}`, data, { headers });
238
- return {
239
- success: true,
240
- data: response.data
241
- };
242
- } catch (error) {
243
- if (axios2.isAxiosError(error)) {
244
- return {
245
- success: false,
246
- error: {
247
- message: error.message,
248
- response: {
249
- status: error.response?.status,
250
- data: error.response?.data
251
- },
252
- details: error.response?.data
253
- }
254
- };
255
- }
256
- return {
257
- success: false,
258
- error: {
259
- message: error instanceof Error ? error.message : "Unknown error occurred",
260
- response: {
261
- status: 500
262
- }
263
- }
264
- };
265
- }
266
- }
267
- };
268
-
269
- // src/utils/utils.ts
270
- function generateTranslatePrompt(text) {
271
- const prompt = `
272
- Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:
273
- {
274
- restrictions: {
275
- value: [''],
276
- description: 'Restrictions to certain foods'
277
- },
278
- alergies: {
279
- value: [''],
280
- description: 'Alergies to certain foods'
281
- },
282
- wine_preference: {
283
- value: [''],
284
- description: 'Preferences for the wine'
285
- },
286
- meal_preference: {
287
- value: [''],
288
- description: 'Preferences for the meal'
289
- }
290
- }
291
-
292
- Text: "${text}"
293
-
294
- Output:
295
- `;
296
- return prompt;
297
- }
298
-
299
- // src/sdk/providers/openai.ts
300
- import OpenAI from "openai";
301
- var OpenAIWhisperProvider = class extends WhisperProvider {
302
- async textToSpeech(text) {
303
- return new Blob();
304
- }
305
- async speechToText(audio) {
306
- return "";
307
- }
308
- };
309
- var OpenAIAnalyzeCharProvider = class extends CharacterizationProvider {
310
- constructor(config) {
311
- super(config);
312
- this.client = new OpenAI({
313
- apiKey: config.apiKey
314
- });
315
- }
316
- async analyzeCharacterization(text) {
317
- const prompt = generateTranslatePrompt(text);
318
- const response = await this.client.chat.completions.create({
319
- model: "gpt-4o-mini",
320
- messages: [
321
- { role: "system", content: "You are a helpful assistant." },
322
- { role: "user", content: prompt }
323
- ],
324
- max_tokens: 150,
325
- temperature: 0.7
326
- });
327
- const arrangedText = response.choices[0].message.content.trim();
328
- try {
329
- const arrangedObject = JSON.parse(arrangedText);
330
- return arrangedObject;
331
- } catch (error) {
332
- throw new Error("Failed to parse the response from OpenAI");
333
- }
334
- }
335
- };
336
- var OpenAIStableDiffusionProvider = class extends StableDiffusionProvider {
337
- constructor(config) {
338
- super(config);
339
- this.client = new OpenAI({
340
- apiKey: config.apiKey
341
- });
342
- }
343
- async generateImage(query) {
344
- const response = await this.client.images.generate({
345
- model: "dall-e-3",
346
- prompt: query,
347
- n: 1,
348
- size: "1024x1024"
349
- });
350
- return response.data[0].url;
351
- }
352
- };
353
-
354
- // src/sdk/providers/stability.ts
355
- import { Buffer } from "buffer";
356
- import axios3 from "axios";
357
- var StabilityProvider = class extends StableDiffusionProvider {
358
- constructor(config) {
359
- super(config);
360
- }
361
- async generateImage(query) {
362
- const payload = {
363
- prompt: "query",
364
- output_format: "webp"
365
- };
366
- const response = await axios3.postForm(
367
- `https://api.stability.ai/v2beta/stable-image/generate/ultra`,
368
- axios3.toFormData(payload, new FormData()),
369
- {
370
- validateStatus: void 0,
371
- responseType: "arraybuffer",
372
- headers: {
373
- Authorization: `Bearer ${this.config.apiKey}`,
374
- Accept: "image/*"
375
- }
376
- }
377
- );
378
- if (response.status === 200) {
379
- const base64Image = Buffer.from(response.data).toString("base64");
380
- return `data:image/webp;base64,${base64Image}`;
381
- } else {
382
- throw new Error(`${response.status}: ${response.data.toString()}`);
383
- }
384
- }
385
- };
386
-
387
- // src/sdk/providers/eleven-labs.ts
388
- import { ElevenLabsClient, ElevenLabs } from "elevenlabs";
389
- import axios4 from "axios";
390
- var requestSpecs = {
391
- optimize_streaming_latency: ElevenLabs.OptimizeStreamingLatency.Zero,
392
- output_format: ElevenLabs.OutputFormat.Mp344100128,
393
- model_id: "eleven_multilingual_v1",
394
- language: "es",
395
- voice_settings: {
396
- stability: 0.1,
397
- similarity_boost: 0.15,
398
- style: 0.2
399
- }
400
- };
401
- var ElevenLabsWhisperProvider = class extends WhisperProvider {
402
- constructor(config) {
403
- super(config);
404
- this.client = new ElevenLabsClient(config);
405
- }
406
- async speechToText(audio) {
407
- return "";
408
- }
409
- async textToSpeech(text) {
410
- const axiosClient = axios4.create({
411
- baseURL: this.config.baseURL,
412
- headers: {
413
- Accept: "audio/mpeg",
414
- "Content-Type": "application/json",
415
- "Xi-Api-Key": this.config.apiKey
416
- }
417
- });
418
- try {
419
- const response = await axiosClient.post(
420
- `/v1/text-to-speech/${this.config.voiceId}`,
421
- {
422
- text,
423
- ...requestSpecs
424
- },
425
- { responseType: "blob" }
426
- );
427
- return response.data;
428
- } catch (error) {
429
- console.error("Error converting text to speech:", error);
430
- throw error;
431
- }
432
- }
433
- };
434
-
435
- // src/sdk/providers/elastic-search.ts
436
- import pino from "pino";
437
- var ElasticLoggerProvider = class _ElasticLoggerProvider extends LoggerProvider {
438
- constructor(config) {
439
- super(config);
440
- this.logger = console;
441
- }
442
- static async create(config) {
443
- const provider = new _ElasticLoggerProvider(config);
444
- await provider.initialize(config);
445
- return provider;
446
- }
447
- async initialize(config) {
448
- if (typeof window === "undefined") {
449
- const [pinoElastic] = await Promise.all([
450
- import("pino-elasticsearch")
451
- ]);
452
- const streamToElastic = pinoElastic.default({
453
- index: config.index || "logs-index",
454
- node: config.endpoint,
455
- esVersion: config.esVersion || 7,
456
- flushBytes: config.flushBytes || 1e3,
457
- auth: {
458
- username: config.username || "",
459
- password: config.password || ""
460
- },
461
- tls: {
462
- rejectUnauthorized: false
463
- },
464
- op_type: "create"
465
- });
466
- streamToElastic.on("error", (err) => {
467
- console.error("Elasticsearch stream error:", err);
468
- });
469
- streamToElastic.on("insertError", (err) => {
470
- console.error("Elasticsearch insert error:", err);
471
- });
472
- streamToElastic.on("insert", () => {
473
- console.log("Successfully sent log to Elasticsearch");
474
- });
475
- this.logger = pino({
476
- level: "info",
477
- timestamp: () => `,"time":"${(/* @__PURE__ */ new Date()).toISOString()}"`
478
- }, streamToElastic);
479
- }
480
- }
481
- logInfo(message, data) {
482
- this.logger.info({ ...data }, message);
483
- }
484
- logError(message, error, data) {
485
- const errorDetails = {
486
- message: error.message,
487
- name: error.name,
488
- stack: error.stack
489
- };
490
- this.logger.error({ error, ...data, ...errorDetails }, message);
491
- }
492
- };
493
152
  export {
494
- AlquimiaRatingsProvider,
495
- alquimia_sdk_default as AlquimiaSDK,
496
- AlquimiaWhisperProvider,
497
- CharacterizationProvider,
498
- ElasticLoggerProvider,
499
- ElevenLabsWhisperProvider,
500
- GenerativeProvider,
501
- LoggerProvider,
502
- OpenAIAnalyzeCharProvider,
503
- OpenAIStableDiffusionProvider,
504
- OpenAIWhisperProvider,
505
- RatingsProvider,
506
- StabilityProvider,
507
- StableDiffusionProvider,
508
- WhisperProvider
153
+ alquimia_sdk_default as AlquimiaSDK
509
154
  };
510
155
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sdk/alquimia-sdk.ts","../../src/sdk/providers/providers.ts","../../src/sdk/providers/alquimia.ts","../../src/utils/utils.ts","../../src/sdk/providers/openai.ts","../../src/sdk/providers/stability.ts","../../src/sdk/providers/eleven-labs.ts","../../src/sdk/providers/elastic-search.ts"],"sourcesContent":["import axios, { AxiosInstance } from \"axios\";\nimport {\n StableDiffusionProvider,\n WhisperProvider,\n CharacterizationProvider,\n RatingsProvider,\n LoggerProvider,\n} from \"./providers/providers\";\ninterface AlquimiaSDKConfig {\n apiKey: string;\n chatUrl: string;\n streamUrl: string;\n assistantId: string;\n}\n\n\nclass AlquimiaSDK {\n private config: AlquimiaSDKConfig;\n private axiosInstance: AxiosInstance;\n private conversationId: string | null = null;\n private sessionId: string | null = null;\n private streamId: string | null = null;\n private tools: any[] = [];\n private extraData: any = {};\n private forceProfile: any = {};\n private whisperProvider?: WhisperProvider\n private stableDiffusionProvider?: StableDiffusionProvider\n private analyzeCharacterizationProvider?: CharacterizationProvider\n private ratingsProvider?: RatingsProvider\n private loggerProvider?: LoggerProvider\n private enforceCharacterization?: boolean\n \n constructor(config: AlquimiaSDKConfig, enforceCharacterization: boolean = true) {\n this.config = config;\n this.enforceCharacterization = enforceCharacterization;\n\n this.axiosInstance = axios.create();\n this.axiosInstance.interceptors.response.use(\n (response) => response,\n async (error) => {\n if (error.response?.status) {\n if (this.loggerProvider) {\n await this.loggerProvider.logError(\n 'Server Error',\n error,\n {\n url: error.config.url,\n method: error.config.method,\n data: error.config.data,\n status: error.response.status,\n responseData: error.response.data\n }\n );\n }\n }\n return Promise.reject(error);\n }\n );\n \n this.textToSpeech = this.textToSpeech.bind(this);\n this.speechToText = this.speechToText.bind(this);\n }\n\n static configure(\n apiKey: string,\n inferUrl: string,\n streamUrl: string,\n assistantId: string\n ): AlquimiaSDKConfig {\n return {\n apiKey,\n chatUrl: `${inferUrl}/chat/${assistantId}`,\n streamUrl: `${streamUrl}/${assistantId}`,\n assistantId: assistantId\n };\n }\n\n widthConversationId(conversationId: string ): AlquimiaSDK {\n this.conversationId = conversationId \n return this;\n }\n\n withWhisperProvider(provider: WhisperProvider): AlquimiaSDK {\n this.whisperProvider = provider;\n return this;\n }\n\n withStableDiffusionProvider(provider: StableDiffusionProvider): AlquimiaSDK {\n this.stableDiffusionProvider = provider\n return this\n }\n\n withAnalyzeCharacterizationProvider(provider: CharacterizationProvider): AlquimiaSDK {\n this.analyzeCharacterizationProvider = provider\n return this\n }\n\n withRatingsProvider(provider: RatingsProvider): AlquimiaSDK {\n this.ratingsProvider = provider\n return this\n }\n\n withLoggerProvider(provider: LoggerProvider): AlquimiaSDK {\n this.loggerProvider = provider\n return this\n }\n\n getEnforceCharacterization(): boolean {\n return this.enforceCharacterization ?? true;\n }\n\n withTools(tools: any[]): AlquimiaSDK {\n this.tools = tools;\n return this;\n }\n\n withExtraData(extraData: any): AlquimiaSDK {\n this.extraData = extraData;\n return this;\n }\n\n withForceProfile(forceProfile: any): AlquimiaSDK {\n this.forceProfile = forceProfile;\n return this;\n }\n\n textToSpeech(text: string): Promise<Blob> {\n if (!this.whisperProvider) {\n throw new Error(\"Whisper provider not initialized\");\n }\n return this.whisperProvider.textToSpeech(text)\n }\n\n speechToText(audio: string): Promise<string> {\n if (!this.whisperProvider) {\n throw new Error(\"Whisper provider not initialized\");\n }\n return this.whisperProvider.speechToText(audio)\n }\n\n async sendMessage(query: string, traceParent?: string) {\n if (!this.conversationId) {\n throw new Error(\"Conversation not initialized\");\n }\n\n const initMessage = {\n query,\n session_id: this.conversationId,\n tools: this.tools,\n extra_data: this.extraData,\n force_profile: this.forceProfile\n };\n \n const result = (await this.axiosInstance.post(this.config.chatUrl, initMessage, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-trace-parent\": traceParent || \"\",\n },\n })).data\n \n this.streamId = result.data.stream_id;\n return this\n }\n\n async generateImage(query: string) {\n if (!this.stableDiffusionProvider) {\n throw new Error(\"Stable Diffusion provider not initialized\");\n }\n return this.stableDiffusionProvider.generateImage(query)\n }\n\n async analyzeCharacterization(text: string) {\n if (!this.analyzeCharacterizationProvider) {\n throw new Error(\"analyze characterization provider not initialized\");\n }\n return this.analyzeCharacterizationProvider.analyzeCharacterization(text)\n }\n\n async rate(data: any) {\n if (!this.ratingsProvider) {\n throw new Error(\"ratings provider not initialized\");\n }\n return this.ratingsProvider.rate(data)\n }\n\n async logInfo(message: string, data: any) {\n if (!this.loggerProvider) {\n throw new Error(\"logger provider not initialized\");\n }\n return this.loggerProvider.logInfo(message, data)\n }\n\n async logError(message: string, error: Error, data: any) {\n if (!this.loggerProvider) {\n throw new Error(\"logger provider not initialized\");\n }\n return this.loggerProvider.logError(message, error, data)\n }\n\n getUrlStream() {\n return `${this.config.streamUrl}/${this.streamId}`;\n }\n}\n\nexport default AlquimiaSDK;\n","\nexport abstract class GenerativeProvider {\n private config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n}\n\nexport abstract class WhisperProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract textToSpeech(text: string): Promise<Blob>\n\n abstract speechToText(audio: string): Promise<string>\n} \n\nexport abstract class StableDiffusionProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract generateImage(query: string): Promise<string>\n}\n\nexport abstract class CharacterizationProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract analyzeCharacterization(text: string): Promise<Record<string, any>>\n}\n\nexport abstract class RatingsProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract rate(data: Record<string, any>): Promise<Record<string, any>>;\n}\n\nexport abstract class LoggerProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract logInfo(message: string, data?: Record<string, any>): void;\n abstract logError(message: string, error: Error, data?: Record<string, any>): void;\n}\n","import { WhisperProvider, RatingsProvider } from \"./providers\";\nimport { RatingData } from \"../../types/type\";\nimport axios from \"axios\";\n\nclass AlquimiaWhisperProvider extends WhisperProvider {\n constructor(config: { baseURL: string; ttsRoute: string; sttRoute: string }) {\n super(config);\n }\n\n async textToSpeech(text: string): Promise<any> {\n const axiosClient = axios.create({\n baseURL: this.config.baseURL,\n });\n\n try {\n const response = await axiosClient.post(\n this.config.ttsRoute,\n {\n text: text,\n },\n { responseType: \"blob\" }\n );\n\n return response.data;\n } catch (error) {\n console.error(\"Error converting text to speech:\", error);\n throw error;\n }\n }\n\n async speechToText(audio: string): Promise<string> {\n const axiosClient = axios.create({\n baseURL: this.config.baseURL,\n });\n\n try {\n const response = await axiosClient.post(this.config.sttRoute, {\n audio: audio,\n });\n\n return response.data;\n } catch (error) {\n console.error(\"Error converting speech to text:\", error);\n throw error;\n }\n }\n}\n\nclass AlquimiaRatingsProvider extends RatingsProvider {\n constructor(config: { baseUrl: string; route: string; token: string; headers?: Record<string, string> }) {\n super(config);\n }\n\n async rate(data: RatingData): Promise<Record<string, any>> {\n const path = `${this.config.baseUrl}${this.config.route}`;\n try {\n let response;\n const headers = {\n Authorization: `Bearer ${this.config.token}`,\n \"Content-Type\": \"application/json\",\n ...this.config.headers || {}\n };\n\n response = await axios.post(`${path}`, data, { headers });\n return {\n success: true,\n data: response.data\n }\n } catch (error) {\n if (axios.isAxiosError(error)) {\n return {\n success: false,\n error: {\n message: error.message,\n response: {\n status: error.response?.status,\n data: error.response?.data\n },\n details: error.response?.data\n }\n };\n }\n\n return {\n success: false,\n error: {\n message: error instanceof Error ? error.message : 'Unknown error occurred',\n response: {\n status: 500\n }\n }\n };\n }\n }\n}\n\nexport { AlquimiaWhisperProvider, AlquimiaRatingsProvider };\n","import { BaseAPIConfig, ApiError, ConversationsMap } from \"../types/type\";\n\nexport function generateTranslatePrompt(text: string) {\n const prompt = `\n Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:\n {\n restrictions: {\n value: [''],\n description: 'Restrictions to certain foods'\n },\n alergies: {\n value: [''],\n description: 'Alergies to certain foods'\n },\n wine_preference: {\n value: [''],\n description: 'Preferences for the wine'\n },\n meal_preference: {\n value: [''],\n description: 'Preferences for the meal'\n }\n }\n\n Text: \"${text}\"\n\n Output:\n `;\n\n return prompt;\n}\n\nexport function getCookies(name: string) {\n if (typeof document === 'undefined') return undefined;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n}\n\nexport function generateHeaders(config: BaseAPIConfig): HeadersInit {\n const headers: HeadersInit = {\n \"Content-Type\": \"application/json\",\n };\n\n if (config.token) {\n headers[\"Authorization\"] = `Bearer ${config.token}`;\n }\n\n if (config.headers) {\n Object.entries(config.headers).forEach(([key, value]) => {\n headers[key] = value;\n });\n }\n\n return headers;\n}\n\nexport function isTextContent(buffer: ArrayBuffer): boolean {\n try {\n const text = new TextDecoder().decode(buffer);\n return /^[\\w\\#\\-\\*]/.test(text.trim());\n } catch {\n return false;\n }\n}\n\nexport function getQueryParam(param: string): string | null {\n if (typeof window !== 'undefined') {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(param);\n }\n return null;\n}\n\nexport function defineAssistantId(defaultId: string): string {\n if (typeof window !== 'undefined' && window.location.pathname === '/') {\n const queryAssistantId = getQueryParam('talkwith');\n if (queryAssistantId) {\n localStorage.setItem('assistantId', queryAssistantId);\n return queryAssistantId;\n }\n const storedAssistantId = localStorage.getItem('assistantId');\n return storedAssistantId || defaultId;\n }\n return defaultId;\n}\n\nexport function formatTimeWithUnit(timeMs: number): string {\n if (timeMs >= 1000) {\n return `${(timeMs / 1000).toFixed(1)}s`;\n }\n return `${Math.round(timeMs)}ms`;\n};\n\nexport function serializeAxiosError(error: unknown){\n if (error instanceof Error) {\n const customError = error as ApiError;\n return {\n message: customError?.message, \n name: customError?.name,\n stack: customError?.stack,\n code: customError?.code,\n status: customError?.status,\n };\n }\n return {\n message: String(error),\n name: 'Unknown Error',\n };\n};\n\nexport function parseConversationsMapCookie(cookieValue: string): ConversationsMap {\n try {\n const decodedValue = decodeURIComponent(cookieValue);\n return JSON.parse(decodedValue) as ConversationsMap;\n } catch (e) {\n console.error('Error parsing conversations cookie:', e);\n return {};\n }\n}\n\nexport function getTopicSessionId(topicId: string): string {\n const conversationsStr = getCookies(\"alquimia-sessions\") || \"{}\";\n if (!conversationsStr) {\n const sessionCookie = getCookies(\"alquimia-session\");\n return sessionCookie || \"\";\n }\n\n const conversationsMap = parseConversationsMapCookie(conversationsStr);\n return conversationsMap[topicId] || \"\";\n}\n\nexport function createMessageId() {\n return Math.floor(Math.random() * 1000000).toString();\n}\n\n\n","import { generateTranslatePrompt } from \"../../utils/utils\";\nimport { StableDiffusionProvider, WhisperProvider, CharacterizationProvider } from \"./providers\";\nimport OpenAI from \"openai\";\n\nclass OpenAIWhisperProvider extends WhisperProvider {\n async textToSpeech(text: string): Promise<Blob> {\n return new Blob();\n }\n\n async speechToText(audio: string): Promise<string> {\n return '';\n }\n}\nclass OpenAIAnalyzeCharProvider extends CharacterizationProvider {\n private client : any \n \n constructor(config:Record<string,any>){\n super(config)\n this.client = new OpenAI({\n apiKey: config.apiKey\n })\n }\n\n async analyzeCharacterization(text: string): Promise<Record<string, any>> {\n const prompt = generateTranslatePrompt(text);\n\n const response = await this.client.chat.completions.create({\n model: 'gpt-4o-mini',\n messages: [\n { role: 'system', content: 'You are a helpful assistant.' },\n { role: 'user', content: prompt },\n ],\n max_tokens: 150,\n temperature: 0.7,\n });\n\n const arrangedText = response.choices[0].message.content.trim();\n\n try {\n const arrangedObject = JSON.parse(arrangedText);\n return arrangedObject;\n } catch (error) {\n throw new Error('Failed to parse the response from OpenAI');\n }\n }\n}\n\nclass OpenAIStableDiffusionProvider extends StableDiffusionProvider {\n private client : any \n \n constructor(config:Record<string,any>){\n super(config)\n this.client = new OpenAI({\n apiKey: config.apiKey\n })\n }\n\n async generateImage(query: string): Promise<string> {\n const response = await this.client.images.generate({\n model: \"dall-e-3\",\n prompt: query,\n n: 1,\n size: \"1024x1024\",\n });\n return response.data[0].url;\n }\n}\n\nexport { OpenAIWhisperProvider, OpenAIStableDiffusionProvider, OpenAIAnalyzeCharProvider };\n","import { StableDiffusionProvider } from \"./providers\";\nimport { Buffer } from \"buffer\";\nimport axios from \"axios\";\n\nclass StabilityProvider extends StableDiffusionProvider {\n constructor(config: Record<string, any>) {\n super(config);\n }\n\n async generateImage(query: string): Promise<string> {\n const payload = {\n prompt: \"query\",\n output_format: \"webp\",\n };\n\n const response = await axios.postForm(\n `https://api.stability.ai/v2beta/stable-image/generate/ultra`,\n axios.toFormData(payload, new FormData()),\n {\n validateStatus: undefined,\n responseType: \"arraybuffer\",\n headers: {\n Authorization: `Bearer ${this.config.apiKey}`,\n Accept: \"image/*\",\n },\n }\n );\n\n if (response.status === 200) {\n const base64Image = Buffer.from(response.data).toString(\"base64\");\n return `data:image/webp;base64,${base64Image}`;\n } else {\n throw new Error(`${response.status}: ${response.data.toString()}`);\n }\n }\n}\n\nexport { StabilityProvider };\n","import { WhisperProvider } from \"./providers\";\nimport { ElevenLabsClient, ElevenLabs } from \"elevenlabs\";\nimport axios from \"axios\";\n\nconst requestSpecs = {\n optimize_streaming_latency: ElevenLabs.OptimizeStreamingLatency.Zero,\n output_format: ElevenLabs.OutputFormat.Mp344100128,\n model_id: \"eleven_multilingual_v1\",\n language: \"es\",\n voice_settings: {\n stability: 0.1,\n similarity_boost: 0.15,\n style: 0.2,\n },\n}; \n\nclass ElevenLabsWhisperProvider extends WhisperProvider {\n private client: ElevenLabsClient;\n\n constructor(config: { apiKey: string, voiceId: string, baseURL: string }) {\n super(config);\n this.client = new ElevenLabsClient(config);\n }\n\n async speechToText(audio: string): Promise<string> {\n return '';\n }\n\n async textToSpeech(text: string): Promise<any> {\n\n const axiosClient = axios.create({\n baseURL: this.config.baseURL,\n headers: {\n Accept: \"audio/mpeg\",\n \"Content-Type\": \"application/json\",\n \"Xi-Api-Key\": this.config.apiKey,\n },\n });\n\n try {\n const response = await axiosClient.post(\n `/v1/text-to-speech/${this.config.voiceId}`,\n {\n text: text,\n ...requestSpecs,\n },\n { responseType: 'blob' }\n );\n\n return response.data;\n } catch (error) {\n console.error('Error converting text to speech:', error);\n throw error;\n }\n }\n}\n\nexport { ElevenLabsWhisperProvider };","import { LoggerProvider } from \"./providers\";\nimport pino from \"pino\";\n\ninterface ElasticLoggerConfig {\n endpoint: string;\n username: string;\n password: string;\n index?: string;\n esVersion?: number;\n flushBytes?: number;\n}\n\nclass ElasticLoggerProvider extends LoggerProvider {\n private logger: pino.Logger;\n\n private constructor(config: ElasticLoggerConfig) {\n super(config);\n this.logger = console as any;\n }\n\n public static async create(config: ElasticLoggerConfig): Promise<ElasticLoggerProvider> {\n const provider = new ElasticLoggerProvider(config);\n await provider.initialize(config);\n return provider;\n }\n\n private async initialize(config: ElasticLoggerConfig) {\n if (typeof window === 'undefined') {\n const [pinoElastic] = await Promise.all([\n import('pino-elasticsearch')\n ]);\n\n const streamToElastic = pinoElastic.default({\n index: config.index || \"logs-index\",\n node: config.endpoint,\n esVersion: config.esVersion || 7,\n flushBytes: config.flushBytes || 1000,\n auth: {\n username: config.username || \"\",\n password: config.password || \"\",\n },\n tls: {\n rejectUnauthorized: false,\n },\n op_type: 'create',\n });\n\n streamToElastic.on('error', (err) => {\n console.error('Elasticsearch stream error:', err);\n });\n\n streamToElastic.on('insertError', (err) => {\n console.error('Elasticsearch insert error:', err);\n });\n\n streamToElastic.on('insert', () => {\n console.log('Successfully sent log to Elasticsearch');\n });\n\n\n this.logger = pino({\n level: 'info',\n timestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n }, streamToElastic);\n }\n }\n\n logInfo(message: string, data?: Record<string, any>): void {\n this.logger.info({ ...data }, message);\n }\n\n logError(message: string, error: Error, data?: Record<string, any>): void {\n const errorDetails = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n this.logger.error({ error, ...data, ...errorDetails }, message);\n }\n}\n\nexport { ElasticLoggerProvider };"],"mappings":"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","names":["axios","axios","axios"]}
1
+ {"version":3,"sources":["../../src/sdk/alquimia-sdk.ts"],"sourcesContent":["import axios, { AxiosInstance } from \"axios\";\nimport {\n StableDiffusionProvider,\n WhisperProvider,\n CharacterizationProvider,\n RatingsProvider,\n LoggerProvider,\n} from \"../providers\";\ninterface AlquimiaSDKConfig {\n apiKey: string;\n chatUrl: string;\n streamUrl: string;\n assistantId: string;\n}\n\n\nclass AlquimiaSDK {\n private config: AlquimiaSDKConfig;\n private axiosInstance: AxiosInstance;\n private conversationId: string | null = null;\n private sessionId: string | null = null;\n private streamId: string | null = null;\n private tools: any[] = [];\n private extraData: any = {};\n private forceProfile: any = {};\n private whisperProvider?: WhisperProvider\n private stableDiffusionProvider?: StableDiffusionProvider\n private analyzeCharacterizationProvider?: CharacterizationProvider\n private ratingsProvider?: RatingsProvider\n private loggerProvider?: LoggerProvider\n private enforceCharacterization?: boolean\n \n constructor(config: AlquimiaSDKConfig, enforceCharacterization: boolean = true) {\n this.config = config;\n this.enforceCharacterization = enforceCharacterization;\n\n this.axiosInstance = axios.create();\n this.axiosInstance.interceptors.response.use(\n (response) => response,\n async (error) => {\n if (error.response?.status) {\n if (this.loggerProvider) {\n await this.loggerProvider.logError(\n 'Server Error',\n error,\n {\n url: error.config.url,\n method: error.config.method,\n data: error.config.data,\n status: error.response.status,\n responseData: error.response.data\n }\n );\n }\n }\n return Promise.reject(error);\n }\n );\n \n this.textToSpeech = this.textToSpeech.bind(this);\n this.speechToText = this.speechToText.bind(this);\n }\n\n static configure(\n apiKey: string,\n inferUrl: string,\n streamUrl: string,\n assistantId: string\n ): AlquimiaSDKConfig {\n return {\n apiKey,\n chatUrl: `${inferUrl}/chat/${assistantId}`,\n streamUrl: `${streamUrl}/${assistantId}`,\n assistantId: assistantId\n };\n }\n\n widthConversationId(conversationId: string ): AlquimiaSDK {\n this.conversationId = conversationId \n return this;\n }\n\n withWhisperProvider(provider: WhisperProvider): AlquimiaSDK {\n this.whisperProvider = provider;\n return this;\n }\n\n withStableDiffusionProvider(provider: StableDiffusionProvider): AlquimiaSDK {\n this.stableDiffusionProvider = provider\n return this\n }\n\n withAnalyzeCharacterizationProvider(provider: CharacterizationProvider): AlquimiaSDK {\n this.analyzeCharacterizationProvider = provider\n return this\n }\n\n withRatingsProvider(provider: RatingsProvider): AlquimiaSDK {\n this.ratingsProvider = provider\n return this\n }\n\n withLoggerProvider(provider: LoggerProvider): AlquimiaSDK {\n this.loggerProvider = provider\n return this\n }\n\n getEnforceCharacterization(): boolean {\n return this.enforceCharacterization ?? true;\n }\n\n withTools(tools: any[]): AlquimiaSDK {\n this.tools = tools;\n return this;\n }\n\n withExtraData(extraData: any): AlquimiaSDK {\n this.extraData = extraData;\n return this;\n }\n\n withForceProfile(forceProfile: any): AlquimiaSDK {\n this.forceProfile = forceProfile;\n return this;\n }\n\n textToSpeech(text: string): Promise<Blob> {\n if (!this.whisperProvider) {\n throw new Error(\"Whisper provider not initialized\");\n }\n return this.whisperProvider.textToSpeech(text)\n }\n\n speechToText(audio: string): Promise<string> {\n if (!this.whisperProvider) {\n throw new Error(\"Whisper provider not initialized\");\n }\n return this.whisperProvider.speechToText(audio)\n }\n\n async sendMessage(query: string, traceParent?: string) {\n if (!this.conversationId) {\n throw new Error(\"Conversation not initialized\");\n }\n\n const initMessage = {\n query,\n session_id: this.conversationId,\n tools: this.tools,\n extra_data: this.extraData,\n force_profile: this.forceProfile\n };\n \n const result = (await this.axiosInstance.post(this.config.chatUrl, initMessage, {\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-trace-parent\": traceParent || \"\",\n },\n })).data\n \n this.streamId = result.data.stream_id;\n return this\n }\n\n async generateImage(query: string) {\n if (!this.stableDiffusionProvider) {\n throw new Error(\"Stable Diffusion provider not initialized\");\n }\n return this.stableDiffusionProvider.generateImage(query)\n }\n\n async analyzeCharacterization(text: string) {\n if (!this.analyzeCharacterizationProvider) {\n throw new Error(\"analyze characterization provider not initialized\");\n }\n return this.analyzeCharacterizationProvider.analyzeCharacterization(text)\n }\n\n async rate(data: any) {\n if (!this.ratingsProvider) {\n throw new Error(\"ratings provider not initialized\");\n }\n return this.ratingsProvider.rate(data)\n }\n\n async logInfo(message: string, data: any) {\n if (!this.loggerProvider) {\n throw new Error(\"logger provider not initialized\");\n }\n return this.loggerProvider.logInfo(message, data)\n }\n\n async logError(message: string, error: Error, data: any) {\n if (!this.loggerProvider) {\n throw new Error(\"logger provider not initialized\");\n }\n return this.loggerProvider.logError(message, error, data)\n }\n\n getUrlStream() {\n return `${this.config.streamUrl}/${this.streamId}`;\n }\n}\n\nexport default AlquimiaSDK;\n"],"mappings":"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","names":[]}
@@ -83,11 +83,4 @@ var startManagedTransaction = (name, type = "http-request", spanName, spanType =
83
83
  var createTraceParentId = (traceId, spanId) => {
84
84
  return `00-${traceId}-${spanId}-01`;
85
85
  };
86
- // Annotate the CommonJS export names for ESM import in node:
87
- 0 && (module.exports = {
88
- APMInitializer,
89
- handleApmTransaction,
90
- startManagedTransaction,
91
- traceError
92
- });
93
86
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  // src/services/apm/elastic-apm.ts
2
3
  import { useEffect } from "react";
3
4
  import { init as initApm, apm } from "@elastic/apm-rum";
@@ -34,8 +34,4 @@ var ToolFactory = class {
34
34
  return toolSpec;
35
35
  }
36
36
  };
37
- // Annotate the CommonJS export names for ESM import in node:
38
- 0 && (module.exports = {
39
- ToolFactory
40
- });
41
37
  //# sourceMappingURL=index.js.map
@@ -153,18 +153,4 @@ function getTopicSessionId(topicId) {
153
153
  function createMessageId() {
154
154
  return Math.floor(Math.random() * 1e6).toString();
155
155
  }
156
- // Annotate the CommonJS export names for ESM import in node:
157
- 0 && (module.exports = {
158
- createMessageId,
159
- defineAssistantId,
160
- formatTimeWithUnit,
161
- generateHeaders,
162
- generateTranslatePrompt,
163
- getCookies,
164
- getQueryParam,
165
- getTopicSessionId,
166
- isTextContent,
167
- parseConversationsMapCookie,
168
- serializeAxiosError
169
- });
170
156
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,24 +1,11 @@
1
1
  {
2
2
  "name": "@alquimia-ai/tools",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "author": "Alquimia AI",
5
5
  "description": "tools for Alquimia SDK",
6
6
  "private": false,
7
- "main": "dist/index.js",
8
- "module": "dist/index.mjs",
9
- "types": "dist/index.d.ts",
10
7
  "license": "MIT",
11
8
  "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.mjs",
15
- "require": "./dist/index.js"
16
- },
17
- "./utils": {
18
- "types": "./dist/utils/index.d.ts",
19
- "import": "./dist/utils/index.mjs",
20
- "require": "./dist/utils/index.js"
21
- },
22
9
  "./sdk": {
23
10
  "types": "./dist/sdk/index.d.ts",
24
11
  "import": "./dist/sdk/index.mjs",
@@ -30,24 +17,25 @@
30
17
  "require": "./dist/hooks/index.js"
31
18
  },
32
19
  "./actions": {
33
- "types": "./src/actions/index.ts",
34
- "default": "./src/actions/index.ts"
20
+ "types": "./dist/actions/index.d.ts",
21
+ "import": "./dist/actions/index.mjs",
22
+ "require": "./dist/actions/index.cjs"
35
23
  },
36
24
  "./providers": {
37
- "types": "./dist/sdk/index.d.ts",
38
- "import": "./dist/sdk/index.mjs",
39
- "require": "./dist/sdk/index.js"
25
+ "types": "./dist/providers/index.d.ts",
26
+ "import": "./dist/providers/index.mjs",
27
+ "require": "./dist/providers/index.js"
28
+ },
29
+ "./utils": {
30
+ "types": "./dist/utils/index.d.ts",
31
+ "import": "./dist/utils/index.mjs",
32
+ "require": "./dist/utils/index.js"
40
33
  },
41
34
  "./types": {
42
35
  "types": "./dist/types/index.d.ts",
43
36
  "import": "./dist/types/index.mjs",
44
37
  "require": "./dist/types/index.js"
45
38
  },
46
- "./context": {
47
- "types": "./dist/context/index.d.ts",
48
- "import": "./dist/context/index.mjs",
49
- "require": "./dist/context/index.js"
50
- },
51
39
  "./services": {
52
40
  "types": "./dist/services/index.d.ts",
53
41
  "import": "./dist/services/index.mjs",
@@ -58,9 +46,9 @@
58
46
  "scripts": {
59
47
  "lint": "eslint . --max-warnings 0",
60
48
  "generate:component": "turbo gen react-component",
61
- "build": "tsup src/index.ts src/**/index.ts src/**/*.action.ts --format esm,cjs --target es2020",
49
+ "build": "tsup src/index.ts src/**/index.ts --format esm,cjs --target es2020",
62
50
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
63
- "dev": "tsup src/index.ts --format esm,cjs --watch --dts"
51
+ "dev": "tsup src/index.ts src/**/index.ts --format esm,cjs --target es2020 --watch"
64
52
  },
65
53
  "files": [
66
54
  "dist/**",
@@ -84,12 +72,13 @@
84
72
  "@elastic/apm-rum": "^5.16.0",
85
73
  "ai": "^3.3.20",
86
74
  "axios": "^1.7.5",
75
+ "buffer": "^6.0.3",
87
76
  "crypto": "^1.0.1",
88
77
  "elevenlabs": "^0.15.0",
89
78
  "idb": "^8.0.0",
90
79
  "next": "^14.2.15",
91
80
  "openai": "^4.57.0",
92
- "pino": "^9.5.0",
81
+ "pino": "^9.0.0",
93
82
  "pino-elasticsearch": "^8.1.0",
94
83
  "react": "^18.2.0"
95
84
  },
@@ -1,3 +0,0 @@
1
- declare function initConversation(reset?: boolean, topicId?: string): Promise<string>;
2
-
3
- export { initConversation };
@@ -1,3 +0,0 @@
1
- declare function initConversation(reset?: boolean, topicId?: string): Promise<string>;
2
-
3
- export { initConversation };
@@ -1,62 +0,0 @@
1
- "use strict";
2
- "use server";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/actions/alquimia.action.ts
22
- var alquimia_action_exports = {};
23
- __export(alquimia_action_exports, {
24
- initConversation: () => initConversation
25
- });
26
- module.exports = __toCommonJS(alquimia_action_exports);
27
- var import_crypto = require("crypto");
28
- var import_headers = require("next/headers");
29
- async function initConversation(reset, topicId) {
30
- const cookieStore = await (0, import_headers.cookies)();
31
- if (!topicId) {
32
- let conversationId = (0, import_crypto.randomUUID)().toString();
33
- const alquimia_session = cookieStore.get("alquimia-session");
34
- if (!alquimia_session || reset) {
35
- cookieStore.set("alquimia-session", conversationId);
36
- } else {
37
- conversationId = alquimia_session.value;
38
- }
39
- return conversationId;
40
- }
41
- let conversationsMap = {};
42
- const existingConversations = cookieStore.get("alquimia-sessions");
43
- if (existingConversations) {
44
- try {
45
- const decodedValue = decodeURIComponent(existingConversations.value);
46
- conversationsMap = JSON.parse(decodedValue);
47
- } catch (e) {
48
- console.error("Error parsing conversations cookie:", e);
49
- conversationsMap = {};
50
- }
51
- }
52
- if (!conversationsMap[topicId] || reset) {
53
- conversationsMap[topicId] = (0, import_crypto.randomUUID)().toString();
54
- }
55
- cookieStore.set("alquimia-sessions", JSON.stringify(conversationsMap));
56
- return conversationsMap[topicId];
57
- }
58
- // Annotate the CommonJS export names for ESM import in node:
59
- 0 && (module.exports = {
60
- initConversation
61
- });
62
- //# sourceMappingURL=alquimia.action.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/actions/alquimia.action.ts"],"sourcesContent":["'use server'\nimport { randomUUID } from \"crypto\";\nimport { cookies } from \"next/headers\";\nimport { ConversationsMap } from \"../types/type\";\n\nexport async function initConversation(reset?: boolean, topicId?: string) {\n const cookieStore = await cookies();\n\n if (!topicId) {\n let conversationId = randomUUID().toString();\n const alquimia_session = cookieStore.get(\"alquimia-session\");\n\n if (!alquimia_session || reset) {\n cookieStore.set(\"alquimia-session\", conversationId);\n } else {\n conversationId = alquimia_session.value;\n }\n\n return conversationId;\n }\n\n let conversationsMap: ConversationsMap = {};\n const existingConversations = cookieStore.get(\"alquimia-sessions\");\n \n if (existingConversations) {\n try {\n const decodedValue = decodeURIComponent(existingConversations.value);\n conversationsMap = JSON.parse(decodedValue) as ConversationsMap;\n } catch (e) {\n console.error('Error parsing conversations cookie:', e);\n conversationsMap = {};\n }\n }\n\n if (!conversationsMap[topicId] || reset) {\n conversationsMap[topicId] = randomUUID().toString();\n }\n\n cookieStore.set(\"alquimia-sessions\", JSON.stringify(conversationsMap));\n \n return conversationsMap[topicId];\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,qBAAwB;AAGxB,eAAsB,iBAAiB,OAAiB,SAAkB;AACxE,QAAM,cAAc,UAAM,wBAAQ;AAElC,MAAI,CAAC,SAAS;AACZ,QAAI,qBAAiB,0BAAW,EAAE,SAAS;AAC3C,UAAM,mBAAmB,YAAY,IAAI,kBAAkB;AAE3D,QAAI,CAAC,oBAAoB,OAAO;AAC9B,kBAAY,IAAI,oBAAoB,cAAc;AAAA,IACpD,OAAO;AACL,uBAAiB,iBAAiB;AAAA,IACpC;AAEA,WAAO;AAAA,EACT;AAEA,MAAI,mBAAqC,CAAC;AAC1C,QAAM,wBAAwB,YAAY,IAAI,mBAAmB;AAEjE,MAAI,uBAAuB;AACzB,QAAI;AACF,YAAM,eAAe,mBAAmB,sBAAsB,KAAK;AACnE,yBAAmB,KAAK,MAAM,YAAY;AAAA,IAC5C,SAAS,GAAG;AACV,cAAQ,MAAM,uCAAuC,CAAC;AACtD,yBAAmB,CAAC;AAAA,IACtB;AAAA,EACF;AAEA,MAAI,CAAC,iBAAiB,OAAO,KAAK,OAAO;AACvC,qBAAiB,OAAO,QAAI,0BAAW,EAAE,SAAS;AAAA,EACpD;AAEA,cAAY,IAAI,qBAAqB,KAAK,UAAU,gBAAgB,CAAC;AAErE,SAAO,iBAAiB,OAAO;AACjC;","names":[]}