ruboty-ai_agent 0.2.0 → 0.4.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/AGENTS.md +8 -0
  3. data/CHANGELOG.md +21 -2
  4. data/Gemfile +2 -0
  5. data/README.md +2 -0
  6. data/Rakefile +2 -0
  7. data/bin/ruboty +2 -0
  8. data/lib/ruboty/ai_agent/actions/add_mcp.rb +7 -2
  9. data/lib/ruboty/ai_agent/actions/base.rb +11 -1
  10. data/lib/ruboty/ai_agent/actions/chat.rb +27 -6
  11. data/lib/ruboty/ai_agent/actions/list_ai_commands.rb +1 -1
  12. data/lib/ruboty/ai_agent/actions/list_mcp.rb +50 -3
  13. data/lib/ruboty/ai_agent/agent.rb +3 -3
  14. data/lib/ruboty/ai_agent/chat_thread_messages.rb +6 -3
  15. data/lib/ruboty/ai_agent/commands/base.rb +12 -7
  16. data/lib/ruboty/ai_agent/commands/prompt_command.rb +3 -4
  17. data/lib/ruboty/ai_agent/commands/usage.rb +1 -3
  18. data/lib/ruboty/ai_agent/commands.rb +6 -16
  19. data/lib/ruboty/ai_agent/database/query_methods.rb +1 -1
  20. data/lib/ruboty/ai_agent/llm/openai/model.rb +1 -1
  21. data/lib/ruboty/ai_agent/llm/openai.rb +1 -1
  22. data/lib/ruboty/ai_agent/mcp_clients.rb +2 -15
  23. data/lib/ruboty/ai_agent/request.rb +17 -0
  24. data/lib/ruboty/ai_agent/settings.rb +28 -0
  25. data/lib/ruboty/ai_agent/tool.rb +11 -3
  26. data/lib/ruboty/ai_agent/tool_definitions/base.rb +88 -0
  27. data/lib/ruboty/ai_agent/tool_definitions/bot_help.rb +89 -0
  28. data/lib/ruboty/ai_agent/tool_definitions/fetch.rb +142 -0
  29. data/lib/ruboty/ai_agent/tool_definitions/think.rb +41 -0
  30. data/lib/ruboty/ai_agent/tool_definitions.rb +23 -0
  31. data/lib/ruboty/ai_agent/user_mcp_client.rb +3 -2
  32. data/lib/ruboty/ai_agent/version.rb +1 -1
  33. data/lib/ruboty/ai_agent.rb +5 -0
  34. data/lib/ruboty/handlers/ai_agent.rb +4 -1
  35. data/script/generate-memorized-ivar-rbs.rb +27 -4
  36. data/sig/generated/ruboty/ai_agent/actions/base.rbs +4 -0
  37. data/sig/generated/ruboty/ai_agent/actions/chat.rbs +8 -0
  38. data/sig/generated/ruboty/ai_agent/actions/list_mcp.rbs +11 -0
  39. data/sig/generated/ruboty/ai_agent/agent.rbs +1 -1
  40. data/sig/generated/ruboty/ai_agent/chat_thread_messages.rbs +3 -2
  41. data/sig/generated/ruboty/ai_agent/commands/base.rbs +6 -5
  42. data/sig/generated/ruboty/ai_agent/commands/prompt_command.rbs +2 -3
  43. data/sig/generated/ruboty/ai_agent/commands.rbs +2 -3
  44. data/sig/generated/ruboty/ai_agent/mcp_clients.rbs +0 -5
  45. data/sig/generated/ruboty/ai_agent/request.rbs +23 -0
  46. data/sig/generated/ruboty/ai_agent/settings.rbs +21 -0
  47. data/sig/generated/ruboty/ai_agent/tool.rbs +9 -3
  48. data/sig/generated/ruboty/ai_agent/tool_definitions/base.rbs +54 -0
  49. data/sig/generated/ruboty/ai_agent/tool_definitions/bot_help.rbs +23 -0
  50. data/sig/generated/ruboty/ai_agent/tool_definitions/fetch.rbs +43 -0
  51. data/sig/generated/ruboty/ai_agent/tool_definitions/think.rbs +17 -0
  52. data/sig/generated/ruboty/ai_agent/tool_definitions.rbs +12 -0
  53. data/sig/generated/ruboty/ai_agent/user_mcp_client.rbs +4 -2
  54. data/sig/generated/ruboty/ai_agent.rbs +2 -0
  55. data/sig/generated-by-scripts/memorized_ivars.rbs +18 -0
  56. metadata +15 -1
