lex-openai 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e2104cbfd21361391e61c7f62492fa66a7e81693158b7fec6f6c187eb4b0696
4
- data.tar.gz: 1bc10fcfd315c59547e2139fa27462d8142a221bc5c133de01b3f06806f4807f
3
+ metadata.gz: 195df5f44b9dc39bb0988e9484e206a0315627be33775084dee7bce623f329a4
4
+ data.tar.gz: a986648e9153211a8cf51dd5d461cd80a82dab101e0537153798504a52c920c4
5
5
  SHA512:
6
- metadata.gz: 004ed985a19682f10c58e1a5067f4345483a5e3bad4d7aa182a62f00a14d1a0fa831af3f1269c02af7a75961fb506ac0172c74f6a752dfd9ac8780e4b2a966f2
7
- data.tar.gz: dd23c73e298d53594a9ebded51bd99423ad13cd0da21a2c233acfbcef03d8c956e38be1fbbd6c89f5c41bc8dd5e2c4591e55b9f4f231b8eea6c599f1bc7f3c22
6
+ metadata.gz: 5a16ef2c98404dff128fc195a3b26601364e10ef441a58b90ec9e2c9b036c6f909e05d6d201b65202e3bed60709215e87c3f8b1ca372fc5395f6df3d98bc6b11
7
+ data.tar.gz: c6fbac8ecaf16186a36d6e4af5f7dfa05b5c27e314f28010855101b7c3848ddce28b8051357a2769325333f0639bb4b4803e6810a4f2a64e98945a4db07f8742
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.2] - 2026-03-22
4
+
5
+ ### Changed
6
+ - add legion sub-gem runtime dependencies to gemspec (cache, crypt, data, json, logging, settings, transport)
7
+ - update spec_helper with real sub-gem helper requires and Helpers::Lex stub with all 7 includes
8
+
3
9
  ## [0.1.1] - 2026-03-18
4
10
 
5
11
  ### Changed
data/CLAUDE.md CHANGED
@@ -10,7 +10,7 @@ Legion Extension that connects LegionIO to OpenAI. Provides runners for chat com
10
10
 
11
11
  **GitHub**: https://github.com/LegionIO/lex-openai
12
12
  **License**: MIT
13
- **Version**: 0.1.0
13
+ **Version**: 0.1.1
14
14
  **Specs**: 17 examples
15
15
 
16
16
  ## Architecture
@@ -19,10 +19,10 @@ Legion Extension that connects LegionIO to OpenAI. Provides runners for chat com
19
19
  Legion::Extensions::Openai
20
20
  ├── Runners/
21
21
  │ ├── Chat # create(model:, messages:, api_key:, ...)
22
- │ ├── Models # list(api_key:, ...), retrieve(api_key:, model_id:, ...), delete(api_key:, model_id:, ...)
22
+ │ ├── Models # list(api_key:, ...), retrieve(model:, api_key:, ...), delete(model:, api_key:, ...)
23
23
  │ ├── Images # generate(prompt:, api_key:, model: 'dall-e-3', ...), edit(...), variation(...)
24
24
  │ ├── Audio # speech(input:, api_key:, model: 'tts-1', voice: 'alloy', ...), transcribe(...), translate(...)
25
- │ ├── Embeddings # create(input:, model:, api_key:, ...)
25
+ │ ├── Embeddings # create(input:, model: 'text-embedding-3-small', api_key:, ...)
26
26
  │ ├── Files # list, upload, retrieve, delete, content (download)
27
27
  │ └── Moderations # create(input:, api_key:, ...)
28
28
  └── Helpers/
@@ -37,7 +37,7 @@ Legion::Extensions::Openai
37
37
  - Images (edit, variation) and Audio (transcribe, translate) runners use `Faraday::Multipart::FilePart` directly.
38
38
  - `Images#generate` uses DALL-E 3 by default; `Images#edit` and `Images#variation` use DALL-E 2 by default.
39
39
  - Audio defaults: `model: 'tts-1'`, `voice: 'alloy'`, `response_format: 'mp3'` for speech; `model: 'whisper-1'` for transcription/translation.
