Class: Cadenya::Resources::Objectives

Inherits:
Object
  • Object
show all
Defined in:
lib/cadenya/resources/objectives.rb,
lib/cadenya/resources/objectives/tasks.rb,
lib/cadenya/resources/objectives/tools.rb,
lib/cadenya/resources/objectives/feedback.rb,
lib/cadenya/resources/objectives/tool_calls.rb

Defined Under Namespace

Classes: Feedback, Tasks, ToolCalls, Tools

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Objectives

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Objectives.

Parameters:



317
318
319
320
321
322
323
# File 'lib/cadenya/resources/objectives.rb', line 317

def initialize(client:)
  @client = client
  @tools = Cadenya::Resources::Objectives::Tools.new(client: client)
  @tool_calls = Cadenya::Resources::Objectives::ToolCalls.new(client: client)
  @tasks = Cadenya::Resources::Objectives::Tasks.new(client: client)
  @feedback = Cadenya::Resources::Objectives::Feedback.new(client: client)
end

Instance Attribute Details

#feedbackCadenya::Resources::Objectives::Feedback (readonly)



16
17
18
# File 'lib/cadenya/resources/objectives.rb', line 16

def feedback
  @feedback
end

#tasksCadenya::Resources::Objectives::Tasks (readonly)



13
14
15
# File 'lib/cadenya/resources/objectives.rb', line 13

def tasks
  @tasks
end

#tool_callsCadenya::Resources::Objectives::ToolCalls (readonly)



10
11
12
# File 'lib/cadenya/resources/objectives.rb', line 10

def tool_calls
  @tool_calls
end

#toolsCadenya::Resources::Objectives::Tools (readonly)



7
8
9
# File 'lib/cadenya/resources/objectives.rb', line 7

def tools
  @tools
end

Instance Method Details

#cancel(objective_id, workspace_id:, reason: nil, request_options: {}) ⇒ Cadenya::Models::Objective

Some parameter documentations has been truncated, see Models::ObjectiveCancelParams for more details.

Cancels a running or pending objective. The objective’s state will be set to STATE_CANCELLED.

Parameters:

  • objective_id (String)

    Path param: The ID of the objective. Supports “external_id:” prefix for external

  • workspace_id (String)

    Path param

  • reason (String)

    Body param: Optional reason for cancellation

  • request_options (Cadenya::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/cadenya/resources/objectives.rb', line 147

def cancel(objective_id, params)
  parsed, options = Cadenya::ObjectiveCancelParams.dump_request(params)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :post,
    path: ["v1/workspaces/%1$s/objectives/%2$s/cancel", workspace_id, objective_id],
    body: parsed,
    model: Cadenya::Objective,
    options: options
  )
end

#compact(objective_id, workspace_id:, compaction_config: nil, request_options: {}) ⇒ Cadenya::Models::ObjectiveCompactResponse

Some parameter documentations has been truncated, see Models::ObjectiveCompactParams for more details.

Triggers compaction on a running objective. Optionally override the variation’s compaction config.

Parameters:

Returns:

See Also:



181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/cadenya/resources/objectives.rb', line 181

def compact(objective_id, params)
  parsed, options = Cadenya::ObjectiveCompactParams.dump_request(params)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :post,
    path: ["v1/workspaces/%1$s/objectives/%2$s/compact", workspace_id, objective_id],
    body: parsed,
    model: Cadenya::Models::ObjectiveCompactResponse,
    options: options
  )
end

#continue(objective_id, workspace_id:, enqueue: nil, message: nil, secrets: nil, request_options: {}) ⇒ Cadenya::Models::ObjectiveContinueResponse

Some parameter documentations has been truncated, see Models::ObjectiveContinueParams for more details.

Continues an objective that has completed

Parameters:

  • objective_id (String)

    Path param: The ID of the objective. If you have assigned an external ID to the

  • workspace_id (String)

    Path param

  • enqueue (Boolean)

    Body param: When set to true, the message will be enqueued for when the agent lo

  • message (String)

    Body param: The message to continue an objective that has completed (or you are

  • secrets (Array<Cadenya::Models::ObjectiveContinueParams::Secret>)

    Body param: Secrets that should be included with the message. Helpful for when y

  • request_options (Cadenya::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



218
219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/cadenya/resources/objectives.rb', line 218

def continue(objective_id, params)
  parsed, options = Cadenya::ObjectiveContinueParams.dump_request(params)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :post,
    path: ["v1/workspaces/%1$s/objectives/%2$s/continue", workspace_id, objective_id],
    body: parsed,
    model: Cadenya::Models::ObjectiveContinueResponse,
    options: options
  )
end

#create(workspace_id, agent_id:, data:, metadata:, variation_id: nil, request_options: {}) ⇒ Cadenya::Models::Objective

Some parameter documentations has been truncated, see Models::ObjectiveCreateParams for more details.

Creates a new objective in the workspace

Parameters:

Returns:

See Also:



40
41
42
43
44
45
46
47
48
49
# File 'lib/cadenya/resources/objectives.rb', line 40

def create(workspace_id, params)
  parsed, options = Cadenya::ObjectiveCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["v1/workspaces/%1$s/objectives", workspace_id],
    body: parsed,
    model: Cadenya::Objective,
    options: options
  )
