@rcrsr/rill-ext-openai 0.0.1 → 0.8.1

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;AAGH,OAAO,EAML,KAAK,eAAe,EAIrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAwGxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CA05BjB"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAML,KAAK,eAAe,EAKrB,MAAM,aAAa,CAAC;AAarB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAiCxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAg7BjB"}
package/dist/factory.js CHANGED
@@ -4,85 +4,30 @@
4
4
  */
5
5
  import OpenAI from 'openai';
6
6
  import { RuntimeError, emitExtensionEvent, createVector, isCallable, isVector, } from '@rcrsr/rill';
7
+ import { validateApiKey, validateModel, validateTemperature, validateEmbedText, validateEmbedModel, validateEmbedBatch, 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 = 4096;
13
12
  // ============================================================
14
- // HELPER FUNCTIONS
13
+ // ERROR DETECTION
15
14
  // ============================================================
16
15
  /**
17
- * Map OpenAI API error to RuntimeError with appropriate message.
16
+ * OpenAI-specific error detector for mapProviderError.
17
+ * Extracts status code and message from OpenAI.APIError instances.
18
18
  *
19
- * @param error - Error from OpenAI SDK
20
- * @returns RuntimeError with appropriate message
19
+ * @param error - Error to detect
20
+ * @returns Status and message if OpenAI error, null otherwise
21
21
  */
22
- function mapOpenAIError(error) {
22
+ const detectOpenAIError = (error) => {
23
23
  if (error instanceof OpenAI.APIError) {
24
- const status = error.status;
25
- const message = error.message;
26
- if (status === 401) {
27
- return new RuntimeError('RILL-R004', `OpenAI: authentication failed (401)`);
28
- }
29
- if (status === 429) {
30
- return new RuntimeError('RILL-R004', `OpenAI: rate limit`);
31
- }
32
- if (status && status >= 400) {
33
- return new RuntimeError('RILL-R004', `OpenAI: ${message} (${status})`);
34
- }
35
- return new RuntimeError('RILL-R004', `OpenAI: ${message}`);
36
- }
37
- if (error instanceof Error) {
38
- if (error.name === 'AbortError' || error.message.includes('timeout')) {
39
- return new RuntimeError('RILL-R004', 'OpenAI: request timeout');
40
- }
41
- return new RuntimeError('RILL-R004', `OpenAI: ${error.message}`);
42
- }
43
- return new RuntimeError('RILL-R004', 'OpenAI: unknown error');
44
- }
45
- // ============================================================
46
- // VALIDATION
47
- // ============================================================
48
- /**
49
- * Validate api_key is present and non-empty.
50
- *
51
- * @param api_key - API key to validate
52
- * @throws Error if api_key missing or empty (EC-1, EC-3)
53
- */
54
- function validateApiKey(api_key) {
55
- if (api_key === undefined) {
56
- throw new Error('api_key is required');
57
- }
58
- if (api_key === '') {
59
- throw new Error('api_key cannot be empty');
24
+ return {
25
+ status: error.status ?? undefined,
26
+ message: error.message,
27
+ };
60
28
  }
61
- }
62
- /**
63
- * Validate model is present and non-empty.
64
- *
65
- * @param model - Model identifier to validate
66
- * @throws Error if model missing or empty (EC-2)
67
- */
68
- function validateModel(model) {
69
- if (model === undefined || model === '') {
70
- throw new Error('model is required');
71
- }
72
- }
73
- /**
74
- * Validate temperature is within valid range (0.0-2.0).
75
- *
76
- * @param temperature - Temperature value to validate
77
- * @throws Error if temperature out of range (EC-4)
78
- */
79
- function validateTemperature(temperature) {
80
- if (temperature !== undefined) {
81
- if (temperature < MIN_TEMPERATURE || temperature > MAX_TEMPERATURE) {
82
- throw new Error('temperature must be between 0 and 2');
83
- }
84
- }
85
- }
29
+ return null;
30
+ };
86
31
  // ============================================================
87
32
  // FACTORY
88
33
  // ============================================================
@@ -232,7 +177,7 @@ export function createOpenAIExtension(config) {
232
177
  catch (error) {
233
178
  // Map error and emit failure event
234
179
  const duration = Date.now() - startTime;
235
- const rillError = mapOpenAIError(error);
180
+ const rillError = mapProviderError('OpenAI', error, detectOpenAIError);
236
181
  emitExtensionEvent(ctx, {
237
182
  event: 'openai:error',
238
183
  subsystem: 'extension:openai',
@@ -365,7 +310,7 @@ export function createOpenAIExtension(config) {
365
310
  catch (error) {
366
311
  // Map error and emit failure event
367
312
  const duration = Date.now() - startTime;
368
- const rillError = mapOpenAIError(error);
313
+ const rillError = mapProviderError('OpenAI', error, detectOpenAIError);
369
314
  emitExtensionEvent(ctx, {
370
315
  event: 'openai:error',
371
316
  subsystem: 'extension:openai',
@@ -387,13 +332,9 @@ export function createOpenAIExtension(config) {
387
332
  // Extract arguments
388
333
  const text = args[0];
389
334
  // EC-15: Validate text is non-empty
390
- if (text.trim().length === 0) {
391
- throw new RuntimeError('RILL-R004', 'embed text cannot be empty');
392
- }
335
+ validateEmbedText(text.trim());
393
336
  // EC-16: Validate embed_model is configured
394
- if (factoryEmbedModel === undefined || factoryEmbedModel === '') {
395
- throw new RuntimeError('RILL-R004', 'embed_model not configured');
396
- }
337
+ validateEmbedModel(factoryEmbedModel);
397
338
  // Call OpenAI embeddings API
398
339
  const response = await client.embeddings.create({
399
340
  model: factoryEmbedModel,
@@ -422,7 +363,7 @@ export function createOpenAIExtension(config) {
422
363
  catch (error) {
423
364
  // Map error and emit failure event
424
365
  const duration = Date.now() - startTime;
425
- const rillError = mapOpenAIError(error);
366
+ const rillError = mapProviderError('OpenAI', error, detectOpenAIError);
426
367
  emitExtensionEvent(ctx, {
427
368
  event: 'openai:error',
428
369
  subsystem: 'extension:openai',
@@ -448,22 +389,9 @@ export function createOpenAIExtension(config) {
448
389
  return [];
449
390
  }
450
391
  // EC-17: Validate embed_model is configured
451
- if (factoryEmbedModel === undefined || factoryEmbedModel === '') {
452
- throw new RuntimeError('RILL-R004', 'embed_model not configured');
453
- }
392
+ validateEmbedModel(factoryEmbedModel);
454
393
  // EC-18: Validate all elements are strings
455
- const stringTexts = [];
456
- for (let i = 0; i < texts.length; i++) {
457
- const text = texts[i];
458
- if (typeof text !== 'string') {
459
- throw new RuntimeError('RILL-R004', 'embed_batch requires list of strings');
460
- }
461
- // EC-19: Check for empty strings
462
- if (text.trim().length === 0) {
463
- throw new RuntimeError('RILL-R004', `embed text cannot be empty at index ${i}`);
464
- }
465
- stringTexts.push(text);
466
- }
394
+ const stringTexts = validateEmbedBatch(texts);
467
395
  // Call OpenAI embeddings API with batch
468
396
  const response = await client.embeddings.create({
469
397
  model: factoryEmbedModel,
@@ -498,7 +426,7 @@ export function createOpenAIExtension(config) {
498
426
  catch (error) {
499
427
  // Map error and emit failure event
500
428
  const duration = Date.now() - startTime;
501
- const rillError = mapOpenAIError(error);
429
+ const rillError = mapProviderError('OpenAI', error, detectOpenAIError);
502
430
  emitExtensionEvent(ctx, {
503
431
  event: 'openai:error',
504
432
  subsystem: 'extension:openai',
@@ -532,281 +460,277 @@ export function createOpenAIExtension(config) {
532
460
  throw new RuntimeError('RILL-R004', "tool_loop requires 'tools' option");
533
461
  }
534
462
  const toolDescriptors = options['tools'];
535
- // Extract options with defaults
463
+ // Convert tool descriptors array to dict for shared tool loop
464
+ const toolsDict = {};
465
+ for (const descriptor of toolDescriptors) {
466
+ const name = typeof descriptor['name'] === 'string'
467
+ ? descriptor['name']
468
+ : null;
469
+ if (!name) {
470
+ throw new RuntimeError('RILL-R004', 'tool descriptor missing name');
471
+ }
472
+ const toolFnValue = descriptor['fn'];
473
+ if (!toolFnValue) {
474
+ throw new RuntimeError('RILL-R004', `tool '${name}' missing fn property`);
475
+ }
476
+ // Validate tool is callable
477
+ if (!isCallable(toolFnValue)) {
478
+ throw new RuntimeError('RILL-R004', `tool '${name}' fn must be callable`);
479
+ }
480
+ // Extract params metadata from descriptor and enhance callable
481
+ const paramsObj = descriptor['params'];
482
+ const description = typeof descriptor['description'] === 'string'
483
+ ? descriptor['description']
484
+ : '';
485
+ let enhancedCallable = toolFnValue;
486
+ if (paramsObj &&
487
+ typeof paramsObj === 'object' &&
488
+ !Array.isArray(paramsObj)) {
489
+ // Convert params object to CallableParam[] format
490
+ const params = Object.entries(paramsObj).map(([paramName, paramMeta]) => {
491
+ const meta = paramMeta;
492
+ const typeStr = typeof meta['type'] === 'string' ? meta['type'] : null;
493
+ // Map type string to RillTypeName
494
+ let typeName = null;
495
+ if (typeStr === 'string')
496
+ typeName = 'string';
497
+ else if (typeStr === 'number')
498
+ typeName = 'number';
499
+ else if (typeStr === 'bool' || typeStr === 'boolean')
500
+ typeName = 'bool';
501
+ else if (typeStr === 'list' || typeStr === 'array')
502
+ typeName = 'list';
503
+ else if (typeStr === 'dict' || typeStr === 'object')
504
+ typeName = 'dict';
505
+ else if (typeStr === 'vector')
506
+ typeName = 'vector';
507
+ const param = {
508
+ name: paramName,
509
+ typeName,
510
+ defaultValue: null,
511
+ annotations: {},
512
+ };
513
+ // Add description only if it exists (optional property)
514
+ if (typeof meta['description'] === 'string') {
515
+ param.description =
516
+ meta['description'];
517
+ }
518
+ return param;
519
+ });
520
+ // Create enhanced ApplicationCallable with params metadata
521
+ const baseCallable = toolFnValue;
522
+ enhancedCallable = {
523
+ __type: 'callable',
524
+ kind: 'application',
525
+ params,
526
+ fn: baseCallable.fn,
527
+ description,
528
+ isProperty: baseCallable.isProperty ?? false,
529
+ };
530
+ }
531
+ toolsDict[name] = enhancedCallable;
532
+ }
533
+ // Extract options
536
534
  const system = typeof options['system'] === 'string'
537
535
  ? options['system']
538
536
  : factorySystem;
539
537
  const maxTokens = typeof options['max_tokens'] === 'number'
540
538
  ? options['max_tokens']
541
539
  : factoryMaxTokens;
542
- const maxTurns = typeof options['max_turns'] === 'number'
543
- ? options['max_turns']
544
- : 10;
545
540
  const maxErrors = typeof options['max_errors'] === 'number'
546
541
  ? options['max_errors']
547
542
  : 3;
548
- const initialMessages = Array.isArray(options['messages']) && options['messages'].length > 0
549
- ? options['messages']
550
- : [];
551
- // Build tool map and OpenAI tools array
552
- const toolMap = new Map();
553
- const openaiTools = [];
554
- for (const tool of toolDescriptors) {
555
- if (typeof tool !== 'object' ||
556
- tool === null ||
557
- !('name' in tool) ||
558
- !('fn' in tool)) {
559
- throw new RuntimeError('RILL-R004', 'invalid tool descriptor in tools list');
560
- }
561
- const toolName = tool['name'];
562
- const toolFn = tool['fn'];
563
- if (!isCallable(toolFn)) {
564
- throw new RuntimeError('RILL-R004', `tool '${toolName}' not callable`);
565
- }
566
- toolMap.set(toolName, toolFn);
567
- // Build OpenAI tool definition
568
- const description = typeof tool['description'] === 'string'
569
- ? tool['description']
570
- : '';
571
- const params = tool['params'] ?? {};
572
- // Convert rill params dict to JSON Schema
573
- const properties = {};
574
- const required = [];
575
- if (typeof params === 'object' && params !== null) {
576
- for (const [paramName, paramSpec] of Object.entries(params)) {
577
- if (typeof paramSpec === 'object' &&
578
- paramSpec !== null &&
579
- 'type' in paramSpec) {
580
- const spec = paramSpec;
581
- properties[paramName] = {
582
- type: spec['type'] ?? 'string',
583
- description: spec['description'] ?? '',
584
- };
585
- // All params are required by default
586
- required.push(paramName);
587
- }
588
- }
589
- }
590
- openaiTools.push({
591
- type: 'function',
592
- function: {
593
- name: toolName,
594
- description,
595
- parameters: {
596
- type: 'object',
597
- properties,
598
- required,
599
- },
600
- },
601
- });
602
- }
603
- // Build initial messages array
604
- const conversationMessages = [];
543
+ const maxTurns = typeof options['max_turns'] === 'number'
544
+ ? options['max_turns']
545
+ : 10;
546
+ // Initialize conversation with prepended messages if provided
547
+ const messages = [];
605
548
  if (system !== undefined) {
606
- conversationMessages.push({
549
+ messages.push({
607
550
  role: 'system',
608
551
  content: system,
609
552
  });
610
553
  }
611
- // Add history messages if provided
612
- for (const msg of initialMessages) {
613
- if (typeof msg === 'object' &&
614
- msg !== null &&
615
- 'role' in msg &&
616
- 'content' in msg) {
554
+ if ('messages' in options && Array.isArray(options['messages'])) {
555
+ const prependedMessages = options['messages'];
556
+ for (const msg of prependedMessages) {
557
+ if (!msg || typeof msg !== 'object' || !('role' in msg)) {
558
+ throw new RuntimeError('RILL-R004', "message missing required 'role' field");
559
+ }
617
560
  const role = msg['role'];
618
- if (role === 'user' || role === 'assistant') {
619
- conversationMessages.push({
620
- role: role,
621
- content: msg['content'],
622
- });
561
+ if (role !== 'user' && role !== 'assistant') {
562
+ throw new RuntimeError('RILL-R004', `invalid role '${role}'`);
563
+ }
564
+ if (!('content' in msg) || typeof msg['content'] !== 'string') {
565
+ throw new RuntimeError('RILL-R004', `${role} message requires 'content'`);
623
566
  }
567
+ messages.push({
568
+ role: role,
569
+ content: msg['content'],
570
+ });
624
571
  }
625
572
  }
626
- // Add user prompt
627
- conversationMessages.push({
573
+ // Add the prompt as initial user message
574
+ messages.push({
628
575
  role: 'user',
629
576
  content: prompt,
630
577
  });
631
- // Tool loop state
632
- let turns = 0;
633
- let consecutiveErrors = 0;
634
- let totalInputTokens = 0;
635
- let totalOutputTokens = 0;
636
- let finalContent = '';
637
- let stopReason = 'stop';
638
- // Main tool loop
639
- while (turns < maxTurns) {
640
- turns++;
641
- // Call OpenAI API with tools
642
- const apiParams = {
643
- model: factoryModel,
644
- max_tokens: maxTokens,
645
- messages: conversationMessages,
646
- tools: openaiTools,
647
- tool_choice: 'auto',
648
- };
649
- if (factoryTemperature !== undefined) {
650
- apiParams.temperature = factoryTemperature;
651
- }
652
- const response = await client.chat.completions.create(apiParams);
653
- // Aggregate usage
654
- totalInputTokens += response.usage?.prompt_tokens ?? 0;
655
- totalOutputTokens += response.usage?.completion_tokens ?? 0;
656
- const choice = response.choices[0];
657
- if (!choice) {
658
- throw new RuntimeError('RILL-R004', 'OpenAI: no choices returned');
659
- }
660
- const message = choice.message;
661
- const finishReason = choice.finish_reason;
662
- // Check if we have tool calls
663
- if (message.tool_calls && message.tool_calls.length > 0) {
664
- // Add assistant message with tool calls to conversation
665
- conversationMessages.push({
666
- role: 'assistant',
667
- content: message.content ?? null,
668
- tool_calls: message.tool_calls,
669
- });
670
- // Execute tool calls (parallel for multiple calls)
671
- const toolResults = await Promise.all(message.tool_calls.map(async (toolCall) => {
672
- // Only handle function tool calls (not custom)
673
- if (!('function' in toolCall)) {
674
- throw new RuntimeError('RILL-R004', 'unsupported tool call type');
675
- }
676
- const toolStartTime = Date.now();
677
- const toolName = toolCall.function.name;
678
- const toolCallId = toolCall.id;
679
- // Emit tool_call event
680
- emitExtensionEvent(ctx, {
681
- event: 'openai:tool_call',
682
- subsystem: 'extension:openai',
683
- tool_name: toolName,
684
- args: toolCall.function.arguments,
685
- });
686
- // EC-22: Check tool exists (configuration error, abort immediately)
687
- const toolFn = toolMap.get(toolName);
688
- if (!toolFn) {
689
- throw new RuntimeError('RILL-R004', `unknown tool '${toolName}'`);
690
- }
578
+ // Define OpenAI-specific callbacks for shared tool loop
579
+ const callbacks = {
580
+ // Build OpenAI Tool format from tool definitions
581
+ buildTools: (toolDefs) => {
582
+ return toolDefs.map((def) => ({
583
+ type: 'function',
584
+ function: {
585
+ name: def.name,
586
+ description: def.description,
587
+ parameters: def.input_schema,
588
+ },
589
+ }));
590
+ },
591
+ // Call OpenAI API
592
+ callAPI: async (msgs, tools) => {
593
+ const apiParams = {
594
+ model: factoryModel,
595
+ max_tokens: maxTokens,
596
+ messages: msgs,
597
+ tools: tools,
598
+ tool_choice: 'auto',
599
+ };
600
+ if (factoryTemperature !== undefined) {
601
+ apiParams.temperature = factoryTemperature;
602
+ }
603
+ const response = await client.chat.completions.create(apiParams);
604
+ // Normalize response to include usage in expected format
605
+ return {
606
+ ...response,
607
+ usage: {
608
+ input_tokens: response.usage?.prompt_tokens ?? 0,
609
+ output_tokens: response.usage?.completion_tokens ?? 0,
610
+ },
611
+ };
612
+ },
613
+ // Extract tool calls from OpenAI response
614
+ extractToolCalls: (response) => {
615
+ if (!response ||
616
+ typeof response !== 'object' ||
617
+ !('choices' in response)) {
618
+ return null;
619
+ }
620
+ const choices = response.choices;
621
+ if (!Array.isArray(choices) || choices.length === 0) {
622
+ return null;
623
+ }
624
+ const choice = choices[0];
625
+ if (!choice ||
626
+ typeof choice !== 'object' ||
627
+ !('message' in choice)) {
628
+ return null;
629
+ }
630
+ const message = choice.message;
631
+ if (!message ||
632
+ typeof message !== 'object' ||
633
+ !('tool_calls' in message)) {
634
+ return null;
635
+ }
636
+ const toolCalls = message
637
+ .tool_calls;
638
+ if (!toolCalls || !Array.isArray(toolCalls)) {
639
+ return null;
640
+ }
641
+ // Filter for function tool calls and extract relevant data
642
+ const functionToolCalls = toolCalls.filter((tc) => typeof tc === 'object' &&
643
+ tc !== null &&
644
+ 'type' in tc &&
645
+ tc.type === 'function');
646
+ return functionToolCalls.map((tc) => {
647
+ // Type assertion safe because we filtered for function type
648
+ const functionCall = tc;
649
+ const args = functionCall.function.arguments;
650
+ let parsedArgs;
691
651
  try {
692
- // Parse arguments
693
- let toolArgs;
694
- try {
695
- toolArgs = JSON.parse(toolCall.function.arguments);
696
- }
697
- catch {
698
- throw new RuntimeError('RILL-R004', `invalid tool arguments for '${toolName}'`);
699
- }
700
- // Convert to RillValue array (positional args from params)
701
- const argsArray = [];
702
- for (const [, value] of Object.entries(toolArgs)) {
703
- argsArray.push(value);
704
- }
705
- // Invoke tool callable based on type
706
- let result;
707
- if (toolFn.kind === 'script') {
708
- // ScriptCallable: not supported in tool_loop context
709
- throw new RuntimeError('RILL-R004', 'script closures not yet supported in tool_loop');
710
- }
711
- else {
712
- // RuntimeCallable or ApplicationCallable
713
- result = await toolFn.fn(argsArray, ctx, undefined);
714
- }
715
- // Reset consecutive errors on success
716
- consecutiveErrors = 0;
717
- // Emit tool_result event
718
- const toolDuration = Date.now() - toolStartTime;
719
- emitExtensionEvent(ctx, {
720
- event: 'openai:tool_result',
721
- subsystem: 'extension:openai',
722
- tool_name: toolName,
723
- duration: toolDuration,
724
- });
725
- // Return tool result as string
726
- return {
727
- tool_call_id: toolCallId,
728
- role: 'tool',
729
- content: typeof result === 'string'
730
- ? result
731
- : JSON.stringify(result),
732
- };
652
+ parsedArgs = JSON.parse(args);
733
653
  }
734
- catch (error) {
735
- consecutiveErrors++;
736
- // Format error for LLM
737
- const errorMessage = error instanceof RuntimeError
738
- ? error.message
739
- : error instanceof Error
740
- ? error.message
741
- : 'unknown error';
742
- // Emit tool_result event with error
743
- const toolDuration = Date.now() - toolStartTime;
744
- emitExtensionEvent(ctx, {
745
- event: 'openai:tool_result',
746
- subsystem: 'extension:openai',
747
- tool_name: toolName,
748
- duration: toolDuration,
749
- error: errorMessage,
750
- });
751
- // EC-23: Check if max_errors exceeded
752
- if (consecutiveErrors >= maxErrors) {
753
- throw new RuntimeError('RILL-R004', `tool loop aborted after ${maxErrors} consecutive errors`);
754
- }
755
- // Return error to LLM as tool result
756
- return {
757
- tool_call_id: toolCallId,
758
- role: 'tool',
759
- content: JSON.stringify({
760
- error: errorMessage,
761
- code: 'RILL-R001',
762
- }),
763
- };
654
+ catch {
655
+ parsedArgs = {};
764
656
  }
657
+ return {
658
+ id: tc.id,
659
+ name: functionCall.function.name,
660
+ input: parsedArgs,
661
+ };
662
+ });
663
+ },
664
+ // Format tool results into OpenAI message format
665
+ formatToolResult: (toolResults) => {
666
+ // For OpenAI, we need to add assistant message with tool calls,
667
+ // then tool messages with results
668
+ // Since executeToolLoop already extracted the tool calls, we only
669
+ // return the tool result messages here
670
+ return toolResults.map((tr) => ({
671
+ role: 'tool',
672
+ tool_call_id: tr.id,
673
+ content: tr.error
674
+ ? JSON.stringify({ error: tr.error, code: 'RILL-R001' })
675
+ : typeof tr.result === 'string'
676
+ ? tr.result
677
+ : JSON.stringify(tr.result),
765
678
  }));
766
- // Add tool results to conversation
767
- for (const toolResult of toolResults) {
768
- conversationMessages.push(toolResult);
769
- }
770
- // Continue loop to get next response
771
- continue;
772
- }
773
- // No tool calls - final response
774
- finalContent = message.content ?? '';
775
- stopReason = finishReason ?? 'stop';
776
- break;
777
- }
778
- // Check if we hit max_turns
779
- if (turns >= maxTurns && stopReason === 'stop') {
780
- stopReason = 'max_turns';
781
- }
679
+ },
680
+ };
681
+ // Execute shared tool loop
682
+ const loopResult = await executeToolLoop(messages, toolsDict, maxErrors, callbacks, (event, data) => {
683
+ // Map shared events to OpenAI-specific events
684
+ const eventMap = {
685
+ tool_call: 'openai:tool_call',
686
+ tool_result: 'openai:tool_result',
687
+ };
688
+ emitExtensionEvent(ctx, {
689
+ event: eventMap[event] || event,
690
+ subsystem: 'extension:openai',
691
+ ...data,
692
+ });
693
+ }, maxTurns, ctx);
694
+ // Extract response data
695
+ const response = loopResult.response;
696
+ const content = response?.choices[0]?.message?.content ?? '';
697
+ const stopReason = loopResult.turns >= maxTurns
698
+ ? 'max_turns'
699
+ : (response?.choices[0]?.finish_reason ?? 'stop');
782
700
  // Build conversation history for response
701
+ // Reconstruct full message history from messages array
783
702
  const fullMessages = [];
784
- for (const msg of conversationMessages) {
785
- if (msg.role === 'system') {
786
- // Skip system messages in history
787
- continue;
788
- }
789
- const historyMsg = {
790
- role: msg.role,
791
- };
792
- if ('content' in msg && msg.content) {
793
- historyMsg['content'] = msg.content;
794
- }
795
- if ('tool_calls' in msg && msg.tool_calls) {
796
- historyMsg['tool_calls'] = msg.tool_calls;
703
+ for (const msg of messages) {
704
+ if ('role' in msg && msg.role !== 'system') {
705
+ const historyMsg = {
706
+ role: msg.role,
707
+ };
708
+ if ('content' in msg && msg.content) {
709
+ historyMsg['content'] = msg.content;
710
+ }
711
+ if ('tool_calls' in msg && msg.tool_calls) {
712
+ historyMsg['tool_calls'] = msg.tool_calls;
713
+ }
714
+ fullMessages.push(historyMsg);
797
715
  }
798
- fullMessages.push(historyMsg);
716
+ }
717
+ // Add final assistant response if present
718
+ if (response) {
719
+ fullMessages.push({
720
+ role: 'assistant',
721
+ content,
722
+ });
799
723
  }
800
724
  // Build result dict
801
725
  const result = {
802
- content: finalContent,
726
+ content,
803
727
  model: factoryModel,
804
728
  usage: {
805
- input: totalInputTokens,
806
- output: totalOutputTokens,
729
+ input: loopResult.totalTokens.input,
730
+ output: loopResult.totalTokens.output,
807
731
  },
808
732
  stop_reason: stopReason,
809
- turns,
733
+ turns: loopResult.turns,
810
734
  messages: fullMessages,
811
735
  };
812
736
  // Emit success event (§4.10)
@@ -814,7 +738,7 @@ export function createOpenAIExtension(config) {
814
738
  emitExtensionEvent(ctx, {
815
739
  event: 'openai:tool_loop',
816
740
  subsystem: 'extension:openai',
817
- turns,
741
+ turns: loopResult.turns,
818
742
  total_duration: duration,
819
743
  usage: result.usage,
820
744
  });
@@ -823,7 +747,7 @@ export function createOpenAIExtension(config) {
823
747
  catch (error) {
824
748
  // Map error and emit failure event
825
749
  const duration = Date.now() - startTime;
826
- const rillError = mapOpenAIError(error);
750
+ const rillError = mapProviderError('OpenAI', error, detectOpenAIError);
827
751
  emitExtensionEvent(ctx, {
828
752
  event: 'openai:error',
829
753
  subsystem: 'extension:openai',
@@ -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 OpenAI API integration with rill scripts.
5
5
  */
6
6
  export declare const VERSION = "0.0.1";
7
- export type { LLMExtensionConfig, OpenAIExtensionConfig } from './types.js';
7
+ export type { LLMProviderConfig as LLMExtensionConfig } from '@rcrsr/rill-ext-llm-shared';
8
+ export type { OpenAIExtensionConfig } from './types.js';
8
9
  export { createOpenAIExtension } 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 OpenAI 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., 'gpt-4-turbo') */
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 OpenAI extension.
23
- * Extends base LLM config with OpenAI-specific fields.
8
+ * Re-exports LLMProviderConfig from shared package.
24
9
  */
25
- export interface OpenAIExtensionConfig 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 OpenAIExtensionConfig = 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,6CAA6C;IAC7C,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-openai",
3
- "version": "0.0.1",
3
+ "version": "0.8.1",
4
4
  "description": "rill extension for OpenAI API integration",
5
5
  "license": "MIT",
6
6
  "author": "Andre Bremer",
@@ -16,18 +16,11 @@
16
16
  "ai",
17
17
  "scripting"
18
18
  ],
19
- "scripts": {
20
- "build": "tsc --build",
21
- "test": "vitest run",
22
- "typecheck": "tsc --noEmit",
23
- "lint": "eslint --config ../../../eslint.config.js src/",
24
- "check": "pnpm run build && pnpm run test && pnpm run lint"
25
- },
26
19
  "peerDependencies": {
27
- "@rcrsr/rill": "workspace:^"
20
+ "@rcrsr/rill": "^0.8.1"
28
21
  },
29
22
  "devDependencies": {
30
- "@rcrsr/rill": "workspace:^"
23
+ "@rcrsr/rill": "^0.8.1"
31
24
  },
32
25
  "files": [
33
26
  "dist"
@@ -37,7 +30,7 @@
37
30
  "url": "git+https://github.com/rcrsr/rill.git",
38
31
  "directory": "packages/ext/openai"
39
32
  },
40
- "homepage": "https://github.com/rcrsr/rill/tree/main/packages/ext/openai#readme",
33
+ "homepage": "https://rill.run/docs/extensions/openai/",
41
34
  "bugs": {
42
35
  "url": "https://github.com/rcrsr/rill/issues"
43
36
  },
@@ -45,6 +38,14 @@
45
38
  "access": "public"
46
39
  },
47
40
  "dependencies": {
48
- "openai": "^6.18.0"
41
+ "openai": "^6.18.0",
42
+ "@rcrsr/rill-ext-llm-shared": "^0.0.1"
43
+ },
44
+ "scripts": {
45
+ "build": "tsc --build",
46
+ "test": "vitest run",
47
+ "typecheck": "tsc --noEmit",
48
+ "lint": "eslint --config ../../../eslint.config.js src/",
49
+ "check": "pnpm run build && pnpm run test && pnpm run lint"
49
50
  }
50
- }
51
+ }