dadacat-lambda-pipeline
Version:
JavaScript client for the dadacat 3-lambda image generation pipeline
190 lines (171 loc) • 4.6 kB
TypeScript
// TypeScript definitions for dadacat-lambda-pipeline
export interface PipelineConfig {
dadacatUrl: string;
imageGenUrl: string;
b2UploadUrl: string;
maxRetries?: number;
retryDelay?: number;
timeout?: number;
pollingInterval?: number;
}
export interface AgentResponse {
status: string;
response?: string;
error?: string;
}
export interface ImageGenRequest {
prompt: string;
additional_prompt?: string;
batch_id?: string;
options?: {
model?: string;
size?: string;
quality?: string;
style?: string;
};
}
export interface ImageGenResponse {
success: boolean;
data?: {
job_id: string;
run_id: string;
status: string;
url?: string;
timestamp: string;
batch_id?: string;
prompt: string;
additional_prompt?: string;
completed_at?: string;
generation_time?: string;
model_used?: string;
size_used?: string;
quality_used?: string;
};
error?: string;
}
export interface B2UploadRequest {
job_id: string;
run_id: string;
image_url: string;
bucket?: string;
folder?: string;
metadata?: Record<string, any>;
}
export interface B2UploadResponse {
success: boolean;
data?: {
job_id: string;
run_id: string;
b2_path: string;
b2_url: string;
index_updated: boolean;
upload_timestamp: string;
file_size: number;
image_format: string;
image_dimensions: [number, number];
};
error?: string;
}
export interface PipelineStep {
step: number;
lambda: string;
input: Record<string, any>;
output: Record<string, any>;
duration: number;
success: boolean;
}
export interface PipelineResult {
success: boolean;
testId: string;
timestamp: string;
inputData: Record<string, any>;
steps: PipelineStep[];
finalResult?: {
agentResponse: string;
imageUrl: string;
b2Url: string;
jobId: string;
runId: string;
metadata?: Record<string, any>;
};
error?: string;
totalDuration?: number;
}
export interface MetadataInput {
original_prompt: string;
batch_id?: string;
user_context?: {
user_id?: string;
session_id?: string;
preferences?: Record<string, any>;
};
}
export interface ConfigurablePipelineInput {
human_prompt: string;
batch_id?: string;
additional_prompt?: string;
options?: {
model?: string;
size?: string;
quality?: string;
style?: string;
};
bucket?: string;
folder?: string;
artproject?: string;
on_website?: string;
custom_metadata?: Record<string, any>;
}
export interface ConnectionTestResult {
success: boolean;
results: {
dadacat: boolean;
imageGen: boolean;
b2Upload: boolean;
};
summary: string;
}
export declare class DadacatClient {
constructor(functionUrl?: string);
generateResponse(prompt: string): Promise<AgentResponse>;
testConnection(): Promise<boolean>;
}
export declare class ImageGenClient {
constructor(baseUrl?: string);
generateImage(requestData: ImageGenRequest): Promise<ImageGenResponse>;
checkStatus(jobId: string): Promise<ImageGenResponse>;
pollForCompletion(jobId: string, maxWaitTime?: number, pollInterval?: number): Promise<ImageGenResponse>;
testConnection(): Promise<boolean>;
}
export declare class B2UploadClient {
constructor(functionUrl?: string);
uploadImage(requestData: B2UploadRequest): Promise<B2UploadResponse>;
testConnection(): Promise<boolean>;
}
export interface ValidationResult {
validatedOptions: Record<string, any>;
errors: string[];
warnings: string[];
}
export declare class ImageGenerationOptions {
static readonly OPTIONS: Record<string, any>;
static validateOptions(options?: Record<string, any>, model?: string): ValidationResult;
static getDefaultOptions(model?: string): Record<string, any>;
static getSupportedOptions(model?: string): Record<string, any>;
static cleanOptionsForModel(options?: Record<string, any>, model?: string): Record<string, any>;
}
export declare class PipelineOrchestrator {
constructor(config: PipelineConfig);
runSequentialPipeline(prompt: string): Promise<PipelineResult>;
runMetadataPipeline(inputData: MetadataInput): Promise<PipelineResult>;
runConfigurablePipeline(inputData: ConfigurablePipelineInput): Promise<PipelineResult>;
testConnections(): Promise<ConnectionTestResult>;
}
export declare function createPipeline(config: PipelineConfig): PipelineOrchestrator;
export declare function createDefaultPipeline(): PipelineOrchestrator;
export declare const DEFAULT_CONFIG: {
maxRetries: number;
retryDelay: number;
timeout: number;
pollingInterval: number;
};