cadenya 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 (144) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +6 -6
  4. data/lib/cadenya/client.rb +18 -0
  5. data/lib/cadenya/internal/cursor_pagination.rb +2 -2
  6. data/lib/cadenya/models/agent_spec.rb +19 -4
  7. data/lib/cadenya/models/agents/webhook_delivery_data.rb +1 -0
  8. data/lib/cadenya/models/agents/webhook_delivery_list_params.rb +1 -0
  9. data/lib/cadenya/models/ai_provider_key.rb +30 -0
  10. data/lib/cadenya/models/ai_provider_key_create_params.rb +41 -0
  11. data/lib/cadenya/models/ai_provider_key_delete_params.rb +26 -0
  12. data/lib/cadenya/models/ai_provider_key_list_params.rb +61 -0
  13. data/lib/cadenya/models/ai_provider_key_retrieve_params.rb +26 -0
  14. data/lib/cadenya/models/ai_provider_key_spec.rb +36 -0
  15. data/lib/cadenya/models/ai_provider_key_update_params.rb +56 -0
  16. data/lib/cadenya/models/approval_requirement_filter.rb +26 -0
  17. data/lib/cadenya/models/attribute_filter.rb +38 -0
  18. data/lib/cadenya/models/objective_data.rb +21 -1
  19. data/lib/cadenya/models/objective_event_data.rb +32 -1
  20. data/lib/cadenya/models/objective_list_params.rb +2 -1
  21. data/lib/cadenya/models/objective_status.rb +2 -1
  22. data/lib/cadenya/models/profile_spec.rb +1 -0
  23. data/lib/cadenya/models/string_matcher.rb +47 -0
  24. data/lib/cadenya/models/tool_filter.rb +35 -0
  25. data/lib/cadenya/models/tool_set_adapter.rb +7 -1
  26. data/lib/cadenya/models/tool_set_adapter_mcp.rb +11 -33
  27. data/lib/cadenya/models/tool_set_adapter_openapi.rb +79 -0
  28. data/lib/cadenya/models/tool_set_get_openapi_spec_params.rb +26 -0
  29. data/lib/cadenya/models/tool_set_get_openapi_spec_response.rb +17 -0
  30. data/lib/cadenya/models/tool_sets/config_openapi.rb +29 -0
  31. data/lib/cadenya/models/tool_sets/tool_spec_config.rb +7 -1
  32. data/lib/cadenya/models/workspace.rb +27 -1
  33. data/lib/cadenya/models/workspace_admin/member_add_params.rb +39 -0
  34. data/lib/cadenya/models/workspace_admin/member_list_params.rb +39 -0
  35. data/lib/cadenya/models/workspace_admin/member_remove_params.rb +28 -0
  36. data/lib/cadenya/models/workspace_admin/profile_list_params.rb +44 -0
  37. data/lib/cadenya/models/workspace_admin_archive_params.rb +20 -0
  38. data/lib/cadenya/models/workspace_admin_create_params.rb +70 -0
  39. data/lib/cadenya/models/workspace_admin_list_params.rb +42 -0
  40. data/lib/cadenya/models/workspace_admin_retrieve_params.rb +20 -0
  41. data/lib/cadenya/models/workspace_admin_update_params.rb +85 -0
  42. data/lib/cadenya/models/workspace_member.rb +53 -0
  43. data/lib/cadenya/models.rb +40 -2
  44. data/lib/cadenya/resources/ai_provider_keys.rb +168 -0
  45. data/lib/cadenya/resources/tool_sets.rb +31 -0
  46. data/lib/cadenya/resources/workspace_admin/members.rb +107 -0
  47. data/lib/cadenya/resources/workspace_admin/profiles.rb +54 -0
  48. data/lib/cadenya/resources/workspace_admin.rb +173 -0
  49. data/lib/cadenya/resources/workspaces.rb +4 -0
  50. data/lib/cadenya/version.rb +1 -1
  51. data/lib/cadenya.rb +29 -1
  52. data/rbi/cadenya/client.rbi +16 -0
  53. data/rbi/cadenya/models/agent_spec.rbi +21 -4
  54. data/rbi/cadenya/models/agents/webhook_delivery_data.rbi +5 -0
  55. data/rbi/cadenya/models/agents/webhook_delivery_list_params.rbi +5 -0
  56. data/rbi/cadenya/models/ai_provider_key.rbi +51 -0
  57. data/rbi/cadenya/models/ai_provider_key_create_params.rbi +65 -0
  58. data/rbi/cadenya/models/ai_provider_key_delete_params.rbi +43 -0
  59. data/rbi/cadenya/models/ai_provider_key_list_params.rbi +96 -0
  60. data/rbi/cadenya/models/ai_provider_key_retrieve_params.rbi +46 -0
  61. data/rbi/cadenya/models/ai_provider_key_spec.rbi +56 -0
  62. data/rbi/cadenya/models/ai_provider_key_update_params.rbi +82 -0
  63. data/rbi/cadenya/models/approval_requirement_filter.rbi +45 -0
  64. data/rbi/cadenya/models/attribute_filter.rbi +84 -0
  65. data/rbi/cadenya/models/objective_data.rbi +26 -0
  66. data/rbi/cadenya/models/objective_event_data.rbi +52 -0
  67. data/rbi/cadenya/models/objective_list_params.rbi +7 -2
  68. data/rbi/cadenya/models/objective_status.rbi +4 -2
  69. data/rbi/cadenya/models/profile_spec.rbi +5 -0
  70. data/rbi/cadenya/models/string_matcher.rbi +84 -0
  71. data/rbi/cadenya/models/tool_filter.rbi +66 -0
  72. data/rbi/cadenya/models/tool_set_adapter.rbi +14 -3
  73. data/rbi/cadenya/models/tool_set_adapter_mcp.rbi +16 -62
  74. data/rbi/cadenya/models/tool_set_adapter_openapi.rbi +127 -0
  75. data/rbi/cadenya/models/tool_set_get_openapi_spec_params.rbi +46 -0
  76. data/rbi/cadenya/models/tool_set_get_openapi_spec_response.rbi +33 -0
  77. data/rbi/cadenya/models/tool_sets/config_openapi.rbi +48 -0
  78. data/rbi/cadenya/models/tool_sets/tool_spec_config.rbi +11 -3
  79. data/rbi/cadenya/models/workspace.rbi +39 -3
  80. data/rbi/cadenya/models/workspace_admin/member_add_params.rbi +68 -0
  81. data/rbi/cadenya/models/workspace_admin/member_list_params.rbi +68 -0
  82. data/rbi/cadenya/models/workspace_admin/member_remove_params.rbi +48 -0
  83. data/rbi/cadenya/models/workspace_admin/profile_list_params.rbi +75 -0
  84. data/rbi/cadenya/models/workspace_admin_archive_params.rbi +38 -0
  85. data/rbi/cadenya/models/workspace_admin_create_params.rbi +127 -0
  86. data/rbi/cadenya/models/workspace_admin_list_params.rbi +70 -0
  87. data/rbi/cadenya/models/workspace_admin_retrieve_params.rbi +38 -0
  88. data/rbi/cadenya/models/workspace_admin_update_params.rbi +144 -0
  89. data/rbi/cadenya/models/workspace_member.rbi +80 -0
  90. data/rbi/cadenya/models.rbi +40 -2
  91. data/rbi/cadenya/resources/ai_provider_keys.rbi +125 -0
  92. data/rbi/cadenya/resources/tool_sets.rbi +18 -0
  93. data/rbi/cadenya/resources/workspace_admin/members.rbi +83 -0
  94. data/rbi/cadenya/resources/workspace_admin/profiles.rbi +42 -0
  95. data/rbi/cadenya/resources/workspace_admin.rbi +131 -0
  96. data/rbi/cadenya/resources/workspaces.rbi +4 -0
  97. data/sig/cadenya/client.rbs +4 -0
  98. data/sig/cadenya/models/agent_spec.rbs +12 -5
  99. data/sig/cadenya/models/agents/webhook_delivery_data.rbs +2 -0
  100. data/sig/cadenya/models/agents/webhook_delivery_list_params.rbs +2 -0
  101. data/sig/cadenya/models/ai_provider_key.rbs +22 -0
  102. data/sig/cadenya/models/ai_provider_key_create_params.rbs +36 -0
  103. data/sig/cadenya/models/ai_provider_key_delete_params.rbs +28 -0
  104. data/sig/cadenya/models/ai_provider_key_list_params.rbs +61 -0
  105. data/sig/cadenya/models/ai_provider_key_retrieve_params.rbs +28 -0
  106. data/sig/cadenya/models/ai_provider_key_spec.rbs +28 -0
  107. data/sig/cadenya/models/ai_provider_key_update_params.rbs +54 -0
  108. data/sig/cadenya/models/approval_requirement_filter.rbs +20 -0
  109. data/sig/cadenya/models/attribute_filter.rbs +44 -0
  110. data/sig/cadenya/models/objective_data.rbs +14 -0
  111. data/sig/cadenya/models/objective_event_data.rbs +21 -0
  112. data/sig/cadenya/models/objective_list_params.rbs +4 -2
  113. data/sig/cadenya/models/objective_status.rbs +4 -2
  114. data/sig/cadenya/models/profile_spec.rbs +5 -1
  115. data/sig/cadenya/models/string_matcher.rbs +57 -0
  116. data/sig/cadenya/models/tool_filter.rbs +41 -0
  117. data/sig/cadenya/models/tool_set_adapter.rbs +15 -3
  118. data/sig/cadenya/models/tool_set_adapter_mcp.rbs +16 -32
  119. data/sig/cadenya/models/tool_set_adapter_openapi.rbs +73 -0
  120. data/sig/cadenya/models/tool_set_get_openapi_spec_params.rbs +28 -0
  121. data/sig/cadenya/models/tool_set_get_openapi_spec_response.rbs +15 -0
  122. data/sig/cadenya/models/tool_sets/config_openapi.rbs +30 -0
  123. data/sig/cadenya/models/tool_sets/tool_spec_config.rbs +12 -3
  124. data/sig/cadenya/models/workspace.rbs +24 -3
  125. data/sig/cadenya/models/workspace_admin/member_add_params.rbs +38 -0
  126. data/sig/cadenya/models/workspace_admin/member_list_params.rbs +38 -0
  127. data/sig/cadenya/models/workspace_admin/member_remove_params.rbs +30 -0
  128. data/sig/cadenya/models/workspace_admin/profile_list_params.rbs +40 -0
  129. data/sig/cadenya/models/workspace_admin_archive_params.rbs +23 -0
  130. data/sig/cadenya/models/workspace_admin_create_params.rbs +58 -0
  131. data/sig/cadenya/models/workspace_admin_list_params.rbs +38 -0
  132. data/sig/cadenya/models/workspace_admin_retrieve_params.rbs +23 -0
  133. data/sig/cadenya/models/workspace_admin_update_params.rbs +76 -0
  134. data/sig/cadenya/models/workspace_member.rbs +46 -0
  135. data/sig/cadenya/models.rbs +40 -2
  136. data/sig/cadenya/resources/ai_provider_keys.rbs +45 -0
  137. data/sig/cadenya/resources/tool_sets.rbs +6 -0
  138. data/sig/cadenya/resources/workspace_admin/members.rbs +29 -0
  139. data/sig/cadenya/resources/workspace_admin/profiles.rbs +16 -0
  140. data/sig/cadenya/resources/workspace_admin.rbs +42 -0
  141. metadata +89 -5
  142. data/lib/cadenya/models/mcp_tool_filter.rb +0 -111
  143. data/rbi/cadenya/models/mcp_tool_filter.rbi +0 -235
  144. data/sig/cadenya/models/mcp_tool_filter.rbs +0 -138
