The fleet
Every registered conversation, its accumulated diff, and landing or discarding its work
On this page(32 sections)
- Every live conversation
- Conversations put away
- Find a conversation
- One conversation's card
- One page of a conversation
- What this conversation is told before it is asked anything
- One delegation's own calls
- One in-process subagent's own record
- Put words in the agent's mouth
- Retitle a conversation
- Whether this conversation merges its work automatically
- What this conversation does when a turn stops before it finished
- Keep this conversation's prompt cache warm while it sits idle
- Mark a conversation read
- Report that a composer holds an unsent message for a conversation
- Stop a conversation's condition watches
- Stop one of a conversation's background jobs
- Mark every conversation read
- Everything a conversation has changed
- Why a conversation's last merge refused
- Where a conversation's committed work lives
- One file's before and after in a conversation's work
- Carry files set aside as scratch with a conversation's work
- Delete a conversation's scratch
- Merge a conversation's work into the workspace
- Ask a maintainer to merge this work
- Make a member answerable for this conversation
- Mark a conversation with an emoji
- Throw a conversation's work away
- Put conversations away
- Bring conversations back
- Empty the archive for good
The roster rather than the turn. Each conversation works in its own private copy of the repos, so it has a cumulative set of changes you can read and two ways for it to end: merge that work into the shared tree, or throw it away. The rest is the bookkeeping a board needs — renaming, marking read, archiving, purging.
32 calls. Pick one to open it, or use the list on the right.
GET/agentsEvery live conversation
The fleet as the board draws it: each conversation with its title, what it is doing, when it last moved and whether anybody has read it since. Archived conversations are not in here.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
agentsThe conversations | object[] |
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
kind | "agent" |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
revWhich version of the fleet this… | number |
heldAutomations waiting at the door for… | object[] |
idThis waiting item's own id, which… | string |
automationIdWhich automation it came from | string |
payloadWhat set it off, kept whole… | string |
originWhere the message came from, kept… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
titleWhat the conversation would be called | string |
conversationIdThe thread this belongs to, when… | string |
sessionIdThe provider session that thread last… | string |
threadWhich inbound thread this belongs to,… | string |
actsAsWhich persona the approved run speaks… | string |
createdAtWhen it started waiting, in milliseconds | number |
autoRunAtWhen it goes ahead on its… | number |
curl "$SANDBOX/agents" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.list();GET/agents/archivedConversations put away
The same shape as the live fleet, for the conversations somebody has decided are finished. Their work is kept, and any one of them can be brought back.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
agentsThe conversations | object[] |
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
kind | "agent" |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
revWhich version of the fleet this… | number |
heldAutomations waiting at the door for… | object[] |
idThis waiting item's own id, which… | string |
automationIdWhich automation it came from | string |
payloadWhat set it off, kept whole… | string |
originWhere the message came from, kept… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
titleWhat the conversation would be called | string |
conversationIdThe thread this belongs to, when… | string |
sessionIdThe provider session that thread last… | string |
threadWhich inbound thread this belongs to,… | string |
actsAsWhich persona the approved run speaks… | string |
createdAtWhen it started waiting, in milliseconds | number |
autoRunAtWhen it goes ahead on its… | number |
curl "$SANDBOX/agents/archived" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.archived();GET/agents/searchFind a conversation
Searches the live fleet and the archive together. Both halves on purpose: the board hides finished work by design, and a filter that says it found nothing while the answer sits one click away is simply wrong.
What you send
| Field | Type | Where |
|---|---|---|
queryrequiredWhat to look for | string | query |
caseSensitiveWhether capitals matter | string | query |
What comes back
| Field | Type |
|---|---|
matchesWhat matched, from the live fleet… | object[] |
idWhich conversation matched | string |
snippetWhy, in its own words | object |
textThe matching line, with a little… | string |
speakerWho said it | "user" | "agent" |
scannedHow many conversations were actually read,… | number |
indexingWhether what was said is still… | boolean |
curl "$SANDBOX/agents/search?query=%E2%80%A6" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.search({
"query": "…"
});GET/agents/{id}One conversation's card
Everything the board shows for a single conversation: its title, state, working branch, unread marker and timestamps.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl "$SANDBOX/agents/a1b2c3d4" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.get({
"id": "a1b2c3d4"
});GET/agents/{id}/transcriptOne page of a conversation
The most recent turns of one conversation, in order, including the tool calls and their results: what the chat replays and the next turn is seeded from. A page, not the whole record — pass the answer's `from` back as `before` to walk further back, until `more` reads false.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
beforeReturn the messages before this position… | integer | query |
turnsHow many of the user's turns… | integer | query |
What comes back
| Field | Type |
|---|---|
messagesThe conversation, in order | object[] |
roleWho said it | "user" | "assistant" | "notice" |
textThe words | string |
runThe run that produced this row | string |
sentAtWhen it was sent, in milliseconds | number |
messageIdThe message's own id, on the… | string |
attachmentsFiles attached to this message, as… | string[] |
checkpointIdThe saved point this message can… | string |
rewindIndexThis message's position in the conversation's… | integer |
thinkingWhat the agent was reasoning about | string |
toolsThe tool calls this part of… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
pathThe file, as a workspace path,… | string |
lineWhich line, counting from one | number |
contentWhat it produced: text, a change… | object[] |
typePlain output | "text" |
textWhat the tool said | string |
childrenCalls a delegated subagent made, nested… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
contentWhat it produced: text, a change… | object[] |
childrenCalls a delegated subagent made, nested… | object[] |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
idIts own id, where that is… | string |
kind | "subagent" | "spawned" |
agentType | string |
description | string |
model | string |
provider | string |
background | boolean |
status | "pending" | "running" | "blocked" | "completed" … (7) |
tokens | number |
toolUses | number |
lastTool | string |
summary | string |
error | string |
verification | object |
todosThe agent's task checklist, as of… | object[] |
contentThe item, as the agent wrote… | string |
statusWhere it is | "pending" | "in_progress" | "completed" |
activeFormHow to phrase it while it… | string |
usageWhat the turn cost, on the… | object |
costUsd | number |
inputTokens | number |
outputTokens | number |
durationMs | number |
numTurns | number |
notesWhat the sandbox added to this… | object[] |
titleThe one line a reader sees,… | string |
textThe note itself, which is also… | string |
speakerWho sent this message, as the… | object |
when kind is "person" | shape |
emailThe signed-in member, as the sandbox… | string |
nameTheir display name, where the sign-in… | string |
when kind is "program" | shape |
tokenThe label of the control token… | string |
when kind is "agent" | shape |
conversationIdThe conversation whose agent is speaking:… | string |
when kind is "sandbox" | shape |
sourceWhat in the sandbox spoke: an… | string |
errandWhat this message is for, when… | "land-conflict" | "verify-nudge" | "land-breakage" | "land-fix" … (10) |
placedA person wrote this in the… | boolean |
noticeActionA one-press follow-up this notice offers,… | "landHold" | "depsInstall" | "watchStop" | "sandboxMemory" … (6) |
sandboxHeldThe sandbox kept this refused turn… | boolean |
noticeWaitThe wait this notice describes, by… | "credentialRenewal" | "chatRoute" | "watch" |
noticeWaitIdWhich instance of the wait this… | string |
noticeCodeWhich of the sandbox's own notices… | object |
codeWhich of the sandbox's notices this… | string |
paramsThe facts the notice was worded… | object |
agentNoticeThis notice was said by the… | object |
levelHow loud it was said: a… | "info" | "warning" | "error" |
sourceWho said it, when the runtime… | string |
planThe plan this row asked approval… | object |
requestIdWhat to send back when you… | string |
textThe plan itself | string |
documentThe write-up this plan refers to,… | object |
pathWhere it lives, as a workspace… | string |
titleWhat it is called: its opening… | string |
markdownThe document itself | string |
truncatedIt was clipped at the wire… | boolean |
planIt is one of the CLI's… | boolean |
statusWhere the decision stands | "pending" | "approved" | "rejected" | "cancelled" |
questionThe questions this row asked, and… | object |
requestIdWhat to send back when you… | string |
questionsWhat it wants to know | object[] |
questionWhat the agent is asking | string |
headerA short label for the question | string |
multiSelectWhether more than one answer can… | boolean |
optionsThe choices offered | object[] |
documentThe document this turn wrote and… | object |
pathWhere it lives, as a workspace… | string |
titleWhat it is called: its opening… | string |
markdownThe document itself | string |
truncatedIt was clipped at the wire… | boolean |
planIt is one of the CLI's… | boolean |
statusWhere the answer stands | "pending" | "answered" | "cancelled" |
answersWhat was chosen, keyed by the… | object |
attachmentsFiles the user attached to their… | object |
permissionThe tool this row asked permission… | object |
toolNameWhich tool it wants to use | string |
titleThe whole question, as a sentence,… | string |
displayNameA short phrase for the button,… | string |
descriptionMore about what it is asking… | string |
reasonWhy it is asking at all:… | string |
pathWhich file it concerns, when it… | string |
alwaysLabelThe wording for an always-allow answer | string |
alwaysAsksThis request asks every time: an… | true |
programThe program this request is holding,… | object |
textWhat would run | string |
languageWhich of the two backends it… | "bash" | "javascript" |
truncatedWhether this is an excerpt of… | boolean |
spansWhich fragments of the text the… | object[] |
childThe subagent this request would start… | object |
providerWhich provider serves it | string |
modelWhich of that provider's models | string |
harnessWhich agentic loop runs it | "native" | "claude-code" |
accountWhich of that provider's connected accounts… | string |
effortHow hard it thinks, where the… | string |
thinkingWhether it reasons before it answers,… | boolean |
fastWhether it asks for the faster… | boolean |
moveWhat the parent asks to do:… | "spawn" | "send" | "answer" |
childThe child's id, for one that… | string |
taskWhat the child is for, in… | string |
messageWhat the parent would say to… | string |
onWhich machine it runs on, when… | string |
proposedWhat the agent asked to start… | object |
explainOne plain sentence saying what the… | string |
requestIdWhat to send back when you… | string |
statusWhere the decision stands | "pending" | "allowed" | "always" | "everything" … (6) |
browserHelpThe browser hand-over this row asked… | object |
requestId | string |
session | string |
account | string |
message | string |
statusHow the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
terminalHelpThe terminal hand-over this row asked… | object |
requestId | string |
session | string |
message | string |
statusHow the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
capabilityOfferThe capability setup this row asked… | object |
requestId | string |
offer | object |
entryWhich catalog entry is being asked… | string |
nameWhat it is called, as the… | string |
whyThe agent's case for connecting it,… | string |
statusWhere the decision stands | "pending" | "connecting" | "skipped" | "cancelled" |
outcomeHow an accepted ask's setup ended… | object |
outcome | "connected" | "unfinished" |
id | string |
paymentOfferThe payment this row asked for,… | object |
requestId | string |
offer | object |
urlWhat is being paid for | string |
descriptionWhat the endpoint says it is | string |
payToWhere the money goes, taken verbatim… | string |
networkOn which network | string |
assetIn which token | string |
assetNameThat token's name | string |
amountUsdThe exact price | string |
spentTodayUsdWhat has already gone out today | string |
dailyCapUsdWhat may go out in a… | string |
whyThe agent's case for paying, and… | string |
statusWhere the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
receiptHow the approved payment ended (the… | object |
outcome | "paid" | "failed" |
amountUsd | string |
transaction | string |
network | string |
watchWakeThe condition watch that woke this… | object |
outcomeHow the watch ended: the condition… | "met" | "timeout" | "restart-expired" | "broken" |
noteThe agent's own line on what… | string |
elapsedHow long the watch stood, already… | string |
sentThe whole prompt the model was… | string |
needSomething the agent asked a person… | object |
idThe need's handle, the one `needs… | string |
conversationIdThe conversation that asked, and the… | string |
subjectWhat exactly is asked for | object |
kind | "capability" |
entryThe catalog entry, as the catalog… | string |
nameWhat the catalog calls it, never… | string |
modeConnect something new, give a connected… | "connect" | "reconnect" | "change" |
instanceThe connection a reconnect or a… | string |
targetThe site, host or address the… | string |
prefillSettings the agent could fill in… | object |
changesFor a change: each setting and… | object |
reasonThe daemon's own sentence on why… | string |
reportedThe agent reported the credential refused… | boolean |
titleThe one line it leads with,… | string |
whyThe agent's case for it, and… | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
createdAtWhen it was raised, in milliseconds | number |
updatedAtWhen it last moved, in milliseconds | number |
answeredByWho answered it, as the sandbox… | string |
outcomeHow it ended, in the daemon's… | string |
toldHow the agent heard the outcome,… | "call" | "turn" | "queued" |
unattendedRaised by a turn nobody was… | boolean |
needWakeThe answered need that reached this… | object |
outcomeHow the need ended: a person… | "met" | "declined" |
titleThe need, as its card leads… | string |
idThe need's handle, which its live… | string |
sentThe whole prompt the model received,… | string |
agentWordsAnother agent's words that reached this… | object |
kindWho sent it: another conversation in… | "peer" | "child" |
fromThe sending conversation's id | string |
titleThe sender's title, when it had… | string |
failedA child's report on a turn… | boolean |
sentThe whole prompt the model received,… | string |
backgroundJobThe background job this row marks… | object |
idThe daemon's handle for the job,… | string |
labelWhat the job is, in the… | string |
commandThe command as the agent wrote… | string |
startedAtWhen it started, in milliseconds | number |
credentialOfferThe gated credential this row asked… | object |
requestId | string |
offer | object |
subjectWhich credential is being asked for | string |
kindWhether this gate covers one stored… | "secret" | "capability" |
laneWhat the credential was about to… | "shell" | "code" | "browser" | "session" … (5) |
detailWhere it would go: the start… | string |
whyThe agent's case for using it,… | string |
approversWho may release it | string[] |
scopeHow far one release goes: `use`… | "use" | "conversation" |
statusWhere the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
receiptWho released it, or that somebody… | object |
outcome | "released" | "refused" |
approvedBy | string |
sessionIdThe provider session behind the last… | string |
providerWhich provider minted that session | string |
harnessWhich runtime minted it: a session… | "native" | "claude-code" |
accountWhich stored account it belongs to,… | string |
endingHow the last turn ended, when… | object |
reasonWhich ending left the work here:… | "limit" | "outage" | "stopped" | "flagged" |
resetsAtWhen the spent allowance reopens, in… | number |
heldPresent when the daemon still holds… | object |
ranWhether the held turn got anywhere… | boolean |
contextTokensHow much context a press that… | number |
handoffTokensWhat a press that opens a… | number |
movingThe account the owner's policy is… | string |
scheduledWhether something other than the user… | boolean |
nextAtWhen the booked send actually fires,… | number |
retriesHow many automatic re-runs a stopped… | object |
madeAutomatic re-runs already sent for this… | integer |
maxHow many the ladder may send… | integer |
fromWhere the first message sits in… | integer |
moreWhether older messages precede this page | boolean |
curl "$SANDBOX/agents/a1b2c3d4/transcript" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.transcript({
"id": "a1b2c3d4"
});GET/agents/{id}/system-promptWhat this conversation is told before it is asked anything
The system prompt the most recent turn of this conversation actually ran on: which base it was, and every piece the sandbox added to it — this product's guidance, the persona, the field notes, the workspace's own standing rules — each with the exact words the model received. None of this appears in the transcript, so this is the only way to read it.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
promptWhat the most recent turn of… | object |
atWhen the turn that was told… | number |
runtimeWhich runtime served that turn | string |
modeWhich base the turn was configured… | "intentic" | "claude" | "custom" |
base | object |
kindWhich prompt the additions ride on | "intentic" | "claude" | "custom" | "runtime" … (5) |
textThe base's own words, when they… | string |
modelThe model the turn ran on,… | string |
sectionsWhat the daemon added to that… | object[] |
sourceWhich mechanism added this | "guidance" | "persona" | "field-notes" | "memory" |
titleThe one line a reader sees… | string |
textThe section's exact words, as the… | string |
curl "$SANDBOX/agents/a1b2c3d4/system-prompt" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.systemPrompt({
"id": "a1b2c3d4"
});GET/agents/{id}/transcript/tools/{toolId}One delegation's own calls
The calls a delegated agent made under one tool card. A transcript page leaves them behind and reports their count as `nested`, since a settled delegation draws collapsed; this is what fills the card in when it is opened. Empty when the record no longer holds that call.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
toolIdrequiredWhich tool call, by the id… | string | address |
What comes back
| Field | Type |
|---|---|
childrenThe calls the delegated agent made,… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
pathThe file, as a workspace path,… | string |
lineWhich line, counting from one | number |
contentWhat it produced: text, a change… | object[] |
when type is "text" | shape |
textWhat the tool said | string |
when type is "diff" | shape |
pathWhich file, as a workspace path | string |
oldTextWhat was there | string |
newTextWhat is there now | string |
truncatedOne of the two sides was… | boolean |
when type is "image" | shape |
pathWhere it is, as a workspace… | string |
childrenCalls a delegated subagent made, nested… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
pathThe file, as a workspace path,… | string |
lineWhich line, counting from one | number |
contentWhat it produced: text, a change… | object[] |
typePlain output | "text" |
textWhat the tool said | string |
childrenCalls a delegated subagent made, nested… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
contentWhat it produced: text, a change… | object[] |
childrenCalls a delegated subagent made, nested… | object[] |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
idIts own id, where that is… | string |
kind | "subagent" | "spawned" |
agentType | string |
description | string |
model | string |
provider | string |
background | boolean |
status | "pending" | "running" | "blocked" | "completed" … (7) |
tokens | number |
toolUses | number |
lastTool | string |
summary | string |
error | string |
verification | object |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
idIts own id, where that is… | string |
kind | "subagent" | "spawned" |
agentType | string |
description | string |
model | string |
provider | string |
background | boolean |
status | "pending" | "running" | "blocked" | "completed" … (7) |
tokens | number |
toolUses | number |
lastTool | string |
summary | string |
error | string |
verification | object |
stateWhether anything proved its work: a… | "verified" | "unproven" | "failing" | "no-code" |
pathsThe code files it changed, most… | string[] |
checkThe command that spoke: the one… | string |
curl "$SANDBOX/agents/a1b2c3d4/transcript/tools/a1b2c3d4" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.toolChildren({
"id": "a1b2c3d4",
"toolId": "a1b2c3d4"
});GET/agents/{id}/subagents/{subagentId}/transcriptOne in-process subagent's own record
What a subagent this conversation's runtime ran in-process said and did, as a transcript of its own: its ask, its thinking, its calls and its words. Read from the runtime's own record of the subagent where it keeps one, which it writes as the subagent works, else from the calls the delegation's card holds in this conversation's record. A subagent spawned as a conversation of its own is read through `transcript` instead.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
subagentIdrequiredWhich subagent this conversation's runtime ran… | string | address |
What comes back
| Field | Type |
|---|---|
messagesThe conversation, in order | object[] |
roleWho said it | "user" | "assistant" | "notice" |
textThe words | string |
runThe run that produced this row | string |
sentAtWhen it was sent, in milliseconds | number |
messageIdThe message's own id, on the… | string |
attachmentsFiles attached to this message, as… | string[] |
checkpointIdThe saved point this message can… | string |
rewindIndexThis message's position in the conversation's… | integer |
thinkingWhat the agent was reasoning about | string |
toolsThe tool calls this part of… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
pathThe file, as a workspace path,… | string |
lineWhich line, counting from one | number |
contentWhat it produced: text, a change… | object[] |
typePlain output | "text" |
textWhat the tool said | string |
childrenCalls a delegated subagent made, nested… | object[] |
idThe call's id | string |
nameWhich tool | string |
categoryWhat kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
statusHow it went | "pending" | "in_progress" | "completed" | "failed" |
targetWhat it acted on, in one… | string |
locationsThe files it touched | object[] |
contentWhat it produced: text, a change… | object[] |
childrenCalls a delegated subagent made, nested… | object[] |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
nestedHow many calls sit under this… | integer |
thinkingWhat the agent was reasoning about… | string |
subagentThe helper this call started, as… | object |
idIts own id, where that is… | string |
kind | "subagent" | "spawned" |
agentType | string |
description | string |
model | string |
provider | string |
background | boolean |
status | "pending" | "running" | "blocked" | "completed" … (7) |
tokens | number |
toolUses | number |
lastTool | string |
summary | string |
error | string |
verification | object |
todosThe agent's task checklist, as of… | object[] |
contentThe item, as the agent wrote… | string |
statusWhere it is | "pending" | "in_progress" | "completed" |
activeFormHow to phrase it while it… | string |
usageWhat the turn cost, on the… | object |
costUsd | number |
inputTokens | number |
outputTokens | number |
durationMs | number |
numTurns | number |
notesWhat the sandbox added to this… | object[] |
titleThe one line a reader sees,… | string |
textThe note itself, which is also… | string |
speakerWho sent this message, as the… | object |
when kind is "person" | shape |
emailThe signed-in member, as the sandbox… | string |
nameTheir display name, where the sign-in… | string |
when kind is "program" | shape |
tokenThe label of the control token… | string |
when kind is "agent" | shape |
conversationIdThe conversation whose agent is speaking:… | string |
when kind is "sandbox" | shape |
sourceWhat in the sandbox spoke: an… | string |
errandWhat this message is for, when… | "land-conflict" | "verify-nudge" | "land-breakage" | "land-fix" … (10) |
placedA person wrote this in the… | boolean |
noticeActionA one-press follow-up this notice offers,… | "landHold" | "depsInstall" | "watchStop" | "sandboxMemory" … (6) |
sandboxHeldThe sandbox kept this refused turn… | boolean |
noticeWaitThe wait this notice describes, by… | "credentialRenewal" | "chatRoute" | "watch" |
noticeWaitIdWhich instance of the wait this… | string |
noticeCodeWhich of the sandbox's own notices… | object |
codeWhich of the sandbox's notices this… | string |
paramsThe facts the notice was worded… | object |
agentNoticeThis notice was said by the… | object |
levelHow loud it was said: a… | "info" | "warning" | "error" |
sourceWho said it, when the runtime… | string |
planThe plan this row asked approval… | object |
requestIdWhat to send back when you… | string |
textThe plan itself | string |
documentThe write-up this plan refers to,… | object |
pathWhere it lives, as a workspace… | string |
titleWhat it is called: its opening… | string |
markdownThe document itself | string |
truncatedIt was clipped at the wire… | boolean |
planIt is one of the CLI's… | boolean |
statusWhere the decision stands | "pending" | "approved" | "rejected" | "cancelled" |
questionThe questions this row asked, and… | object |
requestIdWhat to send back when you… | string |
questionsWhat it wants to know | object[] |
questionWhat the agent is asking | string |
headerA short label for the question | string |
multiSelectWhether more than one answer can… | boolean |
optionsThe choices offered | object[] |
documentThe document this turn wrote and… | object |
pathWhere it lives, as a workspace… | string |
titleWhat it is called: its opening… | string |
markdownThe document itself | string |
truncatedIt was clipped at the wire… | boolean |
planIt is one of the CLI's… | boolean |
statusWhere the answer stands | "pending" | "answered" | "cancelled" |
answersWhat was chosen, keyed by the… | object |
attachmentsFiles the user attached to their… | object |
permissionThe tool this row asked permission… | object |
toolNameWhich tool it wants to use | string |
titleThe whole question, as a sentence,… | string |
displayNameA short phrase for the button,… | string |
descriptionMore about what it is asking… | string |
reasonWhy it is asking at all:… | string |
pathWhich file it concerns, when it… | string |
alwaysLabelThe wording for an always-allow answer | string |
alwaysAsksThis request asks every time: an… | true |
programThe program this request is holding,… | object |
textWhat would run | string |
languageWhich of the two backends it… | "bash" | "javascript" |
truncatedWhether this is an excerpt of… | boolean |
spansWhich fragments of the text the… | object[] |
childThe subagent this request would start… | object |
providerWhich provider serves it | string |
modelWhich of that provider's models | string |
harnessWhich agentic loop runs it | "native" | "claude-code" |
accountWhich of that provider's connected accounts… | string |
effortHow hard it thinks, where the… | string |
thinkingWhether it reasons before it answers,… | boolean |
fastWhether it asks for the faster… | boolean |
moveWhat the parent asks to do:… | "spawn" | "send" | "answer" |
childThe child's id, for one that… | string |
taskWhat the child is for, in… | string |
messageWhat the parent would say to… | string |
onWhich machine it runs on, when… | string |
proposedWhat the agent asked to start… | object |
explainOne plain sentence saying what the… | string |
requestIdWhat to send back when you… | string |
statusWhere the decision stands | "pending" | "allowed" | "always" | "everything" … (6) |
browserHelpThe browser hand-over this row asked… | object |
requestId | string |
session | string |
account | string |
message | string |
statusHow the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
terminalHelpThe terminal hand-over this row asked… | object |
requestId | string |
session | string |
message | string |
statusHow the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
capabilityOfferThe capability setup this row asked… | object |
requestId | string |
offer | object |
entryWhich catalog entry is being asked… | string |
nameWhat it is called, as the… | string |
whyThe agent's case for connecting it,… | string |
statusWhere the decision stands | "pending" | "connecting" | "skipped" | "cancelled" |
outcomeHow an accepted ask's setup ended… | object |
outcome | "connected" | "unfinished" |
id | string |
paymentOfferThe payment this row asked for,… | object |
requestId | string |
offer | object |
urlWhat is being paid for | string |
descriptionWhat the endpoint says it is | string |
payToWhere the money goes, taken verbatim… | string |
networkOn which network | string |
assetIn which token | string |
assetNameThat token's name | string |
amountUsdThe exact price | string |
spentTodayUsdWhat has already gone out today | string |
dailyCapUsdWhat may go out in a… | string |
whyThe agent's case for paying, and… | string |
statusWhere the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
receiptHow the approved payment ended (the… | object |
outcome | "paid" | "failed" |
amountUsd | string |
transaction | string |
network | string |
watchWakeThe condition watch that woke this… | object |
outcomeHow the watch ended: the condition… | "met" | "timeout" | "restart-expired" | "broken" |
noteThe agent's own line on what… | string |
elapsedHow long the watch stood, already… | string |
sentThe whole prompt the model was… | string |
needSomething the agent asked a person… | object |
idThe need's handle, the one `needs… | string |
conversationIdThe conversation that asked, and the… | string |
subjectWhat exactly is asked for | object |
kind | "capability" |
entryThe catalog entry, as the catalog… | string |
nameWhat the catalog calls it, never… | string |
modeConnect something new, give a connected… | "connect" | "reconnect" | "change" |
instanceThe connection a reconnect or a… | string |
targetThe site, host or address the… | string |
prefillSettings the agent could fill in… | object |
changesFor a change: each setting and… | object |
reasonThe daemon's own sentence on why… | string |
reportedThe agent reported the credential refused… | boolean |
titleThe one line it leads with,… | string |
whyThe agent's case for it, and… | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
createdAtWhen it was raised, in milliseconds | number |
updatedAtWhen it last moved, in milliseconds | number |
answeredByWho answered it, as the sandbox… | string |
outcomeHow it ended, in the daemon's… | string |
toldHow the agent heard the outcome,… | "call" | "turn" | "queued" |
unattendedRaised by a turn nobody was… | boolean |
needWakeThe answered need that reached this… | object |
outcomeHow the need ended: a person… | "met" | "declined" |
titleThe need, as its card leads… | string |
idThe need's handle, which its live… | string |
sentThe whole prompt the model received,… | string |
agentWordsAnother agent's words that reached this… | object |
kindWho sent it: another conversation in… | "peer" | "child" |
fromThe sending conversation's id | string |
titleThe sender's title, when it had… | string |
failedA child's report on a turn… | boolean |
sentThe whole prompt the model received,… | string |
backgroundJobThe background job this row marks… | object |
idThe daemon's handle for the job,… | string |
labelWhat the job is, in the… | string |
commandThe command as the agent wrote… | string |
startedAtWhen it started, in milliseconds | number |
credentialOfferThe gated credential this row asked… | object |
requestId | string |
offer | object |
subjectWhich credential is being asked for | string |
kindWhether this gate covers one stored… | "secret" | "capability" |
laneWhat the credential was about to… | "shell" | "code" | "browser" | "session" … (5) |
detailWhere it would go: the start… | string |
whyThe agent's case for using it,… | string |
approversWho may release it | string[] |
scopeHow far one release goes: `use`… | "use" | "conversation" |
statusWhere the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
receiptWho released it, or that somebody… | object |
outcome | "released" | "refused" |
approvedBy | string |
curl "$SANDBOX/agents/a1b2c3d4/subagents/a1b2c3d4/transcript" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.subagentTranscript({
"id": "a1b2c3d4",
"subagentId": "a1b2c3d4"
});POST/agents/{id}/placePut words in the agent's mouth
Writes a line into the record as though the agent had said it, with no turn behind it and no reply. Human readers see it marked as placed. The next real turn starts fresh from the record, where the line reads as the agent's own. Refused while a turn is running.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
textrequiredThe words to put in the… | string | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/agents/a1b2c3d4/place" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"text":"export const start = () => listen(PORT);\n"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.place({
"id": "a1b2c3d4",
"text": "export const start = () => listen(PORT);\n"
});POST/agents/{id}/renameRetitle a conversation
Sets the title a person chose, replacing the one that was generated. Allowed while the conversation is working, and it does not count as activity.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
titlerequiredWhat to call it from now… | string | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/rename" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"title":"Update the changelog"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.rename({
"id": "a1b2c3d4",
"title": "Update the changelog"
});POST/agents/{id}/auto-landWhether this conversation merges its work automatically
Overrides the sandbox-wide setting for one conversation; clear it to go back to following the default. Deliberately allowed mid-turn, because the setting is read when the turn finishes, so flipping it while the agent works means exactly hold this piece of work for review.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
autoLandrequiredWhether its work merges automatically when… | boolean | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/auto-land" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"autoLand":true}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.autoLand({
"id": "a1b2c3d4",
"autoLand": true
});POST/agents/{id}/break-policyWhat this conversation does when a turn stops before it finished
One answer per ending — a spent usage limit, a provider outage, a turn that stopped short — overriding the sandbox-wide policy for one conversation; clear it to follow the default again. The answers are mutually exclusive by construction, so nothing here can arm two automations over the same wall. Every ending starts at `wait` unless asked otherwise, because a re-run spends the user's own allowance on a turn they sent once.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
endingrequiredWhich wall this answers for: a… | "limit" | "outage" | "stopped" | body |
policyrequiredWhat happens next for that ending | "wait" | "resend" | "move" | "retry" | null | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/break-policy" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"ending":"limit","policy":"wait"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.breakPolicy({
"id": "a1b2c3d4",
"ending": "limit",
"policy": "wait"
});POST/agents/{id}/keep-warmKeep this conversation's prompt cache warm while it sits idle
Re-reads the conversation's cached context shortly before the provider would drop it, until the time asked for, so picking it back up costs a cache read instead of re-sending everything. Each refresh is a forked, unsaved request that adds nothing to the conversation. Stops by itself when the time runs out, when a turn starts, when the account nears its limit, or when the prompt the next turn would send has changed. Refused for a conversation whose cache is already cold or that this sandbox cannot replay. Null stops it.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
untilrequiredKeep its prompt cache warm until… | number | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/keep-warm" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"until":1}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.keepWarm({
"id": "a1b2c3d4",
"until": 1
});POST/agents/{id}/seenMark a conversation read
Stamps the read marker behind the unread badge on one card. Allowed while the conversation is working, and reading never counts as activity.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/seen" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.seen({
"id": "a1b2c3d4"
});POST/agents/{id}/unsentReport that a composer holds an unsent message for a conversation
The words stay in the browser; the sandbox only records since when some composer has held them, so a conversation waiting on a message nobody has sent yet is never archived for being idle. Null clears it once the message is sent or deleted. Does not count as activity.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
atrequiredWhen the composer started holding the… | number | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/unsent" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"at":1}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.unsent({
"id": "a1b2c3d4",
"at": 1
});POST/agents/{id}/stop-watchingStop a conversation's condition watches
Disarms this conversation's outside-condition watches, so they will not wake it. Named without a watch id it disarms all of them, because that is what the press means when it is made about a card; a press made about one watch's own row names that watch and leaves the rest armed. Nothing else about the conversation changes.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
watchIdWhich watch to disarm | string | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/stop-watching" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"watchId":"a1b2c3d4"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.stopWatching({
"id": "a1b2c3d4",
"watchId": "a1b2c3d4"
});POST/agents/{id}/stop-jobStop one of a conversation's background jobs
Ends a command this conversation left running: the server it handed over, or the build it is waiting on. The watch that would have woken the conversation on its exit is disarmed first, so stopping it wakes nothing. Stopping a job that already ended is not an error.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
jobIdrequiredWhich of its background jobs, by… | string | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/stop-job" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"jobId":"a1b2c3d4"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.stopJob({
"id": "a1b2c3d4",
"jobId": "a1b2c3d4"
});POST/agents/seenMark every conversation read
Clears the unread badge across the whole fleet at once, and hands the refreshed list back.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
agentsThe conversations | object[] |
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
kind | "agent" |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
revWhich version of the fleet this… | number |
heldAutomations waiting at the door for… | object[] |
idThis waiting item's own id, which… | string |
automationIdWhich automation it came from | string |
payloadWhat set it off, kept whole… | string |
originWhere the message came from, kept… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
titleWhat the conversation would be called | string |
conversationIdThe thread this belongs to, when… | string |
sessionIdThe provider session that thread last… | string |
threadWhich inbound thread this belongs to,… | string |
actsAsWhich persona the approved run speaks… | string |
createdAtWhen it started waiting, in milliseconds | number |
autoRunAtWhen it goes ahead on its… | number |
curl -X POST "$SANDBOX/agents/seen" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.seenAll();GET/agents/{id}/diffEverything a conversation has changed
One flat set of changed files per repo, measured against where each repo stood when the conversation started, with every file flagged as already merged or not. Not the staged-and-unstaged shape a working copy has, because nobody ever checks this branch out to stage into it.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
reposOne entry per repository the conversation… | object[] |
repoWhich repository | string |
branchThe branch this conversation's work sits… | string |
changesWhat it changed there | object[] |
pathThe path, relative to the repository… | string |
statusWhat happened to it | "added" | "modified" | "deleted" | "renamed" … (6) |
fromWhere a renamed file came from | string |
additionsLines added | number |
deletionsLines removed | number |
codeThe same +/− with every comment… | object |
additions | number |
deletions | number |
landedWhether your workspace already holds this… | boolean |
modulesThe packages of the tree these… | object[] |
dirWhere the package lives, relative to… | string |
nameThe name the package declares for… | string |
addedDependenciesDependencies the changed manifests here declare… | object[] |
pathThe manifest, relative to the repository… | string |
addedThe names it declares now and… | string[] |
absorbedHow many of this conversation's files… | number |
conflictsWhy the last merge refused, when… | object[] |
repoWhich repository | string |
pathsThe files that genuinely would not… | object[] |
pathWhich file | string |
reasonWhy it would not merge, and… | "workspace" | "diverged" | "binary" |
cleanHow many files in this repository… | number |
mainBranchThe branch your own checkout is… | string |
elsewhereRepositories whose copy the conversation left… | object[] |
repoWhich repository | string |
branchThe branch its copy is standing… | string |
carriedWhether everything the conversation committed there… | boolean |
uncommittedWhether its copy there holds uncommitted… | boolean |
scratchUntracked files the conversation left in… | object[] |
repoWhich repository | string |
pathsWhat it keeps out there | object[] |
pathRelative to its repository | string |
reasonWhy it looks like scratch | "hidden" | "byproduct" | "checkout" | "oversized" … (5) |
filesHow many files it holds | number |
bytesTheir total size in bytes | number |
curl "$SANDBOX/agents/a1b2c3d4/diff" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.diff({
"id": "a1b2c3d4"
});GET/agents/{id}/conflictsWhy a conversation's last merge refused
What still blocks the conversation's last refused merge, checked again against your workspace as it stands now. Returns the same `conflicts` the full change list carries, without the change list itself. Empty when nothing refused, or when what refused before has since stopped being in the way.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
conflictsWhy the last merge refused, when… | object[] |
repoWhich repository | string |
pathsThe files that genuinely would not… | object[] |
pathWhich file | string |
reasonWhy it would not merge, and… | "workspace" | "diverged" | "binary" |
cleanHow many files in this repository… | number |
mainBranchThe branch your own checkout is… | string |
curl "$SANDBOX/agents/a1b2c3d4/conflicts" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.conflicts({
"id": "a1b2c3d4"
});GET/agents/{id}/historyWhere a conversation's committed work lives
The commits in your own history that carry this conversation's work, with the files each one brought. Use it when the change list is empty or short because you already committed what it wrote: those files are not differences against the main line any more, so they are not in the review, and this is where they went.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
reposOne entry per repository holding committed… | object[] |
repoWhich repository | string |
commitsThe commits carrying this conversation's work… | object[] |
shaThe commit | string |
shortIts abbreviated hash, which is what… | string |
subjectIts first line | string |
authorWho committed it | string |
atWhen it was authored, in milliseconds | number |
changesThe conversation's files that this commit… | object[] |
pathThe path, relative to the repository… | string |
statusWhat happened to it | "added" | "modified" | "deleted" | "renamed" … (6) |
fromWhere a renamed file came from | string |
additionsLines added | number |
deletionsLines removed | number |
codeThe same +/− with every comment… | object |
modulesThe packages of the tree these… | object[] |
dirWhere the package lives, relative to… | string |
nameThe name the package declares for… | string |
unaccountedHow many of the conversation's absorbed… | number |
curl "$SANDBOX/agents/a1b2c3d4/history" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.history({
"id": "a1b2c3d4"
});GET/agents/{id}/{repo}/file-diffOne file's before and after in a conversation's work
Both sides of a single file: what it held when the conversation started and what it holds on its branch now.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
reporequiredWhich repository | string | address |
pathrequiredWhich file, relative to that repository | string | query |
What comes back
| Field | Type |
|---|---|
beforeThe whole file as it was | string |
afterThe whole file as it is… | string |
binaryThe file is not text, so… | boolean |
partialSet when the file was too… | object |
beforeBytesHow big the before side is,… | integer |
afterBytesHow big the after side is,… | integer |
patchThe changed regions as unified-diff hunks… | string |
moreThere were more changed regions than… | boolean |
curl "$SANDBOX/agents/a1b2c3d4/root/file-diff?path=src%2Fapp.ts" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.fileDiff({
"id": "a1b2c3d4",
"repo": "root",
"path": "src/app.ts"
});POST/agents/{id}/scratch/includeCarry files set aside as scratch with a conversation's work
Takes files the review lists as scratch and adds them to the conversation's work, so the next merge carries them like any other file. For the file that only looked like scratch. Refused for a checkout of its own, which no merge can carry, while a turn is running, and for a path that is not scratch right now.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
reporequiredWhich repository of its composition | string | body |
pathsrequiredPaths exactly as the review lists… | string[] | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/agents/a1b2c3d4/scratch/include" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"repo":"root","paths":["src/app.ts","README.md"]}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.includeScratch({
"id": "a1b2c3d4",
"repo": "root",
"paths": [
"src/app.ts",
"README.md"
]
});POST/agents/{id}/scratch/deleteDelete a conversation's scratch
Removes files the review lists as scratch from the conversation's copy. Nothing else is touched, and nothing of it was ever merged. Refused while a turn is running, and for a path that is not scratch right now.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
reporequiredWhich repository of its composition | string | body |
pathsrequiredPaths exactly as the review lists… | string[] | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/agents/a1b2c3d4/scratch/delete" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"repo":"root","paths":["src/app.ts","README.md"]}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.deleteScratch({
"id": "a1b2c3d4",
"repo": "root",
"paths": [
"src/app.ts",
"README.md"
]
});POST/agents/{id}/landMerge a conversation's work into the workspace
Brings the conversation's branches into the main tree, one repo at a time. A conflict is reported rather than raised and nothing is lost when it fails. Refused while a turn is running, and refused for a conversation that works directly in the shared tree, which has nothing to merge.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation's work to merge | string | address |
modeHow to apply it | "check" | "merge" | "measure" | body |
spanHow much of the work to… | "cumulative" | "outstanding" | body |
forceGo ahead despite a check that… | boolean | body |
What comes back
| Field | Type |
|---|---|
landedWhether the entire composed change was… | boolean |
changedWhether anything actually moved | boolean |
conflictsWhat stopped the whole composed change,… | object[] |
repoWhich repository | string |
pathsThe files that genuinely would not… | object[] |
pathWhich file | string |
reasonWhy it would not merge, and… | "workspace" | "diverged" | "binary" |
cleanHow many files in this repository… | number |
mainBranchThe branch your own checkout is… | string |
resolvingFiles left half-merged when you asked… | object[] |
repoWhich repository | string |
pathsWhich files now hold conflict markers… | string[] |
heldNothing was applied and nothing failed:… | boolean |
curl -X POST "$SANDBOX/agents/a1b2c3d4/land" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"mode":"check","span":"cumulative","force":false}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.land({
"id": "a1b2c3d4",
"mode": "check",
"span": "cumulative",
"force": false
});POST/agents/{id}/request-landAsk a maintainer to merge this work
For a collaborator who is not allowed to merge: marks the conversation as waiting for review, with who asked. The request shows on every maintainer's board and clears when somebody merges or discards it.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/request-land" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.requestLand({
"id": "a1b2c3d4"
});POST/agents/{id}/assignMake a member answerable for this conversation
Hands a conversation to a member: its owner is who answers its questions and who a reviewer asks about its work. Its owner may hand it to anyone; a maintainer may reassign any conversation; one nobody owns may be claimed by anyone allowed to drive agents. Refused for an address that is not a member's. Nothing about the conversation's own work changes.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
torequiredWho should answer for it from… | string | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/assign" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"to":"src/server.ts"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.assign({
"id": "a1b2c3d4",
"to": "src/server.ts"
});POST/agents/{id}/reactMark a conversation with an emoji
Puts your mark on a conversation, or takes it back. Everyone sharing the sandbox sees it, with who left it, which is what makes it worth more than a private bookmark. One mark per person per emoji; nothing about the conversation's own work changes.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
emojirequiredThe mark to leave, as the… | string | body |
onrequiredWhether to add your mark or… | boolean | body |
What comes back
| Field | Type |
|---|---|
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
when kind is "agent" | shape |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
when kind is "person" | shape |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
curl -X POST "$SANDBOX/agents/a1b2c3d4/react" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"emoji":"…","on":true}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.react({
"id": "a1b2c3d4",
"emoji": "…",
"on": true
});POST/agents/{id}/discardThrow a conversation's work away
Deletes the conversation's working copies, its branches and its entry. Nothing is kept. Refused while a turn is running, and refused for a conversation working in the shared tree.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich conversation | string | address |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/agents/a1b2c3d4/discard" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.discard({
"id": "a1b2c3d4"
});POST/agents/archivePut conversations away
The gentle counterpart to discarding. Commits whatever the conversation still has in progress onto its own branch, releases its working copy, and keeps the entry and the record. Its scratch is not committed and goes with the copy. It leaves the live fleet and joins the archive. Refused for a conversation that is running.
What you send
| Field | Type | Where |
|---|---|---|
idsrequiredWhich conversations | string[] | body |
What comes back
| Field | Type |
|---|---|
movedWhat actually moved, whole, rather than… | object[] |
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
kind | "agent" |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
revThe version of the fleet that… | number |
failedThe conversations this press could not… | object[] |
idWhich conversation stayed on the board | string |
reasonWhy its working copy could not… | string |
curl -X POST "$SANDBOX/agents/archive" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"ids":["a1b2c3d4","e5f6a7b8"]}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.archive({
"ids": [
"a1b2c3d4",
"e5f6a7b8"
]
});POST/agents/unarchiveBring conversations back
Returns archived conversations to the live fleet. The next turn picks up a fresh working copy from the branch that was kept.
What you send
| Field | Type | Where |
|---|---|---|
idsrequiredWhich conversations | string[] | body |
What comes back
| Field | Type |
|---|---|
movedWhat actually moved, whole, rather than… | object[] |
idThe conversation id, which is how… | string |
sessionIdThe provider session behind the last… | string |
titleWhat to call it: the first… | string |
titleActionOne word for the kind of… | string |
statusWhat it is doing | "idle" | "running" | "awaiting" | "stopping" … (13) |
failureWhy the last turn failed, in… | string |
failureCodeWhich kind of failure it was,… | string |
limitResetsAtWhen the spent allowance reopens, in… | number |
limitHeldWhether the refused turn is held… | boolean |
limitScheduledWhether the held turn is already… | boolean |
limitMovingThe account the held turn is… | string |
providerWhich model provider it runs on | string |
harnessWhich agentic loop it runs on | "native" | "claude-code" |
runnerThe runner this conversation runs on | string |
startInWhich folder it opened in, relative… | string |
actsAsWhich persona its first turn acted… | string |
lastActsAsWhich persona its last turn acted… | string |
modelWhat its last turn ran with | string |
effortHow hard that turn was told… | string |
thinkingWhether that turn showed its reasoning | boolean |
fastWhether that turn asked for higher… | boolean |
accountWhich connected account paid for it | string |
branchThe branch its private copy works… | string |
autoLandThis conversation's own answer to whether… | boolean |
limitPolicy | "wait" | "resend" | "move" |
outagePolicy | "wait" | "retry" |
stopPolicy | "wait" | "retry" |
landRequestedA collaborator has asked a maintainer… | object |
emailWho asked | string |
nameTheir display name | string |
atWhen they asked, in milliseconds | number |
reactionsWhat people have marked this conversation… | object[] |
emojiThe mark itself, one emoji, carried… | string |
byEveryone wearing this mark, oldest first,… | object[] |
emailWho it was, as the sandbox… | string |
nameWhat to call them, when their… | string |
atWhen they marked it, in milliseconds | number |
originWhere the conversation came from when… | object |
automationId | string |
provider | string |
channelId | string |
author | string |
startedByWho asked for the first turn,… | string |
areasWhich named areas of the workspace… | string[] |
ownerThe member answerable for this conversation:… | object |
emailWho answers for this conversation, as… | string |
nameWhat to call them, when the… | string |
sinceWhen they became its owner, in… | number |
forkedFromThe conversation this one was cut… | object |
conversationId | string |
index | integer |
files | "then" | "now" |
baseThe commit its private copy started… | string |
costUsdWhat it has cost so far,… | number |
inputTokensUncached input tokens, excluding cache reads… | number |
outputTokensTokens received | number |
contextTokensHow much of the window the… | number |
contextWindowHow large that window is | number |
promptCacheWhen this conversation's prompt cache was… | object |
atWhen its last request touched the… | number |
ttlMsHow long that entry lives from… | number |
rollsAtWhen the date written into the… | number |
keepableUntilPresent when this sandbox can keep… | number |
keepWarmWhether the sandbox is keeping this… | object |
sinceWhen keeping it warm started, in… | number |
untilWhen it stops by itself, in… | number |
refreshesRefreshes sent so far | integer |
readTokensHow much the last refresh read… | number |
endedWhy keeping it warm stopped before… | object |
atWhen it stopped, in milliseconds | number |
reasonWhy: `elapsed` the time asked for… | "elapsed" | "allowance" | "changed" | "cold" … (5) |
detailThe specifics, when there are any:… | string |
activityWhat it is doing at this… | object |
toolThe last tool it reached for | string |
targetWhat it reached for that tool… | string |
todoThe item on its own list… | string |
checklistHow far it is through its… | object |
doneItems it has completed | number |
totalItems on the list | number |
landedMessageDraftThe whole story of this merge's… | object |
startedAtWhen the drafting began, in milliseconds | number |
stepsEach model that was asked, in… | object[] |
providerWhich provider was asked | string |
modelWhich of its models | string |
statusHow this one went | "asking" | "answered" | "refused" | "skipped" |
atWhen it started being asked, in… | number |
msHow long it took | number |
reasonWhy it refused, in its own… | string |
outcomeHow it ended | "written" | "failed" |
reasonThe one-line account of a failure,… | string |
finishedAtWhen it ended, in milliseconds | number |
landedMessageWhat this conversation's merged work is… | object |
subjectOne line saying what the merged… | string |
noteThe same change said to somebody… | string |
breakingWhat this change takes away, for… | string |
testNoteWhy a test this change weakened… | string |
allowsExceptions the conversation declared for this… | string[] |
startedAtWhen the running turn started, in… | number |
runThe run under way right now:… | string |
queueMessages waiting for its next turn,… | object |
itemsWhat waits, in the order it… | object[] |
idThe message's id: what its sender… | string |
textThe words, as they will go… | string |
attachmentsFiles that go with it, as… | string[] |
voiceWho it is from: a person,… | "person" | "sandbox" | "agent" |
queuedAtWhen it joined the queue, in… | number |
revisionThe queue's revision when this message… | integer |
revisionMoves with every change to the… | integer |
pausedWhy nothing goes out by itself:… | "stopped" | "refused" | "scheduled" |
untilWhen scheduled messages go out by… | number |
afterThe conversation whose finished work must… | string |
updatedAtWhen it last did something, in… | number |
seenAtWhen somebody last opened it, in… | number |
unsentAtSince when somebody's composer has held… | number |
attentionWhich kinds of waiting-for-you it is… | object |
planIt has proposed a plan and… | boolean |
questionIt has asked you something | boolean |
permissionIt wants to use a tool… | boolean |
capabilityIt needs something connected that is… | boolean |
credentialIt is waiting for a named… | boolean |
conflictIts work cannot be merged without… | boolean |
needIt asked a person for something… | boolean |
permissionAskThe oldest permission its running turn… | object |
requestIdWhich request this is: the id… | string |
askWhat it asks to do, on… | string |
landFailureThe last attempt to bring its… | object |
reasonWhy it failed, in the words… | string |
codeWhich kind of failure it was,… | string |
atWhen it failed, in milliseconds | number |
deliveryWhat became of its last land… | object |
state | "delivered" | "partial" | "waiting" | "failed" … (5) |
atWhen this state was reached, in… | number |
project | string |
folderThe folder on the owner's computer,… | string |
appliedFiles written, merged ones included | integer |
conflicts | object[] |
path | string |
reason | "edited" | "link" | "outside" | "missing-git" |
pointThe machine's restore point taken before… | string |
reasonWhy it failed or waits, in… | string |
conflictCausesWhy its work will not merge,… | "workspace" | "diverged" | "binary"[] |
unfinishedWhat its last turn left open:… | object |
atWhen the turn that left this… | number |
stepsThe agent's own checklist where that… | object |
openItems on it that were never… | number |
totalItems on the whole list | number |
nextThe one it would have done… | string |
checkThe end-of-turn check that was still… | string |
proofWhat its last turn showed of… | object |
atWhen the turn that left this… | number |
verificationVerified: a check it ran passed… | "verified" | "unproven" | "failing" | "no-code" |
checkThe command that spoke, when one… | string |
unviewedHow many rendered files it changed… | number |
reachWhere its last turn's work went… | object |
atWhen the turn that left this… | number |
liveFiles it changed in place where… | object[] |
pathWhat it wrote, as it named… | string |
extensionThe extension, by its manifest id,… | string |
liveMoreHow many more such files there… | number |
strandedRepositories it cloned inside its own… | object[] |
dirThe clone, as a folder relative… | string |
uncommittedFiles changed in it and never… | number |
unpushedCommits in it its upstream does… | number |
strandedMoreHow many more such clones there… | number |
publishedPushes it made with git that… | object[] |
dirThe folder it pushed from, as… | string |
remoteThe remote it pushed to, as… | string |
branchThe branch it pushed to, as… | string |
commandThe push itself, trimmed to one… | string |
publishedMoreHow many more such pushes there… | number |
turnsTurns it has finished | number |
toolUsesTools it has used, over its… | number |
subagentsSubagents this one started, in-process and… | object |
runningSubagents working right now | number |
totalSubagents it has started over its… | number |
diffEverything it has written, measured from… | object |
filesFiles touched | number |
insertionsLines added | number |
deletionsLines removed | number |
landedPresencePresent only when some of what… | object |
landedPaths this conversation merged in | number |
presentHow many of them are still… | number |
removedByWho took them out, when the… | object |
kind | "agent" |
idThe conversation that took them out | string |
titleWhat that conversation is called | string |
loopThe loop driving this conversation, if… | object |
stateHow the loop is going | "running" | "done" | "exhausted" | "stalled" … (8) |
iterationWhich round it is on | integer |
maxIterationsHow many rounds it will attempt… | integer |
goalWhat it is looping towards | string |
workflowThe workflow run this conversation is… | object |
runIdThe run this belongs to, which… | string |
nameThe workflow's name | string |
stepWhich step this conversation is on… | string |
indexThis step's place in the workflow,… | integer |
totalHow many steps the workflow has | integer |
awaitingWakeWhether this conversation runs again by… | boolean |
watchesOutside conditions this conversation is parked… | object[] |
idThe daemon's handle for this watch,… | string |
noteThe agent's own line on what… | string |
intervalSecondsHow often the check runs | integer |
deadlineAtWhen it gives up and wakes… | number |
needsWhat it is waiting on people… | object[] |
id | string |
kindWhat is being asked for: a… | "capability" | "secret" | "grant" | "release" … (5) |
title | string |
statusWhere it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
jobsCommands this conversation left running in… | object[] |
idThe daemon's handle for this job,… | string |
labelWhat the job is, in the… | string |
sessionThe terminal session its pane runs… | string |
startedAtWhen it started, in milliseconds | number |
endedAtWhen the command exited, in milliseconds | number |
exitCodeThe code it exited with | integer |
watchThe watch its exit wakes this… | string |
handedLeft running for the person: the… | boolean |
portsThe ports it was listening on… | integer[] |
stoppedByWho stopped it: the sandbox, when… | "turn" | "person" | "agent" |
inputWaitPresent while it sits blocked reading… | object |
sinceWhen it went still, in milliseconds | number |
programThe process blocked reading the terminal,… | string |
archivedAtWhen it was put away, in… | number |
revThe version of the fleet that… | number |
curl -X POST "$SANDBOX/agents/unarchive" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"ids":["a1b2c3d4","e5f6a7b8"]}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.unarchive({
"ids": [
"a1b2c3d4",
"e5f6a7b8"
]
});POST/agents/purgeEmpty the archive for good
Discards every conversation already in the archive: working copies, branches and entries. The whole archive rather than a chosen few, because the archive is the pile somebody has already decided is over. A teardown that fails on one conversation leaves that one behind instead of taking the rest down with it.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
removedWhich conversations were deleted, as ids | string[] |
curl -X POST "$SANDBOX/agents/purge" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.agents.purge();