luo 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2357d89c3ae18e5aef8a31e53226a971d7738b121c07840bad3af6c1763f116b
4
- data.tar.gz: b9bb7e8c1db63268c8cba723eb0c27cbd3bdc111fe487811204c887d5795d592
3
+ metadata.gz: b6fd7dfc689ad963f3f3e8c9f394242ca4aac334eccfe17ac0945397911a55b1
4
+ data.tar.gz: 4b0ddf9adeb237187ab8dc44c152502f1e0831b1b4ad9ea44aef880672de008f
5
5
  SHA512:
6
- metadata.gz: a2efc0ca521f10ce965a0ba49f9b4265a1277c493ce54a77cdcb87dcc3501c51ac1408a7ee692cb31dee56aed4652504032a95955e20bb19f5cfa64565d286fb
7
- data.tar.gz: 15e7e45e309805cd021dbc10fa58d65770859b76eb0872305d5b92bb115b9185185ebd44592a4c3f2ccfd0bbe05df46c77293469d78f70ddb4ed1bf1843ad946
6
+ metadata.gz: 90121e2c75de091278163ef0914cea6bb2c1d32683b3b7dec5b4a487e7a9b4fe1eb3a38f615dfceb4cde71b0727fd3e46679fa6688ddb8ef2f47b8ca278f9886
7
+ data.tar.gz: 75ebe8f70681cc926bfcab440b1b5d25c2c2f20dd180c66022df540f2459eab83989011e2c020208297921ff801c025e335b4036179472865653bbbb56b6a369
data/Gemfile.lock CHANGED
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- luo (0.2.0)
4
+ luo (0.2.1)
5
5
  dotenv (~> 2.8, >= 2.8.1)
6
6
  dry-configurable (~> 1.0, >= 1.0.1)
7
7
  dry-schema (~> 1.13, >= 1.13.1)
8
8
  faraday (~> 2.7, >= 2.7.4)
9
9
  faraday-retry (~> 2.1)
10
10
  redcarpet (~> 3.6)
11
+ rouge (~> 4.1, >= 4.1.1)
11
12
  thor (~> 1.2, >= 1.2.2)
12
13
  tty-markdown (~> 0.7.2)
13
14
  zeitwerk (~> 2.6, >= 2.6.8)
@@ -57,7 +58,7 @@ GEM
57
58
  rake (13.0.6)
58
59
  redcarpet (3.6.0)
59
60
  rexml (3.2.5)
60
- rouge (4.1.0)
61
+ rouge (4.1.1)
61
62
  rspec (3.12.0)
62
63
  rspec-core (~> 3.12.0)
63
64
  rspec-expectations (~> 3.12.0)
data/exe/luo CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require "bundler/setup"
5
- require "luo"
4
+ require_relative '../lib/luo'
6
5
 
7
6
  Luo::CLI::APP.start
@@ -7,6 +7,11 @@ module Luo
7
7
  say "Copying App...", :green
8
8
  copy_file "application.rb", "app.rb"
9
9
  end
10
+
11
+ def copy_gemfile
12
+ say "Copying Gemfile...", :green
13
+ copy_file "AppGemfile", "Gemfile"
14
+ end
10
15
  end
11
16
  end
12
17
  end
@@ -10,6 +10,11 @@ module Luo
10
10
  copy_file "luo.ipynb", "luo.ipynb"
11
11
  end
12
12
 
13
+ def copy_gemfile
14
+ say "Copying Gemfile...", :green
15
+ copy_file "NotebookGemfile", "Gemfile"
16
+ end
17
+
13
18
  end
14
19
  end
15
20
  end
data/lib/luo/helpers.rb CHANGED
@@ -2,12 +2,58 @@
2
2
 
3
3
  module Luo
4
4
  module Helpers