@@ -0,0 +1,173 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Resources
5
+ # Administer workspaces across the account: create and archive workspaces and
6
+ # manage their membership. These operations are account-scoped and require the
7
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
8
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
9
+ # an admin can manage any workspace in the account, including ones they are not
10
+ # themselves a member of.
11
+ class WorkspaceAdmin
12
+ # Administer workspaces across the account: create and archive workspaces and
13
+ # manage their membership. These operations are account-scoped and require the
14
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
15
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
16
+ # an admin can manage any workspace in the account, including ones they are not
17
+ # themselves a member of.
18
+ # @return [Cadenya::Resources::WorkspaceAdmin::Members]
19
+ attr_reader :members
20
+
21
+ # Administer workspaces across the account: create and archive workspaces and
22
+ # manage their membership. These operations are account-scoped and require the
23
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
24
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
25
+ # an admin can manage any workspace in the account, including ones they are not
26
+ # themselves a member of.
27
+ # @return [Cadenya::Resources::WorkspaceAdmin::Profiles]
28
+ attr_reader :profiles
29
+
30
+ # Some parameter documentations has been truncated, see
31
+ # {Cadenya::Models::WorkspaceAdminCreateParams} for more details.
32
+ #
33
+ # Creates a new workspace in the account. Admin only.
34
+ #
35
+ # @overload create(metadata:, spec:, request_options: {})
36
+ #
37
+ # @param metadata [Cadenya::Models::WorkspaceAdminCreateParams::Metadata] CreateAccountResourceMetadata contains the user-provided fields for creating
38
+ #
39
+ # @param spec [Cadenya::Models::WorkspaceSpec]
40
+ #
41
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
42
+ #
43
+ # @return [Cadenya::Models::Workspace]
44
+ #
45
+ # @see Cadenya::Models::WorkspaceAdminCreateParams
46
+ def create(params)
47
+ parsed, options = Cadenya::WorkspaceAdminCreateParams.dump_request(params)
48
+ @client.request(
49
+ method: :post,
50
+ path: "v1/account/workspaces",
51
+ body: parsed,
52
+ model: Cadenya::Workspace,
53
+ options: options
54
+ )
55
+ end
56
+
57
+ # Retrieves a workspace in the account by ID. Admin only.
58
+ #
59
+ # @overload retrieve(workspace_id, request_options: {})
60
+ #
61
+ # @param workspace_id [String] Workspace ID to retrieve (path).
62
+ #
63
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
64
+ #
65
+ # @return [Cadenya::Models::Workspace]
66
+ #
67
+ # @see Cadenya::Models::WorkspaceAdminRetrieveParams
68
+ def retrieve(workspace_id, params = {})
69
+ @client.request(
70
+ method: :get,
71
+ path: ["v1/account/workspaces/%1$s", workspace_id],
72
+ model: Cadenya::Workspace,
73
+ options: params[:request_options]
74
+ )
75
+ end
76
+
77
+ # Some parameter documentations has been truncated, see
78
+ # {Cadenya::Models::WorkspaceAdminUpdateParams} for more details.
79
+ #
80
+ # Updates a workspace's metadata (e.g. name) and spec. Admin only.
81
+ #
82
+ # @overload update(workspace_id, metadata: nil, spec: nil, update_mask: nil, request_options: {})
83
+ #
84
+ # @param workspace_id [String] Workspace ID to update (path).
85
+ #
86
+ # @param metadata [Cadenya::Models::WorkspaceAdminUpdateParams::Metadata] UpdateAccountResourceMetadata contains the user-provided fields for updating
87
+ #
88
+ # @param spec [Cadenya::Models::WorkspaceSpec]
89
+ #
90
+ # @param update_mask [String] Fields to update.
91
+ #
92
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
93
+ #
94
+ # @return [Cadenya::Models::Workspace]
95
+ #
96
+ # @see Cadenya::Models::WorkspaceAdminUpdateParams
97
+ def update(workspace_id, params = {})
98
+ parsed, options = Cadenya::WorkspaceAdminUpdateParams.dump_request(params)
99
+ @client.request(
100
+ method: :patch,
101
+ path: ["v1/account/workspaces/%1$s", workspace_id],
102
+ body: parsed,
103
+ model: Cadenya::Workspace,
104
+ options: options
105
+ )
106
+ end
107
+
108
+ # Some parameter documentations has been truncated, see
109
+ # {Cadenya::Models::WorkspaceAdminListParams} for more details.
110
+ #
111
+ # Lists every workspace in the account, optionally including archived ones. Admin
112
+ # only.
113
+ #
114
+ # @overload list(cursor: nil, include_archived: nil, limit: nil, request_options: {})
115
+ #
116
+ # @param cursor [String] Pagination cursor from previous response
117
+ #
118
+ # @param include_archived [Boolean] When true, archived workspaces are included in the results. Defaults to
119
+ #
120
+ # @param limit [Integer] Maximum number of results to return
121
+ #
122
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
123
+ #
124
+ # @return [Cadenya::Internal::CursorPagination<Cadenya::Models::Workspace>]
125
+ #
126
+ # @see Cadenya::Models::WorkspaceAdminListParams
127
+ def list(params = {})
128
+ parsed, options = Cadenya::WorkspaceAdminListParams.dump_request(params)
129
+ query = Cadenya::Internal::Util.encode_query_params(parsed)
130
+ @client.request(
131
+ method: :get,
132
+ path: "v1/account/workspaces",
133
+ query: query.transform_keys(include_archived: "includeArchived"),
134
+ page: Cadenya::Internal::CursorPagination,
135
+ model: Cadenya::Workspace,
136
+ options: options
137
+ )
138
+ end
139
+
140
+ # Archives a workspace (soft delete). The workspace is retained, but any
141
+ # subsequent request scoped to it returns a permission error. Archiving the
142
+ # account's last active (non-archived) workspace is not allowed and returns
143
+ # FailedPrecondition. Admin only.
144
+ #
145
+ # @overload archive(workspace_id, request_options: {})
146
+ #
147
+ # @param workspace_id [String] Workspace ID to archive (path).
148
+ #
149
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
150
+ #
151
+ # @return [nil]
152
+ #
153
+ # @see Cadenya::Models::WorkspaceAdminArchiveParams
154
+ def archive(workspace_id, params = {})
155
+ @client.request(
156
+ method: :delete,
157
+ path: ["v1/account/workspaces/%1$s", workspace_id],
158
+ model: NilClass,
159
+ options: params[:request_options]
160
+ )
161
+ end
162
+
163
+ # @api private
164
+ #
165
+ # @param client [Cadenya::Client]
166
+ def initialize(client:)
167
+ @client = client
168
+ @members = Cadenya::Resources::WorkspaceAdmin::Members.new(client: client)
169
+ @profiles = Cadenya::Resources::WorkspaceAdmin::Profiles.new(client: client)
170
+ end
171
+ end
172
+ end
173
+ end
@@ -4,6 +4,10 @@ module Cadenya
4
4
  module Resources
