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
data/lib/cadenya.rb CHANGED
@@ -120,8 +120,10 @@ require_relative "cadenya/models/api_keys/access_list_params"
120
120
  require_relative "cadenya/models/api_keys/access_remove_params"
121
121
  require_relative "cadenya/models/api_key_spec"
122
122
  require_relative "cadenya/models/api_key_update_params"
123
+ require_relative "cadenya/models/approval_requirement_filter"
123
124
  require_relative "cadenya/models/assistant_message"
124
125
  require_relative "cadenya/models/assistant_tool_call"
126
+ require_relative "cadenya/models/attribute_filter"
125
127
  require_relative "cadenya/models/bare_metadata"
126
128
  require_relative "cadenya/models/bulk_workspace_apply"
127
129
  require_relative "cadenya/models/bulk_workspace_apply_data"
@@ -146,7 +148,6 @@ require_relative "cadenya/models/callable_tool"
146
148
  require_relative "cadenya/models/context_window_compacted"
147
149
  require_relative "cadenya/models/create_operation_metadata"
148
150
  require_relative "cadenya/models/create_resource_metadata"
149
- require_relative "cadenya/models/mcp_tool_filter"
150
151
  require_relative "cadenya/models/memory_entry_item"
151
152
  require_relative "cadenya/models/memory_layer"
152
153
  require_relative "cadenya/models/memory_layer_create_params"
@@ -222,7 +223,9 @@ require_relative "cadenya/models/resource_metadata"
222
223
  require_relative "cadenya/models/rotate_webhook_signing_key_response"
223
224
  require_relative "cadenya/models/search_search_tools_or_tool_sets_params"
224
225
  require_relative "cadenya/models/search_search_tools_or_tool_sets_response"
225
- require_relative "cadenya/models/sub_objective_created"
226
+ require_relative "cadenya/models/string_matcher"
227
+ require_relative "cadenya/models/sub_agent_spawned"
228
+ require_relative "cadenya/models/sub_agent_updated"
226
229
  require_relative "cadenya/models/sync_completed"
227
230
  require_relative "cadenya/models/sync_failed"
228
231
  require_relative "cadenya/models/sync_started"
@@ -232,22 +235,27 @@ require_relative "cadenya/models/tool_called"
232
235
  require_relative "cadenya/models/tool_denied"
233
236
  require_relative "cadenya/models/tool_entry"
234
237
  require_relative "cadenya/models/tool_error"
238
+ require_relative "cadenya/models/tool_filter"
235
239
  require_relative "cadenya/models/tool_result"
236
240
  require_relative "cadenya/models/tool_set"
237
241
  require_relative "cadenya/models/tool_set_adapter"
238
242
  require_relative "cadenya/models/tool_set_adapter_http"
239
243
  require_relative "cadenya/models/tool_set_adapter_mcp"
244
+ require_relative "cadenya/models/tool_set_adapter_openapi"
240
245
  require_relative "cadenya/models/tool_set_create_params"
241
246
  require_relative "cadenya/models/tool_set_delete_params"
242
247
  require_relative "cadenya/models/tool_set_entry"
243
248
  require_relative "cadenya/models/tool_set_event"
244
249
  require_relative "cadenya/models/tool_set_event_data"
250
+ require_relative "cadenya/models/tool_set_get_openapi_spec_params"
251
+ require_relative "cadenya/models/tool_set_get_openapi_spec_response"
245
252
  require_relative "cadenya/models/tool_set_info"
246
253
  require_relative "cadenya/models/tool_set_list_events_params"
247
254
  require_relative "cadenya/models/tool_set_list_params"
248
255
  require_relative "cadenya/models/tool_set_retrieve_params"
249
256
  require_relative "cadenya/models/tool_sets/config_http"
250
257
  require_relative "cadenya/models/tool_sets/config_mcp"
258
+ require_relative "cadenya/models/tool_sets/config_openapi"
251
259
  require_relative "cadenya/models/tool_sets/tool"
252
260
  require_relative "cadenya/models/tool_sets/tool_create_params"
253
261
  require_relative "cadenya/models/tool_sets/tool_delete_params"
@@ -273,8 +281,18 @@ require_relative "cadenya/models/variation_memory_layer_entry"
273
281
  require_relative "cadenya/models/webhook_unsafe_unwrap_params"
