import { type Static } from "@sinclair/typebox"; import type { EventId } from "./EventId.js"; /** * The fixed Happy UI locations an agent can plug content into. Rig stores the entries and * verifies their types; it never interprets or filters the content itself. */ export declare const slotNameSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"status-line">, import("@sinclair/typebox").TLiteral<"above-composer">, import("@sinclair/typebox").TLiteral<"title">, import("@sinclair/typebox").TLiteral<"sidebar">]>; export type SlotName = Static; export declare const slotScopeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"everywhere">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"workspace">, import("@sinclair/typebox").TLiteral<"session">]>; export type SlotScope = Static; export declare const slotActionSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-current-chat">; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"open-applet">; applet: import("@sinclair/typebox").TString; path: import("@sinclair/typebox").TOptional; query: import("@sinclair/typebox").TOptional>; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"draft-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"new-chat">; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; provider: import("@sinclair/typebox").TOptional; effort: import("@sinclair/typebox").TOptional; serviceTier: import("@sinclair/typebox").TOptional>; readOnly: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; }>]>; export type SlotAction = Static; export declare const slotContentSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"text">; markdown: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"button">; label: import("@sinclair/typebox").TString; action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-current-chat">; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"open-applet">; applet: import("@sinclair/typebox").TString; path: import("@sinclair/typebox").TOptional; query: import("@sinclair/typebox").TOptional>; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"draft-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"new-chat">; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; provider: import("@sinclair/typebox").TOptional; effort: import("@sinclair/typebox").TOptional; serviceTier: import("@sinclair/typebox").TOptional>; readOnly: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; }>]>; }>]>; export type SlotContent = Static; export declare const slotEntryAuthorSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"agent">; sessionId: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"plugin">; folder: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; }>]>; export type SlotEntryAuthor = Static; export declare const slotEntrySchema: import("@sinclair/typebox").TObject<{ id: import("@sinclair/typebox").TString; slot: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"status-line">, import("@sinclair/typebox").TLiteral<"above-composer">, import("@sinclair/typebox").TLiteral<"title">, import("@sinclair/typebox").TLiteral<"sidebar">]>; scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"everywhere">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"workspace">, import("@sinclair/typebox").TLiteral<"session">]>; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; sessionId: import("@sinclair/typebox").TOptional; content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"text">; markdown: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"button">; label: import("@sinclair/typebox").TString; action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-current-chat">; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"open-applet">; applet: import("@sinclair/typebox").TString; path: import("@sinclair/typebox").TOptional; query: import("@sinclair/typebox").TOptional>; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"draft-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"new-chat">; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; provider: import("@sinclair/typebox").TOptional; effort: import("@sinclair/typebox").TOptional; serviceTier: import("@sinclair/typebox").TOptional>; readOnly: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; }>]>; }>]>; author: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"agent">; sessionId: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"plugin">; folder: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; }>]>; description: import("@sinclair/typebox").TString; purpose: import("@sinclair/typebox").TString; createdAt: import("@sinclair/typebox").TNumber; updatedAt: import("@sinclair/typebox").TNumber; }>; export type SlotEntry = Static; export declare const createSlotEntryRequestSchema: import("@sinclair/typebox").TObject<{ slot: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"status-line">, import("@sinclair/typebox").TLiteral<"above-composer">, import("@sinclair/typebox").TLiteral<"title">, import("@sinclair/typebox").TLiteral<"sidebar">]>; scope: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"everywhere">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"workspace">, import("@sinclair/typebox").TLiteral<"session">]>; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; sessionId: import("@sinclair/typebox").TOptional; content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"text">; markdown: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"button">; label: import("@sinclair/typebox").TString; action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-current-chat">; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"open-applet">; applet: import("@sinclair/typebox").TString; path: import("@sinclair/typebox").TOptional; query: import("@sinclair/typebox").TOptional>; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"draft-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"new-chat">; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; provider: import("@sinclair/typebox").TOptional; effort: import("@sinclair/typebox").TOptional; serviceTier: import("@sinclair/typebox").TOptional>; readOnly: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; }>]>; }>]>; author: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"agent">; sessionId: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"plugin">; folder: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; }>]>; description: import("@sinclair/typebox").TString; purpose: import("@sinclair/typebox").TString; }>; export type CreateSlotEntryRequest = Static; /** * The scope and its target are fixed at creation; an entry that should move is removed and * recreated where it belongs. */ export declare const updateSlotEntryRequestSchema: import("@sinclair/typebox").TObject<{ slot: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"above-composer">, import("@sinclair/typebox").TLiteral<"title">, import("@sinclair/typebox").TLiteral<"sidebar">]>>; content: import("@sinclair/typebox").TOptional; markdown: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"button">; label: import("@sinclair/typebox").TString; action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-current-chat">; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"open-applet">; applet: import("@sinclair/typebox").TString; path: import("@sinclair/typebox").TOptional; query: import("@sinclair/typebox").TOptional>; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"send-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"draft-chat">; sessionId: import("@sinclair/typebox").TString; message: import("@sinclair/typebox").TString; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"new-chat">; projectId: import("@sinclair/typebox").TOptional; workspaceId: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; provider: import("@sinclair/typebox").TOptional; effort: import("@sinclair/typebox").TOptional; serviceTier: import("@sinclair/typebox").TOptional>; readOnly: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; }>]>; }>]>>; description: import("@sinclair/typebox").TOptional; purpose: import("@sinclair/typebox").TOptional; }>; export type UpdateSlotEntryRequest = Static; /** Scope context for listing: a session context also matches everywhere, project, and workspace. */ export interface SlotEntryFilter { projectId?: string; sessionId?: string; slot?: SlotName; workspaceId?: string; } export interface ListSlotEntriesResponse { entries: readonly SlotEntry[]; } export interface SlotEntryResponse { entry: SlotEntry; } export type SlotManagementErrorCode = "entry_not_found" | "invalid_entry" | "invalid_request"; export interface SlotManagementErrorResponse { error: { code: SlotManagementErrorCode; message: string; }; } /** * Slot entries changed. Live-only, carrying the whole current set so a reconnecting client reads * the current entries instead of replaying every past change. */ export interface SlotsChangedEvent { createdAt: number; data: { entries: readonly SlotEntry[]; }; id: EventId; type: "slots_changed"; }