40
- - Chat runner returns `{ result: response.body }` (no `:status` key) differs slightly from claude/gemini runner return shapes.
40
+ - All runners return `{ result: response.body }` (no `:status` key). This is consistent with lex-gemini runners. lex-claude runners add `:status` to the return hash.
41
41
  - `include Legion::Extensions::Helpers::Lex` is guarded with `Legion::Extensions.const_defined?(:Helpers)` pattern.
42
42
 
43
43
  ## Dependencies
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # lex-openai
2
2
 
3
- OpenAI integration for [LegionIO](https://github.com/LegionIO/LegionIO). Provides runners for chat completions, image generation, audio processing, embeddings, file management, and content moderation via the OpenAI API.
3
+ OpenAI integration for LegionIO. Provides runners for chat completions, image generation, audio processing, embeddings, file management, and content moderation via the OpenAI API.
4
+
5
+ ## Purpose
6
+
7
+ Wraps the OpenAI REST API as named runners consumable by any LegionIO task chain. Includes resource-specific operations (image generation/editing, audio transcription/synthesis, file management, moderation) not available through the `legion-llm` unified interface. Use this extension when you need direct access to the full OpenAI API surface within the LEX runner/actor lifecycle.
4
8
 
5
9
  ## Installation
6
10
 
@@ -35,7 +39,7 @@ gem 'lex-openai'
35
39
  - `translate` - Translate audio to English text (Whisper)
36
40
 
37
41
  ### Embeddings
38
- - `create` - Generate vector embeddings
42
+ - `create` - Generate vector embeddings (default model: text-embedding-3-small)
39
43
 
40
44
  ### Files
41
45
  - `list` - List uploaded files
@@ -104,6 +108,12 @@ puts image[:result]['data'].first['url']
104
108
  - [LegionIO](https://github.com/LegionIO/LegionIO) framework (optional for standalone runner usage)
105
109
  - OpenAI API key
106
110
 
111
+ ## Related
112
+
113
+ - `lex-xai` — xAI Grok API (same structural pattern as lex-openai)
114
+ - `legion-llm` — High-level LLM interface including OpenAI via ruby_llm
115
+ - `extensions-ai/CLAUDE.md` — Architecture patterns shared across all AI extensions
116
+
107
117
  ## License
108
118
 
109
119
  MIT
data/lex-openai.gemspec CHANGED
@@ -26,7 +26,13 @@ Gem::Specification.new do |spec|
26
26
  end
27
27
  spec.require_paths = ['lib']
28
28
 
29
- spec.add_dependency 'faraday', '>= 2.0'
30
- spec.add_dependency 'faraday-multipart', '>= 1.0'
31
- spec.add_dependency 'multi_json'
29
+ spec.add_dependency 'faraday', '>= 2.0'
30
+ spec.add_dependency 'faraday-multipart', '>= 1.0'
31
+ spec.add_dependency 'legion-cache', '>= 1.3.11'
32
+ spec.add_dependency 'legion-crypt', '>= 1.4.9'
33
+ spec.add_dependency 'legion-data', '>= 1.4.17'
34
+ spec.add_dependency 'legion-json', '>= 1.2.1'
35
+ spec.add_dependency 'legion-logging', '>= 1.3.2'
36
+ spec.add_dependency 'legion-settings', '>= 1.3.14'
37
+ spec.add_dependency 'legion-transport', '>= 1.3.9'
32
38
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Openai
6
- VERSION = '0.1.1'
6
+ VERSION = '0.1.2'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -38,19 +38,103 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: multi_json
41
+ name: legion-cache
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 1.3.11
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 1.3.11
54
+ - !ruby/object:Gem::Dependency
55
+ name: legion-crypt
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.9
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.4.9
68
+ - !ruby/object:Gem::Dependency
69
+ name: legion-data
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.4.17
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.4.17
82
+ - !ruby/object:Gem::Dependency
83
+ name: legion-json
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.2.1
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.2.1
96
+ - !ruby/object:Gem::Dependency
97
+ name: legion-logging
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.2
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: legion-settings
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.3.14
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 1.3.14
124
+ - !ruby/object:Gem::Dependency
125
+ name: legion-transport
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 1.3.9
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.3.9
54
138
  description: Connects LegionIO to OpenAI
55
139
  email:
56
140
  - matthewdiverson@gmail.com