chat-flow-ardymalihi 1.0.2
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/LICENSE +21 -0
- package/README.md +266 -0
- package/dist/adapters/db/InMemorySessionRepository.js +15 -0
- package/dist/adapters/db/RedisSessionRepository.js +41 -0
- package/dist/adapters/intent/IntentMatcher.d.ts +25 -0
- package/dist/adapters/intent/IntentMatcher.d.ts.map +1 -0
- package/dist/adapters/intent/IntentMatcher.js +89 -0
- package/dist/adapters/intent/IntentMatcher.js.map +1 -0
- package/dist/adapters/intent/IntentService.d.ts +27 -0
- package/dist/adapters/intent/IntentService.d.ts.map +1 -0
- package/dist/adapters/intent/IntentService.js +59 -0
- package/dist/adapters/intent/IntentService.js.map +1 -0
- package/dist/adapters/intent/MockIntentAdapter.js +29 -0
- package/dist/adapters/llm/GeminiLLMAdapter.d.ts +10 -0
- package/dist/adapters/llm/GeminiLLMAdapter.d.ts.map +1 -0
- package/dist/adapters/llm/GeminiLLMAdapter.js +102 -0
- package/dist/adapters/llm/GeminiLLMAdapter.js.map +1 -0
- package/dist/adapters/llm/MockLLMAdapter.d.ts +5 -0
- package/dist/adapters/llm/MockLLMAdapter.d.ts.map +1 -0
- package/dist/adapters/llm/MockLLMAdapter.js +31 -0
- package/dist/adapters/llm/MockLLMAdapter.js.map +1 -0
- package/dist/adapters/memory/InMemorySessionRepository.js +15 -0
- package/dist/adapters/redis/RedisSessionRepository.js +41 -0
- package/dist/adapters/repository/InMemoryRepository.d.ts +15 -0
- package/dist/adapters/repository/InMemoryRepository.d.ts.map +1 -0
- package/dist/adapters/repository/InMemoryRepository.js +41 -0
- package/dist/adapters/repository/InMemoryRepository.js.map +1 -0
- package/dist/adapters/repository/IntentRepository.d.ts +15 -0
- package/dist/adapters/repository/IntentRepository.d.ts.map +1 -0
- package/dist/adapters/repository/IntentRepository.js +28 -0
- package/dist/adapters/repository/IntentRepository.js.map +1 -0
- package/dist/adapters/repository/RedisRepository.d.ts +16 -0
- package/dist/adapters/repository/RedisRepository.d.ts.map +1 -0
- package/dist/adapters/repository/RedisRepository.js +87 -0
- package/dist/adapters/repository/RedisRepository.js.map +1 -0
- package/dist/adapters/workflow/MockWorkflowAdapter.d.ts +5 -0
- package/dist/adapters/workflow/MockWorkflowAdapter.d.ts.map +1 -0
- package/dist/adapters/workflow/MockWorkflowAdapter.js +162 -0
- package/dist/adapters/workflow/MockWorkflowAdapter.js.map +1 -0
- package/dist/application/ConversationSession.d.ts +23 -0
- package/dist/application/ConversationSession.d.ts.map +1 -0
- package/dist/application/ConversationSession.js +83 -0
- package/dist/application/ConversationSession.js.map +1 -0
- package/dist/application/Message.d.ts +11 -0
- package/dist/application/Message.d.ts.map +1 -0
- package/dist/application/Message.js +30 -0
- package/dist/application/Message.js.map +1 -0
- package/dist/application/Orchestrator.d.ts +18 -0
- package/dist/application/Orchestrator.d.ts.map +1 -0
- package/dist/application/Orchestrator.js +80 -0
- package/dist/application/Orchestrator.js.map +1 -0
- package/dist/application/SessionState.js +2 -0
- package/dist/application/usecases/CreateSession.js +20 -0
- package/dist/application/usecases/HandleUserMessage.js +69 -0
- package/dist/config/ChatFlowConfig.d.ts +59 -0
- package/dist/config/ChatFlowConfig.d.ts.map +1 -0
- package/dist/config/ChatFlowConfig.js +49 -0
- package/dist/config/ChatFlowConfig.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/entities/ConversationSession.d.ts +23 -0
- package/dist/core/entities/ConversationSession.d.ts.map +1 -0
- package/dist/core/entities/ConversationSession.js +83 -0
- package/dist/core/entities/ConversationSession.js.map +1 -0
- package/dist/core/entities/Message.d.ts +11 -0
- package/dist/core/entities/Message.d.ts.map +1 -0
- package/dist/core/entities/Message.js +30 -0
- package/dist/core/entities/Message.js.map +1 -0
- package/dist/core/errors/ChatFlowError.d.ts +71 -0
- package/dist/core/errors/ChatFlowError.d.ts.map +1 -0
- package/dist/core/errors/ChatFlowError.js +108 -0
- package/dist/core/errors/ChatFlowError.js.map +1 -0
- package/dist/core/errors/index.d.ts +2 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +15 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/db/InMemoryRepository.d.ts +15 -0
- package/dist/db/InMemoryRepository.d.ts.map +1 -0
- package/dist/db/InMemoryRepository.js +41 -0
- package/dist/db/InMemoryRepository.js.map +1 -0
- package/dist/db/RedisRepository.d.ts +16 -0
- package/dist/db/RedisRepository.d.ts.map +1 -0
- package/dist/db/RedisRepository.js +87 -0
- package/dist/db/RedisRepository.js.map +1 -0
- package/dist/demo/cli-demo.d.ts +2 -0
- package/dist/demo/cli-demo.d.ts.map +1 -0
- package/dist/demo/cli-demo.js +142 -0
- package/dist/demo/cli-demo.js.map +1 -0
- package/dist/demo/console-chat.d.ts +2 -0
- package/dist/demo/console-chat.d.ts.map +1 -0
- package/dist/demo/console-chat.js +144 -0
- package/dist/demo/console-chat.js.map +1 -0
- package/dist/domain/conversation/ConversationSession.js +82 -0
- package/dist/domain/conversation/Message.js +33 -0
- package/dist/domain/conversation/SessionState.js +10 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/intent/IntentService.d.ts +17 -0
- package/dist/intent/IntentService.d.ts.map +1 -0
- package/dist/intent/IntentService.js +51 -0
- package/dist/intent/IntentService.js.map +1 -0
- package/dist/intent/MockIntentService.d.ts +6 -0
- package/dist/intent/MockIntentService.d.ts.map +1 -0
- package/dist/intent/MockIntentService.js +30 -0
- package/dist/intent/MockIntentService.js.map +1 -0
- package/dist/interfaces.d.ts +108 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +18 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/llm/GeminiLLMAdapter.d.ts +10 -0
- package/dist/llm/GeminiLLMAdapter.d.ts.map +1 -0
- package/dist/llm/GeminiLLMAdapter.js +102 -0
- package/dist/llm/GeminiLLMAdapter.js.map +1 -0
- package/dist/llm/MockLLMAdapter.d.ts +5 -0
- package/dist/llm/MockLLMAdapter.d.ts.map +1 -0
- package/dist/llm/MockLLMAdapter.js +31 -0
- package/dist/llm/MockLLMAdapter.js.map +1 -0
- package/dist/orchestrator/Orchestrator.d.ts +18 -0
- package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/Orchestrator.js +80 -0
- package/dist/orchestrator/Orchestrator.js.map +1 -0
- package/dist/ports/IIntentRepository.d.ts +27 -0
- package/dist/ports/IIntentRepository.d.ts.map +1 -0
- package/dist/ports/IIntentRepository.js +3 -0
- package/dist/ports/IIntentRepository.js.map +1 -0
- package/dist/ports/IntentPort.js +2 -0
- package/dist/ports/LLMPort.js +2 -0
- package/dist/ports/SessionRepository.js +2 -0
- package/dist/ports/WorkflowPort.js +2 -0
- package/dist/scripts/debug-redis.d.ts +2 -0
- package/dist/scripts/debug-redis.d.ts.map +1 -0
- package/dist/scripts/debug-redis.js +55 -0
- package/dist/scripts/debug-redis.js.map +1 -0
- package/dist/scripts/verify_memory_intents.d.ts +2 -0
- package/dist/scripts/verify_memory_intents.d.ts.map +1 -0
- package/dist/scripts/verify_memory_intents.js +45 -0
- package/dist/scripts/verify_memory_intents.js.map +1 -0
- package/dist/scripts/verify_redis_intents.d.ts +2 -0
- package/dist/scripts/verify_redis_intents.d.ts.map +1 -0
- package/dist/scripts/verify_redis_intents.js +50 -0
- package/dist/scripts/verify_redis_intents.js.map +1 -0
- package/dist/verify_memory_intents.js +44 -0
- package/dist/verify_redis_intents.js +49 -0
- package/dist/workflow/MockWorkflowAdapter.d.ts +5 -0
- package/dist/workflow/MockWorkflowAdapter.d.ts.map +1 -0
- package/dist/workflow/MockWorkflowAdapter.js +162 -0
- package/dist/workflow/MockWorkflowAdapter.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
require("dotenv/config");
|
|
37
|
+
const readline = __importStar(require("readline"));
|
|
38
|
+
const Orchestrator_1 = require("../orchestrator/Orchestrator");
|
|
39
|
+
const InMemoryRepository_1 = require("../adapters/repository/InMemoryRepository");
|
|
40
|
+
const RedisRepository_1 = require("../adapters/repository/RedisRepository");
|
|
41
|
+
const GeminiLLMAdapter_1 = require("../adapters/llm/GeminiLLMAdapter");
|
|
42
|
+
const MockLLMAdapter_1 = require("../adapters/llm/MockLLMAdapter");
|
|
43
|
+
const IntentService_1 = require("../intent/IntentService");
|
|
44
|
+
const MockIntentService_1 = require("../intent/MockIntentService");
|
|
45
|
+
const MockWorkflowAdapter_1 = require("../adapters/workflow/MockWorkflowAdapter");
|
|
46
|
+
const interfaces_1 = require("../interfaces");
|
|
47
|
+
const uuid_1 = require("uuid");
|
|
48
|
+
const AIR_TRAVEL_PROMPT = `
|
|
49
|
+
You are 'SkyBot', a professional and friendly AI travel agent for 'AirConnect'.
|
|
50
|
+
Your goal is to help users book flights, check status, and manage reservations.
|
|
51
|
+
Always be polite, concise, and helpful.
|
|
52
|
+
|
|
53
|
+
IMPORTANT:
|
|
54
|
+
- If the system provides 'Workflow Results' (like available flights or booking confirmation), YOU MUST use that specific information to answer the user.
|
|
55
|
+
- Do not make up flight data. Only use what is provided by the system context.
|
|
56
|
+
- If you need more information (destination, dates), ask the user.
|
|
57
|
+
`.trim();
|
|
58
|
+
async function startChat() {
|
|
59
|
+
console.log('--- Chat-Flow Console (Library Mode) ---');
|
|
60
|
+
// 1. Initialize Adapters (Same as cli-demo)
|
|
61
|
+
const redisUrl = process.env.REDIS_URL;
|
|
62
|
+
const apiKey = process.env.GOOGLE_AI_API_KEY;
|
|
63
|
+
let llm;
|
|
64
|
+
if (apiKey) {
|
|
65
|
+
console.log(`[Init] Using Gemini Generative AI Adapter`);
|
|
66
|
+
llm = new GeminiLLMAdapter_1.GeminiLLMAdapter(apiKey);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.log(`[Init] Using Mock LLM Adapter`);
|
|
70
|
+
llm = new MockLLMAdapter_1.MockLLMAdapter();
|
|
71
|
+
}
|
|
72
|
+
let sessionRepo;
|
|
73
|
+
let intentAdapter;
|
|
74
|
+
if (redisUrl) {
|
|
75
|
+
console.log(`[Init] Using Redis Repository at ${redisUrl}`);
|
|
76
|
+
sessionRepo = new RedisRepository_1.RedisRepository(redisUrl);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(`[Init] Using In-Memory Repository`);
|
|
80
|
+
sessionRepo = new InMemoryRepository_1.InMemoryRepository();
|
|
81
|
+
}
|
|
82
|
+
if (sessionRepo instanceof RedisRepository_1.RedisRepository && llm instanceof GeminiLLMAdapter_1.GeminiLLMAdapter) {
|
|
83
|
+
console.log(`[Init] Using Real Intent Detection`);
|
|
84
|
+
intentAdapter = new IntentService_1.IntentService(llm, sessionRepo);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.log(`[Init] Using Mock Intent Adapter`);
|
|
88
|
+
intentAdapter = new MockIntentService_1.MockIntentService();
|
|
89
|
+
}
|
|
90
|
+
const workflow = new MockWorkflowAdapter_1.MockWorkflowAdapter();
|
|
91
|
+
const orchestrator = new Orchestrator_1.Orchestrator(sessionRepo, llm, intentAdapter, workflow);
|
|
92
|
+
// 2. Create Session
|
|
93
|
+
const sessionId = (0, uuid_1.v4)();
|
|
94
|
+
const session = await orchestrator.createSession(sessionId, 'TEXT', AIR_TRAVEL_PROMPT);
|
|
95
|
+
console.log(`\n[Session Started] ID: ${sessionId}`);
|
|
96
|
+
console.log('Type "bye" or "exit" to quit.\n');
|
|
97
|
+
// 3. Chat Loop
|
|
98
|
+
const rl = readline.createInterface({
|
|
99
|
+
input: process.stdin,
|
|
100
|
+
output: process.stdout,
|
|
101
|
+
prompt: '> '
|
|
102
|
+
});
|
|
103
|
+
rl.prompt();
|
|
104
|
+
rl.on('line', async (line) => {
|
|
105
|
+
const input = line.trim();
|
|
106
|
+
if (input.toLowerCase() === 'bye' || input.toLowerCase() === 'exit') {
|
|
107
|
+
console.log('Goodbye!');
|
|
108
|
+
if (sessionRepo instanceof RedisRepository_1.RedisRepository) {
|
|
109
|
+
await sessionRepo.disconnect();
|
|
110
|
+
}
|
|
111
|
+
rl.close();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (input) {
|
|
115
|
+
try {
|
|
116
|
+
const { messages, metadata } = await orchestrator.handleMessage(session.sessionId, input);
|
|
117
|
+
// Show Metadata
|
|
118
|
+
if (metadata?.intent) {
|
|
119
|
+
console.log(`[Meta] Intent Detected: ${metadata.intent} (Conf: ${metadata.confidence})`);
|
|
120
|
+
}
|
|
121
|
+
if (metadata?.workflowExecuted) {
|
|
122
|
+
console.log(`[Meta] Workflow Executed: ${metadata.workflowExecuted}`);
|
|
123
|
+
}
|
|
124
|
+
messages.forEach(msg => {
|
|
125
|
+
if (msg.role === interfaces_1.Role.ASSISTANT) {
|
|
126
|
+
console.log(`[Bot]: ${msg.content}`);
|
|
127
|
+
}
|
|
128
|
+
else if (msg.role === interfaces_1.Role.USER && msg.content.includes("System Info")) {
|
|
129
|
+
console.log(`[System]: ${msg.content}`);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
console.error('[Error]', err);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
console.log('');
|
|
138
|
+
rl.prompt();
|
|
139
|
+
}).on('close', () => {
|
|
140
|
+
process.exit(0);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
startChat().catch(err => console.error(err));
|
|
144
|
+
//# sourceMappingURL=console-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-chat.js","sourceRoot":"","sources":["../../src/demo/console-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConversationSession = void 0;
|
|
4
|
+
const Message_1 = require("./Message");
|
|
5
|
+
const SessionState_1 = require("./SessionState");
|
|
6
|
+
class ConversationSession {
|
|
7
|
+
constructor(props) {
|
|
8
|
+
this.sessionId = props.sessionId;
|
|
9
|
+
this.mode = props.mode;
|
|
10
|
+
this.agentPrompt = props.agentPrompt;
|
|
11
|
+
this._messages = [];
|
|
12
|
+
this._status = SessionState_1.SessionStatus.ACTIVE;
|
|
13
|
+
this._metadata = {};
|
|
14
|
+
this.createdAt = new Date();
|
|
15
|
+
this.updatedAt = new Date();
|
|
16
|
+
}
|
|
17
|
+
// Helper to restore from persistence
|
|
18
|
+
static reconstitute(data) {
|
|
19
|
+
// We create a "shell" session via private constructor or just forcing it.
|
|
20
|
+
// For simplicity in this demo, we'll instantiate normally and override.
|
|
21
|
+
const session = new ConversationSession({
|
|
22
|
+
sessionId: data.sessionId,
|
|
23
|
+
mode: data.mode,
|
|
24
|
+
agentPrompt: data.agentPrompt
|
|
25
|
+
});
|
|
26
|
+
// Restore state
|
|
27
|
+
// Assuming messages are stored as plain objects, we need to map them back to Message instances
|
|
28
|
+
session._messages = (data.messages || []).map((m) => new Message_1.Message({
|
|
29
|
+
role: m.role,
|
|
30
|
+
content: m.content,
|
|
31
|
+
timestamp: new Date(m.timestamp),
|
|
32
|
+
metadata: m.metadata
|
|
33
|
+
}));
|
|
34
|
+
session._status = data.status;
|
|
35
|
+
session._metadata = data.metadata || {};
|
|
36
|
+
// @ts-ignore - writing to readonly for hydration
|
|
37
|
+
session.createdAt = new Date(data.createdAt);
|
|
38
|
+
session.updatedAt = new Date(data.updatedAt);
|
|
39
|
+
return session;
|
|
40
|
+
}
|
|
41
|
+
// Helper to snapshot for persistence
|
|
42
|
+
toSnapshot() {
|
|
43
|
+
return {
|
|
44
|
+
sessionId: this.sessionId,
|
|
45
|
+
mode: this.mode,
|
|
46
|
+
agentPrompt: this.agentPrompt,
|
|
47
|
+
messages: this._messages,
|
|
48
|
+
status: this._status,
|
|
49
|
+
metadata: this._metadata,
|
|
50
|
+
createdAt: this.createdAt,
|
|
51
|
+
updatedAt: this.updatedAt
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
get messages() {
|
|
55
|
+
return [...this._messages];
|
|
56
|
+
}
|
|
57
|
+
get status() {
|
|
58
|
+
return this._status;
|
|
59
|
+
}
|
|
60
|
+
addMessage(message) {
|
|
61
|
+
this._messages.push(message);
|
|
62
|
+
this.updatedAt = new Date();
|
|
63
|
+
}
|
|
64
|
+
updateStatus(status) {
|
|
65
|
+
this._status = status;
|
|
66
|
+
this.updatedAt = new Date();
|
|
67
|
+
}
|
|
68
|
+
setMetadata(key, value) {
|
|
69
|
+
this._metadata[key] = value;
|
|
70
|
+
this.updatedAt = new Date();
|
|
71
|
+
}
|
|
72
|
+
getMetadata(key) {
|
|
73
|
+
return this._metadata[key];
|
|
74
|
+
}
|
|
75
|
+
// Helper to get conversation history for LLM Context
|
|
76
|
+
// Can prepend system instructions here if needed by specific LLM adapters,
|
|
77
|
+
// but usually handled in the Adapter layer.
|
|
78
|
+
getHistory() {
|
|
79
|
+
return this._messages;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.ConversationSession = ConversationSession;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Message = exports.Role = void 0;
|
|
4
|
+
var Role;
|
|
5
|
+
(function (Role) {
|
|
6
|
+
Role["USER"] = "user";
|
|
7
|
+
Role["ASSISTANT"] = "assistant";
|
|
8
|
+
})(Role || (exports.Role = Role = {}));
|
|
9
|
+
class Message {
|
|
10
|
+
constructor(props) {
|
|
11
|
+
this.role = props.role;
|
|
12
|
+
this.content = props.content;
|
|
13
|
+
this.timestamp = props.timestamp;
|
|
14
|
+
this.metadata = props.metadata || {};
|
|
15
|
+
}
|
|
16
|
+
static user(content, metadata) {
|
|
17
|
+
return new Message({
|
|
18
|
+
role: Role.USER,
|
|
19
|
+
content,
|
|
20
|
+
timestamp: new Date(),
|
|
21
|
+
metadata
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static assistant(content, metadata) {
|
|
25
|
+
return new Message({
|
|
26
|
+
role: Role.ASSISTANT,
|
|
27
|
+
content,
|
|
28
|
+
timestamp: new Date(),
|
|
29
|
+
metadata
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Message = Message;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionStatus = void 0;
|
|
4
|
+
var SessionStatus;
|
|
5
|
+
(function (SessionStatus) {
|
|
6
|
+
SessionStatus["ACTIVE"] = "ACTIVE";
|
|
7
|
+
SessionStatus["WAITING_FOR_WORKFLOW"] = "WAITING_FOR_WORKFLOW";
|
|
8
|
+
SessionStatus["COMPLETED"] = "COMPLETED";
|
|
9
|
+
SessionStatus["FAILED"] = "FAILED";
|
|
10
|
+
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat-Flow - Production-ready conversation orchestration library
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
export * from './interfaces';
|
|
6
|
+
export { Orchestrator } from './orchestrator/Orchestrator';
|
|
7
|
+
export { ConversationSession } from './core/entities/ConversationSession';
|
|
8
|
+
export { Message } from './core/entities/Message';
|
|
9
|
+
export * from './core/errors';
|
|
10
|
+
export { ChatFlowConfig, DEFAULT_CONFIG, mergeConfig } from './config';
|
|
11
|
+
export { IIntentRepository } from './ports/IIntentRepository';
|
|
12
|
+
export { InMemoryRepository } from './adapters/repository/InMemoryRepository';
|
|
13
|
+
export { RedisRepository } from './adapters/repository/RedisRepository';
|
|
14
|
+
export { IntentRepository } from './adapters/repository/IntentRepository';
|
|
15
|
+
export { IntentService } from './intent/IntentService';
|
|
16
|
+
export { MockIntentService } from './intent/MockIntentService';
|
|
17
|
+
export { IntentService as RefactoredIntentService } from './adapters/intent/IntentService';
|
|
18
|
+
export { IntentMatcher } from './adapters/intent/IntentMatcher';
|
|
19
|
+
export { GeminiLLMAdapter } from './adapters/llm/GeminiLLMAdapter';
|
|
20
|
+
export { MockLLMAdapter } from './adapters/llm/MockLLMAdapter';
|
|
21
|
+
export { MockWorkflowAdapter } from './adapters/workflow/MockWorkflowAdapter';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chat-Flow - Production-ready conversation orchestration library
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.MockWorkflowAdapter = exports.MockLLMAdapter = exports.GeminiLLMAdapter = exports.IntentMatcher = exports.RefactoredIntentService = exports.MockIntentService = exports.IntentService = exports.IntentRepository = exports.RedisRepository = exports.InMemoryRepository = exports.mergeConfig = exports.DEFAULT_CONFIG = exports.Message = exports.ConversationSession = exports.Orchestrator = void 0;
|
|
22
|
+
// Export Core Interfaces
|
|
23
|
+
__exportStar(require("./interfaces"), exports);
|
|
24
|
+
// Export Core Entities
|
|
25
|
+
var Orchestrator_1 = require("./orchestrator/Orchestrator");
|
|
26
|
+
Object.defineProperty(exports, "Orchestrator", { enumerable: true, get: function () { return Orchestrator_1.Orchestrator; } });
|
|
27
|
+
var ConversationSession_1 = require("./core/entities/ConversationSession");
|
|
28
|
+
Object.defineProperty(exports, "ConversationSession", { enumerable: true, get: function () { return ConversationSession_1.ConversationSession; } });
|
|
29
|
+
var Message_1 = require("./core/entities/Message");
|
|
30
|
+
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return Message_1.Message; } });
|
|
31
|
+
// Export Errors
|
|
32
|
+
__exportStar(require("./core/errors"), exports);
|
|
33
|
+
// Export Configuration
|
|
34
|
+
var config_1 = require("./config");
|
|
35
|
+
Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return config_1.DEFAULT_CONFIG; } });
|
|
36
|
+
Object.defineProperty(exports, "mergeConfig", { enumerable: true, get: function () { return config_1.mergeConfig; } });
|
|
37
|
+
// Export Repositories
|
|
38
|
+
var InMemoryRepository_1 = require("./adapters/repository/InMemoryRepository");
|
|
39
|
+
Object.defineProperty(exports, "InMemoryRepository", { enumerable: true, get: function () { return InMemoryRepository_1.InMemoryRepository; } });
|
|
40
|
+
var RedisRepository_1 = require("./adapters/repository/RedisRepository");
|
|
41
|
+
Object.defineProperty(exports, "RedisRepository", { enumerable: true, get: function () { return RedisRepository_1.RedisRepository; } });
|
|
42
|
+
var IntentRepository_1 = require("./adapters/repository/IntentRepository");
|
|
43
|
+
Object.defineProperty(exports, "IntentRepository", { enumerable: true, get: function () { return IntentRepository_1.IntentRepository; } });
|
|
44
|
+
// Export Intent Services
|
|
45
|
+
var IntentService_1 = require("./intent/IntentService");
|
|
46
|
+
Object.defineProperty(exports, "IntentService", { enumerable: true, get: function () { return IntentService_1.IntentService; } });
|
|
47
|
+
var MockIntentService_1 = require("./intent/MockIntentService");
|
|
48
|
+
Object.defineProperty(exports, "MockIntentService", { enumerable: true, get: function () { return MockIntentService_1.MockIntentService; } });
|
|
49
|
+
var IntentService_2 = require("./adapters/intent/IntentService");
|
|
50
|
+
Object.defineProperty(exports, "RefactoredIntentService", { enumerable: true, get: function () { return IntentService_2.IntentService; } });
|
|
51
|
+
var IntentMatcher_1 = require("./adapters/intent/IntentMatcher");
|
|
52
|
+
Object.defineProperty(exports, "IntentMatcher", { enumerable: true, get: function () { return IntentMatcher_1.IntentMatcher; } });
|
|
53
|
+
// Export LLM Adapters
|
|
54
|
+
var GeminiLLMAdapter_1 = require("./adapters/llm/GeminiLLMAdapter");
|
|
55
|
+
Object.defineProperty(exports, "GeminiLLMAdapter", { enumerable: true, get: function () { return GeminiLLMAdapter_1.GeminiLLMAdapter; } });
|
|
56
|
+
var MockLLMAdapter_1 = require("./adapters/llm/MockLLMAdapter");
|
|
57
|
+
Object.defineProperty(exports, "MockLLMAdapter", { enumerable: true, get: function () { return MockLLMAdapter_1.MockLLMAdapter; } });
|
|
58
|
+
// Export Workflow Adapters
|
|
59
|
+
var MockWorkflowAdapter_1 = require("./adapters/workflow/MockWorkflowAdapter");
|
|
60
|
+
Object.defineProperty(exports, "MockWorkflowAdapter", { enumerable: true, get: function () { return MockWorkflowAdapter_1.MockWorkflowAdapter; } });
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,+CAA6B;AAE7B,uBAAuB;AACvB,4DAA2D;AAAlD,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,0HAAA,mBAAmB,OAAA;AAC5B,mDAAkD;AAAzC,kGAAA,OAAO,OAAA;AAEhB,gBAAgB;AAChB,gDAA8B;AAE9B,uBAAuB;AACvB,mCAAuE;AAA9C,wGAAA,cAAc,OAAA;AAAE,qGAAA,WAAW,OAAA;AAKpD,sBAAsB;AACtB,+EAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAC3B,yEAAwE;AAA/D,kHAAA,eAAe,OAAA;AACxB,2EAA0E;AAAjE,oHAAA,gBAAgB,OAAA;AAEzB,yBAAyB;AACzB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,gEAA+D;AAAtD,sHAAA,iBAAiB,OAAA;AAC1B,iEAA2F;AAAlF,wHAAA,aAAa,OAA2B;AACjD,iEAAgE;AAAvD,8GAAA,aAAa,OAAA;AAEtB,sBAAsB;AACtB,oEAAmE;AAA1D,oHAAA,gBAAgB,OAAA;AACzB,gEAA+D;AAAtD,gHAAA,cAAc,OAAA;AAEvB,2BAA2B;AAC3B,+EAA8E;AAArE,0HAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IIntentService, IntentResult, Message, Intent, MatchedIntent } from "../interfaces";
|
|
2
|
+
import { RedisRepository } from "../adapters/repository/RedisRepository";
|
|
3
|
+
import { GeminiLLMAdapter } from "../adapters/llm/GeminiLLMAdapter";
|
|
4
|
+
/**
|
|
5
|
+
* Legacy IntentService for backward compatibility
|
|
6
|
+
* @deprecated Use the new IntentService from adapters/intent instead
|
|
7
|
+
*/
|
|
8
|
+
export declare class IntentService implements IIntentService {
|
|
9
|
+
private repository;
|
|
10
|
+
private matcher;
|
|
11
|
+
private confidenceThreshold;
|
|
12
|
+
constructor(genAI: GeminiLLMAdapter, redisRepo: RedisRepository, confidenceThreshold?: number);
|
|
13
|
+
upsertIntents(intents: Intent[]): Promise<void>;
|
|
14
|
+
matchIntents(context: string | object, confidenceThreshold?: number): Promise<MatchedIntent[]>;
|
|
15
|
+
detectIntent(history: Message[], systemPrompt: string): Promise<IntentResult>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=IntentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentService.d.ts","sourceRoot":"","sources":["../../src/intent/IntentService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI7F,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAChD,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,GAAE,MAAW;IAM3F,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,YAAY,CACd,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,mBAAmB,GAAE,MAAiC,GACvD,OAAO,CAAC,aAAa,EAAE,CAAC;IAKrB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAkCtF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IntentService = void 0;
|
|
4
|
+
const IntentMatcher_1 = require("../adapters/intent/IntentMatcher");
|
|
5
|
+
const IntentRepository_1 = require("../adapters/repository/IntentRepository");
|
|
6
|
+
/**
|
|
7
|
+
* Legacy IntentService for backward compatibility
|
|
8
|
+
* @deprecated Use the new IntentService from adapters/intent instead
|
|
9
|
+
*/
|
|
10
|
+
class IntentService {
|
|
11
|
+
constructor(genAI, redisRepo, confidenceThreshold = 70) {
|
|
12
|
+
this.repository = new IntentRepository_1.IntentRepository(redisRepo);
|
|
13
|
+
this.matcher = new IntentMatcher_1.IntentMatcher(genAI);
|
|
14
|
+
this.confidenceThreshold = confidenceThreshold;
|
|
15
|
+
}
|
|
16
|
+
async upsertIntents(intents) {
|
|
17
|
+
return this.repository.upsertIntents(intents);
|
|
18
|
+
}
|
|
19
|
+
async matchIntents(context, confidenceThreshold = this.confidenceThreshold) {
|
|
20
|
+
const allIntents = await this.repository.getAllIntents();
|
|
21
|
+
return this.matcher.matchIntents(context, allIntents, confidenceThreshold);
|
|
22
|
+
}
|
|
23
|
+
async detectIntent(history, systemPrompt) {
|
|
24
|
+
const allIntents = await this.repository.getAllIntents();
|
|
25
|
+
if (allIntents.length === 0) {
|
|
26
|
+
return {
|
|
27
|
+
intentName: null,
|
|
28
|
+
confidence: 0,
|
|
29
|
+
payload: {}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const match = await this.matcher.detectFromHistory(history, allIntents, this.confidenceThreshold);
|
|
33
|
+
if (match) {
|
|
34
|
+
return {
|
|
35
|
+
intentName: match.intent.name,
|
|
36
|
+
confidence: match.confidence / 100,
|
|
37
|
+
payload: {
|
|
38
|
+
...match.required_values,
|
|
39
|
+
...match.optional_values
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
intentName: null,
|
|
45
|
+
confidence: 0,
|
|
46
|
+
payload: {}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.IntentService = IntentService;
|
|
51
|
+
//# sourceMappingURL=IntentService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentService.js","sourceRoot":"","sources":["../../src/intent/IntentService.ts"],"names":[],"mappings":";;;AAEA,oEAAiE;AACjE,8EAA2E;AAI3E;;;GAGG;AACH,MAAa,aAAa;IAKtB,YAAY,KAAuB,EAAE,SAA0B,EAAE,sBAA8B,EAAE;QAC7F,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAgB,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CACd,OAAwB,EACxB,sBAA8B,IAAI,CAAC,mBAAmB;QAEtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAkB,EAAE,YAAoB;QACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAEzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACH,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE;aACd,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC9C,OAAO,EACP,UAAU,EACV,IAAI,CAAC,mBAAmB,CAC3B,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACR,OAAO;gBACH,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;gBAC7B,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,GAAG;gBAClC,OAAO,EAAE;oBACL,GAAG,KAAK,CAAC,eAAe;oBACxB,GAAG,KAAK,CAAC,eAAe;iBAC3B;aACJ,CAAC;QACN,CAAC;QAED,OAAO;YACH,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,EAAE;SACd,CAAC;IACN,CAAC;CACJ;AAzDD,sCAyDC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IIntentService, IntentResult } from '../interfaces';
|
|
2
|
+
import { Message } from '../interfaces';
|
|
3
|
+
export declare class MockIntentService implements IIntentService {
|
|
4
|
+
detectIntent(history: Message[], systemPrompt: string): Promise<IntentResult>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=MockIntentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockIntentService.d.ts","sourceRoot":"","sources":["../../src/intent/MockIntentService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,qBAAa,iBAAkB,YAAW,cAAc;IAC9C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA0BtF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockIntentService = void 0;
|
|
4
|
+
class MockIntentService {
|
|
5
|
+
async detectIntent(history, systemPrompt) {
|
|
6
|
+
const lastMsg = history[history.length - 1].content.toLowerCase();
|
|
7
|
+
// Simple keyword detection for demo
|
|
8
|
+
if (lastMsg.includes('book') || lastMsg.includes('flight') || lastMsg.includes('paris')) {
|
|
9
|
+
return {
|
|
10
|
+
intentName: 'USER_WANTS_FLIGHT',
|
|
11
|
+
confidence: 0.95,
|
|
12
|
+
payload: { destination: 'Paris' }
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (lastMsg.includes('morning') || lastMsg.includes('10 am')) {
|
|
16
|
+
return {
|
|
17
|
+
intentName: 'USER_SELECT_FLIGHT',
|
|
18
|
+
confidence: 0.9,
|
|
19
|
+
payload: { chosen_flight: 'AC123 (10:00 AM)' }
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
intentName: null,
|
|
24
|
+
confidence: 0,
|
|
25
|
+
payload: {}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.MockIntentService = MockIntentService;
|
|
30
|
+
//# sourceMappingURL=MockIntentService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockIntentService.js","sourceRoot":"","sources":["../../src/intent/MockIntentService.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC1B,KAAK,CAAC,YAAY,CAAC,OAAkB,EAAE,YAAoB;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAElE,oCAAoC;QACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtF,OAAO;gBACH,UAAU,EAAE,mBAAmB;gBAC/B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;aACpC,CAAC;QACN,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACH,UAAU,EAAE,oBAAoB;gBAChC,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE;aACjD,CAAC;QACN,CAAC;QAED,OAAO;YACH,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,EAAE;SACd,CAAC;IACN,CAAC;CACJ;AA3BD,8CA2BC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
export declare enum Role {
|
|
2
|
+
USER = "user",
|
|
3
|
+
ASSISTANT = "assistant",
|
|
4
|
+
SYSTEM = "system"
|
|
5
|
+
}
|
|
6
|
+
export declare enum SessionStatus {
|
|
7
|
+
ACTIVE = "ACTIVE",
|
|
8
|
+
WAITING_FOR_WORKFLOW = "WAITING_FOR_WORKFLOW",
|
|
9
|
+
COMPLETED = "COMPLETED",
|
|
10
|
+
FAILED = "FAILED"
|
|
11
|
+
}
|
|
12
|
+
export interface Message {
|
|
13
|
+
role: Role;
|
|
14
|
+
content: string;
|
|
15
|
+
timestamp: Date;
|
|
16
|
+
metadata?: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
export interface Field {
|
|
19
|
+
name: string;
|
|
20
|
+
type: string;
|
|
21
|
+
default_value?: any;
|
|
22
|
+
}
|
|
23
|
+
export interface Intent {
|
|
24
|
+
id?: number;
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
required_fields: Field[];
|
|
28
|
+
optional_fields?: Field[];
|
|
29
|
+
}
|
|
30
|
+
export interface MatchedIntent {
|
|
31
|
+
intent: Intent;
|
|
32
|
+
confidence: number;
|
|
33
|
+
required_values: Record<string, any>;
|
|
34
|
+
optional_values: Record<string, any>;
|
|
35
|
+
}
|
|
36
|
+
export interface IntentResult {
|
|
37
|
+
intentName: string | null;
|
|
38
|
+
confidence: number;
|
|
39
|
+
payload?: Record<string, any>;
|
|
40
|
+
rawResponse?: any;
|
|
41
|
+
}
|
|
42
|
+
export interface IIntentService {
|
|
43
|
+
/**
|
|
44
|
+
* Analyzes the conversation history and latest message to detect user intent.
|
|
45
|
+
* @param history Full conversation history or relevant window.
|
|
46
|
+
* @param systemPrompt Context for the intent detector.
|
|
47
|
+
*/
|
|
48
|
+
detectIntent(history: Message[], systemPrompt: string): Promise<IntentResult>;
|
|
49
|
+
}
|
|
50
|
+
import { ConversationSession } from './core/entities/ConversationSession';
|
|
51
|
+
export interface IRepository {
|
|
52
|
+
saveSession(session: ConversationSession): Promise<void>;
|
|
53
|
+
findSessionById(sessionId: string): Promise<ConversationSession | null>;
|
|
54
|
+
saveIntent(intent: Intent): Promise<void>;
|
|
55
|
+
upsertIntents(intents: Intent[]): Promise<void>;
|
|
56
|
+
findIntentByName(name: string): Promise<Intent | null>;
|
|
57
|
+
getAllIntents(): Promise<Intent[]>;
|
|
58
|
+
deleteIntent(name: string): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export interface LLMResponse {
|
|
61
|
+
content: string;
|
|
62
|
+
usage?: {
|
|
63
|
+
promptTokens: number;
|
|
64
|
+
completionTokens: number;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface ILLMAdapter {
|
|
68
|
+
generateResponse(prompt: string, history: Message[]): Promise<LLMResponse>;
|
|
69
|
+
generateContent?(prompt: string): Promise<string>;
|
|
70
|
+
}
|
|
71
|
+
export interface WorkflowResult {
|
|
72
|
+
success: boolean;
|
|
73
|
+
data?: any;
|
|
74
|
+
userMessage?: string;
|
|
75
|
+
error?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface IOrchestrator {
|
|
78
|
+
createSession(sessionId: string, mode: 'TEXT' | 'VOICE', agentPrompt: string): Promise<ConversationSession>;
|
|
79
|
+
handleMessage(sessionId: string, content: string): Promise<{
|
|
80
|
+
messages: Message[];
|
|
81
|
+
metadata?: any;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
export interface IWorkflowAdapter {
|
|
85
|
+
executeWorkflow(workflowId: string, context: any): Promise<WorkflowResult>;
|
|
86
|
+
}
|
|
87
|
+
export interface ConversationSessionProps {
|
|
88
|
+
sessionId: string;
|
|
89
|
+
mode: 'TEXT' | 'VOICE';
|
|
90
|
+
agentPrompt: string;
|
|
91
|
+
messages: any[];
|
|
92
|
+
status: SessionStatus;
|
|
93
|
+
createdAt: Date;
|
|
94
|
+
updatedAt: Date;
|
|
95
|
+
metadata?: Record<string, any>;
|
|
96
|
+
}
|
|
97
|
+
export interface MessageProps {
|
|
98
|
+
role: Role;
|
|
99
|
+
content: string;
|
|
100
|
+
timestamp: Date;
|
|
101
|
+
metadata?: Record<string, any>;
|
|
102
|
+
}
|
|
103
|
+
export interface CreateSessionProps {
|
|
104
|
+
sessionId: string;
|
|
105
|
+
mode: 'TEXT' | 'VOICE';
|
|
106
|
+
agentPrompt: string;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// --- Enums & Common Types ---
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SessionStatus = exports.Role = void 0;
|
|
5
|
+
var Role;
|
|
6
|
+
(function (Role) {
|
|
7
|
+
Role["USER"] = "user";
|
|
8
|
+
Role["ASSISTANT"] = "assistant";
|
|
9
|
+
Role["SYSTEM"] = "system";
|
|
10
|
+
})(Role || (exports.Role = Role = {}));
|
|
11
|
+
var SessionStatus;
|
|
12
|
+
(function (SessionStatus) {
|
|
13
|
+
SessionStatus["ACTIVE"] = "ACTIVE";
|
|
14
|
+
SessionStatus["WAITING_FOR_WORKFLOW"] = "WAITING_FOR_WORKFLOW";
|
|
15
|
+
SessionStatus["COMPLETED"] = "COMPLETED";
|
|
16
|
+
SessionStatus["FAILED"] = "FAILED";
|
|
17
|
+
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
|
18
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B,IAAY,IAIX;AAJD,WAAY,IAAI;IACZ,qBAAa,CAAA;IACb,+BAAuB,CAAA;IACvB,yBAAiB,CAAA;AACrB,CAAC,EAJW,IAAI,oBAAJ,IAAI,QAIf;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,8DAA6C,CAAA;IAC7C,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;AACrB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ILLMAdapter, LLMResponse, Message } from '../interfaces';
|
|
2
|
+
export declare class GeminiLLMAdapter implements ILLMAdapter {
|
|
3
|
+
private genAI;
|
|
4
|
+
private model;
|
|
5
|
+
private embeddingModel;
|
|
6
|
+
constructor(apiKey: string);
|
|
7
|
+
generateResponse(systemPrompt: string, history: Message[]): Promise<LLMResponse>;
|
|
8
|
+
generateContent(prompt: string): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=GeminiLLMAdapter.d.ts.map
|