274
282
  require_relative "cadenya/models/webhook_unwrap_params"
275
283
  require_relative "cadenya/models/workspace"
284
+ require_relative "cadenya/models/workspace_admin/member_add_params"
285
+ require_relative "cadenya/models/workspace_admin/member_list_params"
286
+ require_relative "cadenya/models/workspace_admin/member_remove_params"
287
+ require_relative "cadenya/models/workspace_admin/profile_list_params"
288
+ require_relative "cadenya/models/workspace_admin_archive_params"
289
+ require_relative "cadenya/models/workspace_admin_create_params"
290
+ require_relative "cadenya/models/workspace_admin_list_params"
291
+ require_relative "cadenya/models/workspace_admin_retrieve_params"
292
+ require_relative "cadenya/models/workspace_admin_update_params"
276
293
  require_relative "cadenya/models/workspace_get_params"
277
294
  require_relative "cadenya/models/workspace_list_params"
295
+ require_relative "cadenya/models/workspace_member"
278
296
  require_relative "cadenya/models/workspace_secret"
279
297
  require_relative "cadenya/models/workspace_secret_create_params"
280
298
  require_relative "cadenya/models/workspace_secret_delete_params"
@@ -308,5 +326,8 @@ require_relative "cadenya/resources/tool_sets"
308
326
  require_relative "cadenya/resources/tool_sets/tools"
309
327
  require_relative "cadenya/resources/uploads"
310
328
  require_relative "cadenya/resources/webhooks"
329
+ require_relative "cadenya/resources/workspace_admin"
330
+ require_relative "cadenya/resources/workspace_admin/members"
331
+ require_relative "cadenya/resources/workspace_admin/profiles"
311
332
  require_relative "cadenya/resources/workspaces"
312
333
  require_relative "cadenya/resources/workspace_secrets"
@@ -68,9 +68,22 @@ module Cadenya
68
68
 
69
69
  # Manage workspaces within an account. Workspaces provide organizational grouping
70
70
  # and isolation for resources such as agents, tools, and API keys.
71
+ #
72
+ # This is the workspace-scoped, end-user surface. Administrative operations
73
+ # (create / archive workspaces, manage members) live in WorkspaceAdminService
74
+ # under /v1/account/workspaces and require the admin role.
71
75
  sig { returns(Cadenya::Resources::Workspaces) }
72
76
  attr_reader :workspaces
73
77
 
78
+ # Administer workspaces across the account: create and archive workspaces and
79
+ # manage their membership. These operations are account-scoped and require the
80
+ # admin role (a token whose profile holds the WorkOS admin role); they live under
81
+ # /v1/account/workspaces rather than the workspace-scoped /v1/workspaces tree so
82
+ # an admin can manage any workspace in the account, including ones they are not
83
+ # themselves a member of.
84
+ sig { returns(Cadenya::Resources::WorkspaceAdmin) }
85
+ attr_reader :workspace_admin
86
+
74
87
  sig { returns(Cadenya::Resources::Webhooks) }
75
88
  attr_reader :webhooks
76
89
 
@@ -27,12 +27,22 @@ module Cadenya
27
27
  # data schema is also valuable when using an agent as a sub-agent, as the schema
28
28
  # is used as the tool's input parameter schema. If omitted, the sub-agent schema
29
29
  # will be loaded with a simple "prompt" free text string as its schema.
30
- sig { returns(T.nilable(T.anything)) }
30
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
31
31
  attr_reader :input_data_schema
32
32
 
33
- sig { params(input_data_schema: T.anything).void }
33
+ sig { params(input_data_schema: T::Hash[Symbol, T.anything]).void }
34
34
  attr_writer :input_data_schema
35
35
 
36
+ # Optional output definition for objectives created for this agent. When provided,
37
+ # Cadenya will append a tool to that will be called by the LLM in use by the
38
+ # variant to extract information in the format provided here. Use this option when
39
+ # you want structured data to be created by your objectives.
40
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
41
+ attr_reader :output_definition
42
+
43
+ sig { params(output_definition: T::Hash[Symbol, T.anything]).void }
44
+ attr_writer :output_definition
45
+
36
46
  # The URL that Cadenya will send events for any objective assigned to the agent.
37
47
  sig { returns(T.nilable(String)) }
38
48
  attr_reader :webhook_events_url
