Skip to content
Get started

Continue an objective

client.objectives.continue(stringobjectiveID, ObjectiveContinueParams { enqueue, message, secrets } body, RequestOptionsoptions?): ObjectiveContinueResponse { data, metadata, contextWindowId, info }
POST/v1/objectives/{objectiveId}/continue

Continues an objective that has completed

ParametersExpand Collapse
objectiveID: string
body: ObjectiveContinueParams { enqueue, message, secrets }
enqueue?: boolean

When set to true, the message will be enqueued for when the agent loop is available to process it.

message?: string

The message to continue an objective that has completed (or you are enqueing)

secrets?: Array<Secret>

Secrets that should be included with the message. Helpful for when you need to update secrets on the objective (IE: A secret expires and needs to be refreshed)

name?: string
value?: string
ReturnsExpand Collapse
ObjectiveContinueResponse { data, metadata, contextWindowId, info }
data: ObjectiveEventData { assistantMessage, contextWindowCompacted, error, 9 more }
assistantMessage?: AssistantMessage { content, toolCalls }
content?: string
toolCalls?: Array<AssistantToolCall { arguments, functionName, tool } >
arguments?: string
functionName?: string
tool?: CallableTool { agent, cadenyaProvidedTool, tool }

CallableTool is a union that represents a tool that can be called by an agent. In Cadenya, a tool that is used within an agent objective might be a user-defined tool (IE: MCP, HTTP), another Agent (useful to separate context), or a Cadenya Tool (one Cadenya provides).

agent?: ResourceMetadata { id, accountId, createdAt, 5 more }

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

id: string

Unique identifier for the resource (prefixed ULID, e.g., "agent_01HXK...")

accountId: string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this resource was created

formatdate-time
name: string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

profileId: string

ID of the actor (user or service account) that created this resource