@@ -0,0 +1,54 @@
1
+ # Generated from lib/ruboty/ai_agent/tool_definitions/base.rb with RBS::Inline
2
+
3
+ module Ruboty
4
+ module AiAgent
5
+ module ToolDefinitions
6
+ # Base class for tool definitions
7
+ # @abstract
8
+ class Base
9
+ type input_schema = Hash[String | Symbol, untyped]
10
+
11
+ def self.tool_name: () -> String?
12
+
13
+ def self.tool_name=: (String) -> String
14
+
15
+ def self.tool_title: () -> String?
16
+
17
+ def self.tool_title=: (String) -> String
18
+
19
+ def self.tool_description: () -> String?
20
+
21
+ def self.tool_description=: (String) -> String
22
+
23
+ def self.tool_input_schema: () -> input_schema?
24
+
25
+ def self.tool_input_schema=: (input_schema) -> input_schema
26
+
27
+ def self.available?: () -> boolish
28
+
29
+ def tool_name: () -> String
30
+
31
+ def tool_title: () -> String
32
+
33
+ def tool_description: () -> String
34
+
35
+ def tool_input_schema: () -> input_schema
36
+
37
+ # Return true if you want the tool not to produce call logs in the chat.
38
+ def silent?: () -> boolish
39
+
40
+ attr_reader request: Request
41
+
42
+ # @rbs request: Request
43
+ def initialize: (request: Request) -> untyped
44
+
45
+ # @abstract
46
+ # @rbs arguments: Hash[String, untyped]
47
+ # @rbs return: String?
48
+ def call: (Hash[String, untyped] arguments) -> String?
49
+
50
+ def to_tool: () -> Tool
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,23 @@
1
+ # Generated from lib/ruboty/ai_agent/tool_definitions/bot_help.rb with RBS::Inline
2
+
3
+ module Ruboty
4
+ module AiAgent
5
+ module ToolDefinitions
6
+ # Tool for retrieving Ruboty help information
7
+ class BotHelp < Base
8
+ # @rbs arguments: Hash[String, untyped]
9
+ # @rbs return: String?
10
+ def call: (Hash[String, untyped] arguments) -> String?
11
+
12
+ private
13
+
14
+ # @rbs filter: String?
15
+ # @rbs return: Array[String]
16
+ def filtered_descriptions: (String? filter) -> Array[String]
17
+
18
+ # @rbs return: Array[String]
19
+ def all_descriptions: () -> Array[String]
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,43 @@
1
+ # Generated from lib/ruboty/ai_agent/tool_definitions/fetch.rb with RBS::Inline
2
+
3
+ module Ruboty
4
+ module AiAgent
5
+ module ToolDefinitions
6
+ # Fetch and extract readable content from web pages using ruby-readability
7
+ class Fetch < Base
8
+ class FetchError < StandardError
9
+ end
10
+
11
+ @available: bool
12
+
13
+ def self.avaliable!: () -> untyped
14
+
15
+ def self.not_avaliable!: () -> untyped
16
+
17
+ def self.available?: () -> boolish
18
+
19
+ # @rbs arguments: Hash[String, untyped]
20
+ # @rbs return: String?
21
+ def call: (Hash[String, untyped] arguments) -> String?
22
+
23
+ private
24
+
25
+ # @rbs url: String
26
+ # @rbs return: String
27
+ def normalize_url: (String url) -> String
28
+
29
+ # @rbs url: String
30
+ # @rbs return: bool
31
+ def valid_url?: (String url) -> bool
32
+
33
+ # @rbs url: String
34
+ # @rbs return: String
35
+ def fetch_content: (String url) -> String
36
+
37
+ # @rbs content: String
38
+ # @rbs return: String
39
+ def extract_readable_content: (String content) -> String
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,17 @@
1
+ # Generated from lib/ruboty/ai_agent/tool_definitions/think.rb with RBS::Inline
2
+
3
+ module Ruboty
4
+ module AiAgent
5
+ module ToolDefinitions
6
+ # Tool
7
+ class Think < Base
8
+ # @rbs arguments: Hash[String, untyped]
9
+ # @rbs return: String?
10
+ def call: (Hash[String, untyped] arguments) -> String?
11
+
12
+ # @rbs override
13
+ def silent?: ...
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ # Generated from lib/ruboty/ai_agent/tool_definitions.rb with RBS::Inline
2
+
3
+ module Ruboty
4
+ module AiAgent
5
+ # Tool Definitions for AI Agent
6
+ module ToolDefinitions
7
+ # @rbs request: Request
8
+ # @rbs return: Array[Base]
9
+ def self.builtins: (request: Request) -> Array[Base]
10
+ end
11
+ end
12
+ end
@@ -46,12 +46,14 @@ module Ruboty
46
46
  # @rbs return: untyped
