@houtini/gemini-mcp 1.0.2 → 1.1.0
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/.env.example +5 -0
- package/README.md +940 -546
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +7 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -9
- package/dist/index.js.map +1 -1
- package/dist/services/gemini/index.d.ts +13 -1
- package/dist/services/gemini/index.d.ts.map +1 -1
- package/dist/services/gemini/index.js +241 -37
- package/dist/services/gemini/index.js.map +1 -1
- package/dist/services/gemini/types.d.ts +8 -0
- package/dist/services/gemini/types.d.ts.map +1 -1
- package/dist/tools/gemini-chat.d.ts.map +1 -1
- package/dist/tools/gemini-chat.js +4 -4
- package/dist/tools/gemini-chat.js.map +1 -1
- package/dist/tools/gemini-deep-research.d.ts +13 -0
- package/dist/tools/gemini-deep-research.d.ts.map +1 -0
- package/dist/tools/gemini-deep-research.js +414 -0
- package/dist/tools/gemini-deep-research.js.map +1 -0
- package/dist/tools/gemini-list-models.d.ts +1 -1
- package/dist/tools/gemini-list-models.d.ts.map +1 -1
- package/dist/tools/gemini-list-models.js +1 -1
- package/dist/tools/gemini-list-models.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,eAAO,MAAM,MAAM,EAAE,MAmCpB,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAOrC"}
|
package/dist/config/index.js
CHANGED
|
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.config = void 0;
|
|
37
37
|
exports.validateConfig = validateConfig;
|
|
38
38
|
const dotenv = __importStar(require("dotenv"));
|
|
39
|
-
// Load environment variables
|
|
40
39
|
dotenv.config();
|
|
41
40
|
exports.config = {
|
|
42
41
|
gemini: {
|
|
@@ -44,25 +43,26 @@ exports.config = {
|
|
|
44
43
|
safetySettings: [
|
|
45
44
|
{
|
|
46
45
|
category: 'HARM_CATEGORY_HARASSMENT',
|
|
47
|
-
threshold: '
|
|
46
|
+
threshold: 'BLOCK_MEDIUM_AND_ABOVE'
|
|
48
47
|
},
|
|
49
48
|
{
|
|
50
49
|
category: 'HARM_CATEGORY_HATE_SPEECH',
|
|
51
|
-
threshold: '
|
|
50
|
+
threshold: 'BLOCK_MEDIUM_AND_ABOVE'
|
|
52
51
|
},
|
|
53
52
|
{
|
|
54
53
|
category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
|
|
55
|
-
threshold: '
|
|
54
|
+
threshold: 'BLOCK_MEDIUM_AND_ABOVE'
|
|
56
55
|
},
|
|
57
56
|
{
|
|
58
57
|
category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
|
|
59
|
-
threshold: '
|
|
58
|
+
threshold: 'BLOCK_MEDIUM_AND_ABOVE'
|
|
60
59
|
}
|
|
61
60
|
],
|
|
62
61
|
defaultModel: 'gemini-2.5-flash',
|
|
63
|
-
maxTokens:
|
|
62
|
+
maxTokens: 16384,
|
|
64
63
|
temperature: 0.7,
|
|
65
|
-
defaultGrounding: true
|
|
64
|
+
defaultGrounding: true,
|
|
65
|
+
allowExperimentalModels: process.env.GEMINI_ALLOW_EXPERIMENTAL === 'true'
|
|
66
66
|
},
|
|
67
67
|
server: {
|
|
68
68
|
name: 'gemini-mcp',
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wCAOC;AAhDD,+CAAiC;AAEjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wCAOC;AAhDD,+CAAiC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEH,QAAA,MAAM,GAAW;IAC5B,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAClC,cAAc,EAAE;YACd;gBACE,QAAQ,EAAE,0BAA0B;gBACpC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,2BAA2B;gBACrC,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,wBAAwB;aACpC;SACF;QACD,YAAY,EAAE,kBAAkB;QAChC,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;KAC1E;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,MAAM,EAAE,UAAU;KACnB;CACF,CAAC;AAEF,SAAgB,cAAc;IAC5B,IAAI,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC/C,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiBA,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAmB;;IAkChC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAoDf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7B;AAkCD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const config_1 = require("./config");
|
|
|
12
12
|
const gemini_1 = require("./services/gemini");
|
|
13
13
|
const gemini_chat_1 = require("./tools/gemini-chat");
|
|
14
14
|
const gemini_list_models_1 = require("./tools/gemini-list-models");
|
|
15
|
+
const gemini_deep_research_1 = require("./tools/gemini-deep-research");
|
|
15
16
|
const logger_1 = __importDefault(require("./utils/logger"));
|
|
16
17
|
const error_handler_1 = require("./utils/error-handler");
|
|
17
18
|
class GeminiMcpServer {
|
|
@@ -19,7 +20,6 @@ class GeminiMcpServer {
|
|
|
19
20
|
geminiService;
|
|
20
21
|
tools;
|
|
21
22
|
constructor() {
|
|
22
|
-
// Validate configuration on startup
|
|
23
23
|
try {
|
|
24
24
|
(0, config_1.validateConfig)();
|
|
25
25
|
}
|
|
@@ -27,9 +27,7 @@ class GeminiMcpServer {
|
|
|
27
27
|
logger_1.default.error('Configuration validation failed', { error });
|
|
28
28
|
process.exit(1);
|
|
29
29
|
}
|
|
30
|
-
// Initialize services
|
|
31
30
|
this.geminiService = new gemini_1.GeminiService(config_1.config.gemini);
|
|
32
|
-
// Initialize server
|
|
33
31
|
this.server = new index_js_1.Server({
|
|
34
32
|
name: config_1.config.server.name,
|
|
35
33
|
version: config_1.config.server.version,
|
|
@@ -38,7 +36,6 @@ class GeminiMcpServer {
|
|
|
38
36
|
tools: {},
|
|
39
37
|
},
|
|
40
38
|
});
|
|
41
|
-
// Initialize tools
|
|
42
39
|
this.tools = new Map();
|
|
43
40
|
this.initializeTools();
|
|
44
41
|
this.setupHandlers();
|
|
@@ -50,15 +47,16 @@ class GeminiMcpServer {
|
|
|
50
47
|
initializeTools() {
|
|
51
48
|
const geminiChatTool = new gemini_chat_1.GeminiChatTool(this.geminiService);
|
|
52
49
|
const geminiListModelsTool = new gemini_list_models_1.GeminiListModelsTool(this.geminiService);
|
|
50
|
+
const geminiDeepResearchTool = new gemini_deep_research_1.GeminiDeepResearchTool(this.geminiService);
|
|
53
51
|
this.tools.set('gemini_chat', geminiChatTool);
|
|
54
52
|
this.tools.set('gemini_list_models', geminiListModelsTool);
|
|
53
|
+
this.tools.set('gemini_deep_research', geminiDeepResearchTool);
|
|
55
54
|
logger_1.default.info('Tools initialized', {
|
|
56
55
|
toolCount: this.tools.size,
|
|
57
56
|
tools: Array.from(this.tools.keys())
|
|
58
57
|
});
|
|
59
58
|
}
|
|
60
59
|
setupHandlers() {
|
|
61
|
-
// Handle tool listing
|
|
62
60
|
this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
63
61
|
logger_1.default.info('Handling list_tools request');
|
|
64
62
|
const tools = Array.from(this.tools.values()).map(tool => tool.getDefinition());
|
|
@@ -66,7 +64,6 @@ class GeminiMcpServer {
|
|
|
66
64
|
tools
|
|
67
65
|
};
|
|
68
66
|
});
|
|
69
|
-
// Handle tool calls
|
|
70
67
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
71
68
|
const { name, arguments: args } = request.params;
|
|
72
69
|
logger_1.default.info('Handling call_tool request', {
|
|
@@ -103,7 +100,6 @@ class GeminiMcpServer {
|
|
|
103
100
|
}
|
|
104
101
|
async start() {
|
|
105
102
|
try {
|
|
106
|
-
// Validate Gemini service configuration
|
|
107
103
|
const isValid = await this.geminiService.validateConfig();
|
|
108
104
|
if (!isValid) {
|
|
109
105
|
throw new Error('Gemini API key validation failed');
|
|
@@ -123,7 +119,6 @@ class GeminiMcpServer {
|
|
|
123
119
|
}
|
|
124
120
|
}
|
|
125
121
|
exports.GeminiMcpServer = GeminiMcpServer;
|
|
126
|
-
// Handle process cleanup
|
|
127
122
|
process.on('SIGINT', () => {
|
|
128
123
|
logger_1.default.info('Received SIGINT, shutting down gracefully...');
|
|
129
124
|
process.exit(0);
|
|
@@ -140,7 +135,6 @@ process.on('unhandledRejection', (reason, promise) => {
|
|
|
140
135
|
logger_1.default.error('Unhandled promise rejection', { reason, promise });
|
|
141
136
|
process.exit(1);
|
|
142
137
|
});
|
|
143
|
-
// Start the server
|
|
144
138
|
async function main() {
|
|
145
139
|
const server = new GeminiMcpServer();
|
|
146
140
|
await server.start();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAE5C,qCAAkD;AAClD,8CAAkD;AAClD,qDAAqD;AACrD,mEAAkE;AAClE,4DAAoC;AACpC,yDAAoD;AAEpD,MAAM,eAAe;IACX,MAAM,CAAS;IACf,aAAa,CAAgB;IAC7B,KAAK,CAAmB;IAEhC;QACE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,24 @@ import { ChatRequest, ChatResponse, ListModelsResponse } from './types';
|
|
|
4
4
|
export declare class GeminiService extends BaseService {
|
|
5
5
|
private genAI;
|
|
6
6
|
private config;
|
|
7
|
-
private
|
|
7
|
+
private availableModels;
|
|
8
|
+
private defaultModel;
|
|
9
|
+
private modelsInitialized;
|
|
10
|
+
private initializationPromise;
|
|
8
11
|
constructor(config: GeminiConfig);
|
|
12
|
+
private ensureModelsInitialized;
|
|
13
|
+
private initializeModels;
|
|
14
|
+
private fetchModelsFromAPI;
|
|
15
|
+
private selectDefaultModel;
|
|
16
|
+
private extractVersion;
|
|
17
|
+
private getFallbackModels;
|
|
18
|
+
getDefaultModel(): string;
|
|
19
|
+
private addInlineCitations;
|
|
9
20
|
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
10
21
|
listModels(): Promise<ListModelsResponse>;
|
|
11
22
|
validateConfig(): Promise<boolean>;
|
|
12
23
|
private mapSafetySettings;
|
|
13
24
|
getAvailableModels(): string[];
|
|
25
|
+
getModelContextWindow(modelName: string): number;
|
|
14
26
|
}
|
|
15
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,qBAAqB,CAA8B;gBAE/C,MAAM,EAAE,YAAY;YAelB,uBAAuB;YAcvB,gBAAgB;YAsBhB,kBAAkB;IAmChC,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAyCzB,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,kBAAkB;IAkEpB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8IjD,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAezC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBxC,OAAO,CAAC,iBAAiB;IAqBzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAIjD"}
|
|
@@ -7,39 +7,10 @@ const error_handler_1 = require("../../utils/error-handler");
|
|
|
7
7
|
class GeminiService extends base_service_1.BaseService {
|
|
8
8
|
genAI;
|
|
9
9
|
config;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
displayName: 'Gemini 2.5 Flash',
|
|
15
|
-
description: 'Latest Gemini 2.5 Flash - Fast, versatile performance'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'gemini-2.0-flash',
|
|
19
|
-
displayName: 'Gemini 2.0 Flash',
|
|
20
|
-
description: 'Gemini 2.0 Flash - Fast, efficient model'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'gemini-1.5-flash',
|
|
24
|
-
displayName: 'Gemini 1.5 Flash',
|
|
25
|
-
description: 'Gemini 1.5 Flash - Fast, efficient model'
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'gemini-1.5-pro',
|
|
29
|
-
displayName: 'Gemini 1.5 Pro',
|
|
30
|
-
description: 'Gemini 1.5 Pro - Advanced reasoning'
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: 'gemini-pro',
|
|
34
|
-
displayName: 'Gemini Pro',
|
|
35
|
-
description: 'Gemini Pro - Balanced performance'
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: 'gemini-pro-vision',
|
|
39
|
-
displayName: 'Gemini Pro Vision',
|
|
40
|
-
description: 'Gemini Pro Vision - Multimodal understanding'
|
|
41
|
-
}
|
|
42
|
-
];
|
|
10
|
+
availableModels = [];
|
|
11
|
+
defaultModel;
|
|
12
|
+
modelsInitialized = false;
|
|
13
|
+
initializationPromise = null;
|
|
43
14
|
constructor(config) {
|
|
44
15
|
super();
|
|
45
16
|
this.config = config;
|
|
@@ -47,13 +18,216 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
47
18
|
throw new error_handler_1.GeminiError('Missing API key for Gemini service');
|
|
48
19
|
}
|
|
49
20
|
this.genAI = new generative_ai_1.GoogleGenerativeAI(config.apiKey);
|
|
21
|
+
this.defaultModel = config.defaultModel;
|
|
22
|
+
this.availableModels = this.getFallbackModels();
|
|
50
23
|
this.logInfo('Gemini service initialized');
|
|
51
24
|
}
|
|
25
|
+
async ensureModelsInitialized() {
|
|
26
|
+
if (this.modelsInitialized) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (this.initializationPromise) {
|
|
30
|
+
return this.initializationPromise;
|
|
31
|
+
}
|
|
32
|
+
this.initializationPromise = this.initializeModels();
|
|
33
|
+
await this.initializationPromise;
|
|
34
|
+
this.modelsInitialized = true;
|
|
35
|
+
}
|
|
36
|
+
async initializeModels() {
|
|
37
|
+
try {
|
|
38
|
+
const models = await this.fetchModelsFromAPI();
|
|
39
|
+
this.availableModels = models;
|
|
40
|
+
const selectedDefault = this.selectDefaultModel(models);
|
|
41
|
+
if (selectedDefault) {
|
|
42
|
+
this.defaultModel = selectedDefault;
|
|
43
|
+
}
|
|
44
|
+
this.logInfo('Models discovered from API', {
|
|
45
|
+
count: models.length,
|
|
46
|
+
defaultModel: this.defaultModel,
|
|
47
|
+
modelNames: models.map(m => m.name).slice(0, 5).join(', ') + (models.length > 5 ? '...' : '')
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.logInfo('Using fallback model list (API discovery failed)', {
|
|
52
|
+
error: error.message
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async fetchModelsFromAPI() {
|
|
57
|
+
try {
|
|
58
|
+
const apiKey = this.config.apiKey;
|
|
59
|
+
const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}`);
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
throw new Error(`Failed to fetch models: ${response.statusText}`);
|
|
62
|
+
}
|
|
63
|
+
const data = await response.json();
|
|
64
|
+
const models = [];
|
|
65
|
+
for (const model of data.models || []) {
|
|
66
|
+
const supportedMethods = model.supportedGenerationMethods || [];
|
|
67
|
+
if (supportedMethods.includes('generateContent')) {
|
|
68
|
+
const cleanName = model.name.replace('models/', '');
|
|
69
|
+
models.push({
|
|
70
|
+
name: cleanName,
|
|
71
|
+
displayName: model.displayName || cleanName,
|
|
72
|
+
description: model.description || `${cleanName} model`,
|
|
73
|
+
contextWindow: model.inputTokenLimit || 32_000
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return models;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new error_handler_1.GeminiError(`Failed to fetch models: ${error.message}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
selectDefaultModel(models) {
|
|
84
|
+
if (models.length === 0) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
let geminiModels = models.filter(m => m.name.toLowerCase().includes('gemini'));
|
|
88
|
+
if (geminiModels.length === 0) {
|
|
89
|
+
return models[0].name;
|
|
90
|
+
}
|
|
91
|
+
// Filter out experimental/preview models unless explicitly allowed
|
|
92
|
+
if (!this.config.allowExperimentalModels) {
|
|
93
|
+
const stableModels = geminiModels.filter(m => {
|
|
94
|
+
const name = m.name.toLowerCase();
|
|
95
|
+
return !name.includes('-exp') &&
|
|
96
|
+
!name.includes('-preview') &&
|
|
97
|
+
!name.includes('experimental') &&
|
|
98
|
+
!name.includes('-thinking-');
|
|
99
|
+
});
|
|
100
|
+
// Use stable models if available, otherwise fall back to all models
|
|
101
|
+
if (stableModels.length > 0) {
|
|
102
|
+
geminiModels = stableModels;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const sorted = geminiModels.sort((a, b) => {
|
|
106
|
+
const versionA = this.extractVersion(a.name);
|
|
107
|
+
const versionB = this.extractVersion(b.name);
|
|
108
|
+
if (versionB !== versionA) {
|
|
109
|
+
return versionB - versionA;
|
|
110
|
+
}
|
|
111
|
+
// Prefer "flash" models for speed
|
|
112
|
+
const aIsFlash = a.name.toLowerCase().includes('flash');
|
|
113
|
+
const bIsFlash = b.name.toLowerCase().includes('flash');
|
|
114
|
+
if (aIsFlash && !bIsFlash)
|
|
115
|
+
return -1;
|
|
116
|
+
if (bIsFlash && !aIsFlash)
|
|
117
|
+
return 1;
|
|
118
|
+
return 0;
|
|
119
|
+
});
|
|
120
|
+
return sorted[0].name;
|
|
121
|
+
}
|
|
122
|
+
extractVersion(modelName) {
|
|
123
|
+
const match = modelName.match(/(\d+\.?\d*)/);
|
|
124
|
+
return match ? parseFloat(match[1]) : 0;
|
|
125
|
+
}
|
|
126
|
+
getFallbackModels() {
|
|
127
|
+
return [
|
|
128
|
+
{
|
|
129
|
+
name: 'gemini-2.5-flash',
|
|
130
|
+
displayName: 'Gemini 2.5 Flash',
|
|
131
|
+
description: 'Latest Gemini 2.5 Flash - Fast, versatile performance',
|
|
132
|
+
contextWindow: 1_000_000
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'gemini-2.0-flash',
|
|
136
|
+
displayName: 'Gemini 2.0 Flash',
|
|
137
|
+
description: 'Gemini 2.0 Flash - Fast, efficient model',
|
|
138
|
+
contextWindow: 1_000_000
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'gemini-1.5-flash',
|
|
142
|
+
displayName: 'Gemini 1.5 Flash',
|
|
143
|
+
description: 'Gemini 1.5 Flash - Fast, efficient model',
|
|
144
|
+
contextWindow: 1_000_000
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: 'gemini-1.5-pro',
|
|
148
|
+
displayName: 'Gemini 1.5 Pro',
|
|
149
|
+
description: 'Gemini 1.5 Pro - Advanced reasoning',
|
|
150
|
+
contextWindow: 2_000_000
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: 'gemini-pro',
|
|
154
|
+
displayName: 'Gemini Pro',
|
|
155
|
+
description: 'Gemini Pro - Balanced performance',
|
|
156
|
+
contextWindow: 32_000
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: 'gemini-pro-vision',
|
|
160
|
+
displayName: 'Gemini Pro Vision',
|
|
161
|
+
description: 'Gemini Pro Vision - Multimodal understanding',
|
|
162
|
+
contextWindow: 16_000
|
|
163
|
+
}
|
|
164
|
+
];
|
|
165
|
+
}
|
|
166
|
+
getDefaultModel() {
|
|
167
|
+
return this.defaultModel;
|
|
168
|
+
}
|
|
169
|
+
addInlineCitations(text, groundingMetadata) {
|
|
170
|
+
// Use correct field names (typos were fixed in recent SDK versions)
|
|
171
|
+
const supports = groundingMetadata.groundingSupports || [];
|
|
172
|
+
const chunks = groundingMetadata.groundingChunks || [];
|
|
173
|
+
// Add comprehensive debug logging
|
|
174
|
+
this.logInfo('Grounding metadata debug', {
|
|
175
|
+
allKeys: Object.keys(groundingMetadata),
|
|
176
|
+
hasSupports: !!supports,
|
|
177
|
+
supportsLength: supports.length,
|
|
178
|
+
hasChunks: !!chunks,
|
|
179
|
+
chunksLength: chunks.length,
|
|
180
|
+
webSearchQueries: groundingMetadata.webSearchQueries?.length || 0,
|
|
181
|
+
supportsSample: supports.length > 0 ? supports[0] : null,
|
|
182
|
+
chunksSample: chunks.length > 0 ? chunks[0] : null,
|
|
183
|
+
fullMetadata: groundingMetadata
|
|
184
|
+
});
|
|
185
|
+
// Try to extract sources even if supports/chunks are empty or missing
|
|
186
|
+
// Maybe webSearchQueries alone can provide some value
|
|
187
|
+
if (groundingMetadata.webSearchQueries && groundingMetadata.webSearchQueries.length > 0) {
|
|
188
|
+
const searchInfo = `\n\nSearch queries used: ${groundingMetadata.webSearchQueries.join(', ')}`;
|
|
189
|
+
if (!supports.length && !chunks.length) {
|
|
190
|
+
return text + searchInfo;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (!supports.length || !chunks.length) {
|
|
194
|
+
this.logInfo('No supports or chunks found - skipping citations');
|
|
195
|
+
return text;
|
|
196
|
+
}
|
|
197
|
+
let processedText = text;
|
|
198
|
+
const citationLinks = [];
|
|
199
|
+
const usedChunkIndices = new Set();
|
|
200
|
+
for (const support of supports) {
|
|
201
|
+
// Use correct field name (typo was fixed in recent SDK versions)
|
|
202
|
+
const indices = support.groundingChunkIndices || [];
|
|
203
|
+
if (indices.length) {
|
|
204
|
+
for (const chunkIndex of indices) {
|
|
205
|
+
if (chunkIndex < chunks.length && !usedChunkIndices.has(chunkIndex)) {
|
|
206
|
+
const chunk = chunks[chunkIndex];
|
|
207
|
+
const uri = chunk.web?.uri;
|
|
208
|
+
if (uri) {
|
|
209
|
+
citationLinks.push(uri);
|
|
210
|
+
usedChunkIndices.add(chunkIndex);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (citationLinks.length > 0) {
|
|
217
|
+
processedText += '\n\nSources: ' + citationLinks.map(url => `(${url})`).join(' ');
|
|
218
|
+
}
|
|
219
|
+
// Add search queries if available
|
|
220
|
+
if (groundingMetadata.webSearchQueries && groundingMetadata.webSearchQueries.length > 0) {
|
|
221
|
+
processedText += `\n\nSearch queries used: ${groundingMetadata.webSearchQueries.join(', ')}`;
|
|
222
|
+
}
|
|
223
|
+
return processedText;
|
|
224
|
+
}
|
|
52
225
|
async chat(request) {
|
|
53
226
|
try {
|
|
227
|
+
await this.ensureModelsInitialized();
|
|
54
228
|
// Determine if grounding should be used
|
|
55
229
|
const shouldUseGrounding = request.grounding ?? this.config.defaultGrounding;
|
|
56
|
-
const modelName = request.model || this.
|
|
230
|
+
const modelName = request.model || this.defaultModel;
|
|
57
231
|
this.logInfo(`Chat request to ${modelName}`, {
|
|
58
232
|
messageLength: request.message.length,
|
|
59
233
|
hasSystemPrompt: !!request.systemPrompt,
|
|
@@ -93,7 +267,7 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
93
267
|
try {
|
|
94
268
|
responseText = response.text();
|
|
95
269
|
}
|
|
96
|
-
catch
|
|
270
|
+
catch {
|
|
97
271
|
// Handle cases where content was filtered
|
|
98
272
|
const candidate = response.candidates?.[0];
|
|
99
273
|
if (candidate?.finishReason) {
|
|
@@ -114,12 +288,37 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
114
288
|
// Extract grounding metadata if available
|
|
115
289
|
const candidate = response.candidates?.[0];
|
|
116
290
|
const groundingMetadata = candidate?.groundingMetadata;
|
|
291
|
+
// Capture usage metadata from response
|
|
292
|
+
const usageMetadata = response.usageMetadata;
|
|
293
|
+
// Debug log the grounding metadata structure
|
|
294
|
+
if (groundingMetadata) {
|
|
295
|
+
this.logInfo('Raw grounding metadata structure', {
|
|
296
|
+
keys: Object.keys(groundingMetadata),
|
|
297
|
+
webSearchQueries: groundingMetadata.webSearchQueries,
|
|
298
|
+
hasSearchQueries: !!groundingMetadata.webSearchQueries,
|
|
299
|
+
searchQueriesLength: groundingMetadata.webSearchQueries?.length || 0
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
// Log usage metadata
|
|
303
|
+
if (usageMetadata) {
|
|
304
|
+
this.logInfo('Token usage', {
|
|
305
|
+
promptTokens: usageMetadata.promptTokenCount,
|
|
306
|
+
candidatesTokens: usageMetadata.candidatesTokenCount,
|
|
307
|
+
totalTokens: usageMetadata.totalTokenCount
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
// Process inline citations if grounding metadata exists
|
|
311
|
+
let processedContent = responseText;
|
|
312
|
+
if (groundingMetadata) {
|
|
313
|
+
processedContent = this.addInlineCitations(responseText, groundingMetadata);
|
|
314
|
+
}
|
|
117
315
|
const chatResponse = {
|
|
118
|
-
content:
|
|
316
|
+
content: processedContent,
|
|
119
317
|
model: modelName,
|
|
120
318
|
timestamp: new Date().toISOString(),
|
|
121
319
|
finishReason: response.candidates?.[0]?.finishReason?.toString(),
|
|
122
|
-
groundingMetadata
|
|
320
|
+
groundingMetadata,
|
|
321
|
+
usageMetadata
|
|
123
322
|
};
|
|
124
323
|
this.logInfo('Chat response generated successfully', {
|
|
125
324
|
model: modelName,
|
|
@@ -140,6 +339,7 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
140
339
|
}
|
|
141
340
|
async listModels() {
|
|
142
341
|
try {
|
|
342
|
+
await this.ensureModelsInitialized();
|
|
143
343
|
this.logInfo('Listing available models');
|
|
144
344
|
return {
|
|
145
345
|
models: this.availableModels,
|
|
@@ -191,6 +391,10 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
191
391
|
getAvailableModels() {
|
|
192
392
|
return this.availableModels.map(model => model.name);
|
|
193
393
|
}
|
|
394
|
+
getModelContextWindow(modelName) {
|
|
395
|
+
const model = this.availableModels.find(m => m.name === modelName);
|
|
396
|
+
return model?.contextWindow || 32_000;
|
|
397
|
+
}
|
|
194
398
|
}
|
|
195
399
|
exports.GeminiService = GeminiService;
|
|
196
400
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,17 +7,25 @@ export interface ChatRequest {
|
|
|
7
7
|
systemPrompt?: string;
|
|
8
8
|
grounding?: boolean;
|
|
9
9
|
}
|
|
10
|
+
export interface UsageMetadata {
|
|
11
|
+
promptTokenCount: number;
|
|
12
|
+
candidatesTokenCount: number;
|
|
13
|
+
totalTokenCount: number;
|
|
14
|
+
cachedContentTokenCount?: number;
|
|
15
|
+
}
|
|
10
16
|
export interface ChatResponse {
|
|
11
17
|
content: string;
|
|
12
18
|
model: string;
|
|
13
19
|
timestamp: string;
|
|
14
20
|
finishReason?: string;
|
|
15
21
|
groundingMetadata?: GroundingMetadata;
|
|
22
|
+
usageMetadata?: UsageMetadata;
|
|
16
23
|
}
|
|
17
24
|
export interface ModelInfo {
|
|
18
25
|
name: string;
|
|
19
26
|
displayName: string;
|
|
20
27
|
description: string;
|
|
28
|
+
contextWindow: number;
|
|
21
29
|
}
|
|
22
30
|
export interface ListModelsResponse {
|
|
23
31
|
models: ModelInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-chat.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"gemini-chat.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,qBAAa,cAAc;IACb,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;IA8Cf,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAgCjD"}
|
|
@@ -24,9 +24,9 @@ class GeminiChatTool {
|
|
|
24
24
|
},
|
|
25
25
|
model: {
|
|
26
26
|
type: 'string',
|
|
27
|
-
default:
|
|
27
|
+
default: this.geminiService.getDefaultModel(),
|
|
28
28
|
enum: this.geminiService.getAvailableModels(),
|
|
29
|
-
description: 'Model to use'
|
|
29
|
+
description: 'Model to use (defaults to latest available)'
|
|
30
30
|
},
|
|
31
31
|
temperature: {
|
|
32
32
|
type: 'number',
|
|
@@ -37,9 +37,9 @@ class GeminiChatTool {
|
|
|
37
37
|
},
|
|
38
38
|
max_tokens: {
|
|
39
39
|
type: 'integer',
|
|
40
|
-
default:
|
|
40
|
+
default: 4096,
|
|
41
41
|
minimum: 1,
|
|
42
|
-
maximum:
|
|
42
|
+
maximum: 16384,
|
|
43
43
|
description: 'Maximum tokens in response'
|
|
44
44
|
},
|
|
45
45
|
system_prompt: {
|