Skip to content

Loops

44 methods on the Loops resource.

44 methods · 41 available to app tokens36 pages in SDK Reference

import { Compozy } from "@compozy/client";

44 of 44

amendLoopNode

Amend one parked Loop node output

compozy.loops.amendLoopNode({ path, query, body }) → Promise<LoopNodeAmendResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyLoopNodeAmendRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/amendapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.amendLoopNode({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

approveLoopRun

Approve one Loop gate

compozy.loops.approveLoopRun({ path, query, body }) → Promise<ApproveLoopRunResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyApproveLoopRunRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/approveapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.approveLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

cancelLoopNode

Cancel one Loop node

compozy.loops.cancelLoopNode({ path, query, body }) → Promise<LoopMutationResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyLoopNodeMutationRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/cancelapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.cancelLoopNode({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

cancelLoopRun

Cancel one Loop run

compozy.loops.cancelLoopRun({ path, query, body }) → Promise<LoopMutationResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyCancelLoopRunData["body"]

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/cancelapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.cancelLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

createLoop

Create or fork a Loop definition

compozy.loops.createLoop({ path, query, body }) → Promise<LoopResponse>

Options

workspace_idstringpathrequired
Workspace id
profilestringquery
Act as this profile by name

Request bodyCreateLoopRequest

POST /api/workspaces/{workspace_id}/loopsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.createLoop({ path: { "workspace_id": "workspace_id" }, body: { /* request fields */ } });

deleteLoop

Delete one writable Loop definition

compozy.loops.deleteLoop({ path, query }) → Promise<void>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Act as this profile by name

DELETE /api/workspaces/{workspace_id}/loops/{name}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.deleteLoop({ path: { "workspace_id": "workspace_id", "name": "name" } });

deleteLoopInputDefault

Delete one scoped Loop input default

compozy.loops.deleteLoopInputDefault({ path, query }) → Promise<DeleteLoopInputDefaultResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
keystringpathrequired
Declared Loop input name
scope"user" | "workspace"queryrequired
Config scope: user or workspace

DELETE /api/workspaces/{workspace_id}/loops/{name}/input-defaults/{key}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.deleteLoopInputDefault({ path: { "workspace_id": "workspace_id", "name": "name", "key": "key" }, query: { "scope": "user" } });

diffLoopRun

Compare Loop generations or runs

compozy.loops.diffLoopRun({ path, query }) → Promise<LoopDiffResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
generationintegerquery
Base generation
against_generationintegerquery
Generation to compare
against_runstringquery
Run to compare
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/diffapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.diffLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

forkLoopRun

Fork a linked Loop run from history

compozy.loops.forkLoopRun({ path, query, body }) → Promise<ForkLoopResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyForkLoopRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/forkapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.forkLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

getLoop

Inspect one Loop definition

compozy.loops.getLoop({ path, query }) → Promise<LoopResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loops/{name}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoop({ path: { "workspace_id": "workspace_id", "name": "name" } });
Show all 44 methods

getLoopAnnotations

Get Loop editor annotations

compozy.loops.getLoopAnnotations({ path, query }) → Promise<LoopAnnotationsResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loops/{name}/annotationsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopAnnotations({ path: { "workspace_id": "workspace_id", "name": "name" } });

getLoopConfig

Get Loop config override

compozy.loops.getLoopConfig({ path, query }) → Promise<LoopConfigResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loops/{name}/configapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopConfig({ path: { "workspace_id": "workspace_id", "name": "name" } });

getLoopInputDefault

Get one scoped Loop input default

compozy.loops.getLoopInputDefault({ path, query }) → Promise<LoopInputDefaultResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
keystringpathrequired
Declared Loop input name
scope"user" | "workspace"queryrequired
Config scope: user or workspace

GET /api/workspaces/{workspace_id}/loops/{name}/input-defaults/{key}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopInputDefault({ path: { "workspace_id": "workspace_id", "name": "name", "key": "key" }, query: { "scope": "user" } });

getLoopInputDefaults

Get one scoped Loop input-default table

compozy.loops.getLoopInputDefaults({ path, query }) → Promise<LoopInputDefaultsResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
scope"user" | "workspace"queryrequired
Config scope: user or workspace

GET /api/workspaces/{workspace_id}/loops/{name}/input-defaultsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopInputDefaults({ path: { "workspace_id": "workspace_id", "name": "name" }, query: { "scope": "user" } });

getLoopRequest

Get one Loop human request

compozy.loops.getLoopRequest({ path, query }) → Promise<LoopRequestPayload>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
generationintegerqueryrequired
Loop generation
item_indexintegerquery
Fan-out lane index
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/requestapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopRequest({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, query: { "generation": 1 } });

getLoopRun

Get one Loop run

compozy.loops.getLoopRun({ path, query }) → Promise<LoopRunResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

getLoopRunBriefing

Explain the current Loop run state

compozy.loops.getLoopRunBriefing({ path, query }) → Promise<Briefing>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/briefingapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopRunBriefing({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

getLoopRunNodes

Get the computed Loop run node roster

compozy.loops.getLoopRunNodes({ path, query }) → Promise<RosterPage>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
state"all" | "running" | "queued" | "waiting" | "retrying" | "paused" | "quarantined" | "succeeded" | "failed" | "canceled" | "not_taken"query
Filter by roster state
generationintegerquery
Filter by generation
cursorstringquery
Opaque roster cursor
limitintegerquery
Maximum rows to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodesapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopRunNodes({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

getLoopRunTimeline

Read the durable Loop run timeline

compozy.loops.getLoopRunTimeline({ path, query }) → Promise<TimelinePage>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
view"notable" | "all"query
Timeline view: notable or all
cursorstringquery
Opaque snapshot-fenced cursor
limitintegerquery
Maximum entries to return
after_sequenceintegerquery
Return entries after this per-run sequence
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/timelineapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getLoopRunTimeline({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

getSessionGoal

Get the newest visible session Goal

compozy.loops.getSessionGoal({ path, query }) → Promise<SessionGoalResponse>

Options

workspace_idstringpathrequired
Workspace id
session_idstringpathrequired
Session id
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/sessions/{session_id}/goalapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.getSessionGoal({ path: { "workspace_id": "workspace_id", "session_id": "session_id" } });

listGoalTurns

List Goal turns in run-wide sequence order

compozy.loops.listGoalTurns({ path, query }) → Promise<GoalTurnPage>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
nodestringquery
Filter by Goal node id
itemintegerquery
Filter by nonnegative item index
after_seqintegerquery
Resume after this run-wide Goal sequence
limitintegerquery
Page size from 1 to 200; defaults to 50

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/turnsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listGoalTurns({ path: { "workspace_id": "workspace_id", "run_id": "run_id" } });

listLoopNodes

List workspace Loop node state

compozy.loops.listLoopNodes({ path, query }) → Promise<LoopNodeInventoryResponse>

Options

workspace_idstringpathrequired
Workspace id
statestringqueryrequired
Node inventory state
loopstringquery
Filter by Loop name
run_idstringquery
Filter by Loop run id
cursorstringquery
Opaque continuation cursor
limitintegerquery
Maximum number of records to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-nodesapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopNodes({ path: { "workspace_id": "workspace_id" }, query: { "state": "state" } });

listLoopRequests

List Loop human requests

compozy.loops.listLoopRequests({ path, query }) → Promise<LoopRequestsResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringquery
Filter by Loop run id
statestringquery
Filter by pending or resolved state
cursorstringquery
Opaque continuation cursor
limitintegerquery
Maximum number of records to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-requestsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopRequests({ path: { "workspace_id": "workspace_id" } });

listLoopRequestsAggregate

List Loop human requests

compozy.loops.listLoopRequestsAggregate({ query }) → Promise<LoopRequestsResponse>

Options

all_workspacesbooleanquery
Read all registered projects and User rows
workspace_idsstring[]query
Repeatable project IDs or @user; requires all_workspaces=true
run_idstringquery
Filter by Loop run id
statestringquery
Filter by pending or resolved state
cursorstringquery
Opaque continuation cursor
limitintegerquery
Maximum number of records to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/loop-requestsapp tokens denied

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopRequestsAggregate();

listLoopRuns

List Loop runs

compozy.loops.listLoopRuns({ path, query }) → Promise<LoopRunsResponse>

Options

workspace_idstringpathrequired
Workspace id
loopstringquery
Filter by Loop name
statusstringquery
Filter by Loop status
originstringquery
Filter by catalog or session origin
origin_sessionstringquery
Filter by origin session id
livebooleanquery
Filter by live or terminal status
cursorstringquery
Opaque server-order cursor
limitintegerquery
Maximum number of records to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopRuns({ path: { "workspace_id": "workspace_id" }, query: { "status": "status" } });

listLoopRunsAggregate

List Loop runs

compozy.loops.listLoopRunsAggregate({ query }) → Promise<LoopRunsResponse>

Options

all_workspacesbooleanquery
Read all registered projects and User rows
workspace_idsstring[]query
Repeatable project IDs or @user; requires all_workspaces=true
loopstringquery
Filter by Loop name
statusstringquery
Filter by Loop status
originstringquery
Filter by catalog or session origin
origin_sessionstringquery
Filter by origin session id
livebooleanquery
Filter by live or terminal status
cursorstringquery
Opaque server-order cursor
limitintegerquery
Maximum number of records to return
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate
order"recency"query
Aggregate runs support recency order only

GET /api/loop-runsapp tokens denied

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopRunsAggregate({ query: { "status": "status" } });

listLoops

List Loop catalog entries

compozy.loops.listLoops({ path, query }) → Promise<LoopsResponse>

Options

workspace_idstringpathrequired
Workspace id
qstringquery
Search Loop name or contract goal
kind"read_only" | "workspace"query
Filter by effective Loop kind
categorystringquery
Filter by exact catalog category
status"queued" | "running" | "watching" | "needs-approval" | "paused" | "done" | "no-op" | "blocked" | "failed" | "exhausted" | "stalled" | "canceled"query
Filter by exact latest-run status
sort"name"query
Stable read-only-first name order
cursorstringquery
Continue after this workspace- and query-bound Loop cursor
limitintegerquery
Maximum number of Loops to return; defaults to 50 and is capped at 200
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loopsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoops({ path: { "workspace_id": "workspace_id" }, query: { "status": "queued" } });

listLoopsAggregate

List Loop catalog entries

compozy.loops.listLoopsAggregate({ query }) → Promise<LoopCatalogBatchResponse>

Options

all_workspacesbooleanquery
Read all registered projects and User rows
workspace_idsstring[]query
Repeatable project IDs or @user; requires all_workspaces=true
qstringquery
Search Loop name or contract goal
kind"read_only" | "workspace"query
Filter by effective Loop kind
categorystringquery
Filter by exact catalog category
status"queued" | "running" | "watching" | "needs-approval" | "paused" | "done" | "no-op" | "blocked" | "failed" | "exhausted" | "stalled" | "canceled"query
Filter by exact latest-run status
sort"name"query
Stable read-only-first name order
cursorstringquery
Continue after this workspace- and query-bound Loop cursor
limitintegerquery
Maximum number of Loops to return; defaults to 50 and is capped at 200
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/loopsapp tokens denied

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.listLoopsAggregate({ query: { "status": "queued" } });

mutateSessionGoal

Set or control the authenticated session Goal

compozy.loops.mutateSessionGoal({ path, query, body }) → Promise<MutateSessionGoalResponse>

Options

workspace_idstringpathrequired
Workspace id
session_idstringpathrequired
Session id
profilestringquery
Act as this profile by name

Request bodySessionGoalCommandRequest

POST /api/workspaces/{workspace_id}/sessions/{session_id}/goalapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.mutateSessionGoal({ path: { "workspace_id": "workspace_id", "session_id": "session_id" }, body: { /* request fields */ } });

patchLoop

Publish one Loop definition with optimistic concurrency

compozy.loops.patchLoop({ path, query, body }) → Promise<LoopResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Act as this profile by name

Request bodyPatchLoopRequest

PATCH /api/workspaces/{workspace_id}/loops/{name}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.patchLoop({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });

pauseLoopNode

Pause one Loop node

compozy.loops.pauseLoopNode({ path, query, body }) → Promise<LoopMutationResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyLoopNodePauseRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/pauseapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.pauseLoopNode({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

pauseLoopRun

Pause one Loop run

compozy.loops.pauseLoopRun({ path, query, body }) → Promise<PauseLoopRunResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyPauseLoopRunData["body"]

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/pauseapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.pauseLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

putLoopAnnotations

Replace Loop editor annotations

compozy.loops.putLoopAnnotations({ path, query, body }) → Promise<LoopAnnotationsResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Act as this profile by name

Request bodyPutLoopAnnotationsRequest

PUT /api/workspaces/{workspace_id}/loops/{name}/annotationsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.putLoopAnnotations({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });

putLoopConfig

Replace Loop config override

compozy.loops.putLoopConfig({ path, query, body }) → Promise<LoopConfigResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Act as this profile by name

Request bodyPutLoopConfigRequest

PUT /api/workspaces/{workspace_id}/loops/{name}/configapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.putLoopConfig({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });

putLoopInputDefault

Set one scoped Loop input default

compozy.loops.putLoopInputDefault({ path, body }) → Promise<LoopInputDefaultResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
keystringpathrequired
Declared Loop input name

Request bodyPutLoopInputDefaultRequest

PUT /api/workspaces/{workspace_id}/loops/{name}/input-defaults/{key}app tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.putLoopInputDefault({ path: { "workspace_id": "workspace_id", "name": "name", "key": "key" }, body: { /* request fields */ } });

putLoopInputDefaults

Replace one scoped Loop input-default table

compozy.loops.putLoopInputDefaults({ path, body }) → Promise<LoopInputDefaultsResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name

Request bodyPutLoopInputDefaultsRequest

PUT /api/workspaces/{workspace_id}/loops/{name}/input-defaultsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.putLoopInputDefaults({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });

requeueLoopNode

Requeue one Loop node

compozy.loops.requeueLoopNode({ path, query, body }) → Promise<LoopMutationResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyLoopNodeMutationRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/requeueapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.requeueLoopNode({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

rerunLoopRun

Rerun a Loop from one settled node

compozy.loops.rerunLoopRun({ path, query, body }) → Promise<RerunLoopResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyRerunLoopRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/rerunapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.rerunLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

respondLoopRequest

Answer one Loop human request

compozy.loops.respondLoopRequest({ path, query, body }) → Promise<RespondLoopRequestResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyRespondLoopRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/respondapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.respondLoopRequest({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

resumeLoopNode

Resume one Loop node

compozy.loops.resumeLoopNode({ path, query, body }) → Promise<LoopMutationResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
node_idstringpathrequired
Loop node id
profilestringquery
Act as this profile by name

Request bodyLoopNodeResumeRequest

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/nodes/{node_id}/resumeapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.resumeLoopNode({ path: { "workspace_id": "workspace_id", "run_id": "run_id", "node_id": "node_id" }, body: { /* request fields */ } });

resumeLoopRun

Resume one Loop run

compozy.loops.resumeLoopRun({ path, query, body }) → Promise<ResumeLoopRunResponse>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
profilestringquery
Act as this profile by name

Request bodyResumeLoopRunData["body"]

POST /api/workspaces/{workspace_id}/loop-runs/{run_id}/resumeapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.resumeLoopRun({ path: { "workspace_id": "workspace_id", "run_id": "run_id" }, body: { /* request fields */ } });

runLoop

Start or dry-run one Loop

compozy.loops.runLoop({ path, query, body }) → Promise<RunLoopResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
drybooleanquery
Preview the run without creating durable state
profilestringquery
Act as this profile by name

Request bodyRunLoopRequest

POST /api/workspaces/{workspace_id}/loops/{name}/runapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.runLoop({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });

streamLoopRunEvents

Stream Loop run events

compozy.events("streamLoopRunEvents", { path, query }) → AsyncIterable<StreamEvent<SseFrame<"streamLoopRunEvents">>>

Options

workspace_idstringpathrequired
Workspace id
run_idstringpathrequired
Loop run id
after_sequencestringquery
Resume after this sequence
profilestringquery
Read one profile's rows by name
all_profilesbooleanquery
Read the owner-labeled all-profiles aggregate

GET /api/workspaces/{workspace_id}/loop-runs/{run_id}/eventsapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();for await (const frame of compozy.events("streamLoopRunEvents", { path: { "workspace_id": "workspace_id", "run_id": "run_id" } })) {  console.log(frame);}

validateLoop

Validate one Loop definition without saving

compozy.loops.validateLoop({ path, query, body }) → Promise<LoopValidationResponse>

Options

workspace_idstringpathrequired
Workspace id
namestringpathrequired
Loop name
profilestringquery
Act as this profile by name

Request bodyValidateLoopRequest

POST /api/workspaces/{workspace_id}/loops/{name}/validateapp tokens allowed

example.ts
import { Compozy } from "@compozy/client"; const compozy = await Compozy.connect();const result = await compozy.loops.validateLoop({ path: { "workspace_id": "workspace_id", "name": "name" }, body: { /* request fields */ } });