5
5
  # Manage workspaces within an account. Workspaces provide organizational grouping
6
6
  # and isolation for resources such as agents, tools, and API keys.
7
+ #
8
+ # This is the workspace-scoped, end-user surface. Administrative operations
9
+ # (create / archive workspaces, manage members) live in WorkspaceAdminService
10
+ # under /v1/account/workspaces and require the admin role.
7
11
  class Workspaces
8
12
  # Lists all workspaces for the current account
9
13
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cadenya
4
- VERSION = "0.2.0"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/cadenya.rb CHANGED
@@ -108,6 +108,13 @@ require_relative "cadenya/models/agent_schedule_entry"
108
108
  require_relative "cadenya/models/agent_spec"
109
109
  require_relative "cadenya/models/agent_update_params"
110
110
  require_relative "cadenya/models/agent_variation_entry"
111
+ require_relative "cadenya/models/ai_provider_key"
112
+ require_relative "cadenya/models/ai_provider_key_create_params"
113
+ require_relative "cadenya/models/ai_provider_key_delete_params"
114
+ require_relative "cadenya/models/ai_provider_key_list_params"
115
+ require_relative "cadenya/models/ai_provider_key_retrieve_params"
116
+ require_relative "cadenya/models/ai_provider_key_spec"
117
+ require_relative "cadenya/models/ai_provider_key_update_params"
111
118
  require_relative "cadenya/models/api_key"
