@promptbook/utils
Version:
Promptbook: Create persistent AI agents that turn your company's scattered knowledge into action
204 lines (203 loc) • 9.63 kB
TypeScript
/**
* AUTO-GENERATED SUBSET TYPES FROM `/apps/agents-server/src/database/schema.ts`
* Source of truth: `/apps/agents-server/src/database/schema.sql` *(do not edit table structure here manually)*
*
* [💽] Prompt:
* Re-generate this sub-schema from `/apps/agents-server/src/database/schema.ts` *(which was generated from `/apps/agents-server/src/database/migrations/*.sql`)*
* `AgentsDatabaseSchema` is strict subset of `AgentsServerDatabase`
* Generate Supabase TypeScript schema which is a subset of `AgentsServerDatabase`
* containing only tables `Agent` and `AgentHistory`
*
* NOTE: This file intentionally omits all other tables (`Metadata`, `ChatHistory`, `ChatFeedback`, `User`, `LlmCache`, etc.)
* and any extra schemas (e.g. `graphql_public`) to remain a strict subset.
*/
/**
* Supabase-style JSON helper type.
*/
export type Json = string | number | boolean | null | {
[key: string]: Json | undefined;
} | Json[];
/**
* Subset of the Agents Server database schema containing only Agent and AgentHistory tables.
*/
export type AgentsDatabaseSchema = {
public: {
Tables: {
Agent: {
Row: {
id: number;
agentName: string;
createdAt: string;
updatedAt: string | null;
permanentId: string | null;
agentHash: string;
agentSource: string;
agentProfile: Json;
promptbookEngineVersion: string;
usage: Json | null;
preparedModelRequirements: Json | null;
folderId: number | null;
sortOrder: number;
deletedAt: string | null;
visibility: 'PUBLIC' | 'PRIVATE' | 'UNLISTED';
};
Insert: {
id?: number;
agentName: string;
createdAt?: string;
updatedAt?: string | null;
permanentId?: string | null;
agentHash: string;
agentSource: string;
agentProfile: Json;
promptbookEngineVersion: string;
usage?: Json | null;
preparedModelRequirements?: Json | null;
folderId?: number | null;
sortOrder?: number;
deletedAt?: string | null;
visibility?: 'PUBLIC' | 'PRIVATE' | 'UNLISTED';
};
Update: {
id?: number;
agentName?: string;
createdAt?: string;
updatedAt?: string | null;
permanentId?: string | null;
agentHash?: string;
agentSource?: string;
agentProfile?: Json;
promptbookEngineVersion?: string;
usage?: Json | null;
preparedModelRequirements?: Json | null;
folderId?: number | null;
sortOrder?: number;
deletedAt?: string | null;
visibility?: 'PUBLIC' | 'PRIVATE' | 'UNLISTED';
};
Relationships: [
{
foreignKeyName: 'Agent_folderId_fkey';
columns: ['folderId'];
referencedRelation: 'AgentFolder';
referencedColumns: ['id'];
}
];
};
AgentHistory: {
Row: {
id: number;
createdAt: string;
agentName: string;
permanentId: string;
agentHash: string;
previousAgentHash: string | null;
agentSource: string;
promptbookEngineVersion: string;
versionName: string | null;
};
Insert: {
id?: number;
createdAt?: string;
agentName: string;
permanentId: string;
agentHash: string;
previousAgentHash?: string | null;
agentSource: string;
promptbookEngineVersion: string;
versionName?: string | null;
};
Update: {
id?: number;
createdAt?: string;
agentName?: string;
permanentId?: string;
agentHash?: string;
previousAgentHash?: string | null;
agentSource?: string;
promptbookEngineVersion?: string;
versionName?: string | null;
};
Relationships: [
{
foreignKeyName: 'AgentHistory_permanentId_fkey';
columns: ['permanentId'];
referencedRelation: 'Agent';
referencedColumns: ['permanentId'];
}
];
};
};
Views: Record<string, never>;
Functions: Record<string, never>;
Enums: Record<string, never>;
CompositeTypes: Record<string, never>;
};
};
/**
* Public schema reference for helper types.
*/
type PublicSchema = AgentsDatabaseSchema[Extract<keyof AgentsDatabaseSchema, 'public'>];
/**
* Helper type to extract table row types from the public schema.
*/
export type Tables<PublicTableNameOrOptions extends keyof (PublicSchema['Tables'] & PublicSchema['Views']) | {
schema: keyof AgentsDatabaseSchema;
}, TableName extends PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? keyof (AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'] & AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Views']) : never = never> = PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? (AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'] & AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Views'])[TableName] extends {
Row: infer R;
} ? R : never : PublicTableNameOrOptions extends keyof (PublicSchema['Tables'] & PublicSchema['Views']) ? (PublicSchema['Tables'] & PublicSchema['Views'])[PublicTableNameOrOptions] extends {
Row: infer R;
} ? R : never : never;
/**
* Helper type to extract table insert types from the public schema.
*/
export type TablesInsert<PublicTableNameOrOptions extends keyof PublicSchema['Tables'] | {
schema: keyof AgentsDatabaseSchema;
}, TableName extends PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? keyof AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'] : never = never> = PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
Insert: infer I;
} ? I : never : PublicTableNameOrOptions extends keyof PublicSchema['Tables'] ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
Insert: infer I;
} ? I : never : never;
/**
* Helper type to extract table update types from the public schema.
*/
export type TablesUpdate<PublicTableNameOrOptions extends keyof PublicSchema['Tables'] | {
schema: keyof AgentsDatabaseSchema;
}, TableName extends PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? keyof AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'] : never = never> = PublicTableNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? AgentsDatabaseSchema[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
Update: infer U;
} ? U : never : PublicTableNameOrOptions extends keyof PublicSchema['Tables'] ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
Update: infer U;
} ? U : never : never;
/**
* Helper type to extract enum types from the public schema.
*/
export type Enums<PublicEnumNameOrOptions extends keyof PublicSchema['Enums'] | {
schema: keyof AgentsDatabaseSchema;
}, EnumName extends PublicEnumNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? keyof AgentsDatabaseSchema[PublicEnumNameOrOptions['schema']]['Enums'] : never = never> = PublicEnumNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? AgentsDatabaseSchema[PublicEnumNameOrOptions['schema']]['Enums'][EnumName] : PublicEnumNameOrOptions extends keyof PublicSchema['Enums'] ? PublicSchema['Enums'][PublicEnumNameOrOptions] : never;
/**
* Helper type to extract composite types from the public schema.
*/
export type CompositeTypes<PublicCompositeTypeNameOrOptions extends keyof PublicSchema['CompositeTypes'] | {
schema: keyof AgentsDatabaseSchema;
}, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? keyof AgentsDatabaseSchema[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'] : never = never> = PublicCompositeTypeNameOrOptions extends {
schema: keyof AgentsDatabaseSchema;
} ? AgentsDatabaseSchema[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName] : PublicCompositeTypeNameOrOptions extends keyof PublicSchema['CompositeTypes'] ? PublicSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions] : never;
export {};