@@ -47,7 +57,8 @@ module Cadenya
47
57
  variation_selection_mode:
48
58
  Cadenya::AgentSpec::VariationSelectionMode::OrSymbol,
49
59
  description: String,
50
- input_data_schema: T.anything,
60
+ input_data_schema: T::Hash[Symbol, T.anything],
61
+ output_definition: T::Hash[Symbol, T.anything],
51
62
  webhook_events_url: String
52
63
  ).returns(T.attached_class)
53
64
  end
@@ -65,6 +76,11 @@ module Cadenya
65
76
  # is used as the tool's input parameter schema. If omitted, the sub-agent schema
66
77
  # will be loaded with a simple "prompt" free text string as its schema.
67
78
  input_data_schema: nil,
79
+ # Optional output definition for objectives created for this agent. When provided,
80
+ # Cadenya will append a tool to that will be called by the LLM in use by the
81
+ # variant to extract information in the format provided here. Use this option when
82
+ # you want structured data to be created by your objectives.
83
+ output_definition: nil,
68
84
  # The URL that Cadenya will send events for any objective assigned to the agent.
69
85
  webhook_events_url: nil
70
86
  )
@@ -77,7 +93,8 @@ module Cadenya
77
93
  variation_selection_mode:
78
94
  Cadenya::AgentSpec::VariationSelectionMode::OrSymbol,
79
95
  description: String,
80
- input_data_schema: T.anything,
96
+ input_data_schema: T::Hash[Symbol, T.anything],
97
+ output_definition: T::Hash[Symbol, T.anything],
81
98
  webhook_events_url: String
82
99
  }
83
100
  )
@@ -178,11 +178,6 @@ module Cadenya
178
178
  :OBJECTIVE_EVENT_TYPE_TOOL_CALLED,
179
179
  Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
180
180
  )
181
- OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED =
182
- T.let(
183
- :OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED,
184
- Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
185
- )
186
181
  OBJECTIVE_EVENT_TYPE_ERROR =
187
182
  T.let(
188
183
  :OBJECTIVE_EVENT_TYPE_ERROR,
@@ -218,6 +213,21 @@ module Cadenya
218
213
  :OBJECTIVE_EVENT_TYPE_CANCELLED,
219
214
  Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
220
215
  )
216
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED =
217
+ T.let(
218
+ :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED,
219
+ Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
220
+ )
221
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED =
222
+ T.let(
223
+ :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED,
224
+ Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
225
+ )
226
+ OBJECTIVE_EVENT_TYPE_FINALIZED =
227
+ T.let(
228
+ :OBJECTIVE_EVENT_TYPE_FINALIZED,
229
+ Cadenya::Agents::WebhookDeliveryData::EventType::TaggedSymbol
230
+ )
221
231
 
222
232
  sig do
223
233
  override.returns(
@@ -147,11 +147,6 @@ module Cadenya
147
147
  :OBJECTIVE_EVENT_TYPE_TOOL_CALLED,
148
148
  Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
149
149
  )
150
- OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED =
151
- T.let(
152
- :OBJECTIVE_EVENT_TYPE_SUB_OBJECTIVE_CREATED,
153
- Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
154
- )
155
150
  OBJECTIVE_EVENT_TYPE_ERROR =
156
151
  T.let(
157
152
  :OBJECTIVE_EVENT_TYPE_ERROR,
@@ -187,6 +182,21 @@ module Cadenya
187
182
  :OBJECTIVE_EVENT_TYPE_CANCELLED,
188
183
  Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
189
184
  )
185
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED =
186
+ T.let(
187
+ :OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED,
188
+ Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
189
+ )
190
+ OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED =
191
+ T.let(
192
+ :OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED,
193
+ Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
194
+ )
195
+ OBJECTIVE_EVENT_TYPE_FINALIZED =
196
+ T.let(
197
+ :OBJECTIVE_EVENT_TYPE_FINALIZED,
198
+ Cadenya::Agents::WebhookDeliveryListParams::EventType::TaggedSymbol
199
+ )
190
200
 
191
201
  sig do
