sublayer 0.0.6 → 0.0.8
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 +4 -4
- data/README.md +20 -6
- data/lib/sublayer/components/output_adapters.rb +15 -1
- data/lib/sublayer/providers/claude.rb +1 -1
- data/lib/sublayer/providers/open_ai.rb +1 -1
- data/lib/sublayer/version.rb +1 -1
- data/sublayer.gemspec +5 -2
- metadata +39 -10
- /data/{examples → lib/sublayer/generators/examples}/code_from_blueprint_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/code_from_description_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/description_from_code_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/invalid_to_valid_json_generator.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c93987f0281e2fa58ba4373a7eb3be0e93d6053dd211379ee0ec1f3e26dedf45
|
|
4
|
+
data.tar.gz: 0b8473c287e9c601ab91bb0965521a69c71bd835576c5f4f56a3cdadc3fac2c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 40e50ae299dfd876158756ed97e71d330bbc05ad24fad400308e22af81ea16c09213d46b54deff1bb11de1fe8ab164a60fb094e9f857db383584fca5348f4d4b
|
|
7
|
+
data.tar.gz: a66a4a3271bf886dc20cebed86d414c63046dade251bd05fa4f3e6f7a4898671ec323df45ea0bafefbe63b13c4667e9da33bc243b677a5f280c3b278501b51f5
|
data/README.md
CHANGED
|
@@ -6,6 +6,20 @@ powered applications in Ruby.
|
|
|
6
6
|
|
|
7
7
|
For more detailed documentation visit our documentation site: [https://docs.sublayer.com](https://docs.sublayer.com).
|
|
8
8
|
|
|
9
|
+
## Note on Versioning
|
|
10
|
+
|
|
11
|
+
Pre-1.0 we anticipate many breaking changes to the API. Our current plan is to
|
|
12
|
+
keep breaking changes to minor, 0.x releases, and patch releases (0.x.y) will be used
|
|
13
|
+
for new features and bug fixes.
|
|
14
|
+
|
|
15
|
+
To maintain stability in your application, we recommend pinning the version of
|
|
16
|
+
Sublayer in your Gemfile to a specific minor version. For example, to pin to
|
|
17
|
+
version 0.0.x, you would add the following line to your Gemfile:
|
|
18
|
+
|
|
19
|
+
```ruby
|
|
20
|
+
gem 'sublayer', '~> 0.0'
|
|
21
|
+
```
|
|
22
|
+
|
|
9
23
|
## Installation
|
|
10
24
|
|
|
11
25
|
Install the gem by running the following commands:
|
|
@@ -15,7 +29,7 @@ Install the gem by running the following commands:
|
|
|
15
29
|
Or add this line to your application's Gemfile:
|
|
16
30
|
|
|
17
31
|
```ruby
|
|
18
|
-
gem 'sublayer'
|
|
32
|
+
gem 'sublayer', '~> 0.0'
|
|
19
33
|
```
|
|
20
34
|
|
|
21
35
|
## Choose your AI Model
|
|
@@ -26,7 +40,7 @@ Sublayer is model-agnostic and can be used with any AI model. Below are the
|
|
|
26
40
|
|
|
27
41
|
Expects you to have an OpenAI API key set in the `OPENAI_API_KEY` environment variable.
|
|
28
42
|
|
|
29
|
-
Visit [OpenAI](https://openai.com/product) to get an API key.
|
|
43
|
+
Visit [OpenAI](https://openai.com/product) to get an API key.
|
|
30
44
|
|
|
31
45
|
Usage:
|
|
32
46
|
```ruby
|
|
@@ -133,12 +147,12 @@ Generators are responsible for generating specific outputs based on input data.
|
|
|
133
147
|
They focus on a single generation task and do not perform any actions or complex
|
|
134
148
|
decision-making. Generators are the building blocks of the Sublayer framework.
|
|
135
149
|
|
|
136
|
-
Examples (in the /examples
|
|
137
|
-
- CodeFromDescriptionGenerator
|
|
150
|
+
Examples (in the `/lib/sublayer/generators/examples` directory):
|
|
151
|
+
- `CodeFromDescriptionGenerator`: Generates code based on a description and the
|
|
138
152
|
technologies used.
|
|
139
|
-
- DescriptionFromCodeGenerator
|
|
153
|
+
- `DescriptionFromCodeGenerator`: Generates a description of the code passed in to
|
|
140
154
|
it.
|
|
141
|
-
- CodeFromBlueprintGenerator
|
|
155
|
+
- `CodeFromBlueprintGenerator`: Generates code based on a blueprint, a blueprint
|
|
142
156
|
description, and a description of the desired code.
|
|
143
157
|
|
|
144
158
|
|
|
@@ -4,7 +4,21 @@ module Sublayer
|
|
|
4
4
|
attr_reader :name
|
|
5
5
|
|
|
6
6
|
def self.create(options)
|
|
7
|
-
|
|
7
|
+
klass = if options.has_key?(:class)
|
|
8
|
+
klass = options[:class]
|
|
9
|
+
if klass.is_a?(String)
|
|
10
|
+
klass.constantize
|
|
11
|
+
elsif klass.is_a?(Class)
|
|
12
|
+
klass
|
|
13
|
+
else
|
|
14
|
+
raise "Invalid :class option"
|
|
15
|
+
end
|
|
16
|
+
elsif (type = options[:type])
|
|
17
|
+
"Sublayer::Components::OutputAdapters::#{type.to_s.camelize}".constantize
|
|
18
|
+
else
|
|
19
|
+
raise "Output adapter must be specified with :class or :type"
|
|
20
|
+
end
|
|
21
|
+
klass.new(options)
|
|
8
22
|
end
|
|
9
23
|
end
|
|
10
24
|
end
|
|
@@ -30,7 +30,7 @@ module Sublayer
|
|
|
30
30
|
response = HTTParty.post(
|
|
31
31
|
"https://api.anthropic.com/v1/messages",
|
|
32
32
|
headers: {
|
|
33
|
-
"x-api-key": ENV
|
|
33
|
+
"x-api-key": ENV.fetch("ANTHROPIC_API_KEY"),
|
|
34
34
|
"anthropic-version": "2023-06-01",
|
|
35
35
|
"content-type": "application/json"
|
|
36
36
|
},
|
|
@@ -5,7 +5,7 @@ module Sublayer
|
|
|
5
5
|
module Providers
|
|
6
6
|
class OpenAI
|
|
7
7
|
def self.call(prompt:, output_adapter:)
|
|
8
|
-
client = ::OpenAI::Client.new(access_token: ENV
|
|
8
|
+
client = ::OpenAI::Client.new(access_token: ENV.fetch("OPENAI_API_KEY"))
|
|
9
9
|
|
|
10
10
|
response = client.chat(
|
|
11
11
|
parameters: {
|
data/lib/sublayer/version.rb
CHANGED
data/sublayer.gemspec
CHANGED
|
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
|
|
|
17
17
|
spec.metadata["homepage_uri"] = "https://docs.sublayer.com"
|
|
18
18
|
spec.metadata["documentation_uri"] = "https://docs.sublayer.com"
|
|
19
19
|
spec.metadata["bug_tracker_uri"] = "https://github.com/sublayerapp/sublayer/issues"
|
|
20
|
+
spec.metadata["source_code_uri"] = "https://github.com/sublayerapp/sublayer"
|
|
20
21
|
|
|
21
22
|
# Specify which files should be added to the gem when it is released.
|
|
22
23
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
@@ -33,10 +34,12 @@ Gem::Specification.new do |spec|
|
|
|
33
34
|
spec.add_dependency "colorize"
|
|
34
35
|
spec.add_dependency "activesupport"
|
|
35
36
|
spec.add_dependency "zeitwerk"
|
|
36
|
-
spec.add_dependency "nokogiri"
|
|
37
|
+
spec.add_dependency "nokogiri", "~> 1.16.5"
|
|
37
38
|
spec.add_dependency "httparty"
|
|
38
39
|
|
|
39
40
|
spec.add_development_dependency "rspec", "~> 3.12"
|
|
40
|
-
spec.add_development_dependency "pry", "
|
|
41
|
+
spec.add_development_dependency "pry", "~> 0.14"
|
|
42
|
+
spec.add_development_dependency "vcr", "~> 6.0"
|
|
43
|
+
spec.add_development_dependency "webmock", "~> 3.0"
|
|
41
44
|
spec.add_development_dependency "clag"
|
|
42
45
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sublayer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Scott Werner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ruby-openai
|
|
@@ -70,16 +70,16 @@ dependencies:
|
|
|
70
70
|
name: nokogiri
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
75
|
+
version: 1.16.5
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
82
|
+
version: 1.16.5
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: httparty
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +122,34 @@ dependencies:
|
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0.14'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: vcr
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '6.0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '6.0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: webmock
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '3.0'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '3.0'
|
|
125
153
|
- !ruby/object:Gem::Dependency
|
|
126
154
|
name: clag
|
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -147,16 +175,16 @@ files:
|
|
|
147
175
|
- LICENSE
|
|
148
176
|
- README.md
|
|
149
177
|
- Rakefile
|
|
150
|
-
- examples/code_from_blueprint_generator.rb
|
|
151
|
-
- examples/code_from_description_generator.rb
|
|
152
|
-
- examples/description_from_code_generator.rb
|
|
153
|
-
- examples/invalid_to_valid_json_generator.rb
|
|
154
178
|
- lib/sublayer.rb
|
|
155
179
|
- lib/sublayer/actions/base.rb
|
|
156
180
|
- lib/sublayer/agents/base.rb
|
|
157
181
|
- lib/sublayer/components/output_adapters.rb
|
|
158
182
|
- lib/sublayer/components/output_adapters/single_string.rb
|
|
159
183
|
- lib/sublayer/generators/base.rb
|
|
184
|
+
- lib/sublayer/generators/examples/code_from_blueprint_generator.rb
|
|
185
|
+
- lib/sublayer/generators/examples/code_from_description_generator.rb
|
|
186
|
+
- lib/sublayer/generators/examples/description_from_code_generator.rb
|
|
187
|
+
- lib/sublayer/generators/examples/invalid_to_valid_json_generator.rb
|
|
160
188
|
- lib/sublayer/providers/claude.rb
|
|
161
189
|
- lib/sublayer/providers/gemini.rb
|
|
162
190
|
- lib/sublayer/providers/groq.rb
|
|
@@ -172,6 +200,7 @@ metadata:
|
|
|
172
200
|
homepage_uri: https://docs.sublayer.com
|
|
173
201
|
documentation_uri: https://docs.sublayer.com
|
|
174
202
|
bug_tracker_uri: https://github.com/sublayerapp/sublayer/issues
|
|
203
|
+
source_code_uri: https://github.com/sublayerapp/sublayer
|
|
175
204
|
post_install_message:
|
|
176
205
|
rdoc_options: []
|
|
177
206
|
require_paths:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|