first commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import { Database } from './database.ts';
|
||||
import type { AppUIMessage } from './chatAi.ts';
|
||||
export type Model = string;
|
||||
export type CreativeModel = 'quality' | 'fast' | 'ultra';
|
||||
|
||||
export type Prompt = {
|
||||
text?: string;
|
||||
images?: string[];
|
||||
mesh?: string;
|
||||
model?: Model;
|
||||
};
|
||||
|
||||
type MessageRow = Database['public']['Tables']['messages']['Row'];
|
||||
|
||||
export type Message = Pick<
|
||||
MessageRow,
|
||||
'conversation_id' | 'created_at' | 'id' | 'parent_message_id' | 'rating'
|
||||
> & {
|
||||
role: 'user' | 'assistant';
|
||||
metadata: AppUIMessage['metadata'];
|
||||
parts: AppUIMessage['parts'];
|
||||
};
|
||||
|
||||
export type MeshFileType = Database['public']['Enums']['mesh_file_type'];
|
||||
|
||||
export type Mesh = {
|
||||
id: string;
|
||||
fileType: MeshFileType;
|
||||
};
|
||||
|
||||
export type MeshData = Omit<
|
||||
Database['public']['Tables']['meshes']['Row'],
|
||||
'prompt'
|
||||
> & {
|
||||
prompt: Prompt;
|
||||
};
|
||||
|
||||
export type ParametricArtifact = {
|
||||
title: string;
|
||||
version: string;
|
||||
code: string;
|
||||
};
|
||||
|
||||
// label is optional: an OpenSCAD customizer comment can list bare values
|
||||
// (e.g. `[Assembled, Exploded]`) with no `value:label` pair, in which case
|
||||
// the parser leaves label undefined and the UI falls back to the value.
|
||||
export type ParameterOption = { value: string | number; label?: string };
|
||||
|
||||
export type ParameterRange = { min?: number; max?: number; step?: number };
|
||||
|
||||
export type ParameterType =
|
||||
| 'string'
|
||||
| 'number'
|
||||
| 'boolean'
|
||||
| 'string[]'
|
||||
| 'number[]'
|
||||
| 'boolean[]';
|
||||
|
||||
export type Parameter = {
|
||||
name: string;
|
||||
displayName: string;
|
||||
value: string | boolean | number | string[] | number[] | boolean[];
|
||||
defaultValue: string | boolean | number | string[] | number[] | boolean[];
|
||||
// Type should always exist, but old messages don't have it.
|
||||
type?: ParameterType;
|
||||
description?: string;
|
||||
group?: string;
|
||||
range?: ParameterRange;
|
||||
options?: ParameterOption[];
|
||||
maxLength?: number;
|
||||
};
|
||||
|
||||
export type Conversation = Omit<
|
||||
Database['public']['Tables']['conversations']['Row'],
|
||||
'settings'
|
||||
> & {
|
||||
settings: ConversationSettings;
|
||||
};
|
||||
|
||||
export type GenerationStatus = Database['public']['Enums']['generation-status'];
|
||||
|
||||
export type ConversationSettings = {
|
||||
model?: Model;
|
||||
/**
|
||||
* Per-conversation follow-up suggestions rendered as pills above the
|
||||
* chat input. Regenerated server-side after each non-tool-call
|
||||
* assistant turn — see `emitConversationSuggestions` in
|
||||
* `src/server/aiChat.ts`.
|
||||
*/
|
||||
suggestions?: string[];
|
||||
} | null;
|
||||
|
||||
export type Profile = Database['public']['Tables']['profiles']['Row'];
|
||||
Reference in New Issue
Block a user