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.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/cadenya/client.rb +14 -0
  5. data/lib/cadenya/models/agent_spec.rb +19 -4
  6. data/lib/cadenya/models/agents/webhook_delivery_data.rb +1 -0
  7. data/lib/cadenya/models/agents/webhook_delivery_list_params.rb +1 -0
  8. data/lib/cadenya/models/approval_requirement_filter.rb +26 -0
  9. data/lib/cadenya/models/attribute_filter.rb +38 -0
  10. data/lib/cadenya/models/objective_data.rb +21 -1
  11. data/lib/cadenya/models/objective_event_data.rb +32 -1
  12. data/lib/cadenya/models/objective_list_params.rb +2 -1
  13. data/lib/cadenya/models/objective_status.rb +2 -1
  14. data/lib/cadenya/models/profile_spec.rb +1 -0
  15. data/lib/cadenya/models/string_matcher.rb +47 -0
  16. data/lib/cadenya/models/tool_filter.rb +35 -0
  17. data/lib/cadenya/models/tool_set_adapter.rb +7 -1
  18. data/lib/cadenya/models/tool_set_adapter_mcp.rb +11 -33
  19. data/lib/cadenya/models/tool_set_adapter_openapi.rb +79 -0
  20. data/lib/cadenya/models/tool_set_get_openapi_spec_params.rb +26 -0
  21. data/lib/cadenya/models/tool_set_get_openapi_spec_response.rb +17 -0
  22. data/lib/cadenya/models/tool_sets/config_openapi.rb +29 -0
  23. data/lib/cadenya/models/tool_sets/tool_spec_config.rb +7 -1
  24. data/lib/cadenya/models/workspace.rb +27 -1
  25. data/lib/cadenya/models/workspace_admin/member_add_params.rb +39 -0
  26. data/lib/cadenya/models/workspace_admin/member_list_params.rb +39 -0
  27. data/lib/cadenya/models/workspace_admin/member_remove_params.rb +28 -0
  28. data/lib/cadenya/models/workspace_admin/profile_list_params.rb +44 -0
  29. data/lib/cadenya/models/workspace_admin_archive_params.rb +20 -0
  30. data/lib/cadenya/models/workspace_admin_create_params.rb +70 -0
  31. data/lib/cadenya/models/workspace_admin_list_params.rb +42 -0
  32. data/lib/cadenya/models/workspace_admin_retrieve_params.rb +20 -0
  33. data/lib/cadenya/models/workspace_admin_update_params.rb +85 -0
  34. data/lib/cadenya/models/workspace_member.rb +53 -0
  35. data/lib/cadenya/models.rb +26 -2
  36. data/lib/cadenya/resources/tool_sets.rb +31 -0
  37. data/lib/cadenya/resources/workspace_admin/members.rb +107 -0
  38. data/lib/cadenya/resources/workspace_admin/profiles.rb +54 -0
  39. data/lib/cadenya/resources/workspace_admin.rb +173 -0
  40. data/lib/cadenya/resources/workspaces.rb +4 -0
  41. data/lib/cadenya/version.rb +1 -1
  42. data/lib/cadenya.rb +21 -1
  43. data/rbi/cadenya/client.rbi +13 -0
  44. data/rbi/cadenya/models/agent_spec.rbi +21 -4
  45. data/rbi/cadenya/models/agents/webhook_delivery_data.rbi +5 -0
  46. data/rbi/cadenya/models/agents/webhook_delivery_list_params.rbi +5 -0
  47. data/rbi/cadenya/models/approval_requirement_filter.rbi +45 -0
  48. data/rbi/cadenya/models/attribute_filter.rbi +84 -0
  49. data/rbi/cadenya/models/objective_data.rbi +26 -0
  50. data/rbi/cadenya/models/objective_event_data.rbi +52 -0
  51. data/rbi/cadenya/models/objective_list_params.rbi +7 -2
  52. data/rbi/cadenya/models/objective_status.rbi +4 -2
  53. data/rbi/cadenya/models/profile_spec.rbi +5 -0
  54. data/rbi/cadenya/models/string_matcher.rbi +84 -0
  55. data/rbi/cadenya/models/tool_filter.rbi +66 -0
  56. data/rbi/cadenya/models/tool_set_adapter.rbi +14 -3
  57. data/rbi/cadenya/models/tool_set_adapter_mcp.rbi +16 -62
  58. data/rbi/cadenya/models/tool_set_adapter_openapi.rbi +127 -0
  59. data/rbi/cadenya/models/tool_set_get_openapi_spec_params.rbi +46 -0
  60. data/rbi/cadenya/models/tool_set_get_openapi_spec_response.rbi +33 -0
  61. data/rbi/cadenya/models/tool_sets/config_openapi.rbi +48 -0
  62. data/rbi/cadenya/models/tool_sets/tool_spec_config.rbi +11 -3
  63. data/rbi/cadenya/models/workspace.rbi +39 -3
  64. data/rbi/cadenya/models/workspace_admin/member_add_params.rbi +68 -0
  65. data/rbi/cadenya/models/workspace_admin/member_list_params.rbi +68 -0
  66. data/rbi/cadenya/models/workspace_admin/member_remove_params.rbi +48 -0
  67. data/rbi/cadenya/models/workspace_admin/profile_list_params.rbi +75 -0
  68. data/rbi/cadenya/models/workspace_admin_archive_params.rbi +38 -0
  69. data/rbi/cadenya/models/workspace_admin_create_params.rbi +127 -0
  70. data/rbi/cadenya/models/workspace_admin_list_params.rbi +70 -0
  71. data/rbi/cadenya/models/workspace_admin_retrieve_params.rbi +38 -0
  72. data/rbi/cadenya/models/workspace_admin_update_params.rbi +144 -0
  73. data/rbi/cadenya/models/workspace_member.rbi +80 -0
  74. data/rbi/cadenya/models.rbi +26 -2
  75. data/rbi/cadenya/resources/tool_sets.rbi +18 -0
  76. data/rbi/cadenya/resources/workspace_admin/members.rbi +83 -0
  77. data/rbi/cadenya/resources/workspace_admin/profiles.rbi +42 -0
  78. data/rbi/cadenya/resources/workspace_admin.rbi +131 -0
  79. data/rbi/cadenya/resources/workspaces.rbi +4 -0
  80. data/sig/cadenya/client.rbs +2 -0
  81. data/sig/cadenya/models/agent_spec.rbs +12 -5
  82. data/sig/cadenya/models/agents/webhook_delivery_data.rbs +2 -0
  83. data/sig/cadenya/models/agents/webhook_delivery_list_params.rbs +2 -0
  84. data/sig/cadenya/models/approval_requirement_filter.rbs +20 -0
  85. data/sig/cadenya/models/attribute_filter.rbs +44 -0
  86. data/sig/cadenya/models/objective_data.rbs +14 -0
  87. data/sig/cadenya/models/objective_event_data.rbs +21 -0
  88. data/sig/cadenya/models/objective_list_params.rbs +4 -2
  89. data/sig/cadenya/models/objective_status.rbs +4 -2
  90. data/sig/cadenya/models/profile_spec.rbs +5 -1
  91. data/sig/cadenya/models/string_matcher.rbs +57 -0
  92. data/sig/cadenya/models/tool_filter.rbs +41 -0
  93. data/sig/cadenya/models/tool_set_adapter.rbs +15 -3
  94. data/sig/cadenya/models/tool_set_adapter_mcp.rbs +16 -32
  95. data/sig/cadenya/models/tool_set_adapter_openapi.rbs +73 -0
  96. data/sig/cadenya/models/tool_set_get_openapi_spec_params.rbs +28 -0
  97. data/sig/cadenya/models/tool_set_get_openapi_spec_response.rbs +15 -0
  98. data/sig/cadenya/models/tool_sets/config_openapi.rbs +30 -0
  99. data/sig/cadenya/models/tool_sets/tool_spec_config.rbs +12 -3
  100. data/sig/cadenya/models/workspace.rbs +24 -3
  101. data/sig/cadenya/models/workspace_admin/member_add_params.rbs +38 -0
  102. data/sig/cadenya/models/workspace_admin/member_list_params.rbs +38 -0
  103. data/sig/cadenya/models/workspace_admin/member_remove_params.rbs +30 -0
  104. data/sig/cadenya/models/workspace_admin/profile_list_params.rbs +40 -0
  105. data/sig/cadenya/models/workspace_admin_archive_params.rbs +23 -0
  106. data/sig/cadenya/models/workspace_admin_create_params.rbs +58 -0
  107. data/sig/cadenya/models/workspace_admin_list_params.rbs +38 -0
  108. data/sig/cadenya/models/workspace_admin_retrieve_params.rbs +23 -0
  109. data/sig/cadenya/models/workspace_admin_update_params.rbs +76 -0
  110. data/sig/cadenya/models/workspace_member.rbs +46 -0
  111. data/sig/cadenya/models.rbs +26 -2
  112. data/sig/cadenya/resources/tool_sets.rbs +6 -0
  113. data/sig/cadenya/resources/workspace_admin/members.rbs +29 -0
  114. data/sig/cadenya/resources/workspace_admin/profiles.rbs +16 -0
  115. data/sig/cadenya/resources/workspace_admin.rbs +42 -0
  116. metadata +65 -5
  117. data/lib/cadenya/models/mcp_tool_filter.rb +0 -111
  118. data/rbi/cadenya/models/mcp_tool_filter.rbi +0 -235
  119. 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: 7dff0947b39a815faaea2a4f68747c1d0117318d8f2aee08f8bca4cab40b69f7