5
+
6
+ class HTMLwithRouge < Redcarpet::Render::HTML
7
+
8
+ def block_code(code, language)
9
+ lexer = Rouge::Lexer.find(language) || Rouge::Lexers::PlainText
10
+ formatter = Rouge::Formatters::HTML.new
11
+ highlighted_code = formatter.format(lexer.lex(code))
12
+ "<pre class=\"highlight\">#{highlighted_code}</pre>"
13
+ end
14
+ end
15
+
5
16
  extend self
6
17
 
7
18
  def print_md(text)
8
19
  puts TTY::Markdown.parse(text)
9
20
  end
10
21
 
22
+ def display_md(text)
23
+ unless gem_exists?('iruby')
24
+ raise "Please install iruby gem first."
25
+ end
26
+
27
+ if gem_exists?('rouge')
28
+ renderer = HTMLwithRouge.new
29
+ else
30
+ renderer = Redcarpet::Render::HTML.new
31
+ end
32
+
33
+ markdown = Redcarpet::Markdown.new(renderer,
34
+ autolink: true,
35
+ tables: true,
36
+ strikethrough: true,
37
+ highlight: true,
38
+ prettify: true,
39
+ fenced_code_blocks: true)
40
+ body = markdown.render(text)
41
+ css = Rouge::Themes::Github.mode(:light).render(scope: '.highlight')
42
+ html = <<~HTML
43
+ <style>#{css}</style>
44
+ #{body}
45
+ HTML
46
+ # puts html
47
+ IRuby.display(IRuby.html(html))
48
+ end
49
+
50
+ def display_html(text)
51
+ unless gem_exists?('iruby')
52
+ raise "Please install iruby gem first."
53
+ end
54
+ IRuby.display(IRuby.html(text))
55
+ end
56
+
11
57
  def load_test(path, &block)
12
58
  data = YAML.load_file(path)
13
59
  if data.is_a?(Array)
data/lib/luo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Luo
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/luo.rb CHANGED
@@ -34,13 +34,13 @@ module Luo
34
34
  end
35
35
 
36
36
  def self.app_setup(&block)
37
- include Luo
37
+ TOPLEVEL_BINDING.eval('include Luo')
38
38
  block.call(Loader) if block_given?
39
39
  Loader.setup
40
40
  end
41
41
 
42
42
  def self.notebook_setup(&block)
43
- include Luo
43
+ TOPLEVEL_BINDING.eval('include Luo')
44
44
  block.call(Loader) if block_given?
45
45
  Loader.setup
46
46
  if Helpers.gem_exists?('pry')
data/luo.gemspec CHANGED
@@ -37,10 +37,12 @@ Gem::Specification.new do |spec|
37
37
  spec.add_dependency 'dry-configurable', '~> 1.0', '>= 1.0.1'
38
38
  spec.add_dependency 'tty-markdown', '~> 0.7.2'
39
39
  spec.add_dependency 'redcarpet', '~> 3.6'
40
+ spec.add_dependency 'rouge', '~> 4.1', '>= 4.1.1'
40
41
  spec.add_dependency 'thor', '~> 1.2', '>= 1.2.2'
41
42
 
42
43
  spec.add_development_dependency "rspec", '~> 3.12'
43
44
 
45
+
44
46
  # For more information and examples about making a new gem, check out our
45
47
  # guide at: https://bundler.io/guides/creating_gem.html
46
48
  end
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'luo', '~> 0.2.1'
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'luo', '~> 0.2.1'
4
+ gem 'pry', '~> 0.14.2'
5
+ gem 'iruby'
data/templates/luo.ipynb CHANGED
@@ -17,21 +17,22 @@
17
17
  },
18
18
  "outputs": [
19
19
  {
20
- "data": {
21
- "text/plain": [
22
- "true"
23
- ]
24
- },
25
- "execution_count": 1,
26
- "metadata": {},
27
- "output_type": "execute_result"
20
+ "name": "stdout",
21
+ "output_type": "stream",
22
+ "text": [
23
+ "0.2.0\n"
24
+ ]
28
25
  }
29
26
  ],
