@umituz/react-native-ai-groq-provider 1.0.3 → 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 (96) hide show
  1. package/dist/domain/entities/error.types.d.ts +34 -0
  2. package/dist/domain/entities/error.types.d.ts.map +1 -0
  3. package/dist/domain/entities/error.types.js +57 -0
  4. package/dist/domain/entities/error.types.js.map +1 -0
  5. package/dist/domain/entities/groq.types.d.ts +222 -0
  6. package/dist/domain/entities/groq.types.d.ts.map +1 -0
  7. package/dist/domain/entities/groq.types.js +37 -0
  8. package/dist/domain/entities/groq.types.js.map +1 -0
  9. package/dist/domain/entities/index.d.ts +7 -0
  10. package/dist/domain/entities/index.d.ts.map +1 -0
  11. package/dist/domain/entities/index.js +23 -0
  12. package/dist/domain/entities/index.js.map +1 -0
  13. package/dist/domain/entities/models.d.ts +50 -0
  14. package/dist/domain/entities/models.d.ts.map +1 -0
  15. package/dist/domain/entities/models.js +178 -0
  16. package/dist/domain/entities/models.js.map +1 -0
  17. package/dist/index.d.ts +27 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +73 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/infrastructure/services/ChatSession.d.ts +95 -0
  22. package/dist/infrastructure/services/ChatSession.d.ts.map +1 -0
  23. package/dist/infrastructure/services/ChatSession.js +177 -0
  24. package/dist/infrastructure/services/ChatSession.js.map +1 -0
  25. package/dist/infrastructure/services/GroqClient.d.ts +52 -0
  26. package/dist/infrastructure/services/GroqClient.d.ts.map +1 -0
  27. package/dist/infrastructure/services/GroqClient.js +258 -0
  28. package/dist/infrastructure/services/GroqClient.js.map +1 -0
  29. package/dist/infrastructure/services/Streaming.d.ts +27 -0
  30. package/dist/infrastructure/services/Streaming.d.ts.map +1 -0
  31. package/dist/infrastructure/services/Streaming.js +84 -0
  32. package/dist/infrastructure/services/Streaming.js.map +1 -0
  33. package/dist/infrastructure/services/StructuredText.d.ts +20 -0
  34. package/dist/infrastructure/services/StructuredText.d.ts.map +1 -0
  35. package/dist/infrastructure/services/StructuredText.js +204 -0
  36. package/dist/infrastructure/services/StructuredText.js.map +1 -0
  37. package/dist/infrastructure/services/TextGeneration.d.ts +18 -0
  38. package/dist/infrastructure/services/TextGeneration.d.ts.map +1 -0
  39. package/dist/infrastructure/services/TextGeneration.js +127 -0
  40. package/dist/infrastructure/services/TextGeneration.js.map +1 -0
  41. package/dist/infrastructure/services/index.d.ts +9 -0
  42. package/dist/infrastructure/services/index.d.ts.map +1 -0
  43. package/dist/infrastructure/services/index.js +24 -0
  44. package/dist/infrastructure/services/index.js.map +1 -0
  45. package/dist/infrastructure/telemetry/TelemetryHooks.d.ts +48 -0
  46. package/dist/infrastructure/telemetry/TelemetryHooks.d.ts.map +1 -0
  47. package/dist/infrastructure/telemetry/TelemetryHooks.js +70 -0
  48. package/dist/infrastructure/telemetry/TelemetryHooks.js.map +1 -0
  49. package/dist/infrastructure/telemetry/index.d.ts +5 -0
  50. package/dist/infrastructure/telemetry/index.d.ts.map +1 -0
  51. package/dist/infrastructure/telemetry/index.js +10 -0
  52. package/dist/infrastructure/telemetry/index.js.map +1 -0
  53. package/dist/infrastructure/utils/async/execute-state.util.d.ts +27 -0
  54. package/dist/infrastructure/utils/async/execute-state.util.d.ts.map +1 -0
  55. package/dist/infrastructure/utils/async/execute-state.util.js +50 -0
  56. package/dist/infrastructure/utils/async/execute-state.util.js.map +1 -0
  57. package/dist/infrastructure/utils/async/index.d.ts +6 -0
  58. package/dist/infrastructure/utils/async/index.d.ts.map +1 -0
  59. package/dist/infrastructure/utils/async/index.js +10 -0
  60. package/dist/infrastructure/utils/async/index.js.map +1 -0
  61. package/dist/infrastructure/utils/content-mapper.util.d.ts +34 -0
  62. package/dist/infrastructure/utils/content-mapper.util.d.ts.map +1 -0
  63. package/dist/infrastructure/utils/content-mapper.util.js +84 -0
  64. package/dist/infrastructure/utils/content-mapper.util.js.map +1 -0
  65. package/dist/infrastructure/utils/error-mapper.util.d.ts +21 -0
  66. package/dist/infrastructure/utils/error-mapper.util.d.ts.map +1 -0
  67. package/dist/infrastructure/utils/error-mapper.util.js +73 -0
  68. package/dist/infrastructure/utils/error-mapper.util.js.map +1 -0
  69. package/dist/infrastructure/utils/index.d.ts +7 -0
  70. package/dist/infrastructure/utils/index.d.ts.map +1 -0
  71. package/dist/infrastructure/utils/index.js +23 -0
  72. package/dist/infrastructure/utils/index.js.map +1 -0
  73. package/dist/presentation/hooks/useGroq.d.ts +42 -0
  74. package/dist/presentation/hooks/useGroq.d.ts.map +1 -0
  75. package/dist/presentation/hooks/useGroq.js +153 -0
  76. package/dist/presentation/hooks/useGroq.js.map +1 -0
  77. package/dist/presentation/hooks/useOperationManager.d.ts +34 -0
  78. package/dist/presentation/hooks/useOperationManager.d.ts.map +1 -0
  79. package/dist/presentation/hooks/useOperationManager.js +76 -0
  80. package/dist/presentation/hooks/useOperationManager.js.map +1 -0
  81. package/dist/providers/ConfigBuilder.d.ts +86 -0
  82. package/dist/providers/ConfigBuilder.d.ts.map +1 -0
  83. package/dist/providers/ConfigBuilder.js +147 -0
  84. package/dist/providers/ConfigBuilder.js.map +1 -0
  85. package/dist/providers/ProviderFactory.d.ts +56 -0
  86. package/dist/providers/ProviderFactory.d.ts.map +1 -0
  87. package/dist/providers/ProviderFactory.js +75 -0
  88. package/dist/providers/ProviderFactory.js.map +1 -0
  89. package/dist/providers/index.d.ts +7 -0
  90. package/dist/providers/index.d.ts.map +1 -0
  91. package/dist/providers/index.js +15 -0
  92. package/dist/providers/index.js.map +1 -0
  93. package/package.json +1 -1
  94. package/src/infrastructure/services/GroqClient.ts +61 -1
  95. package/src/infrastructure/services/StructuredText.ts +94 -1
  96. package/src/infrastructure/services/TextGeneration.ts +70 -0
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ /**
3
+ * Groq HTTP Client
4
+ * Handles all HTTP communication with Groq API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.groqHttpClient = void 0;
8
+ const error_types_1 = require("../../domain/entities/error.types");
9
+ const DEFAULT_BASE_URL = "https://api.groq.com/openai/v1";
10
+ const DEFAULT_TIMEOUT = 60000; // 60 seconds
11
+ const CHAT_COMPLETIONS_ENDPOINT = "/chat/completions";
12
+ class GroqHttpClient {
13
+ constructor() {
14
+ this.config = null;
15
+ this.initialized = false;
16
+ }
17
+ /**
18
+ * Initialize the client with configuration
19
+ */
20
+ initialize(config) {
21
+ const apiKey = config.apiKey?.trim();
22
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
23
+ console.log("[GroqClient] Initializing:", {
24
+ hasApiKey: !!apiKey,
25
+ keyLength: apiKey?.length,
26
+ keyPrefix: apiKey ? apiKey.substring(0, 10) + "..." : "",
27
+ baseUrl: config.baseUrl || DEFAULT_BASE_URL,
28
+ timeoutMs: config.timeoutMs || DEFAULT_TIMEOUT,
29
+ textModel: config.textModel,
30
+ });
31
+ }
32
+ if (!apiKey || apiKey.length < 10) {
33
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.INVALID_API_KEY, "API key is required and must be at least 10 characters");
34
+ }
35
+ this.config = {
36
+ apiKey,
37
+ baseUrl: config.baseUrl || DEFAULT_BASE_URL,
38
+ timeoutMs: config.timeoutMs || DEFAULT_TIMEOUT,
39
+ textModel: config.textModel,
40
+ };
41
+ this.initialized = true;
42
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
43
+ console.log("[GroqClient] Initialization complete:", {
44
+ initialized: this.initialized,
45
+ baseUrl: this.config.baseUrl,
46
+ });
47
+ }
48
+ }
49
+ /**
50
+ * Check if client is initialized
51
+ */
52
+ isInitialized() {
53
+ return this.initialized && this.config !== null;
54
+ }
55
+ /**
56
+ * Get current configuration
57
+ */
58
+ getConfig() {
59
+ if (!this.config || !this.initialized) {
60
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, "Client not initialized. Call initialize() first.");
61
+ }
62
+ return this.config;
63
+ }
64
+ /**
65
+ * Make an HTTP request to Groq API
66
+ */
67
+ async request(endpoint, body, signal) {
68
+ if (!this.config || !this.initialized) {
69
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, "Client not initialized. Call initialize() first.");
70
+ }
71
+ const url = `${this.config.baseUrl}${endpoint}`;
72
+ const timeout = this.config.timeoutMs || DEFAULT_TIMEOUT;
73
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
74
+ console.log("[GroqClient] API Request:", {
75
+ url,
76
+ endpoint,
77
+ method: "POST",
78
+ timeout: `${timeout}ms`,
79
+ hasBody: !!body,
80
+ bodyKeys: body ? Object.keys(body) : [],
81
+ });
82
+ }
83
+ try {
84
+ // Create AbortController for timeout
85
+ const controller = new AbortController();
86
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
87
+ // Use provided signal if available
88
+ if (signal) {
89
+ signal.addEventListener("abort", () => controller.abort());
90
+ }
91
+ const fetchStartTime = Date.now();
92
+ const response = await fetch(url, {
93
+ method: "POST",
94
+ headers: {
95
+ "Content-Type": "application/json",
96
+ "Authorization": `Bearer ${this.config.apiKey}`,
97
+ },
98
+ body: JSON.stringify(body),
99
+ signal: controller.signal,
100
+ });
101
+ const fetchDuration = Date.now() - fetchStartTime;
102
+ clearTimeout(timeoutId);
103
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
104
+ console.log("[GroqClient] API Response:", {
105
+ status: response.status,
106
+ ok: response.ok,
107
+ fetchDuration: `${fetchDuration}ms`,
108
+ contentType: response.headers.get("content-type"),
109
+ });
110
+ }
111
+ if (!response.ok) {
112
+ await this.handleErrorResponse(response);
113
+ }
114
+ const jsonStart = Date.now();
115
+ const jsonData = (await response.json());
116
+ const parseDuration = Date.now() - jsonStart;
117
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
118
+ console.log("[GroqClient] JSON parsed:", {
119
+ parseDuration: `${parseDuration}ms`,
120
+ hasData: !!jsonData,
121
+ dataKeys: jsonData ? Object.keys(jsonData) : [],
122
+ });
123
+ }
124
+ return jsonData;
125
+ }
126
+ catch (error) {
127
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
128
+ console.error("[GroqClient] Request error:", {
129
+ error,
130
+ errorMessage: error instanceof Error ? error.message : String(error),
131
+ errorName: error instanceof Error ? error.name : undefined,
132
+ });
133
+ }
134
+ throw this.handleRequestError(error);
135
+ }
136
+ }
137
+ /**
138
+ * Handle HTTP error responses
139
+ */
140
+ async handleErrorResponse(response) {
141
+ let errorMessage = `HTTP ${response.status}`;
142
+ let errorType = (0, error_types_1.mapHttpStatusToErrorType)(response.status);
143
+ try {
144
+ const errorData = (await response.json());
145
+ if (errorData.error?.message) {
146
+ errorMessage = errorData.error.message;
147
+ }
148
+ }
149
+ catch {
150
+ // If parsing fails, use default message
151
+ }
152
+ throw new error_types_1.GroqError(errorType, errorMessage, {
153
+ status: response.status,
154
+ url: response.url,
155
+ });
156
+ }
157
+ /**
158
+ * Handle request errors (network, timeout, abort)
159
+ */
160
+ handleRequestError(error) {
161
+ if (error instanceof error_types_1.GroqError) {
162
+ return error;
163
+ }
164
+ if (error instanceof Error) {
165
+ if (error.name === "AbortError") {
166
+ return new error_types_1.GroqError(error_types_1.GroqErrorType.ABORT_ERROR, "Request was aborted by the client", error);
167
+ }
168
+ if (error.name === "TypeError" && error.message.includes("network")) {
169
+ return new error_types_1.GroqError(error_types_1.GroqErrorType.NETWORK_ERROR, "Network error: Unable to connect to Groq API", error);
170
+ }
171
+ }
172
+ return new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, error instanceof Error ? error.message : "Unknown error occurred", error);
173
+ }
174
+ /**
175
+ * Send chat completion request (non-streaming)
176
+ */
177
+ async chatCompletion(request, signal) {
178
+ return this.request(CHAT_COMPLETIONS_ENDPOINT, { ...request, stream: false }, signal);
179
+ }
180
+ /**
181
+ * Send chat completion request (streaming)
182
+ * Returns an async generator of chunks
183
+ */
184
+ async *chatCompletionStream(request, signal) {
185
+ if (!this.config || !this.initialized) {
186
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, "Client not initialized. Call initialize() first.");
187
+ }
188
+ const url = `${this.config.baseUrl}${CHAT_COMPLETIONS_ENDPOINT}`;
189
+ const timeout = this.config.timeoutMs || DEFAULT_TIMEOUT;
190
+ // Create AbortController for timeout
191
+ const controller = new AbortController();
192
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
193
+ // Use provided signal if available
194
+ if (signal) {
195
+ signal.addEventListener("abort", () => controller.abort());
196
+ }
197
+ try {
198
+ const response = await fetch(url, {
199
+ method: "POST",
200
+ headers: {
201
+ "Content-Type": "application/json",
202
+ "Authorization": `Bearer ${this.config.apiKey}`,
203
+ },
204
+ body: JSON.stringify({ ...request, stream: true }),
205
+ signal: controller.signal,
206
+ });
207
+ clearTimeout(timeoutId);
208
+ if (!response.ok) {
209
+ await this.handleErrorResponse(response);
210
+ }
211
+ if (!response.body) {
212
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.NETWORK_ERROR, "Response body is null");
213
+ }
214
+ // Read and parse Server-Sent Events
215
+ const reader = response.body.getReader();
216
+ const decoder = new TextDecoder();
217
+ let buffer = "";
218
+ while (true) {
219
+ const { done, value } = await reader.read();
220
+ if (done)
221
+ break;
222
+ buffer += decoder.decode(value, { stream: true });
223
+ const lines = buffer.split("\n");
224
+ buffer = lines.pop() || "";
225
+ for (const line of lines) {
226
+ const trimmed = line.trim();
227
+ if (!trimmed || trimmed === "data: [DONE]")
228
+ continue;
229
+ if (trimmed.startsWith("data: ")) {
230
+ const jsonStr = trimmed.slice(6);
231
+ try {
232
+ const chunk = JSON.parse(jsonStr);
233
+ yield chunk;
234
+ }
235
+ catch (error) {
236
+ console.error("Failed to parse SSE chunk:", error);
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ catch (error) {
243
+ throw this.handleRequestError(error);
244
+ }
245
+ }
246
+ /**
247
+ * Reset the client
248
+ */
249
+ reset() {
250
+ this.config = null;
251
+ this.initialized = false;
252
+ }
253
+ }
254
+ /**
255
+ * Singleton instance
256
+ */
257
+ exports.groqHttpClient = new GroqHttpClient();
258
+ //# sourceMappingURL=GroqClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroqClient.js","sourceRoot":"","sources":["../../../src/infrastructure/services/GroqClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Streaming Service
3
+ * Handles streaming responses from Groq API
4
+ */
5
+ import type { GroqMessage, GroqGenerationConfig } from "../../domain/entities";
6
+ export interface StreamingCallbacks {
7
+ /** Called when new content chunk is received */
8
+ onChunk?: (chunk: string) => void;
9
+ /** Called when streaming completes */
10
+ onComplete?: (fullContent: string) => void;
11
+ /** Called when an error occurs */
12
+ onError?: (error: Error) => void;
13
+ }
14
+ export interface StreamingOptions {
15
+ model?: string;
16
+ generationConfig?: GroqGenerationConfig;
17
+ callbacks?: StreamingCallbacks;
18
+ }
19
+ /**
20
+ * Stream text generation from a prompt
21
+ */
22
+ export declare function streaming(prompt: string, options?: StreamingOptions): AsyncGenerator<string>;
23
+ /**
24
+ * Stream chat generation from messages
25
+ */
26
+ export declare function streamingChat(messages: GroqMessage[], options?: StreamingOptions): AsyncGenerator<string>;
27
+ //# sourceMappingURL=Streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/Streaming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAuB,SAAS,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,cAAc,CAAC,MAAM,CAAC,CA+BxB;AAED;;GAEG;AACH,wBAAuB,aAAa,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,gBAAqB,GAC7B,cAAc,CAAC,MAAM,CAAC,CAwBxB"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /**
3
+ * Streaming Service
4
+ * Handles streaming responses from Groq API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.streaming = streaming;
8
+ exports.streamingChat = streamingChat;
9
+ const GroqClient_1 = require("./GroqClient");
10
+ const entities_1 = require("../../domain/entities");
11
+ /**
12
+ * Stream text generation from a prompt
13
+ */
14
+ async function* streaming(prompt, options = {}) {
15
+ const model = options.model || entities_1.DEFAULT_MODELS.TEXT;
16
+ const messages = [
17
+ {
18
+ role: "user",
19
+ content: prompt,
20
+ },
21
+ ];
22
+ const request = {
23
+ model,
24
+ messages,
25
+ temperature: options.generationConfig?.temperature || 0.7,
26
+ max_tokens: options.generationConfig?.maxTokens || 1024,
27
+ top_p: options.generationConfig?.topP,
28
+ };
29
+ try {
30
+ for await (const chunk of GroqClient_1.groqHttpClient.chatCompletionStream(request)) {
31
+ const content = chunk.choices[0]?.delta?.content;
32
+ if (content) {
33
+ options.callbacks?.onChunk?.(content);
34
+ yield content;
35
+ }
36
+ }
37
+ options.callbacks?.onComplete?.(await collectStreamContent(request));
38
+ }
39
+ catch (error) {
40
+ options.callbacks?.onError?.(error);
41
+ throw error;
42
+ }
43
+ }
44
+ /**
45
+ * Stream chat generation from messages
46
+ */
47
+ async function* streamingChat(messages, options = {}) {
48
+ const model = options.model || entities_1.DEFAULT_MODELS.TEXT;
49
+ const request = {
50
+ model,
51
+ messages,
52
+ temperature: options.generationConfig?.temperature || 0.7,
53
+ max_tokens: options.generationConfig?.maxTokens || 1024,
54
+ top_p: options.generationConfig?.topP,
55
+ };
56
+ try {
57
+ for await (const chunk of GroqClient_1.groqHttpClient.chatCompletionStream(request)) {
58
+ const content = chunk.choices[0]?.delta?.content;
59
+ if (content) {
60
+ options.callbacks?.onChunk?.(content);
61
+ yield content;
62
+ }
63
+ }
64
+ options.callbacks?.onComplete?.(await collectStreamContent(request));
65
+ }
66
+ catch (error) {
67
+ options.callbacks?.onError?.(error);
68
+ throw error;
69
+ }
70
+ }
71
+ /**
72
+ * Collect full content from streaming (for onComplete callback)
73
+ */
74
+ async function collectStreamContent(request) {
75
+ let fullContent = "";
76
+ for await (const chunk of GroqClient_1.groqHttpClient.chatCompletionStream(request)) {
77
+ const content = chunk.choices[0]?.delta?.content;
78
+ if (content) {
79
+ fullContent += content;
80
+ }
81
+ }
82
+ return fullContent;
83
+ }
84
+ //# sourceMappingURL=Streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Streaming.js","sourceRoot":"","sources":["../../../src/infrastructure/services/Streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Structured Text Generation Service
3
+ * Generates structured JSON output from Groq API
4
+ */
5
+ import type { GroqMessage, GroqGenerationConfig } from "../../domain/entities";
6
+ export interface StructuredTextOptions<T> {
7
+ model?: string;
8
+ generationConfig?: GroqGenerationConfig;
9
+ schema?: Record<string, unknown>;
10
+ example?: T;
11
+ }
12
+ /**
13
+ * Generate structured JSON output from a prompt
14
+ */
15
+ export declare function structuredText<T = Record<string, unknown>>(prompt: string, options?: StructuredTextOptions<T>): Promise<T>;
16
+ /**
17
+ * Generate structured JSON output from messages
18
+ */
19
+ export declare function structuredChat<T = Record<string, unknown>>(messages: GroqMessage[], options?: StructuredTextOptions<T>): Promise<T>;
20
+ //# sourceMappingURL=StructuredText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructuredText.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/StructuredText.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAAqB,CAAC,CAAC,CAAM,GACrC,OAAO,CAAC,CAAC,CAAC,CAmIZ;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,qBAAqB,CAAC,CAAC,CAAM,GACrC,OAAO,CAAC,CAAC,CAAC,CAiGZ"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ /**
3
+ * Structured Text Generation Service
4
+ * Generates structured JSON output from Groq API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.structuredText = structuredText;
8
+ exports.structuredChat = structuredChat;
9
+ const GroqClient_1 = require("./GroqClient");
10
+ const entities_1 = require("../../domain/entities");
11
+ const error_types_1 = require("../../domain/entities/error.types");
12
+ /**
13
+ * Generate structured JSON output from a prompt
14
+ */
15
+ async function structuredText(prompt, options = {}) {
16
+ const startTime = Date.now();
17
+ const model = options.model || entities_1.DEFAULT_MODELS.TEXT;
18
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
19
+ console.log("[Groq] structuredText called:", {
20
+ model,
21
+ promptLength: prompt.length,
22
+ promptPreview: prompt.substring(0, 150) + "...",
23
+ hasSchema: !!options.schema,
24
+ hasExample: !!options.example,
25
+ generationConfig: options.generationConfig,
26
+ });
27
+ }
28
+ let systemPrompt = "You are a helpful assistant that generates valid JSON output.";
29
+ if (options.schema) {
30
+ systemPrompt += `\n\nResponse must conform to this JSON schema:\n${JSON.stringify(options.schema, null, 2)}`;
31
+ }
32
+ if (options.example) {
33
+ systemPrompt += `\n\nExample response format:\n${JSON.stringify(options.example, null, 2)}`;
34
+ }
35
+ systemPrompt += "\n\nIMPORTANT: Respond ONLY with valid JSON. No markdown, no code blocks, no explanations.";
36
+ const messages = [
37
+ {
38
+ role: "system",
39
+ content: systemPrompt,
40
+ },
41
+ {
42
+ role: "user",
43
+ content: prompt,
44
+ },
45
+ ];
46
+ const request = {
47
+ model,
48
+ messages,
49
+ temperature: options.generationConfig?.temperature || 0.3,
50
+ max_tokens: options.generationConfig?.maxTokens || 2048,
51
+ top_p: options.generationConfig?.topP || 0.9,
52
+ };
53
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
54
+ console.log("[Groq] Sending structured request:", {
55
+ endpoint: "/v1/chat/completions",
56
+ requestBody: {
57
+ model: request.model,
58
+ temperature: request.temperature,
59
+ max_tokens: request.max_tokens,
60
+ top_p: request.top_p,
61
+ },
62
+ });
63
+ }
64
+ const apiStartTime = Date.now();
65
+ const response = await GroqClient_1.groqHttpClient.chatCompletion(request);
66
+ const apiDuration = Date.now() - apiStartTime;
67
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
68
+ console.log("[Groq] Structured API response:", {
69
+ apiDuration: `${apiDuration}ms`,
70
+ usage: response.usage,
71
+ finishReason: response.choices?.[0]?.finish_reason,
72
+ hasContent: !!response.choices?.[0]?.message?.content,
73
+ });
74
+ }
75
+ let content = response.choices[0]?.message?.content;
76
+ if (!content) {
77
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, "No content generated from Groq API");
78
+ }
79
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
80
+ console.log("[Groq] Raw response content:", {
81
+ length: content.length,
82
+ preview: content.substring(0, 300) + "...",
83
+ });
84
+ }
85
+ // Clean up the response: remove markdown code blocks if present
86
+ content = content.trim();
87
+ if (content.startsWith("```json")) {
88
+ content = content.slice(7);
89
+ }
90
+ else if (content.startsWith("```")) {
91
+ content = content.slice(3);
92
+ }
93
+ if (content.endsWith("```")) {
94
+ content = content.slice(0, -3);
95
+ }
96
+ content = content.trim();
97
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
98
+ console.log("[Groq] Attempting JSON parse...");
99
+ }
100
+ try {
101
+ const parsed = JSON.parse(content);
102
+ const totalDuration = Date.now() - startTime;
103
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
104
+ console.log("[Groq] structuredText complete:", {
105
+ totalDuration: `${totalDuration}ms`,
106
+ apiDuration: `${apiDuration}ms`,
107
+ parseDuration: `${totalDuration - apiDuration}ms`,
108
+ parsedKeys: Object.keys(parsed),
109
+ });
110
+ }
111
+ return parsed;
112
+ }
113
+ catch (error) {
114
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
115
+ console.error("[Groq] JSON parse failed:", {
116
+ error,
117
+ contentLength: content.length,
118
+ contentPreview: content.substring(0, 500) + "...",
119
+ });
120
+ }
121
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, `Failed to parse JSON response: ${content}`, error);
122
+ }
123
+ }
124
+ /**
125
+ * Generate structured JSON output from messages
126
+ */
127
+ async function structuredChat(messages, options = {}) {
128
+ const startTime = Date.now();
129
+ const model = options.model || entities_1.DEFAULT_MODELS.TEXT;
130
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
131
+ console.log("[Groq] structuredChat called:", {
132
+ model,
133
+ messageCount: messages.length,
134
+ hasSchema: !!options.schema,
135
+ hasExample: !!options.example,
136
+ });
137
+ }
138
+ let systemMessage = null;
139
+ // Check if there's already a system message
140
+ const hasSystemMessage = messages.some((m) => m.role === "system");
141
+ if (!hasSystemMessage) {
142
+ let systemPrompt = "You are a helpful assistant that generates valid JSON output.";
143
+ if (options.schema) {
144
+ systemPrompt += `\n\nResponse must conform to this JSON schema:\n${JSON.stringify(options.schema, null, 2)}`;
145
+ }
146
+ if (options.example) {
147
+ systemPrompt += `\n\nExample response format:\n${JSON.stringify(options.example, null, 2)}`;
148
+ }
149
+ systemPrompt += "\n\nIMPORTANT: Respond ONLY with valid JSON. No markdown, no code blocks, no explanations.";
150
+ systemMessage = {
151
+ role: "system",
152
+ content: systemPrompt,
153
+ };
154
+ }
155
+ const requestMessages = systemMessage
156
+ ? [systemMessage, ...messages]
157
+ : messages;
158
+ const request = {
159
+ model,
160
+ messages: requestMessages,
161
+ temperature: options.generationConfig?.temperature || 0.3,
162
+ max_tokens: options.generationConfig?.maxTokens || 2048,
163
+ top_p: options.generationConfig?.topP || 0.9,
164
+ };
165
+ const apiStartTime = Date.now();
166
+ const response = await GroqClient_1.groqHttpClient.chatCompletion(request);
167
+ const apiDuration = Date.now() - apiStartTime;
168
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
169
+ console.log("[Groq] structuredChat API response:", {
170
+ apiDuration: `${apiDuration}ms`,
171
+ usage: response.usage,
172
+ });
173
+ }
174
+ let content = response.choices[0]?.message?.content;
175
+ if (!content) {
176
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, "No content generated from Groq API");
177
+ }
178
+ // Clean up the response: remove markdown code blocks if present
179
+ content = content.trim();
180
+ if (content.startsWith("```json")) {
181
+ content = content.slice(7);
182
+ }
183
+ else if (content.startsWith("```")) {
184
+ content = content.slice(3);
185
+ }
186
+ if (content.endsWith("```")) {
187
+ content = content.slice(0, -3);
188
+ }
189
+ content = content.trim();
190
+ const totalDuration = Date.now() - startTime;
191
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
192
+ console.log("[Groq] structuredChat complete:", {
193
+ totalDuration: `${totalDuration}ms`,
194
+ responseLength: content.length,
195
+ });
196
+ }
197
+ try {
198
+ return JSON.parse(content);
199
+ }
200
+ catch (error) {
201
+ throw new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, `Failed to parse JSON response: ${content}`, error);
202
+ }
203
+ }
204
+ //# sourceMappingURL=StructuredText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructuredText.js","sourceRoot":"","sources":["../../../src/infrastructure/services/StructuredText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Text Generation Service
3
+ * Handles basic text generation using Groq API
4
+ */
5
+ import type { GroqMessage, GroqGenerationConfig } from "../../domain/entities";
6
+ export interface TextGenerationOptions {
7
+ model?: string;
8
+ generationConfig?: GroqGenerationConfig;
9
+ }
10
+ /**
11
+ * Generate text from a simple prompt
12
+ */
13
+ export declare function textGeneration(prompt: string, options?: TextGenerationOptions): Promise<string>;
14
+ /**
15
+ * Generate text from an array of messages
16
+ */
17
+ export declare function chatGeneration(messages: GroqMessage[], options?: TextGenerationOptions): Promise<string>;
18
+ //# sourceMappingURL=TextGeneration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextGeneration.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/TextGeneration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,WAAW,EACX,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CA4EjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CAqDjB"}