4
+ data.tar.gz: ec5c0bb41033ed07ab07d33fd24dac1853b9ec65280dc8493902646d62e5eb03
5
5
  SHA512:
6
- metadata.gz: c8efd167e60512e6bab2ea8532382565490fdfe2cd5bfa0a9f489b655c4cca369dc69fad7362cf1ff04981a41d297787936ce6a60133c1919e6bc6a09f3f6fd6
7
- data.tar.gz: 5626793207092ca923346d462f8a5755e3b297092f9b1ced17379f09ea6be3ad7f4977eb9a798943ef1902989abe722efccf18431ba951ccb5f06ecb79925bfb
6
+ metadata.gz: 146f613ac26f3669be288789e44d5727defcbf3373b5fe74c0b5cd11352476be830358a4def179cddb144192629ad7e14c798cb25ac48907c7379879e6ce5a60
7
+ data.tar.gz: 553296baa57d871c6f99976e480f3f67c60cb1afc6fda396816a4a3c4f263e3ceb588ebb64f9ce2070a53cbf1ecf03ba14c0b90d9f0ef48773786715ea3c04e2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2026-06-05)
4
+
5
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/cadenya/cadenya-ruby/compare/v0.2.0...v0.3.0)
6
+
7
+ ### Features
8
+
9
+ * Add admin profile search (workspaceAdmin.profiles.list) — ENG-308 ([1e4797b](https://github.com/cadenya/cadenya-ruby/commit/1e4797be9bef5f7382270eb22d4e7ee1cea5a317))
10
+ * **api:** api update ([8721ef8](https://github.com/cadenya/cadenya-ruby/commit/8721ef8a408a83e13ef49da9f8257027da9fa69d))
11
+ * **api:** api update ([e4f7e6e](https://github.com/cadenya/cadenya-ruby/commit/e4f7e6e38b74ecb01be4e006d24ce5878343d481))
12
+ * **api:** api update ([ca33f81](https://github.com/cadenya/cadenya-ruby/commit/ca33f814f4b7dbcdff61c64165a15742c1e281d0))
13
+ * **api:** api update ([e7a5a6d](https://github.com/cadenya/cadenya-ruby/commit/e7a5a6de7e7a9c4f9310e5feff50cc1a733103f1))
14
+ * **api:** api update ([98b0521](https://github.com/cadenya/cadenya-ruby/commit/98b0521380484243a201a4c0c2779808d4a2acad))
15
+ * **api:** api update ([f2e807e](https://github.com/cadenya/cadenya-ruby/commit/f2e807e762dc8d0e4b2dfcd4cf16ff5161ef3003))
16
+ * **api:** api update ([c2c28b1](https://github.com/cadenya/cadenya-ruby/commit/c2c28b16acff45120a9568952a812341502329fc))
17
+ * **api:** api update ([0cb5f64](https://github.com/cadenya/cadenya-ruby/commit/0cb5f6447508b9fa8ed4ca297bc5181955f50c90))
18
+ * **api:** api update ([2975430](https://github.com/cadenya/cadenya-ruby/commit/29754304ee42e35d1c3d38bd02bca0cf45271a16))
19
+
3
20
  ## 0.2.0 (2026-05-14)
4
21
 
5
22
  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.3.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -73,9 +73,22 @@ module Cadenya
73
73
 
74
74
  # Manage workspaces within an account. Workspaces provide organizational grouping
75
75
  # and isolation for resources such as agents, tools, and API keys.
76
+ #
77
+ # This is the workspace-scoped, end-user surface. Administrative operations
78
+ # (create / archive workspaces, manage members) live in WorkspaceAdminService
79
+ # under /v1/account/workspaces and require the admin role.
76
80
  # @return [Cadenya::Resources::Workspaces]
77
81
  attr_reader :workspaces
78
82
 
83
+ # Administer workspaces across the account: create and archive workspaces and
84
+ # manage their membership. These operations are account-scoped and require the
85
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
86
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
87
+ # an admin can manage any workspace in the account, including ones they are not
88
+ # themselves a member of.
89
+ # @return [Cadenya::Resources::WorkspaceAdmin]
90
+ attr_reader :workspace_admin
91
+
79
92
  # @return [Cadenya::Resources::Webhooks]
80
93
  attr_reader :webhooks
81
94
 
@@ -161,6 +174,7 @@ module Cadenya
161
174
  @api_keys = Cadenya::Resources::APIKeys.new(client: self)
162
175
  @workspace_secrets = Cadenya::Resources::WorkspaceSecrets.new(client: self)
163
176
  @workspaces = Cadenya::Resources::Workspaces.new(client: self)
177
+ @workspace_admin = Cadenya::Resources::WorkspaceAdmin.new(client: self)
164
178
  @webhooks = Cadenya::Resources::Webhooks.new(client: self)
165
179
  @bulk_workspace_resources = Cadenya::Resources::BulkWorkspaceResources.new(client: self)
166
180
  end
@@ -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,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>]
@@ -24,9 +24,10 @@ module Cadenya
24
24
  STATE_UNSPECIFIED = :STATE_UNSPECIFIED
25
25
  STATE_PENDING = :STATE_PENDING
26
26
  STATE_RUNNING = :STATE_RUNNING
27
- STATE_COMPLETED = :STATE_COMPLETED
27
+ STATE_WAITING = :STATE_WAITING
28
28
  STATE_FAILED = :STATE_FAILED
29
29
  STATE_CANCELLED = :STATE_CANCELLED
30
+ STATE_FINALIZED = :STATE_FINALIZED
30
31
 
31
32
  # @!method self.values
32
33
  # @return [Array<Symbol>]
@@ -40,6 +40,7 @@ module Cadenya
40
40
  module Type
41
41
  extend Cadenya::Internal::Type::Enum
42
42
 
43
+ PROFILE_TYPE_UNSPECIFIED = :PROFILE_TYPE_UNSPECIFIED
43
44
  PROFILE_TYPE_USER = :PROFILE_TYPE_USER
44
45
  PROFILE_TYPE_API_KEY = :PROFILE_TYPE_API_KEY
45
46
  PROFILE_TYPE_SYSTEM = :PROFILE_TYPE_SYSTEM
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class StringMatcher < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute case_sensitive
7
+ #
8
+ # @return [Boolean, nil]
9
+ optional :case_sensitive, Cadenya::Internal::Type::Boolean, api_name: :caseSensitive
10
+
11
+ # @!attribute contains
12
+ #
13
+ # @return [String, nil]
14
+ optional :contains, String
15
+
16
+ # @!attribute ends_with
17
+ #
18
+ # @return [String, nil]
19
+ optional :ends_with, String, api_name: :endsWith
20
+
21
+ # @!attribute exact
22
+ #
23
+ # @return [String, nil]
24
+ optional :exact, String
25
+
26
+ # @!attribute regex
27
+ #
28
+ # @return [String, nil]
29
+ optional :regex, String
30
+
31
+ # @!attribute starts_with
32
+ #
33
+ # @return [String, nil]
34
+ optional :starts_with, String, api_name: :startsWith
35
+
36
+ # @!method initialize(case_sensitive: nil, contains: nil, ends_with: nil, exact: nil, regex: nil, starts_with: nil)
37
+ # String matching operations
38
+ #
39
+ # @param case_sensitive [Boolean]
40
+ # @param contains [String]
41
+ # @param ends_with [String]
42
+ # @param exact [String]
43
+ # @param regex [String]
44
+ # @param starts_with [String]
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ToolFilter < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute operator
7
+ #
8
+ # @return [Symbol, Cadenya::Models::ToolFilter::Operator]
9
+ required :operator, enum: -> { Cadenya::ToolFilter::Operator }
10
+
11
+ # @!attribute filters
12
+ #
13
+ # @return [Array<Cadenya::Models::AttributeFilter>, nil]
14
+ optional :filters, -> { Cadenya::Internal::Type::ArrayOf[Cadenya::AttributeFilter] }
15
+
16
+ # @!method initialize(operator:, filters: nil)
17
+ # Top-level filter with simple boolean logic (no nesting)
18
+ #
19
+ # @param operator [Symbol, Cadenya::Models::ToolFilter::Operator]
20
+ # @param filters [Array<Cadenya::Models::AttributeFilter>]
21
+
22
+ # @see Cadenya::Models::ToolFilter#operator
23
+ module Operator
24
+ extend Cadenya::Internal::Type::Enum
25
+
26
+ OPERATOR_UNSPECIFIED = :OPERATOR_UNSPECIFIED
27
+ OPERATOR_AND = :OPERATOR_AND
28
+ OPERATOR_OR = :OPERATOR_OR
29
+
30
+ # @!method self.values
31
+ # @return [Array<Symbol>]
32
+ end
33
+ end
34
+ end
35
+ end
@@ -13,9 +13,15 @@ module Cadenya
13
13
  # @return [Cadenya::Models::ToolSetAdapterMcp, nil]
14
14
  optional :mcp, -> { Cadenya::ToolSetAdapterMcp }
15
15
 
16
- # @!method initialize(http: nil, mcp: nil)
16
+ # @!attribute openapi
17
+ #
18
+ # @return [Cadenya::Models::ToolSetAdapterOpenAPI, nil]
19
+ optional :openapi, -> { Cadenya::ToolSetAdapterOpenAPI }
20
+
21
+ # @!method initialize(http: nil, mcp: nil, openapi: nil)
17
22
  # @param http [Cadenya::Models::ToolSetAdapterHTTP]
18
23
  # @param mcp [Cadenya::Models::ToolSetAdapterMcp]
24
+ # @param openapi [Cadenya::Models::ToolSetAdapterOpenAPI]
19
25
  end
20
26
  end
21
27
  end
@@ -6,8 +6,8 @@ module Cadenya
6
6
  # @!attribute exclude_tools
7
7
  # Top-level filter with simple boolean logic (no nesting)
8
8
  #
9
- # @return [Cadenya::Models::McpToolFilter, nil]
10
- optional :exclude_tools, -> { Cadenya::McpToolFilter }, api_name: :excludeTools
9
+ # @return [Cadenya::Models::ToolFilter, nil]
10
+ optional :exclude_tools, -> { Cadenya::ToolFilter }, api_name: :excludeTools
11
11
 
12
12
  # @!attribute headers
13
13
  #
@@ -17,15 +17,15 @@ module Cadenya
17
17
  # @!attribute include_tools
18
18
  # Top-level filter with simple boolean logic (no nesting)
19
19
  #
20
- # @return [Cadenya::Models::McpToolFilter, nil]
21
- optional :include_tools, -> { Cadenya::McpToolFilter }, api_name: :includeTools
20
+ # @return [Cadenya::Models::ToolFilter, nil]
21
+ optional :include_tools, -> { Cadenya::ToolFilter }, api_name: :includeTools
22
22
 
23
23
  # @!attribute tool_approvals
24
- # Approval filters that will automatically set the approval requirement on the
25
- # tools synced from the MCP server
24
+ # Approval filters that will automatically set the approval requirement on tools
25
+ # synced from an external source
26
26
  #
27
- # @return [Cadenya::Models::ToolSetAdapterMcp::ToolApprovals, nil]
28
- optional :tool_approvals, -> { Cadenya::ToolSetAdapterMcp::ToolApprovals }, api_name: :toolApprovals
27
+ # @return [Cadenya::Models::ApprovalRequirementFilter, nil]
28
+ optional :tool_approvals, -> { Cadenya::ApprovalRequirementFilter }, api_name: :toolApprovals
29
29
 
30
30
  # @!attribute url
31
31
  #
@@ -36,37 +36,15 @@ module Cadenya
36
36
  # Some parameter documentations has been truncated, see
37
37
  # {Cadenya::Models::ToolSetAdapterMcp} for more details.
38
38
  #
39
- # @param exclude_tools [Cadenya::Models::McpToolFilter] Top-level filter with simple boolean logic (no nesting)
39
+ # @param exclude_tools [Cadenya::Models::ToolFilter] Top-level filter with simple boolean logic (no nesting)
40
40
  #
41
41
  # @param headers [Hash{Symbol=>String}]
42
42
  #
43
- # @param include_tools [Cadenya::Models::McpToolFilter] Top-level filter with simple boolean logic (no nesting)
43
+ # @param include_tools [Cadenya::Models::ToolFilter] Top-level filter with simple boolean logic (no nesting)
44
44
  #
45
- # @param tool_approvals [Cadenya::Models::ToolSetAdapterMcp::ToolApprovals] Approval filters that will automatically set the approval requirement on the too
45
+ # @param tool_approvals [Cadenya::Models::ApprovalRequirementFilter] Approval filters that will automatically set the approval requirement on tools s
46
46
  #
47
47
  # @param url [String]
48
-
49
- # @see Cadenya::Models::ToolSetAdapterMcp#tool_approvals
50
- class ToolApprovals < Cadenya::Internal::Type::BaseModel
51
- # @!attribute always
52
- #
53
- # @return [Boolean, nil]
54
- optional :always, Cadenya::Internal::Type::Boolean
55
-
56
- # @!attribute only
57
- # Top-level filter with simple boolean logic (no nesting)
58
- #
59
- # @return [Cadenya::Models::McpToolFilter, nil]
60
- optional :only, -> { Cadenya::McpToolFilter }
61
-
62
- # @!method initialize(always: nil, only: nil)
63
- # Approval filters that will automatically set the approval requirement on the
64
- # tools synced from the MCP server
65
- #
66
- # @param always [Boolean]
67
- #
68
- # @param only [Cadenya::Models::McpToolFilter] Top-level filter with simple boolean logic (no nesting)
69
- end
70
48
  end
71
49
  end
72
50
  end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ToolSetAdapterOpenAPI < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute base_url
7
+ # Base URL for dispatching tool calls. If set, overrides the server resolved from
8
+ # the spec's servers array.
9
+ #
10
+ # @return [String, nil]
11
+ optional :base_url, String, api_name: :baseUrl
12
+
13
+ # @!attribute exclude_tools
14
+ # Top-level filter with simple boolean logic (no nesting)
15
+ #
16
+ # @return [Cadenya::Models::ToolFilter, nil]
17
+ optional :exclude_tools, -> { Cadenya::ToolFilter }, api_name: :excludeTools
18
+
19
+ # @!attribute headers
20
+ # Headers sent when fetching the spec from a URL and when dispatching tool calls.
21
+ #
22
+ # @return [Hash{Symbol=>String}, nil]
23
+ optional :headers, Cadenya::Internal::Type::HashOf[String]
24
+
25
+ # @!attribute include_tools
26
+ # Top-level filter with simple boolean logic (no nesting)
27
+ #
28
+ # @return [Cadenya::Models::ToolFilter, nil]
29
+ optional :include_tools, -> { Cadenya::ToolFilter }, api_name: :includeTools
30
+
31
+ # @!attribute server_name
32
+ # Name of the server entry in the spec's servers array (OpenAPI 3.2 server.name
33
+ # field). Used to select which server URL to dispatch to when base_url is not set.
34
+ # If unset, the first server is used. Ignored when base_url is set.
35
+ #
36
+ # @return [String, nil]
37
+ optional :server_name, String, api_name: :serverName
38
+
39
+ # @!attribute tool_approvals
40
+ # Approval filters that will automatically set the approval requirement on tools
41
+ # synced from an external source
42
+ #
43
+ # @return [Cadenya::Models::ApprovalRequirementFilter, nil]
44
+ optional :tool_approvals, -> { Cadenya::ApprovalRequirementFilter }, api_name: :toolApprovals
45
+
46
+ # @!attribute upload_id
47
+ # ID of a COMPLETE Upload containing the OpenAPI spec document.
48
+ #
49
+ # @return [String, nil]
50
+ optional :upload_id, String, api_name: :uploadId
51
+
52
+ # @!attribute url
53
+ # URL to fetch the OpenAPI spec from. Synced automatically every hour.
54
+ #
55
+ # @return [String, nil]
56
+ optional :url, String
57
+
58
+ # @!method initialize(base_url: nil, exclude_tools: nil, headers: nil, include_tools: nil, server_name: nil, tool_approvals: nil, upload_id: nil, url: nil)
59
+ # Some parameter documentations has been truncated, see
60
+ # {Cadenya::Models::ToolSetAdapterOpenAPI} for more details.
61
+ #
62
+ # @param base_url [String] Base URL for dispatching tool calls. If set, overrides the server
63
+ #
64
+ # @param exclude_tools [Cadenya::Models::ToolFilter] Top-level filter with simple boolean logic (no nesting)
65
+ #
66
+ # @param headers [Hash{Symbol=>String}] Headers sent when fetching the spec from a URL and when dispatching tool calls.
67
+ #
68
+ # @param include_tools [Cadenya::Models::ToolFilter] Top-level filter with simple boolean logic (no nesting)
69
+ #
70
+ # @param server_name [String] Name of the server entry in the spec's servers array (OpenAPI 3.2
71
+ #
72
+ # @param tool_approvals [Cadenya::Models::ApprovalRequirementFilter] Approval filters that will automatically set the approval requirement on tools s
73
+ #
74
+ # @param upload_id [String] ID of a COMPLETE Upload containing the OpenAPI spec document.
75
+ #
76
+ # @param url [String] URL to fetch the OpenAPI spec from. Synced automatically every hour.
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::ToolSets#get_openapi_spec
6
+ class ToolSetGetOpenAPISpecParams < 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 tool_set_id
16
+ #
17
+ # @return [String]
18
+ required :tool_set_id, String
19
+
20
+ # @!method initialize(workspace_id:, tool_set_id:, request_options: {})
21
+ # @param workspace_id [String]
22
+ # @param tool_set_id [String]
23
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::ToolSets#get_openapi_spec
6
+ class ToolSetGetOpenAPISpecResponse < Cadenya::Internal::Type::BaseModel
7
+ # @!attribute spec
8
+ # The consumed OpenAPI specification as a JSON string.
9
+ #
10
+ # @return [String, nil]
11
+ optional :spec, String
12
+
13
+ # @!method initialize(spec: nil)
14
+ # @param spec [String] The consumed OpenAPI specification as a JSON string.
15
+ end
16
+ end
17
+ end