@alquimia-ai/tools 1.0.1 → 1.0.3

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 (51) hide show
  1. package/dist/actions/index.d.mts +22 -0
  2. package/dist/actions/index.d.ts +22 -0
  3. package/dist/actions/index.js +228 -0
  4. package/dist/actions/index.js.map +1 -0
  5. package/dist/actions/index.mjs +206 -0
  6. package/dist/actions/index.mjs.map +1 -0
  7. package/dist/hooks/index.d.mts +53 -0
  8. package/dist/hooks/index.d.ts +53 -0
  9. package/dist/hooks/index.js +302 -0
  10. package/dist/hooks/index.js.map +1 -0
  11. package/dist/hooks/index.mjs +279 -0
  12. package/dist/hooks/index.mjs.map +1 -0
  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 +47 -0
  22. package/dist/sdk/index.d.ts +47 -0
  23. package/dist/sdk/index.js +188 -0
  24. package/dist/sdk/index.js.map +1 -0
  25. package/dist/sdk/index.mjs +155 -0
  26. package/dist/sdk/index.mjs.map +1 -0
  27. package/dist/services/index.d.mts +26 -0
  28. package/dist/services/index.d.ts +26 -0
  29. package/dist/services/index.js +86 -0
  30. package/dist/services/index.js.map +1 -0
  31. package/dist/services/index.mjs +64 -0
  32. package/dist/services/index.mjs.map +1 -0
  33. package/dist/types/index.d.mts +105 -0
  34. package/dist/types/index.d.ts +105 -0
  35. package/dist/types/index.js +37 -0
  36. package/dist/types/index.js.map +1 -0
  37. package/dist/types/index.mjs +14 -0
  38. package/dist/types/index.mjs.map +1 -0
  39. package/dist/utils/index.d.mts +29 -0
  40. package/dist/utils/index.d.ts +29 -0
  41. package/dist/utils/index.js +156 -0
  42. package/dist/utils/index.js.map +1 -0
  43. package/dist/utils/index.mjs +133 -0
  44. package/dist/utils/index.mjs.map +1 -0
  45. package/package.json +38 -20
  46. package/dist/index.d.mts +0 -322
  47. package/dist/index.d.ts +0 -322
  48. package/dist/index.js +0 -2582
  49. package/dist/index.js.map +0 -1
  50. package/dist/index.mjs +0 -2336
  51. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,105 @@
