sublayer 0.2.7 → 0.2.9
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/.contextignore +15 -0
- data/lib/sublayer/cli/commands/cli_project.rb +80 -0
- data/lib/sublayer/cli/commands/github_action_project.rb +70 -0
- data/lib/sublayer/cli/commands/new_project.rb +12 -91
- data/lib/sublayer/cli/commands/quick_script_project.rb +79 -0
- data/lib/sublayer/cli/templates/cli/log/.keep +0 -0
- data/lib/sublayer/cli/templates/github_action/%project_name%/%project_name%.rb.tt +15 -0
- data/lib/sublayer/cli/templates/github_action/%project_name%/actions/.keep +0 -0
- data/lib/sublayer/cli/templates/github_action/%project_name%/agents/.keep +0 -0
- data/lib/sublayer/cli/templates/github_action/%project_name%/generators/.keep +0 -0
- data/lib/sublayer/cli/templates/github_action/%project_name%.yml.tt +30 -0
- data/lib/sublayer/cli.rb +3 -0
- data/lib/sublayer/providers/gemini.rb +2 -2
- data/lib/sublayer/version.rb +1 -1
- data/sublayer.gemspec +1 -0
- metadata +28 -7
- /data/lib/sublayer/cli/templates/cli/{.gitignore → .gitignore.tt} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5de174c31ddd656d2e23b55f17b289a9fffcb6f088eda3ae1a4c41b61a6b872b
|
4
|
+
data.tar.gz: 3871f87e40603e1fb27bb98d967fe220781bdab8ddb6352e5c7a85126f5f0b33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 335007bd7883dace639be6bd3170ff229a38990fe7947e4e2b87507c0a9e765168fc6956e85dc4dfdbbedd7af9c2bad96fb5bed48e00ffc4fc6ada81ad09f44b
|
7
|
+
data.tar.gz: dcf104511713218d19f21e879df8ccb2509e6bdff54fe7ed6c81da48d14bb517bb39c7b0cdc6f467091d3d1435574cfeada0e98606b297991b7bf0dbb3121a14
|
data/.contextignore
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
module Sublayer
|
2
|
+
module Commands
|
3
|
+
class CLIProject < Thor::Group
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
argument :project_name
|
7
|
+
|
8
|
+
class_option :provider, type: :string, desc: "AI provider (OpenAI, Claude, or Gemini)", aliases: :p
|
9
|
+
class_option :model, type: :string, desc: "AI model name to use (e.g. gpt-4o, claude-3-haiku-20240307, gemini-1.5-flash-latest)", aliases: :m
|
10
|
+
|
11
|
+
def self.source_root
|
12
|
+
File.dirname(__FILE__)
|
13
|
+
end
|
14
|
+
|
15
|
+
def sublayer_version
|
16
|
+
Sublayer::VERSION
|
17
|
+
end
|
18
|
+
|
19
|
+
def ask_for_project_details
|
20
|
+
@project_name = project_name
|
21
|
+
@ai_provider = options[:provider] || ask("Select an AI provider:", default: "OpenAI", limited_to: %w[OpenAI Claude Gemini])
|
22
|
+
@ai_model = options[:model] || select_ai_model
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_project_directory
|
26
|
+
say "Creating project directory", :green
|
27
|
+
|
28
|
+
empty_directory project_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def copy_template_files
|
32
|
+
say "Copying template files", :green
|
33
|
+
|
34
|
+
directory "../templates/cli", project_name
|
35
|
+
end
|
36
|
+
|
37
|
+
def generate_configuration
|
38
|
+
say "Generating configuration", :green
|
39
|
+
|
40
|
+
config = {
|
41
|
+
project_name: @project_name,
|
42
|
+
project_template: "CLI",
|
43
|
+
ai_provider: @ai_provider,
|
44
|
+
ai_model: @ai_model
|
45
|
+
}
|
46
|
+
|
47
|
+
create_file File.join(project_name, "lib", project_name, "config", "sublayer.yml"), YAML.dump(config)
|
48
|
+
end
|
49
|
+
|
50
|
+
def finalize_project
|
51
|
+
say "Finalizing project", :green
|
52
|
+
|
53
|
+
inside(project_name) do
|
54
|
+
chmod("bin/#{project_name}", "+x")
|
55
|
+
run("git init") if yes?("Initialize a git repository?")
|
56
|
+
run("bundle install") if yes?("Install gems?")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def print_next_steps
|
61
|
+
say "\nSublayer project '#{project_name}' created successfully!", :green
|
62
|
+
say "To get started, run:"
|
63
|
+
say " cd #{project_name}"
|
64
|
+
say " ./bin/#{project_name}"
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
def select_ai_model
|
69
|
+
case @ai_provider
|
70
|
+
when "OpenAI"
|
71
|
+
ask("Which OpenAI model would you like to use?", default: "gpt-4o", limited_to: %w[gpt-4o gpt-4o-mini gpt-4-turbo gpt-3.5-turbo])
|
72
|
+
when "Claude"
|
73
|
+
ask("Which Anthropic model would you like to use?", default: "claude-3-5-sonnet-20240620", limited_to: %w[claude-3-5-sonnet-20240620 claude-3-opus-20240620 claude-3-haiku-20240307])
|
74
|
+
when "Gemini"
|
75
|
+
ask("Which Google model would you like to use?", default: "gemini-1.5-flash-latest", limited_to: %w[gemini-1.5-flash-latest gemini-1.5-pro-latest])
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Sublayer
|
2
|
+
module Commands
|
3
|
+
class GithubActionProject < Thor::Group
|
4
|
+
attr_reader :ai_provider_key
|
5
|
+
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :project_name
|
9
|
+
|
10
|
+
class_option :provider, type: :string, desc: "AI provider (OpenAI, Claude, or Gemini)", aliases: :p
|
11
|
+
class_option :model, type: :string, desc: "AI model name to use (e.g. gpt-4o, claude-3-haiku-20240307, gemini-1.5-flash-latest)", aliases: :m
|
12
|
+
|
13
|
+
def self.source_root
|
14
|
+
File.dirname(__FILE__)
|
15
|
+
end
|
16
|
+
|
17
|
+
def sublayer_version
|
18
|
+
Sublayer::VERSION
|
19
|
+
end
|
20
|
+
|
21
|
+
def ask_for_project_details
|
22
|
+
@ai_provider = options[:provider] || ask("Select an AI provider:", default: "OpenAI", limited_to: %w[OpenAI Claude Gemini])
|
23
|
+
@ai_model = options[:model] || select_ai_model
|
24
|
+
end
|
25
|
+
|
26
|
+
def create_project_directory
|
27
|
+
say "Creating project directory", :green
|
28
|
+
|
29
|
+
empty_directory ".github/workflows"
|
30
|
+
end
|
31
|
+
|
32
|
+
def copy_template_files
|
33
|
+
say "Copying template files", :green
|
34
|
+
|
35
|
+
directory "../templates/github_action", ".github/workflows"
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def generate_configuration
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def finalize_project
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def print_next_steps
|
48
|
+
say "\nSublayer Github Action Project '#{project_name}' created successfully!", :green
|
49
|
+
say "To get started: "
|
50
|
+
say "Create some Sublayer Actions and Sublayer generators within '.github/workflows/#{project_name}/{actions/,generators/}'"
|
51
|
+
say "And edit the file at '.github/workflows/#{project_name}.yml' to set up what you want the action triggered by"
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
def select_ai_model
|
56
|
+
case @ai_provider
|
57
|
+
when "OpenAI"
|
58
|
+
@ai_provider_key = "OPENAI_API_KEY"
|
59
|
+
ask("Which OpenAI model would you like to use?", default: "gpt-4o", limited_to: %w[gpt-4o gpt-4o-mini gpt-4-turbo gpt-3.5-turbo])
|
60
|
+
when "Claude"
|
61
|
+
@ai_provider_key = "ANTHROPIC_API_KEY"
|
62
|
+
ask("Which Anthropic model would you like to use?", default: "claude-3-5-sonnet-20240620", limited_to: %w[claude-3-5-sonnet-20240620 claude-3-opus-20240620 claude-3-haiku-20240307])
|
63
|
+
when "Gemini"
|
64
|
+
@ai_provider_key = "GEMINI_API_KEY"
|
65
|
+
ask("Which Google model would you like to use?", default: "gemini-1.5-flash-latest", limited_to: %w[gemini-1.5-flash-latest gemini-1.5-pro-latest])
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -5,7 +5,7 @@ module Sublayer
|
|
5
5
|
|
6
6
|
argument :project_name, type: :string, desc: "The name of your project"
|
7
7
|
|
8
|
-
class_option :template, type: :string, desc: "Type of project (CLI
|
8
|
+
class_option :template, type: :string, desc: "Type of project (CLI, GithubAction, QuickScript)", aliases: :t
|
9
9
|
class_option :provider, type: :string, desc: "AI provider (OpenAI, Claude, or Gemini)", aliases: :p
|
10
10
|
class_option :model, type: :string, desc: "AI model name to use (e.g. gpt-4o, claude-3-haiku-20240307, gemini-1.5-flash-latest)", aliases: :m
|
11
11
|
|
@@ -21,98 +21,19 @@ module Sublayer
|
|
21
21
|
"sublayer new PROJECT_NAME"
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
26
|
-
@project_template = options[:template] || ask("Select a project template:", default: "CLI", limited_to: %w[CLI QuickScript])
|
27
|
-
@ai_provider = options[:provider] || ask("Select an AI provider:", default: "OpenAI", limited_to: %w[OpenAI Claude Gemini])
|
28
|
-
@ai_model = options[:model] || select_ai_model
|
29
|
-
end
|
30
|
-
|
31
|
-
def create_project_directory
|
32
|
-
say "Creating project directory", :green
|
33
|
-
empty_directory project_name
|
34
|
-
end
|
35
|
-
|
36
|
-
def copy_template_files
|
37
|
-
say "Copying template files", :green
|
38
|
-
template_dir = @project_template == "CLI" ? "cli" : "quick_script"
|
39
|
-
directory "../templates/#{template_dir}", project_name
|
40
|
-
empty_directory File.join(project_name, "log") if @project_template =="CLI"
|
41
|
-
end
|
42
|
-
|
43
|
-
def generate_config_file
|
44
|
-
say "Generating configuration", :green
|
24
|
+
def create_project
|
25
|
+
@project_template = options[:template] || ask("Select a project template:", default: "CLI", limited_to: %w[CLI GithubAction QuickScript])
|
45
26
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
if @project_template == "CLI"
|
54
|
-
create_file File.join(project_name, "lib", project_name, "config", "sublayer.yml"), YAML.dump(config)
|
27
|
+
case @project_template.downcase
|
28
|
+
when 'cli'
|
29
|
+
invoke Commands::CLIProject, [project_name], options
|
30
|
+
when 'githubaction', 'github_action'
|
31
|
+
invoke Commands::GithubActionProject, [project_name], options
|
32
|
+
when 'quickscript', 'quick_script'
|
33
|
+
invoke Commands::QuickScriptProject, [project_name], options
|
55
34
|
else
|
56
|
-
|
57
|
-
|
58
|
-
Sublayer.configuration.ai_provider = Sublayer::Providers::#{config[:ai_provider]}
|
59
|
-
Sublayer.configuration.ai_model = "#{config[:ai_model]}"
|
60
|
-
CONFIG
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def finalize_project
|
66
|
-
say "Finalizing project", :green
|
67
|
-
inside(project_name) do
|
68
|
-
if @project_template == "CLI"
|
69
|
-
chmod("bin/#{project_name}", "+x")
|
70
|
-
run("bundle install") if yes?("Install gems?")
|
71
|
-
else
|
72
|
-
append_to_file "#{project_name}.rb" do
|
73
|
-
<<~INSTRUCTIONS
|
74
|
-
puts "Welcome to your quick Sublayer script!"
|
75
|
-
puts "To get started, create some generators, actions, or agents in their respective directories and call them here"
|
76
|
-
puts "For more information, visit https://docs.sublayer.com"
|
77
|
-
INSTRUCTIONS
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
run("git init") if yes?("Initialize a git repository?")
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def print_next_steps
|
86
|
-
say "\nSublayer project '#{project_name}' created successfully!", :green
|
87
|
-
say "To get started, run:"
|
88
|
-
say " cd #{project_name}"
|
89
|
-
if @project_template == "CLI"
|
90
|
-
say " ./bin/#{project_name}"
|
91
|
-
else
|
92
|
-
say " ruby #{project_name}.rb"
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
private
|
97
|
-
|
98
|
-
def select_ai_model
|
99
|
-
case @ai_provider
|
100
|
-
when "OpenAI"
|
101
|
-
ask("Which OpenAI model would you like to use?", default: "gpt-4o", limited_to: %w[gpt-4o gpt-4o-mini gpt-4-turbo gpt-3.5-turbo])
|
102
|
-
when "Claude"
|
103
|
-
ask("Which Anthropic model would you like to use?", default: "claude-3-5-sonnet-20240620", limited_to: %w[claude-3-5-sonnet-20240620 claude-3-opus-20240620 claude-3-haiku-20240307])
|
104
|
-
when "Gemini"
|
105
|
-
ask("Which Google model would you like to use?", default: "gemini-1.5-flash-latest", limited_to: %w[gemini-1.5-flash-latest gemini-1.5-pro-latest])
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def rename_project_name_directory
|
110
|
-
old_path = File.join(project_name, "lib", "PROJECT_NAME")
|
111
|
-
new_path = File.join(project_name, "lib", project_name.gsub("-", "_").downcase)
|
112
|
-
|
113
|
-
if File.directory?(old_path)
|
114
|
-
say "Renaming project directory", :green
|
115
|
-
FileUtils.mv(old_path, new_path)
|
35
|
+
say "Unknown project template: #{@project_template}", :red
|
36
|
+
exit 1
|
116
37
|
end
|
117
38
|
end
|
118
39
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Sublayer
|
2
|
+
module Commands
|
3
|
+
class QuickScriptProject < Thor::Group
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
argument :project_name
|
7
|
+
|
8
|
+
class_option :provider, type: :string, desc: "AI provider (OpenAI, Claude, or Gemini)", aliases: :p
|
9
|
+
class_option :model, type: :string, desc: "AI model name to use (e.g. gpt-4o, claude-3-haiku-20240307, gemini-1.5-flash-latest)", aliases: :m
|
10
|
+
|
11
|
+
def self.source_root
|
12
|
+
File.dirname(__FILE__)
|
13
|
+
end
|
14
|
+
|
15
|
+
def sublayer_version
|
16
|
+
Sublayer::VERSION
|
17
|
+
end
|
18
|
+
|
19
|
+
def ask_for_project_details
|
20
|
+
@ai_provider = options[:provider] || ask("Select an AI provider:", default: "OpenAI", limited_to: %w[OpenAI Claude Gemini])
|
21
|
+
@ai_model = options[:model] || select_ai_model
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_project_directory
|
25
|
+
say "Creating project directory", :green
|
26
|
+
|
27
|
+
empty_directory project_name
|
28
|
+
end
|
29
|
+
|
30
|
+
def copy_template_files
|
31
|
+
say "Copying template files", :green
|
32
|
+
|
33
|
+
directory "../templates/quick_script", project_name
|
34
|
+
end
|
35
|
+
|
36
|
+
def generate_configuration
|
37
|
+
append_to_file File.join(project_name, "#{project_name}.rb") do
|
38
|
+
<<~CONFIG
|
39
|
+
Sublayer.configuration.ai_provider = Sublayer::Providers::#{@ai_provider}
|
40
|
+
Sublayer.configuration.ai_model = "#{@ai_model}"
|
41
|
+
CONFIG
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def finalize_project
|
46
|
+
inside(project_name) do
|
47
|
+
append_to_file "#{project_name}.rb" do
|
48
|
+
<<~INSTRUCTIONS
|
49
|
+
puts "Welcome to your quick Sublayer script!"
|
50
|
+
puts "To get started, create some generators, actions, or agents in their respective directories and call them here"
|
51
|
+
puts "For more information, visit https://docs.sublayer.com"
|
52
|
+
INSTRUCTIONS
|
53
|
+
end
|
54
|
+
|
55
|
+
run("git init") if yes?("Initialize a git repository?")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def print_next_steps
|
60
|
+
say "\nSublayer project '#{project_name}' created successfully!", :green
|
61
|
+
say "To get started, run:"
|
62
|
+
say " cd #{project_name}"
|
63
|
+
say " ruby #{project_name}.rb"
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def select_ai_model
|
68
|
+
case @ai_provider
|
69
|
+
when "OpenAI"
|
70
|
+
ask("Which OpenAI model would you like to use?", default: "gpt-4o", limited_to: %w[gpt-4o gpt-4o-mini gpt-4-turbo gpt-3.5-turbo])
|
71
|
+
when "Claude"
|
72
|
+
ask("Which Anthropic model would you like to use?", default: "claude-3-5-sonnet-20240620", limited_to: %w[claude-3-5-sonnet-20240620 claude-3-opus-20240620 claude-3-haiku-20240307])
|
73
|
+
when "Gemini"
|
74
|
+
ask("Which Google model would you like to use?", default: "gemini-1.5-flash-latest", limited_to: %w[gemini-1.5-flash-latest gemini-1.5-pro-latest])
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "base64"
|
2
|
+
|
3
|
+
require "sublayer"
|
4
|
+
require "octokit"
|
5
|
+
|
6
|
+
# Load all Sublayer Actions, Generators, and Agents
|
7
|
+
Dir[File.join(__dir__, "actions", "*.rb")].each { |file| require file }
|
8
|
+
Dir[File.join(__dir__, "generators", "*.rb")].each { |file| require file }
|
9
|
+
Dir[File.join(__dir__, "agents", "*.rb")].each { |file| require file }
|
10
|
+
|
11
|
+
Sublayer.configuration.ai_provider = Sublayer::Providers::<%= @ai_provider %>
|
12
|
+
Sublayer.configuration.ai_model = "<%= @ai_model %>"
|
13
|
+
|
14
|
+
# Add custom Github Action code below:
|
15
|
+
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: <%= project_name %>
|
2
|
+
|
3
|
+
|
4
|
+
# Add a definition of when you want this workflow to trigger here
|
5
|
+
#
|
6
|
+
# For example, for it to run on every pull request that contains changes to .rb files, use:
|
7
|
+
#
|
8
|
+
# on:
|
9
|
+
# pull_request:
|
10
|
+
# paths:
|
11
|
+
# - "**/*.rb"
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
<%= project_name.gsub("-", "_") %>:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v4.2.0
|
18
|
+
- name: Set up Ruby
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: 3.2
|
22
|
+
- name: Install dependencies
|
23
|
+
run: |
|
24
|
+
gem install sublayer octokit
|
25
|
+
- name: Run <%= project_name.gsub("-", "_") %>
|
26
|
+
env:
|
27
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
28
|
+
<%= ai_provider_key %>: ${{ secrets.<%= ai_provider_key %> }}
|
29
|
+
|
30
|
+
run: ruby .github/workflows/<%= project_name %>/<%= project_name %>.rb
|
data/lib/sublayer/cli.rb
CHANGED
@@ -11,6 +11,9 @@ require_relative "cli/commands/new_project"
|
|
11
11
|
require_relative "cli/commands/generator"
|
12
12
|
require_relative "cli/commands/agent"
|
13
13
|
require_relative "cli/commands/action"
|
14
|
+
require_relative "cli/commands/cli_project"
|
15
|
+
require_relative "cli/commands/github_action_project"
|
16
|
+
require_relative "cli/commands/quick_script_project"
|
14
17
|
|
15
18
|
module Sublayer
|
16
19
|
class CLI < Thor
|
@@ -40,6 +40,8 @@ module Sublayer
|
|
40
40
|
after_request = Time.now
|
41
41
|
response_time = after_request - before_request
|
42
42
|
|
43
|
+
raise "Error generating with Gemini, error: #{response.body}" unless response.success?
|
44
|
+
|
43
45
|
Sublayer.configuration.logger.log(:info, "Gemini API response", {
|
44
46
|
request_id: request_id,
|
45
47
|
response_time: response_time,
|
@@ -50,8 +52,6 @@ module Sublayer
|
|
50
52
|
}
|
51
53
|
})
|
52
54
|
|
53
|
-
raise "Error generating with Gemini, error: #{response.body}" unless response.success?
|
54
|
-
|
55
55
|
output = response.dig("candidates", 0, "content", "parts", 0, "text")
|
56
56
|
|
57
57
|
parsed_output = JSON.parse(output)[output_adapter.name]
|
data/lib/sublayer/version.rb
CHANGED
data/sublayer.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sublayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Werner
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: ruby-openai
|
@@ -80,6 +79,20 @@ dependencies:
|
|
80
79
|
- - ">="
|
81
80
|
- !ruby/object:Gem::Version
|
82
81
|
version: '0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: ostruct
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
83
96
|
- !ruby/object:Gem::Dependency
|
84
97
|
name: thor
|
85
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,6 +172,7 @@ executables:
|
|
159
172
|
extensions: []
|
160
173
|
extra_rdoc_files: []
|
161
174
|
files:
|
175
|
+
- ".contextignore"
|
162
176
|
- LICENSE
|
163
177
|
- README.md
|
164
178
|
- Rakefile
|
@@ -169,6 +183,7 @@ files:
|
|
169
183
|
- lib/sublayer/cli.rb
|
170
184
|
- lib/sublayer/cli/commands/action.rb
|
171
185
|
- lib/sublayer/cli/commands/agent.rb
|
186
|
+
- lib/sublayer/cli/commands/cli_project.rb
|
172
187
|
- lib/sublayer/cli/commands/generator.rb
|
173
188
|
- lib/sublayer/cli/commands/generators/example_action_api_call.rb
|
174
189
|
- lib/sublayer/cli/commands/generators/example_action_file_manipulation.rb
|
@@ -178,10 +193,12 @@ files:
|
|
178
193
|
- lib/sublayer/cli/commands/generators/sublayer_agent_generator.rb
|
179
194
|
- lib/sublayer/cli/commands/generators/sublayer_command_generator.rb
|
180
195
|
- lib/sublayer/cli/commands/generators/sublayer_generator_generator.rb
|
196
|
+
- lib/sublayer/cli/commands/github_action_project.rb
|
181
197
|
- lib/sublayer/cli/commands/new_project.rb
|
198
|
+
- lib/sublayer/cli/commands/quick_script_project.rb
|
182
199
|
- lib/sublayer/cli/commands/subcommand_base.rb
|
183
200
|
- lib/sublayer/cli/templates/cli/%project_name%.gemspec.tt
|
184
|
-
- lib/sublayer/cli/templates/cli/.gitignore
|
201
|
+
- lib/sublayer/cli/templates/cli/.gitignore.tt
|
185
202
|
- lib/sublayer/cli/templates/cli/Gemfile
|
186
203
|
- lib/sublayer/cli/templates/cli/README.md.tt
|
187
204
|
- lib/sublayer/cli/templates/cli/bin/%project_name%.tt
|
@@ -195,7 +212,13 @@ files:
|
|
195
212
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/config/.keep
|
196
213
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/generators/example_generator.rb.tt
|
197
214
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/version.rb.tt
|
215
|
+
- lib/sublayer/cli/templates/cli/log/.keep
|
198
216
|
- lib/sublayer/cli/templates/cli/spec/.keep
|
217
|
+
- lib/sublayer/cli/templates/github_action/%project_name%.yml.tt
|
218
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/%project_name%.rb.tt
|
219
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/actions/.keep
|
220
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/agents/.keep
|
221
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/generators/.keep
|
199
222
|
- lib/sublayer/cli/templates/quick_script/%project_name%.rb
|
200
223
|
- lib/sublayer/cli/templates/quick_script/README.md.tt
|
201
224
|
- lib/sublayer/cli/templates/quick_script/actions/example_action.rb
|
@@ -231,7 +254,6 @@ metadata:
|
|
231
254
|
documentation_uri: https://docs.sublayer.com
|
232
255
|
bug_tracker_uri: https://github.com/sublayerapp/sublayer/issues
|
233
256
|
source_code_uri: https://github.com/sublayerapp/sublayer
|
234
|
-
post_install_message:
|
235
257
|
rdoc_options: []
|
236
258
|
require_paths:
|
237
259
|
- lib
|
@@ -246,8 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
268
|
- !ruby/object:Gem::Version
|
247
269
|
version: '0'
|
248
270
|
requirements: []
|
249
|
-
rubygems_version: 3.
|
250
|
-
signing_key:
|
271
|
+
rubygems_version: 3.6.9
|
251
272
|
specification_version: 4
|
252
273
|
summary: A model-agnostic Ruby GenerativeAI DSL and Framework
|
253
274
|
test_files: []
|
File without changes
|