192
202
  override.returns(
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ApprovalRequirementFilter < Cadenya::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Cadenya::ApprovalRequirementFilter, Cadenya::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(T::Boolean)) }
12
+ attr_reader :always
13
+
14
+ sig { params(always: T::Boolean).void }
15
+ attr_writer :always
16
+
17
+ # Top-level filter with simple boolean logic (no nesting)
18
+ sig { returns(T.nilable(Cadenya::ToolFilter)) }
19
+ attr_reader :only
20
+
21
+ sig { params(only: Cadenya::ToolFilter::OrHash).void }
22
+ attr_writer :only
23
+
24
+ # Approval filters that will automatically set the approval requirement on tools
25
+ # synced from an external source
26
+ sig do
27
+ params(always: T::Boolean, only: Cadenya::ToolFilter::OrHash).returns(
28
+ T.attached_class
29
+ )
30
+ end
31
+ def self.new(
32
+ always: nil,
33
+ # Top-level filter with simple boolean logic (no nesting)
34
+ only: nil
35
+ )
36
+ end
37
+
38
+ sig do
39
+ override.returns({ always: T::Boolean, only: Cadenya::ToolFilter })
40
+ end
41
+ def to_hash
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class AttributeFilter < Cadenya::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Cadenya::AttributeFilter, Cadenya::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Cadenya::AttributeFilter::Attribute::OrSymbol) }
12
+ attr_accessor :attribute
13
+
14
+ # String matching operations
15
+ sig { returns(T.nilable(Cadenya::StringMatcher)) }
16
+ attr_reader :matcher
17
+
18
+ sig { params(matcher: Cadenya::StringMatcher::OrHash).void }
19
+ attr_writer :matcher
20
+
21
+ # Single attribute filter
22
+ sig do
23
+ params(
24
+ attribute: Cadenya::AttributeFilter::Attribute::OrSymbol,
25
+ matcher: Cadenya::StringMatcher::OrHash
26
+ ).returns(T.attached_class)
27
+ end
28
+ def self.new(
29
+ attribute:,
30
+ # String matching operations
31
+ matcher: nil
32
+ )
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ {
38
+ attribute: Cadenya::AttributeFilter::Attribute::OrSymbol,
39
+ matcher: Cadenya::StringMatcher
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+
46
+ module Attribute
47
+ extend Cadenya::Internal::Type::Enum
48
+
49
+ TaggedSymbol =
50
+ T.type_alias { T.all(Symbol, Cadenya::AttributeFilter::Attribute) }
51
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
52
+
53
+ ATTRIBUTE_UNSPECIFIED =
54
+ T.let(
55
+ :ATTRIBUTE_UNSPECIFIED,
56
+ Cadenya::AttributeFilter::Attribute::TaggedSymbol
57
+ )
58
+ ATTRIBUTE_NAME =
59
+ T.let(
60
+ :ATTRIBUTE_NAME,
61
+ Cadenya::AttributeFilter::Attribute::TaggedSymbol
62
+ )
63
+ ATTRIBUTE_TITLE =
64
+ T.let(
65
+ :ATTRIBUTE_TITLE,
66
+ Cadenya::AttributeFilter::Attribute::TaggedSymbol
67
+ )
68
+ ATTRIBUTE_DESCRIPTION =
69
+ T.let(
70
+ :ATTRIBUTE_DESCRIPTION,
71
+ Cadenya::AttributeFilter::Attribute::TaggedSymbol
72
+ )
73
+
74
+ sig do
75
+ override.returns(
76
+ T::Array[Cadenya::AttributeFilter::Attribute::TaggedSymbol]
77
+ )
78
+ end
79
+ def self.values
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -26,7 +26,7 @@ module Cadenya
26
26
  # CreateOperationMetadata contains the user-provided fields for creating an
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
- sig { returns(Cadenya::CreateOperationMetadata) }
29
+ sig { returns(T.nilable(Cadenya::CreateOperationMetadata)) }
30
30
  attr_reader :metadata
31
31
 
32
32
  sig { params(metadata: Cadenya::CreateOperationMetadata::OrHash).void }
@@ -57,7 +57,7 @@ module Cadenya
57
57
  # CreateOperationMetadata contains the user-provided fields for creating an
58
58
  # operation. Read-only fields (id, account_id, workspace_id, created_at,
59
59
  # profile_id) are excluded since they are set by the server.
60
- metadata:,
60
+ metadata: nil,
61
61
  # Optional explicit variation selection. Overrides the agent's
62
62
  # variation_selection_mode.
63
63
  variation_id: nil,
@@ -64,6 +64,22 @@ module Cadenya
64
64
  sig { params(agent: Cadenya::Agent::OrHash).void }
65
65
  attr_writer :agent
66
66
 
67
+ # The output of the objective, populated when the objective completes. Will match
68
+ # the schema of output_json_schema or output_json_inferred.
69
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
70
+ attr_reader :output
71
+
72
+ sig { params(output: T::Hash[Symbol, T.anything]).void }
73
+ attr_writer :output
74
+
75
+ # Snapshot of the agent spec's output_definition at objective creation time. When
76
+ # present, the objective will run an extraction step after the LLM finishes.
77
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
78
+ attr_reader :output_definition
79
+
80
+ sig { params(output_definition: T::Hash[Symbol, T.anything]).void }
81
+ attr_writer :output_definition
82
+
67
83
  # A parent objective means the objective was spawned off using a separate agent to
68
84
  # complete an objective
69
85
  sig { returns(T.nilable(String)) }
@@ -101,6 +117,8 @@ module Cadenya
101
117
  data: T.anything,
102
118
  initial_message: String,
103
119
  memory_stack: T::Array[Cadenya::MemoryReference::OrHash],
120
+ output: T::Hash[Symbol, T.anything],
121
+ output_definition: T::Hash[Symbol, T.anything],
104
122
  parent_objective_id: String,
105
123
  secrets: T::Array[Cadenya::ObjectiveDataSecret::OrHash],
106
124
  source_schedule_id: String,
@@ -133,6 +151,12 @@ module Cadenya
133
151
  # - this field) must not exceed 10 entries. A request that would produce an
134
152
  # effective stack larger than 10 is rejected with InvalidArgument.
135
153
  memory_stack: nil,
154
+ # The output of the objective, populated when the objective completes. Will match
155
+ # the schema of output_json_schema or output_json_inferred.
156
+ output: nil,
157
+ # Snapshot of the agent spec's output_definition at objective creation time. When
158
+ # present, the objective will run an extraction step after the LLM finishes.
159
+ output_definition: nil,
136
160
  # A parent objective means the objective was spawned off using a separate agent to
137
161
  # complete an objective
138
162
  parent_objective_id: nil,
@@ -157,6 +181,8 @@ module Cadenya
157
181
  data: T.anything,
158
182
  initial_message: String,
159
183
  memory_stack: T::Array[Cadenya::MemoryReference],
184
+ output: T::Hash[Symbol, T.anything],
185
+ output_definition: T::Hash[Symbol, T.anything],
160
186
  parent_objective_id: String,
161
187
  secrets: T::Array[Cadenya::ObjectiveDataSecret],
162
188
  source_schedule_id: String,
@@ -41,6 +41,17 @@ module Cadenya
41
41
  sig { params(error: Cadenya::ObjectiveError::OrHash).void }
42
42
  attr_writer :error
43
43
 
44
+ # ObjectiveFinalized is the terminal event written when an objective is finalized.
45
+ # After this event, the objective is super-terminal: no further iterations,
46
+ # compaction, or continuation are permitted.
47
+ sig { returns(T.nilable(Cadenya::ObjectiveEventData::Finalized)) }
48
+ attr_reader :finalized
49
+
50
+ sig do
51
+ params(finalized: Cadenya::ObjectiveEventData::Finalized::OrHash).void
52
+ end
53
+ attr_writer :finalized
54
+
44
55
  # MemoryRead is emitted each time the agent resolves a key against the memory
45
56
  # stack and loads an entry. Lookups that miss (key not found in any layer) do not
46
57
  # emit this event.
@@ -50,13 +61,17 @@ module Cadenya
50
61
  sig { params(memory_read: Cadenya::MemoryRead::OrHash).void }
51
62
  attr_writer :memory_read
52
63
 
53
- sig { returns(T.nilable(Cadenya::SubObjectiveCreated)) }
54
- attr_reader :sub_objective_created
64
+ sig { returns(T.nilable(Cadenya::SubAgentSpawned)) }
65
+ attr_reader :sub_agent_spawned
55
66
 
56
- sig do
57
- params(sub_objective_created: Cadenya::SubObjectiveCreated::OrHash).void
58
- end
59
- attr_writer :sub_objective_created
67
+ sig { params(sub_agent_spawned: Cadenya::SubAgentSpawned::OrHash).void }
68
+ attr_writer :sub_agent_spawned
69
+
70
+ sig { returns(T.nilable(Cadenya::SubAgentUpdated)) }
71
+ attr_reader :sub_agent_updated
72
+
73
+ sig { params(sub_agent_updated: Cadenya::SubAgentUpdated::OrHash).void }
74
+ attr_writer :sub_agent_updated
60
75
 
61
76
  sig { returns(T.nilable(Cadenya::ToolApprovalRequested)) }
62
77
  attr_reader :tool_approval_requested
@@ -116,8 +131,10 @@ module Cadenya
116
131
  cancelled: Cadenya::ObjectiveEventData::Cancelled::OrHash,
117
132
  context_window_compacted: Cadenya::ContextWindowCompacted::OrHash,
118
133
  error: Cadenya::ObjectiveError::OrHash,
134
+ finalized: Cadenya::ObjectiveEventData::Finalized::OrHash,
119
135
  memory_read: Cadenya::MemoryRead::OrHash,
120
- sub_objective_created: Cadenya::SubObjectiveCreated::OrHash,
136
+ sub_agent_spawned: Cadenya::SubAgentSpawned::OrHash,
137
+ sub_agent_updated: Cadenya::SubAgentUpdated::OrHash,
121
138
  tool_approval_requested: Cadenya::ToolApprovalRequested::OrHash,
122
139
  tool_approved: Cadenya::ToolApproved::OrHash,
123
140
  tool_called: Cadenya::ToolCalled::OrHash,
@@ -136,11 +153,16 @@ module Cadenya
136
153
  cancelled: nil,
137
154
  context_window_compacted: nil,
138
155
  error: nil,
156
+ # ObjectiveFinalized is the terminal event written when an objective is finalized.
157
+ # After this event, the objective is super-terminal: no further iterations,
158
+ # compaction, or continuation are permitted.
159
+ finalized: nil,
139
160
  # MemoryRead is emitted each time the agent resolves a key against the memory
140
161
  # stack and loads an entry. Lookups that miss (key not found in any layer) do not
141
162
  # emit this event.
142
163
  memory_read: nil,
143
- sub_objective_created: nil,
164
+ sub_agent_spawned: nil,
165
+ sub_agent_updated: nil,
144
166
  tool_approval_requested: nil,
145
167
  tool_approved: nil,
146
168
  tool_called: nil,
@@ -159,8 +181,10 @@ module Cadenya
159
181
  cancelled: Cadenya::ObjectiveEventData::Cancelled,
160
182
  context_window_compacted: Cadenya::ContextWindowCompacted,
161
183
  error: Cadenya::ObjectiveError,
184
+ finalized: Cadenya::ObjectiveEventData::Finalized,
162
185
  memory_read: Cadenya::MemoryRead,
163
- sub_objective_created: Cadenya::SubObjectiveCreated,
186
+ sub_agent_spawned: Cadenya::SubAgentSpawned,
187
+ sub_agent_updated: Cadenya::SubAgentUpdated,
164
188
  tool_approval_requested: Cadenya::ToolApprovalRequested,
165
189
  tool_approved: Cadenya::ToolApproved,
166
190
  tool_called: Cadenya::ToolCalled,
@@ -209,6 +233,41 @@ module Cadenya
209
233
  def to_hash
210
234
  end
211
235
  end
236
+
237
+ class Finalized < Cadenya::Internal::Type::BaseModel
238
+ OrHash =
239
+ T.type_alias do
240
+ T.any(
241
+ Cadenya::ObjectiveEventData::Finalized,
242
+ Cadenya::Internal::AnyHash
243
+ )
244
+ end
245
+
246
+ # If the objective was created with an output schema, and the agent successfully
247
+ # completed the objective, this field will contain the structured output of the
248
+ # objective.
249
+ sig { returns(T.nilable(T.anything)) }
250
+ attr_reader :output
251
+
252
+ sig { params(output: T.anything).void }
253
+ attr_writer :output
254
+
255
+ # ObjectiveFinalized is the terminal event written when an objective is finalized.
256
+ # After this event, the objective is super-terminal: no further iterations,
257
+ # compaction, or continuation are permitted.
258
+ sig { params(output: T.anything).returns(T.attached_class) }
259
+ def self.new(
260
+ # If the objective was created with an output schema, and the agent successfully
261
+ # completed the objective, this field will contain the structured output of the
262
+ # objective.
263
+ output: nil
264
+ )
265
+ end
266
+
267
+ sig { override.returns({ output: T.anything }) }
268
+ def to_hash
269
+ end
270
+ end
212
271
  end
213
272
  end
214
273
  end
@@ -38,6 +38,13 @@ module Cadenya
38
38
  sig { params(limit: Integer).void }
39
39
  attr_writer :limit
40
40
 
41
+ # Optional string to fetch events since an ID
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :since_event_id
44
+
45
+ sig { params(since_event_id: String).void }
46
+ attr_writer :since_event_id
47
+
41
48
  # Sort order for results (asc or desc by creation time)
42
49
  sig { returns(T.nilable(String)) }
43
50
  attr_reader :sort_order
@@ -59,6 +66,7 @@ module Cadenya
59
66
  cursor: String,
60
67
  include_info: T::Boolean,
61
68
  limit: Integer,
69
+ since_event_id: String,
62
70
  sort_order: String,
63
71
  window_id: String,
64
72
  request_options: Cadenya::RequestOptions::OrHash
@@ -73,6 +81,8 @@ module Cadenya
73
81
  include_info: nil,
74
82
  # Maximum number of results to return
75
83
  limit: nil,
84
+ # Optional string to fetch events since an ID
85
+ since_event_id: nil,
76
86
  # Sort order for results (asc or desc by creation time)
77
87
  sort_order: nil,
78
88
  # Optional context window ID to filter events by
@@ -89,6 +99,7 @@ module Cadenya
89
99
  cursor: String,
90
100
  include_info: T::Boolean,
91
101
  limit: Integer,
102
+ since_event_id: String,
92
103
  sort_order: String,
93
104
  window_id: String,
94
105
  request_options: Cadenya::RequestOptions
@@ -159,9 +159,9 @@ module Cadenya
159
159
  :STATE_RUNNING,
160
160
  Cadenya::ObjectiveListParams::State::TaggedSymbol
161
161
  )
