mirror of
https://github.com/stackblitz-labs/bolt.diy
synced 2025-06-26 10:16:01 +00:00
- Implement design scheme system with palette, typography, and feature customization - Add color scheme dialog for user customization - Update chat UI components to use design scheme values - Improve header actions with consolidated deploy and export buttons - Adjust layout spacing and styling across multiple components (chat, workbench etc...) - Add model and provider info to chat messages - Refactor workbench and sidebar components for better responsiveness
66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import { getSystemPrompt } from './prompts/prompts';
|
|
import optimized from './prompts/optimized';
|
|
import { getFineTunedPrompt } from './prompts/new-prompt';
|
|
import type { DesignScheme } from '~/types/design-scheme';
|
|
|
|
export interface PromptOptions {
|
|
cwd: string;
|
|
allowedHtmlElements: string[];
|
|
modificationTagName: string;
|
|
designScheme?: DesignScheme;
|
|
supabase?: {
|
|
isConnected: boolean;
|
|
hasSelectedProject: boolean;
|
|
credentials?: {
|
|
anonKey?: string;
|
|
supabaseUrl?: string;
|
|
};
|
|
};
|
|
}
|
|
|
|
export class PromptLibrary {
|
|
static library: Record<
|
|
string,
|
|
{
|
|
label: string;
|
|
description: string;
|
|
get: (options: PromptOptions) => string;
|
|
}
|
|
> = {
|
|
default: {
|
|
label: 'Default Prompt',
|
|
description: 'This is the battle tested default system Prompt',
|
|
get: (options) => getSystemPrompt(options.cwd, options.supabase, options.designScheme),
|
|
},
|
|
enhanced: {
|
|
label: 'Fine Tuned Prompt',
|
|
description: 'An fine tuned prompt for better results',
|
|
get: (options) => getFineTunedPrompt(options.cwd, options.supabase, options.designScheme),
|
|
},
|
|
optimized: {
|
|
label: 'Optimized Prompt (experimental)',
|
|
description: 'an Experimental version of the prompt for lower token usage',
|
|
get: (options) => optimized(options),
|
|
},
|
|
};
|
|
static getList() {
|
|
return Object.entries(this.library).map(([key, value]) => {
|
|
const { label, description } = value;
|
|
return {
|
|
id: key,
|
|
label,
|
|
description,
|
|
};
|
|
});
|
|
}
|
|
static getPropmtFromLibrary(promptId: string, options: PromptOptions) {
|
|
const prompt = this.library[promptId];
|
|
|
|
if (!prompt) {
|
|
throw 'Prompt Now Found';
|
|
}
|
|
|
|
return this.library[promptId]?.get(options);
|
|
}
|
|
}
|