# Model Mapping: Official TypeScript → Android Kotlin

Maps official TypeScript types from `packages/data-provider/src/` to Android Kotlin data classes in `core/model/`.

## Core Models (Implemented)

| TypeScript Type | Kotlin Class | File | Notes |
|----------------|-------------|------|-------|
| `TMessage` | `Message` | `Message.kt` | Includes sender, text, children, content parts |
| `TConversation` | `Conversation` | `Conversation.kt` | Core conversation metadata |
| `TConversationTag` | `ConversationTag` | `ConversationTag.kt` | Tag/bookmark on conversations |
| `TPreset` | `Preset` | `Preset.kt` | Saved endpoint configurations |
| `TPromptGroup` / `TPrompt` | `Prompt` | `Prompt.kt` | Prompts library entries |
| `TSharedLink` | `SharedLink` | `SharedLink.kt` | Shared conversation links |
| `TStartupConfig` | `StartupConfig` | `StartupConfig.kt` | `/api/config` response |
| `TEndpointConfig` | `EndpointConfig` | `EndpointConfig.kt` | Per-endpoint configuration |
| `EModelEndpoint` | `Endpoint` | `Endpoint.kt` | Enum of supported endpoints |
| `TUser` | `User` | `User.kt` | User profile data |
| `TBalance` | `Balance` | `Balance.kt` | Token balance |
| `TBanner` | `Banner` | `Banner.kt` | System banner messages |
| `TFile` | `FileModel` | `FileModel.kt` | Uploaded file metadata |
| `Agent` | `Agent` | `Agent.kt` | Agent definition |
| `AgentExpanded` | `AgentExpanded` | `AgentExpanded.kt` | Agent with full details |
| `PaginatedAgents` | `PaginatedAgents` | `PaginatedAgents.kt` | Paginated agent list response |
| `AgentCategory` | `AgentCategory` | `AgentCategory.kt` | Agent marketplace categories |
| `TMemory` | `Memory` | `Memory.kt` | Memory/context entries |
| `TUserKey` | `UserKey` | `UserKey.kt` | User API keys |
| `ApiKey` | `ApiKey` | `ApiKey.kt` | API key management |

## SSE/Streaming Models (Android-specific)

| Kotlin Class | File | Purpose |
|-------------|------|---------|
| `StreamEvent` | `StreamEvent.kt` | Sealed class for SSE event types |
| `SseContentEvent` | `SseContentEvent.kt` | Content delta events during streaming |
| `ToolCallRecord` | `ToolCallRecord.kt` | Tool call progress tracking |
| `ToolCallResult` | `ToolCallResult.kt` | Tool call completion data |
| `ToolAuthStatus` | `ToolAuthStatus.kt` | Tool authentication state |

## Android-Only Models

| Kotlin Class | File | Purpose |
|-------------|------|---------|
| `ServerConnection` | `ServerConnection.kt` | Saved server URL + metadata |
| `LoginOutcome` | `LoginOutcome.kt` | Auth flow result sealed class |
| `ConversationExport` | `ConversationExport.kt` | Export/import format |
| `Feedback` | `Feedback.kt` | Message feedback (thumbs up/down) |
| `SupportContact` | `SupportContact.kt` | Help/support info |
| `MessageContentPart` | `MessageContentPart.kt` | Rich content (text, image, file) |
| `ParameterDefinition` | `ParameterDefinition.kt` | Model parameter config |
| `AgentAction` | `AgentAction.kt` | Agent action definitions |
| `AgentTool` | `AgentTool.kt` | Agent tool definitions |

## Key Type Sources in Official Repo

| File | Contains |
|------|----------|
| `packages/data-provider/src/types.ts` | Main type exports |
| `packages/data-provider/src/types/queries.ts` | React Query response types |
| `packages/data-provider/src/types/mutations.ts` | Mutation request/response types |
| `packages/data-provider/src/types/agents.ts` | Agent-specific types |
| `packages/data-provider/src/types/files.ts` | File-related types |
| `packages/data-provider/src/types/runs.ts` | Run/streaming types |
| `packages/data-provider/src/schemas.ts` | Zod validation schemas |
| `packages/data-provider/src/config.ts` | Config types and VERSION constant |
