Files
byre/web/src/api.gen.ts
T
2026-10-16 09:51:32 -07:00

2551 lines
82 KiB
TypeScript

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export interface paths {
"/api/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getMe"];
put: operations["updateMe"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/notifications": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** @description Sets which new inbox items notify the calling user in their open byre pages. */
put: operations["updateNotificationPrefs"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/lead/sessions": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** @description The calling user's lead agent sessions, oldest first. A compaction completes one and starts the next. */
get: operations["listLeadSessions"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/lead/messages": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** @description Sends a message to the calling user's lead agent, starting a lead session when there is none. While the lead is mid-turn the message is held and sent as its next turn. */
post: operations["messageLead"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/focus": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getFocus"];
/** @description Records the human switching the right pane's project, task or tab. */
put: operations["setFocus"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/pane-focus": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** @description Records whether the human is working in the right pane, and whether they have unsent text there. While they are working in it, the lead agent can move it only in the cases its show tool describes. */
put: operations["setPaneFocus"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["listProjects"];
put?: never;
post: operations["createProject"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{projectId}": {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
get: operations["getProject"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{projectId}/tasks": {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
get: operations["listTasks"];
put?: never;
/** @description Creates the task's branch and worktree from the project's default branch. */
post: operations["createTask"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{projectId}/todo": {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
/** @description The items of TODO.md at the root of the project's default branch, in file order. */
get: operations["getTodo"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{projectId}/todo/tasks": {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Creates a task for a TODO.md item, recording the item as its todo_item, and starts its agent with the item as the first message. Refused while another active task has the same item. */
post: operations["startTodoItem"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
get: operations["getTask"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/workflow": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The workflow the task froze when it was created, as it was then. Later edits and deletes of the workflow don't change it. */
get: operations["getTaskWorkflow"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/unmerged": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description What the task's worktree holds that its project's default branch doesn't. */
get: operations["getUnmerged"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/co-authors": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The humans other than the caller with a message in the task's transcript (sent its agent a message, or had an inbox answer delivered under their name), in order of their first message. A merge by the caller gives each one with a git identity a Co-authored-by trailer. */
get: operations["getCoAuthors"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/merge": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Sets the task's merge_title to the confirmed title, then starts the same agent turn as merge-in, without its invitation to revise the title. When that turn ends normally, byre squashes the task's worktree into one commit titled with the task's merge_title on the project's default branch, authored by the caller with a Co-authored-by trailer for each of the task's co-authors, pushes it to origin, fast-forwards the project's checkout to it, then removes the worktree and branch and marks the task merged. While another task in the project is merging, the merge is held instead (merge_queued_at is set) and starts when no merge is in progress in the project and the task's session is idle, oldest first. The title is fixed from here until the task closes. Refused while a turn is running, or the merge is already held. */
post: operations["mergeTask"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/merge-in": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Asks the task's agent to merge the project's default branch into the task branch, resolving any conflicts and regenerating generated files. Sent to the task's idle session, or starts a session when it has none. Refused while a turn is running. */
post: operations["mergeIn"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/discard": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Removes the task's worktree and branch without merging. The task's record and events remain. */
post: operations["discardTask"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/events": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The task's events after a seq, oldest first. Page by passing the last seq back as after. */
get: operations["listTaskEvents"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/changes": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description Everything in the task's worktree (committed, staged, unstaged and untracked, respecting .gitignore) as a tree, compared with the merge-base of the task branch and the project's default branch, or with since when given. The worktree's own index is not touched. With snapshot, the tree is that snapshot's instead, compared with the merge-base of its commit and the default branch, or with the previous snapshot's tree when step is true. */
get: operations["getTaskChanges"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/image": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description An image file from the task's worktree, for Markdown images and image attachments. path is absolute or relative to the worktree; after resolving symlinks it must be inside the worktree. PNG, JPEG, GIF, WebP and SVG, chosen by extension. */
get: operations["getTaskImage"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/diff": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The unified diff of one file between a base and tree from getTaskChanges. */
get: operations["getTaskDiff"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/dir": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description One directory of the task's worktree, directories first, then by name. Entries named .git are left out; gitignored entries are included and marked. A path that leaves the worktree, through .. or a symlink, is refused. */
get: operations["getTaskDir"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/file": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description A regular file in the task's worktree. Text is returned up to a size limit; binary files return no content. A path that leaves the worktree, through .. or a symlink, is refused. */
get: operations["getTaskFile"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/terminal": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description A WebSocket attached to the task's terminal, a login shell in its worktree, started at cols by rows if none is running. The server first sends what the terminal has recently printed, then its output as it comes, all as binary messages. The client sends input as binary messages and resizes as text messages holding a TerminalSize. When the shell exits the server closes with code 4000 and the exit status as the reason. */
get: operations["getTaskTerminal"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/previews": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The ports the task's agent exposed with expose_port, by name. Each is served by tailscale serve on the same port number of byre's host, over HTTPS, until the task is merged or discarded. */
get: operations["listPreviews"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/snapshots": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The task's snapshots, oldest first. Each is a commit of the worktree as if everything were staged, kept at refs/byre/tasks/{taskId}/snap/{n} until the task is merged or discarded; the rows remain after that. */
get: operations["listSnapshots"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/reviews": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @description The task's reviews, one per snapshot, oldest first. */
get: operations["listReviews"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/snapshots/{n}/fork": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
n: number;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Creates a new task whose branch and worktree start from the snapshot's commit, with an idle agent session that continues the snapshot's agent conversation as it stood at the snapshot (the vendor's own session fork). The new session's first turn is the first message sent to it. Refused while the task is closed, and for a snapshot with no recorded agent message at or before it. */
post: operations["forkSnapshot"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/sessions": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
get: operations["listSessions"];
put?: never;
/** @description Starts an agent session in the task's worktree and sends it the prompt as its first turn. */
post: operations["createSession"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/sessions/{sessionId}": {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
get: operations["getSession"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/sessions/{sessionId}/messages": {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Starts a new turn with this message when the session is idle. While a task session's turn is running, the message is queued and reaches the agent after its next tool call, or as the next turn. */
post: operations["sendMessage"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/sessions/{sessionId}/compact": {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Asks the idle session's agent for a handoff (goal, decisions, state, dead ends, open questions, files). When that turn ends, the session is completed and a new session on the same task and model starts with the handoff as its first message. */
post: operations["compactSession"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/sessions/{sessionId}/interrupt": {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
get?: never;
put?: never;
/** @description Ends the current turn. */
post: operations["interruptSession"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/blobs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** @description Stores an image for use in a message. The body is the raw image; its type is detected from the bytes and must be PNG, JPEG, GIF or WebP. At most 5 MiB. */
post: operations["uploadBlob"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/blobs/{blobId}": {
parameters: {
query?: never;
header?: never;
path: {
blobId: string;
};
cookie?: never;
};
get: operations["getBlob"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/inbox": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** @description Inbox items, oldest first. Filters narrow the one query to a project's or a task's view. */
get: operations["listInbox"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/inbox/{itemId}": {
parameters: {
query?: never;
header?: never;
path: {
itemId: string;
};
cookie?: never;
};
get: operations["getInboxItem"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/inbox/responses": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** @description Answers one or more items in one submission. Answers reach the agent as one message once it is idle and none of its questions are unanswered. */
post: operations["respondInbox"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/events": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** @description Server-sent events. Each event's id is its seq; data is the Event as JSON. Events after Last-Event-ID (or the after query parameter) are replayed before live events. With task_id, only that task's events are sent; with lead=true, only the events of the caller's lead agent. Events with an owner go only to that user. */
get: operations["streamEvents"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/admin/status": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getStatus"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workflows": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["listWorkflows"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workflows/{name}": {
parameters: {
query?: never;
header?: never;
path: {
name: string;
};
cookie?: never;
};
get: operations["getWorkflow"];
/** @description Creates or replaces the workflow from its file, a WorkflowDefinition as YAML (or JSON). The name is one line of 1 to 100 characters. Tasks that already froze the workflow keep their copy. */
put: operations["putWorkflow"];
post?: never;
delete: operations["deleteWorkflow"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
schemas: {
Error: {
message: string;
};
User: {
login: string;
display_name: string;
git_name: string;
git_email: string;
notification_prefs: components["schemas"]["NotificationPrefs"];
};
/** @description Which new inbox items and finished turns notify this user in their open byre pages. */
NotificationPrefs: {
/** @description Questions. On by default. */
questions: boolean;
/** @description Task turns that end with a summary (turn.ended with summary: true). */
reports: boolean;
/** @description session_error items. */
errors: boolean;
/** @description rate_limited items. */
rate_limits: boolean;
};
UserUpdate: {
git_name: string;
git_email: string;
};
Project: {
id: string;
name: string;
repo_path: string;
default_branch: string;
remote: string;
created_by: string;
/** Format: date-time */
created_at: string;
};
ProjectCreate: {
name: string;
repo_path: string;
};
Task: {
id: string;
project_id: string;
title: string;
/** @description The title of the squash commit Merge makes: the task title until the agent sets another with set_merge_title. */
merge_title: string;
branch: string;
worktree_path: string;
base_ref: string;
/** @description The first of the task's block of ports (port_base to port_base+9), passed to its agent and terminal as PORT. */
port_base: number;
/** @description Index into the UI's task palette, assigned at creation: a colour no active task holds, the one given out longest ago. */
color: number;
/** @enum {string} */
status: "active" | "merged" | "discarded";
created_by: string;
/** Format: date-time */
created_at: string;
/**
* Format: date-time
* @description When the task was merged or discarded.
*/
closed_at?: string;
/** @description merged: the squash commit on the default branch; empty when there was nothing to merge. */
merge_commit?: string;
/** @description The title of the TODO.md item the task was started from; absent for other tasks. */
todo_item?: string;
/** @description The task this one was forked from; absent for other tasks. */
forked_from?: string;
/** @description With forked_from: the n of the snapshot it was forked at. */
forked_at?: number;
/**
* Format: date-time
* @description When Merge was requested while another task in the project was merging; absent once the merge starts or when none is held.
*/
merge_queued_at?: string;
/** @description The name of the workflow the task froze at creation (getTaskWorkflow has its copy); absent for a task without one. */
workflow?: string;
/** @description With workflow: the id every task of one run of the workflow shares. */
workflow_run?: string;
/** @description With workflow: the name of the stage this task runs. */
workflow_stage?: string;
/** @description Whether a review of one of the task's snapshots is running. */
reviewing: boolean;
};
Todo: {
/** @description Whether the default branch has a TODO.md at its root. */
exists: boolean;
items: components["schemas"]["TodoItem"][];
};
TodoItem: {
/** @description The item's first line, without its list marker: the item's identity. */
title: string;
/** @description The item's further lines */
body: string;
/** @description The text of the nearest heading above the item; empty when there is none. */
section: string;
};
TodoStart: {
/** @description The title of the item to start. */
title: string;
model?: string;
/** @description Tell the agent the human wants to discuss the item in chat before anything is built. */
discuss?: boolean;
};
Unmerged: {
/** @description Commits on the task branch that aren't on the default branch. */
commits: number;
/** @description Files that differ from the merge base */
files: number;
insertions: number;
deletions: number;
/** @description Paths with uncommitted changes in the worktree. */
uncommitted: number;
};
Participant: {
login: string;
display_name: string;
/** @description Empty when the user hasn't set a git identity; they then get no trailer. */
git_name: string;
git_email: string;
};
TaskCreate: {
title: string;
};
WorkflowSummary: {
name: string;
description: string;
};
/** @description A workflow's file, which holds everything but its name: its stages, each run as its own task once the stages it comes after have finished. Sent and returned as YAML. */
WorkflowDefinition: {
description?: string;
stages: components["schemas"]["Stage"][];
};
Stage: {
/** @description One line of 1 to 100 characters, unique within the workflow. */
name: string;
/** @description The stages whose outputs this stage gets, by name; it starts once all of them have finished. Absent means the previous stage in the list (for the first stage, none); empty means it starts from the brief. */
after?: string[];
/**
* @description Where the stage's task branches from. parent (the default): the commit its one after stage finished at, or for a stage with none, where the workflow was started from. main: the project's default branch. Refused on a stage with more than one after stage, which always branches from the default branch.
* @enum {string}
*/
base?: "parent" | "main";
/** @description The stage agent's model, which also picks its vendor: gpt-* models run on Codex, every other model on Claude Code. */
model: string;
/** @description The stage agent's instructions. */
prompt: string;
};
/** @description The workflow a task froze when it was created, as it was then. */
TaskWorkflow: {
name: string;
/** @description The WorkflowDefinition as YAML. */
definition: string;
};
TaskChanges: {
/** @description The commit or tree compared with: the merge-base of the task branch and the default branch, since, or the previous snapshot's tree. */
base: string;
/** @description Tree of the worktree as if everything were staged, or the snapshot's tree. */
tree: string;
files: components["schemas"]["FileChange"][];
};
FileChange: {
path: string;
/** @description renamed: the path before the rename. */
old_path?: string;
/** @enum {string} */
status: "added" | "modified" | "deleted" | "renamed" | "type_changed";
additions: number;
deletions: number;
binary: boolean;
};
FileDiff: {
path: string;
patch: string;
};
DirListing: {
/** @description The directory, relative to the worktree root; empty for the root. */
path: string;
entries: components["schemas"]["DirEntry"][];
/** @description The directory has more entries than were returned. */
truncated: boolean;
};
DirEntry: {
name: string;
/** @description git ignores the entry: .gitignore and the other exclude files match it or a directory above it. */
ignored: boolean;
/**
* @description What the entry is, following a symlink that stays in the worktree. other: a symlink that leaves the worktree or points nowhere, or a device, socket or pipe.
* @enum {string}
*/
type: "dir" | "file" | "other";
symlink: boolean;
/**
* Format: int64
* @description file: its size in bytes.
*/
size: number;
};
FileContent: {
path: string;
/** Format: int64 */
size: number;
/** @description The file isn't UTF-8 text; text is empty. */
binary: boolean;
/** @description text holds only the start of the file. */
truncated: boolean;
text: string;
};
Snapshot: {
id: string;
task_id: string;
agent_session_id: string;
/** @description Position in the task's snapshots, from 1; the ref is refs/byre/tasks/{task_id}/snap/{n}. */
n: number;
/** @description A commit of tree_sha whose parent is the worktree's HEAD when it was taken. */
commit_sha: string;
tree_sha: string;
/**
* Format: int64
* @description The task's latest event when the snapshot was started: the tree holds at least the work up to it.
*/
event_seq: number;
/**
* @description turn_end: after byre's end-of-turn commit. message (the agent wrote text after one or more tool calls), tool_call, ask_human and timer appear only on snapshots taken by earlier builds.
* @enum {string}
*/
trigger: "message" | "turn_end" | "tool_call" | "ask_human" | "timer";
/** Format: date-time */
created_at: string;
};
Preview: {
task_id: string;
name: string;
/** @description A port in the task's block, served at https://<byre's host>:<port>/. */
port: number;
/** Format: date-time */
created_at: string;
};
/** @description An agent session on the vendor the task's agent doesn't use, reviewing one snapshot's change. */
Review: {
id: string;
task_id: string;
snapshot_n: number;
/** @description The reviewer's session; empty when skipped. */
agent_session_id: string;
/** @description Empty when skipped. */
vendor: string;
/** @description Empty when skipped. */
model: string;
/**
* @description skipped: the snapshot's step changed no files, so no reviewer ran.
* @enum {string}
*/
state: "running" | "done" | "failed" | "skipped";
/** @description done: the reviewer's submit_review arguments: summary (Markdown) and findings, each with severity, category, title, detail, path and line. */
result?: Record<string, never>;
/** @description failed: why. */
error: string;
/** Format: date-time */
created_at: string;
/** Format: date-time */
finished_at?: string;
};
AgentSession: {
id: string;
/** @description Empty for a lead session. */
task_id: string;
/** @description The login whose lead agent this is; empty for a task's session. */
owner: string;
/**
* @description Follows from the model the session was created with: gpt-* models run on Codex, every other model on Claude Code.
* @enum {string}
*/
vendor: "claude" | "codex";
/** @description Requested model; empty means the vendor's default. A session only switches between its own vendor's models. */
model: string;
/** @description Claude Code's session id, chosen by byre; or the Codex thread id, empty until the session's first turn starts its thread. */
vendor_session_id: string;
/** @enum {string} */
state: "idle" | "running" | "completed";
/**
* @description reviewer: a review's session (see Review); a task's sessions list leaves these out.
* @enum {string}
*/
role: "implementer" | "lead" | "reviewer";
created_by: string;
/** Format: date-time */
created_at: string;
/** @description A fork's first start resumes this vendor session, cut at forked_at, under a new vendor_session_id; absent for other sessions. */
forked_from?: string;
/** @description With forked_from: the vendor's id of the last thing the fork keeps, a message for Claude Code, a turn for Codex. */
forked_at?: string;
};
SessionCreate: {
prompt: string;
model?: string;
/** @description Blob ids from uploadBlob, sent to the agent as images alongside the prompt. */
images?: string[];
};
MessageCreate: {
/** @description May be empty when images are given. */
text: string;
/** @description Blob ids from uploadBlob, sent to the agent as images alongside the text. */
images?: string[];
/** @description Model for this turn and later ones. When it differs from the session's model, the session switches before the message is sent. */
model?: string;
};
Blob: {
id: string;
content_type: string;
created_by: string;
/** Format: date-time */
created_at: string;
};
Attachment: {
/** @enum {string} */
kind: "file" | "diff" | "image" | "diagram" | "task" | "snapshot" | "url";
/** @description file: repo-relative path. image: an image file in the task's worktree, absolute or relative to it. */
path?: string;
start_line?: number;
end_line?: number;
/** @description diff: git revision range. */
ref?: string;
url?: string;
/** @description diagram: Mermaid source. */
mermaid?: string;
/** @description image: data URL. */
image?: string;
task_id?: string;
snapshot_id?: string;
caption?: string;
};
/** @enum {string} */
InboxState: "open" | "answered" | "dismissed" | "superseded";
InboxItem: {
id: string;
project_id: string;
task_id: string;
agent_session_id: string;
thread_id: string;
/** @enum {string} */
kind: "question" | "session_error" | "rate_limited";
/** @description question: context (Markdown with the choices inline as `- ( ) text` / `- (*) text` pick-one or `- [ ] text` / `- [x] text` pick-any list items), question, why_blocked, options (each choice's text, in order), multiple (true for pick-any), recommended (the marked choices' text), attachments. session_error: error. rate_limited: vendor, rate_limit (the vendor's rate-limit status), error. */
payload: Record<string, never>;
state: components["schemas"]["InboxState"];
/** @description question: the review of the first snapshot the task took after the question was asked (the snapshot at the end of the turn that asked it), once that snapshot exists; empty for other items. */
reviews: components["schemas"]["Review"][];
/** Format: date-time */
created_at: string;
resolved_by?: string;
/** Format: date-time */
resolved_at?: string;
responses: components["schemas"]["InboxResponse"][];
};
/** @enum {string} */
InboxResponseType: "option" | "other" | "dismiss";
InboxResponse: {
id: string;
item_id: string;
user: string;
type: components["schemas"]["InboxResponseType"];
options?: string[];
text?: string;
attachments: components["schemas"]["Attachment"][];
/** Format: date-time */
created_at: string;
/** Format: date-time */
delivered_at?: string;
};
InboxResponseCreate: {
item_id: string;
type: components["schemas"]["InboxResponseType"];
/** @description option: the chosen options; exactly one for a pick-one question, one or more for a pick-any question. */
options?: string[];
/** @description other: the text sent to the agent. option on a pick-any question: optional text sent along with the checked options. */
text?: string;
attachments?: components["schemas"]["Attachment"][];
};
InboxRespond: {
responses: components["schemas"]["InboxResponseCreate"][];
};
Event: {
/** Format: int64 */
seq: number;
kind: string;
project_id?: string;
task_id?: string;
agent_session_id?: string;
/** @description Set on a lead agent's events and a user's focus.updated: the login they belong to. Only that user is sent them. */
owner?: string;
actor: string;
payload: Record<string, never>;
/** Format: date-time */
created_at: string;
};
Focus: {
/** @description The project the right pane shows; the task's project when task_id is set */
project_id?: string;
/** @description The task the right pane shows; absent for none. */
task_id?: string;
/** @description The tabs the lead put first, in order. The other task tabs follow them. */
tabs: components["schemas"]["TaskTab"][];
tab: components["schemas"]["TaskTab"];
};
PaneFocus: {
/** @description True while the browser window has focus and the focused element is inside the right pane. */
focused: boolean;
/** @description True while a text box in the right pane holds unsent text. */
drafting: boolean;
};
/** @enum {string} */
TaskTab: "transcript" | "changes" | "files" | "terminal" | "inbox" | "reviews" | "project";
TerminalSize: {
cols: number;
rows: number;
};
Status: {
/** @description Agent processes currently running. */
live_agents: number;
/** @description Every agent process byre is tracking, idle sessions included. */
agent_processes: components["schemas"]["AgentProcess"][];
/** @description Sessions marked running with no live process, and agent processes byre has no session for. */
zombies: components["schemas"]["Zombie"][];
/** @description How long a running turn may go without a stream event before it counts as stuck. */
stuck_after_seconds: number;
protocol_errors: components["schemas"]["ProtocolErrors"];
/** @description Turns running now, oldest session first. */
running_turns: components["schemas"]["TurnRef"][];
/** @description The latest rate-limit status each vendor reported, keyed by vendor. */
rate_limits: {
[key: string]: Record<string, never>;
};
/** Format: date-time */
started_at: string;
/** Format: int64 */
db_bytes: number;
/** Format: int64 */
last_event_seq: number;
projects: number;
active_tasks: number;
sse_clients: number;
};
TurnRef: {
session_id: string;
task_id: string;
vendor: string;
};
AgentProcess: {
session_id: string;
task_id: string;
vendor: string;
pid: number;
/** @description The session's state */
state: string;
/**
* Format: date-time
* @description When the process last wrote a line to its stream
*/
last_event_at: string;
/**
* @description stuck means a turn is running and no stream event has arrived for stuck_after_seconds; exited means the process is gone.
* @enum {string}
*/
health: "ok" | "stuck" | "exited";
};
Zombie: {
/** @enum {string} */
kind: "running_without_process" | "process_without_session";
detail: string;
session_id?: string;
task_id?: string;
pid?: number;
};
ProtocolErrors: {
/** @description Stream lines the adapter couldn't parse or didn't recognise since byre started, keyed by vendor. */
counts: {
[key: string]: number;
};
/** @description The most recent ones, newest first. */
recent: components["schemas"]["ProtocolError"][];
};
ProtocolError: {
vendor: string;
session_id: string;
/** Format: date-time */
at: string;
reason: string;
/** @description The line as received */
raw: string;
/** @description The line's full length in bytes. */
size: number;
};
};
responses: {
/** @description Error. */
Error: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
getMe: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The calling user. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["User"];
};
};
};
};
updateMe: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserUpdate"];
};
};
responses: {
/** @description The updated user. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["User"];
};
};
400: components["responses"]["Error"];
};
};
updateNotificationPrefs: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["NotificationPrefs"];
};
};
responses: {
/** @description The updated user. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["User"];
};
};
400: components["responses"]["Error"];
};
};
listLeadSessions: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The sessions. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"][];
};
};
};
};
messageLead: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["MessageCreate"];
};
};
responses: {
/** @description The lead session the message went to or is held for. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
400: components["responses"]["Error"];
};
};
getFocus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description What the calling user's right pane shows. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Focus"];
};
};
};
};
setFocus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["Focus"];
};
};
responses: {
/** @description The stored focus. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Focus"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
};
};
setPaneFocus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PaneFocus"];
};
};
responses: {
/** @description Recorded. */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
400: components["responses"]["Error"];
};
};
listProjects: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description All projects. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Project"][];
};
};
};
};
createProject: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ProjectCreate"];
};
};
responses: {
/** @description The new project. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Project"];
};
};
400: components["responses"]["Error"];
};
};
getProject: {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The project. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Project"];
};
};
404: components["responses"]["Error"];
};
};
listTasks: {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The project's tasks, newest first. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"][];
};
};
404: components["responses"]["Error"];
};
};
createTask: {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TaskCreate"];
};
};
responses: {
/** @description The new task. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
};
};
getTodo: {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The items; exists is false when the default branch has no TODO.md. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Todo"];
};
};
404: components["responses"]["Error"];
};
};
startTodoItem: {
parameters: {
query?: never;
header?: never;
path: {
projectId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TodoStart"];
};
};
responses: {
/** @description The new task. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTask: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The task. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
404: components["responses"]["Error"];
};
};
getTaskWorkflow: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The frozen workflow. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TaskWorkflow"];
};
};
404: components["responses"]["Error"];
};
};
getUnmerged: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The unmerged changes. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Unmerged"];
};
};
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getCoAuthors: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The co-authors. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Participant"][];
};
};
404: components["responses"]["Error"];
};
};
mergeTask: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": {
/** @description The squash commit's title: one line, at most 72 characters. */
merge_title: string;
};
};
};
responses: {
/** @description The merge was started or held. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
mergeIn: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The merge turn was started. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
discardTask: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The discarded task. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
listTaskEvents: {
parameters: {
query?: {
after?: number;
limit?: number;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Up to limit events (default 500). */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Event"][];
};
};
404: components["responses"]["Error"];
};
};
getTaskChanges: {
parameters: {
query?: {
/** @description A commit to compare with instead of the merge-base, such as a user.message event's head. Not allowed with snapshot. */
since?: string;
/** @description A snapshot's n: show the task as it was in that snapshot rather than the live worktree. */
snapshot?: number;
/** @description With snapshot: compare with the previous snapshot (the snapshot commit's parent for the first one). */
step?: boolean;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Per-file stats. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TaskChanges"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTaskImage: {
parameters: {
query: {
path: string;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The file's bytes. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"image/png": string;
"image/jpeg": string;
"image/gif": string;
"image/webp": string;
"image/svg+xml": string;
};
};
400: components["responses"]["Error"];
403: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTaskDiff: {
parameters: {
query: {
base: string;
tree: string;
path: string;
old_path?: string;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The patch. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["FileDiff"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTaskDir: {
parameters: {
query?: {
/** @description Slash-separated, relative to the worktree root; empty or absent for the root. */
path?: string;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The directory's entries. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["DirListing"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTaskFile: {
parameters: {
query: {
/** @description Slash-separated, relative to the worktree root. */
path: string;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The file. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["FileContent"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getTaskTerminal: {
parameters: {
query: {
cols: number;
rows: number;
};
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Switched to the WebSocket protocol. */
101: {
headers: {
[name: string]: unknown;
};
content?: never;
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
listPreviews: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The previews. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Preview"][];
};
};
404: components["responses"]["Error"];
};
};
listSnapshots: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The snapshots. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Snapshot"][];
};
};
404: components["responses"]["Error"];
};
};
listReviews: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The reviews. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Review"][];
};
};
404: components["responses"]["Error"];
};
};
forkSnapshot: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
n: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The new task. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Task"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
listSessions: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The task's agent sessions, oldest first. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"][];
};
};
404: components["responses"]["Error"];
};
};
createSession: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SessionCreate"];
};
};
responses: {
/** @description The new session. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
getSession: {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The session. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
404: components["responses"]["Error"];
};
};
sendMessage: {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["MessageCreate"];
};
};
responses: {
/** @description The turn has started. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
compactSession: {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The handoff turn was started. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
interruptSession: {
parameters: {
query?: never;
header?: never;
path: {
sessionId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The interrupt was delivered. */
202: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AgentSession"];
};
};
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
uploadBlob: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"image/png": string;
"image/jpeg": string;
"image/gif": string;
"image/webp": string;
};
};
responses: {
/** @description The stored blob. */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Blob"];
};
};
400: components["responses"]["Error"];
413: components["responses"]["Error"];
};
};
getBlob: {
parameters: {
query?: never;
header?: never;
path: {
blobId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The blob's bytes, with its content type. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"image/png": string;
"image/jpeg": string;
"image/gif": string;
"image/webp": string;
};
};
404: components["responses"]["Error"];
};
};
listInbox: {
parameters: {
query?: {
project_id?: string;
task_id?: string;
state?: components["schemas"]["InboxState"];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Matching items with their responses. Defaults to open items. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InboxItem"][];
};
};
};
};
getInboxItem: {
parameters: {
query?: never;
header?: never;
path: {
itemId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The item with its responses. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InboxItem"];
};
};
404: components["responses"]["Error"];
};
};
respondInbox: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["InboxRespond"];
};
};
responses: {
/** @description The updated items. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InboxItem"][];
};
};
400: components["responses"]["Error"];
404: components["responses"]["Error"];
409: components["responses"]["Error"];
};
};
streamEvents: {
parameters: {
query?: {
after?: number;
task_id?: string;
lead?: boolean;
};
header?: {
"Last-Event-ID"?: number;
};
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Event stream. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"text/event-stream": string;
};
};
404: components["responses"]["Error"];
};
};
getStatus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Server health and usage. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Status"];
};
};
};
};
listWorkflows: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Every workflow's name and description, by name. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkflowSummary"][];
};
};
};
};
getWorkflow: {
parameters: {
query?: never;
header?: never;
path: {
name: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The workflow's file: its WorkflowDefinition as YAML, as an attachment named after it. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/yaml": string;
};
};
404: components["responses"]["Error"];
};
};
putWorkflow: {
parameters: {
query?: never;
header?: never;
path: {
name: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/yaml": string;
};
};
responses: {
/** @description The stored workflow. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkflowSummary"];
};
};
400: components["responses"]["Error"];
};
};
deleteWorkflow: {
parameters: {
query?: never;
header?: never;
path: {
name: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Deleted. Tasks that froze it keep their copy. */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
404: components["responses"]["Error"];
};
};
}