30
27
  "source": [
31
28
  "# 初始化运行环境\n",
32
- "require_relative \"init\"\n",
33
- "require 'pry'\n",
34
- "IRuby::Kernel.instance.switch_backend!(:pry)"
29
+ "require 'luo'\n",
30
+ "\n",
31
+ "Luo.notebook_setup do |loader|\n",
32
+ " loader.push_dir(File.join(__dir__, 'agents'))\n",
33
+ "end\n",
34
+ "\n",
35
+ "puts Luo::VERSION"
35
36
  ]
36
37
  },
37
38
  {
@@ -63,7 +64,7 @@
63
64
  },
64
65
  {
65
66
  "cell_type": "code",
66
- "execution_count": 4,
67
+ "execution_count": 3,
67
68
  "id": "3b2b57cf-332e-4f4e-8b54-ee35950a0501",
68
69
  "metadata": {
69
70
  "tags": []
@@ -75,7 +76,7 @@
75
76
  ":input"
76
77
  ]
77
78
  },
78
- "execution_count": 4,
79
+ "execution_count": 3,
79
80
  "metadata": {},
80
81
  "output_type": "execute_result"
81
82
  }
@@ -85,7 +86,7 @@
85
86
  "\n",
86
87
  "def input(text)\n",
87
88
  " context = $runner.call(text)\n",
88
- " Helpers.print_md <<~MD\n",
89
+ " Helpers.display_md <<~MD\n",
89
90
  " ## Input:\n",
90
91
  " #{text}\n",
91
92
  "\n",
@@ -96,6 +97,7 @@
96
97
  " #{context.final_result}\n",
97
98
  "\n",
98
99
  " ## History:\n",
100
+ " \n",
99
101
  " ```ruby\n",
100
102
  " #{context.histories.to_a}\n",
101
103
  " ```\n",
@@ -106,8 +108,8 @@
106
108
  },
