@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.
- package/dist/domain/entities/error.types.d.ts +34 -0
- package/dist/domain/entities/error.types.d.ts.map +1 -0
- package/dist/domain/entities/error.types.js +57 -0
- package/dist/domain/entities/error.types.js.map +1 -0
- package/dist/domain/entities/groq.types.d.ts +222 -0
- package/dist/domain/entities/groq.types.d.ts.map +1 -0
- package/dist/domain/entities/groq.types.js +37 -0
- package/dist/domain/entities/groq.types.js.map +1 -0
- package/dist/domain/entities/index.d.ts +7 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +23 -0
- package/dist/domain/entities/index.js.map +1 -0
- package/dist/domain/entities/models.d.ts +50 -0
- package/dist/domain/entities/models.d.ts.map +1 -0
- package/dist/domain/entities/models.js +178 -0
- package/dist/domain/entities/models.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/services/ChatSession.d.ts +95 -0
- package/dist/infrastructure/services/ChatSession.d.ts.map +1 -0
- package/dist/infrastructure/services/ChatSession.js +177 -0
- package/dist/infrastructure/services/ChatSession.js.map +1 -0
- package/dist/infrastructure/services/GroqClient.d.ts +52 -0
- package/dist/infrastructure/services/GroqClient.d.ts.map +1 -0
- package/dist/infrastructure/services/GroqClient.js +258 -0
- package/dist/infrastructure/services/GroqClient.js.map +1 -0
- package/dist/infrastructure/services/Streaming.d.ts +27 -0
- package/dist/infrastructure/services/Streaming.d.ts.map +1 -0
- package/dist/infrastructure/services/Streaming.js +84 -0
- package/dist/infrastructure/services/Streaming.js.map +1 -0
- package/dist/infrastructure/services/StructuredText.d.ts +20 -0
- package/dist/infrastructure/services/StructuredText.d.ts.map +1 -0
- package/dist/infrastructure/services/StructuredText.js +204 -0
- package/dist/infrastructure/services/StructuredText.js.map +1 -0
- package/dist/infrastructure/services/TextGeneration.d.ts +18 -0
- package/dist/infrastructure/services/TextGeneration.d.ts.map +1 -0
- package/dist/infrastructure/services/TextGeneration.js +127 -0
- package/dist/infrastructure/services/TextGeneration.js.map +1 -0
- package/dist/infrastructure/services/index.d.ts +9 -0
- package/dist/infrastructure/services/index.d.ts.map +1 -0
- package/dist/infrastructure/services/index.js +24 -0
- package/dist/infrastructure/services/index.js.map +1 -0
- package/dist/infrastructure/telemetry/TelemetryHooks.d.ts +48 -0
- package/dist/infrastructure/telemetry/TelemetryHooks.d.ts.map +1 -0
- package/dist/infrastructure/telemetry/TelemetryHooks.js +70 -0
- package/dist/infrastructure/telemetry/TelemetryHooks.js.map +1 -0
- package/dist/infrastructure/telemetry/index.d.ts +5 -0
- package/dist/infrastructure/telemetry/index.d.ts.map +1 -0
- package/dist/infrastructure/telemetry/index.js +10 -0
- package/dist/infrastructure/telemetry/index.js.map +1 -0
- package/dist/infrastructure/utils/async/execute-state.util.d.ts +27 -0
- package/dist/infrastructure/utils/async/execute-state.util.d.ts.map +1 -0
- package/dist/infrastructure/utils/async/execute-state.util.js +50 -0
- package/dist/infrastructure/utils/async/execute-state.util.js.map +1 -0
- package/dist/infrastructure/utils/async/index.d.ts +6 -0
- package/dist/infrastructure/utils/async/index.d.ts.map +1 -0
- package/dist/infrastructure/utils/async/index.js +10 -0
- package/dist/infrastructure/utils/async/index.js.map +1 -0
- package/dist/infrastructure/utils/content-mapper.util.d.ts +34 -0
- package/dist/infrastructure/utils/content-mapper.util.d.ts.map +1 -0
- package/dist/infrastructure/utils/content-mapper.util.js +84 -0
- package/dist/infrastructure/utils/content-mapper.util.js.map +1 -0
- package/dist/infrastructure/utils/error-mapper.util.d.ts +21 -0
- package/dist/infrastructure/utils/error-mapper.util.d.ts.map +1 -0
- package/dist/infrastructure/utils/error-mapper.util.js +73 -0
- package/dist/infrastructure/utils/error-mapper.util.js.map +1 -0
- package/dist/infrastructure/utils/index.d.ts +7 -0
- package/dist/infrastructure/utils/index.d.ts.map +1 -0
- package/dist/infrastructure/utils/index.js +23 -0
- package/dist/infrastructure/utils/index.js.map +1 -0
- package/dist/presentation/hooks/useGroq.d.ts +42 -0
- package/dist/presentation/hooks/useGroq.d.ts.map +1 -0
- package/dist/presentation/hooks/useGroq.js +153 -0
- package/dist/presentation/hooks/useGroq.js.map +1 -0
- package/dist/presentation/hooks/useOperationManager.d.ts +34 -0
- package/dist/presentation/hooks/useOperationManager.d.ts.map +1 -0
- package/dist/presentation/hooks/useOperationManager.js +76 -0
- package/dist/presentation/hooks/useOperationManager.js.map +1 -0
- package/dist/providers/ConfigBuilder.d.ts +86 -0
- package/dist/providers/ConfigBuilder.d.ts.map +1 -0
- package/dist/providers/ConfigBuilder.js +147 -0
- package/dist/providers/ConfigBuilder.js.map +1 -0
- package/dist/providers/ProviderFactory.d.ts +56 -0
- package/dist/providers/ProviderFactory.d.ts.map +1 -0
- package/dist/providers/ProviderFactory.js +75 -0
- package/dist/providers/ProviderFactory.js.map +1 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +15 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +1 -1
- package/src/infrastructure/services/GroqClient.ts +61 -1
- package/src/infrastructure/services/StructuredText.ts +94 -1
- package/src/infrastructure/services/TextGeneration.ts +70 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @umituz/react-native-ai-groq-provider
|
|
3
|
+
* Groq text generation provider for React Native applications
|
|
4
|
+
*
|
|
5
|
+
* @author umituz
|
|
6
|
+
* @license MIT
|
|
7
|
+
*/
|
|
8
|
+
export type { GroqConfig, GroqGenerationConfig, GroqMessageRole, GroqMessage, GroqChatRequest, GroqChatResponse, GroqChoice, GroqFinishReason, GroqUsage, GroqChatChunk, GroqChunkChoice, GroqErrorResponse, GroqChatConfig, } from "./domain/entities";
|
|
9
|
+
export { GROQ_MODELS, DEFAULT_MODELS, } from "./domain/entities";
|
|
10
|
+
export { GroqError, GroqErrorType, mapHttpStatusToErrorType, } from "./domain/entities/error.types";
|
|
11
|
+
export { MODEL_REGISTRY, getModelInfo, modelSupports, type ModelCapabilities, type ModelInfo, } from "./domain/entities/models";
|
|
12
|
+
export { groqHttpClient } from "./infrastructure/services/GroqClient";
|
|
13
|
+
export { textGeneration, chatGeneration } from "./infrastructure/services/TextGeneration";
|
|
14
|
+
export { structuredText, structuredChat } from "./infrastructure/services/StructuredText";
|
|
15
|
+
export { streaming, streamingChat } from "./infrastructure/services/Streaming";
|
|
16
|
+
export { chatSessionService, createChatSession, sendChatMessage, buildChatHistory, trimChatHistory, type ChatSession, type SendChatMessageOptions, type ChatSendResult, type ChatHistoryMessage, } from "./infrastructure/services";
|
|
17
|
+
export type { StreamingCallbacks, StreamingOptions } from "./infrastructure/services/Streaming";
|
|
18
|
+
export { useGroq } from "./presentation/hooks/useGroq";
|
|
19
|
+
export type { UseGroqOptions, UseGroqReturn } from "./presentation/hooks/useGroq";
|
|
20
|
+
export { useOperationManager } from "./presentation/hooks/useOperationManager";
|
|
21
|
+
export { ConfigBuilder, GenerationConfigBuilder, providerFactory, initializeProvider, configureProvider, resetProvider, } from "./providers/ProviderFactory";
|
|
22
|
+
export type { ProviderConfig, ProviderFactoryOptions, } from "./providers/ProviderFactory";
|
|
23
|
+
export { createUserMessage, createAssistantMessage, createSystemMessage, createTextMessage, promptToMessages, extractTextFromMessages, formatMessagesForDisplay, } from "./infrastructure/utils/content-mapper.util";
|
|
24
|
+
export { getUserFriendlyError, isRetryableError, isAuthError, formatErrorForLogging, } from "./infrastructure/utils/error-mapper.util";
|
|
25
|
+
export { executeWithState, executeWithRetry, type AsyncStateSetters, type AsyncCallbacks, } from "./infrastructure/utils/async";
|
|
26
|
+
export { telemetry, useTelemetry, } from "./infrastructure/telemetry";
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,SAAS,EACT,aAAa,EACb,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,SAAS,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGhG,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,cAAc,EACd,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,SAAS,EACT,YAAY,GACb,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @umituz/react-native-ai-groq-provider
|
|
4
|
+
* Groq text generation provider for React Native applications
|
|
5
|
+
*
|
|
6
|
+
* @author umituz
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.useTelemetry = exports.telemetry = exports.executeWithRetry = exports.executeWithState = exports.formatErrorForLogging = exports.isAuthError = exports.isRetryableError = exports.getUserFriendlyError = exports.formatMessagesForDisplay = exports.extractTextFromMessages = exports.promptToMessages = exports.createTextMessage = exports.createSystemMessage = exports.createAssistantMessage = exports.createUserMessage = exports.resetProvider = exports.configureProvider = exports.initializeProvider = exports.providerFactory = exports.GenerationConfigBuilder = exports.ConfigBuilder = exports.useOperationManager = exports.useGroq = exports.trimChatHistory = exports.buildChatHistory = exports.sendChatMessage = exports.createChatSession = exports.chatSessionService = exports.streamingChat = exports.streaming = exports.structuredChat = exports.structuredText = exports.chatGeneration = exports.textGeneration = exports.groqHttpClient = exports.modelSupports = exports.getModelInfo = exports.MODEL_REGISTRY = exports.mapHttpStatusToErrorType = exports.GroqErrorType = exports.GroqError = exports.DEFAULT_MODELS = exports.GROQ_MODELS = void 0;
|
|
11
|
+
var entities_1 = require("./domain/entities");
|
|
12
|
+
Object.defineProperty(exports, "GROQ_MODELS", { enumerable: true, get: function () { return entities_1.GROQ_MODELS; } });
|
|
13
|
+
Object.defineProperty(exports, "DEFAULT_MODELS", { enumerable: true, get: function () { return entities_1.DEFAULT_MODELS; } });
|
|
14
|
+
var error_types_1 = require("./domain/entities/error.types");
|
|
15
|
+
Object.defineProperty(exports, "GroqError", { enumerable: true, get: function () { return error_types_1.GroqError; } });
|
|
16
|
+
Object.defineProperty(exports, "GroqErrorType", { enumerable: true, get: function () { return error_types_1.GroqErrorType; } });
|
|
17
|
+
Object.defineProperty(exports, "mapHttpStatusToErrorType", { enumerable: true, get: function () { return error_types_1.mapHttpStatusToErrorType; } });
|
|
18
|
+
var models_1 = require("./domain/entities/models");
|
|
19
|
+
Object.defineProperty(exports, "MODEL_REGISTRY", { enumerable: true, get: function () { return models_1.MODEL_REGISTRY; } });
|
|
20
|
+
Object.defineProperty(exports, "getModelInfo", { enumerable: true, get: function () { return models_1.getModelInfo; } });
|
|
21
|
+
Object.defineProperty(exports, "modelSupports", { enumerable: true, get: function () { return models_1.modelSupports; } });
|
|
22
|
+
// Services
|
|
23
|
+
var GroqClient_1 = require("./infrastructure/services/GroqClient");
|
|
24
|
+
Object.defineProperty(exports, "groqHttpClient", { enumerable: true, get: function () { return GroqClient_1.groqHttpClient; } });
|
|
25
|
+
var TextGeneration_1 = require("./infrastructure/services/TextGeneration");
|
|
26
|
+
Object.defineProperty(exports, "textGeneration", { enumerable: true, get: function () { return TextGeneration_1.textGeneration; } });
|
|
27
|
+
Object.defineProperty(exports, "chatGeneration", { enumerable: true, get: function () { return TextGeneration_1.chatGeneration; } });
|
|
28
|
+
var StructuredText_1 = require("./infrastructure/services/StructuredText");
|
|
29
|
+
Object.defineProperty(exports, "structuredText", { enumerable: true, get: function () { return StructuredText_1.structuredText; } });
|
|
30
|
+
Object.defineProperty(exports, "structuredChat", { enumerable: true, get: function () { return StructuredText_1.structuredChat; } });
|
|
31
|
+
var Streaming_1 = require("./infrastructure/services/Streaming");
|
|
32
|
+
Object.defineProperty(exports, "streaming", { enumerable: true, get: function () { return Streaming_1.streaming; } });
|
|
33
|
+
Object.defineProperty(exports, "streamingChat", { enumerable: true, get: function () { return Streaming_1.streamingChat; } });
|
|
34
|
+
var services_1 = require("./infrastructure/services");
|
|
35
|
+
Object.defineProperty(exports, "chatSessionService", { enumerable: true, get: function () { return services_1.chatSessionService; } });
|
|
36
|
+
Object.defineProperty(exports, "createChatSession", { enumerable: true, get: function () { return services_1.createChatSession; } });
|
|
37
|
+
Object.defineProperty(exports, "sendChatMessage", { enumerable: true, get: function () { return services_1.sendChatMessage; } });
|
|
38
|
+
Object.defineProperty(exports, "buildChatHistory", { enumerable: true, get: function () { return services_1.buildChatHistory; } });
|
|
39
|
+
Object.defineProperty(exports, "trimChatHistory", { enumerable: true, get: function () { return services_1.trimChatHistory; } });
|
|
40
|
+
// React Hooks
|
|
41
|
+
var useGroq_1 = require("./presentation/hooks/useGroq");
|
|
42
|
+
Object.defineProperty(exports, "useGroq", { enumerable: true, get: function () { return useGroq_1.useGroq; } });
|
|
43
|
+
var useOperationManager_1 = require("./presentation/hooks/useOperationManager");
|
|
44
|
+
Object.defineProperty(exports, "useOperationManager", { enumerable: true, get: function () { return useOperationManager_1.useOperationManager; } });
|
|
45
|
+
// Provider Configuration & Factory
|
|
46
|
+
var ProviderFactory_1 = require("./providers/ProviderFactory");
|
|
47
|
+
Object.defineProperty(exports, "ConfigBuilder", { enumerable: true, get: function () { return ProviderFactory_1.ConfigBuilder; } });
|
|
48
|
+
Object.defineProperty(exports, "GenerationConfigBuilder", { enumerable: true, get: function () { return ProviderFactory_1.GenerationConfigBuilder; } });
|
|
49
|
+
Object.defineProperty(exports, "providerFactory", { enumerable: true, get: function () { return ProviderFactory_1.providerFactory; } });
|
|
50
|
+
Object.defineProperty(exports, "initializeProvider", { enumerable: true, get: function () { return ProviderFactory_1.initializeProvider; } });
|
|
51
|
+
Object.defineProperty(exports, "configureProvider", { enumerable: true, get: function () { return ProviderFactory_1.configureProvider; } });
|
|
52
|
+
Object.defineProperty(exports, "resetProvider", { enumerable: true, get: function () { return ProviderFactory_1.resetProvider; } });
|
|
53
|
+
// Utilities
|
|
54
|
+
var content_mapper_util_1 = require("./infrastructure/utils/content-mapper.util");
|
|
55
|
+
Object.defineProperty(exports, "createUserMessage", { enumerable: true, get: function () { return content_mapper_util_1.createUserMessage; } });
|
|
56
|
+
Object.defineProperty(exports, "createAssistantMessage", { enumerable: true, get: function () { return content_mapper_util_1.createAssistantMessage; } });
|
|
57
|
+
Object.defineProperty(exports, "createSystemMessage", { enumerable: true, get: function () { return content_mapper_util_1.createSystemMessage; } });
|
|
58
|
+
Object.defineProperty(exports, "createTextMessage", { enumerable: true, get: function () { return content_mapper_util_1.createTextMessage; } });
|
|
59
|
+
Object.defineProperty(exports, "promptToMessages", { enumerable: true, get: function () { return content_mapper_util_1.promptToMessages; } });
|
|
60
|
+
Object.defineProperty(exports, "extractTextFromMessages", { enumerable: true, get: function () { return content_mapper_util_1.extractTextFromMessages; } });
|
|
61
|
+
Object.defineProperty(exports, "formatMessagesForDisplay", { enumerable: true, get: function () { return content_mapper_util_1.formatMessagesForDisplay; } });
|
|
62
|
+
var error_mapper_util_1 = require("./infrastructure/utils/error-mapper.util");
|
|
63
|
+
Object.defineProperty(exports, "getUserFriendlyError", { enumerable: true, get: function () { return error_mapper_util_1.getUserFriendlyError; } });
|
|
64
|
+
Object.defineProperty(exports, "isRetryableError", { enumerable: true, get: function () { return error_mapper_util_1.isRetryableError; } });
|
|
65
|
+
Object.defineProperty(exports, "isAuthError", { enumerable: true, get: function () { return error_mapper_util_1.isAuthError; } });
|
|
66
|
+
Object.defineProperty(exports, "formatErrorForLogging", { enumerable: true, get: function () { return error_mapper_util_1.formatErrorForLogging; } });
|
|
67
|
+
var async_1 = require("./infrastructure/utils/async");
|
|
68
|
+
Object.defineProperty(exports, "executeWithState", { enumerable: true, get: function () { return async_1.executeWithState; } });
|
|
69
|
+
Object.defineProperty(exports, "executeWithRetry", { enumerable: true, get: function () { return async_1.executeWithRetry; } });
|
|
70
|
+
var telemetry_1 = require("./infrastructure/telemetry");
|
|
71
|
+
Object.defineProperty(exports, "telemetry", { enumerable: true, get: function () { return telemetry_1.telemetry; } });
|
|
72
|
+
Object.defineProperty(exports, "useTelemetry", { enumerable: true, get: function () { return telemetry_1.useTelemetry; } });
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAmBH,8CAG2B;AAFzB,uGAAA,WAAW,OAAA;AACX,0GAAA,cAAc,OAAA;AAGhB,6DAIuC;AAHrC,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,uHAAA,wBAAwB,OAAA;AAG1B,mDAMkC;AALhC,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AAKf,WAAW;AACX,mEAAsE;AAA7D,4GAAA,cAAc,OAAA;AACvB,2EAA0F;AAAjF,gHAAA,cAAc,OAAA;AAAE,gHAAA,cAAc,OAAA;AACvC,2EAA0F;AAAjF,gHAAA,cAAc,OAAA;AAAE,gHAAA,cAAc,OAAA;AACvC,iEAA+E;AAAtE,sGAAA,SAAS,OAAA;AAAE,0GAAA,aAAa,OAAA;AACjC,sDAUmC;AATjC,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AASjB,cAAc;AACd,wDAAuD;AAA9C,kGAAA,OAAO,OAAA;AAGhB,gFAA+E;AAAtE,0HAAA,mBAAmB,OAAA;AAE5B,mCAAmC;AACnC,+DAOqC;AANnC,gHAAA,aAAa,OAAA;AACb,0HAAA,uBAAuB,OAAA;AACvB,kHAAA,eAAe,OAAA;AACf,qHAAA,kBAAkB,OAAA;AAClB,oHAAA,iBAAiB,OAAA;AACjB,gHAAA,aAAa,OAAA;AAQf,YAAY;AACZ,kFAQoD;AAPlD,wHAAA,iBAAiB,OAAA;AACjB,6HAAA,sBAAsB,OAAA;AACtB,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,uHAAA,gBAAgB,OAAA;AAChB,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,8EAKkD;AAJhD,yHAAA,oBAAoB,OAAA;AACpB,qHAAA,gBAAgB,OAAA;AAChB,gHAAA,WAAW,OAAA;AACX,0HAAA,qBAAqB,OAAA;AAGvB,sDAKsC;AAJpC,yGAAA,gBAAgB,OAAA;AAChB,yGAAA,gBAAgB,OAAA;AAKlB,wDAGoC;AAFlC,sGAAA,SAAS,OAAA;AACT,yGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Session Service
|
|
3
|
+
* Manages multi-turn chat conversations with Groq API
|
|
4
|
+
*/
|
|
5
|
+
import type { GroqMessage, GroqChatConfig, GroqGenerationConfig } from "../../domain/entities";
|
|
6
|
+
/**
|
|
7
|
+
* Chat session state
|
|
8
|
+
*/
|
|
9
|
+
export interface ChatSession {
|
|
10
|
+
id: string;
|
|
11
|
+
model: string;
|
|
12
|
+
systemInstruction?: string;
|
|
13
|
+
messages: GroqMessage[];
|
|
14
|
+
generationConfig?: GroqGenerationConfig;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
updatedAt: Date;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Result of sending a chat message
|
|
20
|
+
*/
|
|
21
|
+
export interface ChatSendResult {
|
|
22
|
+
response: string;
|
|
23
|
+
usage: {
|
|
24
|
+
promptTokens: number;
|
|
25
|
+
completionTokens: number;
|
|
26
|
+
totalTokens: number;
|
|
27
|
+
};
|
|
28
|
+
finishReason: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Options for sending a chat message
|
|
32
|
+
*/
|
|
33
|
+
export interface SendChatMessageOptions {
|
|
34
|
+
/** Stream the response (not yet implemented) */
|
|
35
|
+
stream?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Message format for chat history (simplified)
|
|
39
|
+
*/
|
|
40
|
+
export type ChatHistoryMessage = {
|
|
41
|
+
role: "system" | "user" | "assistant";
|
|
42
|
+
content: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create a new chat session
|
|
46
|
+
*/
|
|
47
|
+
export declare function createChatSession(config?: GroqChatConfig): ChatSession;
|
|
48
|
+
/**
|
|
49
|
+
* Chat session service
|
|
50
|
+
*/
|
|
51
|
+
declare class ChatSessionService {
|
|
52
|
+
private sessions;
|
|
53
|
+
/**
|
|
54
|
+
* Create a new chat session
|
|
55
|
+
*/
|
|
56
|
+
create(config?: GroqChatConfig): ChatSession;
|
|
57
|
+
/**
|
|
58
|
+
* Get a session by ID
|
|
59
|
+
*/
|
|
60
|
+
get(sessionId: string): ChatSession | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Delete a session
|
|
63
|
+
*/
|
|
64
|
+
delete(sessionId: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Send a message in a chat session
|
|
67
|
+
*/
|
|
68
|
+
send(sessionId: string, content: string, options?: SendChatMessageOptions): Promise<ChatSendResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Reset a chat session (clear messages except system instruction)
|
|
71
|
+
*/
|
|
72
|
+
reset(sessionId: string): ChatSession;
|
|
73
|
+
/**
|
|
74
|
+
* Update a chat session's config
|
|
75
|
+
*/
|
|
76
|
+
updateConfig(sessionId: string, config: Partial<GroqChatConfig>): ChatSession;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Singleton instance
|
|
80
|
+
*/
|
|
81
|
+
export declare const chatSessionService: ChatSessionService;
|
|
82
|
+
/**
|
|
83
|
+
* Convenience function to send a chat message
|
|
84
|
+
*/
|
|
85
|
+
export declare function sendChatMessage(sessionId: string, content: string, options?: SendChatMessageOptions): Promise<ChatSendResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Build chat history for API request
|
|
88
|
+
*/
|
|
89
|
+
export declare function buildChatHistory(session: ChatSession): GroqMessage[];
|
|
90
|
+
/**
|
|
91
|
+
* Trim chat history to fit within token limit
|
|
92
|
+
*/
|
|
93
|
+
export declare function trimChatHistory(messages: GroqMessage[], maxTokens?: number): GroqMessage[];
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=ChatSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatSession.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/ChatSession.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,cAAmB,GAAG,WAAW,CAU1E;AAED;;GAEG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAkC;IAElD;;OAEG;IACH,MAAM,CAAC,MAAM,GAAE,cAAmB,GAAG,WAAW;IAMhD;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI/C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACG,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC;IA0D1B;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAerC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW;CAkB9E;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AAE3D;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,CAepE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,GAAE,MAAa,GACvB,WAAW,EAAE,CAgBf"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chat Session Service
|
|
4
|
+
* Manages multi-turn chat conversations with Groq API
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.chatSessionService = void 0;
|
|
8
|
+
exports.createChatSession = createChatSession;
|
|
9
|
+
exports.sendChatMessage = sendChatMessage;
|
|
10
|
+
exports.buildChatHistory = buildChatHistory;
|
|
11
|
+
exports.trimChatHistory = trimChatHistory;
|
|
12
|
+
const GroqClient_1 = require("./GroqClient");
|
|
13
|
+
const entities_1 = require("../../domain/entities");
|
|
14
|
+
const error_types_1 = require("../../domain/entities/error.types");
|
|
15
|
+
/**
|
|
16
|
+
* Create a new chat session
|
|
17
|
+
*/
|
|
18
|
+
function createChatSession(config = {}) {
|
|
19
|
+
return {
|
|
20
|
+
id: `groq-chat-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
|
21
|
+
model: config.model || entities_1.DEFAULT_MODELS.TEXT,
|
|
22
|
+
systemInstruction: config.systemInstruction,
|
|
23
|
+
messages: config.history ? [...config.history] : [],
|
|
24
|
+
generationConfig: config.generationConfig,
|
|
25
|
+
createdAt: new Date(),
|
|
26
|
+
updatedAt: new Date(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Chat session service
|
|
31
|
+
*/
|
|
32
|
+
class ChatSessionService {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.sessions = new Map();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a new chat session
|
|
38
|
+
*/
|
|
39
|
+
create(config = {}) {
|
|
40
|
+
const session = createChatSession(config);
|
|
41
|
+
this.sessions.set(session.id, session);
|
|
42
|
+
return session;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get a session by ID
|
|
46
|
+
*/
|
|
47
|
+
get(sessionId) {
|
|
48
|
+
return this.sessions.get(sessionId);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Delete a session
|
|
52
|
+
*/
|
|
53
|
+
delete(sessionId) {
|
|
54
|
+
return this.sessions.delete(sessionId);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Send a message in a chat session
|
|
58
|
+
*/
|
|
59
|
+
async send(sessionId, content, options = {}) {
|
|
60
|
+
const session = this.sessions.get(sessionId);
|
|
61
|
+
if (!session) {
|
|
62
|
+
throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, `Chat session ${sessionId} not found`);
|
|
63
|
+
}
|
|
64
|
+
// Add user message to history
|
|
65
|
+
const userMessage = {
|
|
66
|
+
role: "user",
|
|
67
|
+
content,
|
|
68
|
+
};
|
|
69
|
+
session.messages.push(userMessage);
|
|
70
|
+
// Build messages array for API
|
|
71
|
+
const messagesForApi = buildChatHistory(session);
|
|
72
|
+
// Call API
|
|
73
|
+
const response = await GroqClient_1.groqHttpClient.chatCompletion({
|
|
74
|
+
model: session.model,
|
|
75
|
+
messages: messagesForApi,
|
|
76
|
+
temperature: session.generationConfig?.temperature || 0.7,
|
|
77
|
+
max_tokens: session.generationConfig?.maxTokens || 1024,
|
|
78
|
+
top_p: session.generationConfig?.topP,
|
|
79
|
+
});
|
|
80
|
+
// Extract assistant response
|
|
81
|
+
const assistantContent = response.choices[0]?.message?.content;
|
|
82
|
+
if (!assistantContent) {
|
|
83
|
+
throw new error_types_1.GroqError(error_types_1.GroqErrorType.UNKNOWN_ERROR, "No content generated from Groq API");
|
|
84
|
+
}
|
|
85
|
+
// Add assistant message to history
|
|
86
|
+
const assistantMessage = {
|
|
87
|
+
role: "assistant",
|
|
88
|
+
content: assistantContent,
|
|
89
|
+
};
|
|
90
|
+
session.messages.push(assistantMessage);
|
|
91
|
+
// Update timestamp
|
|
92
|
+
session.updatedAt = new Date();
|
|
93
|
+
return {
|
|
94
|
+
response: assistantContent,
|
|
95
|
+
usage: {
|
|
96
|
+
promptTokens: response.usage?.prompt_tokens || 0,
|
|
97
|
+
completionTokens: response.usage?.completion_tokens || 0,
|
|
98
|
+
totalTokens: response.usage?.total_tokens || 0,
|
|
99
|
+
},
|
|
100
|
+
finishReason: response.choices[0]?.finish_reason || "unknown",
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Reset a chat session (clear messages except system instruction)
|
|
105
|
+
*/
|
|
106
|
+
reset(sessionId) {
|
|
107
|
+
const session = this.sessions.get(sessionId);
|
|
108
|
+
if (!session) {
|
|
109
|
+
throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, `Chat session ${sessionId} not found`);
|
|
110
|
+
}
|
|
111
|
+
session.messages = [];
|
|
112
|
+
session.updatedAt = new Date();
|
|
113
|
+
return session;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Update a chat session's config
|
|
117
|
+
*/
|
|
118
|
+
updateConfig(sessionId, config) {
|
|
119
|
+
const session = this.sessions.get(sessionId);
|
|
120
|
+
if (!session) {
|
|
121
|
+
throw new error_types_1.GroqError(error_types_1.GroqErrorType.MISSING_CONFIG, `Chat session ${sessionId} not found`);
|
|
122
|
+
}
|
|
123
|
+
if (config.model !== undefined)
|
|
124
|
+
session.model = config.model;
|
|
125
|
+
if (config.systemInstruction !== undefined)
|
|
126
|
+
session.systemInstruction = config.systemInstruction;
|
|
127
|
+
if (config.generationConfig !== undefined)
|
|
128
|
+
session.generationConfig = config.generationConfig;
|
|
129
|
+
if (config.history)
|
|
130
|
+
session.messages = [...config.history];
|
|
131
|
+
session.updatedAt = new Date();
|
|
132
|
+
return session;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Singleton instance
|
|
137
|
+
*/
|
|
138
|
+
exports.chatSessionService = new ChatSessionService();
|
|
139
|
+
/**
|
|
140
|
+
* Convenience function to send a chat message
|
|
141
|
+
*/
|
|
142
|
+
async function sendChatMessage(sessionId, content, options) {
|
|
143
|
+
return exports.chatSessionService.send(sessionId, content, options);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Build chat history for API request
|
|
147
|
+
*/
|
|
148
|
+
function buildChatHistory(session) {
|
|
149
|
+
const messages = [];
|
|
150
|
+
// Add system instruction if present
|
|
151
|
+
if (session.systemInstruction) {
|
|
152
|
+
messages.push({
|
|
153
|
+
role: "system",
|
|
154
|
+
content: session.systemInstruction,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
// Add conversation history
|
|
158
|
+
messages.push(...session.messages);
|
|
159
|
+
return messages;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Trim chat history to fit within token limit
|
|
163
|
+
*/
|
|
164
|
+
function trimChatHistory(messages, maxTokens = 4000) {
|
|
165
|
+
// Simple heuristic: assume average of 4 tokens per message
|
|
166
|
+
// For production, use a proper token counter
|
|
167
|
+
const maxMessages = Math.floor(maxTokens / 100);
|
|
168
|
+
if (messages.length <= maxMessages) {
|
|
169
|
+
return messages;
|
|
170
|
+
}
|
|
171
|
+
// Keep system messages and trim from oldest to newest
|
|
172
|
+
const systemMessages = messages.filter((m) => m.role === "system");
|
|
173
|
+
const nonSystemMessages = messages.filter((m) => m.role !== "system");
|
|
174
|
+
const trimmed = nonSystemMessages.slice(-maxMessages);
|
|
175
|
+
return [...systemMessages, ...trimmed];
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=ChatSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatSession.js","sourceRoot":"","sources":["../../../src/infrastructure/services/ChatSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groq HTTP Client
|
|
3
|
+
* Handles all HTTP communication with Groq API
|
|
4
|
+
*/
|
|
5
|
+
import type { GroqConfig, GroqChatRequest, GroqChatResponse, GroqChatChunk } from "../../domain/entities";
|
|
6
|
+
declare class GroqHttpClient {
|
|
7
|
+
private config;
|
|
8
|
+
private initialized;
|
|
9
|
+
/**
|
|
10
|
+
* Initialize the client with configuration
|
|
11
|
+
*/
|
|
12
|
+
initialize(config: GroqConfig): void;
|
|
13
|
+
/**
|
|
14
|
+
* Check if client is initialized
|
|
15
|
+
*/
|
|
16
|
+
isInitialized(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Get current configuration
|
|
19
|
+
*/
|
|
20
|
+
getConfig(): GroqConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Make an HTTP request to Groq API
|
|
23
|
+
*/
|
|
24
|
+
private request;
|
|
25
|
+
/**
|
|
26
|
+
* Handle HTTP error responses
|
|
27
|
+
*/
|
|
28
|
+
private handleErrorResponse;
|
|
29
|
+
/**
|
|
30
|
+
* Handle request errors (network, timeout, abort)
|
|
31
|
+
*/
|
|
32
|
+
private handleRequestError;
|
|
33
|
+
/**
|
|
34
|
+
* Send chat completion request (non-streaming)
|
|
35
|
+
*/
|
|
36
|
+
chatCompletion(request: GroqChatRequest, signal?: AbortSignal): Promise<GroqChatResponse>;
|
|
37
|
+
/**
|
|
38
|
+
* Send chat completion request (streaming)
|
|
39
|
+
* Returns an async generator of chunks
|
|
40
|
+
*/
|
|
41
|
+
chatCompletionStream(request: GroqChatRequest, signal?: AbortSignal): AsyncGenerator<GroqChatChunk>;
|
|
42
|
+
/**
|
|
43
|
+
* Reset the client
|
|
44
|
+
*/
|
|
45
|
+
reset(): void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Singleton instance
|
|
49
|
+
*/
|
|
50
|
+
export declare const groqHttpClient: GroqHttpClient;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=GroqClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroqClient.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/services/GroqClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAO/B,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAqCpC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,SAAS,IAAI,UAAU;IAUvB;;OAEG;YACW,OAAO;IAyFrB;;OAEG;YACW,mBAAmB;IAmBjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAQ5B;;;OAGG;IACI,oBAAoB,CACzB,OAAO,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,aAAa,CAAC;IA8EhC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|