112
119
  require_relative "cadenya/models/api_key_create_params"
113
120
  require_relative "cadenya/models/api_key_delete_params"
@@ -120,8 +127,10 @@ require_relative "cadenya/models/api_keys/access_list_params"
120
127
  require_relative "cadenya/models/api_keys/access_remove_params"
121
128
  require_relative "cadenya/models/api_key_spec"
122
129
  require_relative "cadenya/models/api_key_update_params"
130
+ require_relative "cadenya/models/approval_requirement_filter"
123
131
  require_relative "cadenya/models/assistant_message"
124
132
  require_relative "cadenya/models/assistant_tool_call"
133
+ require_relative "cadenya/models/attribute_filter"
125
134
  require_relative "cadenya/models/bare_metadata"
126
135
  require_relative "cadenya/models/bulk_workspace_apply"
127
136
  require_relative "cadenya/models/bulk_workspace_apply_data"
@@ -146,7 +155,6 @@ require_relative "cadenya/models/callable_tool"
146
155
  require_relative "cadenya/models/context_window_compacted"
147
156
  require_relative "cadenya/models/create_operation_metadata"
148
157
  require_relative "cadenya/models/create_resource_metadata"
149
- require_relative "cadenya/models/mcp_tool_filter"
150
158
  require_relative "cadenya/models/memory_entry_item"
