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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3cc49ac49fbdbfff8fb89d30d752845056dc3d02f3c3d85bc0bfda74647948d
4
- data.tar.gz: fc413c92248c0b5eea54f808545eaf8207caa90cbbd043e38e798a7b3c05e917
3
+ metadata.gz: e7f15c89788992e84faa1b1a059033314f7c115317be1f0fdba0e49793bc0aa6
4
+ data.tar.gz: d56587810401e084e8b5497254d6a6680fc22b3eff1bf70af6bc20461a3b19e1
5
5
  SHA512:
6
- metadata.gz: c8efd167e60512e6bab2ea8532382565490fdfe2cd5bfa0a9f489b655c4cca369dc69fad7362cf1ff04981a41d297787936ce6a60133c1919e6bc6a09f3f6fd6
7
- data.tar.gz: 5626793207092ca923346d462f8a5755e3b297092f9b1ced17379f09ea6be3ad7f4977eb9a798943ef1902989abe722efccf18431ba951ccb5f06ecb79925bfb
6
+ metadata.gz: c696765a5ffb6e7c97c6b3cb729b711fe424626b45e6e0732ef37a5dc9b56bde28f8ca54d0db305657bf459b4e3dfa3081f905e26a17a6e503b3b5709b82ef38
7
+ data.tar.gz: 9f178edbcaf810c598ccf931ee62bc8c68479f41128c63143852a255b673dcd69e1306706407cf7c0bb7f2ced5c8c581be9d45be426d04ab0306e3ce13e934cc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2026-06-07)
4
+
5
+ Full Changelog: [v0.3.0...v0.4.0](https://github.com/cadenya/cadenya-ruby/compare/v0.3.0...v0.4.0)
6
+
7
+ ### Features
8
+
9
+ * Add AI Provider CRUD endpoints ([91caf5c](https://github.com/cadenya/cadenya-ruby/commit/91caf5c762a8e75460076b4a9a864c9a34345720))
10
+
11
+ ## 0.3.0 (2026-06-05)
12
+
13
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/cadenya/cadenya-ruby/compare/v0.2.0...v0.3.0)
14
+
15
+ ### Features
16
+
17
+ * Add admin profile search (workspaceAdmin.profiles.list) — ENG-308 ([1e4797b](https://github.com/cadenya/cadenya-ruby/commit/1e4797be9bef5f7382270eb22d4e7ee1cea5a317))
18
+ * **api:** api update ([8721ef8](https://github.com/cadenya/cadenya-ruby/commit/8721ef8a408a83e13ef49da9f8257027da9fa69d))
19
+ * **api:** api update ([e4f7e6e](https://github.com/cadenya/cadenya-ruby/commit/e4f7e6e38b74ecb01be4e006d24ce5878343d481))
20
+ * **api:** api update ([ca33f81](https://github.com/cadenya/cadenya-ruby/commit/ca33f814f4b7dbcdff61c64165a15742c1e281d0))
21
+ * **api:** api update ([e7a5a6d](https://github.com/cadenya/cadenya-ruby/commit/e7a5a6de7e7a9c4f9310e5feff50cc1a733103f1))
22
+ * **api:** api update ([98b0521](https://github.com/cadenya/cadenya-ruby/commit/98b0521380484243a201a4c0c2779808d4a2acad))
23
+ * **api:** api update ([f2e807e](https://github.com/cadenya/cadenya-ruby/commit/f2e807e762dc8d0e4b2dfcd4cf16ff5161ef3003))
24
+ * **api:** api update ([c2c28b1](https://github.com/cadenya/cadenya-ruby/commit/c2c28b16acff45120a9568952a812341502329fc))
25
+ * **api:** api update ([0cb5f64](https://github.com/cadenya/cadenya-ruby/commit/0cb5f6447508b9fa8ed4ca297bc5181955f50c90))
26
+ * **api:** api update ([2975430](https://github.com/cadenya/cadenya-ruby/commit/29754304ee42e35d1c3d38bd02bca0cf45271a16))
27
+
3
28
  ## 0.2.0 (2026-05-14)
4
29
 
5
30
  Full Changelog: [v0.1.0...v0.2.0](https://github.com/cadenya/cadenya-ruby/compare/v0.1.0...v0.2.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "cadenya", "~> 0.2.0"
29
+ gem "cadenya", "~> 0.4.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -53,15 +53,15 @@ List methods in the Cadenya API are paginated.
53
53
  This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
54
54
 
55
55
  ```ruby
56
- page = cadenya.agents.list
56
+ page = cadenya.ai_provider_keys.list
57
57
 
58
58
  # Fetch single item from page.
59
- agent = page.items[0]
60
- puts(agent.metadata)
59
+ ai_provider_key = page.items[0]
60
+ puts(ai_provider_key.metadata)
61
61
 
62
62
  # Automatically fetches more pages as needed.
63
- page.auto_paging_each do |agent|
64
- puts(agent.metadata)
63
+ page.auto_paging_each do |ai_provider_key|
64
+ puts(ai_provider_key.metadata)
65
65
  end
66
66
  ```
67
67
 
@@ -21,6 +21,9 @@ module Cadenya
21
21
  # @return [String, nil]
22
22
  attr_reader :webhook_key
23
23
 
24
+ # @return [Cadenya::Resources::AIProviderKeys]
25
+ attr_reader :ai_provider_keys
26
+
24
27
  # Manage the authenticated account. Accounts are the top-level organizational unit
25
28
  # and contain one or more workspaces.
26
29
  # @return [Cadenya::Resources::Account]
@@ -73,9 +76,22 @@ module Cadenya
73
76
 
74
77
  # Manage workspaces within an account. Workspaces provide organizational grouping
75
78
  # and isolation for resources such as agents, tools, and API keys.
79
+ #
80
+ # This is the workspace-scoped, end-user surface. Administrative operations
81
+ # (create / archive workspaces, manage members) live in WorkspaceAdminService
82
+ # under /v1/account/workspaces and require the admin role.
76
83
  # @return [Cadenya::Resources::Workspaces]
77
84
  attr_reader :workspaces
78
85
 
86
+ # Administer workspaces across the account: create and archive workspaces and
87
+ # manage their membership. These operations are account-scoped and require the
88
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
89
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
90
+ # an admin can manage any workspace in the account, including ones they are not
91
+ # themselves a member of.
92
+ # @return [Cadenya::Resources::WorkspaceAdmin]
93
+ attr_reader :workspace_admin
94
+
79
95
  # @return [Cadenya::Resources::Webhooks]
80
96
  attr_reader :webhooks
81
97
 
@@ -150,6 +166,7 @@ module Cadenya
150
166
  headers: headers
151
167
  )
152
168
 
169
+ @ai_provider_keys = Cadenya::Resources::AIProviderKeys.new(client: self)
153
170
  @account = Cadenya::Resources::Account.new(client: self)
154
171
  @agents = Cadenya::Resources::Agents.new(client: self)
155
172
  @objectives = Cadenya::Resources::Objectives.new(client: self)
@@ -161,6 +178,7 @@ module Cadenya
161
178
  @api_keys = Cadenya::Resources::APIKeys.new(client: self)
162
179
  @workspace_secrets = Cadenya::Resources::WorkspaceSecrets.new(client: self)
163
180
  @workspaces = Cadenya::Resources::Workspaces.new(client: self)
181
+ @workspace_admin = Cadenya::Resources::WorkspaceAdmin.new(client: self)
164
182
  @webhooks = Cadenya::Resources::Webhooks.new(client: self)
165
183
  @bulk_workspace_resources = Cadenya::Resources::BulkWorkspaceResources.new(client: self)
166
184
  end
@@ -10,8 +10,8 @@ module Cadenya
10
10
  # end
11
11
  #
12
12
  # @example
13
- # cursor_pagination.auto_paging_each do |agent|
14
- # puts(agent)
13
+ # cursor_pagination.auto_paging_each do |ai_provider_key|
14
+ # puts(ai_provider_key)
15
15
  # end
16
16
  class CursorPagination
17
17
  include Cadenya::Internal::Type::BasePage
@@ -31,8 +31,21 @@ module Cadenya
31
31
  # is used as the tool's input parameter schema. If omitted, the sub-agent schema
32
32
  # will be loaded with a simple "prompt" free text string as its schema.
33
33
  #
34
- # @return [Object, nil]
35
- optional :input_data_schema, Cadenya::Internal::Type::Unknown, api_name: :inputDataSchema
34
+ # @return [Hash{Symbol=>Object}, nil]
35
+ optional :input_data_schema,
36
+ Cadenya::Internal::Type::HashOf[Cadenya::Internal::Type::Unknown],
37
+ api_name: :inputDataSchema
38
+
39
+ # @!attribute output_definition
40
+ # Optional output definition for objectives created for this agent. When provided,
41
+ # Cadenya will append a tool to that will be called by the LLM in use by the
42
+ # variant to extract information in the format provided here. Use this option when
43
+ # you want structured data to be created by your objectives.
44
+ #
45
+ # @return [Hash{Symbol=>Object}, nil]
46
+ optional :output_definition,
47
+ Cadenya::Internal::Type::HashOf[Cadenya::Internal::Type::Unknown],
48
+ api_name: :outputDefinition
36
49
 
37
50
  # @!attribute webhook_events_url
38
51
  # The URL that Cadenya will send events for any objective assigned to the agent.
@@ -40,7 +53,7 @@ module Cadenya
40
53
  # @return [String, nil]
41
54
  optional :webhook_events_url, String, api_name: :webhookEventsUrl
42
55
 
43
- # @!method initialize(status:, variation_selection_mode:, description: nil, input_data_schema: nil, webhook_events_url: nil)
56
+ # @!method initialize(status:, variation_selection_mode:, description: nil, input_data_schema: nil, output_definition: nil, webhook_events_url: nil)
44
57
  # Some parameter documentations has been truncated, see
45
58
  # {Cadenya::Models::AgentSpec} for more details.
46
59
  #
@@ -52,7 +65,9 @@ module Cadenya
52
65
  #
53
66
  # @param description [String] Description of the agent's purpose
54
67
  #
55
- # @param input_data_schema [Object] InputDataSchema is used for enforcing a data input when objectives are created.
68
+ # @param input_data_schema [Hash{Symbol=>Object}] InputDataSchema is used for enforcing a data input when objectives are created.
69
+ #
70
+ # @param output_definition [Hash{Symbol=>Object}] Optional output definition for objectives created for this agent.
56
71
  #
57
72
  # @param webhook_events_url [String] The URL that Cadenya will send events for any objective assigned to the agent.
58
73
 
@@ -134,6 +134,7 @@ module Cadenya
134
134
  OBJECTIVE_EVENT_TYPE_CANCELLED = :OBJECTIVE_EVENT_TYPE_CANCELLED
135
135
  OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED
136
136
  OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED
137
+ OBJECTIVE_EVENT_TYPE_FINALIZED = :OBJECTIVE_EVENT_TYPE_FINALIZED
137
138
 
138
139
  # @!method self.values
139
140
  # @return [Array<Symbol>]
@@ -76,6 +76,7 @@ module Cadenya
76
76
  OBJECTIVE_EVENT_TYPE_CANCELLED = :OBJECTIVE_EVENT_TYPE_CANCELLED
77
77
  OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED
78
78
  OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED
79
+ OBJECTIVE_EVENT_TYPE_FINALIZED = :OBJECTIVE_EVENT_TYPE_FINALIZED
79
80
 
80
81
  # @!method self.values
81
82
  # @return [Array<Symbol>]
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#create
6
+ class AIProviderKey < Cadenya::Internal::Type::BaseModel
7
+ # @!attribute metadata
8
+ # Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
9
+ #
10
+ # @return [Cadenya::Models::ResourceMetadata]
11
+ required :metadata, -> { Cadenya::ResourceMetadata }
12
+
13
+ # @!attribute spec
14
+ #
15
+ # @return [Cadenya::Models::AIProviderKeySpec]
16
+ required :spec, -> { Cadenya::AIProviderKeySpec }
17
+
18
+ # @!method initialize(metadata:, spec:)
19
+ # Some parameter documentations has been truncated, see
20
+ # {Cadenya::Models::AIProviderKey} for more details.
21
+ #
22
+ # AIProviderKey is a customer-provided (BYOK) credential for an AI provider,
23
+ # scoped to a workspace. The secret value is never returned in responses.
24
+ #
25
+ # @param metadata [Cadenya::Models::ResourceMetadata] Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
26
+ #
27
+ # @param spec [Cadenya::Models::AIProviderKeySpec]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#create
6
+ class AIProviderKeyCreateParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute metadata
16
+ # CreateResourceMetadata contains the user-provided fields for creating a
17
+ # workspace-scoped resource. Read-only fields (id, account_id, workspace_id,
18
+ # profile_id, created_at) are excluded since they are set by the server.
19
+ #
20
+ # @return [Cadenya::Models::CreateResourceMetadata]
21
+ required :metadata, -> { Cadenya::CreateResourceMetadata }
22
+
23
+ # @!attribute spec
24
+ #
25
+ # @return [Cadenya::Models::AIProviderKeySpec]
26
+ required :spec, -> { Cadenya::AIProviderKeySpec }
27
+
28
+ # @!method initialize(workspace_id:, metadata:, spec:, request_options: {})
29
+ # Some parameter documentations has been truncated, see
30
+ # {Cadenya::Models::AIProviderKeyCreateParams} for more details.
31
+ #
32
+ # @param workspace_id [String]
33
+ #
34
+ # @param metadata [Cadenya::Models::CreateResourceMetadata] CreateResourceMetadata contains the user-provided fields for creating
35
+ #
36
+ # @param spec [Cadenya::Models::AIProviderKeySpec]
37
+ #
38
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#delete
6
+ class AIProviderKeyDeleteParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute id
16
+ #
17
+ # @return [String]
18
+ required :id, String
19
+
20
+ # @!method initialize(workspace_id:, id:, request_options: {})
21
+ # @param workspace_id [String]
22
+ # @param id [String]
23
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#list
6
+ class AIProviderKeyListParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute cursor
16
+ # Pagination cursor from previous response
17
+ #
18
+ # @return [String, nil]
19
+ optional :cursor, String
20
+
21
+ # @!attribute limit
22
+ # Maximum number of results to return
23
+ #
24
+ # @return [Integer, nil]
25
+ optional :limit, Integer
26
+
27
+ # @!attribute prefix
28
+ # Filter expression (query param: prefix)
29
+ #
30
+ # @return [String, nil]
31
+ optional :prefix, String
32
+
33
+ # @!attribute query
34
+ # Free-form search query
35
+ #
36
+ # @return [String, nil]
37
+ optional :query, String
38
+
39
+ # @!attribute sort_order
40
+ # Sort order for results (asc or desc by creation time)
41
+ #
42
+ # @return [String, nil]
43
+ optional :sort_order, String
44
+
45
+ # @!method initialize(workspace_id:, cursor: nil, limit: nil, prefix: nil, query: nil, sort_order: nil, request_options: {})
46
+ # @param workspace_id [String]
47
+ #
48
+ # @param cursor [String] Pagination cursor from previous response
49
+ #
50
+ # @param limit [Integer] Maximum number of results to return
51
+ #
52
+ # @param prefix [String] Filter expression (query param: prefix)
53
+ #
54
+ # @param query [String] Free-form search query
55
+ #
56
+ # @param sort_order [String] Sort order for results (asc or desc by creation time)
57
+ #
58
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#retrieve
6
+ class AIProviderKeyRetrieveParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute id
16
+ #
17
+ # @return [String]
18
+ required :id, String
19
+
20
+ # @!method initialize(workspace_id:, id:, request_options: {})
21
+ # @param workspace_id [String]
22
+ # @param id [String]
23
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AIProviderKeySpec < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute api_key
7
+ # The provider credential. Accepted on create/update; never populated in responses
8
+ # (the server returns an empty value to avoid leaking it).
9
+ #
10
+ # @return [String, nil]
11
+ optional :api_key, String, api_name: :apiKey
12
+
13
+ # @!attribute provider
14
+ # The AI provider this key authenticates against. Currently "openrouter".
15
+ #
16
+ # @return [String, nil]
17
+ optional :provider, String
18
+
19
+ # @!attribute region
20
+ # The provider region. "us" or "eu". Defaults to "us".
21
+ #
22
+ # @return [String, nil]
23
+ optional :region, String
24
+
25
+ # @!method initialize(api_key: nil, provider: nil, region: nil)
26
+ # Some parameter documentations has been truncated, see
27
+ # {Cadenya::Models::AIProviderKeySpec} for more details.
28
+ #
29
+ # @param api_key [String] The provider credential. Accepted on create/update; never populated in
30
+ #
31
+ # @param provider [String] The AI provider this key authenticates against. Currently "openrouter".
32
+ #
33
+ # @param region [String] The provider region. "us" or "eu". Defaults to "us".
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::AIProviderKeys#update
6
+ class AIProviderKeyUpdateParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute id
16
+ #
17
+ # @return [String]
18
+ required :id, String
19
+
20
+ # @!attribute metadata
21
+ # UpdateResourceMetadata contains the user-provided fields for updating a
22
+ # workspace-scoped resource. Read-only fields (id, account_id, workspace_id,
23
+ # profile_id, created_at) are excluded since they are set by the server.
24
+ #
25
+ # @return [Cadenya::Models::UpdateResourceMetadata, nil]
26
+ optional :metadata, -> { Cadenya::UpdateResourceMetadata }
27
+
28
+ # @!attribute spec
29
+ #
30
+ # @return [Cadenya::Models::AIProviderKeySpec, nil]
31
+ optional :spec, -> { Cadenya::AIProviderKeySpec }
32
+
33
+ # @!attribute update_mask
34
+ # Fields to update.
35
+ #
36
+ # @return [String, nil]
37
+ optional :update_mask, String, api_name: :updateMask
38
+
39
+ # @!method initialize(workspace_id:, id:, metadata: nil, spec: nil, update_mask: nil, request_options: {})
40
+ # Some parameter documentations has been truncated, see
41
+ # {Cadenya::Models::AIProviderKeyUpdateParams} for more details.
42
+ #
43
+ # @param workspace_id [String]
44
+ #
45
+ # @param id [String]
46
+ #
47
+ # @param metadata [Cadenya::Models::UpdateResourceMetadata] UpdateResourceMetadata contains the user-provided fields for updating
48
+ #
49
+ # @param spec [Cadenya::Models::AIProviderKeySpec]
50
+ #
51
+ # @param update_mask [String] Fields to update.
52
+ #
53
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ApprovalRequirementFilter < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute always
7
+ #
8
+ # @return [Boolean, nil]
9
+ optional :always, Cadenya::Internal::Type::Boolean
10
+
11
+ # @!attribute only
12
+ # Top-level filter with simple boolean logic (no nesting)
13
+ #
14
+ # @return [Cadenya::Models::ToolFilter, nil]
15
+ optional :only, -> { Cadenya::ToolFilter }
16
+
17
+ # @!method initialize(always: nil, only: nil)
18
+ # Approval filters that will automatically set the approval requirement on tools
19
+ # synced from an external source
20
+ #
21
+ # @param always [Boolean]
22
+ #
23
+ # @param only [Cadenya::Models::ToolFilter] Top-level filter with simple boolean logic (no nesting)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AttributeFilter < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute attribute
7
+ #
8
+ # @return [Symbol, Cadenya::Models::AttributeFilter::Attribute]
9
+ required :attribute, enum: -> { Cadenya::AttributeFilter::Attribute }
10
+
11
+ # @!attribute matcher
12
+ # String matching operations
13
+ #
14
+ # @return [Cadenya::Models::StringMatcher, nil]
15
+ optional :matcher, -> { Cadenya::StringMatcher }
16
+
17
+ # @!method initialize(attribute:, matcher: nil)
18
+ # Single attribute filter
19
+ #
20
+ # @param attribute [Symbol, Cadenya::Models::AttributeFilter::Attribute]
21
+ #
22
+ # @param matcher [Cadenya::Models::StringMatcher] String matching operations
23
+
24
+ # @see Cadenya::Models::AttributeFilter#attribute
25
+ module Attribute
26
+ extend Cadenya::Internal::Type::Enum
27
+
28
+ ATTRIBUTE_UNSPECIFIED = :ATTRIBUTE_UNSPECIFIED
29
+ ATTRIBUTE_NAME = :ATTRIBUTE_NAME
30
+ ATTRIBUTE_TITLE = :ATTRIBUTE_TITLE
31
+ ATTRIBUTE_DESCRIPTION = :ATTRIBUTE_DESCRIPTION
32
+
33
+ # @!method self.values
34
+ # @return [Array<Symbol>]
35
+ end
36
+ end
37
+ end
38
+ end
@@ -53,6 +53,22 @@ module Cadenya
53
53
  # @return [Cadenya::Models::Agent, nil]
54
54
  optional :agent, -> { Cadenya::Agent }
55
55
 
56
+ # @!attribute output
57
+ # The output of the objective, populated when the objective completes. Will match
58
+ # the schema of output_json_schema or output_json_inferred.
59
+ #
60
+ # @return [Hash{Symbol=>Object}, nil]
61
+ optional :output, Cadenya::Internal::Type::HashOf[Cadenya::Internal::Type::Unknown]
62
+
63
+ # @!attribute output_definition
64
+ # Snapshot of the agent spec's output_definition at objective creation time. When
65
+ # present, the objective will run an extraction step after the LLM finishes.
66
+ #
67
+ # @return [Hash{Symbol=>Object}, nil]
68
+ optional :output_definition,
69
+ Cadenya::Internal::Type::HashOf[Cadenya::Internal::Type::Unknown],
70
+ api_name: :outputDefinition
71
+
56
72
  # @!attribute parent_objective_id
57
73
  # A parent objective means the objective was spawned off using a separate agent to
58
74
  # complete an objective
@@ -81,7 +97,7 @@ module Cadenya
81
97
  optional :variation, -> { Cadenya::Agents::AgentVariation }
82
98
  end
83
99
 
84
- # @!method initialize(agent: nil, data: nil, initial_message: nil, memory_stack: nil, parent_objective_id: nil, secrets: nil, source_schedule_id: nil, system_prompt: nil, variation: nil)
100
+ # @!method initialize(agent: nil, data: nil, initial_message: nil, memory_stack: nil, output: nil, output_definition: nil, parent_objective_id: nil, secrets: nil, source_schedule_id: nil, system_prompt: nil, variation: nil)
85
101
  # Some parameter documentations has been truncated, see
86
102
  # {Cadenya::Models::ObjectiveData} for more details.
87
103
  #
@@ -93,6 +109,10 @@ module Cadenya
93
109
  #
94
110
  # @param memory_stack [Array<Cadenya::Models::MemoryReference>] Memory layers/entries to push onto this objective's memory stack on
95
111
  #
112
+ # @param output [Hash{Symbol=>Object}] The output of the objective, populated when the objective completes. Will match
113
+ #
114
+ # @param output_definition [Hash{Symbol=>Object}] Snapshot of the agent spec's output_definition at objective creation time.
115
+ #
96
116
  # @param parent_objective_id [String] A parent objective means the objective was spawned off using a separate agent to
97
117
  #
98
118
  # @param secrets [Array<Cadenya::Models::ObjectiveDataSecret>] Secrets that can be used in the headers for tool calls using the secret interpol
@@ -28,6 +28,14 @@ module Cadenya
28
28
  # @return [Cadenya::Models::ObjectiveError, nil]
29
29
  optional :error, -> { Cadenya::ObjectiveError }
30
30
 
31
+ # @!attribute finalized
32
+ # ObjectiveFinalized is the terminal event written when an objective is finalized.
33
+ # After this event, the objective is super-terminal: no further iterations,
34
+ # compaction, or continuation are permitted.
35
+ #
36
+ # @return [Cadenya::Models::ObjectiveEventData::Finalized, nil]
37
+ optional :finalized, -> { Cadenya::ObjectiveEventData::Finalized }
38
+
31
39
  # @!attribute memory_read
32
40
  # MemoryRead is emitted each time the agent resolves a key against the memory
33
41
  # stack and loads an entry. Lookups that miss (key not found in any layer) do not
@@ -90,7 +98,7 @@ module Cadenya
90
98
  # @return [Cadenya::Models::UserMessage, nil]
91
99
  optional :user_message, -> { Cadenya::UserMessage }, api_name: :userMessage
92
100
 
93
- # @!method initialize(assistant_message: nil, cancelled: nil, context_window_compacted: nil, error: nil, memory_read: nil, sub_agent_spawned: nil, sub_agent_updated: nil, tool_approval_requested: nil, tool_approved: nil, tool_called: nil, tool_denied: nil, tool_error: nil, tool_result: nil, type: nil, user_message: nil)
101
+ # @!method initialize(assistant_message: nil, cancelled: nil, context_window_compacted: nil, error: nil, finalized: nil, memory_read: nil, sub_agent_spawned: nil, sub_agent_updated: nil, tool_approval_requested: nil, tool_approved: nil, tool_called: nil, tool_denied: nil, tool_error: nil, tool_result: nil, type: nil, user_message: nil)
94
102
  # Some parameter documentations has been truncated, see
95
103
  # {Cadenya::Models::ObjectiveEventData} for more details.
96
104
  #
@@ -102,6 +110,8 @@ module Cadenya
102
110
  #
103
111
  # @param error [Cadenya::Models::ObjectiveError]
104
112
  #
113
+ # @param finalized [Cadenya::Models::ObjectiveEventData::Finalized] ObjectiveFinalized is the terminal event written when an objective is
114
+ #
105
115
  # @param memory_read [Cadenya::Models::MemoryRead] MemoryRead is emitted each time the agent resolves a key against the
106
116
  #
107
117
  # @param sub_agent_spawned [Cadenya::Models::SubAgentSpawned]
@@ -144,6 +154,27 @@ module Cadenya
144
154
  #
145
155
  # @param message [String] Optional human-readable note recorded at cancel time. Today the workflow
146
156
  end
157
+
158
+ # @see Cadenya::Models::ObjectiveEventData#finalized
159
+ class Finalized < Cadenya::Internal::Type::BaseModel
160
+ # @!attribute output
161
+ # If the objective was created with an output schema, and the agent successfully
162
+ # completed the objective, this field will contain the structured output of the
163
+ # objective.
164
+ #
165
+ # @return [Object, nil]
166
+ optional :output, Cadenya::Internal::Type::Unknown
167
+
168
+ # @!method initialize(output: nil)
169
+ # Some parameter documentations has been truncated, see
170
+ # {Cadenya::Models::ObjectiveEventData::Finalized} for more details.
171
+ #
172
+ # ObjectiveFinalized is the terminal event written when an objective is finalized.
173
+ # After this event, the objective is super-terminal: no further iterations,
174
+ # compaction, or continuation are permitted.
175
+ #
176
+ # @param output [Object] If the objective was created with an output schema, and the agent
177
+ end
147
178
  end
148
179
  end
149
180
  end
@@ -99,9 +99,10 @@ module Cadenya
99
99
  STATE_UNSPECIFIED = :STATE_UNSPECIFIED
100
100
  STATE_PENDING = :STATE_PENDING
101
101
  STATE_RUNNING = :STATE_RUNNING
102
- STATE_COMPLETED = :STATE_COMPLETED
102
+ STATE_WAITING = :STATE_WAITING
103
103
  STATE_FAILED = :STATE_FAILED
104
104
  STATE_CANCELLED = :STATE_CANCELLED
105
+ STATE_FINALIZED = :STATE_FINALIZED
105
106
 
106
107
  # @!method self.values
107
108
  # @return [Array<Symbol>]