export const AUTHOR_MODE_ID = 'author' as const; export const OPEN_AUTHORING_FILE_TOOL_NAME = 'open_authoring_file' as const; export type AuthorModeActivation = 'inactive' | 'active'; export interface AuthorModeSnapshot { activation: AuthorModeActivation; catalogToken: string; capabilityCount: number; } export type AuthorJsonSchema = Readonly>; export interface AuthorViewportCapabilityDescriptor { name: string; label: string; description: string; inputSchema: AuthorJsonSchema; } export interface AuthorViewportCapability extends AuthorViewportCapabilityDescriptor { execute(argumentsValue: Record, signal?: AbortSignal): Promise; } export interface AuthorCanvasView { alias: string; path: string; status: 'opening' | 'ready' | 'unavailable'; } export interface AuthorViewportCatalogSnapshot { catalogToken: string; tools: AuthorViewportCapabilityDescriptor[]; canvases?: AuthorCanvasView[]; alias?: string; path?: string; status?: AuthorCanvasView['status']; nextStep?: string; } export interface AuthorOpenFileResult { path: string; byteLength: number; alias?: string; status?: AuthorCanvasView['status']; reused?: boolean; } export interface UseAuthorToolInput { alias?: string; catalogToken: string; name: string; arguments: Record; } export interface AuthorToolResult { alias?: string; catalogToken: string; name: string; result: unknown; }