workspaceId: string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the resource (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

cadenyaProvidedTool?: ResourceMetadata { id, accountId, createdAt, 5 more }

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

id: string

Unique identifier for the resource (prefixed ULID, e.g., "agent_01HXK...")

accountId: string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this resource was created

formatdate-time
name: string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

profileId: string

ID of the actor (user or service account) that created this resource

workspaceId: string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the resource (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

tool?: ResourceMetadata { id, accountId, createdAt, 5 more }

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

id: string

Unique identifier for the resource (prefixed ULID, e.g., "agent_01HXK...")

accountId: string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this resource was created

formatdate-time
name: string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

profileId: string

ID of the actor (user or service account) that created this resource

workspaceId: string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the resource (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

contextWindowCompacted?: ContextWindowCompacted { messagesCompacted, newContextWindow, strategies, summary }
messagesCompacted?: number

Number of messages that were compacted

formatint32
newContextWindow?: ObjectiveContextWindowData { completionTokens, objectiveId, previousWindowContinueInstructions, 2 more }

The new context window created by this compaction

completionTokens?: number

A calculated value for how many completion tokens (output tokens) have been used in this context window

formatint32
objectiveId?: string

The objective's ID that this window belongs to

previousWindowContinueInstructions?: string

The instructions for this window to continue from a previous window's chat history.

promptTokens?: number

A calculated value for how many prompt tokens (input tokens) have been used in this context window

formatint32
sequence?: number

sequence is a numeric representation of which context window this is. Sequences are useful to perform a max(sequence) on in order to calculate how many context windows an objective has.

formatint32
strategies?: Array<string>

The strategies that were applied during this compaction

summary?: string

The summary generated by the summarization strategy, if used.

error?: ObjectiveError { message, type }
message?: string
type?: string
subObjectiveCreated?: SubObjectiveCreated { metadata }
metadata?: OperationMetadata { id, accountId, createdAt, 4 more }

Metadata for ephemeral operations and activities (e.g., objectives, executions, runs)

id: string

Unique identifier for the operation (prefixed ULID, e.g., "obj_01HXK...")

accountId: string

Account this operation belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this operation was created ULID includes timestamp information, but this explicit field enables easier querying

formatdate-time
profileId: string

ID of the actor (user or service account) that created this operation

workspaceId: string

Workspace this operation belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the operation (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"priority": "high", "source": "api", "workflow": "onboarding"}

toolApprovalRequested?: ToolApprovalRequested { toolCallId }
toolCallId?: string

The ID of the objective tool call record. Use this ID with the ApproveToolCall or DenyToolCall RPCs to approve or deny the tool call.

toolApproved?: ToolApproved { toolCallId }
toolCallId?: string

The ID of the objective tool call record that was approved via the ApproveToolCall RPC.

toolCalled?: ToolCalled { toolCallId }
toolCallId?: string

The ID of the objective tool call record that was executed.

toolDenied?: ToolDenied { memo, toolCallId }
memo?: string

The memo provided by the reviewer when denying the tool call. This is passed to the agent to provide further instructions.

toolCallId?: string

The ID of the objective tool call record that was denied via the DenyToolCall RPC.

toolError?: ToolError { message, toolCallId }
message?: string
toolCallId?: string

The ID of the objective tool call record that encountered an error during execution.

toolResult?: ToolResult { content, toolCallId }
content?: string
toolCallId?: string
type?: string
userMessage?: UserMessage { content }
content?: string
metadata: OperationMetadata { id, accountId, createdAt, 4 more }

Metadata for ephemeral operations and activities (e.g., objectives, executions, runs)

id: string

Unique identifier for the operation (prefixed ULID, e.g., "obj_01HXK...")

accountId: string

Account this operation belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this operation was created ULID includes timestamp information, but this explicit field enables easier querying

formatdate-time
profileId: string

ID of the actor (user or service account) that created this operation

workspaceId: string

Workspace this operation belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the operation (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"priority": "high", "source": "api", "workflow": "onboarding"}

contextWindowId?: string
info?: ObjectiveEventInfo { createdBy, objective }
createdBy?: Profile { metadata, spec }

Profile represents a human user at the account level. Profiles are account-scoped resources that can be associated with multiple workspaces through the Actor model. Authentication for profiles is handled via SSO/OAuth (WorkOS).

metadata: AccountResourceMetadata { id, accountId, name, 3 more }

AccountResourceMetadata is used to represent a resource that is associated to an account but not to a workspace.

id: string

Unique identifier for the resource (prefixed ULID, e.g., "apikey_01HXK...")

accountId: string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

name: string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

profileId: string
externalId?: string

External ID for the resource (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

spec: ProfileSpec { type, email, name }

ProfileSpec contains the profile-specific fields

type: "PROFILE_TYPE_USER" | "PROFILE_TYPE_API_KEY" | "PROFILE_TYPE_SYSTEM"

Type is the type of profile. User's are humans, API keys are computers. You know the deal.

formatenum
One of the following:
"PROFILE_TYPE_USER"
"PROFILE_TYPE_API_KEY"
"PROFILE_TYPE_SYSTEM"
email?: string

Email address of the user (required, unique per account)

name?: string

Display name for the user (e.g., "Bobby Tables")

objective?: OperationMetadata { id, accountId, createdAt, 4 more }

Metadata for ephemeral operations and activities (e.g., objectives, executions, runs)

id: string

Unique identifier for the operation (prefixed ULID, e.g., "obj_01HXK...")

accountId: string

Account this operation belongs to for multi-tenant isolation (prefixed ULID)

createdAt: string

Timestamp when this operation was created ULID includes timestamp information, but this explicit field enables easier querying

formatdate-time
profileId: string

ID of the actor (user or service account) that created this operation

workspaceId: string

Workspace this operation belongs to for organizational grouping (prefixed ULID)

externalId?: string

External ID for the operation (e.g., a workflow ID from an external system)

labels?: Record<string, string>

Arbitrary key-value pairs for categorization and filtering Examples: {"priority": "high", "source": "api", "workflow": "onboarding"}

Continue an objective

import Cadenya from '@cadenya/cadenya';

const client = new Cadenya({
  apiKey: process.env['CADENYA_API_KEY'], // This is the default and can be omitted
});

const response = await client.objectives.continue('objectiveId');

console.log(response.data);
{
  "data": {
    "assistantMessage": {
      "content": "content",
      "toolCalls": [
        {
          "arguments": "arguments",
          "functionName": "functionName",
          "tool": {
            "agent": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "cadenyaProvidedTool": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "tool": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            }
          }
        }
      ]
    },
    "contextWindowCompacted": {
      "messagesCompacted": 0,
      "newContextWindow": {
        "completionTokens": 0,
        "objectiveId": "objectiveId",
        "previousWindowContinueInstructions": "previousWindowContinueInstructions",
        "promptTokens": 0,
        "sequence": 0
      },
      "strategies": [
        "string"
      ],
      "summary": "summary"
    },
    "error": {
      "message": "message",
      "type": "type"
    },
    "subObjectiveCreated": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "createdAt": "2019-12-27T18:11:19.117Z",
        "profileId": "profileId",
        "workspaceId": "workspaceId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      }
    },
    "toolApprovalRequested": {
      "toolCallId": "toolCallId"
    },
    "toolApproved": {
      "toolCallId": "toolCallId"
    },
    "toolCalled": {
      "toolCallId": "toolCallId"
    },
    "toolDenied": {
      "memo": "memo",
      "toolCallId": "toolCallId"
    },
    "toolError": {
      "message": "message",
      "toolCallId": "toolCallId"
    },
    "toolResult": {
      "content": "content",
      "toolCallId": "toolCallId"
    },
    "type": "type",
    "userMessage": {
      "content": "content"
    }
  },
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "createdAt": "2019-12-27T18:11:19.117Z",
    "profileId": "profileId",
    "workspaceId": "workspaceId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "contextWindowId": "contextWindowId",
  "info": {
    "createdBy": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "name": "name",
        "profileId": "profileId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      },
      "spec": {
        "type": "PROFILE_TYPE_USER",
        "email": "email",
        "name": "name"
      }
    },
    "objective": {
      "id": "id",
      "accountId": "accountId",
      "createdAt": "2019-12-27T18:11:19.117Z",
      "profileId": "profileId",
      "workspaceId": "workspaceId",
      "externalId": "externalId",
      "labels": {
        "foo": "string"
      }
    }
  }
}
Returns Examples
{
  "data": {
    "assistantMessage": {
      "content": "content",
      "toolCalls": [
        {
          "arguments": "arguments",
          "functionName": "functionName",
          "tool": {
            "agent": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "cadenyaProvidedTool": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "tool": {
              "id": "id",
              "accountId": "accountId",
              "createdAt": "2019-12-27T18:11:19.117Z",
              "name": "name",
              "profileId": "profileId",
              "workspaceId": "workspaceId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            }
          }
        }
      ]
    },
    "contextWindowCompacted": {
      "messagesCompacted": 0,
      "newContextWindow": {
        "completionTokens": 0,
        "objectiveId": "objectiveId",
        "previousWindowContinueInstructions": "previousWindowContinueInstructions",
        "promptTokens": 0,
        "sequence": 0
      },
      "strategies": [
        "string"
      ],
      "summary": "summary"
    },
    "error": {
      "message": "message",
      "type": "type"
    },
    "subObjectiveCreated": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "createdAt": "2019-12-27T18:11:19.117Z",
        "profileId": "profileId",
        "workspaceId": "workspaceId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      }
    },
    "toolApprovalRequested": {
      "toolCallId": "toolCallId"
    },
    "toolApproved": {
      "toolCallId": "toolCallId"
    },
    "toolCalled": {
      "toolCallId": "toolCallId"
    },
    "toolDenied": {
      "memo": "memo",
      "toolCallId": "toolCallId"
    },
    "toolError": {
      "message": "message",
      "toolCallId": "toolCallId"
    },
    "toolResult": {
      "content": "content",
      "toolCallId": "toolCallId"
    },
    "type": "type",
    "userMessage": {
      "content": "content"
    }
  },
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "createdAt": "2019-12-27T18:11:19.117Z",
    "profileId": "profileId",
    "workspaceId": "workspaceId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "contextWindowId": "contextWindowId",
  "info": {
    "createdBy": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "name": "name",
        "profileId": "profileId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      },
      "spec": {
        "type": "PROFILE_TYPE_USER",
        "email": "email",
        "name": "name"
      }
    },
    "objective": {
      "id": "id",
      "accountId": "accountId",
      "createdAt": "2019-12-27T18:11:19.117Z",
      "profileId": "profileId",
      "workspaceId": "workspaceId",
      "externalId": "externalId",
      "labels": {
        "foo": "string"
      }
    }
  }
}