end

#list(workspace_id, agent_id: nil, agent_schedule_id: nil, cursor: nil, include_info: nil, limit: nil, parent_objective_id: nil, profile_id: nil, sort_order: nil, state: nil, request_options: {}) ⇒ Cadenya::Internal::CursorPagination<Cadenya::Models::Objective>

Some parameter documentations has been truncated, see Models::ObjectiveListParams for more details.

Lists all objectives in the workspace

Parameters:

  • workspace_id (String)
  • agent_id (String)

    Agent ID for filtering

  • agent_schedule_id (String)

    Filter to objectives produced by a specific AgentSchedule. Accepts

  • cursor (String)

    Pagination cursor from previous response

  • include_info (Boolean)

    When set to true you may use more of your alloted API rate-limit

  • limit (Integer)

    Maximum number of results to return

  • parent_objective_id (String)

    Optional filters

  • profile_id (String)
  • sort_order (String)

    Sort order for results (asc or desc by creation time)

  • state (Symbol, Cadenya::Models::ObjectiveListParams::State)

    Filter by state

  • request_options (Cadenya::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/cadenya/resources/objectives.rb', line 108

def list(workspace_id, params = {})
  parsed, options = Cadenya::ObjectiveListParams.dump_request(params)
  query = Cadenya::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["v1/workspaces/%1$s/objectives", workspace_id],
    query: query.transform_keys(
      agent_id: "agentId",
      agent_schedule_id: "agentScheduleId",
      include_info: "includeInfo",
      parent_objective_id: "parentObjectiveId",
      profile_id: "profileId",
      sort_order: "sortOrder"
    ),
    page: Cadenya::Internal::CursorPagination,
    model: Cadenya::Objective,
    options: options
  )
end

#list_context_windows(objective_id, workspace_id:, cursor: nil, include_info: nil, limit: nil, request_options: {}) ⇒ Cadenya::Internal::CursorPagination<Cadenya::Models::ObjectiveContextWindow>

Read-only list of the last five windows of execution for this objective, ordered by most recent first

Parameters:

  • objective_id (String)

    Path param: The objective ID to return windows for

  • workspace_id (String)

    Path param

  • cursor (String)

    Query param: Pagination cursor from previous response

  • include_info (Boolean)

    Query param: When set to true you may use more of your alloted API rate-limit

  • limit (Integer)

    Query param: Maximum number of results to return

  • request_options (Cadenya::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/cadenya/resources/objectives.rb', line 253

def list_context_windows(objective_id, params)
  parsed, options = Cadenya::ObjectiveListContextWindowsParams.dump_request(params)
  query = Cadenya::Internal::Util.encode_query_params(parsed)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["v1/workspaces/%1$s/objectives/%2$s/context_windows", workspace_id, objective_id],
    query: query.transform_keys(include_info: "includeInfo"),
    page: Cadenya::Internal::CursorPagination,
    model: Cadenya::ObjectiveContextWindow,
    options: options
  )
end

#list_events(objective_id, workspace_id:, cursor: nil, include_info: nil, limit: nil, sort_order: nil, window_id: nil, request_options: {}) ⇒ Cadenya::Internal::CursorPagination<Cadenya::Models::ObjectiveListEventsResponse>

Lists all events for an objective

Parameters:

  • objective_id (String)

    Path param: Objective ID for filtering

  • workspace_id (String)

    Path param

  • cursor (String)

    Query param: Pagination cursor from previous response

  • include_info (Boolean)

    Query param: When set to true you may use more of your alloted API rate-limit

  • limit (Integer)

    Query param: Maximum number of results to return

  • sort_order (String)

    Query param: Sort order for results (asc or desc by creation time)

  • window_id (String)

    Query param: Optional context window ID to filter events by

  • request_options (Cadenya::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/cadenya/resources/objectives.rb', line 293

def list_events(objective_id, params)
  parsed, options = Cadenya::ObjectiveListEventsParams.dump_request(params)
  query = Cadenya::Internal::Util.encode_query_params(parsed)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["v1/workspaces/%1$s/objectives/%2$s/events", workspace_id, objective_id],
    query: query.transform_keys(
      include_info: "includeInfo",
      sort_order: "sortOrder",
      window_id: "windowId"
    ),
    page: Cadenya::Internal::CursorPagination,
    model: Cadenya::Models::ObjectiveListEventsResponse,
    options: options
  )
end

#retrieve(id, workspace_id:, request_options: {}) ⇒ Cadenya::Models::Objective

Retrieves an objective by ID from the workspace

Parameters:

Returns:

See Also:



62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/cadenya/resources/objectives.rb', line 62

def retrieve(id, params)
  parsed, options = Cadenya::ObjectiveRetrieveParams.dump_request(params)
  workspace_id =
    parsed.delete(:workspace_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["v1/workspaces/%1$s/objectives/%2$s", workspace_id, id],
    model: Cadenya::Objective,
    options: options
  )
end