feat: TypeScript types for sessions, artifacts, A2UI, tool calls, auth
This commit is contained in:
@@ -0,0 +1,107 @@
|
|||||||
|
// Session types
|
||||||
|
export interface Session {
|
||||||
|
session_id: string
|
||||||
|
status: string
|
||||||
|
bundle: string
|
||||||
|
created_at: string
|
||||||
|
last_activity: string
|
||||||
|
total_messages: number
|
||||||
|
tool_invocations: number
|
||||||
|
stale: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SessionListResponse {
|
||||||
|
sessions: Session[]
|
||||||
|
total: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// Artifact types
|
||||||
|
export interface Artifact {
|
||||||
|
name: string
|
||||||
|
session_id: string
|
||||||
|
size: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArtifactContent {
|
||||||
|
name: string
|
||||||
|
session_id: string
|
||||||
|
content: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// A2UI types
|
||||||
|
export type A2UIBlockType = 'filters' | 'form' | 'table' | 'cards'
|
||||||
|
|
||||||
|
export interface A2UIFilterOption {
|
||||||
|
label: string
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UIFiltersBlock {
|
||||||
|
type: 'filters'
|
||||||
|
filters: A2UIFilterOption[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UIFormField {
|
||||||
|
name: string
|
||||||
|
type: 'text' | 'number' | 'select'
|
||||||
|
label?: string
|
||||||
|
value?: string | number
|
||||||
|
options?: A2UIFilterOption[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UIFormBlock {
|
||||||
|
type: 'form'
|
||||||
|
fields: A2UIFormField[]
|
||||||
|
submitLabel: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UITableBlock {
|
||||||
|
type: 'table'
|
||||||
|
headers: string[]
|
||||||
|
rows: string[][]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UICardItem {
|
||||||
|
title: string
|
||||||
|
description?: string
|
||||||
|
image?: string
|
||||||
|
price?: string
|
||||||
|
url?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface A2UICardsBlock {
|
||||||
|
type: 'cards'
|
||||||
|
items: A2UICardItem[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type A2UIBlock = A2UIFiltersBlock | A2UIFormBlock | A2UITableBlock | A2UICardsBlock
|
||||||
|
|
||||||
|
// MCP / Tool Call types
|
||||||
|
export interface MCPAppMeta {
|
||||||
|
ui: {
|
||||||
|
resourceUri: string
|
||||||
|
csp?: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MCPAppStructuredContent = Record<string, unknown>
|
||||||
|
|
||||||
|
export interface ToolCall {
|
||||||
|
id: string
|
||||||
|
name: string
|
||||||
|
args: Record<string, unknown>
|
||||||
|
result?: unknown
|
||||||
|
status: 'pending' | 'running' | 'complete' | 'error'
|
||||||
|
_meta?: MCPAppMeta
|
||||||
|
structuredContent?: MCPAppStructuredContent
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auth types
|
||||||
|
export interface AuthUser {
|
||||||
|
email: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LoginResponse {
|
||||||
|
token: string
|
||||||
|
email: string
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user