cadenya 0.1.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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +1 -1
  4. data/lib/cadenya/client.rb +14 -0
  5. data/lib/cadenya/internal/cursor_pagination.rb +1 -1
  6. data/lib/cadenya/internal/transport/base_client.rb +2 -0
  7. data/lib/cadenya/models/agent_spec.rb +19 -4
  8. data/lib/cadenya/models/agents/webhook_delivery_data.rb +3 -1
  9. data/lib/cadenya/models/agents/webhook_delivery_list_params.rb +3 -1
  10. data/lib/cadenya/models/approval_requirement_filter.rb +26 -0
  11. data/lib/cadenya/models/attribute_filter.rb +38 -0
  12. data/lib/cadenya/models/objective_create_params.rb +3 -3
  13. data/lib/cadenya/models/objective_data.rb +21 -1
  14. data/lib/cadenya/models/objective_event_data.rb +43 -5
  15. data/lib/cadenya/models/objective_list_events_params.rb +9 -1
  16. data/lib/cadenya/models/objective_list_params.rb +2 -1
  17. data/lib/cadenya/models/objective_status.rb +2 -1
  18. data/lib/cadenya/models/profile_spec.rb +1 -0
  19. data/lib/cadenya/models/string_matcher.rb +47 -0
  20. data/lib/cadenya/models/sub_agent_spawned.rb +35 -0
  21. data/lib/cadenya/models/sub_agent_updated.rb +66 -0
  22. data/lib/cadenya/models/tool_filter.rb +35 -0
  23. data/lib/cadenya/models/tool_set_adapter.rb +7 -1
  24. data/lib/cadenya/models/tool_set_adapter_mcp.rb +11 -33
  25. data/lib/cadenya/models/tool_set_adapter_openapi.rb +79 -0
  26. data/lib/cadenya/models/tool_set_get_openapi_spec_params.rb +26 -0
  27. data/lib/cadenya/models/tool_set_get_openapi_spec_response.rb +17 -0
  28. data/lib/cadenya/models/tool_sets/config_openapi.rb +29 -0
  29. data/lib/cadenya/models/tool_sets/tool_spec_config.rb +7 -1
  30. data/lib/cadenya/models/workspace.rb +27 -1
  31. data/lib/cadenya/models/workspace_admin/member_add_params.rb +39 -0
  32. data/lib/cadenya/models/workspace_admin/member_list_params.rb +39 -0
  33. data/lib/cadenya/models/workspace_admin/member_remove_params.rb +28 -0
  34. data/lib/cadenya/models/workspace_admin/profile_list_params.rb +44 -0
  35. data/lib/cadenya/models/workspace_admin_archive_params.rb +20 -0
  36. data/lib/cadenya/models/workspace_admin_create_params.rb +70 -0
  37. data/lib/cadenya/models/workspace_admin_list_params.rb +42 -0
  38. data/lib/cadenya/models/workspace_admin_retrieve_params.rb +20 -0
  39. data/lib/cadenya/models/workspace_admin_update_params.rb +85 -0
  40. data/lib/cadenya/models/workspace_member.rb +53 -0
  41. data/lib/cadenya/models.rb +29 -3
  42. data/lib/cadenya/resources/objectives.rb +5 -2
  43. data/lib/cadenya/resources/tool_sets.rb +31 -0
  44. data/lib/cadenya/resources/workspace_admin/members.rb +107 -0
  45. data/lib/cadenya/resources/workspace_admin/profiles.rb +54 -0
  46. data/lib/cadenya/resources/workspace_admin.rb +173 -0
  47. data/lib/cadenya/resources/workspaces.rb +4 -0
  48. data/lib/cadenya/version.rb +1 -1
  49. data/lib/cadenya.rb +23 -2
  50. data/rbi/cadenya/client.rbi +13 -0
  51. data/rbi/cadenya/models/agent_spec.rbi +21 -4
  52. data/rbi/cadenya/models/agents/webhook_delivery_data.rbi +15 -5
  53. data/rbi/cadenya/models/agents/webhook_delivery_list_params.rbi +15 -5
  54. data/rbi/cadenya/models/approval_requirement_filter.rbi +45 -0
  55. data/rbi/cadenya/models/attribute_filter.rbi +84 -0
  56. data/rbi/cadenya/models/objective_create_params.rbi +2 -2
  57. data/rbi/cadenya/models/objective_data.rbi +26 -0
  58. data/rbi/cadenya/models/objective_event_data.rbi +68 -9
  59. data/rbi/cadenya/models/objective_list_events_params.rbi +11 -0
  60. data/rbi/cadenya/models/objective_list_params.rbi +7 -2
  61. data/rbi/cadenya/models/objective_status.rbi +4 -2
  62. data/rbi/cadenya/models/profile_spec.rbi +5 -0
  63. data/rbi/cadenya/models/string_matcher.rbi +84 -0
  64. data/rbi/cadenya/models/sub_agent_spawned.rbi +62 -0
  65. data/rbi/cadenya/models/sub_agent_updated.rbi +127 -0
  66. data/rbi/cadenya/models/tool_filter.rbi +66 -0
  67. data/rbi/cadenya/models/tool_set_adapter.rbi +14 -3
  68. data/rbi/cadenya/models/tool_set_adapter_mcp.rbi +16 -62
  69. data/rbi/cadenya/models/tool_set_adapter_openapi.rbi +127 -0
  70. data/rbi/cadenya/models/tool_set_get_openapi_spec_params.rbi +46 -0
  71. data/rbi/cadenya/models/tool_set_get_openapi_spec_response.rbi +33 -0
  72. data/rbi/cadenya/models/tool_sets/config_openapi.rbi +48 -0
  73. data/rbi/cadenya/models/tool_sets/tool_spec_config.rbi +11 -3
  74. data/rbi/cadenya/models/workspace.rbi +39 -3
  75. data/rbi/cadenya/models/workspace_admin/member_add_params.rbi +68 -0
  76. data/rbi/cadenya/models/workspace_admin/member_list_params.rbi +68 -0
  77. data/rbi/cadenya/models/workspace_admin/member_remove_params.rbi +48 -0
  78. data/rbi/cadenya/models/workspace_admin/profile_list_params.rbi +75 -0
  79. data/rbi/cadenya/models/workspace_admin_archive_params.rbi +38 -0
  80. data/rbi/cadenya/models/workspace_admin_create_params.rbi +127 -0
  81. data/rbi/cadenya/models/workspace_admin_list_params.rbi +70 -0
  82. data/rbi/cadenya/models/workspace_admin_retrieve_params.rbi +38 -0
  83. data/rbi/cadenya/models/workspace_admin_update_params.rbi +144 -0
  84. data/rbi/cadenya/models/workspace_member.rbi +80 -0
  85. data/rbi/cadenya/models.rbi +29 -3
  86. data/rbi/cadenya/resources/objectives.rbi +4 -1
  87. data/rbi/cadenya/resources/tool_sets.rbi +18 -0
  88. data/rbi/cadenya/resources/workspace_admin/members.rbi +83 -0
  89. data/rbi/cadenya/resources/workspace_admin/profiles.rbi +42 -0
  90. data/rbi/cadenya/resources/workspace_admin.rbi +131 -0
  91. data/rbi/cadenya/resources/workspaces.rbi +4 -0
  92. data/sig/cadenya/client.rbs +2 -0
  93. data/sig/cadenya/models/agent_spec.rbs +12 -5
  94. data/sig/cadenya/models/agents/webhook_delivery_data.rbs +6 -2
  95. data/sig/cadenya/models/agents/webhook_delivery_list_params.rbs +6 -2
  96. data/sig/cadenya/models/approval_requirement_filter.rbs +20 -0
  97. data/sig/cadenya/models/attribute_filter.rbs +44 -0
  98. data/sig/cadenya/models/objective_create_params.rbs +6 -2
  99. data/sig/cadenya/models/objective_data.rbs +14 -0
  100. data/sig/cadenya/models/objective_event_data.rbs +37 -7
  101. data/sig/cadenya/models/objective_list_events_params.rbs +7 -0
  102. data/sig/cadenya/models/objective_list_params.rbs +4 -2
  103. data/sig/cadenya/models/objective_status.rbs +4 -2
  104. data/sig/cadenya/models/profile_spec.rbs +5 -1
  105. data/sig/cadenya/models/string_matcher.rbs +57 -0
  106. data/sig/cadenya/models/sub_agent_spawned.rbs +36 -0
  107. data/sig/cadenya/models/sub_agent_updated.rbs +66 -0
  108. data/sig/cadenya/models/tool_filter.rbs +41 -0
  109. data/sig/cadenya/models/tool_set_adapter.rbs +15 -3
  110. data/sig/cadenya/models/tool_set_adapter_mcp.rbs +16 -32
  111. data/sig/cadenya/models/tool_set_adapter_openapi.rbs +73 -0
  112. data/sig/cadenya/models/tool_set_get_openapi_spec_params.rbs +28 -0
  113. data/sig/cadenya/models/tool_set_get_openapi_spec_response.rbs +15 -0
  114. data/sig/cadenya/models/tool_sets/config_openapi.rbs +30 -0
  115. data/sig/cadenya/models/tool_sets/tool_spec_config.rbs +12 -3
  116. data/sig/cadenya/models/workspace.rbs +24 -3
  117. data/sig/cadenya/models/workspace_admin/member_add_params.rbs +38 -0
  118. data/sig/cadenya/models/workspace_admin/member_list_params.rbs +38 -0
  119. data/sig/cadenya/models/workspace_admin/member_remove_params.rbs +30 -0
  120. data/sig/cadenya/models/workspace_admin/profile_list_params.rbs +40 -0
  121. data/sig/cadenya/models/workspace_admin_archive_params.rbs +23 -0
  122. data/sig/cadenya/models/workspace_admin_create_params.rbs +58 -0
  123. data/sig/cadenya/models/workspace_admin_list_params.rbs +38 -0
  124. data/sig/cadenya/models/workspace_admin_retrieve_params.rbs +23 -0
  125. data/sig/cadenya/models/workspace_admin_update_params.rbs +76 -0
  126. data/sig/cadenya/models/workspace_member.rbs +46 -0
  127. data/sig/cadenya/models.rbs +29 -3
  128. data/sig/cadenya/resources/objectives.rbs +2 -1
  129. data/sig/cadenya/resources/tool_sets.rbs +6 -0
  130. data/sig/cadenya/resources/workspace_admin/members.rbs +29 -0
  131. data/sig/cadenya/resources/workspace_admin/profiles.rbs +16 -0
  132. data/sig/cadenya/resources/workspace_admin.rbs +42 -0
  133. metadata +71 -8
  134. data/lib/cadenya/models/mcp_tool_filter.rb +0 -111
  135. data/lib/cadenya/models/sub_objective_created.rb +0 -20
  136. data/rbi/cadenya/models/mcp_tool_filter.rbi +0 -235
  137. data/rbi/cadenya/models/sub_objective_created.rbi +0 -36
  138. data/sig/cadenya/models/mcp_tool_filter.rbs +0 -138
  139. data/sig/cadenya/models/sub_objective_created.rbs +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eba2466a3e34e716fb0216440d0deb94999c5c96466b2c59b5999d39385cd916
