ruboty-ai_agent 0.1.0

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.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +45 -0
  5. data/AGENTS.md +22 -0
  6. data/CHANGELOG.md +3 -0
  7. data/CLAUDE.md +1 -0
  8. data/CODE_OF_CONDUCT.md +74 -0
  9. data/Gemfile +14 -0
  10. data/README.md +118 -0
  11. data/Rakefile +47 -0
  12. data/Steepfile +12 -0
  13. data/bin/console +15 -0
  14. data/bin/ruboty +34 -0
  15. data/bin/setup +8 -0
  16. data/lib/ruboty/ai_agent/actions/add_ai_command.rb +22 -0
  17. data/lib/ruboty/ai_agent/actions/add_ai_memory.rb +20 -0
  18. data/lib/ruboty/ai_agent/actions/add_mcp.rb +94 -0
  19. data/lib/ruboty/ai_agent/actions/base.rb +43 -0
  20. data/lib/ruboty/ai_agent/actions/chat.rb +64 -0
  21. data/lib/ruboty/ai_agent/actions/list_ai_commands.rb +19 -0
  22. data/lib/ruboty/ai_agent/actions/list_ai_memories.rb +18 -0
  23. data/lib/ruboty/ai_agent/actions/list_mcp.rb +18 -0
  24. data/lib/ruboty/ai_agent/actions/remove_ai_command.rb +18 -0
  25. data/lib/ruboty/ai_agent/actions/remove_ai_memory.rb +25 -0
  26. data/lib/ruboty/ai_agent/actions/remove_mcp.rb +24 -0
  27. data/lib/ruboty/ai_agent/actions/set_system_prompt.rb +31 -0
  28. data/lib/ruboty/ai_agent/actions/show_system_prompt.rb +30 -0
  29. data/lib/ruboty/ai_agent/actions.rb +22 -0
  30. data/lib/ruboty/ai_agent/agent.rb +71 -0
  31. data/lib/ruboty/ai_agent/cached_value.rb +43 -0
  32. data/lib/ruboty/ai_agent/chat_message.rb +60 -0
  33. data/lib/ruboty/ai_agent/chat_thread.rb +31 -0
  34. data/lib/ruboty/ai_agent/chat_thread_associations.rb +34 -0
  35. data/lib/ruboty/ai_agent/chat_thread_messages.rb +17 -0
  36. data/lib/ruboty/ai_agent/commands/base.rb +39 -0
  37. data/lib/ruboty/ai_agent/commands/clear.rb +29 -0
  38. data/lib/ruboty/ai_agent/commands/compact.rb +80 -0
  39. data/lib/ruboty/ai_agent/commands/usage.rb +52 -0
  40. data/lib/ruboty/ai_agent/commands.rb +33 -0
  41. data/lib/ruboty/ai_agent/database/query_methods.rb +84 -0
  42. data/lib/ruboty/ai_agent/database.rb +40 -0
  43. data/lib/ruboty/ai_agent/global_settings.rb +33 -0
  44. data/lib/ruboty/ai_agent/http_mcp_client.rb +215 -0
  45. data/lib/ruboty/ai_agent/llm/openai/model.rb +29 -0
  46. data/lib/ruboty/ai_agent/llm/openai.rb +181 -0
  47. data/lib/ruboty/ai_agent/llm/response.rb +21 -0
  48. data/lib/ruboty/ai_agent/llm.rb +11 -0
  49. data/lib/ruboty/ai_agent/mcp_clients.rb +48 -0
  50. data/lib/ruboty/ai_agent/mcp_configuration.rb +31 -0
  51. data/lib/ruboty/ai_agent/record_set.rb +71 -0
  52. data/lib/ruboty/ai_agent/recordable.rb +116 -0
  53. data/lib/ruboty/ai_agent/token_usage.rb +45 -0
  54. data/lib/ruboty/ai_agent/tool.rb +29 -0
  55. data/lib/ruboty/ai_agent/user.rb +52 -0
  56. data/lib/ruboty/ai_agent/user_ai_memories.rb +17 -0
  57. data/lib/ruboty/ai_agent/user_associations.rb +34 -0
  58. data/lib/ruboty/ai_agent/user_mcp_caches.rb +90 -0
  59. data/lib/ruboty/ai_agent/user_mcp_client.rb +93 -0
  60. data/lib/ruboty/ai_agent/user_mcp_configurations.rb +15 -0
  61. data/lib/ruboty/ai_agent/user_mcp_tools_caches.rb +14 -0
  62. data/lib/ruboty/ai_agent/version.rb +7 -0
  63. data/lib/ruboty/ai_agent.rb +40 -0
  64. data/lib/ruboty/handlers/ai_agent.rb +84 -0
  65. data/rbs_collection.yaml +23 -0
  66. data/ruboty-ai_agent.gemspec +49 -0
  67. data/script/generate-concern-rbs.rb +351 -0
  68. data/script/generate-data-rbs.rb +250 -0
  69. data/script/generate-memorized-ivar-rbs.rb +292 -0
  70. data/sig/generated/ruboty/ai_agent/actions/add_ai_command.rbs +16 -0
  71. data/sig/generated/ruboty/ai_agent/actions/add_ai_memory.rbs +14 -0
  72. data/sig/generated/ruboty/ai_agent/actions/add_mcp.rbs +26 -0
  73. data/sig/generated/ruboty/ai_agent/actions/base.rbs +34 -0
  74. data/sig/generated/ruboty/ai_agent/actions/chat.rbs +17 -0
  75. data/sig/generated/ruboty/ai_agent/actions/list_ai_commands.rbs +13 -0
  76. data/sig/generated/ruboty/ai_agent/actions/list_ai_memories.rbs +12 -0
  77. data/sig/generated/ruboty/ai_agent/actions/list_mcp.rbs +12 -0
  78. data/sig/generated/ruboty/ai_agent/actions/remove_ai_command.rbs +14 -0
  79. data/sig/generated/ruboty/ai_agent/actions/remove_ai_memory.rbs +14 -0
  80. data/sig/generated/ruboty/ai_agent/actions/remove_mcp.rbs +14 -0
  81. data/sig/generated/ruboty/ai_agent/actions/set_system_prompt.rbs +16 -0
  82. data/sig/generated/ruboty/ai_agent/actions/show_system_prompt.rbs +12 -0
  83. data/sig/generated/ruboty/ai_agent/actions.rbs +9 -0
  84. data/sig/generated/ruboty/ai_agent/agent.rbs +29 -0
  85. data/sig/generated/ruboty/ai_agent/cached_value.rbs +28 -0
  86. data/sig/generated/ruboty/ai_agent/chat_message.rbs +34 -0
  87. data/sig/generated/ruboty/ai_agent/chat_thread.rbs +22 -0
  88. data/sig/generated/ruboty/ai_agent/chat_thread_associations.rbs +21 -0
  89. data/sig/generated/ruboty/ai_agent/chat_thread_messages.rbs +13 -0
  90. data/sig/generated/ruboty/ai_agent/commands/base.rbs +40 -0
  91. data/sig/generated/ruboty/ai_agent/commands/clear.rbs +20 -0
  92. data/sig/generated/ruboty/ai_agent/commands/compact.rbs +30 -0
  93. data/sig/generated/ruboty/ai_agent/commands/usage.rbs +26 -0
  94. data/sig/generated/ruboty/ai_agent/commands.rbs +13 -0
  95. data/sig/generated/ruboty/ai_agent/database/query_methods.rbs +39 -0
  96. data/sig/generated/ruboty/ai_agent/database.rbs +27 -0
  97. data/sig/generated/ruboty/ai_agent/global_settings.rbs +23 -0
  98. data/sig/generated/ruboty/ai_agent/http_mcp_client.rbs +62 -0
  99. data/sig/generated/ruboty/ai_agent/llm/openai/model.rbs +21 -0
  100. data/sig/generated/ruboty/ai_agent/llm/openai.rbs +54 -0
  101. data/sig/generated/ruboty/ai_agent/llm/response.rbs +29 -0
  102. data/sig/generated/ruboty/ai_agent/llm.rbs +9 -0
  103. data/sig/generated/ruboty/ai_agent/mcp_clients.rbs +24 -0
  104. data/sig/generated/ruboty/ai_agent/mcp_configuration.rbs +35 -0
  105. data/sig/generated/ruboty/ai_agent/record_set.rbs +42 -0
  106. data/sig/generated/ruboty/ai_agent/recordable.rbs +56 -0
  107. data/sig/generated/ruboty/ai_agent/token_usage.rbs +30 -0
  108. data/sig/generated/ruboty/ai_agent/tool.rbs +27 -0
  109. data/sig/generated/ruboty/ai_agent/user.rbs +35 -0
  110. data/sig/generated/ruboty/ai_agent/user_ai_memories.rbs +11 -0
  111. data/sig/generated/ruboty/ai_agent/user_associations.rbs +21 -0
  112. data/sig/generated/ruboty/ai_agent/user_mcp_caches.rbs +44 -0
  113. data/sig/generated/ruboty/ai_agent/user_mcp_client.rbs +58 -0
  114. data/sig/generated/ruboty/ai_agent/user_mcp_configurations.rbs +11 -0
  115. data/sig/generated/ruboty/ai_agent/user_mcp_tools_caches.rbs +11 -0
  116. data/sig/generated/ruboty/ai_agent/version.rbs +7 -0
  117. data/sig/generated/ruboty/ai_agent.rbs +9 -0
  118. data/sig/generated/ruboty/handlers/ai_agent.rbs +32 -0
  119. data/sig/generated-by-scripts/concerns.rbs +27 -0
  120. data/sig/generated-by-scripts/memorized_ivars.rbs +42 -0
  121. data/sig-lib/event_stream_parser/event_stream_parser.rbs +21 -0
  122. data/sig-lib/mem/mem.rbs +19 -0
  123. data/sig-lib/ruboty/ruboty.rbs +421 -0
  124. metadata +263 -0