107
109
  {
108
110
  "cell_type": "code",
109
- "execution_count": 5,
110
- "id": "3add85ed-2b49-4a5b-b625-eaf915825050",
111
+ "execution_count": 4,
112
+ "id": "4e5c17eb-1c13-4547-8a2e-d9aa886031a6",
111
113
  "metadata": {
112
114
  "tags": []
113
115
  },
@@ -116,20 +118,151 @@
116
118
  "name": "stdout",
117
119
  "output_type": "stream",
118
120
  "text": [
119
- "** call aiui weather **\n",
120
- " Input:\n",
121
- " 明天的天气怎么样\n",
122
- "\n",
123
- " Response:\n",
124
- " 调用工具:天气查询。\n",
125
- "\n",
126
- " Final Result:\n",
127
- " 明天北京市全天多云,气温16℃ ~ 28℃,空气质量良,有南风微风,气候温暖。\n",
128
- "\n",
129
- " History:\n",
130
- " [{:role=>\"user\", :content=>\"明天的天气怎么样\"}, {:role=>\"assistant\", \n",
131
- " :content=>\"明天北京市全天多云,气温16℃ ~ \n",
132
- " 28℃,空气质量良,有南风微风,气候温暖。\"}]\n",
121
+ "** call aiui weather **\n"
122
+ ]
123
+ },
124
+ {
125
+ "data": {
126
+ "text/html": [
127
+ "<style>.highlight table td { padding: 5px; }\n",
128
+ ".highlight table pre { margin: 0; }\n",
129
+ ".highlight, .highlight .w {\n",
130
+ " color: #24292f;\n",
131
+ " background-color: #f6f8fa;\n",
132
+ "}\n",
133
+ ".highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .kv {\n",
134
+ " color: #cf222e;\n",
135
+ "}\n",
136
+ ".highlight .gr {\n",
137
+ " color: #f6f8fa;\n",
138
+ "}\n",
139
+ ".highlight .gd {\n",
140
+ " color: #82071e;\n",
141
+ " background-color: #ffebe9;\n",
142
+ "}\n",
143
+ ".highlight .nb {\n",
144
+ " color: #953800;\n",
145
+ "}\n",
146
+ ".highlight .nc {\n",
147
+ " color: #953800;\n",
148
+ "}\n",
149
+ ".highlight .no {\n",
150
+ " color: #953800;\n",
151
+ "}\n",
152
+ ".highlight .nn {\n",
153
+ " color: #953800;\n",
154
+ "}\n",
155
+ ".highlight .sr {\n",
156
+ " color: #116329;\n",
157
+ "}\n",
158
+ ".highlight .na {\n",
159
+ " color: #116329;\n",
160
+ "}\n",
161
+ ".highlight .nt {\n",
162
+ " color: #116329;\n",
163
+ "}\n",
164
+ ".highlight .gi {\n",
165
+ " color: #116329;\n",
166
+ " background-color: #dafbe1;\n",
167
+ "}\n",
168
+ ".highlight .kc {\n",
169
+ " color: #0550ae;\n",
170
+ "}\n",
171
+ ".highlight .l, .highlight .ld, .highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx {\n",
172
+ " color: #0550ae;\n",
173
+ "}\n",
174
+ ".highlight .sb {\n",
175
+ " color: #0550ae;\n",
176
+ "}\n",
177
+ ".highlight .bp {\n",
178
+ " color: #0550ae;\n",
179
+ "}\n",
180
+ ".highlight .ne {\n",
181
+ " color: #0550ae;\n",
182
+ "}\n",
183
+ ".highlight .nl {\n",
184
+ " color: #0550ae;\n",
185
+ "}\n",
186
+ ".highlight .py {\n",
187
+ " color: #0550ae;\n",
188
+ "}\n",
189
+ ".highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi, .highlight .vm {\n",
190
+ " color: #0550ae;\n",
191
+ "}\n",
192
+ ".highlight .o, .highlight .ow {\n",
193
+ " color: #0550ae;\n",
194
+ "}\n",
195
+ ".highlight .gh {\n",
196
+ " color: #0550ae;\n",
197
+ " font-weight: bold;\n",
198
+ "}\n",
199
+ ".highlight .gu {\n",
200
+ " color: #0550ae;\n",
201
+ " font-weight: bold;\n",
202
+ "}\n",
203
+ ".highlight .s, .highlight .sa, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .sx, .highlight .s1, .highlight .ss {\n",
204
+ " color: #0a3069;\n",
205
+ "}\n",
206
+ ".highlight .nd {\n",
207
+ " color: #8250df;\n",
208
+ "}\n",
209
+ ".highlight .nf, .highlight .fm {\n",
210
+ " color: #8250df;\n",
211
+ "}\n",
212
+ ".highlight .err {\n",
213
+ " color: #f6f8fa;\n",
214
+ " background-color: #82071e;\n",
215
+ "}\n",
216
+ ".highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cp, .highlight .cpf, .highlight .c1, .highlight .cs {\n",
217
+ " color: #6e7781;\n",
218
+ "}\n",
219
+ ".highlight .gl {\n",
220
+ " color: #6e7781;\n",
221
+ "}\n",
222
+ ".highlight .gt {\n",
223
+ " color: #6e7781;\n",
224
+ "}\n",
225
+ ".highlight .ni {\n",
226
+ " color: #24292f;\n",
227
+ "}\n",
228
+ ".highlight .si {\n",
229
+ " color: #24292f;\n",
230
+ "}\n",
231
+ ".highlight .ge {\n",
232
+ " color: #24292f;\n",
233
+ " font-style: italic;\n",
234
+ "}\n",
235
+ ".highlight .gs {\n",
236
+ " color: #24292f;\n",
237
+ " font-weight: bold;\n",
238
+ "}</style>\n",
239
+ "<h2>Input:</h2>\n",
240
+ "\n",
241
+ "<p>明天的天气怎么样</p>\n",
242
+ "\n",
243
+ "<h2>Response:</h2>\n",
244
+ "\n",
245
+ "<p>调用工具:天气查询。</p>\n",
246
+ "\n",
247
+ "<h2>Final Result:</h2>\n",
248
+ "\n",
249
+ "<p>北京市明天全天小雨转多云,出门记得带伞,气温16℃ ~ 26℃,有南风转北风微风,气候温暖。</p>\n",
250
+ "\n",
251
+ "<h2>History:</h2>\n",
252
+ "<pre class=\"highlight\"><span class=\"p\">[{</span><span class=\"ss\">:role</span><span class=\"o\">=&gt;</span><span class=\"s2\">\"user\"</span><span class=\"p\">,</span> <span class=\"ss\">:content</span><span class=\"o\">=&gt;</span><span class=\"s2\">\"明天的天气怎么样\"</span><span class=\"p\">},</span> <span class=\"p\">{</span><span class=\"ss\">:role</span><span class=\"o\">=&gt;</span><span class=\"s2\">\"assistant\"</span><span class=\"p\">,</span> <span class=\"ss\">:content</span><span class=\"o\">=&gt;</span><span class=\"s2\">\"北京市明天全天小雨转多云,出门记得带伞,气温16℃ ~ 26℃,有南风转北风微风,气候温暖。\"</span><span class=\"p\">}]</span>\n",
253
+ "</pre>\n"
254
+ ],
255
+ "text/plain": [
256
+ "\"<style>.highlight table td { padding: 5px; }\\n.highlight table pre { margin: 0; }\\n.highlight, .highlight .w {\\n color: #24292f;\\n background-color: #f6f8fa;\\n}\\n.highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .kv {\\n color: #cf222e;\\n}\\n.highlight .gr {\\n color: #f6f8fa;\\n}\\n.highlight .gd {\\n color: #82071e;\\n background-color: #ffebe9;\\n}\\n.highlight .nb {\\n color: #953800;\\n}\\n.highlight .nc {\\n color: #953800;\\n}\\n.highlight .no {\\n color: #953800;\\n}\\n.highlight .nn {\\n color: #953800;\\n}\\n.highlight .sr {\\n color: #116329;\\n}\\n.highlight .na {\\n color: #116329;\\n}\\n.highlight .nt {\\n color: #116329;\\n}\\n.highlight .gi {\\n color: #116329;\\n background-color: #dafbe1;\\n}\\n.highlight .kc {\\n color: #0550ae;\\n}\\n.highlight .l, .highlight .ld, .highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx {\\n color: #0550ae;\\n}\\n.highlight .sb {\\n color: #0550ae;\\n}\\n.highlight .bp {\\n color: #0550ae;\\n}\\n.highlight .ne {\\n color: #0550ae;\\n}\\n.highlight .nl {\\n color: #0550ae;\\n}\\n.highlight .py {\\n color: #0550ae;\\n}\\n.highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi, .highlight .vm {\\n color: #0550ae;\\n}\\n.highlight .o, .highlight .ow {\\n color: #0550ae;\\n}\\n.highlight .gh {\\n color: #0550ae;\\n font-weight: bold;\\n}\\n.highlight .gu {\\n color: #0550ae;\\n font-weight: bold;\\n}\\n.highlight .s, .highlight .sa, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .sx, .highlight .s1, .highlight .ss {\\n color: #0a3069;\\n}\\n.highlight .nd {\\n color: #8250df;\\n}\\n.highlight .nf, .highlight .fm {\\n color: #8250df;\\n}\\n.highlight .err {\\n color: #f6f8fa;\\n background-color: #82071e;\\n}\\n.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cp, .highlight .cpf, .highlight .c1, .highlight .cs {\\n color: #6e7781;\\n}\\n.highlight .gl {\\n color: #6e7781;\\n}\\n.highlight .gt {\\n color: #6e7781;\\n}\\n.highlight .ni {\\n color: #24292f;\\n}\\n.highlight .si {\\n color: #24292f;\\n}\\n.highlight .ge {\\n color: #24292f;\\n font-style: italic;\\n}\\n.highlight .gs {\\n color: #24292f;\\n font-weight: bold;\\n}</style>\\n<h2>Input:</h2>\\n\\n<p>明天的天气怎么样</p>\\n\\n<h2>Response:</h2>\\n\\n<p>调用工具:天气查询。</p>\\n\\n<h2>Final Result:</h2>\\n\\n<p>北京市明天全天小雨转多云,出门记得带伞,气温16℃ ~ 26℃,有南风转北风微风,气候温暖。</p>\\n\\n<h2>History:</h2>\\n<pre class=\\\"highlight\\\"><span class=\\\"p\\\">[{</span><span class=\\\"ss\\\">:role</span><span class=\\\"o\\\">=&gt;</span><span class=\\\"s2\\\">\\\"user\\\"</span><span class=\\\"p\\\">,</span> <span class=\\\"ss\\\">:content</span><span class=\\\"o\\\">=&gt;</span><span class=\\\"s2\\\">\\\"明天的天气怎么样\\\"</span><span class=\\\"p\\\">},</span> <span class=\\\"p\\\">{</span><span class=\\\"ss\\\">:role</span><span class=\\\"o\\\">=&gt;</span><span class=\\\"s2\\\">\\\"assistant\\\"</span><span class=\\\"p\\\">,</span> <span class=\\\"ss\\\">:content</span><span class=\\\"o\\\">=&gt;</span><span class=\\\"s2\\\">\\\"北京市明天全天小雨转多云,出门记得带伞,气温16℃ ~ 26℃,有南风转北风微风,气候温暖。\\\"</span><span class=\\\"p\\\">}]</span>\\n</pre>\\n\""
257
+ ]
258
+ },
259
+ "metadata": {},
260
+ "output_type": "display_data"
261
+ },
262
+ {
263
+ "name": "stdout",
264
+ "output_type": "stream",
265
+ "text": [
133
266
  "\n",
134
267
  "\n",
135
268
  "\n"
@@ -139,19 +272,11 @@
139
272
  "source": [
140
273
  "input \"明天的天气怎么样\""
141
274
  ]
142
- },
143
- {
144
- "cell_type": "code",
145
- "execution_count": null,
146
- "id": "ca165db3-1711-41c3-85eb-3f7f02d04e0a",
147
- "metadata": {},
148
- "outputs": [],
149
- "source": []
150
275
  }
151
276
  ],
