luo 0.2.0 → 0.2.1

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: 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