@@ -0,0 +1,421 @@
1
+ module Ruboty
2
+ extend Mem
3
+
4
+ def self.actions: () -> untyped
5
+
6
+ def self.die: (untyped message) -> untyped
7
+
8
+ alias self.handlers self.handlers_with_memoize
9
+
10
+ def self.handlers=: (untyped value) -> untyped
11
+
12
+ def self.handlers_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
13
+
14
+ alias self.handlers_without_memoize self.handlers
15
+
16
+ def self.logger: () -> untyped
17
+
18
+ def self.unmemoize_handlers: () -> untyped
19
+
20
+ VERSION: ::String
21
+
22
+ class Action
23
+ def self.prefix_pattern: (untyped robot_name) -> untyped
24
+
25
+ def <=>: (untyped action) -> untyped
26
+
27
+ def all?: () -> untyped
28
+
29
+ def call: (untyped handler, untyped message, ?untyped options) -> untyped
30
+
31
+ def description: () -> untyped
32
+
33
+ def hidden?: () -> untyped
34
+
35
+ def missing?: () -> untyped
36
+
37
+ def name: () -> untyped
38
+
39
+ def options: () -> untyped
40
+
41
+ def pattern: () -> untyped
42
+
43
+ private
44
+
45
+ def initialize: (untyped pattern, ?untyped options) -> void
46
+
47
+ def pattern_with: (untyped robot_name) -> untyped
48
+ end
49
+
50
+ module Actions
51
+ class Base
52
+ def message: () -> untyped
53
+
54
+ private
55
+
56
+ def initialize: (untyped message) -> void
57
+ end
58
+
59
+ class Help < ::Ruboty::Actions::Base
60
+ def call: () -> untyped
61
+
62
+ private
63
+
64
+ def all_descriptions: () -> untyped
65
+
66
+ def filtered_descriptions: () -> untyped
67
+ end
68
+
69
+ class Ping < ::Ruboty::Actions::Base
70
+ def call: () -> untyped
71
+
72
+ private
73
+
74
+ def ping: () -> untyped
75
+
76
+ def pong: () -> untyped
77
+ end
78
+
79
+ class Whoami < ::Ruboty::Actions::Base
80
+ def call: () -> untyped
81
+ end
82
+ end
83
+
84
+ class AdapterBuilder
85
+ def self.adapter_classes: () -> untyped
86
+
87
+ def build: () -> untyped
88
+
89
+ def robot: () -> untyped
90
+
91
+ private
92
+
93
+ def adapter_class: () -> untyped
94
+
95
+ def initialize: (untyped robot) -> void
96
+ end
97
+
98
+ module Adapters
99
+ class Base
100
+ include Ruboty::Env::Validatable
101
+
102
+ extend Ruboty::Env::Validatable::ClassMethods
103
+
104
+ def self.inherited: (untyped child_class) -> untyped
105
+
106
+ def robot: () -> untyped
107
+
108
+ private
109
+
110
+ def initialize: (untyped robot) -> void
111
+ end
112
+
113
+ class Shell < ::Ruboty::Adapters::Base
114
+ def run: () -> untyped
115
+
116
+ def say: (untyped message) -> untyped
117
+
118
+ def stopped: () -> untyped
119
+
120
+ def stopped=: (untyped) -> untyped
121
+
122
+ private
123
+
124
+ def explain: () -> untyped
125
+
126
+ def history_file: () -> untyped
127
+
128
+ def history_pathname: () -> untyped
129
+
130
+ def initialize: (*untyped args) -> void
131
+
132
+ def listen: () -> untyped
133
+
134
+ def read: () -> untyped
135
+
136
+ def remember: () -> untyped
137
+
138
+ def step: () -> untyped
139
+
140
+ def stop: () -> untyped
141
+
142
+ def stopped?: () -> untyped
143
+
144
+ PROMPT: ::String
145
+
146
+ SOURCE: ::String
147
+
148
+ USAGE: ::String
149
+ end
150
+ end
151
+
152
+ module Brains
153
+ class Base
154
+ include Ruboty::Env::Validatable
155
+
156
+ extend Ruboty::Env::Validatable::ClassMethods
157
+
158
+ def self.brain_classes: () -> untyped
159
+
160
+ def self.find_class: () -> untyped
161
+
162
+ def self.inherited: (untyped child) -> untyped
163
+
164
+ def data: () -> untyped
165
+
166
+ private
167
+
168
+ def initialize: () -> void
169
+ end
170
+
171
+ class Memory < ::Ruboty::Brains::Base
172
+ def data: () -> untyped
173
+ end
174
+ end
175
+
176
+ class CommandBuilder
177
+ include Mem
178
+
179
+ extend Mem::ClassMethods
180
+
181
+ def arguments: () -> untyped
182
+
183
+ def build: () -> untyped
184
+
185
+ private
186
+
187
+ def command_class: () -> untyped
188
+
189
+ def initialize: (?untyped arguments) -> void
190
+
191
+ alias options options_with_memoize
192
+
193
+ def options_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
194
+
195
+ alias options_without_memoize options
196
+
197
+ def unmemoize_options: () -> untyped
198
+ end
199
+
200
+ module Commands
201
+ class Base
202
+ def options: () -> untyped
203
+
204
+ private
205
+
206
+ def initialize: (untyped options) -> void
207
+ end
208
+
209
+ class Generate < ::Ruboty::Commands::Base
210
+ def call: () -> untyped
211
+
212
+ private
213
+
214
+ def copy: () -> untyped
215
+
216
+ def destination_path: () -> untyped
217
+
218
+ def die: () -> untyped
219
+
220
+ def templates_directory_path: () -> untyped
221
+
222
+ def valid?: () -> untyped
223
+ end
224
+
225
+ class Help < ::Ruboty::Commands::Base
226
+ def call: () -> untyped
227
+ end
228
+
229
+ class Run < ::Ruboty::Commands::Base
230
+ def call: () -> untyped
231
+ end
232
+ end
233
+
234
+ class Env
235
+ def description: () -> untyped
236
+
237
+ def key: () -> untyped
238
+
239
+ def options: () -> untyped
240
+
241
+ def to_usage: () -> untyped
242
+
243
+ def validate: () -> untyped
244
+
245
+ private
246
+
247
+ def error: () -> untyped
248
+
249
+ def initialize: (untyped key, untyped description, ?untyped options) -> void
250
+
251
+ def missing?: () -> untyped
252
+
253
+ def required?: () -> untyped
254
+
255
+ class MissingRequiredKeyError < ::StandardError
256
+ end
257
+
258
+ module Validatable
259
+ extend ActiveSupport::Concern
260
+
261
+ def validate: () -> untyped
262
+
263
+ def validate!: () -> untyped
264
+
265
+ module ClassMethods
266
+ def env: (untyped key, untyped description, ?untyped options) -> untyped
267
+
268
+ def envs: () -> untyped
269
+
270
+ def usage: () -> untyped
271
+ end
272
+ end
273
+
274
+ class ValidationError < ::StandardError
275
+ end
276
+ end
277
+
278
+ module Handlers
279
+ class Base
280
+ include Ruboty::Env::Validatable
281
+
282
+ extend Ruboty::Env::Validatable::ClassMethods
283
+
284
+ extend Mem
285
+
286
+ alias self.actions self.actions_with_memoize
287
+
288
+ def self.actions=: (untyped value) -> untyped
289
+
290
+ def self.actions_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
291
+
292
+ alias self.actions_without_memoize self.actions
293
+
294
+ def self.inherited: (untyped child) -> untyped
295
+
296
+ def self.on: (untyped pattern, ?untyped options) -> untyped
297
+
298
+ def self.unmemoize_actions: () -> untyped
299
+
300
+ def call: (untyped message, ?untyped options) -> untyped
301
+
302
+ def robot: () -> untyped
303
+
304
+ private
305
+
306
+ def initialize: (untyped robot) -> void
307
+ end
308
+
309
+ class Help < ::Ruboty::Handlers::Base
310
+ def help: (untyped message) -> untyped
311
+ end
312
+
313
+ class Ping < ::Ruboty::Handlers::Base
314
+ def ping: (untyped message) -> untyped
315
+ end
316
+
317
+ class Whoami < ::Ruboty::Handlers::Base
318
+ def whoami: (untyped message) -> untyped
319
+ end
320
+ end
321
+
322
+ class Message
323
+ def []: (untyped index) -> untyped
324
+
325
+ def body: () -> untyped
326
+
327
+ def from: () -> untyped
328
+
329
+ def from_name: () -> untyped
330
+
331
+ def match: (untyped pattern) -> untyped
332
+
333
+ def match_data: () -> untyped
334
+
335
+ def original: () -> untyped
336
+
337
+ def reply: (untyped body, ?untyped options) -> untyped
338
+
339
+ def robot: () -> untyped
340
+
341
+ def to: () -> untyped
342
+
343
+ private
344
+
345
+ def initialize: (untyped original) -> void
346
+ end
347
+
348
+ class Robot
349
+ include Mem
350
+
351
+ extend Mem::ClassMethods
352
+
353
+ alias brain brain_with_memoize
354
+
355
+ def brain=: (untyped value) -> untyped
356
+
357
+ def brain_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
358
+
359
+ alias brain_without_memoize brain
360
+
361
+ def name: () -> untyped
362
+
363
+ def options: () -> untyped
364
+
365
+ def receive: (untyped attributes) -> untyped
366
+
367
+ def run: () -> untyped
368
+
369
+ def say: (*untyped args) -> untyped
370
+
371
+ def unmemoize_brain: () -> untyped
372
+
373
+ private
374
+
375
+ def adapt: () -> untyped
376
+
377
+ alias adapter adapter_with_memoize
378
+
379
+ def adapter_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
380
+
381
+ alias adapter_without_memoize adapter
382
+
383
+ def bundle: () -> untyped
384
+
385
+ def daemon: () -> untyped
386
+
387
+ def dotenv: () -> untyped
388
+
389
+ alias env env_with_memoize
390
+
391
+ def env_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
392
+
393
+ alias env_without_memoize env
394
+
395
+ def handle: () -> untyped
396
+
397
+ alias handlers handlers_with_memoize
398
+
399
+ def handlers_with_memoize: (*untyped args) { (*untyped) -> untyped } -> untyped
400
+
401
+ alias handlers_without_memoize handlers
402
+
403
+ def initialize: (?untyped options) -> void
404
+
405
+ def pid: () -> untyped
406
+
407
+ def remember: () -> untyped
408
+
409
+ def setup: () -> untyped
410
+
411
+ def unmemoize_adapter: () -> untyped
412
+
413
+ def unmemoize_env: () -> untyped
414
+
415
+ def unmemoize_handlers: () -> untyped
416
+
417
+ DEFAULT_ENV: ::String
418
+
419
+ DEFAULT_ROBOT_NAME: ::String
420
+ end
421
+ end
metadata ADDED
@@ -0,0 +1,263 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruboty-ai_agent
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tomoya Chiba
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bundler
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rake
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '13'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '13'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rspec
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: webmock
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: event_stream_parser
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: openai
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.22.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.22.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: ruboty
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.3'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.3'
110
+ description: A Ruboty plugin that uses AI to generate responses.
111
+ email:
112
+ - tomo.asleep@gmail.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - ".gitignore"
118
+ - ".rspec"
119
+ - ".rubocop.yml"
120
+ - AGENTS.md
121
+ - CHANGELOG.md
122
+ - CLAUDE.md
123
+ - CODE_OF_CONDUCT.md
124
+ - Gemfile
125
+ - README.md
126
+ - Rakefile
127
+ - Steepfile
128
+ - bin/console
129
+ - bin/ruboty
130
+ - bin/setup
131
+ - lib/ruboty/ai_agent.rb
132
+ - lib/ruboty/ai_agent/actions.rb
133
+ - lib/ruboty/ai_agent/actions/add_ai_command.rb
134
+ - lib/ruboty/ai_agent/actions/add_ai_memory.rb
135
+ - lib/ruboty/ai_agent/actions/add_mcp.rb
136
+ - lib/ruboty/ai_agent/actions/base.rb
137
+ - lib/ruboty/ai_agent/actions/chat.rb
138
+ - lib/ruboty/ai_agent/actions/list_ai_commands.rb
139
+ - lib/ruboty/ai_agent/actions/list_ai_memories.rb
140
+ - lib/ruboty/ai_agent/actions/list_mcp.rb
141
+ - lib/ruboty/ai_agent/actions/remove_ai_command.rb
142
+ - lib/ruboty/ai_agent/actions/remove_ai_memory.rb
143
+ - lib/ruboty/ai_agent/actions/remove_mcp.rb
144
+ - lib/ruboty/ai_agent/actions/set_system_prompt.rb
145
+ - lib/ruboty/ai_agent/actions/show_system_prompt.rb
146
+ - lib/ruboty/ai_agent/agent.rb
147
+ - lib/ruboty/ai_agent/cached_value.rb
148
+ - lib/ruboty/ai_agent/chat_message.rb
149
+ - lib/ruboty/ai_agent/chat_thread.rb
150
+ - lib/ruboty/ai_agent/chat_thread_associations.rb
151
+ - lib/ruboty/ai_agent/chat_thread_messages.rb
152
+ - lib/ruboty/ai_agent/commands.rb
153
+ - lib/ruboty/ai_agent/commands/base.rb
154
+ - lib/ruboty/ai_agent/commands/clear.rb
155
+ - lib/ruboty/ai_agent/commands/compact.rb
156
+ - lib/ruboty/ai_agent/commands/usage.rb
157
+ - lib/ruboty/ai_agent/database.rb
158
+ - lib/ruboty/ai_agent/database/query_methods.rb
159
+ - lib/ruboty/ai_agent/global_settings.rb
160
+ - lib/ruboty/ai_agent/http_mcp_client.rb
161
+ - lib/ruboty/ai_agent/llm.rb
162
+ - lib/ruboty/ai_agent/llm/openai.rb
163
+ - lib/ruboty/ai_agent/llm/openai/model.rb
164
+ - lib/ruboty/ai_agent/llm/response.rb
165
+ - lib/ruboty/ai_agent/mcp_clients.rb
166
+ - lib/ruboty/ai_agent/mcp_configuration.rb
167
+ - lib/ruboty/ai_agent/record_set.rb
168
+ - lib/ruboty/ai_agent/recordable.rb
169
+ - lib/ruboty/ai_agent/token_usage.rb
170
+ - lib/ruboty/ai_agent/tool.rb
171
+ - lib/ruboty/ai_agent/user.rb
172
+ - lib/ruboty/ai_agent/user_ai_memories.rb
173
+ - lib/ruboty/ai_agent/user_associations.rb
174
+ - lib/ruboty/ai_agent/user_mcp_caches.rb
175
+ - lib/ruboty/ai_agent/user_mcp_client.rb
176
+ - lib/ruboty/ai_agent/user_mcp_configurations.rb
177
+ - lib/ruboty/ai_agent/user_mcp_tools_caches.rb
178
+ - lib/ruboty/ai_agent/version.rb
179
+ - lib/ruboty/handlers/ai_agent.rb
180
+ - rbs_collection.yaml
181
+ - ruboty-ai_agent.gemspec
182
+ - script/generate-concern-rbs.rb
183
+ - script/generate-data-rbs.rb
184
+ - script/generate-memorized-ivar-rbs.rb
185
+ - sig-lib/event_stream_parser/event_stream_parser.rbs
186
+ - sig-lib/mem/mem.rbs
187
+ - sig-lib/ruboty/ruboty.rbs
188
+ - sig/generated-by-scripts/concerns.rbs
189
+ - sig/generated-by-scripts/memorized_ivars.rbs
190
+ - sig/generated/ruboty/ai_agent.rbs
191
+ - sig/generated/ruboty/ai_agent/actions.rbs
192
+ - sig/generated/ruboty/ai_agent/actions/add_ai_command.rbs
193
+ - sig/generated/ruboty/ai_agent/actions/add_ai_memory.rbs
194
+ - sig/generated/ruboty/ai_agent/actions/add_mcp.rbs
195
+ - sig/generated/ruboty/ai_agent/actions/base.rbs
196
+ - sig/generated/ruboty/ai_agent/actions/chat.rbs
197
+ - sig/generated/ruboty/ai_agent/actions/list_ai_commands.rbs
198
+ - sig/generated/ruboty/ai_agent/actions/list_ai_memories.rbs
199
+ - sig/generated/ruboty/ai_agent/actions/list_mcp.rbs
200
+ - sig/generated/ruboty/ai_agent/actions/remove_ai_command.rbs
201
+ - sig/generated/ruboty/ai_agent/actions/remove_ai_memory.rbs
202
+ - sig/generated/ruboty/ai_agent/actions/remove_mcp.rbs
203
+ - sig/generated/ruboty/ai_agent/actions/set_system_prompt.rbs
204
+ - sig/generated/ruboty/ai_agent/actions/show_system_prompt.rbs
205
+ - sig/generated/ruboty/ai_agent/agent.rbs
206
+ - sig/generated/ruboty/ai_agent/cached_value.rbs
207
+ - sig/generated/ruboty/ai_agent/chat_message.rbs
208
+ - sig/generated/ruboty/ai_agent/chat_thread.rbs
209
+ - sig/generated/ruboty/ai_agent/chat_thread_associations.rbs
210
+ - sig/generated/ruboty/ai_agent/chat_thread_messages.rbs
211
+ - sig/generated/ruboty/ai_agent/commands.rbs
212
+ - sig/generated/ruboty/ai_agent/commands/base.rbs
213
+ - sig/generated/ruboty/ai_agent/commands/clear.rbs
214
+ - sig/generated/ruboty/ai_agent/commands/compact.rbs
215
+ - sig/generated/ruboty/ai_agent/commands/usage.rbs
216
+ - sig/generated/ruboty/ai_agent/database.rbs
217
+ - sig/generated/ruboty/ai_agent/database/query_methods.rbs
218
+ - sig/generated/ruboty/ai_agent/global_settings.rbs
219
+ - sig/generated/ruboty/ai_agent/http_mcp_client.rbs
220
+ - sig/generated/ruboty/ai_agent/llm.rbs
221
+ - sig/generated/ruboty/ai_agent/llm/openai.rbs
222
+ - sig/generated/ruboty/ai_agent/llm/openai/model.rbs
223
+ - sig/generated/ruboty/ai_agent/llm/response.rbs
224
+ - sig/generated/ruboty/ai_agent/mcp_clients.rbs
225
+ - sig/generated/ruboty/ai_agent/mcp_configuration.rbs
226
+ - sig/generated/ruboty/ai_agent/record_set.rbs
227
+ - sig/generated/ruboty/ai_agent/recordable.rbs
228
+ - sig/generated/ruboty/ai_agent/token_usage.rbs
229
+ - sig/generated/ruboty/ai_agent/tool.rbs
230
+ - sig/generated/ruboty/ai_agent/user.rbs
231
+ - sig/generated/ruboty/ai_agent/user_ai_memories.rbs
232
+ - sig/generated/ruboty/ai_agent/user_associations.rbs
233
+ - sig/generated/ruboty/ai_agent/user_mcp_caches.rbs
234
+ - sig/generated/ruboty/ai_agent/user_mcp_client.rbs
235
+ - sig/generated/ruboty/ai_agent/user_mcp_configurations.rbs
236
+ - sig/generated/ruboty/ai_agent/user_mcp_tools_caches.rbs
237
+ - sig/generated/ruboty/ai_agent/version.rbs
238
+ - sig/generated/ruboty/handlers/ai_agent.rbs
239
+ homepage: https://github.com/tomoasleep/ruboty-ai_agent
240
+ licenses: []
241
+ metadata:
242
+ allowed_push_host: https://rubygems.org
243
+ homepage_uri: https://github.com/tomoasleep/ruboty-ai_agent
244
+ source_code_uri: https://github.com/tomoasleep/ruboty-ai_agent
245
+ changelog_uri: https://github.com/tomoasleep/ruboty-ai_agent/blob/main/CHANGELOG.md
246
+ rdoc_options: []
247
+ require_paths:
248
+ - lib
249
+ required_ruby_version: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: 3.1.0
254
+ required_rubygems_version: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ requirements: []
260
+ rubygems_version: 3.7.1
261
+ specification_version: 4
262
+ summary: A Ruboty plugin that uses AI to generate responses.
263
+ test_files: []