sublayer 0.2.7 → 0.2.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/.contextignore +15 -0
- data/lib/sublayer/cli/commands/cli_project.rb +79 -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/version.rb +1 -1
- metadata +13 -3
- /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: f77385d9cac0cf15242c515933970b20181968c2aa63dbb23d1c9e748aef9833
|
|
4
|
+
data.tar.gz: bd6c59571e7a08d4ea21095a463b23c514e1608374abafc8726fb4b42cfb572f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c850ef7ebe6f33dae8335f0df0ff5a0c7d849b57d4964bdae40991718cda449667006107717131445bf763337b70c533e109d3d006bed583d4c804ec864ee638
|
|
7
|
+
data.tar.gz: b620565446a6cc96ed843e1a98d850dfca5a519fb95f3b797ea2cf94ba67ef3af1675eb590dc3a373332ab8bd79a74fefd51d7adca615be6313567d348f1ad97
|
data/.contextignore
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
@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/cli", project_name
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def generate_configuration
|
|
37
|
+
say "Generating configuration", :green
|
|
38
|
+
|
|
39
|
+
config = {
|
|
40
|
+
project_name: @project_name,
|
|
41
|
+
project_template: "CLI",
|
|
42
|
+
ai_provider: @provider,
|
|
43
|
+
ai_model: @model
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
create_file File.join(project_name, "lib", project_name, "config", "sublayer.yml"), YAML.dump(config)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def finalize_project
|
|
50
|
+
say "Finalizing project", :green
|
|
51
|
+
|
|
52
|
+
inside(project_name) do
|
|
53
|
+
chmod("bin/#{project_name}", "+x")
|
|
54
|
+
run("git init") if yes?("Initialize a git repository?")
|
|
55
|
+
run("bundle install") if yes?("Install gems?")
|
|
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 " ./bin/#{project_name}"
|
|
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
|
|
@@ -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
|
data/lib/sublayer/version.rb
CHANGED
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.2.
|
|
4
|
+
version: 0.2.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-10-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ruby-openai
|
|
@@ -159,6 +159,7 @@ executables:
|
|
|
159
159
|
extensions: []
|
|
160
160
|
extra_rdoc_files: []
|
|
161
161
|
files:
|
|
162
|
+
- ".contextignore"
|
|
162
163
|
- LICENSE
|
|
163
164
|
- README.md
|
|
164
165
|
- Rakefile
|
|
@@ -169,6 +170,7 @@ files:
|
|
|
169
170
|
- lib/sublayer/cli.rb
|
|
170
171
|
- lib/sublayer/cli/commands/action.rb
|
|
171
172
|
- lib/sublayer/cli/commands/agent.rb
|
|
173
|
+
- lib/sublayer/cli/commands/cli_project.rb
|
|
172
174
|
- lib/sublayer/cli/commands/generator.rb
|
|
173
175
|
- lib/sublayer/cli/commands/generators/example_action_api_call.rb
|
|
174
176
|
- lib/sublayer/cli/commands/generators/example_action_file_manipulation.rb
|
|
@@ -178,10 +180,12 @@ files:
|
|
|
178
180
|
- lib/sublayer/cli/commands/generators/sublayer_agent_generator.rb
|
|
179
181
|
- lib/sublayer/cli/commands/generators/sublayer_command_generator.rb
|
|
180
182
|
- lib/sublayer/cli/commands/generators/sublayer_generator_generator.rb
|
|
183
|
+
- lib/sublayer/cli/commands/github_action_project.rb
|
|
181
184
|
- lib/sublayer/cli/commands/new_project.rb
|
|
185
|
+
- lib/sublayer/cli/commands/quick_script_project.rb
|
|
182
186
|
- lib/sublayer/cli/commands/subcommand_base.rb
|
|
183
187
|
- lib/sublayer/cli/templates/cli/%project_name%.gemspec.tt
|
|
184
|
-
- lib/sublayer/cli/templates/cli/.gitignore
|
|
188
|
+
- lib/sublayer/cli/templates/cli/.gitignore.tt
|
|
185
189
|
- lib/sublayer/cli/templates/cli/Gemfile
|
|
186
190
|
- lib/sublayer/cli/templates/cli/README.md.tt
|
|
187
191
|
- lib/sublayer/cli/templates/cli/bin/%project_name%.tt
|
|
@@ -195,7 +199,13 @@ files:
|
|
|
195
199
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/config/.keep
|
|
196
200
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/generators/example_generator.rb.tt
|
|
197
201
|
- lib/sublayer/cli/templates/cli/lib/%project_name%/version.rb.tt
|
|
202
|
+
- lib/sublayer/cli/templates/cli/log/.keep
|
|
198
203
|
- lib/sublayer/cli/templates/cli/spec/.keep
|
|
204
|
+
- lib/sublayer/cli/templates/github_action/%project_name%.yml.tt
|
|
205
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/%project_name%.rb.tt
|
|
206
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/actions/.keep
|
|
207
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/agents/.keep
|
|
208
|
+
- lib/sublayer/cli/templates/github_action/%project_name%/generators/.keep
|
|
199
209
|
- lib/sublayer/cli/templates/quick_script/%project_name%.rb
|
|
200
210
|
- lib/sublayer/cli/templates/quick_script/README.md.tt
|
|
201
211
|
- lib/sublayer/cli/templates/quick_script/actions/example_action.rb
|
|
File without changes
|