1
+ import { Span } from '@elastic/apm-rum';
2
+ import { Message } from 'ai';
3
+
4
+ interface ITooler {
5
+ tooler: Array<{
6
+ name: string;
7
+ parameters: Record<string, any>;
8
+ }>;
9
+ }
10
+ interface IToolSpec {
11
+ name: string;
12
+ parameters: Record<string, any>;
13
+ }
14
+ declare abstract class ToolFactory {
15
+ protected toolSpec: IToolSpec | null;
16
+ constructor(toolSpec: IToolSpec);
17
+ static createTool(toolSpec: IToolSpec): IToolSpec;
18
+ abstract execute(): Promise<any>;
19
+ }
20
+ interface AIMessageChunk {
21
+ type: string;
22
+ data?: AIMessageChunkData;
23
+ error_code?: string;
24
+ error_detail?: string;
25
+ }
26
+ interface AIMessageChunkData {
27
+ content: string;
28
+ additional_kwargs?: Record<string, unknown>;
29
+ response_metadata?: Record<string, unknown>;
30
+ type: string;
31
+ name?: string | null;
32
+ id?: string | null;
33
+ example?: boolean;
34
+ tool_calls?: ToolCall[];
35
+ invalid_tool_calls?: InvalidToolCall[];
36
+ usage_metadata?: any;
37
+ tool_call_chunks?: unknown[];
38
+ error_code?: string;
39
+ error_detail?: string;
40
+ }
41
+ type ToolCall = {
42
+ name: string;
43
+ args: Record<string, any>;
44
+ id?: string | null;
45
+ };
46
+ type InvalidToolCall = {
47
+ name: string | null;
48
+ args: string | null;
49
+ id: string | null;
50
+ error: string | null;
51
+ };
52
+ interface BaseAPIConfig {
53
+ baseUrl: string;
54
+ route: string;
55
+ token?: string;
56
+ headers?: Record<string, string>;
57
+ }
58
+ interface RatingData {
59
+ assistantId: string;
60
+ sessionId: string;
61
+ topicId: number;
62
+ score?: number;
63
+ description?: string;
64
+ }
65
+ type AlquimiaMessage = Message & {
66
+ error_code?: string;
67
+ error_detail?: string;
68
+ } | undefined;
69
+ interface ActionResponse<T = void> {
70
+ success: boolean;
71
+ data?: T;
72
+ error?: {
73
+ message: string;
74
+ code?: string;
75
+ details?: any;
76
+ name?: string;
77
+ cause?: string;
78
+ status?: string;
79
+ };
80
+ }
81
+ type ApmSpan = Span & {
82
+ id?: string;
83
+ traceId?: string;
84
+ } | undefined;
85
+ type ApiError = Error & {
86
+ message: string;
87
+ name: string;
88
+ cause: string;
89
+ code?: string | number;
90
+ status?: string | number;
91
+ };
92
+ interface ConversationsMap {
93
+ [topicId: string]: string;
94
+ }
95
+ interface DocumentSearchResult {
96
+ pageContent: string;
97
+ metadata: {
98
+ source: string;
99
+ _id: string;
100
+ _collection_name: string;
101
+ };
102
+ score: number;
103
+ }
104
+
105
+ export { type AIMessageChunk, type AIMessageChunkData, type ActionResponse, type AlquimiaMessage, type ApiError, type ApmSpan, type BaseAPIConfig, type ConversationsMap, type DocumentSearchResult, type IToolSpec, type ITooler, type RatingData, ToolFactory };
@@ -0,0 +1,105 @@
1
+ import { Span } from '@elastic/apm-rum';
2
+ import { Message } from 'ai';
3
+
4
+ interface ITooler {
5
+ tooler: Array<{
6
+ name: string;
7
+ parameters: Record<string, any>;
8
+ }>;
9
+ }
10
+ interface IToolSpec {
11
+ name: string;
12
+ parameters: Record<string, any>;
13
+ }
14
+ declare abstract class ToolFactory {
15
+ protected toolSpec: IToolSpec | null;
16
+ constructor(toolSpec: IToolSpec);
17
+ static createTool(toolSpec: IToolSpec): IToolSpec;
18
+ abstract execute(): Promise<any>;
19
+ }
20
+ interface AIMessageChunk {
21
+ type: string;
22
+ data?: AIMessageChunkData;
23
+ error_code?: string;
24
+ error_detail?: string;
25
+ }
26
+ interface AIMessageChunkData {
27
+ content: string;
28
+ additional_kwargs?: Record<string, unknown>;
29
+ response_metadata?: Record<string, unknown>;
30
+ type: string;
31
+ name?: string | null;
32
+ id?: string | null;
33
+ example?: boolean;
34
+ tool_calls?: ToolCall[];
35
+ invalid_tool_calls?: InvalidToolCall[];
36
+ usage_metadata?: any;
37
+ tool_call_chunks?: unknown[];
38
+ error_code?: string;
39
+ error_detail?: string;
40
+ }
41
+ type ToolCall = {
42
+ name: string;
43
+ args: Record<string, any>;
44
+ id?: string | null;
45
+ };
46
+ type InvalidToolCall = {
47
+ name: string | null;
48
+ args: string | null;
49
+ id: string | null;
50
+ error: string | null;
51
+ };
52
+ interface BaseAPIConfig {
53
+ baseUrl: string;
54
+ route: string;
55
+ token?: string;
56
+ headers?: Record<string, string>;
57
+ }
58
+ interface RatingData {
59
+ assistantId: string;
60
+ sessionId: string;
61
+ topicId: number;
62
+ score?: number;
63
+ description?: string;
64
+ }
65
+ type AlquimiaMessage = Message & {
66
+ error_code?: string;
67
+ error_detail?: string;
68
+ } | undefined;
69
+ interface ActionResponse<T = void> {
70
+ success: boolean;
71
+ data?: T;
72
+ error?: {
73
+ message: string;
74
+ code?: string;
75
+ details?: any;
76
+ name?: string;
77
+ cause?: string;
78
+ status?: string;
79
+ };
80
+ }
81
+ type ApmSpan = Span & {
82
+ id?: string;
83
+ traceId?: string;
84
+ } | undefined;
85
+ type ApiError = Error & {
86
+ message: string;
87
+ name: string;
88
+ cause: string;
89
+ code?: string | number;
90
+ status?: string | number;
91
+ };
92
+ interface ConversationsMap {
93
+ [topicId: string]: string;
94
+ }
95
+ interface DocumentSearchResult {
96
+ pageContent: string;
97
+ metadata: {
98
+ source: string;
99
+ _id: string;
100
+ _collection_name: string;
101
+ };
102
+ score: number;
103
+ }
104
+
105
+ export { type AIMessageChunk, type AIMessageChunkData, type ActionResponse, type AlquimiaMessage, type ApiError, type ApmSpan, type BaseAPIConfig, type ConversationsMap, type DocumentSearchResult, type IToolSpec, type ITooler, type RatingData, ToolFactory };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/types/index.ts
21
+ var types_exports = {};
22
+ __export(types_exports, {
23
+ ToolFactory: () => ToolFactory
24
+ });
25
+ module.exports = __toCommonJS(types_exports);
26
+
27
+ // src/types/type.ts
28
+ var ToolFactory = class {
29
+ constructor(toolSpec) {
30
+ this.toolSpec = null;
31
+ this.toolSpec = toolSpec;
32
+ }
33
+ static createTool(toolSpec) {
34
+ return toolSpec;
35
+ }
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/index.ts","../../src/types/type.ts"],"sourcesContent":["export * from './type'","import { Span } from \"@elastic/apm-rum\";\nimport { Message } from \"ai\";\nexport interface ITooler {\n tooler: Array<{\n name: string;\n parameters: Record<string, any>;\n }>;\n}\n\nexport interface IToolSpec {\n name: string;\n parameters: Record<string, any>;\n}\n\nexport abstract class ToolFactory {\n protected toolSpec: IToolSpec | null = null;\n\n constructor(toolSpec: IToolSpec) {\n this.toolSpec = toolSpec;\n }\n\n static createTool(toolSpec: IToolSpec): IToolSpec {\n return toolSpec;\n }\n\n abstract execute(): Promise<any>;\n}\n\nexport interface AIMessageChunk {\n type: string;\n data?: AIMessageChunkData;\n error_code?: string;\n error_detail?: string;\n}\n\nexport interface AIMessageChunkData {\n content: string;\n additional_kwargs?: Record<string, unknown>;\n response_metadata?: Record<string, unknown>;\n type: string;\n name?: string | null;\n id?: string | null;\n example?: boolean;\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: any;\n tool_call_chunks?: unknown[];\n error_code?: string;\n error_detail?: string;\n}\n\ntype ToolCall = {\n name: string;\n args: Record<string, any>;\n id?: string | null;\n};\n\ntype InvalidToolCall = {\n name: string | null;\n args: string | null;\n id: string | null;\n error: string | null;\n};\n\nexport interface BaseAPIConfig {\n baseUrl: string;\n route: string;\n token?: string;\n headers?: Record<string, string>;\n}\n\nexport interface RatingData {\n assistantId: string;\n sessionId: string;\n topicId: number;\n score?: number;\n description?: string;\n}\n\nexport type AlquimiaMessage = Message & {\n error_code?: string;\n error_detail?: string;\n} | undefined;\n\nexport interface ActionResponse<T = void> {\n success: boolean;\n data?: T;\n error?: {\n message: string;\n code?: string;\n details?: any;\n name?: string;\n cause?: string;\n status?: string;\n };\n}\n\nexport type ApmSpan = Span & {\n id?: string \n traceId?: string\n} | undefined\n\nexport type ApiError = Error & {\n message: string;\n name: string;\n cause: string;\n code?: string | number;\n status?: string | number;\n}\n\nexport interface ConversationsMap {\n [topicId: string]: string;\n}\n\nexport interface DocumentSearchResult {\n pageContent: string;\n metadata: {\n source: string;\n _id: string;\n _collection_name: string;\n };\n score: number;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcO,IAAe,cAAf,MAA2B;AAAA,EAGhC,YAAY,UAAqB;AAFjC,SAAU,WAA6B;AAGrC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,OAAO,WAAW,UAAgC;AAChD,WAAO;AAAA,EACT;AAGF;","names":[]}
@@ -0,0 +1,14 @@
1
+ // src/types/type.ts
2
+ var ToolFactory = class {
3
+ constructor(toolSpec) {
4
+ this.toolSpec = null;
5
+ this.toolSpec = toolSpec;
6
+ }
7
+ static createTool(toolSpec) {
8
+ return toolSpec;
9
+ }
10
+ };
11
+ export {
12
+ ToolFactory
13
+ };
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/type.ts"],"sourcesContent":["import { Span } from \"@elastic/apm-rum\";\nimport { Message } from \"ai\";\nexport interface ITooler {\n tooler: Array<{\n name: string;\n parameters: Record<string, any>;\n }>;\n}\n\nexport interface IToolSpec {\n name: string;\n parameters: Record<string, any>;\n}\n\nexport abstract class ToolFactory {\n protected toolSpec: IToolSpec | null = null;\n\n constructor(toolSpec: IToolSpec) {\n this.toolSpec = toolSpec;\n }\n\n static createTool(toolSpec: IToolSpec): IToolSpec {\n return toolSpec;\n }\n\n abstract execute(): Promise<any>;\n}\n\nexport interface AIMessageChunk {\n type: string;\n data?: AIMessageChunkData;\n error_code?: string;\n error_detail?: string;\n}\n\nexport interface AIMessageChunkData {\n content: string;\n additional_kwargs?: Record<string, unknown>;\n response_metadata?: Record<string, unknown>;\n type: string;\n name?: string | null;\n id?: string | null;\n example?: boolean;\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: any;\n tool_call_chunks?: unknown[];\n error_code?: string;\n error_detail?: string;\n}\n\ntype ToolCall = {\n name: string;\n args: Record<string, any>;\n id?: string | null;\n};\n\ntype InvalidToolCall = {\n name: string | null;\n args: string | null;\n id: string | null;\n error: string | null;\n};\n\nexport interface BaseAPIConfig {\n baseUrl: string;\n route: string;\n token?: string;\n headers?: Record<string, string>;\n}\n\nexport interface RatingData {\n assistantId: string;\n sessionId: string;\n topicId: number;\n score?: number;\n description?: string;\n}\n\nexport type AlquimiaMessage = Message & {\n error_code?: string;\n error_detail?: string;\n} | undefined;\n\nexport interface ActionResponse<T = void> {\n success: boolean;\n data?: T;\n error?: {\n message: string;\n code?: string;\n details?: any;\n name?: string;\n cause?: string;\n status?: string;\n };\n}\n\nexport type ApmSpan = Span & {\n id?: string \n traceId?: string\n} | undefined\n\nexport type ApiError = Error & {\n message: string;\n name: string;\n cause: string;\n code?: string | number;\n status?: string | number;\n}\n\nexport interface ConversationsMap {\n [topicId: string]: string;\n}\n\nexport interface DocumentSearchResult {\n pageContent: string;\n metadata: {\n source: string;\n _id: string;\n _collection_name: string;\n };\n score: number;\n}"],"mappings":";AAcO,IAAe,cAAf,MAA2B;AAAA,EAGhC,YAAY,UAAqB;AAFjC,SAAU,WAA6B;AAGrC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,OAAO,WAAW,UAAgC;AAChD,WAAO;AAAA,EACT;AAGF;","names":[]}
@@ -0,0 +1,29 @@
1
+ import { BaseAPIConfig, ConversationsMap } from '../types/index.mjs';
2
+ import '@elastic/apm-rum';
3
+ import 'ai';
4
+
5
+ declare function generateTranslatePrompt(text: string): string;
6
+ declare function getCookies(name: string): string | undefined;
7
+ declare function generateHeaders(config: BaseAPIConfig): HeadersInit;
8
+ declare function isTextContent(buffer: ArrayBuffer): boolean;
9
+ declare function getQueryParam(param: string): string | null;
10
+ declare function defineAssistantId(defaultId: string): string;
11
+ declare function formatTimeWithUnit(timeMs: number): string;
12
+ declare function serializeAxiosError(error: unknown): {
13
+ message: string;
14
+ name: string;
15
+ stack: string | undefined;
16
+ code: string | number | undefined;
17
+ status: string | number | undefined;
18
+ } | {
19
+ message: string;
20
+ name: string;
21
+ stack?: undefined;
22
+ code?: undefined;
23
+ status?: undefined;
24
+ };
25
+ declare function parseConversationsMapCookie(cookieValue: string): ConversationsMap;
26
+ declare function getTopicSessionId(topicId: string): string;
27
+ declare function createMessageId(): string;
28
+
29
+ export { createMessageId, defineAssistantId, formatTimeWithUnit, generateHeaders, generateTranslatePrompt, getCookies, getQueryParam, getTopicSessionId, isTextContent, parseConversationsMapCookie, serializeAxiosError };
@@ -0,0 +1,29 @@
1
+ import { BaseAPIConfig, ConversationsMap } from '../types/index.js';
2
+ import '@elastic/apm-rum';
3
+ import 'ai';
4
+
5
+ declare function generateTranslatePrompt(text: string): string;
6
+ declare function getCookies(name: string): string | undefined;
7
+ declare function generateHeaders(config: BaseAPIConfig): HeadersInit;
8
+ declare function isTextContent(buffer: ArrayBuffer): boolean;
9
+ declare function getQueryParam(param: string): string | null;
10
+ declare function defineAssistantId(defaultId: string): string;
11
+ declare function formatTimeWithUnit(timeMs: number): string;
12
+ declare function serializeAxiosError(error: unknown): {
13
+ message: string;
14
+ name: string;
15
+ stack: string | undefined;
16
+ code: string | number | undefined;
17
+ status: string | number | undefined;
18
+ } | {
19
+ message: string;
20
+ name: string;
21
+ stack?: undefined;
22
+ code?: undefined;
23
+ status?: undefined;
24
+ };
25
+ declare function parseConversationsMapCookie(cookieValue: string): ConversationsMap;
26
+ declare function getTopicSessionId(topicId: string): string;
27
+ declare function createMessageId(): string;
28
+
29
+ export { createMessageId, defineAssistantId, formatTimeWithUnit, generateHeaders, generateTranslatePrompt, getCookies, getQueryParam, getTopicSessionId, isTextContent, parseConversationsMapCookie, serializeAxiosError };
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/index.ts
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ createMessageId: () => createMessageId,
24
+ defineAssistantId: () => defineAssistantId,
25
+ formatTimeWithUnit: () => formatTimeWithUnit,
26
+ generateHeaders: () => generateHeaders,
27
+ generateTranslatePrompt: () => generateTranslatePrompt,
28
+ getCookies: () => getCookies,
29
+ getQueryParam: () => getQueryParam,
30
+ getTopicSessionId: () => getTopicSessionId,
31
+ isTextContent: () => isTextContent,
32
+ parseConversationsMapCookie: () => parseConversationsMapCookie,
33
+ serializeAxiosError: () => serializeAxiosError
34
+ });
35
+ module.exports = __toCommonJS(utils_exports);
36
+
37
+ // src/utils/utils.ts
38
+ function generateTranslatePrompt(text) {
39
+ const prompt = `
40
+ Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:
41
+ {
42
+ restrictions: {
43
+ value: [''],
44
+ description: 'Restrictions to certain foods'
45
+ },
46
+ alergies: {
47
+ value: [''],
48
+ description: 'Alergies to certain foods'
49
+ },
50
+ wine_preference: {
51
+ value: [''],
52
+ description: 'Preferences for the wine'
53
+ },
54
+ meal_preference: {
55
+ value: [''],
56
+ description: 'Preferences for the meal'
57
+ }
58
+ }
59
+
60
+ Text: "${text}"
61
+
62
+ Output:
63
+ `;
64
+ return prompt;
65
+ }
66
+ function getCookies(name) {
67
+ if (typeof document === "undefined") return void 0;
68
+ const value = `; ${document.cookie}`;
69
+ const parts = value.split(`; ${name}=`);
70
+ if (parts.length === 2) return parts.pop()?.split(";").shift();
71
+ }
72
+ function generateHeaders(config) {
73
+ const headers = {
74
+ "Content-Type": "application/json"
75
+ };
76
+ if (config.token) {
77
+ headers["Authorization"] = `Bearer ${config.token}`;
78
+ }
79
+ if (config.headers) {
80
+ Object.entries(config.headers).forEach(([key, value]) => {
81
+ headers[key] = value;
82
+ });
83
+ }
84
+ return headers;
85
+ }
86
+ function isTextContent(buffer) {
87
+ try {
88
+ const text = new TextDecoder().decode(buffer);
89
+ return /^[\w\#\-\*]/.test(text.trim());
90
+ } catch {
91
+ return false;
92
+ }
93
+ }
94
+ function getQueryParam(param) {
95
+ if (typeof window !== "undefined") {
96
+ const urlParams = new URLSearchParams(window.location.search);
97
+ return urlParams.get(param);
98
+ }
99
+ return null;
100
+ }
101
+ function defineAssistantId(defaultId) {
102
+ if (typeof window !== "undefined" && window.location.pathname === "/") {
103
+ const queryAssistantId = getQueryParam("talkwith");
104
+ if (queryAssistantId) {
105
+ localStorage.setItem("assistantId", queryAssistantId);
106
+ return queryAssistantId;
107
+ }
108
+ const storedAssistantId = localStorage.getItem("assistantId");
109
+ return storedAssistantId || defaultId;
110
+ }
111
+ return defaultId;
112
+ }
113
+ function formatTimeWithUnit(timeMs) {
114
+ if (timeMs >= 1e3) {
115
+ return `${(timeMs / 1e3).toFixed(1)}s`;
116
+ }
117
+ return `${Math.round(timeMs)}ms`;
118
+ }
119
+ function serializeAxiosError(error) {
120
+ if (error instanceof Error) {
121
+ const customError = error;
122
+ return {
123
+ message: customError?.message,
124
+ name: customError?.name,
125
+ stack: customError?.stack,
126
+ code: customError?.code,
127
+ status: customError?.status
128
+ };
129
+ }
130
+ return {
131
+ message: String(error),
132
+ name: "Unknown Error"
133
+ };
134
+ }
135
+ function parseConversationsMapCookie(cookieValue) {
136
+ try {
137
+ const decodedValue = decodeURIComponent(cookieValue);
138
+ return JSON.parse(decodedValue);
139
+ } catch (e) {
140
+ console.error("Error parsing conversations cookie:", e);
141
+ return {};
142
+ }
143
+ }
144
+ function getTopicSessionId(topicId) {
145
+ const conversationsStr = getCookies("alquimia-sessions") || "{}";
146
+ if (!conversationsStr) {
147
+ const sessionCookie = getCookies("alquimia-session");
148
+ return sessionCookie || "";
149
+ }
150
+ const conversationsMap = parseConversationsMapCookie(conversationsStr);
151
+ return conversationsMap[topicId] || "";
152
+ }
153
+ function createMessageId() {
154
+ return Math.floor(Math.random() * 1e6).toString();
155
+ }
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/utils.ts"],"sourcesContent":["export * from './utils';","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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,SAAS,wBAAwB,MAAc;AACpD,QAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAqBA,IAAI;AAAA;AAAA;AAAA;AAKnB,SAAO;AACT;AAEO,SAAS,WAAW,MAAc;AACvC,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,QAAM,QAAQ,KAAK,SAAS,MAAM;AAClC,QAAM,QAAQ,MAAM,MAAM,KAAK,IAAI,GAAG;AACtC,MAAI,MAAM,WAAW,EAAG,QAAO,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,MAAM;AAC/D;AAEO,SAAS,gBAAgB,QAAoC;AAClE,QAAM,UAAuB;AAAA,IAC3B,gBAAgB;AAAA,EAClB;AAEA,MAAI,OAAO,OAAO;AAChB,YAAQ,eAAe,IAAI,UAAU,OAAO,KAAK;AAAA,EACnD;AAEA,MAAI,OAAO,SAAS;AAClB,WAAO,QAAQ,OAAO,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACvD,cAAQ,GAAG,IAAI;AAAA,IACjB,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEO,SAAS,cAAc,QAA8B;AAC1D,MAAI;AACF,UAAM,OAAO,IAAI,YAAY,EAAE,OAAO,MAAM;AAC5C,WAAO,cAAc,KAAK,KAAK,KAAK,CAAC;AAAA,EACvC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,cAAc,OAA8B;AAC1D,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,WAAO,UAAU,IAAI,KAAK;AAAA,EAC5B;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,WAA2B;AAC3D,MAAI,OAAO,WAAW,eAAe,OAAO,SAAS,aAAa,KAAK;AACrE,UAAM,mBAAmB,cAAc,UAAU;AACjD,QAAI,kBAAkB;AACpB,mBAAa,QAAQ,eAAe,gBAAgB;AACpD,aAAO;AAAA,IACT;AACA,UAAM,oBAAoB,aAAa,QAAQ,aAAa;AAC5D,WAAO,qBAAqB;AAAA,EAC9B;AACA,SAAO;AACT;AAEO,SAAS,mBAAmB,QAAwB;AACzD,MAAI,UAAU,KAAM;AAClB,WAAO,IAAI,SAAS,KAAM,QAAQ,CAAC,CAAC;AAAA,EACtC;AACA,SAAO,GAAG,KAAK,MAAM,MAAM,CAAC;AAC9B;AAEO,SAAS,oBAAoB,OAAe;AACjD,MAAI,iBAAiB,OAAO;AAC1B,UAAM,cAAc;AACpB,WAAO;AAAA,MACL,SAAS,aAAa;AAAA,MACtB,MAAM,aAAa;AAAA,MACnB,OAAO,aAAa;AAAA,MACpB,MAAM,aAAa;AAAA,MACnB,QAAQ,aAAa;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AAAA,IACL,SAAS,OAAO,KAAK;AAAA,IACrB,MAAM;AAAA,EACR;AACF;AAEO,SAAS,4BAA4B,aAAuC;AACjF,MAAI;AACF,UAAM,eAAe,mBAAmB,WAAW;AACnD,WAAO,KAAK,MAAM,YAAY;AAAA,EAChC,SAAS,GAAG;AACV,YAAQ,MAAM,uCAAuC,CAAC;AACtD,WAAO,CAAC;AAAA,EACV;AACF;AAEO,SAAS,kBAAkB,SAAyB;AACzD,QAAM,mBAAmB,WAAW,mBAAmB,KAAK;AAC5D,MAAI,CAAC,kBAAkB;AACrB,UAAM,gBAAgB,WAAW,kBAAkB;AACnD,WAAO,iBAAiB;AAAA,EAC1B;AAEA,QAAM,mBAAmB,4BAA4B,gBAAgB;AACrE,SAAO,iBAAiB,OAAO,KAAK;AACtC;AAEO,SAAS,kBAAkB;AAChC,SAAO,KAAK,MAAM,KAAK,OAAO,IAAI,GAAO,EAAE,SAAS;AACtD;","names":[]}
@@ -0,0 +1,133 @@
1
+ // src/utils/utils.ts
2
+ function generateTranslatePrompt(text) {
3
+ const prompt = `
4
+ Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:
5
+ {
6
+ restrictions: {
7
+ value: [''],
8
+ description: 'Restrictions to certain foods'
9
+ },
10
+ alergies: {
11
+ value: [''],
12
+ description: 'Alergies to certain foods'
13
+ },
14
+ wine_preference: {
15
+ value: [''],
16
+ description: 'Preferences for the wine'
17
+ },
18
+ meal_preference: {
19
+ value: [''],
20
+ description: 'Preferences for the meal'
21
+ }
22
+ }
23
+
24
+ Text: "${text}"
25
+
26
+ Output:
27
+ `;
28
+ return prompt;
29
+ }
30
+ function getCookies(name) {
31
+ if (typeof document === "undefined") return void 0;
32
+ const value = `; ${document.cookie}`;
33
+ const parts = value.split(`; ${name}=`);
34
+ if (parts.length === 2) return parts.pop()?.split(";").shift();
35
+ }
36
+ function generateHeaders(config) {
37
+ const headers = {
38
+ "Content-Type": "application/json"
39
+ };
40
+ if (config.token) {
41
+ headers["Authorization"] = `Bearer ${config.token}`;
42
+ }
43
+ if (config.headers) {
44
+ Object.entries(config.headers).forEach(([key, value]) => {
45
+ headers[key] = value;
46
+ });
47
+ }
48
+ return headers;
49
+ }
50
+ function isTextContent(buffer) {
51
+ try {
52
+ const text = new TextDecoder().decode(buffer);
53
+ return /^[\w\#\-\*]/.test(text.trim());
54
+ } catch {
55
+ return false;
56
+ }
57
+ }
58
+ function getQueryParam(param) {
59
+ if (typeof window !== "undefined") {
60
+ const urlParams = new URLSearchParams(window.location.search);
61
+ return urlParams.get(param);
62
+ }
63
+ return null;
64
+ }
65
+ function defineAssistantId(defaultId) {
66
+ if (typeof window !== "undefined" && window.location.pathname === "/") {
67
+ const queryAssistantId = getQueryParam("talkwith");
68
+ if (queryAssistantId) {
69
+ localStorage.setItem("assistantId", queryAssistantId);
70
+ return queryAssistantId;
71
+ }
72
+ const storedAssistantId = localStorage.getItem("assistantId");
73
+ return storedAssistantId || defaultId;
74
+ }
75
+ return defaultId;
76
+ }
77
+ function formatTimeWithUnit(timeMs) {
78
+ if (timeMs >= 1e3) {
79
+ return `${(timeMs / 1e3).toFixed(1)}s`;
80
+ }
81
+ return `${Math.round(timeMs)}ms`;
82
+ }
83
+ function serializeAxiosError(error) {
84
+ if (error instanceof Error) {
85
+ const customError = error;
86
+ return {
87
+ message: customError?.message,
88
+ name: customError?.name,
89
+ stack: customError?.stack,
90
+ code: customError?.code,
91
+ status: customError?.status
92
+ };
93
+ }
94
+ return {
95
+ message: String(error),
96
+ name: "Unknown Error"
97
+ };
98
+ }
99
+ function parseConversationsMapCookie(cookieValue) {
100
+ try {
101
+ const decodedValue = decodeURIComponent(cookieValue);
102
+ return JSON.parse(decodedValue);
103
+ } catch (e) {
104
+ console.error("Error parsing conversations cookie:", e);
105
+ return {};
106
+ }
107
+ }
108
+ function getTopicSessionId(topicId) {
109
+ const conversationsStr = getCookies("alquimia-sessions") || "{}";
110
+ if (!conversationsStr) {
111
+ const sessionCookie = getCookies("alquimia-session");
112
+ return sessionCookie || "";
113
+ }
114
+ const conversationsMap = parseConversationsMapCookie(conversationsStr);
115
+ return conversationsMap[topicId] || "";
116
+ }
117
+ function createMessageId() {
118
+ return Math.floor(Math.random() * 1e6).toString();
119
+ }
120
+ export {
121
+ createMessageId,
122
+ defineAssistantId,
123
+ formatTimeWithUnit,
124
+ generateHeaders,
125
+ generateTranslatePrompt,
126
+ getCookies,
127
+ getQueryParam,
128
+ getTopicSessionId,
129
+ isTextContent,
130
+ parseConversationsMapCookie,
131
+ serializeAxiosError
132
+ };
133
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["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"],"mappings":"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","names":[]}