162
- STATE_COMPLETED =
162
+ STATE_WAITING =
163
163
  T.let(
164
- :STATE_COMPLETED,
164
+ :STATE_WAITING,
165
165
  Cadenya::ObjectiveListParams::State::TaggedSymbol
166
166
  )
167
167
  STATE_FAILED =
@@ -174,6 +174,11 @@ module Cadenya
174
174
  :STATE_CANCELLED,
175
175
  Cadenya::ObjectiveListParams::State::TaggedSymbol
176
176
  )
177
+ STATE_FINALIZED =
178
+ T.let(
179
+ :STATE_FINALIZED,
180
+ Cadenya::ObjectiveListParams::State::TaggedSymbol
181
+ )
177
182
 
178
183
  sig do
179
184
  override.returns(
@@ -53,12 +53,14 @@ module Cadenya
53
53
  T.let(:STATE_PENDING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
54
54
  STATE_RUNNING =
55
55
  T.let(:STATE_RUNNING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
56
- STATE_COMPLETED =
57
- T.let(:STATE_COMPLETED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
56
+ STATE_WAITING =
57
+ T.let(:STATE_WAITING, Cadenya::ObjectiveStatus::State::TaggedSymbol)
58
58
  STATE_FAILED =
59
59
  T.let(:STATE_FAILED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
60
60
  STATE_CANCELLED =
61
61
  T.let(:STATE_CANCELLED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
62
+ STATE_FINALIZED =
63
+ T.let(:STATE_FINALIZED, Cadenya::ObjectiveStatus::State::TaggedSymbol)
62
64
 
63
65
  sig do
64
66
  override.returns(
@@ -64,6 +64,11 @@ module Cadenya
64
64
  T.type_alias { T.all(Symbol, Cadenya::ProfileSpec::Type) }
65
65
  OrSymbol = T.type_alias { T.any(Symbol, String) }
66
66
 
67
+ PROFILE_TYPE_UNSPECIFIED =
68
+ T.let(
69
+ :PROFILE_TYPE_UNSPECIFIED,
70
+ Cadenya::ProfileSpec::Type::TaggedSymbol
71
+ )
67
72
  PROFILE_TYPE_USER =
68
73
  T.let(:PROFILE_TYPE_USER, Cadenya::ProfileSpec::Type::TaggedSymbol)
69
74
  PROFILE_TYPE_API_KEY =