152
277
  "metadata": {
153
278
  "kernelspec": {
154
- "display_name": "Ruby 3.2.2",
279
+ "display_name": "Ruby 3.2.1",
155
280
  "language": "ruby",
156
281
  "name": "ruby"
157
282
  },
@@ -159,7 +284,7 @@
159
284
  "file_extension": ".rb",
160
285
  "mimetype": "application/x-ruby",
161
286
  "name": "ruby",
162
- "version": "3.2.2"
287
+ "version": "3.2.1"
163
288
  }
164
289
  },
165
290
  "nbformat": 4,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MJ
@@ -152,6 +152,26 @@ dependencies:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
154
  version: '3.6'
155
+ - !ruby/object:Gem::Dependency
156
+ name: rouge
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '4.1'
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: 4.1.1
165
+ type: :runtime
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '4.1'
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: 4.1.1
155
175
  - !ruby/object:Gem::Dependency
156
176
  name: thor
157
177
  requirement: !ruby/object:Gem::Requirement
@@ -248,6 +268,8 @@ files:
248
268
  - sig/luo/prompt_template.rbs
249
269
  - sig/luo/prompts.rbs
250
270
  - sig/luo/xinghuo.rbs
271
+ - templates/AppGemfile
272
+ - templates/NoteBookGemfile
251
273
  - templates/application.rb
252
274
  - templates/env
253
275
  - templates/init.rb