@rcrsr/rill-ext-gemini 0.0.1 → 0.8.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/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +183 -336
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -27
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAML,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,aAAa,CAAC;AAarB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA2CxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CA00BjB"}
|
package/dist/factory.js
CHANGED
|
@@ -3,88 +3,39 @@
|
|
|
3
3
|
* Creates extension instance with config validation and SDK lifecycle management.
|
|
4
4
|
*/
|
|
5
5
|
import { GoogleGenAI, Type, } from '@google/genai';
|
|
6
|
-
import { RuntimeError, emitExtensionEvent, createVector,
|
|
6
|
+
import { RuntimeError, emitExtensionEvent, createVector, isVector, isCallable, } from '@rcrsr/rill';
|
|
7
|
+
import { validateApiKey, validateModel, validateTemperature, validateEmbedText, validateEmbedBatch, validateEmbedModel, mapProviderError, executeToolLoop, } from '@rcrsr/rill-ext-llm-shared';
|
|
7
8
|
// ============================================================
|
|
8
9
|
// CONSTANTS
|
|
9
10
|
// ============================================================
|
|
10
|
-
const MIN_TEMPERATURE = 0.0;
|
|
11
|
-
const MAX_TEMPERATURE = 2.0;
|
|
12
11
|
const DEFAULT_MAX_TOKENS = 8192;
|
|
13
12
|
// ============================================================
|
|
14
13
|
// HELPER FUNCTIONS
|
|
15
14
|
// ============================================================
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
16
|
+
* Gemini-specific error detector for mapProviderError.
|
|
17
|
+
* Extracts status code and message using string pattern matching.
|
|
18
18
|
*
|
|
19
|
-
* @param error -
|
|
20
|
-
* @returns
|
|
19
|
+
* @param error - Unknown error value
|
|
20
|
+
* @returns Object with status and message if Gemini error, null otherwise
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
const detectGeminiError = (error) => {
|
|
23
23
|
if (error instanceof Error) {
|
|
24
24
|
const message = error.message;
|
|
25
|
-
//
|
|
26
|
-
if (message.includes('401') || message.includes('authentication')) {
|
|
27
|
-
return new RuntimeError('RILL-R004', 'Gemini: authentication failed (401)');
|
|
28
|
-
}
|
|
29
|
-
if (message.includes('429') || message.includes('rate limit')) {
|
|
30
|
-
return new RuntimeError('RILL-R004', 'Gemini: rate limit');
|
|
31
|
-
}
|
|
32
|
-
if (message.includes('timeout') || message.includes('ETIMEDOUT')) {
|
|
33
|
-
return new RuntimeError('RILL-R004', 'Gemini: request timeout');
|
|
34
|
-
}
|
|
35
|
-
// Extract status code if present
|
|
25
|
+
// Extract status code if present in message
|
|
36
26
|
const statusMatch = message.match(/\((\d{3})\)/);
|
|
37
27
|
if (statusMatch && statusMatch[1]) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
28
|
+
return {
|
|
29
|
+
status: parseInt(statusMatch[1], 10),
|
|
30
|
+
message,
|
|
31
|
+
};
|
|
42
32
|
}
|
|
43
|
-
return
|
|
33
|
+
return {
|
|
34
|
+
message,
|
|
35
|
+
};
|
|
44
36
|
}
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
-
// ============================================================
|
|
48
|
-
// VALIDATION
|
|
49
|
-
// ============================================================
|
|
50
|
-
/**
|
|
51
|
-
* Validate api_key is present and non-empty.
|
|
52
|
-
*
|
|
53
|
-
* @param api_key - API key to validate
|
|
54
|
-
* @throws Error if api_key missing or empty (EC-1, EC-3)
|
|
55
|
-
*/
|
|
56
|
-
function validateApiKey(api_key) {
|
|
57
|
-
if (api_key === undefined) {
|
|
58
|
-
throw new Error('api_key is required');
|
|
59
|
-
}
|
|
60
|
-
if (api_key === '') {
|
|
61
|
-
throw new Error('api_key cannot be empty');
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Validate model is present and non-empty.
|
|
66
|
-
*
|
|
67
|
-
* @param model - Model identifier to validate
|
|
68
|
-
* @throws Error if model missing or empty (EC-2)
|
|
69
|
-
*/
|
|
70
|
-
function validateModel(model) {
|
|
71
|
-
if (model === undefined || model === '') {
|
|
72
|
-
throw new Error('model is required');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Validate temperature is within valid range (0.0-2.0).
|
|
77
|
-
*
|
|
78
|
-
* @param temperature - Temperature value to validate
|
|
79
|
-
* @throws Error if temperature out of range (EC-4)
|
|
80
|
-
*/
|
|
81
|
-
function validateTemperature(temperature) {
|
|
82
|
-
if (temperature !== undefined) {
|
|
83
|
-
if (temperature < MIN_TEMPERATURE || temperature > MAX_TEMPERATURE) {
|
|
84
|
-
throw new Error('temperature must be between 0 and 2');
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
37
|
+
return null;
|
|
38
|
+
};
|
|
88
39
|
// ============================================================
|
|
89
40
|
// FACTORY
|
|
90
41
|
// ============================================================
|
|
@@ -233,7 +184,9 @@ export function createGeminiExtension(config) {
|
|
|
233
184
|
catch (error) {
|
|
234
185
|
// Map error and emit failure event
|
|
235
186
|
const duration = Date.now() - startTime;
|
|
236
|
-
const rillError =
|
|
187
|
+
const rillError = error instanceof RuntimeError
|
|
188
|
+
? error
|
|
189
|
+
: mapProviderError('Gemini', error, detectGeminiError);
|
|
237
190
|
emitExtensionEvent(ctx, {
|
|
238
191
|
event: 'gemini:error',
|
|
239
192
|
subsystem: 'extension:gemini',
|
|
@@ -371,7 +324,9 @@ export function createGeminiExtension(config) {
|
|
|
371
324
|
catch (error) {
|
|
372
325
|
// Map error and emit failure event
|
|
373
326
|
const duration = Date.now() - startTime;
|
|
374
|
-
const rillError =
|
|
327
|
+
const rillError = error instanceof RuntimeError
|
|
328
|
+
? error
|
|
329
|
+
: mapProviderError('Gemini', error, detectGeminiError);
|
|
375
330
|
emitExtensionEvent(ctx, {
|
|
376
331
|
event: 'gemini:error',
|
|
377
332
|
subsystem: 'extension:gemini',
|
|
@@ -392,14 +347,9 @@ export function createGeminiExtension(config) {
|
|
|
392
347
|
try {
|
|
393
348
|
// Extract arguments
|
|
394
349
|
const text = args[0];
|
|
395
|
-
//
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}
|
|
399
|
-
// EC-16: Validate embed_model is configured
|
|
400
|
-
if (factoryEmbedModel === undefined || factoryEmbedModel === '') {
|
|
401
|
-
throw new RuntimeError('RILL-R004', 'embed_model not configured');
|
|
402
|
-
}
|
|
350
|
+
// Validate using shared functions
|
|
351
|
+
validateEmbedText(text);
|
|
352
|
+
validateEmbedModel(factoryEmbedModel);
|
|
403
353
|
// Call Gemini embedContent API
|
|
404
354
|
const response = await client.models.embedContent({
|
|
405
355
|
model: factoryEmbedModel,
|
|
@@ -429,7 +379,9 @@ export function createGeminiExtension(config) {
|
|
|
429
379
|
catch (error) {
|
|
430
380
|
// Map error and emit failure event
|
|
431
381
|
const duration = Date.now() - startTime;
|
|
432
|
-
const rillError =
|
|
382
|
+
const rillError = error instanceof RuntimeError
|
|
383
|
+
? error
|
|
384
|
+
: mapProviderError('Gemini', error, detectGeminiError);
|
|
433
385
|
emitExtensionEvent(ctx, {
|
|
434
386
|
event: 'gemini:error',
|
|
435
387
|
subsystem: 'extension:gemini',
|
|
@@ -454,23 +406,9 @@ export function createGeminiExtension(config) {
|
|
|
454
406
|
if (texts.length === 0) {
|
|
455
407
|
return [];
|
|
456
408
|
}
|
|
457
|
-
//
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
}
|
|
461
|
-
// EC-18: Validate all elements are strings
|
|
462
|
-
const stringTexts = [];
|
|
463
|
-
for (let i = 0; i < texts.length; i++) {
|
|
464
|
-
const text = texts[i];
|
|
465
|
-
if (typeof text !== 'string') {
|
|
466
|
-
throw new RuntimeError('RILL-R004', 'embed_batch requires list of strings');
|
|
467
|
-
}
|
|
468
|
-
// EC-19: Check for empty strings
|
|
469
|
-
if (text.trim().length === 0) {
|
|
470
|
-
throw new RuntimeError('RILL-R004', `embed text cannot be empty at index ${i}`);
|
|
471
|
-
}
|
|
472
|
-
stringTexts.push(text);
|
|
473
|
-
}
|
|
409
|
+
// Validate using shared functions
|
|
410
|
+
validateEmbedModel(factoryEmbedModel);
|
|
411
|
+
const stringTexts = validateEmbedBatch(texts);
|
|
474
412
|
// Call Gemini embedContent API with array of texts
|
|
475
413
|
const response = await client.models.embedContent({
|
|
476
414
|
model: factoryEmbedModel,
|
|
@@ -508,7 +446,9 @@ export function createGeminiExtension(config) {
|
|
|
508
446
|
catch (error) {
|
|
509
447
|
// Map error and emit failure event
|
|
510
448
|
const duration = Date.now() - startTime;
|
|
511
|
-
const rillError =
|
|
449
|
+
const rillError = error instanceof RuntimeError
|
|
450
|
+
? error
|
|
451
|
+
: mapProviderError('Gemini', error, detectGeminiError);
|
|
512
452
|
emitExtensionEvent(ctx, {
|
|
513
453
|
event: 'gemini:error',
|
|
514
454
|
subsystem: 'extension:gemini',
|
|
@@ -542,6 +482,26 @@ export function createGeminiExtension(config) {
|
|
|
542
482
|
throw new RuntimeError('RILL-R004', "tool_loop requires 'tools' option");
|
|
543
483
|
}
|
|
544
484
|
const toolDescriptors = options['tools'];
|
|
485
|
+
// Convert tool descriptors array to dict for shared tool loop
|
|
486
|
+
const toolsDict = {};
|
|
487
|
+
for (const descriptor of toolDescriptors) {
|
|
488
|
+
const name = typeof descriptor['name'] === 'string'
|
|
489
|
+
? descriptor['name']
|
|
490
|
+
: null;
|
|
491
|
+
if (!name) {
|
|
492
|
+
throw new RuntimeError('RILL-R004', 'tool descriptor missing name');
|
|
493
|
+
}
|
|
494
|
+
const toolFnValue = descriptor['fn'];
|
|
495
|
+
if (!toolFnValue) {
|
|
496
|
+
throw new RuntimeError('RILL-R004', `tool '${name}' missing fn property`);
|
|
497
|
+
}
|
|
498
|
+
// Validate tool is callable
|
|
499
|
+
if (!isCallable(toolFnValue)) {
|
|
500
|
+
throw new RuntimeError('RILL-R004', `tool '${name}' fn must be callable`);
|
|
501
|
+
}
|
|
502
|
+
// Use the callable as-is (Gemini tests don't enhance with params)
|
|
503
|
+
toolsDict[name] = toolFnValue;
|
|
504
|
+
}
|
|
545
505
|
// Extract options with defaults
|
|
546
506
|
const system = typeof options['system'] === 'string'
|
|
547
507
|
? options['system']
|
|
@@ -558,66 +518,8 @@ export function createGeminiExtension(config) {
|
|
|
558
518
|
const initialMessages = Array.isArray(options['messages']) && options['messages'].length > 0
|
|
559
519
|
? options['messages']
|
|
560
520
|
: [];
|
|
561
|
-
// Build
|
|
562
|
-
const
|
|
563
|
-
const geminiTools = [];
|
|
564
|
-
for (const tool of toolDescriptors) {
|
|
565
|
-
if (typeof tool !== 'object' ||
|
|
566
|
-
tool === null ||
|
|
567
|
-
!('name' in tool) ||
|
|
568
|
-
!('fn' in tool)) {
|
|
569
|
-
throw new RuntimeError('RILL-R004', 'invalid tool descriptor in tools list');
|
|
570
|
-
}
|
|
571
|
-
const toolName = tool['name'];
|
|
572
|
-
const toolFn = tool['fn'];
|
|
573
|
-
if (!isCallable(toolFn)) {
|
|
574
|
-
throw new RuntimeError('RILL-R004', `tool '${toolName}' not callable`);
|
|
575
|
-
}
|
|
576
|
-
toolMap.set(toolName, toolFn);
|
|
577
|
-
// Build Gemini tool definition
|
|
578
|
-
const description = typeof tool['description'] === 'string'
|
|
579
|
-
? tool['description']
|
|
580
|
-
: '';
|
|
581
|
-
const params = tool['params'] ?? {};
|
|
582
|
-
// Convert rill params dict to JSON Schema
|
|
583
|
-
const properties = {};
|
|
584
|
-
const required = [];
|
|
585
|
-
if (typeof params === 'object' && params !== null) {
|
|
586
|
-
for (const [paramName, paramSpec] of Object.entries(params)) {
|
|
587
|
-
if (typeof paramSpec === 'object' &&
|
|
588
|
-
paramSpec !== null &&
|
|
589
|
-
'type' in paramSpec) {
|
|
590
|
-
const spec = paramSpec;
|
|
591
|
-
const typeStr = (spec['type'] ?? 'string');
|
|
592
|
-
// Map rill types to Gemini Schema types
|
|
593
|
-
let schemaType = Type.STRING;
|
|
594
|
-
if (typeStr === 'number')
|
|
595
|
-
schemaType = Type.NUMBER;
|
|
596
|
-
if (typeStr === 'boolean')
|
|
597
|
-
schemaType = Type.BOOLEAN;
|
|
598
|
-
if (typeStr === 'integer')
|
|
599
|
-
schemaType = Type.INTEGER;
|
|
600
|
-
properties[paramName] = {
|
|
601
|
-
type: schemaType,
|
|
602
|
-
description: (spec['description'] ?? ''),
|
|
603
|
-
};
|
|
604
|
-
// All params are required by default
|
|
605
|
-
required.push(paramName);
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
geminiTools.push({
|
|
610
|
-
name: toolName,
|
|
611
|
-
description,
|
|
612
|
-
parameters: {
|
|
613
|
-
type: Type.OBJECT,
|
|
614
|
-
properties,
|
|
615
|
-
required,
|
|
616
|
-
},
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
// Build initial contents array
|
|
620
|
-
const conversationContents = [];
|
|
521
|
+
// Build initial Gemini contents array
|
|
522
|
+
const contents = [];
|
|
621
523
|
// Add history messages if provided
|
|
622
524
|
for (const msg of initialMessages) {
|
|
623
525
|
if (typeof msg === 'object' &&
|
|
@@ -626,13 +528,13 @@ export function createGeminiExtension(config) {
|
|
|
626
528
|
'content' in msg) {
|
|
627
529
|
const role = msg['role'];
|
|
628
530
|
if (role === 'user') {
|
|
629
|
-
|
|
531
|
+
contents.push({
|
|
630
532
|
role: 'user',
|
|
631
533
|
parts: [{ text: msg['content'] }],
|
|
632
534
|
});
|
|
633
535
|
}
|
|
634
536
|
else if (role === 'assistant') {
|
|
635
|
-
|
|
537
|
+
contents.push({
|
|
636
538
|
role: 'model',
|
|
637
539
|
parts: [{ text: msg['content'] }],
|
|
638
540
|
});
|
|
@@ -640,202 +542,145 @@ export function createGeminiExtension(config) {
|
|
|
640
542
|
}
|
|
641
543
|
}
|
|
642
544
|
// Add user prompt
|
|
643
|
-
|
|
545
|
+
contents.push({
|
|
644
546
|
role: 'user',
|
|
645
547
|
parts: [{ text: prompt }],
|
|
646
548
|
});
|
|
647
|
-
//
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
// Aggregate usage (Gemini API may not provide token counts)
|
|
673
|
-
totalInputTokens += 0;
|
|
674
|
-
totalOutputTokens += 0;
|
|
675
|
-
// Extract response text
|
|
676
|
-
const responseText = response.text ?? '';
|
|
677
|
-
// Check for function calls in response
|
|
678
|
-
const functionCalls = response.functionCalls;
|
|
679
|
-
if (functionCalls && functionCalls.length > 0) {
|
|
680
|
-
// Add model message with function calls to conversation
|
|
681
|
-
const functionCallParts = functionCalls.map((fc) => ({
|
|
682
|
-
functionCall: {
|
|
683
|
-
name: fc.name ?? '',
|
|
684
|
-
args: fc.args ?? {},
|
|
685
|
-
id: fc.id ?? '',
|
|
686
|
-
},
|
|
687
|
-
}));
|
|
688
|
-
conversationContents.push({
|
|
689
|
-
role: 'model',
|
|
690
|
-
parts: functionCallParts,
|
|
691
|
-
});
|
|
692
|
-
// Execute tool calls (parallel for multiple calls)
|
|
693
|
-
const toolResults = await Promise.all(functionCalls.map(async (functionCall) => {
|
|
694
|
-
const toolStartTime = Date.now();
|
|
695
|
-
const toolName = functionCall.name ?? '';
|
|
696
|
-
// Emit tool_call event
|
|
697
|
-
emitExtensionEvent(ctx, {
|
|
698
|
-
event: 'gemini:tool_call',
|
|
699
|
-
subsystem: 'extension:gemini',
|
|
700
|
-
tool_name: toolName,
|
|
701
|
-
args: JSON.stringify(functionCall.args),
|
|
702
|
-
});
|
|
703
|
-
// EC-24: Check tool exists (configuration error, abort immediately)
|
|
704
|
-
const toolFn = toolMap.get(toolName);
|
|
705
|
-
if (!toolFn) {
|
|
706
|
-
throw new RuntimeError('RILL-R004', `unknown tool '${toolName}'`);
|
|
707
|
-
}
|
|
708
|
-
try {
|
|
709
|
-
// Convert args object to RillValue array (positional args)
|
|
710
|
-
const toolArgs = functionCall.args ?? {};
|
|
711
|
-
const argsArray = [];
|
|
712
|
-
for (const [, value] of Object.entries(toolArgs)) {
|
|
713
|
-
argsArray.push(value);
|
|
714
|
-
}
|
|
715
|
-
// Invoke tool callable based on type
|
|
716
|
-
let result;
|
|
717
|
-
if (toolFn.kind === 'script') {
|
|
718
|
-
// ScriptCallable: not supported in tool_loop context
|
|
719
|
-
throw new RuntimeError('RILL-R004', 'script closures not yet supported in tool_loop');
|
|
720
|
-
}
|
|
721
|
-
else {
|
|
722
|
-
// RuntimeCallable or ApplicationCallable
|
|
723
|
-
result = await toolFn.fn(argsArray, ctx, undefined);
|
|
724
|
-
}
|
|
725
|
-
// Reset consecutive errors on success
|
|
726
|
-
consecutiveErrors = 0;
|
|
727
|
-
// Emit tool_result event
|
|
728
|
-
const toolDuration = Date.now() - toolStartTime;
|
|
729
|
-
emitExtensionEvent(ctx, {
|
|
730
|
-
event: 'gemini:tool_result',
|
|
731
|
-
subsystem: 'extension:gemini',
|
|
732
|
-
tool_name: toolName,
|
|
733
|
-
duration: toolDuration,
|
|
734
|
-
});
|
|
735
|
-
// Return tool result
|
|
736
|
-
return {
|
|
737
|
-
name: toolName,
|
|
738
|
-
response: typeof result === 'string'
|
|
739
|
-
? result
|
|
740
|
-
: JSON.stringify(result),
|
|
741
|
-
};
|
|
742
|
-
}
|
|
743
|
-
catch (error) {
|
|
744
|
-
consecutiveErrors++;
|
|
745
|
-
// Format error for LLM
|
|
746
|
-
const errorMessage = error instanceof RuntimeError
|
|
747
|
-
? error.message
|
|
748
|
-
: error instanceof Error
|
|
749
|
-
? error.message
|
|
750
|
-
: 'unknown error';
|
|
751
|
-
// Emit tool_result event with error
|
|
752
|
-
const toolDuration = Date.now() - toolStartTime;
|
|
753
|
-
emitExtensionEvent(ctx, {
|
|
754
|
-
event: 'gemini:tool_result',
|
|
755
|
-
subsystem: 'extension:gemini',
|
|
756
|
-
tool_name: toolName,
|
|
757
|
-
duration: toolDuration,
|
|
758
|
-
error: errorMessage,
|
|
759
|
-
});
|
|
760
|
-
// EC-25: Check if max_errors exceeded
|
|
761
|
-
if (consecutiveErrors >= maxErrors) {
|
|
762
|
-
throw new RuntimeError('RILL-R004', `tool loop aborted after ${maxErrors} consecutive errors`);
|
|
763
|
-
}
|
|
764
|
-
// Return error to LLM as tool result
|
|
765
|
-
return {
|
|
766
|
-
name: toolName,
|
|
767
|
-
response: JSON.stringify({
|
|
768
|
-
error: errorMessage,
|
|
769
|
-
code: 'RILL-R001',
|
|
770
|
-
}),
|
|
549
|
+
// Define Gemini-specific callbacks for shared tool loop
|
|
550
|
+
const callbacks = {
|
|
551
|
+
// Build Gemini FunctionDeclaration format from tool definitions
|
|
552
|
+
buildTools: (toolDefs) => {
|
|
553
|
+
return toolDefs.map((def) => {
|
|
554
|
+
// Convert JSON Schema properties to Gemini Schema format
|
|
555
|
+
const properties = {};
|
|
556
|
+
for (const [propName, propDef] of Object.entries(def.input_schema.properties)) {
|
|
557
|
+
const prop = propDef;
|
|
558
|
+
const propType = prop['type'];
|
|
559
|
+
// Map JSON Schema types to Gemini Schema types
|
|
560
|
+
let schemaType = Type.STRING;
|
|
561
|
+
if (propType === 'number')
|
|
562
|
+
schemaType = Type.NUMBER;
|
|
563
|
+
if (propType === 'boolean')
|
|
564
|
+
schemaType = Type.BOOLEAN;
|
|
565
|
+
if (propType === 'integer')
|
|
566
|
+
schemaType = Type.INTEGER;
|
|
567
|
+
if (propType === 'array')
|
|
568
|
+
schemaType = Type.ARRAY;
|
|
569
|
+
if (propType === 'object')
|
|
570
|
+
schemaType = Type.OBJECT;
|
|
571
|
+
properties[propName] = {
|
|
572
|
+
type: schemaType,
|
|
573
|
+
description: prop['description'] ?? '',
|
|
771
574
|
};
|
|
772
575
|
}
|
|
773
|
-
|
|
774
|
-
|
|
576
|
+
return {
|
|
577
|
+
name: def.name,
|
|
578
|
+
description: def.description,
|
|
579
|
+
parameters: {
|
|
580
|
+
type: Type.OBJECT,
|
|
581
|
+
properties,
|
|
582
|
+
required: def.input_schema.required,
|
|
583
|
+
},
|
|
584
|
+
};
|
|
585
|
+
});
|
|
586
|
+
},
|
|
587
|
+
// Call Gemini API
|
|
588
|
+
callAPI: async (msgs, tools) => {
|
|
589
|
+
const apiConfig = {
|
|
590
|
+
...(system !== undefined && { systemInstruction: system }),
|
|
591
|
+
...(maxTokens !== undefined && { maxOutputTokens: maxTokens }),
|
|
592
|
+
...(factoryTemperature !== undefined && {
|
|
593
|
+
temperature: factoryTemperature,
|
|
594
|
+
}),
|
|
595
|
+
tools: [
|
|
596
|
+
{ functionDeclarations: tools },
|
|
597
|
+
],
|
|
598
|
+
};
|
|
599
|
+
return await client.models.generateContent({
|
|
600
|
+
model: factoryModel,
|
|
601
|
+
contents: msgs,
|
|
602
|
+
config: apiConfig,
|
|
603
|
+
});
|
|
604
|
+
},
|
|
605
|
+
// Extract tool calls from Gemini response
|
|
606
|
+
extractToolCalls: (response) => {
|
|
607
|
+
if (!response ||
|
|
608
|
+
typeof response !== 'object' ||
|
|
609
|
+
!('functionCalls' in response)) {
|
|
610
|
+
return null;
|
|
611
|
+
}
|
|
612
|
+
const functionCalls = response
|
|
613
|
+
.functionCalls;
|
|
614
|
+
if (!functionCalls || functionCalls.length === 0) {
|
|
615
|
+
return null;
|
|
616
|
+
}
|
|
617
|
+
return functionCalls.map((fc) => {
|
|
618
|
+
const call = fc;
|
|
619
|
+
return {
|
|
620
|
+
id: call.id ?? '',
|
|
621
|
+
name: call.name ?? '',
|
|
622
|
+
input: call.args ?? {},
|
|
623
|
+
};
|
|
624
|
+
});
|
|
625
|
+
},
|
|
626
|
+
// Format tool results into Gemini message format
|
|
627
|
+
formatToolResult: (toolResults) => {
|
|
628
|
+
// Convert tool results to Gemini functionResponse parts
|
|
775
629
|
const functionResponseParts = toolResults.map((tr) => ({
|
|
776
630
|
functionResponse: {
|
|
777
|
-
name: tr.name
|
|
778
|
-
response: {
|
|
631
|
+
name: tr.name,
|
|
632
|
+
response: {
|
|
633
|
+
result: tr.error
|
|
634
|
+
? `Error: ${tr.error}`
|
|
635
|
+
: typeof tr.result === 'string'
|
|
636
|
+
? tr.result
|
|
637
|
+
: JSON.stringify(tr.result),
|
|
638
|
+
},
|
|
779
639
|
},
|
|
780
640
|
}));
|
|
781
|
-
|
|
641
|
+
// Return user message with function responses
|
|
642
|
+
return {
|
|
782
643
|
role: 'user',
|
|
783
644
|
parts: functionResponseParts,
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
role: 'user',
|
|
806
|
-
content: textParts[0].text,
|
|
807
|
-
});
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
else if (content.role === 'model' && content.parts) {
|
|
811
|
-
// Extract text from parts
|
|
812
|
-
const textParts = content.parts.filter((p) => 'text' in p);
|
|
813
|
-
if (textParts.length > 0 && textParts[0]) {
|
|
814
|
-
fullMessages.push({
|
|
815
|
-
role: 'assistant',
|
|
816
|
-
content: textParts[0].text,
|
|
817
|
-
});
|
|
818
|
-
}
|
|
819
|
-
}
|
|
820
|
-
}
|
|
821
|
-
// Build result dict
|
|
645
|
+
};
|
|
646
|
+
},
|
|
647
|
+
};
|
|
648
|
+
// Execute shared tool loop
|
|
649
|
+
const loopResult = await executeToolLoop(contents, toolsDict, maxErrors, callbacks, (event, data) => {
|
|
650
|
+
// Map shared events to Gemini-specific events
|
|
651
|
+
const eventMap = {
|
|
652
|
+
tool_call: 'gemini:tool_call',
|
|
653
|
+
tool_result: 'gemini:tool_result',
|
|
654
|
+
};
|
|
655
|
+
emitExtensionEvent(ctx, {
|
|
656
|
+
event: eventMap[event] || event,
|
|
657
|
+
subsystem: 'extension:gemini',
|
|
658
|
+
...data,
|
|
659
|
+
});
|
|
660
|
+
}, maxTurns);
|
|
661
|
+
// Extract response data
|
|
662
|
+
const response = loopResult.response;
|
|
663
|
+
const content = response && typeof response === 'object' && 'text' in response
|
|
664
|
+
? (response.text ?? '')
|
|
665
|
+
: '';
|
|
822
666
|
const result = {
|
|
823
|
-
content
|
|
667
|
+
content,
|
|
824
668
|
model: factoryModel,
|
|
825
|
-
usage:
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
669
|
+
usage: loopResult.totalTokens,
|
|
670
|
+
stop_reason: response ? 'stop' : 'max_turns',
|
|
671
|
+
turns: loopResult.turns,
|
|
672
|
+
messages: [
|
|
673
|
+
...initialMessages,
|
|
674
|
+
{ role: 'user', content: prompt },
|
|
675
|
+
{ role: 'assistant', content },
|
|
676
|
+
],
|
|
832
677
|
};
|
|
833
|
-
// Emit
|
|
678
|
+
// Emit tool_loop event
|
|
834
679
|
const duration = Date.now() - startTime;
|
|
835
680
|
emitExtensionEvent(ctx, {
|
|
836
681
|
event: 'gemini:tool_loop',
|
|
837
682
|
subsystem: 'extension:gemini',
|
|
838
|
-
turns,
|
|
683
|
+
turns: result.turns,
|
|
839
684
|
total_duration: duration,
|
|
840
685
|
usage: result.usage,
|
|
841
686
|
});
|
|
@@ -844,7 +689,9 @@ export function createGeminiExtension(config) {
|
|
|
844
689
|
catch (error) {
|
|
845
690
|
// Map error and emit failure event
|
|
846
691
|
const duration = Date.now() - startTime;
|
|
847
|
-
const rillError =
|
|
692
|
+
const rillError = error instanceof RuntimeError
|
|
693
|
+
? error
|
|
694
|
+
: mapProviderError('Gemini', error, detectGeminiError);
|
|
848
695
|
emitExtensionEvent(ctx, {
|
|
849
696
|
event: 'gemini:error',
|
|
850
697
|
subsystem: 'extension:gemini',
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Extension for Google Gemini API integration with rill scripts.
|
|
5
5
|
*/
|
|
6
6
|
export declare const VERSION = "0.0.1";
|
|
7
|
-
export type { LLMExtensionConfig
|
|
7
|
+
export type { LLMProviderConfig as LLMExtensionConfig } from '@rcrsr/rill-ext-llm-shared';
|
|
8
|
+
export type { GeminiExtensionConfig } from './types.js';
|
|
8
9
|
export { createGeminiExtension } from './factory.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,OAAO,UAAU,CAAC;AAM/B,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,OAAO,UAAU,CAAC;AAM/B,YAAY,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAS/B,+DAA+D;AAC/D,oBAAoB;AACpB,+DAA+D;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,34 +2,10 @@
|
|
|
2
2
|
* Type definitions for Google extension.
|
|
3
3
|
* Defines configuration, message types, and result structures.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
* Base configuration interface for LLM extensions.
|
|
7
|
-
* Defines common fields across all LLM providers.
|
|
8
|
-
*/
|
|
9
|
-
export interface LLMExtensionConfig {
|
|
10
|
-
/** Model identifier (e.g., 'gemini-2.0-flash') */
|
|
11
|
-
readonly model: string;
|
|
12
|
-
/** Temperature for response generation (0.0-2.0) */
|
|
13
|
-
readonly temperature?: number | undefined;
|
|
14
|
-
/** API key for authentication */
|
|
15
|
-
readonly api_key: string;
|
|
16
|
-
/** Custom base URL for API endpoint */
|
|
17
|
-
readonly base_url?: string | undefined;
|
|
18
|
-
/** Embedding model identifier for embed operations */
|
|
19
|
-
readonly embed_model?: string | undefined;
|
|
20
|
-
}
|
|
5
|
+
import type { LLMProviderConfig } from '@rcrsr/rill-ext-llm-shared';
|
|
21
6
|
/**
|
|
22
7
|
* Configuration options for Google extension.
|
|
23
|
-
*
|
|
8
|
+
* Re-exports LLMProviderConfig from shared package.
|
|
24
9
|
*/
|
|
25
|
-
export
|
|
26
|
-
/** Maximum retry attempts for failed requests */
|
|
27
|
-
readonly max_retries?: number | undefined;
|
|
28
|
-
/** Request timeout in milliseconds */
|
|
29
|
-
readonly timeout?: number | undefined;
|
|
30
|
-
/** Maximum tokens in response */
|
|
31
|
-
readonly max_tokens?: number | undefined;
|
|
32
|
-
/** System prompt text */
|
|
33
|
-
readonly system?: string | undefined;
|
|
34
|
-
}
|
|
10
|
+
export type GeminiExtensionConfig = LLMProviderConfig;
|
|
35
11
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAMpE;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rcrsr/rill-ext-gemini",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "rill extension for Google Gemini API integration",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Andre Bremer",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@google/genai": "^1.40.0"
|
|
48
|
+
"@google/genai": "^1.40.0",
|
|
49
|
+
"@rcrsr/rill-ext-llm-shared": "workspace:^"
|
|
49
50
|
}
|
|
50
51
|
}
|