@ainetwork/adk 0.1.6 → 0.1.8
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/cjs/chunk-2E6X6IDL.cjs +37 -0
- package/dist/cjs/chunk-2E6X6IDL.cjs.map +1 -0
- package/dist/cjs/chunk-2G7V7SC5.cjs +18 -0
- package/dist/cjs/chunk-2G7V7SC5.cjs.map +1 -0
- package/dist/cjs/chunk-3JKRJYJ6.cjs +111 -0
- package/dist/cjs/chunk-3JKRJYJ6.cjs.map +1 -0
- package/dist/cjs/chunk-466ED5WN.cjs +41 -0
- package/dist/cjs/chunk-466ED5WN.cjs.map +1 -0
- package/dist/cjs/chunk-4ESGHH2M.cjs +20 -0
- package/dist/cjs/chunk-4ESGHH2M.cjs.map +1 -0
- package/dist/cjs/chunk-4HY26I2C.cjs +168 -0
- package/dist/cjs/chunk-4HY26I2C.cjs.map +1 -0
- package/dist/cjs/chunk-5OWM5IH4.cjs +20 -0
- package/dist/cjs/chunk-5OWM5IH4.cjs.map +1 -0
- package/dist/cjs/chunk-6S6GEY3D.cjs +37 -0
- package/dist/cjs/chunk-6S6GEY3D.cjs.map +1 -0
- package/dist/cjs/chunk-CYW6ICAW.cjs +106 -0
- package/dist/cjs/chunk-CYW6ICAW.cjs.map +1 -0
- package/dist/cjs/chunk-DQP6RGIR.cjs +162 -0
- package/dist/cjs/chunk-DQP6RGIR.cjs.map +1 -0
- package/dist/cjs/chunk-FWFEVDEY.cjs +172 -0
- package/dist/cjs/chunk-FWFEVDEY.cjs.map +1 -0
- package/dist/cjs/chunk-GEQMVWSK.cjs +275 -0
- package/dist/cjs/chunk-GEQMVWSK.cjs.map +1 -0
- package/dist/cjs/chunk-HKIUAJ45.cjs +37 -0
- package/dist/cjs/chunk-HKIUAJ45.cjs.map +1 -0
- package/dist/cjs/chunk-ICFTUZP5.cjs +111 -0
- package/dist/cjs/chunk-ICFTUZP5.cjs.map +1 -0
- package/dist/cjs/chunk-MIXAV5OD.cjs +43 -0
- package/dist/cjs/chunk-MIXAV5OD.cjs.map +1 -0
- package/dist/cjs/chunk-MMWEU2MO.cjs +100 -0
- package/dist/cjs/chunk-MMWEU2MO.cjs.map +1 -0
- package/dist/cjs/chunk-NYYEZ4ER.cjs +22 -0
- package/dist/cjs/chunk-NYYEZ4ER.cjs.map +1 -0
- package/dist/cjs/chunk-OBUCVZNU.cjs +37 -0
- package/dist/cjs/chunk-OBUCVZNU.cjs.map +1 -0
- package/dist/cjs/chunk-RMRFCEP4.cjs +8 -0
- package/dist/cjs/chunk-RMRFCEP4.cjs.map +1 -0
- package/dist/cjs/chunk-RPMERDHU.cjs +44 -0
- package/dist/cjs/chunk-RPMERDHU.cjs.map +1 -0
- package/dist/cjs/chunk-RWQDV2XY.cjs +166 -0
- package/dist/cjs/chunk-RWQDV2XY.cjs.map +1 -0
- package/dist/cjs/chunk-TNLJ6AVP.cjs +22 -0
- package/dist/cjs/chunk-TNLJ6AVP.cjs.map +1 -0
- package/dist/cjs/chunk-TRT5ABOM.cjs +43 -0
- package/dist/cjs/chunk-TRT5ABOM.cjs.map +1 -0
- package/dist/cjs/chunk-UQ72NNHV.cjs +225 -0
- package/dist/cjs/chunk-UQ72NNHV.cjs.map +1 -0
- package/dist/cjs/chunk-XZAKXJYO.cjs +20 -0
- package/dist/cjs/chunk-XZAKXJYO.cjs.map +1 -0
- package/dist/cjs/chunk-YE52UBF3.cjs +66 -0
- package/dist/cjs/chunk-YE52UBF3.cjs.map +1 -0
- package/dist/cjs/chunk-ZAZ3KYP5.cjs +43 -0
- package/dist/cjs/chunk-ZAZ3KYP5.cjs.map +1 -0
- package/dist/cjs/chunk-ZSEBMINV.cjs +44 -0
- package/dist/cjs/chunk-ZSEBMINV.cjs.map +1 -0
- package/dist/cjs/controllers/a2a.controller.cjs +3 -3
- package/dist/cjs/controllers/index.cjs +4 -4
- package/dist/cjs/controllers/query.controller.cjs +2 -2
- package/dist/cjs/index.cjs +17 -16
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/middlewares/error.middleware.cjs +3 -3
- package/dist/cjs/modules/a2a/a2a.module.cjs +3 -3
- package/dist/cjs/modules/index.cjs +9 -9
- package/dist/cjs/modules/index.cjs.map +1 -1
- package/dist/cjs/modules/mcp/mcp.module.cjs +3 -3
- package/dist/cjs/modules/models/base.model.cjs +2 -2
- package/dist/cjs/routes/a2a.routes.cjs +7 -7
- package/dist/cjs/routes/index.cjs +10 -9
- package/dist/cjs/routes/index.cjs.map +1 -1
- package/dist/cjs/routes/query.routes.cjs +7 -6
- package/dist/cjs/routes/query.routes.cjs.map +1 -1
- package/dist/cjs/services/a2a.service.cjs +3 -3
- package/dist/cjs/services/index.cjs +10 -6
- package/dist/cjs/services/index.cjs.map +1 -1
- package/dist/cjs/services/query-stream.service.cjs +10 -0
- package/dist/cjs/services/query-stream.service.cjs.map +1 -0
- package/dist/cjs/services/query.service.cjs +4 -4
- package/dist/cjs/types/memory.cjs +2 -2
- package/dist/cjs/types/stream.cjs +1 -0
- package/dist/cjs/types/stream.cjs.map +1 -0
- package/dist/cjs/utils/logger.cjs +2 -2
- package/dist/esm/{chunk-GZFRRFOE.js → chunk-2BITOA2R.js} +1 -1
- package/dist/esm/chunk-2BITOA2R.js.map +1 -0
- package/dist/esm/{chunk-BTZVK3EA.js → chunk-BDMVIJPF.js} +18 -12
- package/dist/esm/{chunk-BTZVK3EA.js.map → chunk-BDMVIJPF.js.map} +1 -1
- package/dist/esm/{chunk-SQWZXP4P.js → chunk-C6SGV7JV.js} +7 -3
- package/dist/esm/{chunk-SQWZXP4P.js.map → chunk-C6SGV7JV.js.map} +1 -1
- package/dist/esm/{chunk-N6T2JOGC.js → chunk-DRUCJYPJ.js} +4 -8
- package/dist/esm/chunk-DRUCJYPJ.js.map +1 -0
- package/dist/esm/chunk-F3YHV3TK.js +43 -0
- package/dist/esm/chunk-F3YHV3TK.js.map +1 -0
- package/dist/esm/{chunk-EODMRV4H.js → chunk-HAE333YO.js} +2 -2
- package/dist/esm/{chunk-U2Y64SAC.js → chunk-JOE4VYJJ.js} +4 -4
- package/dist/esm/{chunk-ILFWNK3W.js → chunk-MAU2MAK2.js} +2 -2
- package/dist/esm/{chunk-64GEXWSE.js → chunk-N7VYM2R5.js} +2 -1
- package/dist/esm/chunk-N7VYM2R5.js.map +1 -0
- package/dist/esm/chunk-OWL56P6L.js +275 -0
- package/dist/esm/chunk-OWL56P6L.js.map +1 -0
- package/dist/esm/chunk-RN3S44OH.js +44 -0
- package/dist/esm/chunk-RN3S44OH.js.map +1 -0
- package/dist/esm/{chunk-F727XG4N.js → chunk-VAZWF5IK.js} +1 -1
- package/dist/esm/{chunk-F727XG4N.js.map → chunk-VAZWF5IK.js.map} +1 -1
- package/dist/esm/{chunk-AQ5YZERE.js → chunk-Y6E73I7I.js} +2 -2
- package/dist/esm/{chunk-7QSZHJU5.js → chunk-YT6PD6UF.js} +4 -4
- package/dist/esm/controllers/a2a.controller.d.ts +1 -0
- package/dist/esm/controllers/a2a.controller.js +2 -2
- package/dist/esm/controllers/api/model.api.controller.d.ts +1 -0
- package/dist/esm/controllers/index.d.ts +2 -0
- package/dist/esm/controllers/index.js +7 -7
- package/dist/esm/controllers/query.controller.d.ts +5 -1
- package/dist/esm/controllers/query.controller.js +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +22 -21
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/middlewares/error.middleware.js +2 -2
- package/dist/esm/modules/a2a/a2a.module.d.ts +1 -1
- package/dist/esm/modules/a2a/a2a.module.js +2 -2
- package/dist/esm/modules/index.d.ts +1 -0
- package/dist/esm/modules/index.js +10 -10
- package/dist/esm/modules/mcp/mcp.module.d.ts +1 -1
- package/dist/esm/modules/mcp/mcp.module.js +2 -2
- package/dist/esm/modules/memory/base.memory.d.ts +3 -3
- package/dist/esm/modules/models/base.model.d.ts +13 -0
- package/dist/esm/modules/models/base.model.js +1 -1
- package/dist/esm/modules/models/model.module.d.ts +1 -0
- package/dist/esm/routes/a2a.routes.d.ts +1 -0
- package/dist/esm/routes/a2a.routes.js +6 -6
- package/dist/esm/routes/api/models.routes.d.ts +1 -0
- package/dist/esm/routes/api.routes.d.ts +1 -0
- package/dist/esm/routes/api.routes.js +2 -2
- package/dist/esm/routes/index.d.ts +1 -0
- package/dist/esm/routes/index.js +17 -16
- package/dist/esm/routes/query.routes.d.ts +2 -1
- package/dist/esm/routes/query.routes.js +6 -5
- package/dist/esm/services/a2a.service.d.ts +1 -0
- package/dist/esm/services/a2a.service.js +2 -2
- package/dist/esm/services/index.d.ts +3 -0
- package/dist/esm/services/index.js +9 -5
- package/dist/esm/services/query-stream.service.d.ts +81 -0
- package/dist/esm/services/query-stream.service.js +10 -0
- package/dist/esm/services/query-stream.service.js.map +1 -0
- package/dist/esm/services/query.service.d.ts +1 -0
- package/dist/esm/services/query.service.js +3 -3
- package/dist/esm/types/memory.d.ts +9 -1
- package/dist/esm/types/memory.js +1 -1
- package/dist/esm/types/stream.d.ts +45 -0
- package/dist/esm/types/stream.js +1 -0
- package/dist/esm/types/stream.js.map +1 -0
- package/dist/esm/utils/logger.d.ts +1 -0
- package/dist/esm/utils/logger.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-64GEXWSE.js.map +0 -1
- package/dist/esm/chunk-GZFRRFOE.js.map +0 -1
- package/dist/esm/chunk-N6T2JOGC.js.map +0 -1
- package/dist/esm/chunk-NH7BYWQV.js +0 -27
- package/dist/esm/chunk-NH7BYWQV.js.map +0 -1
- package/dist/esm/chunk-WIJDRP2A.js +0 -26
- package/dist/esm/chunk-WIJDRP2A.js.map +0 -1
- /package/dist/esm/{chunk-EODMRV4H.js.map → chunk-HAE333YO.js.map} +0 -0
- /package/dist/esm/{chunk-U2Y64SAC.js.map → chunk-JOE4VYJJ.js.map} +0 -0
- /package/dist/esm/{chunk-ILFWNK3W.js.map → chunk-MAU2MAK2.js.map} +0 -0
- /package/dist/esm/{chunk-AQ5YZERE.js.map → chunk-Y6E73I7I.js.map} +0 -0
- /package/dist/esm/{chunk-7QSZHJU5.js.map → chunk-YT6PD6UF.js.map} +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { A2AModule } from '../modules/a2a/a2a.module.js';
|
|
3
|
+
import { MCPModule } from '../modules/mcp/mcp.module.js';
|
|
4
|
+
import { SessionObject } from '../types/memory.js';
|
|
5
|
+
import { MemoryModule } from '../modules/memory/memory.module.js';
|
|
6
|
+
import { StreamEvent } from '../types/stream.js';
|
|
7
|
+
import { ModelModule } from '../modules/models/model.module.js';
|
|
8
|
+
import { AinAgentPrompts } from '../types/agent.js';
|
|
9
|
+
import '@a2a-js/sdk';
|
|
10
|
+
import '../modules/a2a/a2a.tool.js';
|
|
11
|
+
import '@a2a-js/sdk/client';
|
|
12
|
+
import '../types/tool.js';
|
|
13
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
14
|
+
import '../types/mcp.js';
|
|
15
|
+
import '@modelcontextprotocol/sdk/client/stdio.js';
|
|
16
|
+
import '../modules/mcp/mcp.tool.js';
|
|
17
|
+
import '../modules/memory/base.memory.js';
|
|
18
|
+
import '../modules/models/base.model.js';
|
|
19
|
+
import 'http-status-codes';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Service for processing user queries through the agent's AI pipeline.
|
|
23
|
+
*
|
|
24
|
+
* Orchestrates the query processing workflow including intent detection,
|
|
25
|
+
* model inference, tool execution, and response generation. Manages
|
|
26
|
+
* conversation context and coordinates between different modules.
|
|
27
|
+
*/
|
|
28
|
+
declare class QueryStreamService {
|
|
29
|
+
private modelModule;
|
|
30
|
+
private a2aModule?;
|
|
31
|
+
private mcpModule?;
|
|
32
|
+
private memoryModule?;
|
|
33
|
+
private prompts?;
|
|
34
|
+
constructor(modelModule: ModelModule, a2aModule?: A2AModule, mcpModule?: MCPModule, memoryModule?: MemoryModule, prompts?: AinAgentPrompts);
|
|
35
|
+
/**
|
|
36
|
+
* Detects the intent from a user query.
|
|
37
|
+
*
|
|
38
|
+
* @param query - The user's input query
|
|
39
|
+
* @returns The detected intent (currently returns the query as-is)
|
|
40
|
+
* @todo Implement actual intent detection logic
|
|
41
|
+
*/
|
|
42
|
+
private intentTriggering;
|
|
43
|
+
/**
|
|
44
|
+
* Fulfills the detected intent by generating a response.
|
|
45
|
+
*
|
|
46
|
+
* Manages the complete inference loop including:
|
|
47
|
+
* - Loading prompts and conversation history
|
|
48
|
+
* - Collecting available tools from modules
|
|
49
|
+
* - Executing model inference with tool support
|
|
50
|
+
* - Processing tool calls iteratively until completion
|
|
51
|
+
*
|
|
52
|
+
* @param query - The user's input query
|
|
53
|
+
* @param sessionId - Session identifier for context
|
|
54
|
+
* @param sessionHistory - Previous conversation history
|
|
55
|
+
* @returns Object containing process steps and final response
|
|
56
|
+
*/
|
|
57
|
+
intentFulfilling(query: string, sessionId: string, sessionHistory?: SessionObject): AsyncGenerator<StreamEvent>;
|
|
58
|
+
/**
|
|
59
|
+
* Generates a title for the conversation based on the query.
|
|
60
|
+
*
|
|
61
|
+
* @param query - The user's input query
|
|
62
|
+
* @returns Promise resolving to a generated title
|
|
63
|
+
*/
|
|
64
|
+
private generateTitle;
|
|
65
|
+
/**
|
|
66
|
+
* Main entry point for processing user queries.
|
|
67
|
+
*
|
|
68
|
+
* Handles the complete query lifecycle:
|
|
69
|
+
* 1. Loads session history from memory
|
|
70
|
+
* 2. Detects intent from the query
|
|
71
|
+
* 3. Fulfills the intent with AI response
|
|
72
|
+
* 4. Updates conversation history
|
|
73
|
+
*
|
|
74
|
+
* @param query - The user's input query
|
|
75
|
+
* @param sessionId - Unique session identifier
|
|
76
|
+
* @returns Object containing the AI-generated response
|
|
77
|
+
*/
|
|
78
|
+
handleQueryStream(query: string, userId: string, res: Response, _sessionId?: string): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { QueryStreamService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
QueryService
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-DRUCJYPJ.js";
|
|
4
|
+
import "../chunk-VAZWF5IK.js";
|
|
5
5
|
import "../chunk-FI2UQLVC.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-N7VYM2R5.js";
|
|
7
7
|
export {
|
|
8
8
|
QueryService
|
|
9
9
|
};
|
|
@@ -54,6 +54,11 @@ type ChatObject = {
|
|
|
54
54
|
[key: string]: unknown;
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
|
+
type SessionMetadata = {
|
|
58
|
+
title?: string;
|
|
59
|
+
sessionId: string;
|
|
60
|
+
updatedAt: number;
|
|
61
|
+
};
|
|
57
62
|
/**
|
|
58
63
|
* Represents a conversation session containing multiple chat messages.
|
|
59
64
|
*
|
|
@@ -71,6 +76,7 @@ type ChatObject = {
|
|
|
71
76
|
* ```
|
|
72
77
|
*/
|
|
73
78
|
type SessionObject = {
|
|
79
|
+
title?: string;
|
|
74
80
|
/** Collection of chat messages indexed by unique chat ID */
|
|
75
81
|
chats: {
|
|
76
82
|
[chatId: string]: ChatObject;
|
|
@@ -79,6 +85,8 @@ type SessionObject = {
|
|
|
79
85
|
interface Intent {
|
|
80
86
|
name: string;
|
|
81
87
|
description: string;
|
|
88
|
+
prompt?: string;
|
|
89
|
+
llm?: string;
|
|
82
90
|
}
|
|
83
91
|
|
|
84
|
-
export { type ChatContentObject, type ChatObject, ChatRole, type Intent, MemoryType, type SessionObject };
|
|
92
|
+
export { type ChatContentObject, type ChatObject, ChatRole, type Intent, MemoryType, type SessionMetadata, type SessionObject };
|
package/dist/esm/types/memory.js
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
type StreamEvent = {
|
|
2
|
+
event: "tool_start" | "tool_output" | "text_chunk" | "error";
|
|
3
|
+
data: Record<string, any>;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Tool call delta for streaming tool invocations
|
|
7
|
+
*/
|
|
8
|
+
interface ToolCallDelta {
|
|
9
|
+
index: number;
|
|
10
|
+
id?: string;
|
|
11
|
+
type?: "function";
|
|
12
|
+
function?: {
|
|
13
|
+
name?: string;
|
|
14
|
+
arguments?: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Normalized stream chunk interface for all LLM providers.
|
|
19
|
+
*
|
|
20
|
+
* This interface provides a consistent structure for stream responses
|
|
21
|
+
* across different AI model providers (OpenAI, Gemini, Claude, etc.)
|
|
22
|
+
*/
|
|
23
|
+
interface StreamChunk {
|
|
24
|
+
/** Text content delta from the model */
|
|
25
|
+
delta?: {
|
|
26
|
+
role?: string;
|
|
27
|
+
content?: string;
|
|
28
|
+
tool_calls?: ToolCallDelta[];
|
|
29
|
+
};
|
|
30
|
+
/** Indicates if the stream has finished and why */
|
|
31
|
+
finish_reason?: "stop" | "length" | "tool_calls" | "content_filter" | null;
|
|
32
|
+
/** Provider-specific metadata */
|
|
33
|
+
metadata?: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Async iterable stream interface for LLM responses
|
|
37
|
+
*/
|
|
38
|
+
interface LLMStream extends AsyncIterable<StreamChunk> {
|
|
39
|
+
/** Cancels the stream */
|
|
40
|
+
cancel?: () => void;
|
|
41
|
+
/** Stream metadata */
|
|
42
|
+
metadata?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type { LLMStream, StreamChunk, StreamEvent, ToolCallDelta };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -5,6 +5,7 @@ declare const getLogger: (service: string) => winston.Logger;
|
|
|
5
5
|
declare const loggers: {
|
|
6
6
|
readonly agent: winston.Logger;
|
|
7
7
|
readonly intent: winston.Logger;
|
|
8
|
+
readonly intentStream: winston.Logger;
|
|
8
9
|
readonly mcp: winston.Logger;
|
|
9
10
|
readonly a2a: winston.Logger;
|
|
10
11
|
readonly model: winston.Logger;
|
package/dist/esm/utils/logger.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/logger.ts"],"sourcesContent":["import winston from \"winston\";\n\nconst { combine, timestamp, printf, colorize, errors } = winston.format;\n\nconst createLogger = (service: string) => {\n\tconst logger = winston.createLogger({\n\t\tlevel: (process.env.LOG_LEVEL || \"info\").toLowerCase(),\n\t\tformat: combine(\n\t\t\terrors({ stack: true }),\n\t\t\tcolorize(),\n\t\t\ttimestamp({ format: \"HH:mm:ss\" }),\n\t\t\tprintf(({ level, message, timestamp, service, stack, ...meta }) => {\n\t\t\t\tconst metaStr = Object.keys(meta).length\n\t\t\t\t\t? ` | ${JSON.stringify(meta)}`\n\t\t\t\t\t: \"\";\n\t\t\t\tconst errorStack = stack ? `\\n${stack}` : \"\";\n\t\t\t\treturn `${timestamp} [${service}] ${level}: ${message}${metaStr}${errorStack}`;\n\t\t\t}),\n\t\t),\n\t\tdefaultMeta: { service },\n\t\ttransports: [new winston.transports.Console()],\n\t});\n\n\treturn logger;\n};\n\n// Default logger instance\nexport const logger = createLogger(\"ain-adk\");\n\n// Factory function for creating service-specific loggers\nexport const getLogger = (service: string) => createLogger(service);\n\n// Convenience methods for different components\nexport const loggers = {\n\tagent: getLogger(\"AINAgent\"),\n\tintent: getLogger(\"Intent\"),\n\tmcp: getLogger(\"MCPModule\"),\n\ta2a: getLogger(\"A2AModule\"),\n\tmodel: getLogger(\"Model\"),\n\tserver: getLogger(\"A2AServer\"),\n\tfol: getLogger(\"FOL\"),\n} as const;\n"],"mappings":";AAAA,OAAO,aAAa;AAEpB,IAAM,EAAE,SAAS,WAAW,QAAQ,UAAU,OAAO,IAAI,QAAQ;AAEjE,IAAM,eAAe,CAAC,YAAoB;AACzC,QAAMA,UAAS,QAAQ,aAAa;AAAA,IACnC,QAAQ,QAAQ,IAAI,aAAa,QAAQ,YAAY;AAAA,IACrD,QAAQ;AAAA,MACP,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,MACtB,SAAS;AAAA,MACT,UAAU,EAAE,QAAQ,WAAW,CAAC;AAAA,MAChC,OAAO,CAAC,EAAE,OAAO,SAAS,WAAAC,YAAW,SAAAC,UAAS,OAAO,GAAG,KAAK,MAAM;AAClE,cAAM,UAAU,OAAO,KAAK,IAAI,EAAE,SAC/B,MAAM,KAAK,UAAU,IAAI,CAAC,KAC1B;AACH,cAAM,aAAa,QAAQ;AAAA,EAAK,KAAK,KAAK;AAC1C,eAAO,GAAGD,UAAS,KAAKC,QAAO,KAAK,KAAK,KAAK,OAAO,GAAG,OAAO,GAAG,UAAU;AAAA,MAC7E,CAAC;AAAA,IACF;AAAA,IACA,aAAa,EAAE,QAAQ;AAAA,IACvB,YAAY,CAAC,IAAI,QAAQ,WAAW,QAAQ,CAAC;AAAA,EAC9C,CAAC;AAED,SAAOF;AACR;AAGO,IAAM,SAAS,aAAa,SAAS;AAGrC,IAAM,YAAY,CAAC,YAAoB,aAAa,OAAO;AAG3D,IAAM,UAAU;AAAA,EACtB,OAAO,UAAU,UAAU;AAAA,EAC3B,QAAQ,UAAU,QAAQ;AAAA,EAC1B,KAAK,UAAU,WAAW;AAAA,EAC1B,KAAK,UAAU,WAAW;AAAA,EAC1B,OAAO,UAAU,OAAO;AAAA,EACxB,QAAQ,UAAU,WAAW;AAAA,EAC7B,KAAK,UAAU,KAAK;AACrB;","names":["logger","timestamp","service"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/models/base.model.ts"],"sourcesContent":["import type { SessionObject } from \"@/types/memory.js\";\nimport type { FetchResponse, IAgentTool } from \"@/types/tool.js\";\n\n/**\n * Abstract base class for AI model implementations.\n *\n * Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)\n * to integrate with the AIN-ADK framework. Each model implementation must handle\n * message formatting, tool conversion, and API communication.\n *\n * @typeParam MessageType - The message format used by the specific model API\n * @typeParam FunctionType - The function/tool format used by the specific model API\n */\nexport abstract class BaseModel<MessageType, FunctionType> {\n\t/**\n\t * Generates an array of messages from session history and current query.\n\t *\n\t * @param sessionHistory - Previous conversation history\n\t * @param query - Current user query\n\t * @param systemPrompt - Optional system prompt to set context\n\t * @returns Array of messages formatted for the specific model API\n\t */\n\tabstract generateMessages(params: {\n\t\tquery: string;\n\t\tsessionHistory?: SessionObject;\n\t\tsystemPrompt?: string;\n\t}): MessageType[];\n\n\t/**\n\t * Appends a new message to the existing message array.\n\t *\n\t * @param messages - Existing message array to expand\n\t * @param message - New message content to append\n\t */\n\tabstract appendMessages(messages: MessageType[], message: string): void;\n\n\t/**\n\t * Converts protocol-agnostic tools to model-specific function format.\n\t *\n\t * @param tools - Array of agent tools from MCP or A2A sources\n\t * @returns Array of functions in the format required by the model API\n\t */\n\tabstract convertToolsToFunctions(tools: IAgentTool[]): FunctionType[];\n\n\t/**\n\t * Fetches a response from the model API without tool support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @returns Promise resolving to the model's response\n\t */\n\tabstract fetch(messages: MessageType[]): Promise<FetchResponse>;\n\n\t/**\n\t * Fetches a response from the model API with tool/function support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @param functions - Array of available functions/tools the model can call\n\t * @returns Promise resolving to the model's response, possibly including tool calls\n\t */\n\tabstract fetchWithContextMessage(\n\t\tmessages: MessageType[],\n\t\tfunctions: FunctionType[],\n\t): Promise<FetchResponse>;\n}\n"],"mappings":";AAaO,IAAe,YAAf,MAAoD;AAkD3D;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/query.service.ts"],"sourcesContent":["import type {\n\tA2AModule,\n\tMCPModule,\n\tMemoryModule,\n\tModelModule,\n} from \"@/modules/index.js\";\nimport type { AinAgentPrompts } from \"@/types/agent.js\";\nimport { ChatRole, type SessionObject } from \"@/types/memory.js\";\nimport {\n\ttype IA2ATool,\n\ttype IAgentTool,\n\ttype IMCPTool,\n\tTOOL_PROTOCOL_TYPE,\n} from \"@/types/tool.js\";\nimport { loggers } from \"@/utils/logger.js\";\n\n/**\n * Service for processing user queries through the agent's AI pipeline.\n *\n * Orchestrates the query processing workflow including intent detection,\n * model inference, tool execution, and response generation. Manages\n * conversation context and coordinates between different modules.\n */\nexport class QueryService {\n\tprivate modelModule: ModelModule;\n\tprivate a2aModule?: A2AModule;\n\tprivate mcpModule?: MCPModule;\n\tprivate memoryModule?: MemoryModule;\n\tprivate prompts?: AinAgentPrompts;\n\n\tconstructor(\n\t\tmodelModule: ModelModule,\n\t\ta2aModule?: A2AModule,\n\t\tmcpModule?: MCPModule,\n\t\tmemoryModule?: MemoryModule,\n\t\tprompts?: AinAgentPrompts,\n\t) {\n\t\tthis.modelModule = modelModule;\n\t\tthis.a2aModule = a2aModule;\n\t\tthis.mcpModule = mcpModule;\n\t\tthis.memoryModule = memoryModule;\n\t\tthis.prompts = prompts;\n\t}\n\n\t/**\n\t * Detects the intent from a user query.\n\t *\n\t * @param query - The user's input query\n\t * @returns The detected intent (currently returns the query as-is)\n\t * @todo Implement actual intent detection logic\n\t */\n\tprivate async intentTriggering(query: string) {\n\t\t/* TODO */\n\t\treturn query;\n\t}\n\n\t/**\n\t * Fulfills the detected intent by generating a response.\n\t *\n\t * Manages the complete inference loop including:\n\t * - Loading prompts and conversation history\n\t * - Collecting available tools from modules\n\t * - Executing model inference with tool support\n\t * - Processing tool calls iteratively until completion\n\t *\n\t * @param query - The user's input query\n\t * @param sessionId - Session identifier for context\n\t * @param sessionHistory - Previous conversation history\n\t * @returns Object containing process steps and final response\n\t */\n\tprivate async intentFulfilling(\n\t\tquery: string,\n\t\tsessionId: string,\n\t\tsessionHistory: SessionObject | undefined,\n\t) {\n\t\t// 1. Load agent / system prompt from memory\n\t\tconst systemPrompt = `\nToday is ${new Date().toLocaleDateString()}.\n\n${this.prompts?.agent || \"\"}\n\n${this.prompts?.system || \"\"}\n `;\n\n\t\tconst modelInstance = this.modelModule.getModel();\n\t\tconst messages = modelInstance.generateMessages({\n\t\t\tquery,\n\t\t\tsessionHistory,\n\t\t\tsystemPrompt: systemPrompt.trim(),\n\t\t});\n\n\t\tconst tools: IAgentTool[] = [];\n\t\tif (this.mcpModule) {\n\t\t\ttools.push(...this.mcpModule.getTools());\n\t\t}\n\t\tif (this.a2aModule) {\n\t\t\ttools.push(...(await this.a2aModule.getTools()));\n\t\t}\n\t\tconst functions = modelInstance.convertToolsToFunctions(tools);\n\n\t\tconst processList: string[] = [];\n\t\tlet finalMessage = \"\";\n\t\tlet didCallTool = false;\n\n\t\twhile (true) {\n\t\t\tconst response = await modelInstance.fetchWithContextMessage(\n\t\t\t\tmessages,\n\t\t\t\tfunctions,\n\t\t\t);\n\t\t\tdidCallTool = false;\n\n\t\t\tloggers.intent.debug(\"messages\", { messages });\n\n\t\t\tconst { content, toolCalls } = response;\n\n\t\t\tloggers.intent.debug(\"content\", { content });\n\t\t\tloggers.intent.debug(\"tool_calls\", { ...toolCalls });\n\n\t\t\tif (toolCalls) {\n\t\t\t\tconst messagePayload = this.a2aModule?.getMessagePayload(\n\t\t\t\t\tquery,\n\t\t\t\t\tsessionId,\n\t\t\t\t);\n\n\t\t\t\tfor (const toolCall of toolCalls) {\n\t\t\t\t\tconst toolName = toolCall.name;\n\t\t\t\t\tdidCallTool = true;\n\t\t\t\t\tconst selectedTool = tools.filter((tool) => tool.id === toolName)[0];\n\n\t\t\t\t\tlet toolResult = \"\";\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.mcpModule &&\n\t\t\t\t\t\tselectedTool.protocol === TOOL_PROTOCOL_TYPE.MCP\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst toolArgs = toolCall.arguments as\n\t\t\t\t\t\t\t| { [x: string]: unknown }\n\t\t\t\t\t\t\t| undefined;\n\t\t\t\t\t\tloggers.intent.debug(\"MCP tool call\", { toolName, toolArgs });\n\t\t\t\t\t\tconst result = await this.mcpModule.useTool(\n\t\t\t\t\t\t\tselectedTool as IMCPTool,\n\t\t\t\t\t\t\ttoolArgs,\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttoolResult =\n\t\t\t\t\t\t\t`[Bot Called MCP Tool ${toolName} with args ${JSON.stringify(toolArgs)}]\\n` +\n\t\t\t\t\t\t\tJSON.stringify(result.content, null, 2);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tthis.a2aModule &&\n\t\t\t\t\t\tselectedTool.protocol === TOOL_PROTOCOL_TYPE.A2A\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst result = await this.a2aModule.useTool(\n\t\t\t\t\t\t\tselectedTool as IA2ATool,\n\t\t\t\t\t\t\tmessagePayload!,\n\t\t\t\t\t\t\tsessionId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttoolResult = `[Bot Called A2A Tool ${toolName}]\\n${result.join(\"\\n\")}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Unrecognized tool type. It cannot be happened...\n\t\t\t\t\t\tloggers.intent.warn(\n\t\t\t\t\t\t\t`Unrecognized tool type: ${selectedTool.protocol}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tloggers.intent.debug(\"toolResult\", { toolResult });\n\n\t\t\t\t\tprocessList.push(toolResult);\n\t\t\t\t\tmodelInstance.appendMessages(messages, toolResult);\n\t\t\t\t}\n\t\t\t} else if (content) {\n\t\t\t\tprocessList.push(content);\n\t\t\t\tfinalMessage = content;\n\t\t\t}\n\n\t\t\tif (!didCallTool) break;\n\t\t}\n\n\t\tconst botResponse = {\n\t\t\tprocess: processList.join(\"\\n\"),\n\t\t\tresponse: finalMessage,\n\t\t};\n\n\t\treturn botResponse;\n\t}\n\n\t/**\n\t * Main entry point for processing user queries.\n\t *\n\t * Handles the complete query lifecycle:\n\t * 1. Loads session history from memory\n\t * 2. Detects intent from the query\n\t * 3. Fulfills the intent with AI response\n\t * 4. Updates conversation history\n\t *\n\t * @param query - The user's input query\n\t * @param sessionId - Unique session identifier\n\t * @param userId - Unique user identifier\n\t * @returns Object containing the AI-generated response\n\t */\n\tpublic async handleQuery(query: string, sessionId: string, userId?: string) {\n\t\t// 1. Load session history with sessionId\n\t\tconst queryStartAt = Date.now();\n\t\tconst sessionMemory = this.memoryModule?.getSessionMemory();\n\t\tconst session = !userId\n\t\t\t? undefined\n\t\t\t: await sessionMemory?.getSession(userId, sessionId);\n\n\t\t// 2. intent triggering\n\t\tconst intent = this.intentTriggering(query);\n\n\t\t// 3. intent fulfillment\n\t\tconst result = await this.intentFulfilling(query, sessionId, session);\n\t\tif (userId) {\n\t\t\tawait sessionMemory?.addChatToSession(userId, sessionId, {\n\t\t\t\trole: ChatRole.USER,\n\t\t\t\ttimestamp: queryStartAt,\n\t\t\t\tcontent: { type: \"text\", parts: [query] },\n\t\t\t});\n\t\t\tawait sessionMemory?.addChatToSession(userId, sessionId, {\n\t\t\t\trole: ChatRole.MODEL,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\tcontent: { type: \"text\", parts: [result.response] },\n\t\t\t});\n\t\t}\n\n\t\treturn { content: result.response };\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
QueryController
|
|
3
|
-
} from "./chunk-WIJDRP2A.js";
|
|
4
|
-
import {
|
|
5
|
-
QueryService
|
|
6
|
-
} from "./chunk-N6T2JOGC.js";
|
|
7
|
-
|
|
8
|
-
// src/routes/query.routes.ts
|
|
9
|
-
import { Router } from "express";
|
|
10
|
-
var createQueryRouter = (agent) => {
|
|
11
|
-
const router = Router();
|
|
12
|
-
const queryService = new QueryService(
|
|
13
|
-
agent.modelModule,
|
|
14
|
-
agent.a2aModule,
|
|
15
|
-
agent.mcpModule,
|
|
16
|
-
agent.memoryModule,
|
|
17
|
-
agent.manifest.prompts
|
|
18
|
-
);
|
|
19
|
-
const queryController = new QueryController(queryService);
|
|
20
|
-
router.post("/query", queryController.handleQueryRequest);
|
|
21
|
-
return router;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export {
|
|
25
|
-
createQueryRouter
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=chunk-NH7BYWQV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/query.routes.ts"],"sourcesContent":["import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\n\nexport const createQueryRouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\tconst queryController = new QueryController(queryService);\n\trouter.post(\"/query\", queryController.handleQueryRequest);\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;AAAA,SAAS,cAAc;AAKhB,IAAM,oBAAoB,CAAC,UAA4B;AAC7D,QAAM,SAAS,OAAO;AAEtB,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,SAAS;AAAA,EAChB;AACA,QAAM,kBAAkB,IAAI,gBAAgB,YAAY;AACxD,SAAO,KAAK,UAAU,gBAAgB,kBAAkB;AAExD,SAAO;AACR;","names":[]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// src/controllers/query.controller.ts
|
|
2
|
-
var QueryController = class {
|
|
3
|
-
queryService;
|
|
4
|
-
constructor(queryService) {
|
|
5
|
-
this.queryService = queryService;
|
|
6
|
-
}
|
|
7
|
-
handleQueryRequest = async (req, res, next) => {
|
|
8
|
-
try {
|
|
9
|
-
const { message, sessionId } = req.body;
|
|
10
|
-
const userId = res.locals.userId;
|
|
11
|
-
const result = await this.queryService.handleQuery(
|
|
12
|
-
message,
|
|
13
|
-
sessionId,
|
|
14
|
-
userId
|
|
15
|
-
);
|
|
16
|
-
res.status(200).json(result);
|
|
17
|
-
} catch (error) {
|
|
18
|
-
next(error);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
QueryController
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=chunk-WIJDRP2A.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/query.controller.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from \"express\";\nimport type { QueryService } from \"@/services\";\n\nexport class QueryController {\n\tprivate queryService;\n\n\tconstructor(queryService: QueryService) {\n\t\tthis.queryService = queryService;\n\t}\n\n\tpublic handleQueryRequest = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { message, sessionId } = req.body;\n\t\t\tconst userId = res.locals.userId;\n\n\t\t\tconst result = await this.queryService.handleQuery(\n\t\t\t\tmessage,\n\t\t\t\tsessionId,\n\t\t\t\tuserId,\n\t\t\t);\n\n\t\t\tres.status(200).json(result);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n}\n"],"mappings":";AAGO,IAAM,kBAAN,MAAsB;AAAA,EACpB;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,qBAAqB,OAC3B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,SAAS,UAAU,IAAI,IAAI;AACnC,YAAM,SAAS,IAAI,OAAO;AAE1B,YAAM,SAAS,MAAM,KAAK,aAAa;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAEA,UAAI,OAAO,GAAG,EAAE,KAAK,MAAM;AAAA,IAC5B,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AACD;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|