151
159
  require_relative "cadenya/models/memory_layer"
152
160
  require_relative "cadenya/models/memory_layer_create_params"
@@ -222,6 +230,7 @@ require_relative "cadenya/models/resource_metadata"
222
230
  require_relative "cadenya/models/rotate_webhook_signing_key_response"
223
231
  require_relative "cadenya/models/search_search_tools_or_tool_sets_params"
224
232
  require_relative "cadenya/models/search_search_tools_or_tool_sets_response"
233
+ require_relative "cadenya/models/string_matcher"
225
234
  require_relative "cadenya/models/sub_agent_spawned"
226
235
  require_relative "cadenya/models/sub_agent_updated"
227
236
  require_relative "cadenya/models/sync_completed"
@@ -233,22 +242,27 @@ require_relative "cadenya/models/tool_called"
233
242
  require_relative "cadenya/models/tool_denied"
234
243
  require_relative "cadenya/models/tool_entry"
235
244
  require_relative "cadenya/models/tool_error"
245
+ require_relative "cadenya/models/tool_filter"
236
246
  require_relative "cadenya/models/tool_result"
237
247
  require_relative "cadenya/models/tool_set"
238
248
  require_relative "cadenya/models/tool_set_adapter"
239
249
  require_relative "cadenya/models/tool_set_adapter_http"
240
250
  require_relative "cadenya/models/tool_set_adapter_mcp"
251
+ require_relative "cadenya/models/tool_set_adapter_openapi"
241
252
  require_relative "cadenya/models/tool_set_create_params"
242
253
  require_relative "cadenya/models/tool_set_delete_params"
243
254
  require_relative "cadenya/models/tool_set_entry"
244
255
  require_relative "cadenya/models/tool_set_event"
245
256
  require_relative "cadenya/models/tool_set_event_data"