47
47
  def cleanup_session: () -> untyped
48
48
 
49
- private
50
-
51
49
  # @rbs return: McpConfiguration
52
50
  def configuration: () -> McpConfiguration
53
51
 
52
+ private
53
+
54
+ # @rbs %a{memorized}
54
55
  # @rbs return: HttpMcpClient
56
+ %a{memorized}
55
57
  def mcp_client: () -> HttpMcpClient
56
58
  end
57
59
  end
@@ -5,5 +5,7 @@ module Ruboty
5
5
  module AiAgent
6
6
  class Error < StandardError
7
7
  end
8
+
9
+ extend Settings::Accessor
8
10
  end
9
11
  end
@@ -13,6 +13,16 @@ module Ruboty
13
13
  end
14
14
  end
15
15
 
16
+ module Ruboty
17
+ module AiAgent
18
+ module Actions
19
+ class Chat
20
+ @request: Request
21
+ end
22
+ end
23
+ end
24
+ end
25
+
16
26
  module Ruboty
17
27
  module AiAgent
18
28
  class ChatThread
@@ -39,6 +49,14 @@ module Ruboty
39
49
  end
40
50
  end
41
51
 
52
+ module Ruboty
53
+ module AiAgent
54
+ class Settings
55
+ self.@instance: Ruboty::AiAgent::Settings
56
+ end
57
+ end
58
+ end
59
+
42
60
  module Ruboty
43
61
  module AiAgent
44
62
  class User
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboty-ai_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomoya Chiba
@@ -113,8 +113,15 @@ files:
113
113
  - lib/ruboty/ai_agent/prompt_command_definition.rb
114
114
  - lib/ruboty/ai_agent/record_set.rb
115
115
  - lib/ruboty/ai_agent/recordable.rb
116
+ - lib/ruboty/ai_agent/request.rb
117
+ - lib/ruboty/ai_agent/settings.rb
116
118
  - lib/ruboty/ai_agent/token_usage.rb
117
119
  - lib/ruboty/ai_agent/tool.rb
120
+ - lib/ruboty/ai_agent/tool_definitions.rb
121
+ - lib/ruboty/ai_agent/tool_definitions/base.rb
122
+ - lib/ruboty/ai_agent/tool_definitions/bot_help.rb
123
+ - lib/ruboty/ai_agent/tool_definitions/fetch.rb
124
+ - lib/ruboty/ai_agent/tool_definitions/think.rb
118
125
  - lib/ruboty/ai_agent/user.rb
119
126
  - lib/ruboty/ai_agent/user_ai_memories.rb
120
127
  - lib/ruboty/ai_agent/user_associations.rb
@@ -177,8 +184,15 @@ files:
177
184
  - sig/generated/ruboty/ai_agent/prompt_command_definition.rbs
178
185
  - sig/generated/ruboty/ai_agent/record_set.rbs
179
186
  - sig/generated/ruboty/ai_agent/recordable.rbs
187
+ - sig/generated/ruboty/ai_agent/request.rbs
188
+ - sig/generated/ruboty/ai_agent/settings.rbs
180
189
  - sig/generated/ruboty/ai_agent/token_usage.rbs
181
190
  - sig/generated/ruboty/ai_agent/tool.rbs
191
+ - sig/generated/ruboty/ai_agent/tool_definitions.rbs
192
+ - sig/generated/ruboty/ai_agent/tool_definitions/base.rbs
193
+ - sig/generated/ruboty/ai_agent/tool_definitions/bot_help.rbs
194
+ - sig/generated/ruboty/ai_agent/tool_definitions/fetch.rbs
195
+ - sig/generated/ruboty/ai_agent/tool_definitions/think.rbs
182
196
  - sig/generated/ruboty/ai_agent/user.rbs
183
197
  - sig/generated/ruboty/ai_agent/user_ai_memories.rbs
184
198
  - sig/generated/ruboty/ai_agent/user_associations.rbs