/** Bots: persistent single-conversation assistants with a dedicated workspace. */ import { type Static } from "@sinclair/typebox"; /** A bot picture. Its bytes are served separately from the bot resource. */ export declare const botAvatarSchema: import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TLiteral<"image">; source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>; thumbhash: import("@sinclair/typebox").TString; }>; export type BotAvatar = Static; /** A human display name: nonblank, bounded, and free of ASCII control characters. */ export declare const botNameSchema: import("@sinclair/typebox").TString; export type BotName = Static; /** The immutable local folder name chosen when a bot is created. */ export declare const botUsernameSchema: import("@sinclair/typebox").TString; export type BotUsername = Static; export declare const CHIEF_OF_STAFF_SYSTEM_KEY = "chief_of_staff"; /** A stable daemon-provided bot kind. Clients must tolerate keys added by newer daemons. */ export declare const botSystemKeySchema: import("@sinclair/typebox").TString; export type BotSystemKey = Static; /** A bot and its one independently versioned agent. */ export declare const botSchema: import("@sinclair/typebox").TObject<{ /** The bot's one agent, embedded in full for list rendering. */ agent: import("@sinclair/typebox").TRecursive; canSendMessages: import("@sinclair/typebox").TOptional; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; lastCursor: import("@sinclair/typebox").TString; managedByAnotherAgent: import("@sinclair/typebox").TOptional; orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; processes: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; }>; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>; subagents: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; total: import("@sinclair/typebox").TInteger; }>; subtask: import("@sinclair/typebox").TOptional; subtasks: import("@sinclair/typebox").TOptional>; title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>; unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ reason: import("@sinclair/typebox").TString; since: import("@sinclair/typebox").TInteger; }>, import("@sinclair/typebox").TNull]>; updatedAt: import("@sinclair/typebox").TInteger; userVisible: import("@sinclair/typebox").TOptional; version: import("@sinclair/typebox").TString; workspaceId: import("@sinclair/typebox").TString; }>>; archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>; avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TLiteral<"image">; source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>; thumbhash: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TNull]>; /** Mirrors the dedicated workspace's compute. */ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"host">; }>, import("@sinclair/typebox").TObject<{ image: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"docker">; }>]>; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; /** Whether this bot has the `admin_bot` tool role. Older compatible daemons omit it. */ isAdmin: import("@sinclair/typebox").TOptional; name: import("@sinclair/typebox").TString; /** An opaque catalog sort key. */ orderKey: import("@sinclair/typebox").TString; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>; /** Built-in bot kind, or null for an ordinary bot. Older compatible daemons omit it. */ systemKey: import("@sinclair/typebox").TOptional>; updatedAt: import("@sinclair/typebox").TInteger; /** Immutable local snake_case name and folder name. */ username: import("@sinclair/typebox").TString; version: import("@sinclair/typebox").TString; /** The bot's dedicated workspace, distinct from the bot and agent IDs. */ workspaceId: import("@sinclair/typebox").TString; }>; export type Bot = Static; /** `GET /v0/bots` */ export declare const botListResponseSchema: import("@sinclair/typebox").TObject<{ bots: import("@sinclair/typebox").TArray; canSendMessages: import("@sinclair/typebox").TOptional; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; lastCursor: import("@sinclair/typebox").TString; managedByAnotherAgent: import("@sinclair/typebox").TOptional; orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; processes: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; }>; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>; subagents: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; total: import("@sinclair/typebox").TInteger; }>; subtask: import("@sinclair/typebox").TOptional; subtasks: import("@sinclair/typebox").TOptional>; title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>; unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ reason: import("@sinclair/typebox").TString; since: import("@sinclair/typebox").TInteger; }>, import("@sinclair/typebox").TNull]>; updatedAt: import("@sinclair/typebox").TInteger; userVisible: import("@sinclair/typebox").TOptional; version: import("@sinclair/typebox").TString; workspaceId: import("@sinclair/typebox").TString; }>>; archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>; avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TLiteral<"image">; source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>; thumbhash: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TNull]>; /** Mirrors the dedicated workspace's compute. */ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"host">; }>, import("@sinclair/typebox").TObject<{ image: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"docker">; }>]>; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; /** Whether this bot has the `admin_bot` tool role. Older compatible daemons omit it. */ isAdmin: import("@sinclair/typebox").TOptional; name: import("@sinclair/typebox").TString; /** An opaque catalog sort key. */ orderKey: import("@sinclair/typebox").TString; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>; /** Built-in bot kind, or null for an ordinary bot. Older compatible daemons omit it. */ systemKey: import("@sinclair/typebox").TOptional>; updatedAt: import("@sinclair/typebox").TInteger; /** Immutable local snake_case name and folder name. */ username: import("@sinclair/typebox").TString; version: import("@sinclair/typebox").TString; /** The bot's dedicated workspace, distinct from the bot and agent IDs. */ workspaceId: import("@sinclair/typebox").TString; }>>; }>; export type BotListResponse = Static; /** Every single-bot JSON route answers with this. */ export declare const botResponseSchema: import("@sinclair/typebox").TObject<{ bot: import("@sinclair/typebox").TObject<{ /** The bot's one agent, embedded in full for list rendering. */ agent: import("@sinclair/typebox").TRecursive; canSendMessages: import("@sinclair/typebox").TOptional; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; lastCursor: import("@sinclair/typebox").TString; managedByAnotherAgent: import("@sinclair/typebox").TOptional; orderKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; parentAgentId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; pendingQuestionId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; processes: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; }>; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"thinking">, import("@sinclair/typebox").TLiteral<"working">, import("@sinclair/typebox").TLiteral<"generating_tools">, import("@sinclair/typebox").TLiteral<"running_tools">]>; subagents: import("@sinclair/typebox").TObject<{ running: import("@sinclair/typebox").TInteger; total: import("@sinclair/typebox").TInteger; }>; subtask: import("@sinclair/typebox").TOptional; subtasks: import("@sinclair/typebox").TOptional>; title: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; titleStatus: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"idle">, import("@sinclair/typebox").TLiteral<"ready">]>; unread: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ reason: import("@sinclair/typebox").TString; since: import("@sinclair/typebox").TInteger; }>, import("@sinclair/typebox").TNull]>; updatedAt: import("@sinclair/typebox").TInteger; userVisible: import("@sinclair/typebox").TOptional; version: import("@sinclair/typebox").TString; workspaceId: import("@sinclair/typebox").TString; }>>; archivedAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>; avatar: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TLiteral<"image">; source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"generated">]>; thumbhash: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TNull]>; /** Mirrors the dedicated workspace's compute. */ compute: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"host">; }>, import("@sinclair/typebox").TObject<{ image: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"docker">; }>]>; createdAt: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; /** Whether this bot has the `admin_bot` tool role. Older compatible daemons omit it. */ isAdmin: import("@sinclair/typebox").TOptional; name: import("@sinclair/typebox").TString; /** An opaque catalog sort key. */ orderKey: import("@sinclair/typebox").TString; status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"archived">]>; /** Built-in bot kind, or null for an ordinary bot. Older compatible daemons omit it. */ systemKey: import("@sinclair/typebox").TOptional>; updatedAt: import("@sinclair/typebox").TInteger; /** Immutable local snake_case name and folder name. */ username: import("@sinclair/typebox").TString; version: import("@sinclair/typebox").TString; /** The bot's dedicated workspace, distinct from the bot and agent IDs. */ workspaceId: import("@sinclair/typebox").TString; }>; }>; export type BotResponse = Static; /** `POST /v0/bots` — client-chosen child IDs require protocol 25+. */ export declare const createBotRequestSchema: import("@sinclair/typebox").TObject<{ mutationId: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; agentId: import("@sinclair/typebox").TOptional; /** Protocol 24+: omitted, the bot takes its display name from the first user message. */ name: import("@sinclair/typebox").TOptional; /** Omitted, the daemon derives a unique username from `name`, or from `bot` without a name. */ username: import("@sinclair/typebox").TOptional; /** Grants the new bot the `admin_bot` tool role. Omitted means non-admin. */ isAdmin: import("@sinclair/typebox").TOptional; }>; export type CreateBotRequest = Static; /** `PATCH /v0/bots/:botId` — the immutable username is deliberately absent. */ export declare const renameBotRequestSchema: import("@sinclair/typebox").TObject<{ mutationId: import("@sinclair/typebox").TOptional; name: import("@sinclair/typebox").TString; /** Explicitly forbidden even though request objects tolerate future additive fields. */ username: import("@sinclair/typebox").TOptional; }>; export type RenameBotRequest = Static; /** `POST /v0/bots/:botId/archive` */ export declare const archiveBotRequestSchema: import("@sinclair/typebox").TObject<{ mutationId: import("@sinclair/typebox").TOptional; }>; export type ArchiveBotRequest = Static; /** `POST /v0/bots/:botId/unarchive` */ export declare const unarchiveBotRequestSchema: import("@sinclair/typebox").TObject<{ mutationId: import("@sinclair/typebox").TOptional; }>; export type UnarchiveBotRequest = Static; /** `POST /v0/bots/:botId/reorder` */ export declare const reorderBotRequestSchema: import("@sinclair/typebox").TObject<{ /** The bot to place this one after, or `null` to move it first. */ afterId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; mutationId: import("@sinclair/typebox").TOptional; }>; export type ReorderBotRequest = Static; //# sourceMappingURL=bots.d.ts.map