@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.
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAML,KAAK,eAAe,EAIrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA0GxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAo7BjB"}
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, isCallable, isVector, } from '@rcrsr/rill';
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
- * Map Gemini API error to RuntimeError with appropriate message.
16
+ * Gemini-specific error detector for mapProviderError.
17
+ * Extracts status code and message using string pattern matching.
18
18
  *
19
- * @param error - Error from Gemini SDK
20
- * @returns RuntimeError with appropriate message
19
+ * @param error - Unknown error value
20
+ * @returns Object with status and message if Gemini error, null otherwise
21
21
  */
22
- function mapGeminiError(error) {
22
+ const detectGeminiError = (error) => {
23
23
  if (error instanceof Error) {
24
24
  const message = error.message;
25
- // Check for common error patterns in Gemini API responses
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
- const status = parseInt(statusMatch[1], 10);
39
- if (status >= 400) {
40
- return new RuntimeError('RILL-R004', `Gemini: ${message} (${status})`);
41
- }
28
+ return {
29
+ status: parseInt(statusMatch[1], 10),
30
+ message,
31
+ };
42
32
  }
43
- return new RuntimeError('RILL-R004', `Gemini: ${message}`);
33
+ return {
34
+ message,
35
+ };
44
36
  }
45
- return new RuntimeError('RILL-R004', 'Gemini: unknown error');
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 = mapGeminiError(error);
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 = mapGeminiError(error);
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
- // EC-15: Validate text is non-empty
396
- if (text.trim().length === 0) {
397
- throw new RuntimeError('RILL-R004', 'embed text cannot be empty');
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 = mapGeminiError(error);
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
- // EC-20: Validate embed_model is configured
458
- if (factoryEmbedModel === undefined || factoryEmbedModel === '') {
459
- throw new RuntimeError('RILL-R004', 'embed_model not configured');
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 = mapGeminiError(error);
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 tool map and Gemini tools array
562
- const toolMap = new Map();
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
- conversationContents.push({
531
+ contents.push({
630
532
  role: 'user',
631
533
  parts: [{ text: msg['content'] }],
632
534
  });
633
535
  }
634
536
  else if (role === 'assistant') {
635
- conversationContents.push({
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
- conversationContents.push({
545
+ contents.push({
644
546
  role: 'user',
645
547
  parts: [{ text: prompt }],
646
548
  });
647
- // Tool loop state
648
- let turns = 0;
649
- let consecutiveErrors = 0;
650
- let totalInputTokens = 0;
651
- let totalOutputTokens = 0;
652
- let finalContent = '';
653
- let stopReason = 'stop';
654
- // Main tool loop
655
- while (turns < maxTurns) {
656
- turns++;
657
- // Build config object
658
- const apiConfig = {
659
- ...(system !== undefined && { systemInstruction: system }),
660
- ...(maxTokens !== undefined && { maxOutputTokens: maxTokens }),
661
- ...(factoryTemperature !== undefined && {
662
- temperature: factoryTemperature,
663
- }),
664
- tools: [{ functionDeclarations: geminiTools }],
665
- };
666
- // Call Gemini API with tools
667
- const response = await client.models.generateContent({
668
- model: factoryModel,
669
- contents: conversationContents,
670
- config: apiConfig,
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
- // Add function responses to conversation
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: { result: tr.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
- conversationContents.push({
641
+ // Return user message with function responses
642
+ return {
782
643
  role: 'user',
783
644
  parts: functionResponseParts,
784
- });
785
- // Continue loop to get next response
786
- continue;
787
- }
788
- // No function calls - final response
789
- finalContent = responseText;
790
- stopReason = 'stop';
791
- break;
792
- }
793
- // Check if we hit max_turns
794
- if (turns >= maxTurns && stopReason === 'stop') {
795
- stopReason = 'max_turns';
796
- }
797
- // Build conversation history for response
798
- const fullMessages = [];
799
- for (const content of conversationContents) {
800
- if (content.role === 'user' && content.parts) {
801
- // Extract text from parts
802
- const textParts = content.parts.filter((p) => 'text' in p);
803
- if (textParts.length > 0 && textParts[0]) {
804
- fullMessages.push({
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: finalContent,
667
+ content,
824
668
  model: factoryModel,
825
- usage: {
826
- input: totalInputTokens,
827
- output: totalOutputTokens,
828
- },
829
- stop_reason: stopReason,
830
- turns,
831
- messages: fullMessages,
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 success event
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 = mapGeminiError(error);
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',
@@ -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, GeminiExtensionConfig } from './types.js';
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
@@ -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;AAM5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,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;AAQ/B,+DAA+D;AAC/D,oBAAoB;AACpB,+DAA+D;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,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
- * Extends base LLM config with Google-specific fields.
8
+ * Re-exports LLMProviderConfig from shared package.
24
9
  */
25
- export interface GeminiExtensionConfig extends LLMExtensionConfig {
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iCAAiC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,yBAAyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC"}
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.1",
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
  }