cadenya 0.2.0 → 0.3.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 +17 -0
- data/README.md +1 -1
- data/lib/cadenya/client.rb +14 -0
- data/lib/cadenya/models/agent_spec.rb +19 -4
- data/lib/cadenya/models/agents/webhook_delivery_data.rb +1 -0
- data/lib/cadenya/models/agents/webhook_delivery_list_params.rb +1 -0
- data/lib/cadenya/models/approval_requirement_filter.rb +26 -0
- data/lib/cadenya/models/attribute_filter.rb +38 -0
- data/lib/cadenya/models/objective_data.rb +21 -1
- data/lib/cadenya/models/objective_event_data.rb +32 -1
- data/lib/cadenya/models/objective_list_params.rb +2 -1
- data/lib/cadenya/models/objective_status.rb +2 -1
- data/lib/cadenya/models/profile_spec.rb +1 -0
- data/lib/cadenya/models/string_matcher.rb +47 -0
- data/lib/cadenya/models/tool_filter.rb +35 -0
- data/lib/cadenya/models/tool_set_adapter.rb +7 -1
- data/lib/cadenya/models/tool_set_adapter_mcp.rb +11 -33
- data/lib/cadenya/models/tool_set_adapter_openapi.rb +79 -0
- data/lib/cadenya/models/tool_set_get_openapi_spec_params.rb +26 -0
- data/lib/cadenya/models/tool_set_get_openapi_spec_response.rb +17 -0
- data/lib/cadenya/models/tool_sets/config_openapi.rb +29 -0
- data/lib/cadenya/models/tool_sets/tool_spec_config.rb +7 -1
- data/lib/cadenya/models/workspace.rb +27 -1
- data/lib/cadenya/models/workspace_admin/member_add_params.rb +39 -0
- data/lib/cadenya/models/workspace_admin/member_list_params.rb +39 -0
- data/lib/cadenya/models/workspace_admin/member_remove_params.rb +28 -0
- data/lib/cadenya/models/workspace_admin/profile_list_params.rb +44 -0
- data/lib/cadenya/models/workspace_admin_archive_params.rb +20 -0
- data/lib/cadenya/models/workspace_admin_create_params.rb +70 -0
- data/lib/cadenya/models/workspace_admin_list_params.rb +42 -0
- data/lib/cadenya/models/workspace_admin_retrieve_params.rb +20 -0
- data/lib/cadenya/models/workspace_admin_update_params.rb +85 -0
- data/lib/cadenya/models/workspace_member.rb +53 -0
- data/lib/cadenya/models.rb +26 -2
- data/lib/cadenya/resources/tool_sets.rb +31 -0
- data/lib/cadenya/resources/workspace_admin/members.rb +107 -0
- data/lib/cadenya/resources/workspace_admin/profiles.rb +54 -0
- data/lib/cadenya/resources/workspace_admin.rb +173 -0
- data/lib/cadenya/resources/workspaces.rb +4 -0
- data/lib/cadenya/version.rb +1 -1
- data/lib/cadenya.rb +21 -1
- data/rbi/cadenya/client.rbi +13 -0
- data/rbi/cadenya/models/agent_spec.rbi +21 -4
- data/rbi/cadenya/models/agents/webhook_delivery_data.rbi +5 -0
- data/rbi/cadenya/models/agents/webhook_delivery_list_params.rbi +5 -0
- data/rbi/cadenya/models/approval_requirement_filter.rbi +45 -0
- data/rbi/cadenya/models/attribute_filter.rbi +84 -0
- data/rbi/cadenya/models/objective_data.rbi +26 -0
- data/rbi/cadenya/models/objective_event_data.rbi +52 -0
- data/rbi/cadenya/models/objective_list_params.rbi +7 -2
- data/rbi/cadenya/models/objective_status.rbi +4 -2
- data/rbi/cadenya/models/profile_spec.rbi +5 -0
- data/rbi/cadenya/models/string_matcher.rbi +84 -0
- data/rbi/cadenya/models/tool_filter.rbi +66 -0
- data/rbi/cadenya/models/tool_set_adapter.rbi +14 -3
- data/rbi/cadenya/models/tool_set_adapter_mcp.rbi +16 -62
- data/rbi/cadenya/models/tool_set_adapter_openapi.rbi +127 -0
- data/rbi/cadenya/models/tool_set_get_openapi_spec_params.rbi +46 -0
- data/rbi/cadenya/models/tool_set_get_openapi_spec_response.rbi +33 -0
- data/rbi/cadenya/models/tool_sets/config_openapi.rbi +48 -0
- data/rbi/cadenya/models/tool_sets/tool_spec_config.rbi +11 -3
- data/rbi/cadenya/models/workspace.rbi +39 -3
- data/rbi/cadenya/models/workspace_admin/member_add_params.rbi +68 -0
- data/rbi/cadenya/models/workspace_admin/member_list_params.rbi +68 -0
- data/rbi/cadenya/models/workspace_admin/member_remove_params.rbi +48 -0
- data/rbi/cadenya/models/workspace_admin/profile_list_params.rbi +75 -0
- data/rbi/cadenya/models/workspace_admin_archive_params.rbi +38 -0
- data/rbi/cadenya/models/workspace_admin_create_params.rbi +127 -0
- data/rbi/cadenya/models/workspace_admin_list_params.rbi +70 -0
- data/rbi/cadenya/models/workspace_admin_retrieve_params.rbi +38 -0
- data/rbi/cadenya/models/workspace_admin_update_params.rbi +144 -0
- data/rbi/cadenya/models/workspace_member.rbi +80 -0
- data/rbi/cadenya/models.rbi +26 -2
- data/rbi/cadenya/resources/tool_sets.rbi +18 -0
- data/rbi/cadenya/resources/workspace_admin/members.rbi +83 -0
- data/rbi/cadenya/resources/workspace_admin/profiles.rbi +42 -0
- data/rbi/cadenya/resources/workspace_admin.rbi +131 -0
- data/rbi/cadenya/resources/workspaces.rbi +4 -0
- data/sig/cadenya/client.rbs +2 -0
- data/sig/cadenya/models/agent_spec.rbs +12 -5
- data/sig/cadenya/models/agents/webhook_delivery_data.rbs +2 -0
- data/sig/cadenya/models/agents/webhook_delivery_list_params.rbs +2 -0
- data/sig/cadenya/models/approval_requirement_filter.rbs +20 -0
- data/sig/cadenya/models/attribute_filter.rbs +44 -0
- data/sig/cadenya/models/objective_data.rbs +14 -0
- data/sig/cadenya/models/objective_event_data.rbs +21 -0
- data/sig/cadenya/models/objective_list_params.rbs +4 -2
- data/sig/cadenya/models/objective_status.rbs +4 -2
- data/sig/cadenya/models/profile_spec.rbs +5 -1
- data/sig/cadenya/models/string_matcher.rbs +57 -0
- data/sig/cadenya/models/tool_filter.rbs +41 -0
- data/sig/cadenya/models/tool_set_adapter.rbs +15 -3
- data/sig/cadenya/models/tool_set_adapter_mcp.rbs +16 -32
- data/sig/cadenya/models/tool_set_adapter_openapi.rbs +73 -0
- data/sig/cadenya/models/tool_set_get_openapi_spec_params.rbs +28 -0
- data/sig/cadenya/models/tool_set_get_openapi_spec_response.rbs +15 -0
- data/sig/cadenya/models/tool_sets/config_openapi.rbs +30 -0
- data/sig/cadenya/models/tool_sets/tool_spec_config.rbs +12 -3
- data/sig/cadenya/models/workspace.rbs +24 -3
- data/sig/cadenya/models/workspace_admin/member_add_params.rbs +38 -0
- data/sig/cadenya/models/workspace_admin/member_list_params.rbs +38 -0
- data/sig/cadenya/models/workspace_admin/member_remove_params.rbs +30 -0
- data/sig/cadenya/models/workspace_admin/profile_list_params.rbs +40 -0
- data/sig/cadenya/models/workspace_admin_archive_params.rbs +23 -0
- data/sig/cadenya/models/workspace_admin_create_params.rbs +58 -0
- data/sig/cadenya/models/workspace_admin_list_params.rbs +38 -0
- data/sig/cadenya/models/workspace_admin_retrieve_params.rbs +23 -0
- data/sig/cadenya/models/workspace_admin_update_params.rbs +76 -0
- data/sig/cadenya/models/workspace_member.rbs +46 -0
- data/sig/cadenya/models.rbs +26 -2
- data/sig/cadenya/resources/tool_sets.rbs +6 -0
- data/sig/cadenya/resources/workspace_admin/members.rbs +29 -0
- data/sig/cadenya/resources/workspace_admin/profiles.rbs +16 -0
- data/sig/cadenya/resources/workspace_admin.rbs +42 -0
- metadata +65 -5
- data/lib/cadenya/models/mcp_tool_filter.rb +0 -111
- data/rbi/cadenya/models/mcp_tool_filter.rbi +0 -235
- data/sig/cadenya/models/mcp_tool_filter.rbs +0 -138
|
@@ -64,6 +64,22 @@ module Cadenya
|
|
|
64
64
|
sig { params(agent: Cadenya::Agent::OrHash).void }
|
|
65
65
|
attr_writer :agent
|
|
66
66
|
|
|
67
|
+
# The output of the objective, populated when the objective completes. Will match
|
|
68
|
+
# the schema of output_json_schema or output_json_inferred.
|
|
69
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
70
|
+
attr_reader :output
|
|
71
|
+
|
|
72
|
+
sig { params(output: T::Hash[Symbol, T.anything]).void }
|
|
73
|
+
attr_writer :output
|
|
74
|
+
|
|
75
|
+
# Snapshot of the agent spec's output_definition at objective creation time. When
|
|
76
|
+
# present, the objective will run an extraction step after the LLM finishes.
|
|
77
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
78
|
+
attr_reader :output_definition
|
|
79
|
+
|
|
80
|
+
sig { params(output_definition: T::Hash[Symbol, T.anything]).void }
|
|
81
|
+
attr_writer :output_definition
|
|
82
|
+
|
|
67
83
|
# A parent objective means the objective was spawned off using a separate agent to
|
|
68
84
|
# complete an objective
|
|
69
85
|
sig { returns(T.nilable(String)) }
|
|
@@ -101,6 +117,8 @@ module Cadenya
|
|
|
101
117
|
data: T.anything,
|
|
102
118
|
initial_message: String,
|
|
103
119
|
memory_stack: T::Array[Cadenya::MemoryReference::OrHash],
|
|
120
|
+
output: T::Hash[Symbol, T.anything],
|
|
121
|
+
output_definition: T::Hash[Symbol, T.anything],
|
|
104
122
|
parent_objective_id: String,
|
|
105
123
|
secrets: T::Array[Cadenya::ObjectiveDataSecret::OrHash],
|
|
106
124
|
source_schedule_id: String,
|
|
@@ -133,6 +151,12 @@ module Cadenya
|
|
|
133
151
|
# - this field) must not exceed 10 entries. A request that would produce an
|
|
134
152
|
# effective stack larger than 10 is rejected with InvalidArgument.
|
|
135
153
|
memory_stack: nil,
|
|
154
|
+
# The output of the objective, populated when the objective completes. Will match
|
|
155
|
+
# the schema of output_json_schema or output_json_inferred.
|
|
156
|
+
output: nil,
|
|
157
|
+
# Snapshot of the agent spec's output_definition at objective creation time. When
|
|
158
|
+
# present, the objective will run an extraction step after the LLM finishes.
|
|
159
|
+
output_definition: nil,
|
|
136
160
|
# A parent objective means the objective was spawned off using a separate agent to
|
|
137
161
|
# complete an objective
|
|
138
162
|
parent_objective_id: nil,
|
|
@@ -157,6 +181,8 @@ module Cadenya
|
|
|
157
181
|
data: T.anything,
|
|
158
182
|
initial_message: String,
|
|
159
183
|
memory_stack: T::Array[Cadenya::MemoryReference],
|
|
184
|
+
output: T::Hash[Symbol, T.anything],
|
|
185
|
+
output_definition: T::Hash[Symbol, T.anything],
|
|
160
186
|
parent_objective_id: String,
|
|
161
187
|
secrets: T::Array[Cadenya::ObjectiveDataSecret],
|
|
162
188
|
source_schedule_id: String,
|
|
@@ -41,6 +41,17 @@ module Cadenya
|
|
|
41
41
|
sig { params(error: Cadenya::ObjectiveError::OrHash).void }
|
|
42
42
|
attr_writer :error
|
|
43
43
|
|
|
44
|
+
# ObjectiveFinalized is the terminal event written when an objective is finalized.
|
|
45
|
+
# After this event, the objective is super-terminal: no further iterations,
|
|
46
|
+
# compaction, or continuation are permitted.
|
|
47
|
+
sig { returns(T.nilable(Cadenya::ObjectiveEventData::Finalized)) }
|
|
48
|
+
attr_reader :finalized
|
|
49
|
+
|
|
50
|
+
sig do
|
|
51
|
+
params(finalized: Cadenya::ObjectiveEventData::Finalized::OrHash).void
|
|
52
|
+
end
|
|
53
|
+
attr_writer :finalized
|
|
54
|
+
|
|
44
55
|
# MemoryRead is emitted each time the agent resolves a key against the memory
|
|
45
56
|
# stack and loads an entry. Lookups that miss (key not found in any layer) do not
|
|
46
57
|
# emit this event.
|
|
@@ -120,6 +131,7 @@ module Cadenya
|
|
|
120
131
|
cancelled: Cadenya::ObjectiveEventData::Cancelled::OrHash,
|
|
121
132
|
context_window_compacted: Cadenya::ContextWindowCompacted::OrHash,
|
|
122
133
|
error: Cadenya::ObjectiveError::OrHash,
|
|
134
|
+
finalized: Cadenya::ObjectiveEventData::Finalized::OrHash,
|
|
123
135
|
memory_read: Cadenya::MemoryRead::OrHash,
|
|
124
136
|
sub_agent_spawned: Cadenya::SubAgentSpawned::OrHash,
|
|
125
137
|
sub_agent_updated: Cadenya::SubAgentUpdated::OrHash,
|
|
@@ -141,6 +153,10 @@ module Cadenya
|
|
|
141
153
|
cancelled: nil,
|
|
142
154
|
context_window_compacted: nil,
|
|
143
155
|
error: nil,
|
|
156
|
+
# ObjectiveFinalized is the terminal event written when an objective is finalized.
|
|
157
|
+
# After this event, the objective is super-terminal: no further iterations,
|
|
158
|
+
# compaction, or continuation are permitted.
|
|
159
|
+
finalized: nil,
|
|
144
160
|
# MemoryRead is emitted each time the agent resolves a key against the memory
|
|
145
161
|
# stack and loads an entry. Lookups that miss (key not found in any layer) do not
|
|
146
162
|
# emit this event.
|
|
@@ -165,6 +181,7 @@ module Cadenya
|
|
|
165
181
|
cancelled: Cadenya::ObjectiveEventData::Cancelled,
|
|
166
182
|
context_window_compacted: Cadenya::ContextWindowCompacted,
|
|
167
183
|
error: Cadenya::ObjectiveError,
|
|
184
|
+
finalized: Cadenya::ObjectiveEventData::Finalized,
|
|
168
185
|
memory_read: Cadenya::MemoryRead,
|
|
169
186
|
sub_agent_spawned: Cadenya::SubAgentSpawned,
|
|
170
187
|
sub_agent_updated: Cadenya::SubAgentUpdated,
|
|
@@ -216,6 +233,41 @@ module Cadenya
|
|
|
216
233
|
def to_hash
|
|
217
234
|
end
|
|
218
235
|
end
|
|
236
|
+
|
|
237
|
+
class Finalized < Cadenya::Internal::Type::BaseModel
|
|
238
|
+
OrHash =
|
|
239
|
+
T.type_alias do
|
|
240
|
+
T.any(
|
|
241
|
+
Cadenya::ObjectiveEventData::Finalized,
|
|
242
|
+
Cadenya::Internal::AnyHash
|
|
243
|
+
)
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
# If the objective was created with an output schema, and the agent successfully
|
|
247
|
+
# completed the objective, this field will contain the structured output of the
|
|
248
|
+
# objective.
|
|
249
|
+
sig { returns(T.nilable(T.anything)) }
|
|
250
|
+
attr_reader :output
|
|
251
|
+
|
|
252
|
+
sig { params(output: T.anything).void }
|
|
253
|
+
attr_writer :output
|
|
254
|
+
|
|
255
|
+
# ObjectiveFinalized is the terminal event written when an objective is finalized.
|
|
256
|
+
# After this event, the objective is super-terminal: no further iterations,
|
|
257
|
+
# compaction, or continuation are permitted.
|
|
258
|
+
sig { params(output: T.anything).returns(T.attached_class) }
|
|
259
|
+
def self.new(
|
|
260
|
+
# If the objective was created with an output schema, and the agent successfully
|
|
261
|
+
# completed the objective, this field will contain the structured output of the
|
|
262
|
+
# objective.
|
|
263
|
+
output: nil
|
|
264
|
+
)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
sig { override.returns({ output: T.anything }) }
|
|
268
|
+
def to_hash
|
|
269
|
+
end
|
|
270
|
+
end
|
|
219
271
|
end
|
|
220
272
|
end
|
|
221
273
|
end
|
|
@@ -159,9 +159,9 @@ module Cadenya
|
|
|
159
159
|
:STATE_RUNNING,
|
|
160
160
|
Cadenya::ObjectiveListParams::State::TaggedSymbol
|
|
161
161
|
)
|
|
162
|
-
|
|
162
|
+
STATE_WAITING =
|
|
163
163
|
T.let(
|
|
164
|
-
:
|
|
164
|
+
:STATE_WAITING,
|
|
165
165
|
Cadenya::ObjectiveListParams::State::TaggedSymbol
|
|
166
166
|
)
|
|
167
167
|
STATE_FAILED =
|
|
@@ -174,6 +174,11 @@ module Cadenya
|
|
|
174
174
|
:STATE_CANCELLED,
|
|
175
175
|
Cadenya::ObjectiveListParams::State::TaggedSymbol
|
|
176
176
|
)
|
|
177
|
+
STATE_FINALIZED =
|
|
178
|
+
T.let(
|
|
179
|
+
:STATE_FINALIZED,
|
|
180
|
+
Cadenya::ObjectiveListParams::State::TaggedSymbol
|
|
181
|
+
)
|
|
177
182
|
|
|
178
183
|
sig do
|
|
179
184
|
override.returns(
|
|
@@ -53,12 +53,14 @@ module Cadenya
|
|
|
53
53
|
T.let(:STATE_PENDING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
54
54
|
STATE_RUNNING =
|
|
55
55
|
T.let(:STATE_RUNNING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
56
|
-
|
|
57
|
-
T.let(:
|
|
56
|
+
STATE_WAITING =
|
|
57
|
+
T.let(:STATE_WAITING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
58
58
|
STATE_FAILED =
|
|
59
59
|
T.let(:STATE_FAILED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
60
60
|
STATE_CANCELLED =
|
|
61
61
|
T.let(:STATE_CANCELLED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
62
|
+
STATE_FINALIZED =
|
|
63
|
+
T.let(:STATE_FINALIZED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
|
|
62
64
|
|
|
63
65
|
sig do
|
|
64
66
|
override.returns(
|
|
@@ -64,6 +64,11 @@ module Cadenya
|
|
|
64
64
|
T.type_alias { T.all(Symbol, Cadenya::ProfileSpec::Type) }
|
|
65
65
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
66
66
|
|
|
67
|
+
PROFILE_TYPE_UNSPECIFIED =
|
|
68
|
+
T.let(
|
|
69
|
+
:PROFILE_TYPE_UNSPECIFIED,
|
|
70
|
+
Cadenya::ProfileSpec::Type::TaggedSymbol
|
|
71
|
+
)
|
|
67
72
|
PROFILE_TYPE_USER =
|
|
68
73
|
T.let(:PROFILE_TYPE_USER, Cadenya::ProfileSpec::Type::TaggedSymbol)
|
|
69
74
|
PROFILE_TYPE_API_KEY =
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Models
|
|
5
|
+
class StringMatcher < Cadenya::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Cadenya::StringMatcher, Cadenya::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
12
|
+
attr_reader :case_sensitive
|
|
13
|
+
|
|
14
|
+
sig { params(case_sensitive: T::Boolean).void }
|
|
15
|
+
attr_writer :case_sensitive
|
|
16
|
+
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :contains
|
|
19
|
+
|
|
20
|
+
sig { params(contains: String).void }
|
|
21
|
+
attr_writer :contains
|
|
22
|
+
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :ends_with
|
|
25
|
+
|
|
26
|
+
sig { params(ends_with: String).void }
|
|
27
|
+
attr_writer :ends_with
|
|
28
|
+
|
|
29
|
+
sig { returns(T.nilable(String)) }
|
|
30
|
+
attr_reader :exact
|
|
31
|
+
|
|
32
|
+
sig { params(exact: String).void }
|
|
33
|
+
attr_writer :exact
|
|
34
|
+
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_reader :regex
|
|
37
|
+
|
|
38
|
+
sig { params(regex: String).void }
|
|
39
|
+
attr_writer :regex
|
|
40
|
+
|
|
41
|
+
sig { returns(T.nilable(String)) }
|
|
42
|
+
attr_reader :starts_with
|
|
43
|
+
|
|
44
|
+
sig { params(starts_with: String).void }
|
|
45
|
+
attr_writer :starts_with
|
|
46
|
+
|
|
47
|
+
# String matching operations
|
|
48
|
+
sig do
|
|
49
|
+
params(
|
|
50
|
+
case_sensitive: T::Boolean,
|
|
51
|
+
contains: String,
|
|
52
|
+
ends_with: String,
|
|
53
|
+
exact: String,
|
|
54
|
+
regex: String,
|
|
55
|
+
starts_with: String
|
|
56
|
+
).returns(T.attached_class)
|
|
57
|
+
end
|
|
58
|
+
def self.new(
|
|
59
|
+
case_sensitive: nil,
|
|
60
|
+
contains: nil,
|
|
61
|
+
ends_with: nil,
|
|
62
|
+
exact: nil,
|
|
63
|
+
regex: nil,
|
|
64
|
+
starts_with: nil
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
sig do
|
|
69
|
+
override.returns(
|
|
70
|
+
{
|
|
71
|
+
case_sensitive: T::Boolean,
|
|
72
|
+
contains: String,
|
|
73
|
+
ends_with: String,
|
|
74
|
+
exact: String,
|
|
75
|
+
regex: String,
|
|
76
|
+
starts_with: String
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
def to_hash
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Models
|
|
5
|
+
class ToolFilter < Cadenya::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Cadenya::ToolFilter, Cadenya::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
sig { returns(Cadenya::ToolFilter::Operator::OrSymbol) }
|
|
10
|
+
attr_accessor :operator
|
|
11
|
+
|
|
12
|
+
sig { returns(T.nilable(T::Array[Cadenya::AttributeFilter])) }
|
|
13
|
+
attr_reader :filters
|
|
14
|
+
|
|
15
|
+
sig { params(filters: T::Array[Cadenya::AttributeFilter::OrHash]).void }
|
|
16
|
+
attr_writer :filters
|
|
17
|
+
|
|
18
|
+
# Top-level filter with simple boolean logic (no nesting)
|
|
19
|
+
sig do
|
|
20
|
+
params(
|
|
21
|
+
operator: Cadenya::ToolFilter::Operator::OrSymbol,
|
|
22
|
+
filters: T::Array[Cadenya::AttributeFilter::OrHash]
|
|
23
|
+
).returns(T.attached_class)
|
|
24
|
+
end
|
|
25
|
+
def self.new(operator:, filters: nil)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
override.returns(
|
|
30
|
+
{
|
|
31
|
+
operator: Cadenya::ToolFilter::Operator::OrSymbol,
|
|
32
|
+
filters: T::Array[Cadenya::AttributeFilter]
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
def to_hash
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Operator
|
|
40
|
+
extend Cadenya::Internal::Type::Enum
|
|
41
|
+
|
|
42
|
+
TaggedSymbol =
|
|
43
|
+
T.type_alias { T.all(Symbol, Cadenya::ToolFilter::Operator) }
|
|
44
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
45
|
+
|
|
46
|
+
OPERATOR_UNSPECIFIED =
|
|
47
|
+
T.let(
|
|
48
|
+
:OPERATOR_UNSPECIFIED,
|
|
49
|
+
Cadenya::ToolFilter::Operator::TaggedSymbol
|
|
50
|
+
)
|
|
51
|
+
OPERATOR_AND =
|
|
52
|
+
T.let(:OPERATOR_AND, Cadenya::ToolFilter::Operator::TaggedSymbol)
|
|
53
|
+
OPERATOR_OR =
|
|
54
|
+
T.let(:OPERATOR_OR, Cadenya::ToolFilter::Operator::TaggedSymbol)
|
|
55
|
+
|
|
56
|
+
sig do
|
|
57
|
+
override.returns(
|
|
58
|
+
T::Array[Cadenya::ToolFilter::Operator::TaggedSymbol]
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
def self.values
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -20,18 +20,29 @@ module Cadenya
|
|
|
20
20
|
sig { params(mcp: Cadenya::ToolSetAdapterMcp::OrHash).void }
|
|
21
21
|
attr_writer :mcp
|
|
22
22
|
|
|
23
|
+
sig { returns(T.nilable(Cadenya::ToolSetAdapterOpenAPI)) }
|
|
24
|
+
attr_reader :openapi
|
|
25
|
+
|
|
26
|
+
sig { params(openapi: Cadenya::ToolSetAdapterOpenAPI::OrHash).void }
|
|
27
|
+
attr_writer :openapi
|
|
28
|
+
|
|
23
29
|
sig do
|
|
24
30
|
params(
|
|
25
31
|
http: Cadenya::ToolSetAdapterHTTP::OrHash,
|
|
26
|
-
mcp: Cadenya::ToolSetAdapterMcp::OrHash
|
|
32
|
+
mcp: Cadenya::ToolSetAdapterMcp::OrHash,
|
|
33
|
+
openapi: Cadenya::ToolSetAdapterOpenAPI::OrHash
|
|
27
34
|
).returns(T.attached_class)
|
|
28
35
|
end
|
|
29
|
-
def self.new(http: nil, mcp: nil)
|
|
36
|
+
def self.new(http: nil, mcp: nil, openapi: nil)
|
|
30
37
|
end
|
|
31
38
|
|
|
32
39
|
sig do
|
|
33
40
|
override.returns(
|
|
34
|
-
{
|
|
41
|
+
{
|
|
42
|
+
http: Cadenya::ToolSetAdapterHTTP,
|
|
43
|
+
mcp: Cadenya::ToolSetAdapterMcp,
|
|
44
|
+
openapi: Cadenya::ToolSetAdapterOpenAPI
|
|
45
|
+
}
|
|
35
46
|
)
|
|
36
47
|
end
|
|
37
48
|
def to_hash
|
|
@@ -9,10 +9,10 @@ module Cadenya
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
# Top-level filter with simple boolean logic (no nesting)
|
|
12
|
-
sig { returns(T.nilable(Cadenya::
|
|
12
|
+
sig { returns(T.nilable(Cadenya::ToolFilter)) }
|
|
13
13
|
attr_reader :exclude_tools
|
|
14
14
|
|
|
15
|
-
sig { params(exclude_tools: Cadenya::
|
|
15
|
+
sig { params(exclude_tools: Cadenya::ToolFilter::OrHash).void }
|
|
16
16
|
attr_writer :exclude_tools
|
|
17
17
|
|
|
18
18
|
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
@@ -22,21 +22,19 @@ module Cadenya
|
|
|
22
22
|
attr_writer :headers
|
|
23
23
|
|
|
24
24
|
# Top-level filter with simple boolean logic (no nesting)
|
|
25
|
-
sig { returns(T.nilable(Cadenya::
|
|
25
|
+
sig { returns(T.nilable(Cadenya::ToolFilter)) }
|
|
26
26
|
attr_reader :include_tools
|
|
27
27
|
|
|
28
|
-
sig { params(include_tools: Cadenya::
|
|
28
|
+
sig { params(include_tools: Cadenya::ToolFilter::OrHash).void }
|
|
29
29
|
attr_writer :include_tools
|
|
30
30
|
|
|
31
|
-
# Approval filters that will automatically set the approval requirement on
|
|
32
|
-
#
|
|
33
|
-
sig { returns(T.nilable(Cadenya::
|
|
31
|
+
# Approval filters that will automatically set the approval requirement on tools
|
|
32
|
+
# synced from an external source
|
|
33
|
+
sig { returns(T.nilable(Cadenya::ApprovalRequirementFilter)) }
|
|
34
34
|
attr_reader :tool_approvals
|
|
35
35
|
|
|
36
36
|
sig do
|
|
37
|
-
params(
|
|
38
|
-
tool_approvals: Cadenya::ToolSetAdapterMcp::ToolApprovals::OrHash
|
|
39
|
-
).void
|
|
37
|
+
params(tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash).void
|
|
40
38
|
end
|
|
41
39
|
attr_writer :tool_approvals
|
|
42
40
|
|
|
@@ -48,10 +46,10 @@ module Cadenya
|
|
|
48
46
|
|
|
49
47
|
sig do
|
|
50
48
|
params(
|
|
51
|
-
exclude_tools: Cadenya::
|
|
49
|
+
exclude_tools: Cadenya::ToolFilter::OrHash,
|
|
52
50
|
headers: T::Hash[Symbol, String],
|
|
53
|
-
include_tools: Cadenya::
|
|
54
|
-
tool_approvals: Cadenya::
|
|
51
|
+
include_tools: Cadenya::ToolFilter::OrHash,
|
|
52
|
+
tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash,
|
|
55
53
|
url: String
|
|
56
54
|
).returns(T.attached_class)
|
|
57
55
|
end
|
|
@@ -61,8 +59,8 @@ module Cadenya
|
|
|
61
59
|
headers: nil,
|
|
62
60
|
# Top-level filter with simple boolean logic (no nesting)
|
|
63
61
|
include_tools: nil,
|
|
64
|
-
# Approval filters that will automatically set the approval requirement on
|
|
65
|
-
#
|
|
62
|
+
# Approval filters that will automatically set the approval requirement on tools
|
|
63
|
+
# synced from an external source
|
|
66
64
|
tool_approvals: nil,
|
|
67
65
|
url: nil
|
|
68
66
|
)
|
|
@@ -71,60 +69,16 @@ module Cadenya
|
|
|
71
69
|
sig do
|
|
72
70
|
override.returns(
|
|
73
71
|
{
|
|
74
|
-
exclude_tools: Cadenya::
|
|
72
|
+
exclude_tools: Cadenya::ToolFilter,
|
|
75
73
|
headers: T::Hash[Symbol, String],
|
|
76
|
-
include_tools: Cadenya::
|
|
77
|
-
tool_approvals: Cadenya::
|
|
74
|
+
include_tools: Cadenya::ToolFilter,
|
|
75
|
+
tool_approvals: Cadenya::ApprovalRequirementFilter,
|
|
78
76
|
url: String
|
|
79
77
|
}
|
|
80
78
|
)
|
|
81
79
|
end
|
|
82
80
|
def to_hash
|
|
83
81
|
end
|
|
84
|
-
|
|
85
|
-
class ToolApprovals < Cadenya::Internal::Type::BaseModel
|
|
86
|
-
OrHash =
|
|
87
|
-
T.type_alias do
|
|
88
|
-
T.any(
|
|
89
|
-
Cadenya::ToolSetAdapterMcp::ToolApprovals,
|
|
90
|
-
Cadenya::Internal::AnyHash
|
|
91
|
-
)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
sig { returns(T.nilable(T::Boolean)) }
|
|
95
|
-
attr_reader :always
|
|
96
|
-
|
|
97
|
-
sig { params(always: T::Boolean).void }
|
|
98
|
-
attr_writer :always
|
|
99
|
-
|
|
100
|
-
# Top-level filter with simple boolean logic (no nesting)
|
|
101
|
-
sig { returns(T.nilable(Cadenya::McpToolFilter)) }
|
|
102
|
-
attr_reader :only
|
|
103
|
-
|
|
104
|
-
sig { params(only: Cadenya::McpToolFilter::OrHash).void }
|
|
105
|
-
attr_writer :only
|
|
106
|
-
|
|
107
|
-
# Approval filters that will automatically set the approval requirement on the
|
|
108
|
-
# tools synced from the MCP server
|
|
109
|
-
sig do
|
|
110
|
-
params(
|
|
111
|
-
always: T::Boolean,
|
|
112
|
-
only: Cadenya::McpToolFilter::OrHash
|
|
113
|
-
).returns(T.attached_class)
|
|
114
|
-
end
|
|
115
|
-
def self.new(
|
|
116
|
-
always: nil,
|
|
117
|
-
# Top-level filter with simple boolean logic (no nesting)
|
|
118
|
-
only: nil
|
|
119
|
-
)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
sig do
|
|
123
|
-
override.returns({ always: T::Boolean, only: Cadenya::McpToolFilter })
|
|
124
|
-
end
|
|
125
|
-
def to_hash
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
82
|
end
|
|
129
83
|
end
|
|
130
84
|
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Models
|
|
5
|
+
class ToolSetAdapterOpenAPI < Cadenya::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Cadenya::ToolSetAdapterOpenAPI, Cadenya::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Base URL for dispatching tool calls. If set, overrides the server resolved from
|
|
12
|
+
# the spec's servers array.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_reader :base_url
|
|
15
|
+
|
|
16
|
+
sig { params(base_url: String).void }
|
|
17
|
+
attr_writer :base_url
|
|
18
|
+
|
|
19
|
+
# Top-level filter with simple boolean logic (no nesting)
|
|
20
|
+
sig { returns(T.nilable(Cadenya::ToolFilter)) }
|
|
21
|
+
attr_reader :exclude_tools
|
|
22
|
+
|
|
23
|
+
sig { params(exclude_tools: Cadenya::ToolFilter::OrHash).void }
|
|
24
|
+
attr_writer :exclude_tools
|
|
25
|
+
|
|
26
|
+
# Headers sent when fetching the spec from a URL and when dispatching tool calls.
|
|
27
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
28
|
+
attr_reader :headers
|
|
29
|
+
|
|
30
|
+
sig { params(headers: T::Hash[Symbol, String]).void }
|
|
31
|
+
attr_writer :headers
|
|
32
|
+
|
|
33
|
+
# Top-level filter with simple boolean logic (no nesting)
|
|
34
|
+
sig { returns(T.nilable(Cadenya::ToolFilter)) }
|
|
35
|
+
attr_reader :include_tools
|
|
36
|
+
|
|
37
|
+
sig { params(include_tools: Cadenya::ToolFilter::OrHash).void }
|
|
38
|
+
attr_writer :include_tools
|
|
39
|
+
|
|
40
|
+
# Name of the server entry in the spec's servers array (OpenAPI 3.2 server.name
|
|
41
|
+
# field). Used to select which server URL to dispatch to when base_url is not set.
|
|
42
|
+
# If unset, the first server is used. Ignored when base_url is set.
|
|
43
|
+
sig { returns(T.nilable(String)) }
|
|
44
|
+
attr_reader :server_name
|
|
45
|
+
|
|
46
|
+
sig { params(server_name: String).void }
|
|
47
|
+
attr_writer :server_name
|
|
48
|
+
|
|
49
|
+
# Approval filters that will automatically set the approval requirement on tools
|
|
50
|
+
# synced from an external source
|
|
51
|
+
sig { returns(T.nilable(Cadenya::ApprovalRequirementFilter)) }
|
|
52
|
+
attr_reader :tool_approvals
|
|
53
|
+
|
|
54
|
+
sig do
|
|
55
|
+
params(tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash).void
|
|
56
|
+
end
|
|
57
|
+
attr_writer :tool_approvals
|
|
58
|
+
|
|
59
|
+
# ID of a COMPLETE Upload containing the OpenAPI spec document.
|
|
60
|
+
sig { returns(T.nilable(String)) }
|
|
61
|
+
attr_reader :upload_id
|
|
62
|
+
|
|
63
|
+
sig { params(upload_id: String).void }
|
|
64
|
+
attr_writer :upload_id
|
|
65
|
+
|
|
66
|
+
# URL to fetch the OpenAPI spec from. Synced automatically every hour.
|
|
67
|
+
sig { returns(T.nilable(String)) }
|
|
68
|
+
attr_reader :url
|
|
69
|
+
|
|
70
|
+
sig { params(url: String).void }
|
|
71
|
+
attr_writer :url
|
|
72
|
+
|
|
73
|
+
sig do
|
|
74
|
+
params(
|
|
75
|
+
base_url: String,
|
|
76
|
+
exclude_tools: Cadenya::ToolFilter::OrHash,
|
|
77
|
+
headers: T::Hash[Symbol, String],
|
|
78
|
+
include_tools: Cadenya::ToolFilter::OrHash,
|
|
79
|
+
server_name: String,
|
|
80
|
+
tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash,
|
|
81
|
+
upload_id: String,
|
|
82
|
+
url: String
|
|
83
|
+
).returns(T.attached_class)
|
|
84
|
+
end
|
|
85
|
+
def self.new(
|
|
86
|
+
# Base URL for dispatching tool calls. If set, overrides the server resolved from
|
|
87
|
+
# the spec's servers array.
|
|
88
|
+
base_url: nil,
|
|
89
|
+
# Top-level filter with simple boolean logic (no nesting)
|
|
90
|
+
exclude_tools: nil,
|
|
91
|
+
# Headers sent when fetching the spec from a URL and when dispatching tool calls.
|
|
92
|
+
headers: nil,
|
|
93
|
+
# Top-level filter with simple boolean logic (no nesting)
|
|
94
|
+
include_tools: nil,
|
|
95
|
+
# Name of the server entry in the spec's servers array (OpenAPI 3.2 server.name
|
|
96
|
+
# field). Used to select which server URL to dispatch to when base_url is not set.
|
|
97
|
+
# If unset, the first server is used. Ignored when base_url is set.
|
|
98
|
+
server_name: nil,
|
|
99
|
+
# Approval filters that will automatically set the approval requirement on tools
|
|
100
|
+
# synced from an external source
|
|
101
|
+
tool_approvals: nil,
|
|
102
|
+
# ID of a COMPLETE Upload containing the OpenAPI spec document.
|
|
103
|
+
upload_id: nil,
|
|
104
|
+
# URL to fetch the OpenAPI spec from. Synced automatically every hour.
|
|
105
|
+
url: nil
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
sig do
|
|
110
|
+
override.returns(
|
|
111
|
+
{
|
|
112
|
+
base_url: String,
|
|
113
|
+
exclude_tools: Cadenya::ToolFilter,
|
|
114
|
+
headers: T::Hash[Symbol, String],
|
|
115
|
+
include_tools: Cadenya::ToolFilter,
|
|
116
|
+
server_name: String,
|
|
117
|
+
tool_approvals: Cadenya::ApprovalRequirementFilter,
|
|
118
|
+
upload_id: String,
|
|
119
|
+
url: String
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
end
|
|
123
|
+
def to_hash
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Models
|
|
5
|
+
class ToolSetGetOpenAPISpecParams < Cadenya::Internal::Type::BaseModel
|
|
6
|
+
extend Cadenya::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Cadenya::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
Cadenya::ToolSetGetOpenAPISpecParams,
|
|
13
|
+
Cadenya::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
sig { returns(String) }
|
|
18
|
+
attr_accessor :workspace_id
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :tool_set_id
|
|
22
|
+
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
workspace_id: String,
|
|
26
|
+
tool_set_id: String,
|
|
27
|
+
request_options: Cadenya::RequestOptions::OrHash
|
|
28
|
+
).returns(T.attached_class)
|
|
29
|
+
end
|
|
30
|
+
def self.new(workspace_id:, tool_set_id:, request_options: {})
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
override.returns(
|
|
35
|
+
{
|
|
36
|
+
workspace_id: String,
|
|
37
|
+
tool_set_id: String,
|
|
38
|
+
request_options: Cadenya::RequestOptions
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
def to_hash
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|