Mobile · Sessions
Session endpoints shaped for the mobile app: list and create, send a message, stream updates, answer permissions and questions, read diffs and todos, and teleport a session between hosts.
Send these requests to your own running server. Values stay in this browser.
How this works
Start a server with nikcli serve --hostname 127.0.0.1 --port 4096. Requests go
straight from this page to that address — the browser allows it because loopback counts as a
secure origin, and the server allows it because nikcli-ai.dev is in its CORS
allowlist.
To try things without touching your real sessions or config, start the server with
NIKCLI_TEST_HOME pointed at a throwaway directory — see
the guided tour.
Operations
21 endpoints, generated from the
server's own OpenAPI document. Every path also accepts the
directory and workspace query parameters that select which instance
handles the request.
Session
mobile.session.list | Name | In | Type | Required |
|---|---|---|---|
| limit | query | string | null | optional |
| search | query | string | null | optional |
| directory | query | string | optional |
| workspace | query | string | optional |
({ info: Session_1 status?: SessionStatus | null })[]
Example response from schema
[
{
"info": {
"id": "",
"slug": "",
"projectID": "",
"directory": "",
"parentID": "",
"workspaceID": "",
"summary": {
"additions": null,
"deletions": null,
"files": null,
"diffs": null
},
"share": {
"url": null
},
"github": {
"owner": null,
"repo": null,
"fullName": null,
"baseBranch": null,
"headBranch": null,
"repositoryDirectory": null,
"cloneUrl": null,
"htmlUrl": null,
"private": null,
"worktree": null,
"pullRequest": null,
"lastCommitSha": null,
"publishedAt": null,
"publishError": null
},
"worktree": {
"name": null,
"branch": null,
"directory": null,
"repositoryDirectory": null,
"cleanedAt": null
},
"mobile": {
"platforms": null,
"primaryPlatform": null,
"method": null,
"detectedAt": null,
"buildStatus": null,
"lastBuildAt": null,
"artifacts": null
},
"title": "",
"activeCommand": "",
"version": "",
"time": {
"created": null,
"updated": null,
"compacting": null,
"archived": null
},
"permission": [],
"skills": [],
"disabledInstructions": [],
"disabledTools": {},
"revert": {
"messageID": null,
"partID": null,
"snapshot": null,
"diff": null
},
"lastModel": {
"providerID": null,
"modelID": null
}
},
"status": {
"type": "idle"
}
}
] Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.list({
...
}) Try it
mobile.session.create | Name | In | Type | Required |
|---|---|---|---|
| directory | query | string | optional |
| workspace | query | string | optional |
{ parentID?: string | null title?: string | null permission?: PermissionRuleset_2 | null github?: SessionGithub_2 | null executionTarget?: MobileExecutionTarget_1 | null }
{ id: string slug: string projectID: string directory: string parentID?: string workspaceID?: string summary?: { additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" files: | number | "Infinity" | "-Infinity" | "NaN" diffs?: FileDiff_2[] } share?: { url: string } github?: SessionGithub_3 worktree?: SessionWorktree_6 mobile?: SessionMobile_2 title: string activeCommand?: string version: string time: { created: | number | "Infinity" | "-Infinity" | "NaN" updated: | number | "Infinity" | "-Infinity" | "NaN" compacting?: | number | "Infinity" | "-Infinity" | "NaN" archived?: | number | "Infinity" | "-Infinity" | "NaN" } permission?: PermissionRuleset_3 skills?: string[] disabledInstructions?: string[] disabledTools?: { [key: string]: boolean } revert?: { messageID: string partID?: string snapshot?: string diff?: string } lastModel?: { providerID: string modelID: string } }
Example response from schema
{
"id": "",
"slug": "",
"projectID": "",
"directory": "",
"parentID": "",
"workspaceID": "",
"summary": {
"additions": 0,
"deletions": 0,
"files": 0,
"diffs": [
{
"file": null,
"patch": null,
"additions": null,
"deletions": null,
"status": null,
"before": null,
"after": null
}
]
},
"share": {
"url": ""
},
"github": {
"owner": "",
"repo": "",
"fullName": "",
"baseBranch": "",
"headBranch": "",
"repositoryDirectory": "",
"cloneUrl": "",
"htmlUrl": "",
"private": false,
"worktree": {
"name": "",
"branch": "",
"directory": "",
"repositoryDirectory": "",
"cleanedAt": 0
},
"pullRequest": {
"number": 0,
"url": "",
"title": ""
},
"lastCommitSha": "",
"publishedAt": 0,
"publishError": ""
},
"worktree": {
"name": "",
"branch": "",
"directory": "",
"repositoryDirectory": "",
"cleanedAt": 0
},
"mobile": {
"platforms": [
"ios"
],
"primaryPlatform": "",
"method": "",
"detectedAt": 0,
"buildStatus": "unknown",
"lastBuildAt": 0,
"artifacts": [
{
"platform": null,
"path": null,
"size": null,
"createdAt": null
}
]
},
"title": "",
"activeCommand": "",
"version": "",
"time": {
"created": 0,
"updated": 0,
"compacting": 0,
"archived": 0
},
"permission": [
{
"permission": "",
"pattern": "",
"action": "allow"
}
],
"skills": [
""
],
"disabledInstructions": [
""
],
"disabledTools": {},
"revert": {
"messageID": "",
"partID": "",
"snapshot": "",
"diff": ""
},
"lastModel": {
"providerID": "",
"modelID": ""
}
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.create({
...
}) Try it
{SessionID}
mobile.session.detail | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ info: Session_3 status?: SessionStatus_1 | null messages: ({ info: Message parts: Part[] })[] artifacts: MobileArtifact[] permissions: PermissionRequest[] questions: QuestionRequest[] }
Example response from schema
{
"info": {
"id": "",
"slug": "",
"projectID": "",
"directory": "",
"parentID": "",
"workspaceID": "",
"summary": {
"additions": 0,
"deletions": 0,
"files": 0,
"diffs": []
},
"share": {
"url": ""
},
"github": {
"owner": "",
"repo": "",
"fullName": "",
"baseBranch": "",
"headBranch": "",
"repositoryDirectory": "",
"cloneUrl": "",
"htmlUrl": "",
"private": false,
"worktree": {
"name": null,
"branch": null,
"directory": null,
"repositoryDirectory": null,
"cleanedAt": null
},
"pullRequest": {
"number": null,
"url": null,
"title": null
},
"lastCommitSha": "",
"publishedAt": 0,
"publishError": ""
},
"worktree": {
"name": "",
"branch": "",
"directory": "",
"repositoryDirectory": "",
"cleanedAt": 0
},
"mobile": {
"platforms": [],
"primaryPlatform": "",
"method": "",
"detectedAt": 0,
"buildStatus": "unknown",
"lastBuildAt": 0,
"artifacts": []
},
"title": "",
"activeCommand": "",
"version": "",
"time": {
"created": 0,
"updated": 0,
"compacting": 0,
"archived": 0
},
"permission": [
{
"permission": null,
"pattern": null,
"action": null
}
],
"skills": [
""
],
"disabledInstructions": [
""
],
"disabledTools": {},
"revert": {
"messageID": "",
"partID": "",
"snapshot": "",
"diff": ""
},
"lastModel": {
"providerID": "",
"modelID": ""
}
},
"status": {
"type": "idle"
},
"messages": [
{
"info": {
"id": null,
"sessionID": null,
"role": null,
"time": null,
"format": null,
"summary": null,
"agent": null,
"model": null,
"system": null,
"tools": null,
"variant": null
},
"parts": []
}
],
"artifacts": [
{
"id": "",
"title": "",
"description": "",
"filename": "",
"contentType": "",
"kind": "html",
"url": "",
"viewerUrl": "",
"previewUrl": "",
"version": 0,
"sessionID": "",
"size": 0,
"time": {
"created": null,
"updated": null
}
}
],
"permissions": [
{
"id": "",
"sessionID": "",
"permission": "",
"patterns": [],
"metadata": {},
"always": [],
"tool": {
"messageID": null,
"callID": null
}
}
],
"questions": [
{
"id": "",
"sessionID": "",
"questions": [],
"tool": {
"messageID": null,
"callID": null
}
}
]
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.detail({
...
}) Try it
mobile.session.delete | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ success: true }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.delete({
...
}) Try it
This changes or removes server state, against whatever base URL is set above.
mobile.session.diff | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| messageID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
({ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string })[]
Example response from schema
[
{
"file": "",
"patch": "",
"additions": 0,
"deletions": 0,
"status": "added",
"before": "",
"after": ""
}
] Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.diff({
...
}) Try it
mobile.session.command.list | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
({ name: string description?: string | null agent?: string | null model?: string | null mcp?: boolean | null skill?: boolean | null subtask?: boolean | null hints: string[] })[]
Example response from schema
[
{
"name": "",
"description": "",
"agent": "",
"model": "",
"mcp": false,
"skill": false,
"subtask": false,
"hints": [
""
]
}
] Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.command.list({
...
}) Try it
mobile.session.command | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ command: string arguments?: string | null agent?: string | null model?: | { providerID: string modelID: string } | null variant?: string | null }
{ info: UserMessage_1 | AssistantMessage_1 parts: ( | TextPart_1 | SubtaskPart_1 | ReasoningPart_1 | FilePart_2 | ToolPart_1 | StepStartPart_1 | StepFinishPart_1 | SnapshotPart_1 | PatchPart_1 | AgentPart_1 | RetryPart_1 | CompactionPart_1)[] }
{ name: "BadRequest" error: string }
Example response from schema
{
"info": {
"id": "",
"sessionID": "",
"role": "user",
"time": {
"created": 0
},
"format": {
"type": "text"
},
"summary": {
"title": "",
"body": "",
"diffs": []
},
"agent": "",
"model": {
"providerID": "",
"modelID": ""
},
"system": "",
"tools": {},
"variant": ""
},
"parts": [
{
"id": "",
"sessionID": "",
"messageID": "",
"type": "text",
"text": "",
"synthetic": false,
"ignored": false,
"time": {
"start": null,
"end": null
},
"metadata": {}
}
]
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.command({
...
}) Try it
mobile.session.message | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ messageID?: string | null delivery?: "steer" | "queue" | null model?: | { providerID: string modelID: string } | null agent?: string | null noReply?: boolean | null tools?: | { [key: string]: boolean } | null format?: OutputFormat_2 | null system?: string | null variant?: string | null parts: (TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput)[] parentSessionID?: string | null }
{ accepted: true }
{ name: "BadRequest" error: string }
Example response from schema
{
"accepted": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.message({
...
}) Try it
mobile.session.abort | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ success: true }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.abort({
...
}) Try it
mobile.permission.respond | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| permissionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ response: "once" | "always" | "reject" }
{ success: true }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.permission.respond({
...
}) Try it
mobile.question.respond | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| requestID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ answers: string[][] }
{ success: true }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.question.respond({
...
}) Try it
mobile.question.reject | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| requestID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ success: true }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.question.reject({
...
}) Try it
This changes or removes server state, against whatever base URL is set above.
mobile.github.session.publish | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ title?: string | null body?: string | null commitMessage?: string | null }
{ commitSha: string branch: string pullRequest: { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } }
{ name: "BadRequest" error: string }
{ name: "Unauthorized" error: string }
Example response from schema
{
"commitSha": "",
"branch": "",
"pullRequest": {
"number": 0,
"url": "",
"title": ""
}
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.github.session.publish({
...
}) Try it
mobile.github.session.cleanup | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ success: true }
{ name: "BadRequest" error: string }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.github.session.cleanup({
...
}) Try it
mobile.session.stream | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ id: string | null event: string data: string }
Example response from schema
{
"id": "",
"event": "",
"data": ""
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.stream({
...
}) Try it
mobile.session.rename | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ title: string }
{ success: true }
{ name: "NotFoundError" error: string }
Example response from schema
{
"success": true
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.rename({
...
}) Try it
mobile.session.todo | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ todos: ({ // Brief description of the task content: string // Current status of the task: pending, in_progress, completed, cancelled status: string // Priority level of the task: high, medium, low priority: string // Unique identifier for the todo item id: string })[] }
Example response from schema
{
"todos": [
{
"content": "",
"status": "",
"priority": "",
"id": ""
}
]
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.todo({
...
}) Try it
mobile.session.teleport.out | Name | In | Type | Required |
|---|---|---|---|
| sessionID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ url: string token: string content?: boolean | null includeGit?: boolean | null }
{ sessionID: string title?: string | null messageCount: | number | "Infinity" | "-Infinity" | "NaN" directory?: string | null workspace: boolean }
{ name: "BadRequest" error: string }
{ name: "NotFoundError" error: string }
Example response from schema
{
"sessionID": "",
"title": "",
"messageCount": 0,
"directory": "",
"workspace": false
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.teleport.out({
...
}) Try it
Upload
mobile.session.teleport.upload.begin | Name | In | Type | Required |
|---|---|---|---|
| directory | query | string | optional |
| workspace | query | string | optional |
{ uploadID: string }
Example response from schema
{
"uploadID": ""
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.teleport.upload.begin({
...
}) Try it
mobile.session.teleport.upload.chunk | Name | In | Type | Required |
|---|---|---|---|
| uploadID | path | string | required |
| directory | query | string | optional |
| workspace | query | string | optional |
{ ok: boolean }
Example response from schema
{
"ok": false
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.teleport.upload.chunk({
...
}) Try it
Teleport
mobile.session.teleport | Name | In | Type | Required |
|---|---|---|---|
| directory | query | string | optional |
| workspace | query | string | optional |
{ title?: string | null name?: string | null origin?: string | null permission?: PermissionRuleset_5 | null messages: ({ info: Message_2 parts: Part_2[] })[] uploadID?: string | null }
{ sessionID: string title?: string | null messageCount: | number | "Infinity" | "-Infinity" | "NaN" directory?: string | null workspace: boolean }
{ name: "BadRequest" error: string }
Example response from schema
{
"sessionID": "",
"title": "",
"messageCount": 0,
"directory": "",
"workspace": false
} Generated from the response schema — field values are placeholders, the shape is real.
SDK example
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"
const client = createNikcliClient()
await client.mobile.session.teleport({
...
}) Try it
Schemas
The 217 schemas reachable from these endpoints. Each is shown one level
deep; nested types link to their own entry below.
Names ending in _2, _3 and so on are the OpenAPI emitter
disambiguating same-named schemas declared by different HttpApi groups — they are distinct
shapes, not duplicates.
{ id: string sessionID: string messageID: string type: "agent" name: string source?: | { value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } | null }
{ id: string sessionID: string messageID: string type: "agent" name: string source?: { value: string start: number end: number } }
{ id: string sessionID: string messageID: string type: "agent" name: string source?: | { value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } | null }
{ id?: string | null type: "agent" name: string source?: | { value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } | null }
{ name: "APIError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null isRetryable: boolean responseHeaders?: | { [key: string]: string } | null responseBody?: string | null metadata?: | { [key: string]: string } | null classification?: "payload-too-large" | null } }
{ name: "APIError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null isRetryable: boolean responseHeaders?: | { [key: string]: string } | null responseBody?: string | null metadata?: | { [key: string]: string } | null classification?: "payload-too-large" | null } }
{ name: "APIError" data: { message: string statusCode?: | number | "Infinity" | "-Infinity" | "NaN" isRetryable: boolean responseHeaders?: { [key: string]: string } responseBody?: string metadata?: { [key: string]: string } classification?: "payload-too-large" } }
{ name: "APIError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null isRetryable: boolean responseHeaders?: | { [key: string]: string } | null responseBody?: string | null metadata?: | { [key: string]: string } | null classification?: "payload-too-large" | null } }
{ name: "APIError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null isRetryable: boolean responseHeaders?: | { [key: string]: string } | null responseBody?: string | null metadata?: | { [key: string]: string } | null classification?: "payload-too-large" | null } }
{ id: string sessionID: string role: "assistant" time: { created: | number | "Infinity" | "-Infinity" | "NaN" completed?: | | number | "Infinity" | "-Infinity" | "NaN" | null } error?: | | ProviderAuthError | UnknownError | MessageOutputLengthError | MessageContextOverflowError | MessageAbortedError | StructuredOutputError | APIError | null parentID: string modelID: string providerID: string mode: string agent: string path: { cwd: string root: string } summary?: boolean | null cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | | number | "Infinity" | "-Infinity" | "NaN" | null input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } structured?: unknown | null finish?: string | null }
{ id: string sessionID: string role: "assistant" time: { created: | number | "Infinity" | "-Infinity" | "NaN" completed?: | number | "Infinity" | "-Infinity" | "NaN" } error?: | ProviderAuthError_1 | UnknownError_1 | MessageOutputLengthError_1 | MessageContextOverflowError_1 | MessageAbortedError_1 | StructuredOutputError_1 | APIError_2 parentID: string modelID: string providerID: string mode: string agent: string path: { cwd: string root: string } summary?: boolean cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | number | "Infinity" | "-Infinity" | "NaN" input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } structured?: unknown finish?: string }
{ id: string sessionID: string role: "assistant" time: { created: | number | "Infinity" | "-Infinity" | "NaN" completed?: | | number | "Infinity" | "-Infinity" | "NaN" | null } error?: | | ProviderAuthError_2 | UnknownError_2 | MessageOutputLengthError_2 | MessageContextOverflowError_2 | MessageAbortedError_2 | StructuredOutputError_2 | APIError_3 | null parentID: string modelID: string providerID: string mode: string agent: string path: { cwd: string root: string } summary?: boolean | null cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | | number | "Infinity" | "-Infinity" | "NaN" | null input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } structured?: unknown | null finish?: string | null }
{ id: string sessionID: string messageID: string type: "compaction" auto: boolean }
{ id: string sessionID: string messageID: string type: "compaction" auto: boolean }
{ id: string sessionID: string messageID: string type: "compaction" auto: boolean }
{ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string }
{ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string }
{ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string }
{ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string }
{ file: string patch: string additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" status?: | "added" | "deleted" | "modified" | null before: string after: string }
{ id: string sessionID: string messageID: string type: "file" mime: string filename?: string | null url: string source?: FilePartSource | null }
{ id: string sessionID: string messageID: string type: "file" mime: string filename?: string | null url: string source?: FilePartSource_1 | null }
{ id: string sessionID: string messageID: string type: "file" mime: string filename?: string url: string source?: FilePartSource_2 }
{ id: string sessionID: string messageID: string type: "file" mime: string filename?: string | null url: string source?: FilePartSource_4 | null }
{ id: string sessionID: string messageID: string type: "file" mime: string filename?: string | null url: string source?: FilePartSource_5 | null }
{ id?: string | null type: "file" mime: string filename?: string | null url: string source?: FilePartSource_3 | null }
FileSource | SymbolSource | ResourceSource
FileSource_1 | SymbolSource_1 | ResourceSource_1
FileSource_2 | SymbolSource_2 | ResourceSource_2
FileSource_3 | SymbolSource_3 | ResourceSource_3
FileSource_4 | SymbolSource_4 | ResourceSource_4
FileSource_5 | SymbolSource_5 | ResourceSource_5
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: number end: number }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ value: string start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" }
{ text: FilePartSourceText type: "file" path: string }
{ text: FilePartSourceText_3 type: "file" path: string }
{ text: FilePartSourceText_6 type: "file" path: string }
{ text: FilePartSourceText_7 type: "file" path: string }
{ text: FilePartSourceText_10 type: "file" path: string }
{ text: FilePartSourceText_13 type: "file" path: string }
{ [key: string]: unknown }
{ [key: string]: unknown }
{ [key: string]: unknown }
{ [key: string]: unknown }
UserMessage | AssistantMessage
UserMessage_1 | AssistantMessage_1
UserMessage_2 | AssistantMessage_2
{ name: "MessageAbortedError" data: { message: string } }
{ name: "MessageAbortedError" data: { message: string } }
{ name: "MessageAbortedError" data: { message: string } }
{ name: "MessageContextOverflowError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null responseBody?: string | null } }
{ name: "MessageContextOverflowError" data: { message: string statusCode?: | number | "Infinity" | "-Infinity" | "NaN" responseBody?: string } }
{ name: "MessageContextOverflowError" data: { message: string statusCode?: | | number | "Infinity" | "-Infinity" | "NaN" | null responseBody?: string | null } }
{ name: "MessageOutputLengthError" data: { [key: string]: unknown } | unknown[] }
{ name: "MessageOutputLengthError" data: { [key: string]: unknown } | unknown[] }
{ name: "MessageOutputLengthError" data: { [key: string]: unknown } | unknown[] }
{ accepted: true }
{ id: string title: string description?: string | null filename: string contentType: string kind: | "html" | "markdown" | "image" | "video" | "text" url: string viewerUrl: string previewUrl: string version: | number | "Infinity" | "-Infinity" | "NaN" sessionID: string size: | number | "Infinity" | "-Infinity" | "NaN" time: { created: | number | "Infinity" | "-Infinity" | "NaN" updated: | number | "Infinity" | "-Infinity" | "NaN" } }
{ name: "BadRequest" error: string }
{ name: string description?: string | null agent?: string | null model?: string | null mcp?: boolean | null skill?: boolean | null subtask?: boolean | null hints: string[] }
"local" | "container"
{ title?: string | null body?: string | null commitMessage?: string | null }
{ commitSha: string branch: string pullRequest: { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } }
{ name: "NotFoundError" error: string }
{ response: "once" | "always" | "reject" }
{ command: string arguments?: string | null agent?: string | null model?: | { providerID: string modelID: string } | null variant?: string | null }
{ parentID?: string | null title?: string | null permission?: PermissionRuleset_2 | null github?: SessionGithub_2 | null executionTarget?: MobileExecutionTarget_1 | null }
{ info: Session_3 status?: SessionStatus_1 | null messages: ({ info: Message parts: Part[] })[] artifacts: MobileArtifact[] permissions: PermissionRequest[] questions: QuestionRequest[] }
{ messageID?: string | null delivery?: "steer" | "queue" | null model?: | { providerID: string modelID: string } | null agent?: string | null noReply?: boolean | null tools?: | { [key: string]: boolean } | null format?: OutputFormat_2 | null system?: string | null variant?: string | null parts: (TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput)[] parentSessionID?: string | null }
{ info: Session_1 status?: SessionStatus | null }
{ success: true }
{ title?: string | null name?: string | null origin?: string | null permission?: PermissionRuleset_5 | null messages: ({ info: Message_2 parts: Part_2[] })[] uploadID?: string | null }
{ url: string token: string content?: boolean | null includeGit?: boolean | null }
{ sessionID: string title?: string | null messageCount: | number | "Infinity" | "-Infinity" | "NaN" directory?: string | null workspace: boolean }
OutputFormatText | OutputFormatJsonSchema
OutputFormatText_1 | OutputFormatJsonSchema_1
OutputFormatText_2 | OutputFormatJsonSchema_2
OutputFormatText_3 | OutputFormatJsonSchema_3
{ type: "json_schema" schema: JSONSchema retryCount?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ type: "json_schema" schema: JSONSchema_1 retryCount: number }
{ type: "json_schema" schema: JSONSchema_2 retryCount?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ type: "json_schema" schema: JSONSchema_3 retryCount?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ type: "text" }
{ type: "text" }
{ type: "text" }
{ type: "text" }
| TextPart | SubtaskPart | ReasoningPart | FilePart | ToolPart | StepStartPart | StepFinishPart | SnapshotPart | PatchPart | AgentPart | RetryPart | CompactionPart
| TextPart_1 | SubtaskPart_1 | ReasoningPart_1 | FilePart_2 | ToolPart_1 | StepStartPart_1 | StepFinishPart_1 | SnapshotPart_1 | PatchPart_1 | AgentPart_1 | RetryPart_1 | CompactionPart_1
| TextPart_2 | SubtaskPart_2 | ReasoningPart_2 | FilePart_3 | ToolPart_2 | StepStartPart_2 | StepFinishPart_2 | SnapshotPart_2 | PatchPart_2 | AgentPart_2 | RetryPart_2 | CompactionPart_2
{ id: string sessionID: string messageID: string type: "patch" hash: string files: string[] }
{ id: string sessionID: string messageID: string type: "patch" hash: string files: string[] }
{ id: string sessionID: string messageID: string type: "patch" hash: string files: string[] }
"allow" | "deny" | "ask"
"allow" | "deny" | "ask"
"allow" | "deny" | "ask"
"allow" | "deny" | "ask"
"allow" | "deny" | "ask"
{ id: string sessionID: string permission: string patterns: string[] metadata: { [key: string]: unknown } always: string[] tool?: | { messageID: string callID: string } | null }
{ permission: string pattern: string action: PermissionAction_1 }
{ permission: string pattern: string action: PermissionAction_2 }
{ permission: string pattern: string action: PermissionAction_3 }
{ permission: string pattern: string action: PermissionAction_4 }
{ permission: string pattern: string action: PermissionAction_5 }
PermissionRule_1[]
PermissionRule_2[]
PermissionRule_3[]
PermissionRule_4[]
PermissionRule_5[]
{ name: "ProviderAuthError" data: { providerID: string message: string } }
{ name: "ProviderAuthError" data: { providerID: string message: string } }
{ name: "ProviderAuthError" data: { providerID: string message: string } }
{ question: string header: string options: QuestionOption[] multiple?: boolean | null custom?: boolean | null }
{ label: string description: string }
{ id: string sessionID: string questions: QuestionInfo[] tool?: | { messageID: string callID: string } | null }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ start: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } end: { line: | number | "Infinity" | "-Infinity" | "NaN" character: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string sessionID: string messageID: string type: "reasoning" text: string metadata?: { [key: string]: unknown } | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | | number | "Infinity" | "-Infinity" | "NaN" | null } }
{ id: string sessionID: string messageID: string type: "reasoning" text: string metadata?: { [key: string]: unknown } time: { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string sessionID: string messageID: string type: "reasoning" text: string metadata?: { [key: string]: unknown } | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | | number | "Infinity" | "-Infinity" | "NaN" | null } }
{ text: FilePartSourceText_2 type: "resource" clientName: string uri: string }
{ text: FilePartSourceText_5 type: "resource" clientName: string uri: string }
{ text: FilePartSourceText_6 type: "resource" clientName: string uri: string }
{ text: FilePartSourceText_9 type: "resource" clientName: string uri: string }
{ text: FilePartSourceText_12 type: "resource" clientName: string uri: string }
{ text: FilePartSourceText_15 type: "resource" clientName: string uri: string }
{ id: string sessionID: string messageID: string type: "retry" attempt: | number | "Infinity" | "-Infinity" | "NaN" error: APIError_1 time: { created: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string sessionID: string messageID: string type: "retry" attempt: | number | "Infinity" | "-Infinity" | "NaN" error: APIError_2 time: { created: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string sessionID: string messageID: string type: "retry" attempt: | number | "Infinity" | "-Infinity" | "NaN" error: APIError_4 time: { created: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string slug: string projectID: string directory: string parentID?: string | null workspaceID?: string | null summary?: | { additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" files: | number | "Infinity" | "-Infinity" | "NaN" diffs?: FileDiff_1[] | null } | null share?: | { url: string } | null github?: SessionGithub_1 | null worktree?: SessionWorktree_3 | null mobile?: SessionMobile_1 | null title: string activeCommand?: string | null version: string time: { created: | number | "Infinity" | "-Infinity" | "NaN" updated: | number | "Infinity" | "-Infinity" | "NaN" compacting?: | | number | "Infinity" | "-Infinity" | "NaN" | null archived?: | | number | "Infinity" | "-Infinity" | "NaN" | null } permission?: PermissionRuleset_1 | null skills?: string[] | null disabledInstructions?: string[] | null disabledTools?: | { [key: string]: boolean } | null revert?: | { messageID: string partID?: string | null snapshot?: string | null diff?: string | null } | null lastModel?: | { providerID: string modelID: string } | null }
{ id: string slug: string projectID: string directory: string parentID?: string workspaceID?: string summary?: { additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" files: | number | "Infinity" | "-Infinity" | "NaN" diffs?: FileDiff_2[] } share?: { url: string } github?: SessionGithub_3 worktree?: SessionWorktree_6 mobile?: SessionMobile_2 title: string activeCommand?: string version: string time: { created: | number | "Infinity" | "-Infinity" | "NaN" updated: | number | "Infinity" | "-Infinity" | "NaN" compacting?: | number | "Infinity" | "-Infinity" | "NaN" archived?: | number | "Infinity" | "-Infinity" | "NaN" } permission?: PermissionRuleset_3 skills?: string[] disabledInstructions?: string[] disabledTools?: { [key: string]: boolean } revert?: { messageID: string partID?: string snapshot?: string diff?: string } lastModel?: { providerID: string modelID: string } }
{ id: string slug: string projectID: string directory: string parentID?: string | null workspaceID?: string | null summary?: | { additions: | number | "Infinity" | "-Infinity" | "NaN" deletions: | number | "Infinity" | "-Infinity" | "NaN" files: | number | "Infinity" | "-Infinity" | "NaN" diffs?: FileDiff_3[] | null } | null share?: | { url: string } | null github?: SessionGithub_4 | null worktree?: SessionWorktree_8 | null mobile?: SessionMobile_3 | null title: string activeCommand?: string | null version: string time: { created: | number | "Infinity" | "-Infinity" | "NaN" updated: | number | "Infinity" | "-Infinity" | "NaN" compacting?: | | number | "Infinity" | "-Infinity" | "NaN" | null archived?: | | number | "Infinity" | "-Infinity" | "NaN" | null } permission?: PermissionRuleset_4 | null skills?: string[] | null disabledInstructions?: string[] | null disabledTools?: | { [key: string]: boolean } | null revert?: | { messageID: string partID?: string | null snapshot?: string | null diff?: string | null } | null lastModel?: | { providerID: string modelID: string } | null }
{ owner: string repo: string fullName: string baseBranch: string headBranch: string repositoryDirectory?: string | null cloneUrl?: string | null htmlUrl?: string | null private?: boolean | null worktree: SessionWorktree_2 pullRequest?: | { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } | null lastCommitSha?: string | null publishedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null publishError?: string | null }
{ owner: string repo: string fullName: string baseBranch: string headBranch: string repositoryDirectory?: string | null cloneUrl?: string | null htmlUrl?: string | null private?: boolean | null worktree: SessionWorktree_4 pullRequest?: | { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } | null lastCommitSha?: string | null publishedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null publishError?: string | null }
{ owner: string repo: string fullName: string baseBranch: string headBranch: string repositoryDirectory?: string cloneUrl?: string htmlUrl?: string private?: boolean worktree: SessionWorktree_5 pullRequest?: { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } lastCommitSha?: string publishedAt?: | number | "Infinity" | "-Infinity" | "NaN" publishError?: string }
{ owner: string repo: string fullName: string baseBranch: string headBranch: string repositoryDirectory?: string | null cloneUrl?: string | null htmlUrl?: string | null private?: boolean | null worktree: SessionWorktree_7 pullRequest?: | { number: | number | "Infinity" | "-Infinity" | "NaN" url: string title: string } | null lastCommitSha?: string | null publishedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null publishError?: string | null }
{ platforms: ( | "ios" | "android" | "expo" | "flutter" | "react-native")[] primaryPlatform: string method: string detectedAt: | number | "Infinity" | "-Infinity" | "NaN" buildStatus?: | | "unknown" | "building" | "succeeded" | "failed" | null lastBuildAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null artifacts?: | ({ platform: string path: string size?: | | number | "Infinity" | "-Infinity" | "NaN" | null createdAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null })[] | null }
{ platforms: ( | "ios" | "android" | "expo" | "flutter" | "react-native")[] primaryPlatform: string method: string detectedAt: | number | "Infinity" | "-Infinity" | "NaN" buildStatus?: | "unknown" | "building" | "succeeded" | "failed" lastBuildAt?: | number | "Infinity" | "-Infinity" | "NaN" artifacts?: ({ platform: string path: string size?: | number | "Infinity" | "-Infinity" | "NaN" createdAt?: | number | "Infinity" | "-Infinity" | "NaN" })[] }
{ platforms: ( | "ios" | "android" | "expo" | "flutter" | "react-native")[] primaryPlatform: string method: string detectedAt: | number | "Infinity" | "-Infinity" | "NaN" buildStatus?: | | "unknown" | "building" | "succeeded" | "failed" | null lastBuildAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null artifacts?: | ({ platform: string path: string size?: | | number | "Infinity" | "-Infinity" | "NaN" | null createdAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null })[] | null }
| { type: "idle" } | { type: "retry" attempt: | number | "Infinity" | "-Infinity" | "NaN" message: string next: | number | "Infinity" | "-Infinity" | "NaN" } | { type: "busy" since: | number | "Infinity" | "-Infinity" | "NaN" } | { type: "busy" }
| { type: "idle" } | { type: "retry" attempt: | number | "Infinity" | "-Infinity" | "NaN" message: string next: | number | "Infinity" | "-Infinity" | "NaN" } | { type: "busy" since: | number | "Infinity" | "-Infinity" | "NaN" } | { type: "busy" }
{ name: string branch: string directory: string repositoryDirectory?: string | null cleanedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ name: string branch: string directory: string repositoryDirectory?: string | null cleanedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ name: string branch: string directory: string repositoryDirectory?: string | null cleanedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ name: string branch: string directory: string repositoryDirectory?: string cleanedAt?: | number | "Infinity" | "-Infinity" | "NaN" }
{ name: string branch: string directory: string repositoryDirectory?: string cleanedAt?: | number | "Infinity" | "-Infinity" | "NaN" }
{ name: string branch: string directory: string repositoryDirectory?: string | null cleanedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ name: string branch: string directory: string repositoryDirectory?: string | null cleanedAt?: | | number | "Infinity" | "-Infinity" | "NaN" | null }
{ id: string sessionID: string messageID: string type: "snapshot" snapshot: string }
{ id: string sessionID: string messageID: string type: "snapshot" snapshot: string }
{ id: string sessionID: string messageID: string type: "snapshot" snapshot: string }
{ id: string sessionID: string messageID: string type: "step-finish" reason: string snapshot?: string | null cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | | number | "Infinity" | "-Infinity" | "NaN" | null input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } }
{ id: string sessionID: string messageID: string type: "step-finish" reason: string snapshot?: string cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | number | "Infinity" | "-Infinity" | "NaN" input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } }
{ id: string sessionID: string messageID: string type: "step-finish" reason: string snapshot?: string | null cost: | number | "Infinity" | "-Infinity" | "NaN" tokens: { total?: | | number | "Infinity" | "-Infinity" | "NaN" | null input: | number | "Infinity" | "-Infinity" | "NaN" output: | number | "Infinity" | "-Infinity" | "NaN" reasoning: | number | "Infinity" | "-Infinity" | "NaN" cache: { read: | number | "Infinity" | "-Infinity" | "NaN" write: | number | "Infinity" | "-Infinity" | "NaN" } } }
{ id: string sessionID: string messageID: string type: "step-start" snapshot?: string | null }
{ id: string sessionID: string messageID: string type: "step-start" snapshot?: string }
{ id: string sessionID: string messageID: string type: "step-start" snapshot?: string | null }
{ name: "StructuredOutputError" data: { message: string retries: | number | "Infinity" | "-Infinity" | "NaN" } }
{ name: "StructuredOutputError" data: { message: string retries: | number | "Infinity" | "-Infinity" | "NaN" } }
{ name: "StructuredOutputError" data: { message: string retries: | number | "Infinity" | "-Infinity" | "NaN" } }
{ id: string sessionID: string messageID: string type: "subtask" prompt: string description: string agent: string model?: | { providerID: string modelID: string } | null command?: string | null background?: boolean | null }
{ id: string sessionID: string messageID: string type: "subtask" prompt: string description: string agent: string model?: { providerID: string modelID: string } command?: string background?: boolean }
{ id: string sessionID: string messageID: string type: "subtask" prompt: string description: string agent: string model?: | { providerID: string modelID: string } | null command?: string | null background?: boolean | null }
{ id?: string | null type: "subtask" prompt: string description: string agent: string model?: | { providerID: string modelID: string } | null command?: string | null background?: boolean | null }
{ text: FilePartSourceText_1 type: "symbol" path: string range: Range name: string kind: | number | "Infinity" | "-Infinity" | "NaN" }
{ text: FilePartSourceText_4 type: "symbol" path: string range: Range_1 name: string kind: | number | "Infinity" | "-Infinity" | "NaN" }
{ text: FilePartSourceText_6 type: "symbol" path: string range: Range_2 name: string kind: number }
{ text: FilePartSourceText_8 type: "symbol" path: string range: Range_3 name: string kind: | number | "Infinity" | "-Infinity" | "NaN" }
{ text: FilePartSourceText_11 type: "symbol" path: string range: Range_4 name: string kind: | number | "Infinity" | "-Infinity" | "NaN" }
{ text: FilePartSourceText_14 type: "symbol" path: string range: Range_5 name: string kind: | number | "Infinity" | "-Infinity" | "NaN" }
{ id: string sessionID: string messageID: string type: "text" text: string synthetic?: boolean | null ignored?: boolean | null time?: | { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | | number | "Infinity" | "-Infinity" | "NaN" | null } | null metadata?: { [key: string]: unknown } | null }
{ id: string sessionID: string messageID: string type: "text" text: string synthetic?: boolean ignored?: boolean time?: { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | number | "Infinity" | "-Infinity" | "NaN" } metadata?: { [key: string]: unknown } }
{ id: string sessionID: string messageID: string type: "text" text: string synthetic?: boolean | null ignored?: boolean | null time?: | { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | | number | "Infinity" | "-Infinity" | "NaN" | null } | null metadata?: { [key: string]: unknown } | null }
{ id?: string | null type: "text" text: string synthetic?: boolean | null ignored?: boolean | null time?: | { start: | number | "Infinity" | "-Infinity" | "NaN" end?: | | number | "Infinity" | "-Infinity" | "NaN" | null } | null metadata?: { [key: string]: unknown } | null }
{ // Brief description of the task content: string // Current status of the task: pending, in_progress, completed, cancelled status: string // Priority level of the task: high, medium, low priority: string // Unique identifier for the todo item id: string }
{ id: string sessionID: string messageID: string type: "tool" callID: string tool: string state: ToolState metadata?: { [key: string]: unknown } | null }
{ id: string sessionID: string messageID: string type: "tool" callID: string tool: string state: ToolState_1 metadata?: { [key: string]: unknown } }
{ id: string sessionID: string messageID: string type: "tool" callID: string tool: string state: ToolState_2 metadata?: { [key: string]: unknown } | null }
| ToolStatePending | ToolStateRunning | ToolStateCompleted | ToolStateError
| ToolStatePending_1 | ToolStateRunning_1 | ToolStateCompleted_1 | ToolStateError_1
| ToolStatePending_2 | ToolStateRunning_2 | ToolStateCompleted_2 | ToolStateError_2
{ status: "completed" input: { [key: string]: unknown } output: string title: string metadata: { [key: string]: unknown } time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" compacted?: | | number | "Infinity" | "-Infinity" | "NaN" | null } attachments?: FilePart_1[] | null }
{ status: "completed" input: { [key: string]: unknown } output: string title: string metadata: { [key: string]: unknown } time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" compacted?: | number | "Infinity" | "-Infinity" | "NaN" } attachments?: FilePart_2[] }
{ status: "completed" input: { [key: string]: unknown } output: string title: string metadata: { [key: string]: unknown } time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" compacted?: | | number | "Infinity" | "-Infinity" | "NaN" | null } attachments?: FilePart_4[] | null }
{ status: "error" input: { [key: string]: unknown } error: string metadata?: { [key: string]: unknown } | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } }
{ status: "error" input: { [key: string]: unknown } error: string metadata?: { [key: string]: unknown } time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } }
{ status: "error" input: { [key: string]: unknown } error: string metadata?: { [key: string]: unknown } | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" end: | number | "Infinity" | "-Infinity" | "NaN" } }
{ status: "pending" input: { [key: string]: unknown } raw: string }
{ status: "pending" input: { [key: string]: unknown } raw: string }
{ status: "pending" input: { [key: string]: unknown } raw: string }
{ status: "running" input: { [key: string]: unknown } title?: string | null metadata?: { [key: string]: unknown } | null structured?: { [key: string]: unknown } | null content?: | ( | { type: "text" text: string } | { type: "file" data: string mime: string name?: string | null })[] | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" } }
{ status: "running" input: { [key: string]: unknown } title?: string metadata?: { [key: string]: unknown } structured?: { [key: string]: unknown } content?: ( | { type: "text" text: string } | { type: "file" data: string mime: string name?: string })[] time: { start: | number | "Infinity" | "-Infinity" | "NaN" } }
{ status: "running" input: { [key: string]: unknown } title?: string | null metadata?: { [key: string]: unknown } | null structured?: { [key: string]: unknown } | null content?: | ( | { type: "text" text: string } | { type: "file" data: string mime: string name?: string | null })[] | null time: { start: | number | "Infinity" | "-Infinity" | "NaN" } }
{ name: "UnknownError" data: { message: string } }
{ name: "UnknownError" data: { message: string } }
{ name: "UnknownError" data: { message: string } }
{ id: string sessionID: string role: "user" time: { created: | number | "Infinity" | "-Infinity" | "NaN" } format?: OutputFormat | null summary?: | { title?: string | null body?: string | null diffs: FileDiff_4[] } | null agent: string model: { providerID: string modelID: string } system?: string | null tools?: | { [key: string]: boolean } | null variant?: string | null }
{ id: string sessionID: string role: "user" time: { created: | number | "Infinity" | "-Infinity" | "NaN" } format?: OutputFormat_1 summary?: { title?: string body?: string diffs: FileDiff_2[] } agent: string model: { providerID: string modelID: string } system?: string tools?: { [key: string]: boolean } variant?: string }
{ id: string sessionID: string role: "user" time: { created: | number | "Infinity" | "-Infinity" | "NaN" } format?: OutputFormat_3 | null summary?: | { title?: string | null body?: string | null diffs: FileDiff_5[] } | null agent: string model: { providerID: string modelID: string } system?: string | null tools?: | { [key: string]: boolean } | null variant?: string | null }