acp-sdk 0.3.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/CHANGELOG.md +13 -0
- data/README.md +1 -1
- data/lib/acp/agent_connection/client.rb +2 -0
- data/lib/acp/agent_connection/optional_method/logout.rb +21 -0
- data/lib/acp/agent_connection.rb +3 -1
- data/lib/acp/client_connection.rb +2 -0
- data/lib/acp/request_error.rb +9 -0
- data/lib/acp/types/session_update/tool_call.rb +8 -0
- data/lib/acp/types/session_update/tool_call_update.rb +8 -0
- data/lib/acp/types/tool_call.rb +8 -0
- data/lib/acp/types/tool_call_update.rb +8 -0
- data/lib/acp/version.rb +1 -1
- data/sig/generated/acp/agent_connection/optional_method/logout.rbs +13 -0
- data/sig/generated/acp/request_error.rbs +7 -0
- data/sig/generated/acp/types/session_update/tool_call.rbs +5 -1
- data/sig/generated/acp/types/session_update/tool_call_update.rbs +5 -1
- data/sig/generated/acp/types/tool_call.rbs +5 -1
- data/sig/generated/acp/types/tool_call_update.rbs +5 -1
- data/sig/manual/acp/agent_connection/optional_method/logout.rbs +6 -0
- data/sig/manual/acp/agent_connection.rbs +5 -0
- metadata +4 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f0121ff621c45deb5578a15051611ea98d8d174193528c3df214fe4e036561ff
|
|
4
|
+
data.tar.gz: e26701095772e5bbf41a18a8e2bc9f4ac9609657aae1dee7c82891de6cf5b48c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 66f390b3cf58c661064fe12ca5c7bbf04f560a81187f8cd37cce6d820870eb9f83717b655d04305a9a926e3cc08af618c1956acb7c2425899d2d3238e05d2651
|
|
7
|
+
data.tar.gz: 13853bc47c5c15a249296d9418fb951f52d512fea28f92fe9bf601c1a3e43d98840cbbbbfc181ff53150572db0393388553bf27f3c1746ca135f0467905d4270
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.0](https://github.com/bottrall/acp-sdk/compare/v0.3.0...v0.4.0) (2026-10-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* bump the vendored schema to v1.24.1 ([#58](https://github.com/bottrall/acp-sdk/issues/58)) ([56d8505](https://github.com/bottrall/acp-sdk/commit/56d85057a1c34f1a089580a78b7b66973c92a9e8))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* return a RequestError for malformed peer responses ([#57](https://github.com/bottrall/acp-sdk/issues/57)) ([e52d479](https://github.com/bottrall/acp-sdk/commit/e52d479ce8cd6de37f753e7580d5562f1ace2d7d)), closes [#27](https://github.com/bottrall/acp-sdk/issues/27)
|
|
14
|
+
* route logout on ACP::AgentConnection ([#55](https://github.com/bottrall/acp-sdk/issues/55)) ([3b2b144](https://github.com/bottrall/acp-sdk/commit/3b2b1444c502380a058231884c66efe26bb3770a)), closes [#26](https://github.com/bottrall/acp-sdk/issues/26)
|
|
15
|
+
|
|
3
16
|
## [0.3.0](https://github.com/bottrall/acp-sdk/compare/v0.2.0...v0.3.0) (2026-10-02)
|
|
4
17
|
|
|
5
18
|
|
data/README.md
CHANGED
|
@@ -48,7 +48,7 @@ connection.start.join
|
|
|
48
48
|
|
|
49
49
|
The agent's contract:
|
|
50
50
|
|
|
51
|
-
- It defines `new_session`, `prompt` and `cancel`. `load_session`, `list_sessions`, `resume_session`, `close_session` and `delete_session` are required only when `capabilities` advertises `load_session` or `session_capabilities.list`, `.resume`, `.close` or `.delete`, and `authenticate` only when `auth_methods` is non-empty
|
|
51
|
+
- It defines `new_session`, `prompt` and `cancel`. `load_session`, `list_sessions`, `resume_session`, `close_session` and `delete_session` are required only when `capabilities` advertises `load_session` or `session_capabilities.list`, `.resume`, `.close` or `.delete`, and `authenticate` only when `auth_methods` is non-empty, and `logout` only when `capabilities` advertises `auth.logout`; `start` raises `ArgumentError` when one is advertised but missing, and a method that is not advertised is answered with `-32601`. `change_session_mode` and `change_session_config_option` are optional, since modes and config options are offered per session rather than in `initialize`; `session/set_mode` and `session/set_config_option` are answered with `-32601` when the agent does not define them. `session_created`, if defined, runs right after the `session/new` reply is sent.
|
|
52
52
|
- Each request method returns its response type or an `ACP::RequestError`, which is sent as the error reply. Params that do not match the schema are answered with `-32602` before the agent sees them.
|
|
53
53
|
- `cancel` runs on the transport's reader thread, so it must return quickly: set a flag and let the prompt notice it.
|
|
54
54
|
- After a cancel, the agent must itself end the turn with `stopReason: cancelled`. `ACP::AgentConnection` does not enforce it.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ACP::AgentConnection::OptionalMethod::Logout
|
|
4
|
+
extend self
|
|
5
|
+
|
|
6
|
+
# @rbs return: String
|
|
7
|
+
def rpc_method
|
|
8
|
+
'logout'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# @rbs return: Symbol
|
|
12
|
+
def agent_method
|
|
13
|
+
:logout
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @rbs initialize_response: ACP::Types::InitializeResponse
|
|
17
|
+
# @rbs return: bool
|
|
18
|
+
def advertised?(initialize_response)
|
|
19
|
+
initialize_response.agent_capabilities&.auth&.logout ? true : false
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/acp/agent_connection.rb
CHANGED
|
@@ -12,7 +12,8 @@ class ACP::AgentConnection
|
|
|
12
12
|
ACP::AgentConnection::OptionalMethod::Authenticate,
|
|
13
13
|
ACP::AgentConnection::OptionalMethod::ResumeSession,
|
|
14
14
|
ACP::AgentConnection::OptionalMethod::CloseSession,
|
|
15
|
-
ACP::AgentConnection::OptionalMethod::DeleteSession
|
|
15
|
+
ACP::AgentConnection::OptionalMethod::DeleteSession,
|
|
16
|
+
ACP::AgentConnection::OptionalMethod::Logout
|
|
16
17
|
].freeze #: Array[ACP::AgentConnection::_OptionalMethod]
|
|
17
18
|
# The schema has no initialize capability for modes or config options: an
|
|
18
19
|
# agent offers them per session, in its session responses, so they are
|
|
@@ -70,6 +71,7 @@ class ACP::AgentConnection
|
|
|
70
71
|
'session/resume' => route(ACP::Types::ResumeSessionRequest) { |request| full.resume_session(request) },
|
|
71
72
|
'session/close' => route(ACP::Types::CloseSessionRequest) { |request| full.close_session(request) },
|
|
72
73
|
'session/delete' => route(ACP::Types::DeleteSessionRequest) { |request| full.delete_session(request) },
|
|
74
|
+
'logout' => route(ACP::Types::LogoutRequest) { |request| full.logout(request) },
|
|
73
75
|
'session/set_mode' => route(ACP::Types::SetSessionModeRequest) { |request| full.change_session_mode(request) },
|
|
74
76
|
'session/set_config_option' => route(ACP::Types::SetSessionConfigOptionRequest) do |request|
|
|
75
77
|
full.change_session_config_option(request)
|
|
@@ -79,6 +79,8 @@ class ACP::ClientConnection
|
|
|
79
79
|
return result if result.is_a?(ACP::RequestError)
|
|
80
80
|
|
|
81
81
|
type.from_h(result)
|
|
82
|
+
rescue KeyError, TypeError, NoMethodError
|
|
83
|
+
ACP::RequestError.invalid_response(result)
|
|
82
84
|
end
|
|
83
85
|
|
|
84
86
|
# The request waits on its own thread so the caller's thread can yield each
|
data/lib/acp/request_error.rb
CHANGED
|
@@ -63,6 +63,15 @@ class ACP::RequestError
|
|
|
63
63
|
new(code: INTERNAL_ERROR, message: 'Internal error')
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
+
# The message tells a malformed peer reply apart from an internal error a
|
|
67
|
+
# handler raised, though both use the -32603 code.
|
|
68
|
+
#
|
|
69
|
+
# @rbs response: untyped
|
|
70
|
+
# @rbs return: ACP::RequestError
|
|
71
|
+
def self.invalid_response(response)
|
|
72
|
+
new(code: INTERNAL_ERROR, message: 'Invalid response', data: response)
|
|
73
|
+
end
|
|
74
|
+
|
|
66
75
|
# @rbs return: ACP::RequestError
|
|
67
76
|
def self.request_cancelled
|
|
68
77
|
new(code: REQUEST_CANCELLED, message: 'Request cancelled')
|
|
@@ -9,6 +9,9 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
9
9
|
# @dynamic title
|
|
10
10
|
attr_reader :title #: String
|
|
11
11
|
|
|
12
|
+
# @dynamic name
|
|
13
|
+
attr_reader :name #: String?
|
|
14
|
+
|
|
12
15
|
# @dynamic kind
|
|
13
16
|
attr_reader :kind #: String?
|
|
14
17
|
|
|
@@ -32,6 +35,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
32
35
|
|
|
33
36
|
# @rbs tool_call_id: String
|
|
34
37
|
# @rbs title: String
|
|
38
|
+
# @rbs name: String?
|
|
35
39
|
# @rbs kind: String?
|
|
36
40
|
# @rbs status: String?
|
|
37
41
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
@@ -43,6 +47,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
43
47
|
def initialize(
|
|
44
48
|
tool_call_id:,
|
|
45
49
|
title:,
|
|
50
|
+
name: nil,
|
|
46
51
|
kind: nil,
|
|
47
52
|
status: nil,
|
|
48
53
|
content: nil,
|
|
@@ -53,6 +58,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
53
58
|
)
|
|
54
59
|
@tool_call_id = tool_call_id
|
|
55
60
|
@title = title
|
|
61
|
+
@name = name
|
|
56
62
|
@kind = kind
|
|
57
63
|
@status = status
|
|
58
64
|
@content = content
|
|
@@ -69,6 +75,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
69
75
|
new(
|
|
70
76
|
tool_call_id: hash.fetch('toolCallId'),
|
|
71
77
|
title: hash.fetch('title'),
|
|
78
|
+
name: hash['name'],
|
|
72
79
|
kind: hash['kind'],
|
|
73
80
|
status: hash['status'],
|
|
74
81
|
content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
|
|
@@ -85,6 +92,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
85
92
|
'sessionUpdate' => 'tool_call',
|
|
86
93
|
'toolCallId' => tool_call_id,
|
|
87
94
|
'title' => title,
|
|
95
|
+
'name' => name,
|
|
88
96
|
'kind' => kind,
|
|
89
97
|
'status' => status,
|
|
90
98
|
'content' => content&.map(&:to_h),
|
|
@@ -15,6 +15,9 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
15
15
|
# @dynamic title
|
|
16
16
|
attr_reader :title #: String?
|
|
17
17
|
|
|
18
|
+
# @dynamic name
|
|
19
|
+
attr_reader :name #: String?
|
|
20
|
+
|
|
18
21
|
# @dynamic content
|
|
19
22
|
attr_reader :content #: Array[ACP::Types::ToolCallContent::t]?
|
|
20
23
|
|
|
@@ -34,6 +37,7 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
34
37
|
# @rbs kind: String?
|
|
35
38
|
# @rbs status: String?
|
|
36
39
|
# @rbs title: String?
|
|
40
|
+
# @rbs name: String?
|
|
37
41
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
38
42
|
# @rbs locations: Array[ACP::Types::ToolCallLocation]?
|
|
39
43
|
# @rbs raw_input: untyped
|
|
@@ -45,6 +49,7 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
45
49
|
kind: nil,
|
|
46
50
|
status: nil,
|
|
47
51
|
title: nil,
|
|
52
|
+
name: nil,
|
|
48
53
|
content: nil,
|
|
49
54
|
locations: nil,
|
|
50
55
|
raw_input: nil,
|
|
@@ -55,6 +60,7 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
55
60
|
@kind = kind
|
|
56
61
|
@status = status
|
|
57
62
|
@title = title
|
|
63
|
+
@name = name
|
|
58
64
|
@content = content
|
|
59
65
|
@locations = locations
|
|
60
66
|
@raw_input = raw_input
|
|
@@ -71,6 +77,7 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
71
77
|
kind: hash['kind'],
|
|
72
78
|
status: hash['status'],
|
|
73
79
|
title: hash['title'],
|
|
80
|
+
name: hash['name'],
|
|
74
81
|
content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
|
|
75
82
|
locations: hash['locations']&.map { |item| ACP::Types::ToolCallLocation.from_h(item) },
|
|
76
83
|
raw_input: hash['rawInput'],
|
|
@@ -87,6 +94,7 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
87
94
|
'kind' => kind,
|
|
88
95
|
'status' => status,
|
|
89
96
|
'title' => title,
|
|
97
|
+
'name' => name,
|
|
90
98
|
'content' => content&.map(&:to_h),
|
|
91
99
|
'locations' => locations&.map(&:to_h),
|
|
92
100
|
'rawInput' => raw_input,
|
data/lib/acp/types/tool_call.rb
CHANGED
|
@@ -9,6 +9,9 @@ class ACP::Types::ToolCall
|
|
|
9
9
|
# @dynamic title
|
|
10
10
|
attr_reader :title #: String
|
|
11
11
|
|
|
12
|
+
# @dynamic name
|
|
13
|
+
attr_reader :name #: String?
|
|
14
|
+
|
|
12
15
|
# @dynamic kind
|
|
13
16
|
attr_reader :kind #: String?
|
|
14
17
|
|
|
@@ -32,6 +35,7 @@ class ACP::Types::ToolCall
|
|
|
32
35
|
|
|
33
36
|
# @rbs tool_call_id: String
|
|
34
37
|
# @rbs title: String
|
|
38
|
+
# @rbs name: String?
|
|
35
39
|
# @rbs kind: String?
|
|
36
40
|
# @rbs status: String?
|
|
37
41
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
@@ -43,6 +47,7 @@ class ACP::Types::ToolCall
|
|
|
43
47
|
def initialize(
|
|
44
48
|
tool_call_id:,
|
|
45
49
|
title:,
|
|
50
|
+
name: nil,
|
|
46
51
|
kind: nil,
|
|
47
52
|
status: nil,
|
|
48
53
|
content: nil,
|
|
@@ -53,6 +58,7 @@ class ACP::Types::ToolCall
|
|
|
53
58
|
)
|
|
54
59
|
@tool_call_id = tool_call_id
|
|
55
60
|
@title = title
|
|
61
|
+
@name = name
|
|
56
62
|
@kind = kind
|
|
57
63
|
@status = status
|
|
58
64
|
@content = content
|
|
@@ -69,6 +75,7 @@ class ACP::Types::ToolCall
|
|
|
69
75
|
new(
|
|
70
76
|
tool_call_id: hash.fetch('toolCallId'),
|
|
71
77
|
title: hash.fetch('title'),
|
|
78
|
+
name: hash['name'],
|
|
72
79
|
kind: hash['kind'],
|
|
73
80
|
status: hash['status'],
|
|
74
81
|
content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
|
|
@@ -84,6 +91,7 @@ class ACP::Types::ToolCall
|
|
|
84
91
|
{
|
|
85
92
|
'toolCallId' => tool_call_id,
|
|
86
93
|
'title' => title,
|
|
94
|
+
'name' => name,
|
|
87
95
|
'kind' => kind,
|
|
88
96
|
'status' => status,
|
|
89
97
|
'content' => content&.map(&:to_h),
|
|
@@ -15,6 +15,9 @@ class ACP::Types::ToolCallUpdate
|
|
|
15
15
|
# @dynamic title
|
|
16
16
|
attr_reader :title #: String?
|
|
17
17
|
|
|
18
|
+
# @dynamic name
|
|
19
|
+
attr_reader :name #: String?
|
|
20
|
+
|
|
18
21
|
# @dynamic content
|
|
19
22
|
attr_reader :content #: Array[ACP::Types::ToolCallContent::t]?
|
|
20
23
|
|
|
@@ -34,6 +37,7 @@ class ACP::Types::ToolCallUpdate
|
|
|
34
37
|
# @rbs kind: String?
|
|
35
38
|
# @rbs status: String?
|
|
36
39
|
# @rbs title: String?
|
|
40
|
+
# @rbs name: String?
|
|
37
41
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
38
42
|
# @rbs locations: Array[ACP::Types::ToolCallLocation]?
|
|
39
43
|
# @rbs raw_input: untyped
|
|
@@ -45,6 +49,7 @@ class ACP::Types::ToolCallUpdate
|
|
|
45
49
|
kind: nil,
|
|
46
50
|
status: nil,
|
|
47
51
|
title: nil,
|
|
52
|
+
name: nil,
|
|
48
53
|
content: nil,
|
|
49
54
|
locations: nil,
|
|
50
55
|
raw_input: nil,
|
|
@@ -55,6 +60,7 @@ class ACP::Types::ToolCallUpdate
|
|
|
55
60
|
@kind = kind
|
|
56
61
|
@status = status
|
|
57
62
|
@title = title
|
|
63
|
+
@name = name
|
|
58
64
|
@content = content
|
|
59
65
|
@locations = locations
|
|
60
66
|
@raw_input = raw_input
|
|
@@ -71,6 +77,7 @@ class ACP::Types::ToolCallUpdate
|
|
|
71
77
|
kind: hash['kind'],
|
|
72
78
|
status: hash['status'],
|
|
73
79
|
title: hash['title'],
|
|
80
|
+
name: hash['name'],
|
|
74
81
|
content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
|
|
75
82
|
locations: hash['locations']&.map { |item| ACP::Types::ToolCallLocation.from_h(item) },
|
|
76
83
|
raw_input: hash['rawInput'],
|
|
@@ -86,6 +93,7 @@ class ACP::Types::ToolCallUpdate
|
|
|
86
93
|
'kind' => kind,
|
|
87
94
|
'status' => status,
|
|
88
95
|
'title' => title,
|
|
96
|
+
'name' => name,
|
|
89
97
|
'content' => content&.map(&:to_h),
|
|
90
98
|
'locations' => locations&.map(&:to_h),
|
|
91
99
|
'rawInput' => raw_input,
|
data/lib/acp/version.rb
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Generated from lib/acp/agent_connection/optional_method/logout.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module ACP::AgentConnection::OptionalMethod::Logout
|
|
4
|
+
# @rbs return: String
|
|
5
|
+
def rpc_method: () -> String
|
|
6
|
+
|
|
7
|
+
# @rbs return: Symbol
|
|
8
|
+
def agent_method: () -> Symbol
|
|
9
|
+
|
|
10
|
+
# @rbs initialize_response: ACP::Types::InitializeResponse
|
|
11
|
+
# @rbs return: bool
|
|
12
|
+
def advertised?: (ACP::Types::InitializeResponse initialize_response) -> bool
|
|
13
|
+
end
|
|
@@ -53,6 +53,13 @@ class ACP::RequestError
|
|
|
53
53
|
# @rbs return: ACP::RequestError
|
|
54
54
|
def self.internal_error: () -> ACP::RequestError
|
|
55
55
|
|
|
56
|
+
# The message tells a malformed peer reply apart from an internal error a
|
|
57
|
+
# handler raised, though both use the -32603 code.
|
|
58
|
+
#
|
|
59
|
+
# @rbs response: untyped
|
|
60
|
+
# @rbs return: ACP::RequestError
|
|
61
|
+
def self.invalid_response: (untyped response) -> ACP::RequestError
|
|
62
|
+
|
|
56
63
|
# @rbs return: ACP::RequestError
|
|
57
64
|
def self.request_cancelled: () -> ACP::RequestError
|
|
58
65
|
|
|
@@ -7,6 +7,9 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
7
7
|
# @dynamic title
|
|
8
8
|
attr_reader title: String
|
|
9
9
|
|
|
10
|
+
# @dynamic name
|
|
11
|
+
attr_reader name: String?
|
|
12
|
+
|
|
10
13
|
# @dynamic kind
|
|
11
14
|
attr_reader kind: String?
|
|
12
15
|
|
|
@@ -30,6 +33,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
30
33
|
|
|
31
34
|
# @rbs tool_call_id: String
|
|
32
35
|
# @rbs title: String
|
|
36
|
+
# @rbs name: String?
|
|
33
37
|
# @rbs kind: String?
|
|
34
38
|
# @rbs status: String?
|
|
35
39
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
@@ -38,7 +42,7 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
38
42
|
# @rbs raw_output: untyped
|
|
39
43
|
# @rbs meta: Hash[String, untyped]?
|
|
40
44
|
# @rbs return: void
|
|
41
|
-
def initialize: (tool_call_id: String, title: String, ?kind: String?, ?status: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
45
|
+
def initialize: (tool_call_id: String, title: String, ?name: String?, ?kind: String?, ?status: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
42
46
|
|
|
43
47
|
# @rbs hash: Hash[String, untyped]
|
|
44
48
|
# @rbs return: ACP::Types::SessionUpdate::ToolCall
|
|
@@ -13,6 +13,9 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
13
13
|
# @dynamic title
|
|
14
14
|
attr_reader title: String?
|
|
15
15
|
|
|
16
|
+
# @dynamic name
|
|
17
|
+
attr_reader name: String?
|
|
18
|
+
|
|
16
19
|
# @dynamic content
|
|
17
20
|
attr_reader content: Array[ACP::Types::ToolCallContent::t]?
|
|
18
21
|
|
|
@@ -32,13 +35,14 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
32
35
|
# @rbs kind: String?
|
|
33
36
|
# @rbs status: String?
|
|
34
37
|
# @rbs title: String?
|
|
38
|
+
# @rbs name: String?
|
|
35
39
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
36
40
|
# @rbs locations: Array[ACP::Types::ToolCallLocation]?
|
|
37
41
|
# @rbs raw_input: untyped
|
|
38
42
|
# @rbs raw_output: untyped
|
|
39
43
|
# @rbs meta: Hash[String, untyped]?
|
|
40
44
|
# @rbs return: void
|
|
41
|
-
def initialize: (tool_call_id: String, ?kind: String?, ?status: String?, ?title: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
45
|
+
def initialize: (tool_call_id: String, ?kind: String?, ?status: String?, ?title: String?, ?name: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
42
46
|
|
|
43
47
|
# @rbs hash: Hash[String, untyped]
|
|
44
48
|
# @rbs return: ACP::Types::SessionUpdate::ToolCallUpdate
|
|
@@ -7,6 +7,9 @@ class ACP::Types::ToolCall
|
|
|
7
7
|
# @dynamic title
|
|
8
8
|
attr_reader title: String
|
|
9
9
|
|
|
10
|
+
# @dynamic name
|
|
11
|
+
attr_reader name: String?
|
|
12
|
+
|
|
10
13
|
# @dynamic kind
|
|
11
14
|
attr_reader kind: String?
|
|
12
15
|
|
|
@@ -30,6 +33,7 @@ class ACP::Types::ToolCall
|
|
|
30
33
|
|
|
31
34
|
# @rbs tool_call_id: String
|
|
32
35
|
# @rbs title: String
|
|
36
|
+
# @rbs name: String?
|
|
33
37
|
# @rbs kind: String?
|
|
34
38
|
# @rbs status: String?
|
|
35
39
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
@@ -38,7 +42,7 @@ class ACP::Types::ToolCall
|
|
|
38
42
|
# @rbs raw_output: untyped
|
|
39
43
|
# @rbs meta: Hash[String, untyped]?
|
|
40
44
|
# @rbs return: void
|
|
41
|
-
def initialize: (tool_call_id: String, title: String, ?kind: String?, ?status: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
45
|
+
def initialize: (tool_call_id: String, title: String, ?name: String?, ?kind: String?, ?status: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
42
46
|
|
|
43
47
|
# @rbs hash: Hash[String, untyped]
|
|
44
48
|
# @rbs return: ACP::Types::ToolCall
|
|
@@ -13,6 +13,9 @@ class ACP::Types::ToolCallUpdate
|
|
|
13
13
|
# @dynamic title
|
|
14
14
|
attr_reader title: String?
|
|
15
15
|
|
|
16
|
+
# @dynamic name
|
|
17
|
+
attr_reader name: String?
|
|
18
|
+
|
|
16
19
|
# @dynamic content
|
|
17
20
|
attr_reader content: Array[ACP::Types::ToolCallContent::t]?
|
|
18
21
|
|
|
@@ -32,13 +35,14 @@ class ACP::Types::ToolCallUpdate
|
|
|
32
35
|
# @rbs kind: String?
|
|
33
36
|
# @rbs status: String?
|
|
34
37
|
# @rbs title: String?
|
|
38
|
+
# @rbs name: String?
|
|
35
39
|
# @rbs content: Array[ACP::Types::ToolCallContent::t]?
|
|
36
40
|
# @rbs locations: Array[ACP::Types::ToolCallLocation]?
|
|
37
41
|
# @rbs raw_input: untyped
|
|
38
42
|
# @rbs raw_output: untyped
|
|
39
43
|
# @rbs meta: Hash[String, untyped]?
|
|
40
44
|
# @rbs return: void
|
|
41
|
-
def initialize: (tool_call_id: String, ?kind: String?, ?status: String?, ?title: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
45
|
+
def initialize: (tool_call_id: String, ?kind: String?, ?status: String?, ?title: String?, ?name: String?, ?content: Array[ACP::Types::ToolCallContent::t]?, ?locations: Array[ACP::Types::ToolCallLocation]?, ?raw_input: untyped, ?raw_output: untyped, ?meta: Hash[String, untyped]?) -> void
|
|
42
46
|
|
|
43
47
|
# @rbs hash: Hash[String, untyped]
|
|
44
48
|
# @rbs return: ACP::Types::ToolCallUpdate
|
|
@@ -32,6 +32,10 @@ class ACP::AgentConnection
|
|
|
32
32
|
def delete_session: (ACP::Types::DeleteSessionRequest) -> (ACP::Types::DeleteSessionResponse | ACP::RequestError)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
+
interface _Logout
|
|
36
|
+
def logout: (ACP::Types::LogoutRequest) -> (ACP::Types::LogoutResponse | ACP::RequestError)
|
|
37
|
+
end
|
|
38
|
+
|
|
35
39
|
interface _ChangeSessionMode
|
|
36
40
|
def change_session_mode: (ACP::Types::SetSessionModeRequest) -> (ACP::Types::SetSessionModeResponse | ACP::RequestError)
|
|
37
41
|
end
|
|
@@ -48,6 +52,7 @@ class ACP::AgentConnection
|
|
|
48
52
|
include _ResumeSession
|
|
49
53
|
include _CloseSession
|
|
50
54
|
include _DeleteSession
|
|
55
|
+
include _Logout
|
|
51
56
|
include _ChangeSessionMode
|
|
52
57
|
include _ChangeSessionConfigOption
|
|
53
58
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acp-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jake Bottrall
|
|
@@ -40,6 +40,7 @@ files:
|
|
|
40
40
|
- lib/acp/agent_connection/optional_method/delete_session.rb
|
|
41
41
|
- lib/acp/agent_connection/optional_method/list_sessions.rb
|
|
42
42
|
- lib/acp/agent_connection/optional_method/load_session.rb
|
|
43
|
+
- lib/acp/agent_connection/optional_method/logout.rb
|
|
43
44
|
- lib/acp/agent_connection/optional_method/resume_session.rb
|
|
44
45
|
- lib/acp/agent_process.rb
|
|
45
46
|
- lib/acp/client_connection.rb
|
|
@@ -253,6 +254,7 @@ files:
|
|
|
253
254
|
- sig/generated/acp/agent_connection/optional_method/delete_session.rbs
|
|
254
255
|
- sig/generated/acp/agent_connection/optional_method/list_sessions.rbs
|
|
255
256
|
- sig/generated/acp/agent_connection/optional_method/load_session.rbs
|
|
257
|
+
- sig/generated/acp/agent_connection/optional_method/logout.rbs
|
|
256
258
|
- sig/generated/acp/agent_connection/optional_method/resume_session.rbs
|
|
257
259
|
- sig/generated/acp/agent_process.rbs
|
|
258
260
|
- sig/generated/acp/client_connection.rbs
|
|
@@ -464,6 +466,7 @@ files:
|
|
|
464
466
|
- sig/manual/acp/agent_connection/optional_method/delete_session.rbs
|
|
465
467
|
- sig/manual/acp/agent_connection/optional_method/list_sessions.rbs
|
|
466
468
|
- sig/manual/acp/agent_connection/optional_method/load_session.rbs
|
|
469
|
+
- sig/manual/acp/agent_connection/optional_method/logout.rbs
|
|
467
470
|
- sig/manual/acp/agent_connection/optional_method/resume_session.rbs
|
|
468
471
|
- sig/manual/acp/agent_process.rbs
|
|
469
472
|
- sig/manual/acp/client_connection.rbs
|