4
- data.tar.gz: 416782de6e871823e8e184ee7017290e62031b1fb4f594d31b12c791a4dea62b
3
+ metadata.gz: 7dff0947b39a815faaea2a4f68747c1d0117318d8f2aee08f8bca4cab40b69f7
4
+ data.tar.gz: ec5c0bb41033ed07ab07d33fd24dac1853b9ec65280dc8493902646d62e5eb03
5
5
  SHA512:
6
- metadata.gz: 311cde5d3c1c6f74ffbb17cc672329edbf466e3f920daed0a6d4e51528f23b7ccd7be738ef426d7297ef9793959d023695f87bcd5020f5c7d90d51f3c757d4f0
7
- data.tar.gz: a12fc8e1371dfde54ba22e8c4bacf630d3ac9f141dd405eb1f2da7727874598ff42818881223e8b6b823c73af89b279145e4b4565c697a338b47a2cc409a482c
6
+ metadata.gz: 146f613ac26f3669be288789e44d5727defcbf3373b5fe74c0b5cd11352476be830358a4def179cddb144192629ad7e14c798cb25ac48907c7379879e6ce5a60
7
+ data.tar.gz: 553296baa57d871c6f99976e480f3f67c60cb1afc6fda396816a4a3c4f263e3ceb588ebb64f9ce2070a53cbf1ecf03ba14c0b90d9f0ef48773786715ea3c04e2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
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
+
20
+ ## 0.2.0 (2026-05-14)
21
+
22
+ Full Changelog: [v0.1.0...v0.2.0](https://github.com/cadenya/cadenya-ruby/compare/v0.1.0...v0.2.0)
23
+
24
+ ### Features
25
+
26
+ * **api:** api update ([ef1d2e7](https://github.com/cadenya/cadenya-ruby/commit/ef1d2e785d222bf4b027b628f93f4dc97d52c167))
27
+ * **api:** api update ([d62dad1](https://github.com/cadenya/cadenya-ruby/commit/d62dad1c1f7103e636510cb7afb3a3e0a673c096))
28
+ * **api:** api update ([b22688f](https://github.com/cadenya/cadenya-ruby/commit/b22688f6eaa880efe3c0016aced19fc2b94b43c3))
29
+ * **api:** api update ([7b65d0c](https://github.com/cadenya/cadenya-ruby/commit/7b65d0c4606fac3bfde5d0bbf3b34d6fc2b3047e))
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * **client:** elide content type header on requests without body ([68e218f](https://github.com/cadenya/cadenya-ruby/commit/68e218f00e026629ee99d1c05bb62fe385de43e7))
35
+
3
36
  ## 0.1.0 (2026-05-06)
4
37
 
5
38
  Full Changelog: [v0.0.1...v0.1.0](https://github.com/cadenya/cadenya-ruby/compare/v0.0.1...v0.1.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.1.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
@@ -94,7 +94,7 @@ module Cadenya
94
94
  # @!attribute next_cursor
95
95
  #
96
96
  # @return [String, nil]
97
- optional :next_cursor, String
97
+ optional :next_cursor, String, api_name: :nextCursor
98
98
 
99
99
  # @!method initialize(next_cursor: nil)
100
100
  # @param next_cursor [String]
@@ -306,6 +306,8 @@ module Cadenya
306
306
  Cadenya::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
+ headers.delete("content-type") if body.nil?
310
+
309
311
  url = Cadenya::Internal::Util.join_parsed_uri(
310
312
  @base_url_components,
311
313
  {**req, path: path, query: query}
@@ -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
 
@@ -125,7 +125,6 @@ module Cadenya
125
125
  OBJECTIVE_EVENT_TYPE_TOOL_APPROVED = :OBJECTIVE_EVENT_TYPE_TOOL_APPROVED
126
126
  OBJECTIVE_EVENT_TYPE_TOOL_DENIED = :OBJECTIVE_EVENT_TYPE_TOOL_DENIED
127
127
  OBJECTIVE_EVENT_TYPE_TOOL_CALLED = :OBJECTIVE_EVENT_TYPE_TOOL_CALLED
128
- OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED = :OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED
129
128
  OBJECTIVE_EVENT_TYPE_ERROR = :OBJECTIVE_EVENT_TYPE_ERROR
130
129
  OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE = :OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE
131
130
  OBJECTIVE_EVENT_TYPE_TOOL_RESULT = :OBJECTIVE_EVENT_TYPE_TOOL_RESULT
@@ -133,6 +132,9 @@ module Cadenya
133
132
  OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED = :OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED
134
133
  OBJECTIVE_EVENT_TYPE_MEMORY_READ = :OBJECTIVE_EVENT_TYPE_MEMORY_READ
135
134
  OBJECTIVE_EVENT_TYPE_CANCELLED = :OBJECTIVE_EVENT_TYPE_CANCELLED
135
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED
136
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED
137
+ OBJECTIVE_EVENT_TYPE_FINALIZED = :OBJECTIVE_EVENT_TYPE_FINALIZED
136
138
 
137
139
  # @!method self.values
138
140
  # @return [Array<Symbol>]
@@ -67,7 +67,6 @@ module Cadenya
67
67
  OBJECTIVE_EVENT_TYPE_TOOL_APPROVED = :OBJECTIVE_EVENT_TYPE_TOOL_APPROVED
68
68
  OBJECTIVE_EVENT_TYPE_TOOL_DENIED = :OBJECTIVE_EVENT_TYPE_TOOL_DENIED
69
69
  OBJECTIVE_EVENT_TYPE_TOOL_CALLED = :OBJECTIVE_EVENT_TYPE_TOOL_CALLED
70
- OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED = :OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED
71
70
  OBJECTIVE_EVENT_TYPE_ERROR = :OBJECTIVE_EVENT_TYPE_ERROR
72
71
  OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE = :OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE
73
72
  OBJECTIVE_EVENT_TYPE_TOOL_RESULT = :OBJECTIVE_EVENT_TYPE_TOOL_RESULT
@@ -75,6 +74,9 @@ module Cadenya
75
74
  OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED = :OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED
76
75
  OBJECTIVE_EVENT_TYPE_MEMORY_READ = :OBJECTIVE_EVENT_TYPE_MEMORY_READ
77
76
  OBJECTIVE_EVENT_TYPE_CANCELLED = :OBJECTIVE_EVENT_TYPE_CANCELLED
77
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED
78
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED = :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED
79
+ OBJECTIVE_EVENT_TYPE_FINALIZED = :OBJECTIVE_EVENT_TYPE_FINALIZED
78
80
 
79
81
  # @!method self.values
80
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
@@ -27,8 +27,8 @@ module Cadenya
27
27
  # operation. Read-only fields (id, account_id, workspace_id, created_at,
28
28
  # profile_id) are excluded since they are set by the server.
29
29
  #
30
- # @return [Cadenya::Models::CreateOperationMetadata]
31
- required :metadata, -> { Cadenya::CreateOperationMetadata }
30
+ # @return [Cadenya::Models::CreateOperationMetadata, nil]
31
+ optional :metadata, -> { Cadenya::CreateOperationMetadata }
32
32
 
33
33
  # @!attribute variation_id
34
34
  # Optional explicit variation selection. Overrides the agent's
@@ -37,7 +37,7 @@ module Cadenya
37
37
  # @return [String, nil]
38
38
  optional :variation_id, String, api_name: :variationId
39
39
 
40
- # @!method initialize(workspace_id:, agent_id:, data:, metadata:, variation_id: nil, request_options: {})
40
+ # @!method initialize(workspace_id:, agent_id:, data:, metadata: nil, variation_id: nil, request_options: {})
41
41
  # Some parameter documentations has been truncated, see
42
42
  # {Cadenya::Models::ObjectiveCreateParams} for more details.
43
43
  #
@@ -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
@@ -36,10 +44,15 @@ module Cadenya
36
44
  # @return [Cadenya::Models::MemoryRead, nil]
37
45
  optional :memory_read, -> { Cadenya::MemoryRead }, api_name: :memoryRead
38
46
 
39
- # @!attribute sub_objective_created
47
+ # @!attribute sub_agent_spawned
40
48
  #
41
- # @return [Cadenya::Models::SubObjectiveCreated, nil]
42
- optional :sub_objective_created, -> { Cadenya::SubObjectiveCreated }, api_name: :subObjectiveCreated
49
+ # @return [Cadenya::Models::SubAgentSpawned, nil]
50
+ optional :sub_agent_spawned, -> { Cadenya::SubAgentSpawned }, api_name: :subAgentSpawned
51
+
52
+ # @!attribute sub_agent_updated
53
+ #
54
+ # @return [Cadenya::Models::SubAgentUpdated, nil]
55
+ optional :sub_agent_updated, -> { Cadenya::SubAgentUpdated }, api_name: :subAgentUpdated
43
56
 
44
57
  # @!attribute tool_approval_requested
45
58
  #
@@ -85,7 +98,7 @@ module Cadenya
85
98
  # @return [Cadenya::Models::UserMessage, nil]
86
99
  optional :user_message, -> { Cadenya::UserMessage }, api_name: :userMessage
87
100
 
88
- # @!method initialize(assistant_message: nil, cancelled: nil, context_window_compacted: nil, error: nil, memory_read: nil, sub_objective_created: 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)
89
102
  # Some parameter documentations has been truncated, see
90
103
  # {Cadenya::Models::ObjectiveEventData} for more details.
91
104
  #
@@ -97,9 +110,13 @@ module Cadenya
97
110
  #
98
111
  # @param error [Cadenya::Models::ObjectiveError]
99
112
  #
113
+ # @param finalized [Cadenya::Models::ObjectiveEventData::Finalized] ObjectiveFinalized is the terminal event written when an objective is
114
+ #
100
115
  # @param memory_read [Cadenya::Models::MemoryRead] MemoryRead is emitted each time the agent resolves a key against the
101
116
  #
102
- # @param sub_objective_created [Cadenya::Models::SubObjectiveCreated]
117
+ # @param sub_agent_spawned [Cadenya::Models::SubAgentSpawned]
118
+ #
119
+ # @param sub_agent_updated [Cadenya::Models::SubAgentUpdated]
103
120
  #
104
121
  # @param tool_approval_requested [Cadenya::Models::ToolApprovalRequested]
105
122
  #
@@ -137,6 +154,27 @@ module Cadenya
137
154
  #
138
155
  # @param message [String] Optional human-readable note recorded at cancel time. Today the workflow
139
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
140
178
  end
141
179
  end
142
180
  end
@@ -35,6 +35,12 @@ module Cadenya
35
35
  # @return [Integer, nil]
36
36
  optional :limit, Integer
37
37
 
38
+ # @!attribute since_event_id
39
+ # Optional string to fetch events since an ID
40
+ #
41
+ # @return [String, nil]
42
+ optional :since_event_id, String
43
+
38
44
  # @!attribute sort_order
39
45
  # Sort order for results (asc or desc by creation time)
40
46
  #
@@ -47,7 +53,7 @@ module Cadenya
47
53
  # @return [String, nil]
48
54
  optional :window_id, String
49
55
 
50
- # @!method initialize(workspace_id:, objective_id:, cursor: nil, include_info: nil, limit: nil, sort_order: nil, window_id: nil, request_options: {})
56
+ # @!method initialize(workspace_id:, objective_id:, cursor: nil, include_info: nil, limit: nil, since_event_id: nil, sort_order: nil, window_id: nil, request_options: {})
51
57
  # @param workspace_id [String]
52
58
  #
53
59
  # @param objective_id [String]
@@ -58,6 +64,8 @@ module Cadenya
58
64
  #
59
65
  # @param limit [Integer] Maximum number of results to return
60
66
  #
67
+ # @param since_event_id [String] Optional string to fetch events since an ID
68
+ #
61
69
  # @param sort_order [String] Sort order for results (asc or desc by creation time)
62
70
  #
63
71
  # @param window_id [String] Optional context window ID to filter events by
@@ -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 SubAgentSpawned < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute agent
7
+ # Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
8
+ #
9
+ # @return [Cadenya::Models::ResourceMetadata, nil]
10
+ optional :agent, -> { Cadenya::ResourceMetadata }
11
+
12
+ # @!attribute objective
13
+ # Metadata for ephemeral operations and activities (e.g., objectives, executions,
14
+ # runs)
15
+ #
16
+ # @return [Cadenya::Models::OperationMetadata, nil]
17
+ optional :objective, -> { Cadenya::OperationMetadata }
18
+
19
+ # @!attribute task
20
+ #
21
+ # @return [String, nil]
22
+ optional :task, String
23
+
24
+ # @!method initialize(agent: nil, objective: nil, task: nil)
25
+ # Some parameter documentations has been truncated, see
26
+ # {Cadenya::Models::SubAgentSpawned} for more details.
27
+ #
28
+ # @param agent [Cadenya::Models::ResourceMetadata] Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
29
+ #
30
+ # @param objective [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
31
+ #
32
+ # @param task [String]
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ class SubAgentUpdated < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute agent
7
+ # BareMetadata contains the minimal metadata for a resource: the ID and an
8
+ # optional human-readable name. These are used for reference fields where the full
9
+ # metadata (account scoping, timestamps, labels, external IDs) is not needed —
10
+ # e.g., the tool references inside an agent variation spec or the tools assigned
11
+ # to an objective. Both fields are server-populated; clients provide IDs through
12
+ # sibling fields rather than by constructing a BareMetadata themselves.
13
+ #
14
+ # @return [Cadenya::Models::BareMetadata, nil]
15
+ optional :agent, -> { Cadenya::BareMetadata }
16
+
17
+ # @!attribute message
18
+ #
19
+ # @return [String, nil]
20
+ optional :message, String
21
+
22
+ # @!attribute objective
23
+ # BareMetadata contains the minimal metadata for a resource: the ID and an
24
+ # optional human-readable name. These are used for reference fields where the full
25
+ # metadata (account scoping, timestamps, labels, external IDs) is not needed —
26
+ # e.g., the tool references inside an agent variation spec or the tools assigned
27
+ # to an objective. Both fields are server-populated; clients provide IDs through
28
+ # sibling fields rather than by constructing a BareMetadata themselves.
29
+ #
30
+ # @return [Cadenya::Models::BareMetadata, nil]
31
+ optional :objective, -> { Cadenya::BareMetadata }
32
+
33
+ # @!attribute status
34
+ #
35
+ # @return [Symbol, Cadenya::Models::SubAgentUpdated::Status, nil]
36
+ optional :status, enum: -> { Cadenya::SubAgentUpdated::Status }
37
+
38
+ # @!method initialize(agent: nil, message: nil, objective: nil, status: nil)
39
+ # Some parameter documentations has been truncated, see
40
+ # {Cadenya::Models::SubAgentUpdated} for more details.
41
+ #
42
+ # @param agent [Cadenya::Models::BareMetadata] BareMetadata contains the minimal metadata for a resource: the ID and an
43
+ #
44
+ # @param message [String]
45
+ #
46
+ # @param objective [Cadenya::Models::BareMetadata] BareMetadata contains the minimal metadata for a resource: the ID and an
47
+ #
48
+ # @param status [Symbol, Cadenya::Models::SubAgentUpdated::Status]
49
+
50
+ # @see Cadenya::Models::SubAgentUpdated#status
51
+ module Status
52
+ extend Cadenya::Internal::Type::Enum
53
+
54
+ STATUS_UNSPECIFIED = :STATUS_UNSPECIFIED
55
+ STATUS_PENDING = :STATUS_PENDING
56
+ STATUS_RUNNING = :STATUS_RUNNING
57
+ STATUS_COMPLETED = :STATUS_COMPLETED
58
+ STATUS_FAILED = :STATUS_FAILED
59
+ STATUS_CANCELLED = :STATUS_CANCELLED
60
+
61
+ # @!method self.values
62
+ # @return [Array<Symbol>]
63
+ end
64
+ end
65
+ end
66
+ end