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.
- checksums.yaml +4 -4
- data/AGENTS.md +8 -0
- data/CHANGELOG.md +21 -2
- data/Gemfile +2 -0
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/bin/ruboty +2 -0
- data/lib/ruboty/ai_agent/actions/add_mcp.rb +7 -2
- data/lib/ruboty/ai_agent/actions/base.rb +11 -1
- data/lib/ruboty/ai_agent/actions/chat.rb +27 -6
- data/lib/ruboty/ai_agent/actions/list_ai_commands.rb +1 -1
- data/lib/ruboty/ai_agent/actions/list_mcp.rb +50 -3
- data/lib/ruboty/ai_agent/agent.rb +3 -3
- data/lib/ruboty/ai_agent/chat_thread_messages.rb +6 -3
- data/lib/ruboty/ai_agent/commands/base.rb +12 -7
- data/lib/ruboty/ai_agent/commands/prompt_command.rb +3 -4
- data/lib/ruboty/ai_agent/commands/usage.rb +1 -3
- data/lib/ruboty/ai_agent/commands.rb +6 -16
- data/lib/ruboty/ai_agent/database/query_methods.rb +1 -1
- data/lib/ruboty/ai_agent/llm/openai/model.rb +1 -1
- data/lib/ruboty/ai_agent/llm/openai.rb +1 -1
- data/lib/ruboty/ai_agent/mcp_clients.rb +2 -15
- data/lib/ruboty/ai_agent/request.rb +17 -0
- data/lib/ruboty/ai_agent/settings.rb +28 -0
- data/lib/ruboty/ai_agent/tool.rb +11 -3
- data/lib/ruboty/ai_agent/tool_definitions/base.rb +88 -0
- data/lib/ruboty/ai_agent/tool_definitions/bot_help.rb +89 -0
- data/lib/ruboty/ai_agent/tool_definitions/fetch.rb +142 -0
- data/lib/ruboty/ai_agent/tool_definitions/think.rb +41 -0
- data/lib/ruboty/ai_agent/tool_definitions.rb +23 -0
- data/lib/ruboty/ai_agent/user_mcp_client.rb +3 -2
- data/lib/ruboty/ai_agent/version.rb +1 -1
- data/lib/ruboty/ai_agent.rb +5 -0
- data/lib/ruboty/handlers/ai_agent.rb +4 -1
- data/script/generate-memorized-ivar-rbs.rb +27 -4
- data/sig/generated/ruboty/ai_agent/actions/base.rbs +4 -0
- data/sig/generated/ruboty/ai_agent/actions/chat.rbs +8 -0
- data/sig/generated/ruboty/ai_agent/actions/list_mcp.rbs +11 -0
- data/sig/generated/ruboty/ai_agent/agent.rbs +1 -1
- data/sig/generated/ruboty/ai_agent/chat_thread_messages.rbs +3 -2
- data/sig/generated/ruboty/ai_agent/commands/base.rbs +6 -5
- data/sig/generated/ruboty/ai_agent/commands/prompt_command.rbs +2 -3
- data/sig/generated/ruboty/ai_agent/commands.rbs +2 -3
- data/sig/generated/ruboty/ai_agent/mcp_clients.rbs +0 -5
- data/sig/generated/ruboty/ai_agent/request.rbs +23 -0
- data/sig/generated/ruboty/ai_agent/settings.rbs +21 -0
- data/sig/generated/ruboty/ai_agent/tool.rbs +9 -3
- data/sig/generated/ruboty/ai_agent/tool_definitions/base.rbs +54 -0
- data/sig/generated/ruboty/ai_agent/tool_definitions/bot_help.rbs +23 -0
- data/sig/generated/ruboty/ai_agent/tool_definitions/fetch.rbs +43 -0
- data/sig/generated/ruboty/ai_agent/tool_definitions/think.rbs +17 -0
- data/sig/generated/ruboty/ai_agent/tool_definitions.rbs +12 -0
- data/sig/generated/ruboty/ai_agent/user_mcp_client.rbs +4 -2
- data/sig/generated/ruboty/ai_agent.rbs +2 -0
- data/sig/generated-by-scripts/memorized_ivars.rbs +18 -0
- 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
|
@@ -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.
|
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
|