@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,73 @@
1
+ "use strict";
2
+ /**
3
+ * Error Mapper Utility
4
+ * Utilities for handling and mapping errors
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getUserFriendlyError = getUserFriendlyError;
8
+ exports.isRetryableError = isRetryableError;
9
+ exports.isAuthError = isAuthError;
10
+ exports.formatErrorForLogging = formatErrorForLogging;
11
+ const error_types_1 = require("../../domain/entities/error.types");
12
+ /**
13
+ * Get user-friendly error message
14
+ */
15
+ function getUserFriendlyError(error) {
16
+ if (error instanceof error_types_1.GroqError) {
17
+ switch (error.type) {
18
+ case error_types_1.GroqErrorType.INVALID_API_KEY:
19
+ return "Invalid API key. Please check your Groq API credentials.";
20
+ case error_types_1.GroqErrorType.MISSING_CONFIG:
21
+ return "Configuration missing. Please initialize the Groq provider.";
22
+ case error_types_1.GroqErrorType.NETWORK_ERROR:
23
+ return "Network error. Please check your internet connection.";
24
+ case error_types_1.GroqErrorType.ABORT_ERROR:
25
+ return "Request was cancelled.";
26
+ case error_types_1.GroqErrorType.RATE_LIMIT_ERROR:
27
+ return "Rate limit exceeded. Please wait a moment and try again.";
28
+ case error_types_1.GroqErrorType.QUOTA_EXCEEDED:
29
+ return "API quota exceeded. Please check your Groq account.";
30
+ case error_types_1.GroqErrorType.SERVER_ERROR:
31
+ return "Groq server error. Please try again later.";
32
+ default:
33
+ return error.message || "An unknown error occurred.";
34
+ }
35
+ }
36
+ if (error instanceof Error) {
37
+ return error.message;
38
+ }
39
+ return "An unknown error occurred.";
40
+ }
41
+ /**
42
+ * Check if error is retryable
43
+ */
44
+ function isRetryableError(error) {
45
+ if (error instanceof error_types_1.GroqError) {
46
+ return (error.type === error_types_1.GroqErrorType.RATE_LIMIT_ERROR ||
47
+ error.type === error_types_1.GroqErrorType.SERVER_ERROR ||
48
+ error.type === error_types_1.GroqErrorType.NETWORK_ERROR);
49
+ }
50
+ return false;
51
+ }
52
+ /**
53
+ * Check if error is authentication related
54
+ */
55
+ function isAuthError(error) {
56
+ if (error instanceof error_types_1.GroqError) {
57
+ return error.type === error_types_1.GroqErrorType.INVALID_API_KEY;
58
+ }
59
+ return false;
60
+ }
61
+ /**
62
+ * Format error for logging
63
+ */
64
+ function formatErrorForLogging(error) {
65
+ if (error instanceof error_types_1.GroqError) {
66
+ return `[GroqError:${error.type}] ${error.message}`;
67
+ }
68
+ if (error instanceof Error) {
69
+ return `[${error.name}] ${error.message}`;
70
+ }
71
+ return String(error);
72
+ }
73
+ //# sourceMappingURL=error-mapper.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.util.js","sourceRoot":"","sources":["../../../src/infrastructure/utils/error-mapper.util.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,oDA2BC;AAKD,4CASC;AAKD,kCAKC;AAKD,sDAUC;AAvED,mEAA6E;AAE7E;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAc;IACjD,IAAI,KAAK,YAAY,uBAAS,EAAE,CAAC;QAC/B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,2BAAa,CAAC,eAAe;gBAChC,OAAO,0DAA0D,CAAC;YACpE,KAAK,2BAAa,CAAC,cAAc;gBAC/B,OAAO,6DAA6D,CAAC;YACvE,KAAK,2BAAa,CAAC,aAAa;gBAC9B,OAAO,uDAAuD,CAAC;YACjE,KAAK,2BAAa,CAAC,WAAW;gBAC5B,OAAO,wBAAwB,CAAC;YAClC,KAAK,2BAAa,CAAC,gBAAgB;gBACjC,OAAO,0DAA0D,CAAC;YACpE,KAAK,2BAAa,CAAC,cAAc;gBAC/B,OAAO,qDAAqD,CAAC;YAC/D,KAAK,2BAAa,CAAC,YAAY;gBAC7B,OAAO,4CAA4C,CAAC;YACtD;gBACE,OAAO,KAAK,CAAC,OAAO,IAAI,4BAA4B,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,uBAAS,EAAE,CAAC;QAC/B,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,2BAAa,CAAC,gBAAgB;YAC7C,KAAK,CAAC,IAAI,KAAK,2BAAa,CAAC,YAAY;YACzC,KAAK,CAAC,IAAI,KAAK,2BAAa,CAAC,aAAa,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,uBAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,KAAK,2BAAa,CAAC,eAAe,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,YAAY,uBAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Infrastructure Utilities
3
+ */
4
+ export * from "./content-mapper.util";
5
+ export * from "./error-mapper.util";
6
+ export * from "./async";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Infrastructure Utilities
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./content-mapper.util"), exports);
21
+ __exportStar(require("./error-mapper.util"), exports);
22
+ __exportStar(require("./async"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,wDAAsC;AACtC,sDAAoC;AACpC,0CAAwB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * useGroq Hook
3
+ * Main React hook for Groq text generation
4
+ */
5
+ import type { GroqGenerationConfig } from "../../domain/entities";
6
+ export interface UseGroqOptions {
7
+ /** Initial model to use */
8
+ model?: string;
9
+ /** Default generation config */
10
+ generationConfig?: GroqGenerationConfig;
11
+ /** Callback when generation starts */
12
+ onStart?: () => void;
13
+ /** Callback when generation completes */
14
+ onSuccess?: (result: string) => void;
15
+ /** Callback when generation fails */
16
+ onError?: (error: string) => void;
17
+ }
18
+ export interface UseGroqReturn {
19
+ /** Loading state */
20
+ isLoading: boolean;
21
+ /** Error message */
22
+ error: string | null;
23
+ /** Generated result */
24
+ result: string | null;
25
+ /** Generate text from a prompt */
26
+ generate: (prompt: string, options?: GroqGenerationConfig) => Promise<string>;
27
+ /** Generate structured JSON output */
28
+ generateJSON: <T = Record<string, unknown>>(prompt: string, options?: GroqGenerationConfig & {
29
+ schema?: Record<string, unknown>;
30
+ }) => Promise<T>;
31
+ /** Stream text generation */
32
+ stream: (prompt: string, onChunk: (chunk: string) => void, options?: GroqGenerationConfig) => Promise<void>;
33
+ /** Reset state */
34
+ reset: () => void;
35
+ /** Clear error */
36
+ clearError: () => void;
37
+ }
38
+ /**
39
+ * Hook for Groq text generation
40
+ */
41
+ export declare function useGroq(options?: UseGroqOptions): UseGroqReturn;
42
+ //# sourceMappingURL=useGroq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGroq.d.ts","sourceRoot":"","sources":["../../../src/presentation/hooks/useGroq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,uBAAuB,CAAC;AASlF,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uBAAuB;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kCAAkC;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,sCAAsC;IACtC,YAAY,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAClE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChB,6BAA6B;IAC7B,MAAM,EAAE,CACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kBAAkB;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAsKnE"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * useGroq Hook
4
+ * Main React hook for Groq text generation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.useGroq = useGroq;
8
+ const react_1 = require("react");
9
+ const TextGeneration_1 = require("../../infrastructure/services/TextGeneration");
10
+ const StructuredText_1 = require("../../infrastructure/services/StructuredText");
11
+ const Streaming_1 = require("../../infrastructure/services/Streaming");
12
+ const error_mapper_util_1 = require("../../infrastructure/utils/error-mapper.util");
13
+ const telemetry_1 = require("../../infrastructure/telemetry");
14
+ /**
15
+ * Hook for Groq text generation
16
+ */
17
+ function useGroq(options = {}) {
18
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
19
+ const [error, setError] = (0, react_1.useState)(null);
20
+ const [result, setResult] = (0, react_1.useState)(null);
21
+ const abortControllerRef = (0, react_1.useRef)(null);
22
+ const generate = (0, react_1.useCallback)(async (prompt, config) => {
23
+ // Cancel any ongoing request
24
+ if (abortControllerRef.current) {
25
+ abortControllerRef.current.abort();
26
+ }
27
+ abortControllerRef.current = new AbortController();
28
+ setIsLoading(true);
29
+ setError(null);
30
+ setResult(null);
31
+ telemetry_1.telemetry.log("groq_generate_start", { prompt: prompt.substring(0, 100) });
32
+ options.onStart?.();
33
+ try {
34
+ const response = await (0, TextGeneration_1.textGeneration)(prompt, {
35
+ model: options.model,
36
+ generationConfig: { ...options.generationConfig, ...config },
37
+ });
38
+ setResult(response);
39
+ options.onSuccess?.(response);
40
+ telemetry_1.telemetry.log("groq_generate_success", { responseLength: response.length });
41
+ return response;
42
+ }
43
+ catch (err) {
44
+ const errorMessage = (0, error_mapper_util_1.getUserFriendlyError)(err);
45
+ setError(errorMessage);
46
+ options.onError?.(errorMessage);
47
+ telemetry_1.telemetry.log("groq_generate_error", { error: errorMessage });
48
+ throw err;
49
+ }
50
+ finally {
51
+ setIsLoading(false);
52
+ abortControllerRef.current = null;
53
+ }
54
+ }, [options]);
55
+ const generateJSON = (0, react_1.useCallback)(async (prompt, config) => {
56
+ // Cancel any ongoing request
57
+ if (abortControllerRef.current) {
58
+ abortControllerRef.current.abort();
59
+ }
60
+ abortControllerRef.current = new AbortController();
61
+ setIsLoading(true);
62
+ setError(null);
63
+ setResult(null);
64
+ telemetry_1.telemetry.log("groq_generate_json_start", { prompt: prompt.substring(0, 100) });
65
+ options.onStart?.();
66
+ try {
67
+ const response = await (0, StructuredText_1.structuredText)(prompt, {
68
+ model: options.model,
69
+ generationConfig: { ...options.generationConfig, ...config },
70
+ schema: config?.schema,
71
+ });
72
+ setResult(JSON.stringify(response, null, 2));
73
+ options.onSuccess?.(JSON.stringify(response, null, 2));
74
+ telemetry_1.telemetry.log("groq_generate_json_success");
75
+ return response;
76
+ }
77
+ catch (err) {
78
+ const errorMessage = (0, error_mapper_util_1.getUserFriendlyError)(err);
79
+ setError(errorMessage);
80
+ options.onError?.(errorMessage);
81
+ telemetry_1.telemetry.log("groq_generate_json_error", { error: errorMessage });
82
+ throw err;
83
+ }
84
+ finally {
85
+ setIsLoading(false);
86
+ abortControllerRef.current = null;
87
+ }
88
+ }, [options]);
89
+ const stream = (0, react_1.useCallback)(async (prompt, onChunk, config) => {
90
+ // Cancel any ongoing request
91
+ if (abortControllerRef.current) {
92
+ abortControllerRef.current.abort();
93
+ }
94
+ abortControllerRef.current = new AbortController();
95
+ setIsLoading(true);
96
+ setError(null);
97
+ setResult(null);
98
+ let fullContent = "";
99
+ telemetry_1.telemetry.log("groq_stream_start", { prompt: prompt.substring(0, 100) });
100
+ options.onStart?.();
101
+ try {
102
+ for await (const chunk of (0, Streaming_1.streaming)(prompt, {
103
+ model: options.model,
104
+ generationConfig: { ...options.generationConfig, ...config },
105
+ callbacks: {
106
+ onChunk: (c) => {
107
+ fullContent += c;
108
+ onChunk(c);
109
+ },
110
+ },
111
+ })) {
112
+ // Streamed via callback
113
+ }
114
+ setResult(fullContent);
115
+ options.onSuccess?.(fullContent);
116
+ telemetry_1.telemetry.log("groq_stream_success", { contentLength: fullContent.length });
117
+ }
118
+ catch (err) {
119
+ const errorMessage = (0, error_mapper_util_1.getUserFriendlyError)(err);
120
+ setError(errorMessage);
121
+ options.onError?.(errorMessage);
122
+ telemetry_1.telemetry.log("groq_stream_error", { error: errorMessage });
123
+ throw err;
124
+ }
125
+ finally {
126
+ setIsLoading(false);
127
+ abortControllerRef.current = null;
128
+ }
129
+ }, [options]);
130
+ const reset = (0, react_1.useCallback)(() => {
131
+ if (abortControllerRef.current) {
132
+ abortControllerRef.current.abort();
133
+ abortControllerRef.current = null;
134
+ }
135
+ setIsLoading(false);
136
+ setError(null);
137
+ setResult(null);
138
+ }, []);
139
+ const clearError = (0, react_1.useCallback)(() => {
140
+ setError(null);
141
+ }, []);
142
+ return {
143
+ isLoading,
144
+ error,
145
+ result,
146
+ generate,
147
+ generateJSON,
148
+ stream,
149
+ reset,
150
+ clearError,
151
+ };
152
+ }
153
+ //# sourceMappingURL=useGroq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGroq.js","sourceRoot":"","sources":["../../../src/presentation/hooks/useGroq.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * useOperationManager Hook
3
+ * Manages async operations with loading, error, and success states
4
+ */
5
+ export interface OperationState<T> {
6
+ isLoading: boolean;
7
+ error: string | null;
8
+ data: T | null;
9
+ }
10
+ export interface UseOperationManagerOptions<T> {
11
+ /** Initial data */
12
+ initialData?: T | null;
13
+ /** Callback when operation starts */
14
+ onStart?: () => void;
15
+ /** Callback when operation succeeds */
16
+ onSuccess?: (data: T) => void;
17
+ /** Callback when operation fails */
18
+ onError?: (error: string) => void;
19
+ }
20
+ /**
21
+ * Hook for managing async operations
22
+ */
23
+ export declare function useOperationManager<T = unknown>(options?: UseOperationManagerOptions<T>): {
24
+ execute: <R = T>(operationName: string, asyncFn: (signal?: AbortSignal) => Promise<R>, config?: {
25
+ abortPrevious?: boolean;
26
+ }) => Promise<R>;
27
+ reset: () => void;
28
+ clearError: () => void;
29
+ setData: (data: T | null) => void;
30
+ isLoading: boolean;
31
+ error: string | null;
32
+ data: T;
33
+ };
34
+ //# sourceMappingURL=useOperationManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOperationManager.d.ts","sourceRoot":"","sources":["../../../src/presentation/hooks/useOperationManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,mBAAmB;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAC7C,OAAO,GAAE,0BAA0B,CAAC,CAAC,CAAM;cAYlC,CAAC,qBACS,MAAM,WACZ,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,WACpC;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,KACnC,OAAO,CAAC,CAAC,CAAC;;;oBAoDoB,CAAC,GAAG,IAAI;eAxFhC,OAAO;WACX,MAAM,GAAG,IAAI;;EAkGrB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * useOperationManager Hook
4
+ * Manages async operations with loading, error, and success states
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.useOperationManager = useOperationManager;
8
+ const react_1 = require("react");
9
+ const error_mapper_util_1 = require("../../infrastructure/utils/error-mapper.util");
10
+ const telemetry_1 = require("../../infrastructure/telemetry");
11
+ /**
12
+ * Hook for managing async operations
13
+ */
14
+ function useOperationManager(options = {}) {
15
+ const [state, setState] = (0, react_1.useState)({
16
+ isLoading: false,
17
+ error: null,
18
+ data: options.initialData ?? null,
19
+ });
20
+ const abortControllerRef = (0, react_1.useRef)(null);
21
+ const operationNameRef = (0, react_1.useRef)("");
22
+ const execute = (0, react_1.useCallback)(async (operationName, asyncFn, config) => {
23
+ // Cancel previous operation if configured
24
+ if (config?.abortPrevious && abortControllerRef.current) {
25
+ abortControllerRef.current.abort();
26
+ }
27
+ abortControllerRef.current = new AbortController();
28
+ operationNameRef.current = operationName;
29
+ setState((prev) => ({ ...prev, isLoading: true, error: null }));
30
+ telemetry_1.telemetry.log(`${operationName}_start`);
31
+ options.onStart?.();
32
+ try {
33
+ const result = await asyncFn(abortControllerRef.current.signal);
34
+ setState((prev) => ({ ...prev, isLoading: false, data: result }));
35
+ options.onSuccess?.(result);
36
+ telemetry_1.telemetry.log(`${operationName}_success`);
37
+ return result;
38
+ }
39
+ catch (error) {
40
+ const errorMessage = (0, error_mapper_util_1.getUserFriendlyError)(error);
41
+ setState((prev) => ({ ...prev, isLoading: false, error: errorMessage }));
42
+ options.onError?.(errorMessage);
43
+ telemetry_1.telemetry.log(`${operationName}_error`, { error: errorMessage });
44
+ throw error;
45
+ }
46
+ finally {
47
+ abortControllerRef.current = null;
48
+ }
49
+ }, [options]);
50
+ const reset = (0, react_1.useCallback)(() => {
51
+ if (abortControllerRef.current) {
52
+ abortControllerRef.current.abort();
53
+ abortControllerRef.current = null;
54
+ }
55
+ setState((prev) => ({
56
+ ...prev,
57
+ isLoading: false,
58
+ error: null,
59
+ data: options.initialData ?? null,
60
+ }));
61
+ }, [options.initialData]);
62
+ const clearError = (0, react_1.useCallback)(() => {
63
+ setState((prev) => ({ ...prev, error: null }));
64
+ }, []);
65
+ const setData = (0, react_1.useCallback)((data) => {
66
+ setState((prev) => ({ ...prev, data }));
67
+ }, []);
68
+ return {
69
+ ...state,
70
+ execute,
71
+ reset,
72
+ clearError,
73
+ setData,
74
+ };
75
+ }
76
+ //# sourceMappingURL=useOperationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOperationManager.js","sourceRoot":"","sources":["../../../src/presentation/hooks/useOperationManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Configuration Builder
3
+ * Builder pattern for Groq configuration
4
+ */
5
+ import type { GroqConfig, GroqGenerationConfig } from "../domain/entities";
6
+ /**
7
+ * Builder for Groq configuration
8
+ */
9
+ export declare class ConfigBuilder {
10
+ private config;
11
+ /**
12
+ * Set API key
13
+ */
14
+ withApiKey(apiKey: string): ConfigBuilder;
15
+ /**
16
+ * Set base URL
17
+ */
18
+ withBaseUrl(baseUrl: string): ConfigBuilder;
19
+ /**
20
+ * Set timeout
21
+ */
22
+ withTimeout(timeoutMs: number): ConfigBuilder;
23
+ /**
24
+ * Set default text model
25
+ */
26
+ withTextModel(model: string): ConfigBuilder;
27
+ /**
28
+ * Build configuration
29
+ */
30
+ build(): GroqConfig;
31
+ /**
32
+ * Create a new builder instance
33
+ */
34
+ static create(): ConfigBuilder;
35
+ }
36
+ /**
37
+ * Builder for generation configuration
38
+ */
39
+ export declare class GenerationConfigBuilder {
40
+ private config;
41
+ /**
42
+ * Set temperature
43
+ */
44
+ withTemperature(temperature: number): GenerationConfigBuilder;
45
+ /**
46
+ * Set max tokens
47
+ */
48
+ withMaxTokens(maxTokens: number): GenerationConfigBuilder;
49
+ /**
50
+ * Set top P
51
+ */
52
+ withTopP(topP: number): GenerationConfigBuilder;
53
+ /**
54
+ * Set frequency penalty
55
+ */
56
+ withFrequencyPenalty(penalty: number): GenerationConfigBuilder;
57
+ /**
58
+ * Set presence penalty
59
+ */
60
+ withPresencePenalty(penalty: number): GenerationConfigBuilder;
61
+ /**
62
+ * Set stop sequences
63
+ */
64
+ withStop(stop: string[]): GenerationConfigBuilder;
65
+ /**
66
+ * Build configuration
67
+ */
68
+ build(): GroqGenerationConfig;
69
+ /**
70
+ * Create a new builder instance
71
+ */
72
+ static create(): GenerationConfigBuilder;
73
+ /**
74
+ * Create a balanced configuration
75
+ */
76
+ static balanced(): GenerationConfigBuilder;
77
+ /**
78
+ * Create a creative configuration
79
+ */
80
+ static creative(): GenerationConfigBuilder;
81
+ /**
82
+ * Create a precise configuration
83
+ */
84
+ static precise(): GenerationConfigBuilder;
85
+ }
86
+ //# sourceMappingURL=ConfigBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/providers/ConfigBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG3E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA2B;IAEzC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAKzC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAK3C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAK7C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAK3C;;OAEG;IACH,KAAK,IAAI,UAAU;IAanB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,aAAa;CAG/B;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAA4B;IAE1C;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAK7D;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB;IAKzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB;IAK/C;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;IAK9D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;IAK7D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB;IAKjD;;OAEG;IACH,KAAK,IAAI,oBAAoB;IAI7B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,uBAAuB;IAIxC;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,uBAAuB;IAI1C;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,uBAAuB;IAI1C;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,uBAAuB;CAG1C"}