257
+ require_relative "cadenya/models/tool_set_get_openapi_spec_params"
258
+ require_relative "cadenya/models/tool_set_get_openapi_spec_response"
246
259
  require_relative "cadenya/models/tool_set_info"
247
260
  require_relative "cadenya/models/tool_set_list_events_params"
248
261
  require_relative "cadenya/models/tool_set_list_params"
249
262
  require_relative "cadenya/models/tool_set_retrieve_params"
250
263
  require_relative "cadenya/models/tool_sets/config_http"
251
264
  require_relative "cadenya/models/tool_sets/config_mcp"
265
+ require_relative "cadenya/models/tool_sets/config_openapi"
252
266
  require_relative "cadenya/models/tool_sets/tool"
253
267
  require_relative "cadenya/models/tool_sets/tool_create_params"
254
268
  require_relative "cadenya/models/tool_sets/tool_delete_params"
@@ -274,8 +288,18 @@ require_relative "cadenya/models/variation_memory_layer_entry"
274
288
  require_relative "cadenya/models/webhook_unsafe_unwrap_params"
275
289
  require_relative "cadenya/models/webhook_unwrap_params"
276
290
  require_relative "cadenya/models/workspace"
291
+ require_relative "cadenya/models/workspace_admin/member_add_params"
292
+ require_relative "cadenya/models/workspace_admin/member_list_params"
293
+ require_relative "cadenya/models/workspace_admin/member_remove_params"
294
+ require_relative "cadenya/models/workspace_admin/profile_list_params"
295
+ require_relative "cadenya/models/workspace_admin_archive_params"
296
+ require_relative "cadenya/models/workspace_admin_create_params"
297
+ require_relative "cadenya/models/workspace_admin_list_params"
298
+ require_relative "cadenya/models/workspace_admin_retrieve_params"
299
+ require_relative "cadenya/models/workspace_admin_update_params"
277
300
  require_relative "cadenya/models/workspace_get_params"
278
301
  require_relative "cadenya/models/workspace_list_params"
302
+ require_relative "cadenya/models/workspace_member"
279
303
  require_relative "cadenya/models/workspace_secret"
280
304
  require_relative "cadenya/models/workspace_secret_create_params"
281
305
  require_relative "cadenya/models/workspace_secret_delete_params"
@@ -292,6 +316,7 @@ require_relative "cadenya/resources/agents/feedback"
292
316
  require_relative "cadenya/resources/agents/schedules"
293
317
  require_relative "cadenya/resources/agents/variations"
294
318
  require_relative "cadenya/resources/agents/webhook_deliveries"
319
+ require_relative "cadenya/resources/ai_provider_keys"
295
320
  require_relative "cadenya/resources/api_keys"
296
321
  require_relative "cadenya/resources/api_keys/access"
297
322
  require_relative "cadenya/resources/bulk_workspace_resources"
@@ -309,5 +334,8 @@ require_relative "cadenya/resources/tool_sets"
309
334
  require_relative "cadenya/resources/tool_sets/tools"
310
335
  require_relative "cadenya/resources/uploads"
311
336
  require_relative "cadenya/resources/webhooks"
337
+ require_relative "cadenya/resources/workspace_admin"
338
+ require_relative "cadenya/resources/workspace_admin/members"
339
+ require_relative "cadenya/resources/workspace_admin/profiles"
312
340
  require_relative "cadenya/resources/workspaces"
313
341
  require_relative "cadenya/resources/workspace_secrets"
@@ -16,6 +16,9 @@ module Cadenya
16
16
  sig { returns(T.nilable(String)) }
17
17
  attr_reader :webhook_key
18
18
 
19
+ sig { returns(Cadenya::Resources::AIProviderKeys) }
20
+ attr_reader :ai_provider_keys
21
+
19
22
  # Manage the authenticated account. Accounts are the top-level organizational unit
20
23
  # and contain one or more workspaces.
21
24
  sig { returns(Cadenya::Resources::Account) }
@@ -68,9 +71,22 @@ module Cadenya
68
71
 
69
72
  # Manage workspaces within an account. Workspaces provide organizational grouping
70
73
  # and isolation for resources such as agents, tools, and API keys.
74
+ #
75
+ # This is the workspace-scoped, end-user surface. Administrative operations
76
+ # (create / archive workspaces, manage members) live in WorkspaceAdminService
77
+ # under /v1/account/workspaces and require the admin role.
71
78
  sig { returns(Cadenya::Resources::Workspaces) }
72
79
  attr_reader :workspaces
73
80
 
