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
amendLoopNodeapproveLoopRuncancelLoopNodecancelLoopRuncreateLoopdeleteLoopdeleteLoopInputDefaultdiffLoopRunforkLoopRungetLoopgetLoopAnnotationsgetLoopConfiggetLoopInputDefaultgetLoopInputDefaultsgetLoopRequestgetLoopRungetLoopRunBriefinggetLoopRunNodesgetLoopRunTimelinegetSessionGoallistGoalTurnslistLoopNodeslistLoopRequestslistLoopRequestsAggregatelistLoopRunslistLoopRunsAggregatelistLoopslistLoopsAggregatemutateSessionGoalpatchLooppauseLoopNodepauseLoopRunputLoopAnnotationsputLoopConfigputLoopInputDefaultputLoopInputDefaultsrequeueLoopNodererunLoopRunrespondLoopRequestresumeLoopNoderesumeLoopRunrunLoopstreamLoopRunEventsssevalidateLoop
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 */ } });