@sparkleideas/providers 3.0.0-alpha.6-patch.17 → 3.0.0-alpha.6-patch.19
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/package.json +1 -1
- package/dist/anthropic-provider.d.ts +0 -26
- package/dist/anthropic-provider.d.ts.map +0 -1
- package/dist/anthropic-provider.js +0 -513
- package/dist/base-provider.d.ts +0 -174
- package/dist/base-provider.d.ts.map +0 -1
- package/dist/base-provider.js +0 -636
- package/dist/cohere-provider.d.ts +0 -26
- package/dist/cohere-provider.d.ts.map +0 -1
- package/dist/cohere-provider.js +0 -501
- package/dist/google-provider.d.ts +0 -25
- package/dist/google-provider.d.ts.map +0 -1
- package/dist/google-provider.js +0 -498
- package/dist/index.d.ts +0 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -62
- package/dist/ollama-provider.d.ts +0 -26
- package/dist/ollama-provider.d.ts.map +0 -1
- package/dist/ollama-provider.js +0 -489
- package/dist/openai-provider.d.ts +0 -26
- package/dist/openai-provider.d.ts.map +0 -1
- package/dist/openai-provider.js +0 -543
- package/dist/provider-manager.d.ts +0 -117
- package/dist/provider-manager.d.ts.map +0 -1
- package/dist/provider-manager.js +0 -712
- package/dist/ruvector-provider.d.ts +0 -65
- package/dist/ruvector-provider.d.ts.map +0 -1
- package/dist/ruvector-provider.js +0 -813
- package/dist/types.d.ts +0 -280
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -108
package/dist/google-provider.js
DELETED
|
@@ -1,498 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* V3 Google (Gemini) Provider
|
|
4
|
-
*
|
|
5
|
-
* Supports Gemini 2.0, 1.5 Pro, and Flash models.
|
|
6
|
-
*
|
|
7
|
-
* @module @sparkleideas/providers/google-provider
|
|
8
|
-
*/
|
|
9
|
-
var __extends = (this && this.__extends) || (function () {
|
|
10
|
-
var extendStatics = function (d, b) {
|
|
11
|
-
extendStatics = Object.setPrototypeOf ||
|
|
12
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
13
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
14
|
-
return extendStatics(d, b);
|
|
15
|
-
};
|
|
16
|
-
return function (d, b) {
|
|
17
|
-
if (typeof b !== "function" && b !== null)
|
|
18
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
19
|
-
extendStatics(d, b);
|
|
20
|
-
function __() { this.constructor = d; }
|
|
21
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
22
|
-
};
|
|
23
|
-
})();
|
|
24
|
-
var __assign = (this && this.__assign) || function () {
|
|
25
|
-
__assign = Object.assign || function(t) {
|
|
26
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
27
|
-
s = arguments[i];
|
|
28
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
29
|
-
t[p] = s[p];
|
|
30
|
-
}
|
|
31
|
-
return t;
|
|
32
|
-
};
|
|
33
|
-
return __assign.apply(this, arguments);
|
|
34
|
-
};
|
|
35
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
-
function step(op) {
|
|
49
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
-
switch (op[0]) {
|
|
54
|
-
case 0: case 1: t = op; break;
|
|
55
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
-
default:
|
|
59
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
-
if (t[2]) _.ops.pop();
|
|
64
|
-
_.trys.pop(); continue;
|
|
65
|
-
}
|
|
66
|
-
op = body.call(thisArg, _);
|
|
67
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
72
|
-
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
73
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
74
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
75
|
-
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
76
|
-
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
77
|
-
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
78
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
79
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
80
|
-
function fulfill(value) { resume("next", value); }
|
|
81
|
-
function reject(value) { resume("throw", value); }
|
|
82
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
83
|
-
};
|
|
84
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
85
|
-
exports.GoogleProvider = void 0;
|
|
86
|
-
var base_provider_js_1 = require("./base-provider.js");
|
|
87
|
-
var types_js_1 = require("./types.js");
|
|
88
|
-
var GoogleProvider = /** @class */ (function (_super) {
|
|
89
|
-
__extends(GoogleProvider, _super);
|
|
90
|
-
function GoogleProvider(options) {
|
|
91
|
-
var _this = _super.call(this, options) || this;
|
|
92
|
-
_this.name = 'google';
|
|
93
|
-
_this.capabilities = {
|
|
94
|
-
supportedModels: [
|
|
95
|
-
'gemini-2.0-flash',
|
|
96
|
-
'gemini-1.5-pro',
|
|
97
|
-
'gemini-1.5-flash',
|
|
98
|
-
'gemini-pro',
|
|
99
|
-
],
|
|
100
|
-
maxContextLength: {
|
|
101
|
-
'gemini-2.0-flash': 1000000,
|
|
102
|
-
'gemini-1.5-pro': 2000000,
|
|
103
|
-
'gemini-1.5-flash': 1000000,
|
|
104
|
-
'gemini-pro': 32000,
|
|
105
|
-
},
|
|
106
|
-
maxOutputTokens: {
|
|
107
|
-
'gemini-2.0-flash': 8192,
|
|
108
|
-
'gemini-1.5-pro': 8192,
|
|
109
|
-
'gemini-1.5-flash': 8192,
|
|
110
|
-
'gemini-pro': 8192,
|
|
111
|
-
},
|
|
112
|
-
supportsStreaming: true,
|
|
113
|
-
supportsToolCalling: true,
|
|
114
|
-
supportsSystemMessages: true,
|
|
115
|
-
supportsVision: true,
|
|
116
|
-
supportsAudio: true,
|
|
117
|
-
supportsFineTuning: false,
|
|
118
|
-
supportsEmbeddings: true,
|
|
119
|
-
supportsBatching: true,
|
|
120
|
-
rateLimit: {
|
|
121
|
-
requestsPerMinute: 1000,
|
|
122
|
-
tokensPerMinute: 4000000,
|
|
123
|
-
concurrentRequests: 100,
|
|
124
|
-
},
|
|
125
|
-
pricing: {
|
|
126
|
-
'gemini-2.0-flash': {
|
|
127
|
-
promptCostPer1k: 0.0, // Free tier available
|
|
128
|
-
completionCostPer1k: 0.0,
|
|
129
|
-
currency: 'USD',
|
|
130
|
-
},
|
|
131
|
-
'gemini-1.5-pro': {
|
|
132
|
-
promptCostPer1k: 0.00125,
|
|
133
|
-
completionCostPer1k: 0.005,
|
|
134
|
-
currency: 'USD',
|
|
135
|
-
},
|
|
136
|
-
'gemini-1.5-flash': {
|
|
137
|
-
promptCostPer1k: 0.000075,
|
|
138
|
-
completionCostPer1k: 0.0003,
|
|
139
|
-
currency: 'USD',
|
|
140
|
-
},
|
|
141
|
-
'gemini-pro': {
|
|
142
|
-
promptCostPer1k: 0.0005,
|
|
143
|
-
completionCostPer1k: 0.0015,
|
|
144
|
-
currency: 'USD',
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
_this.baseUrl = 'https://generativelanguage.googleapis.com/v1beta';
|
|
149
|
-
return _this;
|
|
150
|
-
}
|
|
151
|
-
GoogleProvider.prototype.doInitialize = function () {
|
|
152
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
-
return __generator(this, function (_a) {
|
|
154
|
-
if (!this.config.apiKey) {
|
|
155
|
-
throw new types_js_1.AuthenticationError('Google API key is required', 'google');
|
|
156
|
-
}
|
|
157
|
-
this.baseUrl = this.config.apiUrl || 'https://generativelanguage.googleapis.com/v1beta';
|
|
158
|
-
return [2 /*return*/];
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
};
|
|
162
|
-
GoogleProvider.prototype.doComplete = function (request) {
|
|
163
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
164
|
-
var geminiRequest, model, url, controller, timeout, response, data, error_1;
|
|
165
|
-
return __generator(this, function (_a) {
|
|
166
|
-
switch (_a.label) {
|
|
167
|
-
case 0:
|
|
168
|
-
geminiRequest = this.buildRequest(request);
|
|
169
|
-
model = request.model || this.config.model;
|
|
170
|
-
url = "".concat(this.baseUrl, "/models/").concat(model, ":generateContent?key=").concat(this.config.apiKey);
|
|
171
|
-
controller = new AbortController();
|
|
172
|
-
timeout = setTimeout(function () { return controller.abort(); }, this.config.timeout || 60000);
|
|
173
|
-
_a.label = 1;
|
|
174
|
-
case 1:
|
|
175
|
-
_a.trys.push([1, 6, , 7]);
|
|
176
|
-
return [4 /*yield*/, fetch(url, {
|
|
177
|
-
method: 'POST',
|
|
178
|
-
headers: { 'Content-Type': 'application/json' },
|
|
179
|
-
body: JSON.stringify(geminiRequest),
|
|
180
|
-
signal: controller.signal,
|
|
181
|
-
})];
|
|
182
|
-
case 2:
|
|
183
|
-
response = _a.sent();
|
|
184
|
-
clearTimeout(timeout);
|
|
185
|
-
if (!!response.ok) return [3 /*break*/, 4];
|
|
186
|
-
return [4 /*yield*/, this.handleErrorResponse(response)];
|
|
187
|
-
case 3:
|
|
188
|
-
_a.sent();
|
|
189
|
-
_a.label = 4;
|
|
190
|
-
case 4: return [4 /*yield*/, response.json()];
|
|
191
|
-
case 5:
|
|
192
|
-
data = _a.sent();
|
|
193
|
-
return [2 /*return*/, this.transformResponse(data, request)];
|
|
194
|
-
case 6:
|
|
195
|
-
error_1 = _a.sent();
|
|
196
|
-
clearTimeout(timeout);
|
|
197
|
-
throw this.transformError(error_1);
|
|
198
|
-
case 7: return [2 /*return*/];
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
};
|
|
203
|
-
GoogleProvider.prototype.doStreamComplete = function (request) {
|
|
204
|
-
return __asyncGenerator(this, arguments, function doStreamComplete_1() {
|
|
205
|
-
var geminiRequest, model, url, controller, timeout, response, reader, decoder, buffer, totalTokens, _a, done, value, lines, _i, lines_1, line, data, chunk, candidate, _b, _c, part, _d, pricing, promptTokens, error_2;
|
|
206
|
-
var _e, _f;
|
|
207
|
-
return __generator(this, function (_g) {
|
|
208
|
-
switch (_g.label) {
|
|
209
|
-
case 0:
|
|
210
|
-
geminiRequest = this.buildRequest(request);
|
|
211
|
-
model = request.model || this.config.model;
|
|
212
|
-
url = "".concat(this.baseUrl, "/models/").concat(model, ":streamGenerateContent?key=").concat(this.config.apiKey, "&alt=sse");
|
|
213
|
-
controller = new AbortController();
|
|
214
|
-
timeout = setTimeout(function () { return controller.abort(); }, (this.config.timeout || 60000) * 2);
|
|
215
|
-
_g.label = 1;
|
|
216
|
-
case 1:
|
|
217
|
-
_g.trys.push([1, 20, 21, 22]);
|
|
218
|
-
return [4 /*yield*/, __await(fetch(url, {
|
|
219
|
-
method: 'POST',
|
|
220
|
-
headers: { 'Content-Type': 'application/json' },
|
|
221
|
-
body: JSON.stringify(geminiRequest),
|
|
222
|
-
signal: controller.signal,
|
|
223
|
-
}))];
|
|
224
|
-
case 2:
|
|
225
|
-
response = _g.sent();
|
|
226
|
-
if (!!response.ok) return [3 /*break*/, 4];
|
|
227
|
-
return [4 /*yield*/, __await(this.handleErrorResponse(response))];
|
|
228
|
-
case 3:
|
|
229
|
-
_g.sent();
|
|
230
|
-
_g.label = 4;
|
|
231
|
-
case 4:
|
|
232
|
-
reader = response.body.getReader();
|
|
233
|
-
decoder = new TextDecoder();
|
|
234
|
-
buffer = '';
|
|
235
|
-
totalTokens = 0;
|
|
236
|
-
_g.label = 5;
|
|
237
|
-
case 5:
|
|
238
|
-
if (!true) return [3 /*break*/, 17];
|
|
239
|
-
return [4 /*yield*/, __await(reader.read())];
|
|
240
|
-
case 6:
|
|
241
|
-
_a = _g.sent(), done = _a.done, value = _a.value;
|
|
242
|
-
if (done)
|
|
243
|
-
return [3 /*break*/, 17];
|
|
244
|
-
buffer += decoder.decode(value, { stream: true });
|
|
245
|
-
lines = buffer.split('\n');
|
|
246
|
-
buffer = lines.pop() || '';
|
|
247
|
-
_i = 0, lines_1 = lines;
|
|
248
|
-
_g.label = 7;
|
|
249
|
-
case 7:
|
|
250
|
-
if (!(_i < lines_1.length)) return [3 /*break*/, 16];
|
|
251
|
-
line = lines_1[_i];
|
|
252
|
-
if (!line.startsWith('data: ')) return [3 /*break*/, 15];
|
|
253
|
-
data = line.slice(6);
|
|
254
|
-
if (!data || data === '[DONE]')
|
|
255
|
-
return [3 /*break*/, 15];
|
|
256
|
-
_g.label = 8;
|
|
257
|
-
case 8:
|
|
258
|
-
_g.trys.push([8, 14, , 15]);
|
|
259
|
-
chunk = JSON.parse(data);
|
|
260
|
-
candidate = (_e = chunk.candidates) === null || _e === void 0 ? void 0 : _e[0];
|
|
261
|
-
if (!((_f = candidate === null || candidate === void 0 ? void 0 : candidate.content) === null || _f === void 0 ? void 0 : _f.parts)) return [3 /*break*/, 13];
|
|
262
|
-
_b = 0, _c = candidate.content.parts;
|
|
263
|
-
_g.label = 9;
|
|
264
|
-
case 9:
|
|
265
|
-
if (!(_b < _c.length)) return [3 /*break*/, 13];
|
|
266
|
-
part = _c[_b];
|
|
267
|
-
if (!part.text) return [3 /*break*/, 12];
|
|
268
|
-
return [4 /*yield*/, __await({
|
|
269
|
-
type: 'content',
|
|
270
|
-
delta: { content: part.text },
|
|
271
|
-
})];
|
|
272
|
-
case 10: return [4 /*yield*/, _g.sent()];
|
|
273
|
-
case 11:
|
|
274
|
-
_g.sent();
|
|
275
|
-
_g.label = 12;
|
|
276
|
-
case 12:
|
|
277
|
-
_b++;
|
|
278
|
-
return [3 /*break*/, 9];
|
|
279
|
-
case 13:
|
|
280
|
-
if (chunk.usageMetadata) {
|
|
281
|
-
totalTokens = chunk.usageMetadata.totalTokenCount;
|
|
282
|
-
}
|
|
283
|
-
return [3 /*break*/, 15];
|
|
284
|
-
case 14:
|
|
285
|
-
_d = _g.sent();
|
|
286
|
-
return [3 /*break*/, 15];
|
|
287
|
-
case 15:
|
|
288
|
-
_i++;
|
|
289
|
-
return [3 /*break*/, 7];
|
|
290
|
-
case 16: return [3 /*break*/, 5];
|
|
291
|
-
case 17:
|
|
292
|
-
pricing = this.capabilities.pricing[model];
|
|
293
|
-
promptTokens = this.estimateTokens(JSON.stringify(request.messages));
|
|
294
|
-
return [4 /*yield*/, __await({
|
|
295
|
-
type: 'done',
|
|
296
|
-
usage: {
|
|
297
|
-
promptTokens: promptTokens,
|
|
298
|
-
completionTokens: totalTokens - promptTokens,
|
|
299
|
-
totalTokens: totalTokens,
|
|
300
|
-
},
|
|
301
|
-
cost: {
|
|
302
|
-
promptCost: (promptTokens / 1000) * pricing.promptCostPer1k,
|
|
303
|
-
completionCost: ((totalTokens - promptTokens) / 1000) * pricing.completionCostPer1k,
|
|
304
|
-
totalCost: (promptTokens / 1000) * pricing.promptCostPer1k +
|
|
305
|
-
((totalTokens - promptTokens) / 1000) * pricing.completionCostPer1k,
|
|
306
|
-
currency: 'USD',
|
|
307
|
-
},
|
|
308
|
-
})];
|
|
309
|
-
case 18: return [4 /*yield*/, _g.sent()];
|
|
310
|
-
case 19:
|
|
311
|
-
_g.sent();
|
|
312
|
-
return [3 /*break*/, 22];
|
|
313
|
-
case 20:
|
|
314
|
-
error_2 = _g.sent();
|
|
315
|
-
clearTimeout(timeout);
|
|
316
|
-
throw this.transformError(error_2);
|
|
317
|
-
case 21:
|
|
318
|
-
clearTimeout(timeout);
|
|
319
|
-
return [7 /*endfinally*/];
|
|
320
|
-
case 22: return [2 /*return*/];
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
});
|
|
324
|
-
};
|
|
325
|
-
GoogleProvider.prototype.listModels = function () {
|
|
326
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
327
|
-
return __generator(this, function (_a) {
|
|
328
|
-
return [2 /*return*/, this.capabilities.supportedModels];
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
};
|
|
332
|
-
GoogleProvider.prototype.getModelInfo = function (model) {
|
|
333
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
334
|
-
var descriptions;
|
|
335
|
-
return __generator(this, function (_a) {
|
|
336
|
-
descriptions = {
|
|
337
|
-
'gemini-2.0-flash': 'Latest Gemini 2.0 with multimodal capabilities',
|
|
338
|
-
'gemini-1.5-pro': 'Most capable Gemini model with 2M context',
|
|
339
|
-
'gemini-1.5-flash': 'Fast and efficient Gemini model',
|
|
340
|
-
'gemini-pro': 'Balanced Gemini model',
|
|
341
|
-
};
|
|
342
|
-
return [2 /*return*/, {
|
|
343
|
-
model: model,
|
|
344
|
-
name: model,
|
|
345
|
-
description: descriptions[model] || 'Google Gemini model',
|
|
346
|
-
contextLength: this.capabilities.maxContextLength[model] || 32000,
|
|
347
|
-
maxOutputTokens: this.capabilities.maxOutputTokens[model] || 8192,
|
|
348
|
-
supportedFeatures: ['chat', 'completion', 'vision', 'audio', 'tool_calling'],
|
|
349
|
-
pricing: this.capabilities.pricing[model],
|
|
350
|
-
}];
|
|
351
|
-
});
|
|
352
|
-
});
|
|
353
|
-
};
|
|
354
|
-
GoogleProvider.prototype.doHealthCheck = function () {
|
|
355
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
356
|
-
var url, response, error_3;
|
|
357
|
-
return __generator(this, function (_a) {
|
|
358
|
-
switch (_a.label) {
|
|
359
|
-
case 0:
|
|
360
|
-
_a.trys.push([0, 2, , 3]);
|
|
361
|
-
url = "".concat(this.baseUrl, "/models?key=").concat(this.config.apiKey);
|
|
362
|
-
return [4 /*yield*/, fetch(url)];
|
|
363
|
-
case 1:
|
|
364
|
-
response = _a.sent();
|
|
365
|
-
return [2 /*return*/, __assign({ healthy: response.ok, timestamp: new Date() }, (response.ok ? {} : { error: "HTTP ".concat(response.status) }))];
|
|
366
|
-
case 2:
|
|
367
|
-
error_3 = _a.sent();
|
|
368
|
-
return [2 /*return*/, {
|
|
369
|
-
healthy: false,
|
|
370
|
-
error: error_3 instanceof Error ? error_3.message : 'Unknown error',
|
|
371
|
-
timestamp: new Date(),
|
|
372
|
-
}];
|
|
373
|
-
case 3: return [2 /*return*/];
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
});
|
|
377
|
-
};
|
|
378
|
-
GoogleProvider.prototype.buildRequest = function (request) {
|
|
379
|
-
var _a, _b, _c;
|
|
380
|
-
// Extract system message
|
|
381
|
-
var systemMessage = request.messages.find(function (m) { return m.role === 'system'; });
|
|
382
|
-
var otherMessages = request.messages.filter(function (m) { return m.role !== 'system'; });
|
|
383
|
-
// Transform messages
|
|
384
|
-
var contents = otherMessages.map(function (msg) { return ({
|
|
385
|
-
role: msg.role === 'assistant' ? 'model' : 'user',
|
|
386
|
-
parts: [{ text: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content) }],
|
|
387
|
-
}); });
|
|
388
|
-
var geminiRequest = { contents: contents };
|
|
389
|
-
if (systemMessage) {
|
|
390
|
-
geminiRequest.systemInstruction = {
|
|
391
|
-
parts: [{
|
|
392
|
-
text: typeof systemMessage.content === 'string'
|
|
393
|
-
? systemMessage.content
|
|
394
|
-
: JSON.stringify(systemMessage.content),
|
|
395
|
-
}],
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
var generationConfig = {};
|
|
399
|
-
if (request.temperature !== undefined || this.config.temperature !== undefined) {
|
|
400
|
-
generationConfig.temperature = (_a = request.temperature) !== null && _a !== void 0 ? _a : this.config.temperature;
|
|
401
|
-
}
|
|
402
|
-
if (request.topP !== undefined || this.config.topP !== undefined) {
|
|
403
|
-
generationConfig.topP = (_b = request.topP) !== null && _b !== void 0 ? _b : this.config.topP;
|
|
404
|
-
}
|
|
405
|
-
if (request.topK !== undefined || this.config.topK !== undefined) {
|
|
406
|
-
generationConfig.topK = (_c = request.topK) !== null && _c !== void 0 ? _c : this.config.topK;
|
|
407
|
-
}
|
|
408
|
-
if (request.maxTokens || this.config.maxTokens) {
|
|
409
|
-
generationConfig.maxOutputTokens = request.maxTokens || this.config.maxTokens;
|
|
410
|
-
}
|
|
411
|
-
if (request.stopSequences || this.config.stopSequences) {
|
|
412
|
-
generationConfig.stopSequences = request.stopSequences || this.config.stopSequences;
|
|
413
|
-
}
|
|
414
|
-
if (Object.keys(generationConfig).length > 0) {
|
|
415
|
-
geminiRequest.generationConfig = generationConfig;
|
|
416
|
-
}
|
|
417
|
-
if (request.tools) {
|
|
418
|
-
geminiRequest.tools = [{
|
|
419
|
-
functionDeclarations: request.tools.map(function (tool) { return ({
|
|
420
|
-
name: tool.function.name,
|
|
421
|
-
description: tool.function.description,
|
|
422
|
-
parameters: tool.function.parameters,
|
|
423
|
-
}); }),
|
|
424
|
-
}];
|
|
425
|
-
}
|
|
426
|
-
return geminiRequest;
|
|
427
|
-
};
|
|
428
|
-
GoogleProvider.prototype.transformResponse = function (data, request) {
|
|
429
|
-
var candidate = data.candidates[0];
|
|
430
|
-
var model = request.model || this.config.model;
|
|
431
|
-
var pricing = this.capabilities.pricing[model];
|
|
432
|
-
var textParts = candidate.content.parts.filter(function (p) { return p.text; });
|
|
433
|
-
var content = textParts.map(function (p) { return p.text; }).join('');
|
|
434
|
-
var toolCalls = candidate.content.parts
|
|
435
|
-
.filter(function (p) { return p.functionCall; })
|
|
436
|
-
.map(function (p) { return ({
|
|
437
|
-
id: "tool_".concat(Date.now()),
|
|
438
|
-
type: 'function',
|
|
439
|
-
function: {
|
|
440
|
-
name: p.functionCall.name,
|
|
441
|
-
arguments: JSON.stringify(p.functionCall.args),
|
|
442
|
-
},
|
|
443
|
-
}); });
|
|
444
|
-
var promptCost = (data.usageMetadata.promptTokenCount / 1000) * pricing.promptCostPer1k;
|
|
445
|
-
var completionCost = (data.usageMetadata.candidatesTokenCount / 1000) * pricing.completionCostPer1k;
|
|
446
|
-
return {
|
|
447
|
-
id: "gemini-".concat(Date.now()),
|
|
448
|
-
model: model,
|
|
449
|
-
provider: 'google',
|
|
450
|
-
content: content,
|
|
451
|
-
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
452
|
-
usage: {
|
|
453
|
-
promptTokens: data.usageMetadata.promptTokenCount,
|
|
454
|
-
completionTokens: data.usageMetadata.candidatesTokenCount,
|
|
455
|
-
totalTokens: data.usageMetadata.totalTokenCount,
|
|
456
|
-
},
|
|
457
|
-
cost: {
|
|
458
|
-
promptCost: promptCost,
|
|
459
|
-
completionCost: completionCost,
|
|
460
|
-
totalCost: promptCost + completionCost,
|
|
461
|
-
currency: 'USD',
|
|
462
|
-
},
|
|
463
|
-
finishReason: candidate.finishReason === 'STOP' ? 'stop' : 'length',
|
|
464
|
-
};
|
|
465
|
-
};
|
|
466
|
-
GoogleProvider.prototype.handleErrorResponse = function (response) {
|
|
467
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
468
|
-
var errorText, errorData, message;
|
|
469
|
-
var _a;
|
|
470
|
-
return __generator(this, function (_b) {
|
|
471
|
-
switch (_b.label) {
|
|
472
|
-
case 0: return [4 /*yield*/, response.text()];
|
|
473
|
-
case 1:
|
|
474
|
-
errorText = _b.sent();
|
|
475
|
-
try {
|
|
476
|
-
errorData = JSON.parse(errorText);
|
|
477
|
-
}
|
|
478
|
-
catch (_c) {
|
|
479
|
-
errorData = { error: { message: errorText } };
|
|
480
|
-
}
|
|
481
|
-
message = ((_a = errorData.error) === null || _a === void 0 ? void 0 : _a.message) || 'Unknown error';
|
|
482
|
-
switch (response.status) {
|
|
483
|
-
case 401:
|
|
484
|
-
case 403:
|
|
485
|
-
throw new types_js_1.AuthenticationError(message, 'google', errorData);
|
|
486
|
-
case 429:
|
|
487
|
-
throw new types_js_1.RateLimitError(message, 'google', undefined, errorData);
|
|
488
|
-
default:
|
|
489
|
-
throw new types_js_1.LLMProviderError(message, "GOOGLE_".concat(response.status), 'google', response.status, response.status >= 500, errorData);
|
|
490
|
-
}
|
|
491
|
-
return [2 /*return*/];
|
|
492
|
-
}
|
|
493
|
-
});
|
|
494
|
-
});
|
|
495
|
-
};
|
|
496
|
-
return GoogleProvider;
|
|
497
|
-
}(base_provider_js_1.BaseProvider));
|
|
498
|
-
exports.GoogleProvider = GoogleProvider;
|
package/dist/index.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @sparkleideas/providers
|
|
3
|
-
*
|
|
4
|
-
* Multi-LLM Provider System for Claude Flow V3
|
|
5
|
-
*
|
|
6
|
-
* Supports:
|
|
7
|
-
* - Anthropic (Claude 3.5, 3 Opus, Sonnet, Haiku)
|
|
8
|
-
* - OpenAI (GPT-4o, o1, GPT-4, GPT-3.5)
|
|
9
|
-
* - Google (Gemini 2.0, 1.5 Pro, Flash)
|
|
10
|
-
* - Cohere (Command R+, R, Light)
|
|
11
|
-
* - Ollama (Local: Llama, Mistral, CodeLlama, Phi)
|
|
12
|
-
*
|
|
13
|
-
* Features:
|
|
14
|
-
* - Load balancing (round-robin, latency, cost-based)
|
|
15
|
-
* - Automatic failover
|
|
16
|
-
* - Request caching
|
|
17
|
-
* - Cost optimization (85%+ savings with intelligent routing)
|
|
18
|
-
* - Circuit breaker protection
|
|
19
|
-
* - Health monitoring
|
|
20
|
-
*
|
|
21
|
-
* @module @sparkleideas/providers
|
|
22
|
-
*/
|
|
23
|
-
export * from './types.js';
|
|
24
|
-
export { BaseProvider, consoleLogger } from './base-provider.js';
|
|
25
|
-
export type { BaseProviderOptions, ILogger } from './base-provider.js';
|
|
26
|
-
export { AnthropicProvider } from './anthropic-provider.js';
|
|
27
|
-
export { OpenAIProvider } from './openai-provider.js';
|
|
28
|
-
export { GoogleProvider } from './google-provider.js';
|
|
29
|
-
export { CohereProvider } from './cohere-provider.js';
|
|
30
|
-
export { OllamaProvider } from './ollama-provider.js';
|
|
31
|
-
export { RuVectorProvider } from './ruvector-provider.js';
|
|
32
|
-
export { ProviderManager, createProviderManager } from './provider-manager.js';
|
|
33
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @sparkleideas/providers
|
|
4
|
-
*
|
|
5
|
-
* Multi-LLM Provider System for Claude Flow V3
|
|
6
|
-
*
|
|
7
|
-
* Supports:
|
|
8
|
-
* - Anthropic (Claude 3.5, 3 Opus, Sonnet, Haiku)
|
|
9
|
-
* - OpenAI (GPT-4o, o1, GPT-4, GPT-3.5)
|
|
10
|
-
* - Google (Gemini 2.0, 1.5 Pro, Flash)
|
|
11
|
-
* - Cohere (Command R+, R, Light)
|
|
12
|
-
* - Ollama (Local: Llama, Mistral, CodeLlama, Phi)
|
|
13
|
-
*
|
|
14
|
-
* Features:
|
|
15
|
-
* - Load balancing (round-robin, latency, cost-based)
|
|
16
|
-
* - Automatic failover
|
|
17
|
-
* - Request caching
|
|
18
|
-
* - Cost optimization (85%+ savings with intelligent routing)
|
|
19
|
-
* - Circuit breaker protection
|
|
20
|
-
* - Health monitoring
|
|
21
|
-
*
|
|
22
|
-
* @module @sparkleideas/providers
|
|
23
|
-
*/
|
|
24
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
27
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
28
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
29
|
-
}
|
|
30
|
-
Object.defineProperty(o, k2, desc);
|
|
31
|
-
}) : (function(o, m, k, k2) {
|
|
32
|
-
if (k2 === undefined) k2 = k;
|
|
33
|
-
o[k2] = m[k];
|
|
34
|
-
}));
|
|
35
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.createProviderManager = exports.ProviderManager = exports.RuVectorProvider = exports.OllamaProvider = exports.CohereProvider = exports.GoogleProvider = exports.OpenAIProvider = exports.AnthropicProvider = exports.consoleLogger = exports.BaseProvider = void 0;
|
|
40
|
-
// Export types
|
|
41
|
-
__exportStar(require("./types.js"), exports);
|
|
42
|
-
// Export base provider
|
|
43
|
-
var base_provider_js_1 = require("./base-provider.js");
|
|
44
|
-
Object.defineProperty(exports, "BaseProvider", { enumerable: true, get: function () { return base_provider_js_1.BaseProvider; } });
|
|
45
|
-
Object.defineProperty(exports, "consoleLogger", { enumerable: true, get: function () { return base_provider_js_1.consoleLogger; } });
|
|
46
|
-
// Export providers
|
|
47
|
-
var anthropic_provider_js_1 = require("./anthropic-provider.js");
|
|
48
|
-
Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return anthropic_provider_js_1.AnthropicProvider; } });
|
|
49
|
-
var openai_provider_js_1 = require("./openai-provider.js");
|
|
50
|
-
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return openai_provider_js_1.OpenAIProvider; } });
|
|
51
|
-
var google_provider_js_1 = require("./google-provider.js");
|
|
52
|
-
Object.defineProperty(exports, "GoogleProvider", { enumerable: true, get: function () { return google_provider_js_1.GoogleProvider; } });
|
|
53
|
-
var cohere_provider_js_1 = require("./cohere-provider.js");
|
|
54
|
-
Object.defineProperty(exports, "CohereProvider", { enumerable: true, get: function () { return cohere_provider_js_1.CohereProvider; } });
|
|
55
|
-
var ollama_provider_js_1 = require("./ollama-provider.js");
|
|
56
|
-
Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return ollama_provider_js_1.OllamaProvider; } });
|
|
57
|
-
var ruvector_provider_js_1 = require("./ruvector-provider.js");
|
|
58
|
-
Object.defineProperty(exports, "RuVectorProvider", { enumerable: true, get: function () { return ruvector_provider_js_1.RuVectorProvider; } });
|
|
59
|
-
// Export provider manager
|
|
60
|
-
var provider_manager_js_1 = require("./provider-manager.js");
|
|
61
|
-
Object.defineProperty(exports, "ProviderManager", { enumerable: true, get: function () { return provider_manager_js_1.ProviderManager; } });
|
|
62
|
-
Object.defineProperty(exports, "createProviderManager", { enumerable: true, get: function () { return provider_manager_js_1.createProviderManager; } });
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Ollama Provider (Local Models)
|
|
3
|
-
*
|
|
4
|
-
* Supports Llama, Mistral, CodeLlama, Phi, and other local models.
|
|
5
|
-
* Zero cost - runs entirely locally.
|
|
6
|
-
*
|
|
7
|
-
* @module @sparkleideas/providers/ollama-provider
|
|
8
|
-
*/
|
|
9
|
-
import { BaseProvider, BaseProviderOptions } from './base-provider.js';
|
|
10
|
-
import { LLMProvider, LLMModel, LLMRequest, LLMResponse, LLMStreamEvent, ModelInfo, ProviderCapabilities, HealthCheckResult } from './types.js';
|
|
11
|
-
export declare class OllamaProvider extends BaseProvider {
|
|
12
|
-
readonly name: LLMProvider;
|
|
13
|
-
readonly capabilities: ProviderCapabilities;
|
|
14
|
-
private baseUrl;
|
|
15
|
-
constructor(options: BaseProviderOptions);
|
|
16
|
-
protected doInitialize(): Promise<void>;
|
|
17
|
-
protected doComplete(request: LLMRequest): Promise<LLMResponse>;
|
|
18
|
-
protected doStreamComplete(request: LLMRequest): AsyncIterable<LLMStreamEvent>;
|
|
19
|
-
listModels(): Promise<LLMModel[]>;
|
|
20
|
-
getModelInfo(model: LLMModel): Promise<ModelInfo>;
|
|
21
|
-
protected doHealthCheck(): Promise<HealthCheckResult>;
|
|
22
|
-
private buildRequest;
|
|
23
|
-
private transformResponse;
|
|
24
|
-
private handleErrorResponse;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=ollama-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-provider.d.ts","sourceRoot":"","sources":["../src/ollama-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AA6CpB,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAY;IACtC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAmDzC;IAEF,OAAO,CAAC,OAAO,CAAoC;gBAEvC,OAAO,EAAE,mBAAmB;cAIxB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAU7B,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;cA4BpD,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC;IA6E/E,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAcjC,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;cAsBvC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAyB3D,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,iBAAiB;YAqCX,mBAAmB;CA4BlC"}
|