81
+ # Administer workspaces across the account: create and archive workspaces and
82
+ # manage their membership. These operations are account-scoped and require the
83
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
84
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
85
+ # an admin can manage any workspace in the account, including ones they are not
86
+ # themselves a member of.
87
+ sig { returns(Cadenya::Resources::WorkspaceAdmin) }
88
+ attr_reader :workspace_admin
89
+
74
90
  sig { returns(Cadenya::Resources::Webhooks) }
75
91
  attr_reader :webhooks
76
92
 
@@ -27,12 +27,22 @@ module Cadenya
27
27
  # data schema is also valuable when using an agent as a sub-agent, as the schema
28
28
  # is used as the tool's input parameter schema. If omitted, the sub-agent schema
29
29
  # will be loaded with a simple "prompt" free text string as its schema.
30
- sig { returns(T.nilable(T.anything)) }
30
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
31
31
  attr_reader :input_data_schema
32
32
 
33
- sig { params(input_data_schema: T.anything).void }
33
+ sig { params(input_data_schema: T::Hash[Symbol, T.anything]).void }
34
34
  attr_writer :input_data_schema
35
35
 
36
+ # Optional output definition for objectives created for this agent. When provided,
37
+ # Cadenya will append a tool to that will be called by the LLM in use by the
38
+ # variant to extract information in the format provided here. Use this option when
39
+ # you want structured data to be created by your objectives.
40
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
41
+ attr_reader :output_definition
42
+
43
+ sig { params(output_definition: T::Hash[Symbol, T.anything]).void }
44
+ attr_writer :output_definition
45
+
36
46
  # The URL that Cadenya will send events for any objective assigned to the agent.
37
47
  sig { returns(T.nilable(String)) }
38
48
  attr_reader :webhook_events_url
@@ -47,7 +57,8 @@ module Cadenya
47
57
  variation_selection_mode:
48
58
  Cadenya::AgentSpec::VariationSelectionMode::OrSymbol,
49
59
  description: String,
50
- input_data_schema: T.anything,
60
+ input_data_schema: T::Hash[Symbol, T.anything],
61
+ output_definition: T::Hash[Symbol, T.anything],
51
62
  webhook_events_url: String
52
63
  ).returns(T.attached_class)
53
64
  end
@@ -65,6 +76,11 @@ module Cadenya
65
76
  # is used as the tool's input parameter schema. If omitted, the sub-agent schema
66
77
  # will be loaded with a simple "prompt" free text string as its schema.
67
78
  input_data_schema: nil,
79
+ # Optional output definition for objectives created for this agent. When provided,
80
+ # Cadenya will append a tool to that will be called by the LLM in use by the
81
+ # variant to extract information in the format provided here. Use this option when
82
+ # you want structured data to be created by your objectives.
83
+ output_definition: nil,
68
84
  # The URL that Cadenya will send events for any objective assigned to the agent.
69
85
  webhook_events_url: nil
70
86
  )
@@ -77,7 +93,8 @@ module Cadenya
77
93
  variation_selection_mode:
78
94
  Cadenya::AgentSpec::VariationSelectionMode::OrSymbol,
79
95
  description: String,
80
- input_data_schema: T.anything,
96
+ input_data_schema: T::Hash[Symbol, T.anything],
97
+ output_definition: T::Hash[Symbol, T.anything],
81
98
  webhook_events_url: String
82
99
  }
83
100
  )
@@ -223,6 +223,11 @@ module Cadenya
223
223
  :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED,
224
224
  Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
225
225
  )
226
+ OBJECTIVE_EVENT_TYPE_FINALIZED =
227
+ T.let(
228
+ :OBJECTIVE_EVENT_TYPE_FINALIZED,
229
+ Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
230
+ )
226
231
 
227
232
  sig do
228
233
  override.returns(
@@ -192,6 +192,11 @@ module Cadenya
192
192
  :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED,
193
193
  Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
194
194
  )
195
+ OBJECTIVE_EVENT_TYPE_FINALIZED =
196
+ T.let(
197
+ :OBJECTIVE_EVENT_TYPE_FINALIZED,
198
+ Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
199
+ )
195
200
 
196
201
  sig do
