import { components } from '@ai-matrx/api/types'; /** * `@ai-matrx/agents/message-parts` — the user-input parts every agent route accepts. * * Every export is derived from the generated OpenAPI `UserInputPart` union * (`@ai-matrx/api/types`). It contains no hand-authored wire fields, literals, * or allowlists: regenerate the API types and every consumer changes with the * server contract. Moved from matrx-frontend `packages/chat/src/agents/types/ * message-types.ts` + `request.types.ts` (`UserInputPart`) by chat package * independence P15 so chat and the files feature both depend on agents. */ /** One structured item accepted by every generated agent user-input route. */ type OpenApiUserInputElement = Exclude, string>[number]; /** Exact request-side union generated from the authoritative OpenAPI schema. */ type UserInputPart = OpenApiUserInputElement; type _UserInputPartDriftGuard = Extract extends { type: "text"; } ? true : never; declare const USER_INPUT_PART_DRIFT_GUARD: _UserInputPartDriftGuard; type TextBlock = Extract; type MediaBlock = Extract; type ImageBlock = Extract; type AudioBlock = Extract; type VideoBlock = Extract; type DocumentBlock = Extract; type YouTubeVideoBlock = Extract; type WebpageInputBlock = Extract; type NotesInputBlock = Extract; type TaskInputBlock = Extract; type TableInputBlock = Extract; type ListInputBlock = Extract; type DataInputBlock = Extract; type TableBookmark = NonNullable[number]; type FullTableBookmark = Extract; type TableSchemaBookmark = Extract; type TableColumnBookmark = Extract; type TableRowBookmark = Extract; type TableCellBookmark = Extract; type ListBookmark = NonNullable[number]; type FullListBookmark = Extract; type ListGroupBookmark = Extract; type ListItemBookmark = Extract; type DataRef = NonNullable[number]; type DbRecordRef = Extract; type DbQueryRef = Extract; type DbFieldRef = Extract; type DataRefTable = DataRef["table"]; /** Every structured input shares only fields that exist on the generated union. */ type StructuredInputBase = Pick; type ContentBlock = UserInputPart; type UserInput = string | UserInputPart[]; export { USER_INPUT_PART_DRIFT_GUARD }; export type { AudioBlock, ContentBlock, DataInputBlock, DataRef, DataRefTable, DbFieldRef, DbQueryRef, DbRecordRef, DocumentBlock, FullListBookmark, FullTableBookmark, ImageBlock, ListBookmark, ListGroupBookmark, ListInputBlock, ListItemBookmark, NotesInputBlock, StructuredInputBase, TableBookmark, TableCellBookmark, TableColumnBookmark, TableInputBlock, TableRowBookmark, TableSchemaBookmark, TaskInputBlock, TextBlock, UserInput, UserInputPart, VideoBlock, WebpageInputBlock, YouTubeVideoBlock };