197
202
  override.returns(
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AIProviderKey < Cadenya::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Cadenya::AIProviderKey, Cadenya::Internal::AnyHash)
9
+ end
10
+
11
+ # Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
12
+ sig { returns(Cadenya::ResourceMetadata) }
13
+ attr_reader :metadata
14
+
15
+ sig { params(metadata: Cadenya::ResourceMetadata::OrHash).void }
16
+ attr_writer :metadata
17
+
18
+ sig { returns(Cadenya::AIProviderKeySpec) }
19
+ attr_reader :spec
20
+
21
+ sig { params(spec: Cadenya::AIProviderKeySpec::OrHash).void }
22
+ attr_writer :spec
23
+
24
+ # AIProviderKey is a customer-provided (BYOK) credential for an AI provider,
25
+ # scoped to a workspace. The secret value is never returned in responses.
26
+ sig do
27
+ params(
28
+ metadata: Cadenya::ResourceMetadata::OrHash,
29
+ spec: Cadenya::AIProviderKeySpec::OrHash
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
34
+ metadata:,
35
+ spec:
36
+ )
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ {
42
+ metadata: Cadenya::ResourceMetadata,
43
+ spec: Cadenya::AIProviderKeySpec
44
+ }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AIProviderKeyCreateParams < 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(Cadenya::AIProviderKeyCreateParams, Cadenya::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :workspace_id
16
+
17
+ # CreateResourceMetadata contains the user-provided fields for creating a
18
+ # workspace-scoped resource. Read-only fields (id, account_id, workspace_id,
19
+ # profile_id, created_at) are excluded since they are set by the server.
20
+ sig { returns(Cadenya::CreateResourceMetadata) }
21
+ attr_reader :metadata
22
+
23
+ sig { params(metadata: Cadenya::CreateResourceMetadata::OrHash).void }
24
+ attr_writer :metadata
25
+
26
+ sig { returns(Cadenya::AIProviderKeySpec) }
27
+ attr_reader :spec
28
+
29
+ sig { params(spec: Cadenya::AIProviderKeySpec::OrHash).void }
30
+ attr_writer :spec
31
+
32
+ sig do
33
+ params(
34
+ workspace_id: String,
35
+ metadata: Cadenya::CreateResourceMetadata::OrHash,
36
+ spec: Cadenya::AIProviderKeySpec::OrHash,
37
+ request_options: Cadenya::RequestOptions::OrHash
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+ workspace_id:,
42
+ # CreateResourceMetadata contains the user-provided fields for creating a
43
+ # workspace-scoped resource. Read-only fields (id, account_id, workspace_id,
44
+ # profile_id, created_at) are excluded since they are set by the server.
45
+ metadata:,
46
+ spec:,
47
+ request_options: {}
48
+ )
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ {
54
+ workspace_id: String,
55
+ metadata: Cadenya::CreateResourceMetadata,
56
+ spec: Cadenya::AIProviderKeySpec,
57
+ request_options: Cadenya::RequestOptions
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AIProviderKeyDeleteParams < 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(Cadenya::AIProviderKeyDeleteParams, Cadenya::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :workspace_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig do
21
+ params(
22
+ workspace_id: String,
23
+ id: String,
24
+ request_options: Cadenya::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(workspace_id:, id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ {
33
+ workspace_id: String,
34
+ id: String,
35
+ request_options: Cadenya::RequestOptions
36
+ }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,96 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AIProviderKeyListParams < 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(Cadenya::AIProviderKeyListParams, Cadenya::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :workspace_id
16
+
17
+ # Pagination cursor from previous response
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :cursor
20
+
21
+ sig { params(cursor: String).void }
22
+ attr_writer :cursor
23
+
24
+ # Maximum number of results to return
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :limit
27
+
28
+ sig { params(limit: Integer).void }
29
+ attr_writer :limit
30
+
31
+ # Filter expression (query param: prefix)
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :prefix
34
+
35
+ sig { params(prefix: String).void }
36
+ attr_writer :prefix
37
+
38
+ # Free-form search query
39
+ sig { returns(T.nilable(String)) }
40
+ attr_reader :query
41
+
42
+ sig { params(query: String).void }
43
+ attr_writer :query
44
+
45
+ # Sort order for results (asc or desc by creation time)
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :sort_order
48
+
49
+ sig { params(sort_order: String).void }
50
+ attr_writer :sort_order
51
+
52
+ sig do
53
+ params(
54
+ workspace_id: String,
55
+ cursor: String,
56
+ limit: Integer,
57
+ prefix: String,
58
+ query: String,
59
+ sort_order: String,
60
+ request_options: Cadenya::RequestOptions::OrHash
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ workspace_id:,
65
+ # Pagination cursor from previous response
66
+ cursor: nil,
67
+ # Maximum number of results to return
68
+ limit: nil,
69
+ # Filter expression (query param: prefix)
70
+ prefix: nil,
71
+ # Free-form search query
72
+ query: nil,
73
+ # Sort order for results (asc or desc by creation time)
74
+ sort_order: nil,
75
+ request_options: {}
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ workspace_id: String,
83
+ cursor: String,
84
+ limit: Integer,
85
+ prefix: String,
86
+ query: String,
87
+ sort_order: String,
88
+ request_options: Cadenya::RequestOptions
89
+ }
90
+ )
91
+ end
92
+ def to_hash
93
+ end
94
+ end
95
+ end
96
+ end