SYMBOL INDEX (2144 symbols across 439 files) FILE: mdx-components.tsx function useMDXComponents (line 6) | function useMDXComponents(components: MDXComponents): MDXComponents { FILE: next.config.ts method redirects (line 41) | async redirects() { FILE: packages/prompts.chat/scripts/generate-docs.ts type DocEntry (line 16) | interface DocEntry { type ModuleDoc (line 31) | interface ModuleDoc { function getJSDocComment (line 37) | function getJSDocComment(node: ts.Node, sourceFile: ts.SourceFile): { de... function getTypeString (line 81) | function getTypeString(type: ts.TypeNode | undefined, sourceFile: ts.Sou... function parseFunction (line 86) | function parseFunction(node: ts.FunctionDeclaration | ts.MethodDeclarati... function parseInterface (line 134) | function parseInterface(node: ts.InterfaceDeclaration, sourceFile: ts.So... function parseTypeAlias (line 183) | function parseTypeAlias(node: ts.TypeAliasDeclaration, sourceFile: ts.So... function parseClass (line 198) | function parseClass(node: ts.ClassDeclaration, sourceFile: ts.SourceFile... function parseVariableStatement (line 243) | function parseVariableStatement(node: ts.VariableStatement, sourceFile: ... function parseSourceFile (line 327) | function parseSourceFile(filePath: string, program: ts.Program): ModuleD... function generateMarkdown (line 397) | function generateMarkdown(modules: ModuleDoc[]): string { function generateSidebarTS (line 571) | function generateSidebarTS(modules: ModuleDoc[]): string { function generateTypeDefinitions (line 759) | function generateTypeDefinitions(modules: ModuleDoc[]): string { function extractStringLiteralOptions (line 953) | function extractStringLiteralOptions(program: ts.Program, files: string[... function generateTypeOptions (line 1092) | function generateTypeOptions(typeAliases: Record): str... function generateMethodOptions (line 1114) | function generateMethodOptions(options: Record): string { FILE: packages/prompts.chat/src/builder/audio.ts type MusicGenre (line 26) | type MusicGenre = type Instrument (line 35) | type Instrument = type VocalStyle (line 44) | type VocalStyle = type VocalLanguage (line 49) | type VocalLanguage = type TempoMarking (line 54) | type TempoMarking = type TimeSignature (line 57) | type TimeSignature = '4/4' | '3/4' | '6/8' | '2/4' | '5/4' | '7/8' | '12... type MusicalKey (line 59) | type MusicalKey = type SongSection (line 65) | type SongSection = type ProductionStyle (line 69) | type ProductionStyle = type Era (line 74) | type Era = type AudioGenre (line 82) | interface AudioGenre { type AudioMood (line 89) | interface AudioMood { type AudioTempo (line 96) | interface AudioTempo { type AudioVocals (line 103) | interface AudioVocals { type AudioInstrumentation (line 113) | interface AudioInstrumentation { type AudioStructure (line 123) | interface AudioStructure { type AudioProduction (line 138) | interface AudioProduction { type AudioTechnical (line 148) | interface AudioTechnical { type BuiltAudioPrompt (line 155) | interface BuiltAudioPrompt { class AudioPromptBuilder (line 176) | class AudioPromptBuilder { method genre (line 190) | genre(primary: MusicGenre | AudioGenre): this { method subgenre (line 199) | subgenre(subgenre: string): this { method fusion (line 204) | fusion(genres: MusicGenre[]): this { method mood (line 215) | mood(primary: Mood | string, ...secondary: (Mood | string)[]): this { method energy (line 223) | energy(level: AudioMood['energy']): this { method emotion (line 228) | emotion(emotion: string): this { method tempo (line 235) | tempo(bpmOrSettings: number | AudioTempo): this { method bpm (line 244) | bpm(bpm: number): this { method tempoMarking (line 249) | tempoMarking(marking: TempoMarking): this { method tempoFeel (line 254) | tempoFeel(feel: AudioTempo['feel']): this { method vocals (line 261) | vocals(settings: AudioVocals): this { method vocalStyle (line 266) | vocalStyle(style: VocalStyle | VocalStyle[]): this { method language (line 271) | language(language: VocalLanguage): this { method lyrics (line 276) | lyrics(lyrics: string): this { method lyricsTheme (line 281) | lyricsTheme(theme: string): this { method delivery (line 286) | delivery(delivery: string): this { method instrumental (line 291) | instrumental(): this { method instruments (line 298) | instruments(instruments: Instrument[]): this { method instrumentation (line 306) | instrumentation(settings: AudioInstrumentation): this { method leadInstrument (line 311) | leadInstrument(instrument: Instrument | Instrument[]): this { method rhythmSection (line 316) | rhythmSection(instruments: Instrument[]): this { method bassInstrument (line 321) | bassInstrument(instrument: Instrument): this { method percussion (line 326) | percussion(instruments: Instrument | Instrument[]): this { method pads (line 331) | pads(instruments: Instrument | Instrument[]): this { method featuredInstrument (line 336) | featuredInstrument(instrument: Instrument): this { method structure (line 343) | structure(settings: AudioStructure | { [key in SongSection]?: number }... method section (line 359) | section(type: SongSection, bars?: number, description?: string): this { method form (line 366) | form(form: string): this { method duration (line 371) | duration(seconds: number): this { method production (line 378) | production(settings: AudioProduction): this { method productionStyle (line 383) | productionStyle(style: ProductionStyle | ProductionStyle[]): this { method era (line 388) | era(era: Era): this { method reference (line 393) | reference(artists: string[]): this { method texture (line 398) | texture(texture: string): this { method effects (line 403) | effects(effects: string[]): this { method technical (line 410) | technical(settings: AudioTechnical): this { method key (line 415) | key(key: MusicalKey): this { method timeSignature (line 420) | timeSignature(sig: TimeSignature): this { method formatType (line 425) | formatType(format: AudioTechnical['format']): this { method tag (line 432) | tag(tag: string): this { method tags (line 437) | tags(tags: string[]): this { method custom (line 442) | custom(text: string): this { method buildStylePrompt (line 449) | private buildStylePrompt(): string { method buildLyricsPrompt (line 549) | private buildLyricsPrompt(): string | undefined { method buildFullPrompt (line 565) | private buildFullPrompt(): string { method build (line 585) | build(): BuiltAudioPrompt { method toString (line 604) | toString(): string { method toStyleString (line 608) | toStyleString(): string { method toJSON (line 612) | toJSON(): string { method toYAML (line 616) | toYAML(): string { method toMarkdown (line 620) | toMarkdown(): string { method outputFormat (line 652) | outputFormat(fmt: OutputFormat): string { function objectToYaml (line 666) | function objectToYaml(obj: object, indent = 0): string { function objectToMarkdownList (line 695) | function objectToMarkdownList(obj: object, indent = 0): string { function audio (line 722) | function audio(): AudioPromptBuilder { FILE: packages/prompts.chat/src/builder/chat.ts type MessageRole (line 26) | type MessageRole = 'system' | 'user' | 'assistant'; type ChatMessage (line 28) | interface ChatMessage { type ResponseFormatType (line 35) | type ResponseFormatType = 'text' | 'json' | 'markdown' | 'code' | 'table'; type JsonSchema (line 37) | interface JsonSchema { type ResponseFormat (line 43) | interface ResponseFormat { type PersonaTone (line 50) | type PersonaTone = type PersonaExpertise (line 56) | type PersonaExpertise = type ReasoningStyle (line 63) | type ReasoningStyle = type OutputLength (line 69) | type OutputLength = 'brief' | 'moderate' | 'detailed' | 'comprehensive' ... type OutputStyle (line 70) | type OutputStyle = 'prose' | 'bullet-points' | 'numbered-list' | 'table'... type ChatPersona (line 76) | interface ChatPersona { type ChatContext (line 87) | interface ChatContext { type ChatTask (line 97) | interface ChatTask { type ChatOutput (line 106) | interface ChatOutput { type ChatReasoning (line 117) | interface ChatReasoning { type ChatExample (line 125) | interface ChatExample { type ChatMemory (line 131) | interface ChatMemory { type BuiltChatPrompt (line 138) | interface BuiltChatPrompt { class ChatPromptBuilder (line 156) | class ChatPromptBuilder { method system (line 169) | system(content: string): this { method user (line 176) | user(content: string, name?: string): this { method assistant (line 181) | assistant(content: string): this { method message (line 186) | message(role: MessageRole, content: string, name?: string): this { method messages (line 191) | messages(messages: ChatMessage[]): this { method conversation (line 196) | conversation(turns: Array<{ user: string; assistant?: string }>): this { method persona (line 208) | persona(settings: ChatPersona | string): this { method role (line 217) | role(role: string): this { method tone (line 222) | tone(tone: PersonaTone | PersonaTone[]): this { method expertise (line 227) | expertise(expertise: PersonaExpertise | PersonaExpertise[]): this { method personality (line 232) | personality(traits: string[]): this { method background (line 237) | background(background: string): this { method speakAs (line 242) | speakAs(name: string): this { method responseLanguage (line 247) | responseLanguage(language: string): this { method context (line 254) | context(settings: ChatContext | string): this { method domain (line 263) | domain(domain: string): this { method audience (line 268) | audience(audience: string): this { method purpose (line 273) | purpose(purpose: string): this { method constraints (line 278) | constraints(constraints: string[]): this { method constraint (line 284) | constraint(constraint: string): this { method assumptions (line 288) | assumptions(assumptions: string[]): this { method knowledge (line 293) | knowledge(facts: string[]): this { method task (line 300) | task(instruction: string | ChatTask): this { method instruction (line 309) | instruction(instruction: string): this { method steps (line 314) | steps(steps: string[]): this { method deliverables (line 319) | deliverables(deliverables: string[]): this { method criteria (line 324) | criteria(criteria: string[]): this { method avoid (line 329) | avoid(antiPatterns: string[]): this { method priority (line 334) | priority(priority: ChatTask['priority']): this { method example (line 341) | example(input: string, output: string, explanation?: string): this { method examples (line 346) | examples(examples: ChatExample[]): this { method fewShot (line 351) | fewShot(examples: Array<{ input: string; output: string }>): this { method output (line 360) | output(settings: ChatOutput): this { method outputFormat (line 365) | outputFormat(format: ResponseFormatType): this { method json (line 373) | json(schema?: JsonSchema): this { method jsonSchema (line 388) | jsonSchema(name: string, schema: Record, description?... method markdown (line 399) | markdown(): this { method code (line 404) | code(language?: string): this { method table (line 409) | table(): this { method length (line 414) | length(length: OutputLength): this { method style (line 419) | style(style: OutputStyle): this { method brief (line 424) | brief(): this { method moderate (line 428) | moderate(): this { method detailed (line 432) | detailed(): this { method comprehensive (line 436) | comprehensive(): this { method exhaustive (line 440) | exhaustive(): this { method withExamples (line 444) | withExamples(): this { method withExplanation (line 449) | withExplanation(): this { method withSources (line 454) | withSources(): this { method withConfidence (line 459) | withConfidence(): this { method reasoning (line 466) | reasoning(settings: ChatReasoning): this { method reasoningStyle (line 471) | reasoningStyle(style: ReasoningStyle): this { method stepByStep (line 476) | stepByStep(): this { method chainOfThought (line 481) | chainOfThought(): this { method treeOfThought (line 486) | treeOfThought(): this { method firstPrinciples (line 491) | firstPrinciples(): this { method devilsAdvocate (line 496) | devilsAdvocate(): this { method showWork (line 501) | showWork(show = true): this { method verifyAnswer (line 506) | verifyAnswer(verify = true): this { method considerAlternatives (line 511) | considerAlternatives(consider = true): this { method explainAssumptions (line 516) | explainAssumptions(explain = true): this { method memory (line 523) | memory(memory: ChatMemory): this { method remember (line 528) | remember(facts: string[]): this { method preferences (line 534) | preferences(prefs: string[]): this { method history (line 539) | history(messages: ChatMessage[]): this { method summarizeHistory (line 544) | summarizeHistory(summary: string): this { method addSystemPart (line 551) | addSystemPart(part: string): this { method raw (line 556) | raw(content: string): this { method buildSystemPrompt (line 563) | private buildSystemPrompt(): string { method build (line 805) | build(): BuiltChatPrompt { method toString (line 849) | toString(): string { method toSystemPrompt (line 853) | toSystemPrompt(): string { method toMessages (line 857) | toMessages(): ChatMessage[] { method toJSON (line 861) | toJSON(): string { method toYAML (line 865) | toYAML(): string { method toMarkdown (line 869) | toMarkdown(): string { function objectToYaml (line 891) | function objectToYaml(obj: object, indent = 0): string { function chat (line 932) | function chat(): ChatPromptBuilder { FILE: packages/prompts.chat/src/builder/index.ts type PromptVariable (line 19) | interface PromptVariable { type BuiltPrompt (line 26) | interface BuiltPrompt { class PromptBuilder (line 39) | class PromptBuilder { method role (line 53) | role(role: string): this { method persona (line 61) | persona(persona: string): this { method context (line 68) | context(context: string): this { method background (line 76) | background(background: string): this { method task (line 83) | task(task: string): this { method instruction (line 91) | instruction(instruction: string): this { method constraints (line 98) | constraints(constraints: string[]): this { method constraint (line 106) | constraint(constraint: string): this { method rules (line 114) | rules(rules: string[]): this { method output (line 121) | output(format: string): this { method format (line 129) | format(format: string): this { method example (line 136) | example(input: string, output: string): this { method examples (line 144) | examples(examples: Array<{ input: string; output: string }>): this { method variable (line 152) | variable( method section (line 168) | section(title: string, content: string): this { method raw (line 176) | raw(content: string): this { method build (line 184) | build(): BuiltPrompt { method toString (line 268) | toString(): string { function builder (line 276) | function builder(): PromptBuilder { function fromPrompt (line 283) | function fromPrompt(content: string): PromptBuilder { FILE: packages/prompts.chat/src/builder/media.ts type OutputFormat (line 25) | type OutputFormat = 'text' | 'json' | 'yaml' | 'markdown'; type CameraBrand (line 28) | type CameraBrand = type CameraModel (line 32) | type CameraModel = type SensorFormat (line 54) | type SensorFormat = type FilmFormat (line 58) | type FilmFormat = type CameraAngle (line 63) | type CameraAngle = type ShotType (line 68) | type ShotType = type LensType (line 72) | type LensType = type LensBrand (line 77) | type LensBrand = type LensModel (line 82) | type LensModel = type FocusType (line 99) | type FocusType = type BokehStyle (line 103) | type BokehStyle = type FilterType (line 106) | type FilterType = type CameraMovement (line 111) | type CameraMovement = type CameraRig (line 117) | type CameraRig = type GimbalModel (line 122) | type GimbalModel = type LightingType (line 127) | type LightingType = type TimeOfDay (line 133) | type TimeOfDay = type WeatherLighting (line 137) | type WeatherLighting = type ArtStyle (line 142) | type ArtStyle = type FilmStock (line 152) | type FilmStock = type AspectRatio (line 181) | type AspectRatio = type ColorPalette (line 185) | type ColorPalette = type Mood (line 190) | type Mood = type VideoTransition (line 196) | type VideoTransition = type VideoPacing (line 200) | type VideoPacing = type MusicGenre (line 204) | type MusicGenre = type Instrument (line 210) | type Instrument = type VocalStyle (line 216) | type VocalStyle = type Tempo (line 220) | type Tempo = type ImageSubject (line 228) | interface ImageSubject { type ImageCamera (line 242) | interface ImageCamera { type ImageLighting (line 282) | interface ImageLighting { type ImageComposition (line 292) | interface ImageComposition { type ImageStyle (line 305) | interface ImageStyle { type ImageColor (line 314) | interface ImageColor { type ImageEnvironment (line 324) | interface ImageEnvironment { type ImageTechnical (line 335) | interface ImageTechnical { type BuiltImagePrompt (line 344) | interface BuiltImagePrompt { class ImagePromptBuilder (line 360) | class ImagePromptBuilder { method subject (line 375) | subject(main: string | ImageSubject): this { method subjectDetails (line 384) | subjectDetails(details: string[]): this { method expression (line 389) | expression(expression: string): this { method pose (line 394) | pose(pose: string): this { method action (line 399) | action(action: string): this { method clothing (line 404) | clothing(clothing: string): this { method accessories (line 409) | accessories(accessories: string[]): this { method subjectCount (line 414) | subjectCount(count: ImageSubject['count']): this { method camera (line 421) | camera(settings: ImageCamera): this { method angle (line 426) | angle(angle: CameraAngle): this { method shot (line 431) | shot(shot: ShotType): this { method lens (line 436) | lens(lens: LensType): this { method focus (line 441) | focus(focus: FocusType): this { method aperture (line 446) | aperture(aperture: string): this { method filmStock (line 451) | filmStock(filmStock: FilmStock): this { method filmFormat (line 456) | filmFormat(format: FilmFormat): this { method cameraBrand (line 461) | cameraBrand(brand: CameraBrand): this { method cameraModel (line 466) | cameraModel(model: CameraModel): this { method sensor (line 471) | sensor(sensor: SensorFormat): this { method lensModel (line 476) | lensModel(model: LensModel): this { method lensBrand (line 481) | lensBrand(brand: LensBrand): this { method focalLength (line 486) | focalLength(length: string): this { method bokeh (line 491) | bokeh(style: BokehStyle): this { method filter (line 496) | filter(filter: FilterType | FilterType[]): this { method iso (line 501) | iso(iso: number): this { method shutterSpeed (line 506) | shutterSpeed(speed: string): this { method whiteBalance (line 511) | whiteBalance(wb: ImageCamera['whiteBalance']): this { method colorProfile (line 516) | colorProfile(profile: string): this { method lighting (line 523) | lighting(settings: ImageLighting): this { method lightingType (line 528) | lightingType(type: LightingType | LightingType[]): this { method timeOfDay (line 533) | timeOfDay(time: TimeOfDay): this { method weather (line 538) | weather(weather: WeatherLighting): this { method lightDirection (line 543) | lightDirection(direction: ImageLighting['direction']): this { method lightIntensity (line 548) | lightIntensity(intensity: ImageLighting['intensity']): this { method composition (line 555) | composition(settings: ImageComposition): this { method ruleOfThirds (line 560) | ruleOfThirds(): this { method goldenRatio (line 565) | goldenRatio(): this { method symmetry (line 570) | symmetry(type: ImageComposition['symmetry']): this { method foreground (line 575) | foreground(fg: string): this { method midground (line 580) | midground(mg: string): this { method background (line 585) | background(bg: string): this { method environment (line 592) | environment(setting: string | ImageEnvironment): this { method location (line 601) | location(location: string): this { method props (line 606) | props(props: string[]): this { method atmosphere (line 611) | atmosphere(atmosphere: string): this { method season (line 616) | season(season: ImageEnvironment['season']): this { method style (line 623) | style(settings: ImageStyle): this { method medium (line 628) | medium(medium: ArtStyle | ArtStyle[]): this { method artist (line 633) | artist(artist: string | string[]): this { method influence (line 638) | influence(influences: string[]): this { method color (line 645) | color(settings: ImageColor): this { method palette (line 650) | palette(palette: ColorPalette | ColorPalette[]): this { method primaryColors (line 655) | primaryColors(colors: string[]): this { method accentColors (line 660) | accentColors(colors: string[]): this { method colorGrade (line 665) | colorGrade(grade: string): this { method technical (line 672) | technical(settings: ImageTechnical): this { method aspectRatio (line 677) | aspectRatio(ratio: AspectRatio): this { method resolution (line 682) | resolution(resolution: string): this { method quality (line 687) | quality(quality: ImageTechnical['quality']): this { method mood (line 694) | mood(mood: Mood | Mood[]): this { method negative (line 699) | negative(items: string[]): this { method custom (line 704) | custom(text: string): this { method buildPromptText (line 711) | private buildPromptText(): string { method build (line 846) | build(): BuiltImagePrompt { method toString (line 864) | toString(): string { method toJSON (line 868) | toJSON(): string { method toYAML (line 872) | toYAML(): string { method toMarkdown (line 876) | toMarkdown(): string { method format (line 910) | format(fmt: OutputFormat): string { function objectToYaml (line 924) | function objectToYaml(obj: object, indent = 0): string { function objectToMarkdownList (line 953) | function objectToMarkdownList(obj: object, indent = 0): string { function image (line 980) | function image(): ImagePromptBuilder { FILE: packages/prompts.chat/src/builder/video.ts type VideoScene (line 32) | interface VideoScene { type VideoSubject (line 40) | interface VideoSubject { type VideoCamera (line 49) | interface VideoCamera { type VideoLighting (line 94) | interface VideoLighting { type VideoAction (line 104) | interface VideoAction { type VideoMotion (line 111) | interface VideoMotion { type VideoStyle (line 119) | interface VideoStyle { type VideoColor (line 128) | interface VideoColor { type VideoAudio (line 135) | interface VideoAudio { type VideoTechnical (line 144) | interface VideoTechnical { type VideoShot (line 152) | interface VideoShot { type BuiltVideoPrompt (line 160) | interface BuiltVideoPrompt { class VideoPromptBuilder (line 184) | class VideoPromptBuilder { method scene (line 203) | scene(description: string | VideoScene): this { method setting (line 212) | setting(setting: string): this { method subject (line 219) | subject(main: string | VideoSubject): this { method appearance (line 228) | appearance(appearance: string): this { method clothing (line 233) | clothing(clothing: string): this { method camera (line 240) | camera(settings: VideoCamera): this { method shot (line 245) | shot(shot: ShotType): this { method angle (line 250) | angle(angle: CameraAngle): this { method movement (line 255) | movement(movement: CameraMovement): this { method lens (line 260) | lens(lens: LensType): this { method platform (line 265) | platform(platform: VideoCamera['platform']): this { method cameraSpeed (line 270) | cameraSpeed(speed: VideoCamera['movementSpeed']): this { method movementDirection (line 275) | movementDirection(direction: VideoCamera['movementDirection']): this { method rig (line 280) | rig(rig: CameraRig): this { method gimbal (line 285) | gimbal(gimbal: GimbalModel): this { method cameraBrand (line 290) | cameraBrand(brand: CameraBrand): this { method cameraModel (line 295) | cameraModel(model: CameraModel): this { method sensor (line 300) | sensor(sensor: SensorFormat): this { method lensModel (line 305) | lensModel(model: LensModel): this { method lensBrand (line 310) | lensBrand(brand: LensBrand): this { method focalLength (line 315) | focalLength(length: string): this { method anamorphic (line 320) | anamorphic(ratio?: VideoCamera['anamorphicRatio']): this { method aperture (line 325) | aperture(aperture: string): this { method frameRate (line 330) | frameRate(fps: VideoCamera['frameRate']): this { method slowMotion (line 335) | slowMotion(enabled = true): this { method shutterAngle (line 340) | shutterAngle(angle: number): this { method filter (line 345) | filter(filter: FilterType | FilterType[]): this { method filmStock (line 350) | filmStock(stock: FilmStock): this { method filmGrain (line 355) | filmGrain(grain: VideoCamera['filmGrain']): this { method halation (line 360) | halation(enabled = true): this { method lighting (line 367) | lighting(settings: VideoLighting): this { method lightingType (line 372) | lightingType(type: LightingType | LightingType[]): this { method timeOfDay (line 377) | timeOfDay(time: TimeOfDay): this { method weather (line 383) | weather(weather: WeatherLighting): this { method action (line 391) | action(action: string, options: Partial> =... method actions (line 400) | actions(actions: string[]): this { method motion (line 405) | motion(settings: VideoMotion): this { method motionBeats (line 410) | motionBeats(beats: string[]): this { method style (line 417) | style(settings: VideoStyle): this { method format (line 422) | format(format: string): this { method era (line 427) | era(era: string): this { method styleFilmStock (line 432) | styleFilmStock(stock: string): this { method look (line 437) | look(look: ArtStyle | ArtStyle[]): this { method reference (line 442) | reference(references: string[]): this { method color (line 449) | color(settings: VideoColor): this { method palette (line 454) | palette(palette: ColorPalette | ColorPalette[]): this { method colorAnchors (line 459) | colorAnchors(anchors: string[]): this { method colorGrade (line 464) | colorGrade(grade: string): this { method audio (line 471) | audio(settings: VideoAudio): this { method dialogue (line 476) | dialogue(dialogue: string): this { method ambient (line 481) | ambient(ambient: string): this { method diegetic (line 486) | diegetic(sounds: string[]): this { method soundEffects (line 491) | soundEffects(effects: string[]): this { method music (line 496) | music(music: string): this { method technical (line 503) | technical(settings: VideoTechnical): this { method duration (line 508) | duration(seconds: number): this { method resolution (line 513) | resolution(res: VideoTechnical['resolution']): this { method fps (line 518) | fps(fps: VideoTechnical['fps']): this { method aspectRatio (line 523) | aspectRatio(ratio: VideoTechnical['aspectRatio']): this { method addShot (line 530) | addShot(shot: VideoShot): this { method shotList (line 535) | shotList(shots: VideoShot[]): this { method mood (line 542) | mood(mood: Mood | Mood[]): this { method pacing (line 547) | pacing(pacing: VideoPacing): this { method transition (line 552) | transition(transition: VideoTransition): this { method transitions (line 557) | transitions(transitions: VideoTransition[]): this { method custom (line 562) | custom(text: string): this { method buildPromptText (line 569) | private buildPromptText(): string { method build (line 679) | build(): BuiltVideoPrompt { method toString (line 701) | toString(): string { method toJSON (line 705) | toJSON(): string { method toYAML (line 709) | toYAML(): string { method toMarkdown (line 713) | toMarkdown(): string { method outputFormat (line 747) | outputFormat(fmt: OutputFormat): string { function objectToYaml (line 761) | function objectToYaml(obj: object, indent = 0): string { function objectToMarkdownList (line 790) | function objectToMarkdownList(obj: object, indent = 0): string { function video (line 817) | function video(): VideoPromptBuilder { FILE: packages/prompts.chat/src/cli/api.ts constant PROMPTS_URL (line 5) | const PROMPTS_URL = 'https://prompts.chat/prompts.json?full_content=true'; constant CACHE_DIR (line 6) | const CACHE_DIR = join(homedir(), '.prompts-chat'); constant CACHE_FILE (line 7) | const CACHE_FILE = join(CACHE_DIR, 'prompts.json'); type Prompt (line 9) | interface Prompt { type Category (line 39) | interface Category { type CachedData (line 46) | interface CachedData { function ensureCacheDir (line 53) | function ensureCacheDir() { function loadFromCache (line 59) | function loadFromCache(): Prompt[] | null { function saveToCache (line 71) | function saveToCache(prompts: Prompt[]) { function loadPrompts (line 81) | async function loadPrompts(): Promise { function getCategories (line 110) | function getCategories(prompts: Prompt[]): Category[] { function filterPrompts (line 132) | function filterPrompts(prompts: Prompt[], options: { function getPrompt (line 170) | function getPrompt(prompts: Prompt[], id: string): Prompt | undefined { FILE: packages/prompts.chat/src/cli/components/PromptDetail.tsx type PromptDetailProps (line 9) | interface PromptDetailProps { type ViewMode (line 15) | type ViewMode = 'detail' | 'variables' | 'copied' | 'run' | 'run-variabl... function HighlightedLine (line 17) | function HighlightedLine({ text }: { text: string }) { function wrapText (line 33) | function wrapText(text: string, width: number): string[] { function PromptDetail (line 58) | function PromptDetail({ prompt, onBack, onCopy }: PromptDetailProps) { FILE: packages/prompts.chat/src/cli/components/PromptList.tsx type PromptListProps (line 7) | interface PromptListProps { type ViewMode (line 20) | type ViewMode = 'list' | 'categories'; function PromptList (line 22) | function PromptList({ FILE: packages/prompts.chat/src/cli/components/RunPrompt.tsx type RunPromptProps (line 5) | interface RunPromptProps { type Tab (line 16) | type Tab = 'chat' | 'code'; function RunPrompt (line 18) | function RunPrompt({ content, title, description, promptType, mediaUrl, ... FILE: packages/prompts.chat/src/cli/index.tsx type View (line 11) | type View = 'list' | 'detail'; type AppState (line 13) | interface AppState { function App (line 22) | function App() { function main (line 136) | async function main() { FILE: packages/prompts.chat/src/cli/new.ts constant REPO (line 5) | const REPO = 'f/prompts.chat'; type NewOptions (line 7) | interface NewOptions { function removeFiles (line 11) | function removeFiles(baseDir: string): void { function runSetup (line 41) | function runSetup(baseDir: string): Promise { function createNew (line 72) | async function createNew(options: NewOptions): Promise { FILE: packages/prompts.chat/src/cli/platforms.ts type Platform (line 1) | interface Platform { function buildUrl (line 62) | function buildUrl( FILE: packages/prompts.chat/src/parser/index.ts type PromptMessage (line 23) | interface PromptMessage { type ParsedPrompt (line 28) | interface ParsedPrompt { function parseSimpleYaml (line 53) | function parseSimpleYaml(content: string): Record { function parseJson (line 201) | function parseJson(content: string): Record { function parseMarkdown (line 208) | function parseMarkdown(content: string): Record { function normalize (line 230) | function normalize(data: Record): ParsedPrompt { function parse (line 270) | function parse(content: string, format?: 'yaml' | 'json' | 'markdown' | ... function toYaml (line 310) | function toYaml(prompt: ParsedPrompt): string { function toJson (line 355) | function toJson(prompt: ParsedPrompt, pretty: boolean = true): string { function getSystemPrompt (line 362) | function getSystemPrompt(prompt: ParsedPrompt): string { function interpolate (line 370) | function interpolate( FILE: packages/prompts.chat/src/quality/index.ts type QualityIssue (line 14) | interface QualityIssue { type QualityResult (line 21) | interface QualityResult { constant MIN_CHAR_COUNT (line 38) | const MIN_CHAR_COUNT = 20; constant MIN_WORD_COUNT (line 39) | const MIN_WORD_COUNT = 5; constant OPTIMAL_MIN_WORDS (line 40) | const OPTIMAL_MIN_WORDS = 20; constant OPTIMAL_MAX_WORDS (line 41) | const OPTIMAL_MAX_WORDS = 2000; function isGibberish (line 46) | function isGibberish(text: string): boolean { function detectPatterns (line 67) | function detectPatterns(text: string): { function countVariables (line 88) | function countVariables(text: string): number { function calculateScore (line 109) | function calculateScore( function check (line 149) | function check(prompt: string): QualityResult { function validate (line 255) | function validate(prompt: string): void { function isValid (line 271) | function isValid(prompt: string): boolean { function getSuggestions (line 278) | function getSuggestions(prompt: string): string[] { FILE: packages/prompts.chat/src/similarity/index.ts function normalizeContent (line 12) | function normalizeContent(content: string): string { function jaccardSimilarity (line 32) | function jaccardSimilarity(str1: string, str2: string): number { function ngramSimilarity (line 49) | function ngramSimilarity(str1: string, str2: string, n: number = 3): num... function calculateSimilarity (line 75) | function calculateSimilarity(content1: string, content2: string): number { function isSimilarContent (line 102) | function isSimilarContent( function getContentFingerprint (line 119) | function getContentFingerprint(content: string): string { function findDuplicates (line 129) | function findDuplicates( function deduplicate (line 162) | function deduplicate( FILE: packages/prompts.chat/src/variables/index.ts type DetectedVariable (line 7) | interface DetectedVariable { type VariablePattern (line 16) | type VariablePattern = type PatternConfig (line 25) | interface PatternConfig { constant PATTERNS (line 33) | const PATTERNS: PatternConfig[] = [ constant FALSE_POSITIVES (line 81) | const FALSE_POSITIVES = new Set([ function isInsideJsonString (line 102) | function isInsideJsonString(text: string, index: number): boolean { function detectVariables (line 116) | function detectVariables(text: string): DetectedVariable[] { function convertToSupportedFormat (line 197) | function convertToSupportedFormat(variable: DetectedVariable): string { function convertAllVariables (line 214) | function convertAllVariables(text: string): string { function getPatternDescription (line 244) | function getPatternDescription(pattern: VariablePattern): string { function extractVariables (line 259) | function extractVariables(text: string): Array<{ name: string; defaultVa... function compile (line 277) | function compile( FILE: packages/raycast-extension/src/api.ts type PromptsChatPreferences (line 4) | interface PromptsChatPreferences { function getBaseUrl (line 8) | function getBaseUrl(): string { function fetchPrompts (line 13) | async function fetchPrompts(options: { function fetchPromptBySlug (line 43) | async function fetchPromptBySlug( function searchPrompts (line 61) | async function searchPrompts( function getPromptUrl (line 95) | function getPromptUrl(username: string, slug: string): string { function getWebsiteUrl (line 100) | function getWebsiteUrl(): string { FILE: packages/raycast-extension/src/browse-categories.tsx type Category (line 23) | interface Category { function BrowseCategories (line 29) | function BrowseCategories() { function PromptListItem (line 220) | function PromptListItem({ FILE: packages/raycast-extension/src/browse-prompts.tsx constant TYPE_OPTIONS (line 18) | const TYPE_OPTIONS = [ constant SORT_OPTIONS (line 27) | const SORT_OPTIONS = [ function BrowsePrompts (line 33) | function BrowsePrompts() { function PromptListItem (line 148) | function PromptListItem({ prompt }: { prompt: Prompt }) { FILE: packages/raycast-extension/src/cache.ts constant PROMPTS_CACHE_KEY (line 5) | const PROMPTS_CACHE_KEY = "cached_prompts"; constant CACHE_TIMESTAMP_KEY (line 6) | const CACHE_TIMESTAMP_KEY = "cached_prompts_timestamp"; type CachedPrompt (line 8) | interface CachedPrompt { function getCachedPrompts (line 27) | async function getCachedPrompts(): Promise { function setCachedPrompts (line 37) | async function setCachedPrompts(prompts: CachedPrompt[]): Promise { function getCacheTimestamp (line 42) | async function getCacheTimestamp(): Promise { function clearCache (line 47) | async function clearCache(): Promise { type PromptsJsonResponse (line 52) | interface PromptsJsonResponse { function downloadAllPrompts (line 79) | async function downloadAllPrompts(): Promise { function searchPrompts (line 111) | function searchPrompts( function convertToPrompt (line 130) | function convertToPrompt(cached: CachedPrompt): Prompt { FILE: packages/raycast-extension/src/components/prompt-detail.tsx type PromptDetailViewProps (line 14) | interface PromptDetailViewProps { function PromptDetailView (line 19) | function PromptDetailView({ prompt, onRefresh }: PromptDetailViewProps) { FILE: packages/raycast-extension/src/components/run-prompt.tsx type RunPromptProps (line 28) | interface RunPromptProps { function RunPromptForm (line 32) | function RunPromptForm({ prompt }: RunPromptProps) { type PlatformListProps (line 94) | interface PlatformListProps { function PlatformList (line 99) | function PlatformList({ prompt, content }: PlatformListProps) { FILE: packages/raycast-extension/src/download-prompts.tsx function DownloadPrompts (line 17) | function DownloadPrompts() { FILE: packages/raycast-extension/src/random-prompt.tsx function RandomPrompt (line 7) | function RandomPrompt() { FILE: packages/raycast-extension/src/search-prompts.tsx function SearchPrompts (line 24) | function SearchPrompts() { function PromptListItem (line 107) | function PromptListItem({ prompt }: { prompt: Prompt }) { FILE: packages/raycast-extension/src/types.ts type Author (line 1) | interface Author { type Category (line 9) | interface Category { type Tag (line 20) | interface Tag { type PromptTag (line 26) | interface PromptTag { type Prompt (line 30) | interface Prompt { type PromptsResponse (line 48) | interface PromptsResponse { type SearchPromptsResponse (line 56) | interface SearchPromptsResponse { FILE: packages/raycast-extension/src/utils.ts type Variable (line 1) | interface Variable { function extractVariables (line 9) | function extractVariables(content: string): Variable[] { function compilePrompt (line 31) | function compilePrompt( type Platform (line 44) | interface Platform { function buildUrl (line 233) | function buildUrl( FILE: prisma/migrations/20251208165032/migration.sql type "users" (line 11) | CREATE TABLE "users" ( type "accounts" (line 28) | CREATE TABLE "accounts" ( type "sessions" (line 46) | CREATE TABLE "sessions" ( type "verification_tokens" (line 56) | CREATE TABLE "verification_tokens" ( type "prompts" (line 63) | CREATE TABLE "prompts" ( type "prompt_versions" (line 81) | CREATE TABLE "prompt_versions" ( type "change_requests" (line 94) | CREATE TABLE "change_requests" ( type "categories" (line 110) | CREATE TABLE "categories" ( type "tags" (line 123) | CREATE TABLE "tags" ( type "prompt_tags" (line 133) | CREATE TABLE "prompt_tags" ( type "users" (line 141) | CREATE UNIQUE INDEX "users_email_key" ON "users"("email") type "users" (line 144) | CREATE UNIQUE INDEX "users_username_key" ON "users"("username") type "accounts" (line 147) | CREATE UNIQUE INDEX "accounts_provider_providerAccountId_key" ON "accoun... type "sessions" (line 150) | CREATE UNIQUE INDEX "sessions_sessionToken_key" ON "sessions"("sessionTo... type "verification_tokens" (line 153) | CREATE UNIQUE INDEX "verification_tokens_token_key" ON "verification_tok... type "verification_tokens" (line 156) | CREATE UNIQUE INDEX "verification_tokens_identifier_token_key" ON "verif... type "prompts" (line 159) | CREATE INDEX "prompts_authorId_idx" ON "prompts"("authorId") type "prompts" (line 162) | CREATE INDEX "prompts_categoryId_idx" ON "prompts"("categoryId") type "prompts" (line 165) | CREATE INDEX "prompts_type_idx" ON "prompts"("type") type "prompts" (line 168) | CREATE INDEX "prompts_isPrivate_idx" ON "prompts"("isPrivate") type "prompt_versions" (line 171) | CREATE INDEX "prompt_versions_promptId_idx" ON "prompt_versions"("prompt... type "prompt_versions" (line 174) | CREATE UNIQUE INDEX "prompt_versions_promptId_version_key" ON "prompt_ve... type "change_requests" (line 177) | CREATE INDEX "change_requests_promptId_idx" ON "change_requests"("prompt... type "change_requests" (line 180) | CREATE INDEX "change_requests_authorId_idx" ON "change_requests"("author... type "change_requests" (line 183) | CREATE INDEX "change_requests_status_idx" ON "change_requests"("status") type "categories" (line 186) | CREATE UNIQUE INDEX "categories_slug_key" ON "categories"("slug") type "categories" (line 189) | CREATE INDEX "categories_parentId_idx" ON "categories"("parentId") type "tags" (line 192) | CREATE UNIQUE INDEX "tags_name_key" ON "tags"("name") type "tags" (line 195) | CREATE UNIQUE INDEX "tags_slug_key" ON "tags"("slug") FILE: prisma/migrations/20251208185808_init/migration.sql type "category_subscriptions" (line 2) | CREATE TABLE "category_subscriptions" ( type "category_subscriptions" (line 11) | CREATE INDEX "category_subscriptions_userId_idx" ON "category_subscripti... type "category_subscriptions" (line 14) | CREATE INDEX "category_subscriptions_categoryId_idx" ON "category_subscr... FILE: prisma/migrations/20251210224836_add_embedding_field/migration.sql type "prompt_votes" (line 32) | CREATE TABLE "prompt_votes" ( type "pinned_prompts" (line 41) | CREATE TABLE "pinned_prompts" ( type "webhook_configs" (line 51) | CREATE TABLE "webhook_configs" ( type "_PromptContributors" (line 67) | CREATE TABLE "_PromptContributors" ( type "prompt_votes" (line 75) | CREATE INDEX "prompt_votes_userId_idx" ON "prompt_votes"("userId") type "prompt_votes" (line 78) | CREATE INDEX "prompt_votes_promptId_idx" ON "prompt_votes"("promptId") type "pinned_prompts" (line 81) | CREATE INDEX "pinned_prompts_userId_idx" ON "pinned_prompts"("userId") type "_PromptContributors" (line 84) | CREATE INDEX "_PromptContributors_B_index" ON "_PromptContributors"("B") FILE: prisma/migrations/20251211093327_add_featured_prompts/migration.sql type "prompts" (line 6) | CREATE INDEX "prompts_isFeatured_idx" ON "prompts"("isFeatured") FILE: prisma/migrations/20251213100000_add_verified_and_reports/migration.sql type "prompt_reports" (line 19) | CREATE TABLE IF NOT EXISTS "prompt_reports" ( type "prompt_reports" (line 33) | CREATE INDEX "prompt_reports_promptId_idx" ON "prompt_reports"("promptId") type "prompt_reports" (line 36) | CREATE INDEX "prompt_reports_reporterId_idx" ON "prompt_reports"("report... type "prompt_reports" (line 39) | CREATE INDEX "prompt_reports_status_idx" ON "prompt_reports"("status") FILE: prisma/migrations/20251213133000_add_github_username/migration.sql type "users" (line 5) | CREATE INDEX IF NOT EXISTS "users_githubUsername_idx" ON "users"("github... FILE: prisma/migrations/20251213203400_add_unlisted_field/migration.sql type "prompts" (line 6) | CREATE INDEX IF NOT EXISTS "prompts_isUnlisted_idx" ON "prompts"("isUnli... FILE: prisma/migrations/20251216195800_add_api_key_and_mcp_settings/migration.sql type "users" (line 6) | CREATE UNIQUE INDEX "users_apiKey_key" ON "users"("apiKey") FILE: prisma/migrations/20251218145900_add_comments_system/migration.sql type "comments" (line 5) | CREATE TABLE "comments" ( type "comment_votes" (line 23) | CREATE TABLE "comment_votes" ( type "notifications" (line 33) | CREATE TABLE "notifications" ( type "comments" (line 47) | CREATE INDEX "comments_promptId_idx" ON "comments"("promptId") type "comments" (line 50) | CREATE INDEX "comments_authorId_idx" ON "comments"("authorId") type "comments" (line 53) | CREATE INDEX "comments_parentId_idx" ON "comments"("parentId") type "comment_votes" (line 56) | CREATE INDEX "comment_votes_userId_idx" ON "comment_votes"("userId") type "comment_votes" (line 59) | CREATE INDEX "comment_votes_commentId_idx" ON "comment_votes"("commentId") type "notifications" (line 62) | CREATE INDEX "notifications_userId_idx" ON "notifications"("userId") type "notifications" (line 65) | CREATE INDEX "notifications_userId_read_idx" ON "notifications"("userId"... FILE: prisma/migrations/20251221121143_add_prompt_connections/migration.sql type "prompt_connections" (line 5) | CREATE TABLE "prompt_connections" ( type "prompt_connections" (line 18) | CREATE INDEX "prompt_connections_sourceId_idx" ON "prompt_connections"("... type "prompt_connections" (line 21) | CREATE INDEX "prompt_connections_targetId_idx" ON "prompt_connections"("... type "prompt_connections" (line 24) | CREATE UNIQUE INDEX "prompt_connections_sourceId_targetId_key" ON "promp... FILE: prisma/migrations/20251227125700_add_pinned_categories/migration.sql type "categories" (line 5) | CREATE INDEX "categories_pinned_idx" ON "categories"("pinned") FILE: prisma/migrations/20260104210000_add_collections/migration.sql type "collections" (line 2) | CREATE TABLE "collections" ( type "collections" (line 11) | CREATE INDEX "collections_userId_idx" ON "collections"("userId") type "collections" (line 14) | CREATE INDEX "collections_promptId_idx" ON "collections"("promptId") FILE: prisma/migrations/20260201175000_add_user_prompt_examples/migration.sql type "user_prompt_examples" (line 2) | CREATE TABLE "user_prompt_examples" ( type "user_prompt_examples" (line 14) | CREATE INDEX "user_prompt_examples_promptId_idx" ON "user_prompt_example... type "user_prompt_examples" (line 17) | CREATE INDEX "user_prompt_examples_userId_idx" ON "user_prompt_examples"... FILE: prisma/migrations/20260324100000_add_ci_username_unique_index/migration.sql type "users" (line 3) | CREATE UNIQUE INDEX "users_username_ci_unique" ON "users" (LOWER("userna... type "users" (line 4) | CREATE UNIQUE INDEX "users_email_ci_unique" ON "users" (LOWER("email")) FILE: prisma/reset-admin.ts function main (line 6) | async function main() { FILE: prisma/seed.ts constant PROMPTS_JSON_URL (line 6) | const PROMPTS_JSON_URL = "https://prompts.chat/prompts.json?full_content... type RemotePromptRaw (line 9) | interface RemotePromptRaw { type RemotePrompt (line 57) | type RemotePrompt = RemotePromptRaw & { content: string }; function hasContent (line 60) | function hasContent(prompt: RemotePromptRaw): prompt is RemotePrompt { type RemotePromptsResponse (line 64) | interface RemotePromptsResponse { function fetchPrompts (line 70) | async function fetchPrompts(): Promise { function main (line 82) | async function main() { FILE: scripts/check-translations.js function flattenKeys (line 17) | function flattenKeys(obj, prefix = '') { function getValue (line 28) | function getValue(obj, keyPath) { FILE: scripts/docker-setup.js constant CONFIG_FILE (line 37) | const CONFIG_FILE = path.join(__dirname, '..', 'prompts.config.ts'); function env (line 39) | function env(key, defaultValue) { function envBool (line 43) | function envBool(key, defaultValue) { function envArray (line 49) | function envArray(key, defaultValue) { function generateConfig (line 55) | function generateConfig(config) { function main (line 120) | function main() { FILE: scripts/find-unused-translations.js function flattenKeys (line 16) | function flattenKeys(obj, prefix = '') { function getAllFiles (line 31) | function getAllFiles(dir, extensions = ['.tsx', '.ts', '.js', '.jsx']) { function checkKeyUsage (line 139) | function checkKeyUsage(content, fnName, key) { function escapeRegex (line 158) | function escapeRegex(str) { FILE: scripts/generate-book-pdf.ts constant BOOK_DIR (line 22) | const BOOK_DIR = path.join(process.cwd(), 'src/content/book'); constant MESSAGES_DIR (line 23) | const MESSAGES_DIR = path.join(process.cwd(), 'messages'); constant OUTPUT_DIR (line 24) | const OUTPUT_DIR = path.join(process.cwd(), 'public/book-pdf'); constant SITE_URL (line 25) | const SITE_URL = 'https://prompts.chat'; constant PRINT_READY (line 28) | const PRINT_READY = process.argv.includes('--print'); constant BLEED (line 31) | const BLEED = '0.125in'; constant TRIM_WIDTH (line 32) | const TRIM_WIDTH = '6in'; constant TRIM_HEIGHT (line 33) | const TRIM_HEIGHT = '9in'; constant BLEED_WIDTH (line 34) | const BLEED_WIDTH = '6.25in'; constant BLEED_HEIGHT (line 35) | const BLEED_HEIGHT = '9.25in'; constant INTERACTIVE_ONLY_COMPONENTS (line 39) | const INTERACTIVE_ONLY_COMPONENTS = [ function loadMessages (line 48) | function loadMessages(locale: string): Record { function t (line 62) | function t(messages: Record, key: string): string { constant STATICALLY_RENDERED_COMPONENTS (line 76) | const STATICALLY_RENDERED_COMPONENTS = [ constant INTERACTIVE_NOTICES (line 96) | const INTERACTIVE_NOTICES: Record = { constant SVG_ICONS (line 120) | const SVG_ICONS: Record = { function icon (line 147) | function icon(name: string, emoji: string): string { constant BOOK_TITLES_FALLBACK (line 155) | const BOOK_TITLES_FALLBACK: Record = { type ProcessedChapter (line 160) | interface ProcessedChapter { function getAvailableLocales (line 170) | function getAvailableLocales(): string[] { function getLocalePath (line 187) | function getLocalePath(locale: string): string { function chapterExists (line 197) | function chapterExists(locale: string, slug: string): boolean { function extractTryItPrompt (line 206) | function extractTryItPrompt(content: string): string | null { function extractQuizContent (line 220) | function extractQuizContent(content: string): { question: string; option... function extractCalloutContent (line 243) | function extractCalloutContent(match: string): { type: string; title: st... function extractInfoGridItems (line 260) | function extractInfoGridItems(content: string): { label: string; descrip... function extractChecklistItems (line 282) | function extractChecklistItems(content: string): { title: string; items:... function extractProps (line 303) | function extractProps(content: string): Record { function extractArrayProp (line 322) | function extractArrayProp(content: string, propName: string): Record = { function generateHtmlDocument (line 2136) | function generateHtmlDocument(chapters: ProcessedChapter[], locale: stri... function main (line 4183) | async function main() { FILE: scripts/html-to-pdf.ts constant OUTPUT_DIR (line 22) | const OUTPUT_DIR = path.join(process.cwd(), 'public/book-pdf'); constant SCREEN_WIDTH (line 25) | const SCREEN_WIDTH = '6in'; constant SCREEN_HEIGHT (line 26) | const SCREEN_HEIGHT = '9in'; constant PRINT_WIDTH (line 27) | const PRINT_WIDTH = '6.25in'; constant PRINT_HEIGHT (line 28) | const PRINT_HEIGHT = '9.25in'; function convertToPdf (line 30) | async function convertToPdf(htmlPath: string, pdfPath: string, printRead... function main (line 115) | async function main() { FILE: scripts/lint-mdx.js constant BOOK_DIR (line 17) | const BOOK_DIR = path.join(__dirname, "../src/content/book"); constant SELF_CLOSING_COMPONENTS (line 20) | const SELF_CLOSING_COMPONENTS = new Set([ constant BLOCK_COMPONENTS (line 38) | const BLOCK_COMPONENTS = new Set([ class MDXLinter (line 46) | class MDXLinter { method constructor (line 47) | constructor(filePath) { method addError (line 55) | addError(line, message) { method addWarning (line 59) | addWarning(line, message) { method load (line 63) | load() { method checkEmptyFile (line 74) | checkEmptyFile() { method checkUnbalancedBraces (line 80) | checkUnbalancedBraces() { method checkJSXTags (line 105) | checkJSXTags() { method checkJSXAttributes (line 245) | checkJSXAttributes() { method checkTrailingWhitespace (line 282) | checkTrailingWhitespace() { method checkConsecutiveBlankLines (line 291) | checkConsecutiveBlankLines() { method lint (line 305) | lint() { method hasIssues (line 319) | hasIssues() { method printResults (line 323) | printResults() { function findMDXFiles (line 338) | function findMDXFiles(dir) { function main (line 357) | function main() { FILE: scripts/seed-skills.ts type SkillMetadata (line 23) | interface SkillMetadata { function parseFrontmatter (line 32) | function parseFrontmatter(content: string): { metadata: SkillMetadata; b... function readSkillFiles (line 62) | function readSkillFiles(skillDir: string, basePath: string = ""): Array<... function serializeSkillFiles (line 91) | function serializeSkillFiles(files: Array<{ path: string; content: strin... function importSkill (line 112) | async function importSkill(skillDir: string, authorId: string): Promise<... function main (line 171) | async function main() { FILE: scripts/setup.js constant CONFIG_FILE (line 18) | const CONFIG_FILE = path.join(__dirname, '..', 'prompts.config.ts'); constant ENV_FILE (line 19) | const ENV_FILE = path.join(__dirname, '..', '.env'); function generateAuthSecret (line 21) | function generateAuthSecret() { function buildDatabaseUrl (line 25) | function buildDatabaseUrl(config) { function generateEnvFile (line 30) | function generateEnvFile(config) { function generateConfig (line 95) | function generateConfig(config) { function handleCancel (line 166) | function handleCancel() { function main (line 171) | async function main() { FILE: src/__tests__/api/mcp-handler.test.ts function createMockReq (line 38) | function createMockReq(method: string, overrides: Partial>): st... function LoginPage (line 23) | async function LoginPage() { FILE: src/app/(auth)/register/page.tsx function getProviders (line 14) | function getProviders(config: Awaited>): st... function RegisterPage (line 24) | async function RegisterPage() { FILE: src/app/.well-known/skills/[...path]/route.ts constant SKILLS_DIR (line 5) | const SKILLS_DIR = path.join( function GET (line 10) | async function GET( FILE: src/app/.well-known/skills/index.json/route.ts constant SKILLS_DIR (line 5) | const SKILLS_DIR = path.join( function GET (line 10) | async function GET() { FILE: src/app/[username]/loading.tsx function UserProfileLoading (line 3) | function UserProfileLoading() { FILE: src/app/[username]/opengraph-image.tsx function OGImage (line 20) | async function OGImage({ params }: { params: Promise<{ username: string ... FILE: src/app/[username]/page.tsx type UserProfilePageProps (line 23) | interface UserProfilePageProps { function generateMetadata (line 28) | async function generateMetadata({ params }: UserProfilePageProps): Promi... function UserProfilePage (line 55) | async function UserProfilePage({ params, searchParams }: UserProfilePage... FILE: src/app/about/contributor-avatar.tsx type ContributorAvatarProps (line 7) | interface ContributorAvatarProps { function ContributorAvatar (line 11) | function ContributorAvatar({ username }: ContributorAvatarProps) { FILE: src/app/about/page.tsx function generateMetadata (line 14) | async function generateMetadata(): Promise { function getContributors (line 22) | async function getContributors() { function BrandIcon (line 197) | function BrandIcon({ name }: { name: string }) { function AboutPage (line 282) | async function AboutPage() { FILE: src/app/admin/page.tsx function AdminPage (line 23) | async function AdminPage() { FILE: src/app/ads.txt/route.ts function GET (line 3) | async function GET() { FILE: src/app/api/admin/categories/[id]/route.ts function PATCH (line 7) | async function PATCH( function DELETE (line 43) | async function DELETE( FILE: src/app/api/admin/categories/route.ts function POST (line 7) | async function POST(request: NextRequest) { FILE: src/app/api/admin/embeddings/route.ts function POST (line 5) | async function POST(request: NextRequest) { FILE: src/app/api/admin/import-prompts/route.ts type CsvRow (line 7) | interface CsvRow { function unescapeString (line 16) | function unescapeString(str: string): string { function parseCSV (line 24) | function parseCSV(content: string): CsvRow[] { function mapCsvTypeToPromptType (line 92) | function mapCsvTypeToPromptType(csvType: string): { type: "TEXT" | "IMAG... function POST (line 103) | async function POST(request: NextRequest) { function DELETE (line 266) | async function DELETE(request: NextRequest) { FILE: src/app/api/admin/prompts/[id]/route.ts function DELETE (line 6) | async function DELETE( FILE: src/app/api/admin/prompts/route.ts function GET (line 6) | async function GET(request: NextRequest) { FILE: src/app/api/admin/related-prompts/route.ts function POST (line 8) | async function POST() { FILE: src/app/api/admin/reports/[id]/route.ts function PATCH (line 10) | async function PATCH( FILE: src/app/api/admin/slugs/route.ts function POST (line 6) | async function POST(request: Request) { function GET (line 103) | async function GET() { FILE: src/app/api/admin/tags/[id]/route.ts function PATCH (line 6) | async function PATCH( function DELETE (line 37) | async function DELETE( FILE: src/app/api/admin/tags/route.ts function POST (line 6) | async function POST(request: NextRequest) { FILE: src/app/api/admin/users/[id]/route.ts function PATCH (line 6) | async function PATCH( function DELETE (line 91) | async function DELETE( FILE: src/app/api/admin/users/route.ts function GET (line 6) | async function GET(request: NextRequest) { FILE: src/app/api/admin/webhooks/[id]/route.ts constant VALID_METHODS (line 7) | const VALID_METHODS = ["GET", "POST", "PUT", "PATCH"]; constant VALID_EVENTS (line 8) | const VALID_EVENTS = ["PROMPT_CREATED", "PROMPT_UPDATED", "PROMPT_DELETE... type UpdateWebhookData (line 10) | interface UpdateWebhookData { function validateUpdateWebhook (line 20) | function validateUpdateWebhook(body: unknown): { success: true; data: Up... function GET (line 90) | async function GET( function PATCH (line 117) | async function PATCH( function DELETE (line 158) | async function DELETE( FILE: src/app/api/admin/webhooks/[id]/test/route.ts function POST (line 6) | async function POST( FILE: src/app/api/admin/webhooks/route.ts constant VALID_METHODS (line 7) | const VALID_METHODS = ["GET", "POST", "PUT", "PATCH"] as const; constant VALID_EVENTS (line 8) | const VALID_EVENTS = ["PROMPT_CREATED", "PROMPT_UPDATED", "PROMPT_DELETE... type WebhookInput (line 10) | type WebhookInput = { function validateWebhook (line 20) | function validateWebhook(body: unknown): { success: true; data: WebhookI... function GET (line 80) | async function GET() { function POST (line 99) | async function POST(request: Request) { FILE: src/app/api/auth/register/route.ts function POST (line 18) | async function POST(request: Request) { FILE: src/app/api/book/demo/route.ts constant GENERATIVE_MODEL (line 6) | const GENERATIVE_MODEL = process.env.OPENAI_GENERATIVE_MODEL || "gpt-4o-... constant RATE_LIMIT_WINDOW_MS (line 9) | const RATE_LIMIT_WINDOW_MS = 60 * 1000; constant RATE_LIMIT_MAX_REQUESTS_AUTH (line 10) | const RATE_LIMIT_MAX_REQUESTS_AUTH = 5; constant RATE_LIMIT_MAX_REQUESTS_ANON (line 11) | const RATE_LIMIT_MAX_REQUESTS_ANON = 3; constant DAILY_LIMIT_ANON (line 12) | const DAILY_LIMIT_ANON = 10; function getClientId (line 18) | function getClientId(request: NextRequest, userId?: string): string { function checkRateLimit (line 27) | function checkRateLimit( type DemoType (line 73) | type DemoType = type BlankValidation (line 81) | interface BlankValidation { type RequestBody (line 88) | interface RequestBody { constant SYSTEM_PROMPTS (line 99) | const SYSTEM_PROMPTS: Record = { function POST (line 177) | async function POST(request: NextRequest) { FILE: src/app/api/categories/[id]/subscribe/route.ts function POST (line 6) | async function POST( function DELETE (line 78) | async function DELETE( FILE: src/app/api/collection/route.ts function GET (line 10) | async function GET() { function POST (line 55) | async function POST(req: NextRequest) { function DELETE (line 109) | async function DELETE(req: NextRequest) { FILE: src/app/api/config/storage/route.ts function GET (line 3) | async function GET() { FILE: src/app/api/cron/reset-credits/route.ts function POST (line 16) | async function POST(request: NextRequest) { function GET (line 64) | async function GET(request: NextRequest) { FILE: src/app/api/generate/sql/route.ts function POST (line 5) | async function POST(request: NextRequest) { FILE: src/app/api/health/route.ts function GET (line 6) | async function GET() { FILE: src/app/api/improve-prompt/route.ts function authenticateRequest (line 14) | async function authenticateRequest(request: NextRequest) { function POST (line 38) | async function POST(request: NextRequest) { FILE: src/app/api/leaderboard/route.ts function GET (line 150) | async function GET(request: Request) { FILE: src/app/api/media-generate/route.ts function GET (line 10) | async function GET() { function POST (line 45) | async function POST(request: NextRequest) { FILE: src/app/api/media-generate/status/route.ts function GET (line 9) | async function GET(request: NextRequest) { FILE: src/app/api/prompt-builder/chat/route.ts constant GENERATIVE_MODEL (line 14) | const GENERATIVE_MODEL = process.env.OPENAI_GENERATIVE_MODEL || "gpt-4o-... constant RATE_LIMIT_WINDOW_MS (line 17) | const RATE_LIMIT_WINDOW_MS = 60 * 1000; constant RATE_LIMIT_MAX_REQUESTS (line 18) | const RATE_LIMIT_MAX_REQUESTS = 10; function checkRateLimit (line 23) | function checkRateLimit(userId: string): { allowed: boolean; remaining: ... constant SYSTEM_PROMPT (line 41) | const SYSTEM_PROMPT = getSystemPrompt(promptBuilderAgentPrompt); type ChatMessage (line 43) | interface ChatMessage { type RequestBody (line 57) | interface RequestBody { function POST (line 64) | async function POST(request: NextRequest) { FILE: src/app/api/prompt-builder/generate-example/route.ts constant GENERATIVE_MODEL (line 16) | const GENERATIVE_MODEL = process.env.OPENAI_GENERATIVE_MODEL || "gpt-4o"; function extractValidMethods (line 19) | function extractValidMethods(): Map> { function detectBuilderType (line 48) | function detectBuilderType(code: string): string | null { function removeInvalidMethods (line 58) | function removeInvalidMethods(code: string, validMethods: Set): ... function validateAndCleanCode (line 105) | function validateAndCleanCode(code: string): string { constant RATE_LIMIT_WINDOW_MS (line 121) | const RATE_LIMIT_WINDOW_MS = 60 * 1000; constant RATE_LIMIT_MAX_REQUESTS (line 122) | const RATE_LIMIT_MAX_REQUESTS = 1; function checkRateLimit (line 126) | function checkRateLimit(userId: string): { allowed: boolean; remaining: ... function POST (line 143) | async function POST() { FILE: src/app/api/prompts/[id]/changes/[changeId]/route.ts function PATCH (line 12) | async function PATCH( function GET (line 178) | async function GET( function DELETE (line 227) | async function DELETE( FILE: src/app/api/prompts/[id]/changes/route.ts function POST (line 13) | async function POST( function GET (line 91) | async function GET( FILE: src/app/api/prompts/[id]/comments/[commentId]/flag/route.ts function POST (line 7) | async function POST( FILE: src/app/api/prompts/[id]/comments/[commentId]/route.ts function DELETE (line 7) | async function DELETE( FILE: src/app/api/prompts/[id]/comments/[commentId]/vote/route.ts function POST (line 14) | async function POST( function DELETE (line 143) | async function DELETE( FILE: src/app/api/prompts/[id]/comments/route.ts function GET (line 13) | async function GET( function POST (line 122) | async function POST( FILE: src/app/api/prompts/[id]/connections/[connectionId]/route.ts type RouteParams (line 12) | interface RouteParams { function DELETE (line 16) | async function DELETE(request: NextRequest, { params }: RouteParams) { function PATCH (line 76) | async function PATCH(request: NextRequest, { params }: RouteParams) { FILE: src/app/api/prompts/[id]/connections/route.ts type RouteParams (line 13) | interface RouteParams { function GET (line 17) | async function GET(request: NextRequest, { params }: RouteParams) { function POST (line 89) | async function POST(request: NextRequest, { params }: RouteParams) { FILE: src/app/api/prompts/[id]/examples/route.ts function GET (line 12) | async function GET( function POST (line 49) | async function POST( function DELETE (line 113) | async function DELETE( FILE: src/app/api/prompts/[id]/feature/route.ts function POST (line 6) | async function POST( FILE: src/app/api/prompts/[id]/flow/route.ts type FlowNode (line 6) | interface FlowNode { type FlowEdge (line 22) | interface FlowEdge { type RouteParams (line 28) | interface RouteParams { function GET (line 157) | async function GET(request: NextRequest, { params }: RouteParams) { FILE: src/app/api/prompts/[id]/pin/route.ts constant MAX_PINNED_PROMPTS (line 5) | const MAX_PINNED_PROMPTS = 3; function POST (line 7) | async function POST( function DELETE (line 86) | async function DELETE( FILE: src/app/api/prompts/[id]/raw/route.ts type OutputFormat (line 4) | type OutputFormat = "md" | "yml"; type FileType (line 5) | type FileType = "prompt" | "skill"; function parseIdParam (line 12) | function parseIdParam(idParam: string): { id: string; format: OutputForm... function convertVariables (line 41) | function convertVariables(str: string): string { function yamlEscape (line 48) | function yamlEscape(str: string): string { function GET (line 55) | async function GET( FILE: src/app/api/prompts/[id]/restore/route.ts function POST (line 5) | async function POST( FILE: src/app/api/prompts/[id]/route.ts function GET (line 33) | async function GET( function PATCH (line 120) | async function PATCH( function DELETE (line 355) | async function DELETE( FILE: src/app/api/prompts/[id]/skill/route.ts function parseIdParam (line 10) | function parseIdParam(idParam: string): string { function GET (line 27) | async function GET( FILE: src/app/api/prompts/[id]/unlist/route.ts function POST (line 7) | async function POST( FILE: src/app/api/prompts/[id]/versions/[versionId]/route.ts function DELETE (line 5) | async function DELETE( FILE: src/app/api/prompts/[id]/versions/route.ts function POST (line 13) | async function POST( function GET (line 113) | async function GET( FILE: src/app/api/prompts/[id]/vote/route.ts function POST (line 7) | async function POST( function DELETE (line 72) | async function DELETE( FILE: src/app/api/prompts/route.ts function POST (line 35) | async function POST(request: Request) { function GET (line 309) | async function GET(request: Request) { FILE: src/app/api/prompts/search/route.ts function GET (line 5) | async function GET(request: NextRequest) { FILE: src/app/api/prompts/translate/route.ts function POST (line 11) | async function POST(request: NextRequest) { FILE: src/app/api/reports/route.ts function POST (line 12) | async function POST(request: Request) { FILE: src/app/api/search/ai/route.ts function GET (line 4) | async function GET(request: NextRequest) { FILE: src/app/api/upload/route.ts constant MAX_IMAGE_SIZE (line 6) | const MAX_IMAGE_SIZE = 4 * 1024 * 1024; constant MAX_VIDEO_SIZE (line 7) | const MAX_VIDEO_SIZE = 4 * 1024 * 1024; constant ALLOWED_IMAGE_TYPES (line 8) | const ALLOWED_IMAGE_TYPES = ["image/jpeg", "image/png", "image/gif", "im... constant ALLOWED_VIDEO_TYPES (line 9) | const ALLOWED_VIDEO_TYPES = ["video/mp4"]; function compressToJpg (line 11) | async function compressToJpg(buffer: Buffer): Promise { function POST (line 17) | async function POST(request: NextRequest) { FILE: src/app/api/user/api-key/route.ts function GET (line 8) | async function GET() { function POST (line 34) | async function POST() { function DELETE (line 51) | async function DELETE() { function PATCH (line 66) | async function PATCH(request: Request) { FILE: src/app/api/user/notifications/route.ts constant DEFAULT_RESPONSE (line 5) | const DEFAULT_RESPONSE = { function GET (line 11) | async function GET() { function POST (line 88) | async function POST(request: Request) { FILE: src/app/api/user/profile/route.ts function PATCH (line 25) | async function PATCH(request: NextRequest) { function GET (line 88) | async function GET() { FILE: src/app/api/users/search/route.ts function GET (line 5) | async function GET(request: Request) { FILE: src/app/book/[slug]/page.tsx type ChapterPageProps (line 10) | interface ChapterPageProps { function generateStaticParams (line 14) | async function generateStaticParams() { function generateMetadata (line 20) | async function generateMetadata({ params }: ChapterPageProps): Promise { function BookHomePage (line 115) | async function BookHomePage() { FILE: src/app/brand/page.tsx function PromiLogo (line 12) | function PromiLogo({ className }: { className?: string }) { function PromiLogoDark (line 47) | function PromiLogoDark({ className }: { className?: string }) { type AssetCardProps (line 81) | interface AssetCardProps { function AssetCard (line 90) | function AssetCard({ title, description, bgClass, children, downloadUrl,... type ColorCardProps (line 127) | interface ColorCardProps { function ColorCard (line 133) | function ColorCard({ color, name, description }: ColorCardProps) { function isLight (line 165) | function isLight(color: string): boolean { function BrandAssetsPage (line 174) | function BrandAssetsPage() { FILE: src/app/builder/page.tsx function BuilderPage (line 3) | function BuilderPage() { FILE: src/app/categories/[slug]/page.tsx type CategoryPageProps (line 15) | interface CategoryPageProps { constant PROMPTS_PER_PAGE (line 20) | const PROMPTS_PER_PAGE = 30; function generateMetadata (line 22) | async function generateMetadata({ params }: CategoryPageProps): Promise<... function CategoryPage (line 39) | async function CategoryPage({ params, searchParams }: CategoryPageProps) { FILE: src/app/categories/loading.tsx function CategoriesLoading (line 3) | function CategoriesLoading() { FILE: src/app/categories/page.tsx function CategoriesPage (line 58) | async function CategoriesPage() { FILE: src/app/collection/loading.tsx function CollectionLoading (line 3) | function CollectionLoading() { FILE: src/app/collection/page.tsx function CollectionPage (line 10) | async function CollectionPage() { FILE: src/app/developers/page.tsx constant VALID_TABS (line 14) | const VALID_TABS = ["enhancer", "tokenizer", "builder", "embed"] as const; type TabValue (line 15) | type TabValue = (typeof VALID_TABS)[number]; function DevelopersPage (line 17) | function DevelopersPage() { FILE: src/app/discover/loading.tsx function DiscoverLoading (line 3) | function DiscoverLoading() { FILE: src/app/discover/page.tsx function DiscoverPage (line 5) | async function DiscoverPage() { FILE: src/app/docs/api/page.tsx function ApiDocsPage (line 21) | async function ApiDocsPage() { FILE: src/app/docs/self-hosting/page.tsx function SelfHostingPage (line 20) | function SelfHostingPage() { FILE: src/app/embed/page.tsx type TreeNode (line 8) | interface TreeNode { function buildFileTree (line 15) | function buildFileTree(paths: string[]): TreeNode[] { type EmbedConfig (line 61) | interface EmbedConfig { function EmbedContent (line 83) | function EmbedContent() { function EmbedPage (line 617) | function EmbedPage() { FILE: src/app/error.tsx type ErrorProps (line 9) | interface ErrorProps { function Error (line 14) | function Error({ reset }: ErrorProps) { FILE: src/app/feed/loading.tsx function FeedLoading (line 3) | function FeedLoading() { FILE: src/app/feed/page.tsx function FeedPage (line 11) | async function FeedPage() { FILE: src/app/global-error.tsx function GlobalError (line 7) | function GlobalError({ FILE: src/app/how_to_write_effective_prompts/page.tsx function generateMetadata (line 6) | async function generateMetadata() { function HowToWriteEffectivePromptsPage (line 14) | async function HowToWriteEffectivePromptsPage() { FILE: src/app/kids/layout.tsx constant RTL_LOCALES (line 7) | const RTL_LOCALES = ["ar", "he", "fa"]; function PixelCloudBg (line 16) | function PixelCloudBg({ className, style }: { className?: string; style?... function KidsLayout (line 33) | async function KidsLayout({ FILE: src/app/kids/level/[slug]/page.tsx type LevelPageProps (line 7) | interface LevelPageProps { function generateStaticParams (line 11) | async function generateStaticParams() { function generateMetadata (line 17) | async function generateMetadata({ params }: LevelPageProps): Promise }) { FILE: src/app/prompts/[id]/page.tsx type PromptPageProps (line 38) | interface PromptPageProps { function extractPromptId (line 46) | function extractPromptId(idParam: string): string { function generateMetadata (line 61) | async function generateMetadata({ params }: PromptPageProps): Promise { FILE: src/app/skills/page.tsx function getCachedSkills (line 16) | function getCachedSkills( type SkillsPageProps (line 106) | interface SkillsPageProps { function SkillsPage (line 113) | async function SkillsPage({ searchParams }: SkillsPageProps) { FILE: src/app/support/page.tsx constant GITHUB_ISSUE_BASE_URL (line 14) | const GITHUB_ISSUE_BASE_URL = "https://github.com/f/prompts.chat/issues/... type FAQItemProps (line 16) | interface FAQItemProps { function FAQItem (line 21) | function FAQItem({ question, answer }: FAQItemProps) { type SupportFormProps (line 40) | interface SupportFormProps { function SupportForm (line 44) | function SupportForm({ t }: SupportFormProps) { function SupportPage (line 100) | function SupportPage() { FILE: src/app/tags/[slug]/page.tsx type TagPageProps (line 12) | interface TagPageProps { function generateMetadata (line 17) | async function generateMetadata({ params }: TagPageProps) { function TagPage (line 32) | async function TagPage({ params, searchParams }: TagPageProps) { FILE: src/app/tags/loading.tsx function TagsLoading (line 3) | function TagsLoading() { FILE: src/app/tags/page.tsx function TagsPage (line 37) | async function TagsPage() { FILE: src/app/taste/page.tsx function getCachedTastes (line 16) | function getCachedTastes( type TastesPageProps (line 106) | interface TastesPageProps { function TastesPage (line 113) | async function TastesPage({ searchParams }: TastesPageProps) { FILE: src/app/terms/page.tsx function TermsPage (line 8) | function TermsPage() { FILE: src/app/workflows/page.tsx function getCachedWorkflows (line 13) | function getCachedWorkflows( type WorkflowsPageProps (line 114) | interface WorkflowsPageProps { function WorkflowsPage (line 121) | async function WorkflowsPage({ searchParams }: WorkflowsPageProps) { FILE: src/components/admin/admin-tabs.tsx constant VALID_TABS (line 7) | const VALID_TABS = ["users", "categories", "tags", "webhooks", "prompts"... type TabValue (line 8) | type TabValue = (typeof VALID_TABS)[number]; type AdminTabsProps (line 10) | interface AdminTabsProps { function AdminTabs (line 30) | function AdminTabs({ translations, pendingReportsCount, children }: Admi... FILE: src/components/admin/ai-search-settings.tsx type AISearchSettingsProps (line 11) | interface AISearchSettingsProps { type ProgressState (line 17) | interface ProgressState { function AISearchSettings (line 24) | function AISearchSettings({ enabled, promptsWithoutEmbeddings, totalProm... FILE: src/components/admin/categories-table.tsx type Category (line 52) | interface Category { type CategoriesTableProps (line 69) | interface CategoriesTableProps { function CategoriesTable (line 73) | function CategoriesTable({ categories }: CategoriesTableProps) { FILE: src/components/admin/import-prompts.tsx type ImportResult (line 27) | interface ImportResult { function ImportPrompts (line 35) | function ImportPrompts() { FILE: src/components/admin/prompts-management.tsx type ImportResult (line 33) | interface ImportResult { type ProgressState (line 41) | interface ProgressState { type PromptAuthor (line 48) | interface PromptAuthor { type PromptCategory (line 55) | interface PromptCategory { type AdminPrompt (line 61) | interface AdminPrompt { type Pagination (line 81) | interface Pagination { type PromptsManagementProps (line 88) | interface PromptsManagementProps { function PromptsManagement (line 96) | function PromptsManagement({ aiSearchEnabled, promptsWithoutEmbeddings, ... FILE: src/components/admin/reports-table.tsx type Report (line 30) | interface Report { type ReportsTableProps (line 51) | interface ReportsTableProps { function ReportsTable (line 55) | function ReportsTable({ reports }: ReportsTableProps) { FILE: src/components/admin/tags-table.tsx type Tag (line 44) | interface Tag { type TagsTableProps (line 54) | interface TagsTableProps { function TagsTable (line 58) | function TagsTable({ tags }: TagsTableProps) { FILE: src/components/admin/users-table.tsx type UserData (line 46) | interface UserData { type Pagination (line 65) | interface Pagination { function UsersTable (line 72) | function UsersTable() { FILE: src/components/admin/webhooks-table.tsx type WebhookConfig (line 21) | interface WebhookConfig { type WebhooksTableProps (line 33) | interface WebhooksTableProps { type HeaderEntry (line 37) | interface HeaderEntry { constant EVENTS (line 42) | const EVENTS = [ constant PLACEHOLDER_LIST (line 48) | const PLACEHOLDER_LIST = Object.values(WEBHOOK_PLACEHOLDERS); function HeadersEditor (line 51) | function HeadersEditor({ function WebhooksTable (line 113) | function WebhooksTable({ webhooks: initialWebhooks }: WebhooksTableProps) { FILE: src/components/ads/ezoic-ad.tsx type EzoicAdProps (line 5) | interface EzoicAdProps { function EzoicAd (line 16) | function EzoicAd({ id }: EzoicAdProps) { FILE: src/components/ads/ezoic-placeholder.tsx type EzoicPlaceholderProps (line 7) | interface EzoicPlaceholderProps { function EzoicPlaceholder (line 18) | function EzoicPlaceholder({ id }: EzoicPlaceholderProps) { FILE: src/components/api/improve-prompt-demo.tsx constant OUTPUT_TYPES (line 16) | const OUTPUT_TYPES = [ constant OUTPUT_FORMATS (line 23) | const OUTPUT_FORMATS = [ type OutputType (line 29) | type OutputType = (typeof OUTPUT_TYPES)[number]["value"]; type OutputFormat (line 30) | type OutputFormat = (typeof OUTPUT_FORMATS)[number]["value"]; type ImproveResponse (line 32) | interface ImproveResponse { function ImprovePromptDemo (line 41) | function ImprovePromptDemo() { FILE: src/components/auth/auth-content.tsx type AuthContentProps (line 8) | interface AuthContentProps { function AuthContent (line 22) | function AuthContent({ providers, mode, useCloneBranding = false }: Auth... FILE: src/components/auth/login-form.tsx type LoginFormValues (line 29) | type LoginFormValues = z.infer; function LoginForm (line 31) | function LoginForm() { FILE: src/components/auth/oauth-button.tsx type OAuthButtonProps (line 10) | interface OAuthButtonProps { function OAuthButton (line 41) | function OAuthButton({ provider, providerName }: OAuthButtonProps) { FILE: src/components/auth/register-form.tsx type RegisterFormValues (line 34) | type RegisterFormValues = z.infer; function RegisterForm (line 36) | function RegisterForm() { FILE: src/components/book/continue-reading.tsx function ContinueReadingButton (line 10) | function ContinueReadingButton() { FILE: src/components/book/elements/ai-demos.tsx function cosineSimilarity (line 10) | function cosineSimilarity(a: number[], b: number[]): number { function EmbeddingsDemo (line 23) | function EmbeddingsDemo() { function LLMCapabilitiesDemo (line 126) | function LLMCapabilitiesDemo() { FILE: src/components/book/elements/builder.tsx type PromptBuilderProps (line 14) | interface PromptBuilderProps { function PromptBuilder (line 29) | function PromptBuilder({ type AnalysisResult (line 251) | interface AnalysisResult { type PromptAnalyzerProps (line 260) | interface PromptAnalyzerProps { function PromptAnalyzer (line 266) | function PromptAnalyzer({ FILE: src/components/book/elements/chain-demos.tsx type StepStatus (line 9) | type StepStatus = "pending" | "running" | "success" | "failed" | "invali... type ValidationStep (line 15) | interface ValidationStep { function ValidationDemo (line 24) | function ValidationDemo() { type FallbackStep (line 240) | interface FallbackStep { function FallbackDemo (line 249) | function FallbackDemo() { type PipelineStep (line 440) | interface PipelineStep { function ContentPipelineDemo (line 459) | function ContentPipelineDemo() { FILE: src/components/book/elements/chain-error-demo.tsx type StepStatus (line 15) | type StepStatus = "pending" | "running" | "success" | "failed" | "retryi... type Step (line 17) | interface Step { function ChainErrorDemo (line 27) | function ChainErrorDemo() { FILE: src/components/book/elements/chain.tsx type ChainStep (line 19) | interface ChainStep { type ChainExampleProps (line 25) | interface ChainExampleProps { function ChainExample (line 30) | function ChainExample({ type, steps }: ChainExampleProps) { function ChainFlowDemo (line 258) | function ChainFlowDemo() { FILE: src/components/book/elements/challenge.tsx type ChallengeResult (line 13) | interface ChallengeResult { type PromptChallengeProps (line 20) | interface PromptChallengeProps { function PromptChallenge (line 30) | function PromptChallenge({ type BeforeAfterEditorProps (line 378) | interface BeforeAfterEditorProps { function BeforeAfterEditor (line 386) | function BeforeAfterEditor({ FILE: src/components/book/elements/code-editor.tsx type CodeEditorProps (line 8) | interface CodeEditorProps { function CodeEditor (line 14) | function CodeEditor({ code, language, filename }: CodeEditorProps) { FILE: src/components/book/elements/context-demos.tsx function SummarizationDemo (line 24) | function SummarizationDemo() { function ContextPlayground (line 143) | function ContextPlayground() { FILE: src/components/book/elements/demos.tsx function simulateTokenization (line 10) | function simulateTokenization(text: string): string[] { function TokenizerDemo (line 52) | function TokenizerDemo() { function ContextWindowDemo (line 134) | function ContextWindowDemo() { function TemperatureDemo (line 234) | function TemperatureDemo() { function StructuredOutputDemo (line 312) | function StructuredOutputDemo() { function FewShotDemo (line 463) | function FewShotDemo() { function JsonYamlDemo (line 588) | function JsonYamlDemo() { function IterativeRefinementDemo (line 718) | function IterativeRefinementDemo() { function CostCalculatorDemo (line 881) | function CostCalculatorDemo() { FILE: src/components/book/elements/diff-view.tsx type DiffViewProps (line 5) | interface DiffViewProps { function computeDiff (line 13) | function computeDiff(before: string, after: string): { type: 'same' | 'a... function DiffView (line 66) | function DiffView({ before, after, beforeLabel = "Before", afterLabel = ... type VersionDiffProps (line 114) | interface VersionDiffProps { function VersionDiff (line 122) | function VersionDiff({ versions }: VersionDiffProps) { FILE: src/components/book/elements/exercises.tsx type BlankConfig (line 14) | interface BlankConfig { type FillInTheBlankProps (line 22) | interface FillInTheBlankProps { type AIValidationResult (line 32) | interface AIValidationResult { type ConsistencyResult (line 38) | interface ConsistencyResult { function FillInTheBlank (line 46) | function FillInTheBlank({ type ChecklistItem (line 353) | interface ChecklistItem { type InteractiveChecklistProps (line 359) | interface InteractiveChecklistProps { function InteractiveChecklist (line 365) | function InteractiveChecklist({ type DebugOption (line 465) | interface DebugOption { type PromptDebuggerProps (line 472) | interface PromptDebuggerProps { function PromptDebugger (line 480) | function PromptDebugger({ FILE: src/components/book/elements/frameworks.tsx type FrameworkStep (line 15) | interface FrameworkStep { type FrameworkDemoProps (line 24) | interface FrameworkDemoProps { function FrameworkDemo (line 44) | function FrameworkDemo({ name, steps, example }: FrameworkDemoProps) { function mapStepsToComponent (line 126) | function mapStepsToComponent(steps: FrameworkStepData[]): FrameworkStep[] { function CRISPEFramework (line 134) | function CRISPEFramework() { function BREAKFramework (line 150) | function BREAKFramework() { function RTFFramework (line 166) | function RTFFramework() { FILE: src/components/book/elements/icons.tsx function IconLock (line 6) | function IconLock({ className }: { className?: string }) { function IconUser (line 10) | function IconUser({ className }: { className?: string }) { function IconClipboard (line 14) | function IconClipboard({ className }: { className?: string }) { function IconSettings (line 18) | function IconSettings({ className }: { className?: string }) { function IconCheck (line 22) | function IconCheck({ className }: { className?: string }) { function IconX (line 26) | function IconX({ className }: { className?: string }) { function IconStar (line 30) | function IconStar({ className }: { className?: string }) { function IconLightbulb (line 34) | function IconLightbulb({ className }: { className?: string }) { function IconTarget (line 38) | function IconTarget({ className }: { className?: string }) { FILE: src/components/book/elements/lists.tsx type ChecklistItem (line 9) | interface ChecklistItem { type ChecklistProps (line 13) | interface ChecklistProps { function Checklist (line 18) | function Checklist({ title, items }: ChecklistProps) { type CompareProps (line 77) | interface CompareProps { function Compare (line 82) | function Compare({ before, after }: CompareProps) { type InfoItem (line 98) | interface InfoItem { type InfoGridProps (line 108) | interface InfoGridProps { function InfoGrid (line 146) | function InfoGrid({ items, columns = 1 }: InfoGridProps) { FILE: src/components/book/elements/locales/index.ts function getLocaleData (line 60) | function getLocaleData(locale: string): LocaleData { function getLocaleField (line 68) | function getLocaleField( FILE: src/components/book/elements/locales/types.ts type TemperatureExamplesData (line 5) | interface TemperatureExamplesData { type TokenPredictionData (line 13) | interface TokenPredictionData { type EmbeddingWord (line 25) | interface EmbeddingWord { type Capability (line 31) | interface Capability { type ConversationMessage (line 38) | interface ConversationMessage { type SummarizationStrategy (line 44) | interface SummarizationStrategy { type ContextBlock (line 51) | interface ContextBlock { type ChainScenario (line 60) | interface ChainScenario { type ChainStep (line 67) | interface ChainStep { type TokenizerSample (line 73) | interface TokenizerSample { type TokenizerData (line 78) | interface TokenizerData { type BuilderField (line 84) | interface BuilderField { type ChainType (line 92) | interface ChainType { type BookPart (line 100) | interface BookPart { type Principle (line 109) | interface Principle { type JailbreakExample (line 116) | interface JailbreakExample { type ValidationDemoData (line 124) | interface ValidationDemoData { type FallbackDemoData (line 143) | interface FallbackDemoData { type ContentPipelineDemoData (line 163) | interface ContentPipelineDemoData { type FrameworkStepData (line 181) | interface FrameworkStepData { type FrameworkData (line 190) | interface FrameworkData { type FrameworksData (line 197) | interface FrameworksData { type ExercisesData (line 204) | interface ExercisesData { type LocaleData (line 244) | interface LocaleData { FILE: src/components/book/elements/media-demos.tsx function TextToImageDemo (line 16) | function TextToImageDemo() { function TextToVideoDemo (line 150) | function TextToVideoDemo() { FILE: src/components/book/elements/navigation.tsx function BookPartsNav (line 20) | function BookPartsNav() { FILE: src/components/book/elements/principles.tsx function PrinciplesSummary (line 23) | function PrinciplesSummary() { FILE: src/components/book/elements/prompt.tsx type PromptPart (line 7) | interface PromptPart { type PromptBreakdownProps (line 13) | interface PromptBreakdownProps { function PromptBreakdown (line 28) | function PromptBreakdown({ parts }: PromptBreakdownProps) { type SpectrumLevel (line 72) | interface SpectrumLevel { type SpecificitySpectrumProps (line 77) | interface SpecificitySpectrumProps { function SpecificitySpectrum (line 81) | function SpecificitySpectrum({ levels }: SpecificitySpectrumProps) { FILE: src/components/book/elements/security.tsx function JailbreakDemo (line 10) | function JailbreakDemo() { FILE: src/components/book/elements/token-prediction.tsx type TokenPrediction (line 8) | interface TokenPrediction { function TokenPredictionDemo (line 16) | function TokenPredictionDemo() { FILE: src/components/book/elements/ui.tsx type CollapsibleProps (line 12) | interface CollapsibleProps { function Collapsible (line 18) | function Collapsible({ title, children, defaultOpen = false }: Collapsib... type CalloutProps (line 40) | interface CalloutProps { function Callout (line 46) | function Callout({ type = "info", title, children }: CalloutProps) { type CopyableCodeProps (line 86) | interface CopyableCodeProps { function CopyableCode (line 91) | function CopyableCode({ code, language }: CopyableCodeProps) { type QuizProps (line 118) | interface QuizProps { function Quiz (line 125) | function Quiz({ question, options, correctIndex, explanation }: QuizProp... type TryItProps (line 177) | interface TryItProps { function parsePromptVariables (line 184) | function parsePromptVariables(content: string): { name: string; defaultV... function TryIt (line 198) | function TryIt({ prompt, description, title, compact = false }: TryItPro... type NavButtonProps (line 275) | interface NavButtonProps { function NavButton (line 281) | function NavButton({ href, label, direction = "next" }: NavButtonProps) { type NavFooterProps (line 294) | interface NavFooterProps { function NavFooter (line 299) | function NavFooter({ prev, next }: NavFooterProps) { FILE: src/components/book/sidebar.tsx constant BOOKMARK_KEY (line 42) | const BOOKMARK_KEY = "book-reading-progress"; function useBookmark (line 44) | function useBookmark() { function SidebarContent (line 67) | function SidebarContent({ onNavigate, searchQuery = "", bookmark, onBook... function MobileTOCButton (line 191) | function MobileTOCButton() { function BookSidebar (line 248) | function BookSidebar() { FILE: src/components/categories/category-filters.tsx constant SORT_OPTIONS (line 15) | const SORT_OPTIONS = ["newest", "oldest", "most_upvoted", "most_contribu... type SortOption (line 16) | type SortOption = (typeof SORT_OPTIONS)[number]; type CategoryFiltersProps (line 18) | interface CategoryFiltersProps { function CategoryFilters (line 22) | function CategoryFilters({ categorySlug }: CategoryFiltersProps) { FILE: src/components/categories/category-item.tsx type CategoryItemProps (line 6) | interface CategoryItemProps { function CategoryItem (line 18) | function CategoryItem({ category, isSubscribed, showSubscribe }: Categor... FILE: src/components/categories/pinned-categories.tsx type PinnedCategory (line 8) | interface PinnedCategory { type PinnedCategoriesProps (line 15) | interface PinnedCategoriesProps { function PinnedCategories (line 20) | function PinnedCategories({ categories, currentCategoryId }: PinnedCateg... FILE: src/components/categories/subscribe-button.tsx type SubscribeButtonProps (line 10) | interface SubscribeButtonProps { function SubscribeButton (line 18) | function SubscribeButton({ categoryId, categoryName, initialSubscribed, ... FILE: src/components/comments/comment-form.tsx type CommentFormProps (line 20) | interface CommentFormProps { type Comment (line 30) | interface Comment { function CommentForm (line 49) | function CommentForm({ FILE: src/components/comments/comment-item.tsx type Comment (line 40) | interface Comment { type CommentItemProps (line 59) | interface CommentItemProps { function autoLinkText (line 75) | function autoLinkText(text: string): React.ReactNode[] { function CommentItem (line 99) | function CommentItem({ FILE: src/components/comments/comment-section.tsx type Comment (line 10) | interface Comment { type CommentSectionProps (line 29) | interface CommentSectionProps { function CommentSection (line 37) | function CommentSection({ FILE: src/components/developers/embed-designer.tsx type EmbedConfig (line 24) | interface EmbedConfig { constant MODELS (line 49) | const MODELS = [ constant COLOR_PRESETS (line 64) | const COLOR_PRESETS = [ constant STORAGE_KEY (line 73) | const STORAGE_KEY = "embedDesignerConfig"; function EmbedDesigner (line 100) | function EmbedDesigner() { FILE: src/components/developers/embed-examples.ts type EmbedExampleConfig (line 1) | interface EmbedExampleConfig { type EmbedExample (line 24) | interface EmbedExample { constant EMBED_EXAMPLES (line 31) | const EMBED_EXAMPLES: EmbedExample[] = [ FILE: src/components/developers/prompt-enhancer.tsx constant OUTPUT_TYPES (line 21) | const OUTPUT_TYPES = [ constant OUTPUT_FORMATS (line 28) | const OUTPUT_FORMATS = [ type OutputType (line 34) | type OutputType = (typeof OUTPUT_TYPES)[number]["value"]; type OutputFormat (line 35) | type OutputFormat = (typeof OUTPUT_FORMATS)[number]["value"]; type EnhanceResponse (line 37) | interface EnhanceResponse { type SavedPrompt (line 46) | interface SavedPrompt { constant STORAGE_KEY (line 55) | const STORAGE_KEY = "promptEnhancerHistory"; constant MAX_HISTORY (line 56) | const MAX_HISTORY = 50; function loadHistory (line 58) | function loadHistory(): SavedPrompt[] { function saveHistory (line 68) | function saveHistory(history: SavedPrompt[]) { function PromptEnhancer (line 73) | function PromptEnhancer() { FILE: src/components/developers/prompt-tokenizer.tsx constant DEFAULT_CONTEXT_WINDOW (line 32) | const DEFAULT_CONTEXT_WINDOW = 128000; constant DEFAULT_INPUT_PRICE (line 33) | const DEFAULT_INPUT_PRICE = 2.50; constant DEFAULT_OUTPUT_PRICE (line 34) | const DEFAULT_OUTPUT_PRICE = 10.00; constant SETTINGS_STORAGE_KEY (line 36) | const SETTINGS_STORAGE_KEY = "promptTokenizerSettings"; type TokenStats (line 38) | interface TokenStats { type TokenizerSettings (line 46) | interface TokenizerSettings { type SavedAnalysis (line 52) | interface SavedAnalysis { constant STORAGE_KEY (line 59) | const STORAGE_KEY = "promptTokenizerHistory"; constant MAX_HISTORY (line 60) | const MAX_HISTORY = 30; function estimateTokens (line 63) | function estimateTokens(text: string): number { function calculateStats (line 71) | function calculateStats(text: string): TokenStats { function loadSettings (line 81) | function loadSettings(): TokenizerSettings { function saveSettings (line 97) | function saveSettings(settings: TokenizerSettings) { function loadHistory (line 102) | function loadHistory(): SavedAnalysis[] { function saveHistory (line 112) | function saveHistory(history: SavedAnalysis[]) { function formatNumber (line 117) | function formatNumber(num: number): string { function formatPrice (line 123) | function formatPrice(price: number): string { function tokenizeForVisualization (line 130) | function tokenizeForVisualization(text: string): { start: number; end: n... function PromptTokenizer (line 177) | function PromptTokenizer() { FILE: src/components/ide/api-details-popup.tsx type ApiDetailsPopupProps (line 9) | interface ApiDetailsPopupProps { function ApiDetailsPopup (line 14) | function ApiDetailsPopup({ item, onClose }: ApiDetailsPopupProps) { FILE: src/components/ide/api-docs-sidebar.tsx type ApiDocsSidebarProps (line 10) | interface ApiDocsSidebarProps { function ApiDocsSidebar (line 15) | function ApiDocsSidebar({ selectedItem, onSelectItem }: ApiDocsSidebarPr... FILE: src/components/ide/examples/generated.ts constant EXAMPLE_VIDEO (line 4) | const EXAMPLE_VIDEO = `import { video } from 'prompts.chat'; constant EXAMPLE_AUDIO (line 82) | const EXAMPLE_AUDIO = `import { audio } from 'prompts.chat'; constant EXAMPLE_IMAGE (line 152) | const EXAMPLE_IMAGE = `import { image } from 'prompts.chat'; constant EXAMPLE_CHAT (line 238) | const EXAMPLE_CHAT = `import { chat } from 'prompts.chat'; constant DEFAULT_CODE (line 268) | const DEFAULT_CODE = `import { builder, templates } from 'prompts.chat'; FILE: src/components/ide/prompt-ide.tsx function PromptIde (line 51) | function PromptIde() { FILE: src/components/ide/types.ts type OutputFormat (line 1) | type OutputFormat = "json" | "yaml" | "markdown"; FILE: src/components/ide/utils.ts function toYaml (line 4) | function toYaml(obj: unknown, indent = 0): string { FILE: src/components/kids/elements/character-guide.tsx type PromiMood (line 5) | type PromiMood = "happy" | "thinking" | "excited" | "confused" | "celebr... type PromiCharacterProps (line 7) | interface PromiCharacterProps { function PromiCharacter (line 28) | function PromiCharacter({ type SpeechBubbleProps (line 57) | interface SpeechBubbleProps { function SpeechBubble (line 63) | function SpeechBubble({ type PromiWithMessageProps (line 89) | interface PromiWithMessageProps { function PromiWithMessage (line 95) | function PromiWithMessage({ FILE: src/components/kids/elements/drag-drop-prompt.tsx type DragDropPromptProps (line 10) | interface DragDropPromptProps { type SavedState (line 18) | interface SavedState { function DragDropPrompt (line 24) | function DragDropPrompt({ function PixelPuzzleIcon (line 399) | function PixelPuzzleIcon() { FILE: src/components/kids/elements/example-matcher.tsx type Example (line 9) | interface Example { type ExampleMatcherProps (line 14) | interface ExampleMatcherProps { type SavedState (line 24) | interface SavedState { function ExampleMatcher (line 29) | function ExampleMatcher({ FILE: src/components/kids/elements/level-complete.tsx type LevelCompleteProps (line 12) | interface LevelCompleteProps { function LevelComplete (line 18) | function LevelComplete({ function PixelArrowRight (line 136) | function PixelArrowRight() { function PixelMapIcon (line 147) | function PixelMapIcon() { FILE: src/components/kids/elements/level-slides.tsx type SectionProps (line 10) | interface SectionProps { function Section (line 14) | function Section({ children }: SectionProps) { type LevelSlidesProps (line 18) | interface LevelSlidesProps { function LevelSlides (line 23) | function LevelSlides({ children, levelSlug }: LevelSlidesProps) { FILE: src/components/kids/elements/magic-words.tsx type BlankConfig (line 11) | interface BlankConfig { type MagicWordsProps (line 18) | interface MagicWordsProps { type SavedState (line 25) | interface SavedState { function MagicWords (line 31) | function MagicWords({ FILE: src/components/kids/elements/pixel-art.tsx function PixelTree (line 6) | function PixelTree({ className }: { className?: string }) { function PixelBush (line 29) | function PixelBush({ className }: { className?: string }) { function PixelCloud (line 45) | function PixelCloud({ className }: { className?: string }) { function PixelCastle (line 64) | function PixelCastle({ className }: { className?: string }) { function PixelMountain (line 97) | function PixelMountain({ className }: { className?: string }) { function PixelFlower (line 117) | function PixelFlower({ className, color = "#FF69B4" }: { className?: str... function PixelStar (line 138) | function PixelStar({ className, filled = false }: { className?: string; ... type PromiMood (line 159) | type PromiMood = "happy" | "thinking" | "excited" | "confused" | "celebr... type PixelRobotProps (line 161) | interface PixelRobotProps { function PixelRobot (line 222) | function PixelRobot({ className, mood = "happy" }: PixelRobotProps) { function PixelLevelNode (line 265) | function PixelLevelNode({ function PixelPath (line 342) | function PixelPath({ width = 100, className }: { width?: number; classNa... function PixelCar (line 365) | function PixelCar({ className, color = "#E74C3C" }: { className?: string... function PixelOldCar (line 405) | function PixelOldCar({ className, color = "#27AE60" }: { className?: str... function PixelVan (line 447) | function PixelVan({ className, text }: { className?: string; text?: stri... function PixelLake (line 495) | function PixelLake({ className }: { className?: string }) { function PixelPond (line 520) | function PixelPond({ className }: { className?: string }) { function PixelPlaneWithBanner (line 540) | function PixelPlaneWithBanner({ className, bannerText = "LEARN AI!" }: {... FILE: src/components/kids/elements/progress-map.tsx function ProgressMap (line 29) | function ProgressMap() { function generatePathD (line 221) | function generatePathD(positions: { x: number; y: number }[]): string { function generatePixelPathD (line 239) | function generatePixelPathD(positions: { x: number; y: number }[]): stri... function MapDecorations (line 257) | function MapDecorations({ mapWidth }: { mapWidth: number }) { function getCompletedCount (line 466) | function getCompletedCount(progress: KidsProgress | null, levels: Level[... type LevelNodeProps (line 471) | interface LevelNodeProps { function LevelNode (line 479) | function LevelNode({ level, position, progress, index, t }: LevelNodePro... FILE: src/components/kids/elements/prompt-doctor.tsx type Problem (line 9) | interface Problem { type PromptDoctorProps (line 15) | interface PromptDoctorProps { type SavedState (line 23) | interface SavedState { function PromptDoctor (line 28) | function PromptDoctor({ FILE: src/components/kids/elements/prompt-lab.tsx type Improvement (line 9) | interface Improvement { type PromptLabProps (line 15) | interface PromptLabProps { type SavedState (line 24) | interface SavedState { function PromptLab (line 29) | function PromptLab({ FILE: src/components/kids/elements/prompt-parts.tsx type PartType (line 9) | type PartType = "role" | "task" | "context" | "constraint"; type PromptPart (line 11) | interface PromptPart { type PromptPartsProps (line 16) | interface PromptPartsProps { type SavedState (line 23) | interface SavedState { function PromptParts (line 35) | function PromptParts({ title, instruction, parts, successMessage }: Prom... FILE: src/components/kids/elements/prompt-vs-mistake.tsx type PromptVsMistakeProps (line 10) | interface PromptVsMistakeProps { type SavedState (line 18) | interface SavedState { function PromptVsMistake (line 24) | function PromptVsMistake({ function PixelCheckIcon (line 245) | function PixelCheckIcon() { function PixelXIcon (line 257) | function PixelXIcon() { function PixelRefreshIcon (line 272) | function PixelRefreshIcon() { function PixelThinkingIcon (line 291) | function PixelThinkingIcon() { FILE: src/components/kids/elements/step-by-step.tsx type StepByStepProps (line 9) | interface StepByStepProps { type SavedState (line 19) | interface SavedState { function StepByStep (line 25) | function StepByStep({ FILE: src/components/kids/elements/story-scene.tsx type PromiMood (line 7) | type PromiMood = "happy" | "thinking" | "excited" | "confused" | "celebr... type StoryPanel (line 9) | interface StoryPanel { type StorySceneProps (line 16) | interface StorySceneProps { function StoryScene (line 21) | function StoryScene({ panels, className }: StorySceneProps) { type SinglePanelProps (line 90) | interface SinglePanelProps { function Panel (line 97) | function Panel({ character = "promi", mood = "happy", children, highligh... FILE: src/components/kids/elements/word-predictor.tsx type WordPredictorProps (line 9) | interface WordPredictorProps { type SavedState (line 20) | interface SavedState { function WordPredictor (line 25) | function WordPredictor({ FILE: src/components/kids/layout/background-music.tsx constant MUSIC_ENABLED_KEY (line 5) | const MUSIC_ENABLED_KEY = "kids-music-enabled"; constant MUSIC_VOLUME_KEY (line 6) | const MUSIC_VOLUME_KEY = "kids-music-volume"; type MusicContextType (line 9) | interface MusicContextType { function useMusicContext (line 19) | function useMusicContext() { function PixelSpeakerOn (line 24) | function PixelSpeakerOn() { function PixelSpeakerOff (line 37) | function PixelSpeakerOff() { function MusicProvider (line 52) | function MusicProvider({ children }: { children: React.ReactNode }) { function MusicButton (line 140) | function MusicButton() { function MusicVolumeSlider (line 184) | function MusicVolumeSlider() { function BackgroundMusic (line 219) | function BackgroundMusic() { FILE: src/components/kids/layout/kids-header.tsx function KidsHeader (line 13) | function KidsHeader() { function PixelHomeIcon (line 160) | function PixelHomeIcon() { function PixelMapIcon (line 174) | function PixelMapIcon() { function PixelMenuIcon (line 193) | function PixelMenuIcon() { FILE: src/components/kids/layout/kids-home-content.tsx function KidsHomeContent (line 10) | function KidsHomeContent() { function PixelPlayIcon (line 214) | function PixelPlayIcon() { function PixelArrowLeft (line 225) | function PixelArrowLeft() { function PixelArrowRight (line 236) | function PixelArrowRight() { function PixelGamepad (line 247) | function PixelGamepad() { function PixelBook (line 261) | function PixelBook() { FILE: src/components/kids/layout/level-content-wrapper.tsx type LevelContentWrapperProps (line 13) | interface LevelContentWrapperProps { function LevelContentWrapper (line 19) | function LevelContentWrapper({ children, levelSlug, levelNumber: _levelN... function PixelArrowLeft (line 288) | function PixelArrowLeft() { function PixelArrowRight (line 299) | function PixelArrowRight() { function PixelMapIcon (line 310) | function PixelMapIcon() { function PixelLockIcon (line 328) | function PixelLockIcon() { FILE: src/components/kids/layout/settings-modal.tsx constant SUPPORTED_LOCALES (line 13) | const SUPPORTED_LOCALES = [ function SettingsButton (line 32) | function SettingsButton() { function SettingsModal (line 57) | function SettingsModal({ onClose }: { onClose: () => void }) { function PixelSettingsIcon (line 249) | function PixelSettingsIcon() { FILE: src/components/kids/providers/level-context.tsx type LevelContextType (line 5) | interface LevelContextType { function LevelProvider (line 34) | function LevelProvider({ function useLevelSlug (line 110) | function useLevelSlug(): string { function useSetLevelSlug (line 115) | function useSetLevelSlug(): (slug: string) => void { function useSectionNavigation (line 120) | function useSectionNavigation() { FILE: src/components/layout/analytics.tsx type AnalyticsProps (line 7) | interface AnalyticsProps { function Analytics (line 11) | function Analytics({ gaId }: AnalyticsProps) { FILE: src/components/layout/animated-text.tsx type AnimatedTextProps (line 3) | interface AnimatedTextProps { function AnimatedText (line 8) | function AnimatedText({ children, className = "" }: AnimatedTextProps) { FILE: src/components/layout/app-banner.tsx function AppStoreIcon (line 8) | function AppStoreIcon({ className }: { className?: string }) { constant STORAGE_KEY (line 24) | const STORAGE_KEY = "app-banner-dismissed"; function isAppleDevice (line 26) | function isAppleDevice(): boolean { function AppBanner (line 41) | function AppBanner() { FILE: src/components/layout/cli-command.tsx function CliCommand (line 7) | function CliCommand() { FILE: src/components/layout/cookie-consent.tsx constant COOKIE_CONSENT_KEY (line 8) | const COOKIE_CONSENT_KEY = "cookie-consent"; type CookieConsent (line 10) | type CookieConsent = "accepted" | "rejected" | null; function getCookieConsent (line 12) | function getCookieConsent(): CookieConsent { function CookieConsentBanner (line 17) | function CookieConsentBanner() { FILE: src/components/layout/extension-link.tsx constant FIREFOX_ADDON_URL (line 9) | const FIREFOX_ADDON_URL = "https://addons.mozilla.org/en-US/firefox/addo... type ExtensionLinkProps (line 11) | interface ExtensionLinkProps { function ExtensionLink (line 15) | function ExtensionLink({ url }: ExtensionLinkProps) { FILE: src/components/layout/ezoic-ads.tsx type Window (line 9) | interface Window { function EzoicScripts (line 26) | function EzoicScripts() { function EzoicRouteHandler (line 74) | function EzoicRouteHandler() { FILE: src/components/layout/footer.tsx function Footer (line 10) | function Footer() { FILE: src/components/layout/header.tsx function MiniPromi (line 14) | function MiniPromi({ className }: { className?: string }) { constant FIREFOX_ADDON_URL (line 84) | const FIREFOX_ADDON_URL = "https://addons.mozilla.org/firefox/downloads/... type HeaderProps (line 106) | interface HeaderProps { function Header (line 111) | function Header({ authProvider = "credentials", allowRegistration = true... FILE: src/components/layout/notification-bell.tsx type CommentNotification (line 20) | interface CommentNotification { type Notifications (line 34) | interface Notifications { function NotificationBell (line 40) | function NotificationBell() { FILE: src/components/layout/sponsor-link.tsx type SponsorLinkProps (line 7) | interface SponsorLinkProps { function SponsorLink (line 15) | function SponsorLink({ name, url, logo, darkLogo, className }: SponsorLi... type BecomeSponsorLinkProps (line 58) | interface BecomeSponsorLinkProps { function BecomeSponsorLink (line 64) | function BecomeSponsorLink({ href, children, className }: BecomeSponsorL... type BuiltWithLinkProps (line 82) | interface BuiltWithLinkProps { function BuiltWithLink (line 88) | function BuiltWithLink({ href, toolName, children }: BuiltWithLinkProps) { FILE: src/components/mcp/mcp-config-tabs.tsx type Client (line 9) | type Client = "cursor" | "claude-code" | "vscode" | "codex" | "windsurf"... type Mode (line 10) | type Mode = "remote" | "local"; type McpConfigTabsProps (line 12) | interface McpConfigTabsProps { constant CLIENT_LABELS (line 28) | const CLIENT_LABELS: Record = { constant NPM_PACKAGE (line 37) | const NPM_PACKAGE = "@fkadev/prompts.chat-mcp"; function buildLocalEnv (line 39) | function buildLocalEnv(apiKey?: string | null, queryParams?: string): Re... function getConfig (line 46) | function getConfig(client: Client, mode: Mode, mcpUrl: string, apiKey?: ... function McpConfigTabs (line 184) | function McpConfigTabs({ baseUrl, queryParams, className, mode, onModeCh... FILE: src/components/mcp/mcp-server-popup.tsx function McpIcon (line 21) | function McpIcon({ className }: { className?: string }) { type McpServerPopupProps (line 38) | interface McpServerPopupProps { function McpServerPopup (line 51) | function McpServerPopup({ FILE: src/components/presentation/SlideDeck.tsx type SlideDeckProps (line 9) | interface SlideDeckProps { function SlideDeck (line 13) | function SlideDeck({ children }: SlideDeckProps) { function SlideTitle (line 136) | function SlideTitle({ children, className }: { children: ReactNode; clas... function SlideContent (line 144) | function SlideContent({ children, className }: { children: ReactNode; cl... function SlideHighlight (line 152) | function SlideHighlight({ children, className }: { children: ReactNode; ... FILE: src/components/promptmasters/promptmasters-content.tsx type SortMode (line 12) | type SortMode = "total" | "perPrompt"; type LeaderboardUser (line 14) | interface LeaderboardUser { type LeaderboardData (line 23) | interface LeaderboardData { type Translations (line 28) | interface Translations { type PromptmastersContentProps (line 42) | interface PromptmastersContentProps { function LeaderboardSkeleton (line 46) | function LeaderboardSkeleton() { function RankBadge (line 64) | function RankBadge({ rank }: { rank: number }) { function LeaderboardList (line 79) | function LeaderboardList({ function PromptmastersContent (line 151) | function PromptmastersContent({ translations }: PromptmastersContentProp... FILE: src/components/prompts/add-connection-dialog.tsx type SearchResult (line 18) | interface SearchResult { type AddConnectionDialogProps (line 26) | interface AddConnectionDialogProps { function AddConnectionDialog (line 34) | function AddConnectionDialog({ FILE: src/components/prompts/add-example-dialog.tsx type AddExampleDialogProps (line 21) | interface AddExampleDialogProps { function AddExampleDialog (line 29) | function AddExampleDialog({ FILE: src/components/prompts/add-to-collection-button.tsx type AddToCollectionButtonProps (line 10) | interface AddToCollectionButtonProps { function AddToCollectionButton (line 16) | function AddToCollectionButton({ FILE: src/components/prompts/add-version-form.tsx type AddVersionFormProps (line 22) | interface AddVersionFormProps { function AddVersionForm (line 27) | function AddVersionForm({ promptId, currentContent }: AddVersionFormProp... FILE: src/components/prompts/audio-player.tsx type AudioPlayerProps (line 7) | interface AudioPlayerProps { constant BARS (line 14) | const BARS = 32; function AudioPlayer (line 16) | function AudioPlayer({ src, onError, className, compact = false }: Audio... FILE: src/components/prompts/change-request-actions.tsx type ChangeRequestActionsProps (line 12) | interface ChangeRequestActionsProps { function ChangeRequestActions (line 17) | function ChangeRequestActions({ changeRequestId, promptId }: ChangeReque... FILE: src/components/prompts/change-request-form.tsx type ChangeRequestFormProps (line 20) | interface ChangeRequestFormProps { function ChangeRequestForm (line 28) | function ChangeRequestForm({ promptId, currentContent, currentTitle, pro... FILE: src/components/prompts/contributor-search.tsx type User (line 9) | interface User { type ContributorSearchProps (line 16) | interface ContributorSearchProps { function ContributorSearch (line 22) | function ContributorSearch({ selectedUsers, onSelect, onRemove }: Contri... FILE: src/components/prompts/copy-button.tsx type CopyButtonProps (line 10) | interface CopyButtonProps { function CopyButton (line 15) | function CopyButton({ content, promptId }: CopyButtonProps) { FILE: src/components/prompts/delete-version-button.tsx type DeleteVersionButtonProps (line 21) | interface DeleteVersionButtonProps { function DeleteVersionButton (line 27) | function DeleteVersionButton({ promptId, versionId, versionNumber }: Del... FILE: src/components/prompts/delist-banner.tsx type DelistReason (line 21) | type DelistReason = "TOO_SHORT" | "NOT_ENGLISH" | "LOW_QUALITY" | "NOT_L... type DelistBannerProps (line 23) | interface DelistBannerProps { function DelistBanner (line 30) | function DelistBanner({ promptId, delistReason, isOwner, isDeleted = fal... FILE: src/components/prompts/discovery-prompts.tsx type DiscoveryPromptsProps (line 10) | interface DiscoveryPromptsProps { function DiscoveryPrompts (line 14) | async function DiscoveryPrompts({ isHomepage = false }: DiscoveryPrompts... FILE: src/components/prompts/dismiss-change-request-button.tsx type DismissChangeRequestButtonProps (line 22) | interface DismissChangeRequestButtonProps { function DismissChangeRequestButton (line 27) | function DismissChangeRequestButton({ changeRequestId, promptId }: Dismi... FILE: src/components/prompts/download-prompt-dropdown.tsx type DownloadPromptDropdownProps (line 16) | interface DownloadPromptDropdownProps { function DownloadPromptDropdown (line 22) | function DownloadPromptDropdown({ promptId, promptSlug, promptType }: Do... FILE: src/components/prompts/examples-slider.tsx type ExamplesSliderProps (line 7) | interface ExamplesSliderProps { function ExamplesSlider (line 23) | function ExamplesSlider({ FILE: src/components/prompts/feature-prompt-button.tsx type FeaturePromptButtonProps (line 10) | interface FeaturePromptButtonProps { function FeaturePromptButton (line 16) | function FeaturePromptButton({ FILE: src/components/prompts/filter-context.tsx type FilterContextType (line 5) | interface FilterContextType { function FilterProvider (line 12) | function FilterProvider({ children }: { children: ReactNode }) { function useFilterContext (line 22) | function useFilterContext() { FILE: src/components/prompts/hero-categories.tsx constant INDUSTRIES (line 10) | const INDUSTRIES = [ constant INDUSTRY_KEYWORDS (line 49) | const INDUSTRY_KEYWORDS: Record = { function shuffleArray (line 88) | function shuffleArray(array: T[]): T[] { function HeroCategories (line 97) | function HeroCategories() { FILE: src/components/prompts/hero-prompt-input.tsx constant TYPING_SPEED (line 11) | const TYPING_SPEED = 50; constant PAUSE_BETWEEN_PROMPTS (line 12) | const PAUSE_BETWEEN_PROMPTS = 2000; constant DELETE_SPEED (line 13) | const DELETE_SPEED = 30; function HeroPromptInput (line 15) | function HeroPromptInput() { FILE: src/components/prompts/hf-data-studio-dropdown.tsx constant DEFAULT_SQL (line 23) | const DEFAULT_SQL = SQL_EXAMPLES[0].sql; constant HF_DATASET_URL (line 25) | const HF_DATASET_URL = "https://huggingface.co/datasets/fka/prompts.chat... type HFDataStudioDropdownProps (line 27) | interface HFDataStudioDropdownProps { function HFDataStudioDropdown (line 31) | function HFDataStudioDropdown({ aiGenerationEnabled = false }: HFDataStu... FILE: src/components/prompts/infinite-prompt-list.tsx type InfinitePromptListProps (line 15) | interface InfinitePromptListProps { function PromptCardSkeleton (line 28) | function PromptCardSkeleton() { function InfinitePromptList (line 50) | function InfinitePromptList({ FILE: src/components/prompts/interactive-book-banner.tsx function InteractiveBookBanner (line 9) | function InteractiveBookBanner() { FILE: src/components/prompts/interactive-prompt-content.tsx type Variable (line 18) | interface Variable { type InteractivePromptContentProps (line 24) | interface InteractivePromptContentProps { function parseVariables (line 43) | function parseVariables(content: string): Variable[] { function getUniqueVariables (line 60) | function getUniqueVariables(variables: Variable[]): { name: string; defa... function EditableSpan (line 71) | function EditableSpan({ function InteractivePromptContent (line 149) | function InteractivePromptContent({ FILE: src/components/prompts/language-switcher.tsx function LanguageSwitcher (line 34) | function LanguageSwitcher() { FILE: src/components/prompts/media-generator.tsx constant ASPECT_RATIOS (line 35) | const ASPECT_RATIOS: { value: AspectRatio; label: string }[] = [ type MediaGeneratorModel (line 46) | interface MediaGeneratorModel { type MediaGeneratorProps (line 56) | interface MediaGeneratorProps { type GenerationStatus (line 64) | type GenerationStatus = function fillPromptVariables (line 74) | function fillPromptVariables(prompt: string): string { function MediaGenerator (line 83) | function MediaGenerator({ FILE: src/components/prompts/media-preview-with-examples.tsx type UserExample (line 9) | interface UserExample { type MediaPreviewWithExamplesProps (line 22) | interface MediaPreviewWithExamplesProps { function MediaPreviewWithExamples (line 33) | function MediaPreviewWithExamples({ FILE: src/components/prompts/media-preview.tsx type MediaPreviewProps (line 8) | interface MediaPreviewProps { function MediaPreview (line 14) | function MediaPreview({ mediaUrl, title, type }: MediaPreviewProps) { FILE: src/components/prompts/mini-prompt-card.tsx type MiniPromptCardProps (line 7) | interface MiniPromptCardProps { function MiniPromptCard (line 19) | function MiniPromptCard({ prompt }: MiniPromptCardProps) { FILE: src/components/prompts/pin-button.tsx type PinButtonProps (line 10) | interface PinButtonProps { function PinButton (line 16) | function PinButton({ promptId, initialPinned, iconOnly = false }: PinBut... FILE: src/components/prompts/private-prompts-note.tsx constant STORAGE_KEY (line 8) | const STORAGE_KEY = "private-prompts-note-dismissed"; type PrivatePromptsNoteProps (line 10) | interface PrivatePromptsNoteProps { function PrivatePromptsNote (line 14) | function PrivatePromptsNote({ count }: PrivatePromptsNoteProps) { FILE: src/components/prompts/prompt-builder.tsx type PromptBuilderState (line 13) | interface PromptBuilderState { type ToolCall (line 27) | interface ToolCall { type Message (line 38) | interface Message { type PromptBuilderProps (line 53) | interface PromptBuilderProps { type PromptBuilderHandle (line 62) | interface PromptBuilderHandle { FILE: src/components/prompts/prompt-card.tsx type PromptCardProps (line 24) | interface PromptCardProps { function PromptCard (line 89) | function PromptCard({ prompt, showPinButton = false, isPinned = false }:... FILE: src/components/prompts/prompt-connections.tsx type PromptNode (line 13) | interface PromptNode { type OutgoingConnection (line 19) | interface OutgoingConnection { type IncomingConnection (line 28) | interface IncomingConnection { type PromptConnectionsProps (line 37) | interface PromptConnectionsProps { type GraphNode (line 50) | interface GraphNode { type GraphLink (line 59) | interface GraphLink { type FlowGraphNode (line 66) | interface FlowGraphNode { type FlowGraphEdge (line 82) | interface FlowGraphEdge { type FlowGraphProps (line 88) | interface FlowGraphProps { constant ICON_PATHS (line 113) | const ICON_PATHS = { function FlowGraph (line 123) | function FlowGraph({ nodes, edges, currentPromptId, currentUserId, isAdm... function PromptConnections (line 913) | function PromptConnections({ FILE: src/components/prompts/prompt-filters.tsx type PromptFiltersProps (line 25) | interface PromptFiltersProps { function PromptFilters (line 51) | function PromptFilters({ categories, tags, currentFilters, aiSearchEnabl... FILE: src/components/prompts/prompt-flow-section.tsx type PromptFlowSectionProps (line 7) | interface PromptFlowSectionProps { function PromptFlowSection (line 19) | function PromptFlowSection({ FILE: src/components/prompts/prompt-form.tsx type MediaFieldProps (line 59) | interface MediaFieldProps { function MediaField (line 66) | function MediaField({ form, t, promptType, promptContent }: MediaFieldPr... type PromptFormValues (line 375) | type PromptFormValues = z.infer>; type Contributor (line 377) | interface Contributor { type PromptFormProps (line 384) | interface PromptFormProps { function getBuilderData (line 407) | function getBuilderData(): { content?: string; type?: string; format?: s... function PromptForm (line 423) | function PromptForm({ categories, tags, initialData, initialContributors... FILE: src/components/prompts/prompt-list.tsx type PromptListProps (line 10) | interface PromptListProps { function PromptList (line 18) | function PromptList({ prompts, currentPage, totalPages, pinnedIds, showP... FILE: src/components/prompts/prompt-writing-guide-content.tsx type CodeBlockProps (line 17) | interface CodeBlockProps { function CodeBlock (line 21) | function CodeBlock({ code }: CodeBlockProps) { type SectionProps (line 51) | interface SectionProps { function Section (line 58) | function Section({ icon, title, children, defaultOpen = false }: Section... function PromptWritingGuideContent (line 94) | function PromptWritingGuideContent() { FILE: src/components/prompts/prompt-writing-guide.tsx type CodeBlockProps (line 18) | interface CodeBlockProps { function CodeBlock (line 22) | function CodeBlock({ code }: CodeBlockProps) { type SectionProps (line 51) | interface SectionProps { function Section (line 58) | function Section({ icon, title, children, defaultOpen = false }: Section... function PromptWritingGuide (line 94) | function PromptWritingGuide() { FILE: src/components/prompts/related-prompts.tsx type RelatedPrompt (line 8) | interface RelatedPrompt { type RelatedPromptsProps (line 30) | interface RelatedPromptsProps { function RelatedPrompts (line 34) | function RelatedPrompts({ prompts }: RelatedPromptsProps) { FILE: src/components/prompts/reopen-change-request-button.tsx type ReopenChangeRequestButtonProps (line 11) | interface ReopenChangeRequestButtonProps { function ReopenChangeRequestButton (line 16) | function ReopenChangeRequestButton({ changeRequestId, promptId }: Reopen... FILE: src/components/prompts/report-prompt-dialog.tsx type ReportPromptDialogProps (line 28) | interface ReportPromptDialogProps { constant REPORT_REASONS (line 33) | const REPORT_REASONS = ["SPAM", "INAPPROPRIATE", "COPYRIGHT", "MISLEADIN... function ReportPromptDialog (line 35) | function ReportPromptDialog({ promptId, isLoggedIn }: ReportPromptDialog... FILE: src/components/prompts/restore-prompt-button.tsx type RestorePromptButtonProps (line 10) | interface RestorePromptButtonProps { function RestorePromptButton (line 14) | function RestorePromptButton({ promptId }: RestorePromptButtonProps) { FILE: src/components/prompts/run-prompt-button.tsx type Platform (line 36) | interface Platform { function buildUrl (line 132) | function buildUrl(platformId: string, baseUrl: string, promptText: strin... type UnfilledVariable (line 200) | interface UnfilledVariable { type RunPromptButtonProps (line 205) | interface RunPromptButtonProps { function isCodeCategory (line 223) | function isCodeCategory(name?: string): boolean { function getDefaultTab (line 229) | function getDefaultTab(categoryName?: string, parentCategoryName?: strin... function RunPromptButton (line 236) | function RunPromptButton({ FILE: src/components/prompts/share-dropdown.tsx function XIcon (line 14) | function XIcon({ className }: { className?: string }) { function HackerNewsIcon (line 23) | function HackerNewsIcon({ className }: { className?: string }) { type ShareDropdownProps (line 31) | interface ShareDropdownProps { function ShareDropdown (line 37) | function ShareDropdown({ title, url, promptId }: ShareDropdownProps) { FILE: src/components/prompts/skill-diff-viewer.tsx type SkillDiffViewerProps (line 26) | interface SkillDiffViewerProps { type TreeNode (line 33) | interface TreeNode { function buildDiffFileTree (line 42) | function buildDiffFileTree( type TreeNodeItemProps (line 115) | interface TreeNodeItemProps { function TreeNodeItem (line 124) | function TreeNodeItem({ function SkillDiffViewer (line 213) | function SkillDiffViewer({ original, modified, className }: SkillDiffVie... FILE: src/components/prompts/skill-editor.tsx type SkillEditorProps (line 38) | interface SkillEditorProps { type TreeNode (line 45) | interface TreeNode { function buildFileTree (line 53) | function buildFileTree(files: SkillFile[]): TreeNode[] { type TreeNodeItemProps (line 98) | interface TreeNodeItemProps { function TreeNodeItem (line 109) | function TreeNodeItem({ function SkillEditor (line 195) | function SkillEditor({ value, onChange, className }: SkillEditorProps) { FILE: src/components/prompts/skill-viewer.tsx type SkillViewerProps (line 30) | interface SkillViewerProps { type TreeNode (line 38) | interface TreeNode { function buildFileTree (line 46) | function buildFileTree(files: SkillFile[]): TreeNode[] { type TreeNodeItemProps (line 91) | interface TreeNodeItemProps { function TreeNodeItem (line 100) | function TreeNodeItem({ function SkillViewer (line 170) | function SkillViewer({ content, className, promptId, promptSlug }: Skill... FILE: src/components/prompts/structured-format-warning.tsx type StructuredFormatWarningProps (line 9) | interface StructuredFormatWarningProps { function looksLikeJson (line 18) | function looksLikeJson(content: string): boolean { function looksLikeYaml (line 49) | function looksLikeYaml(content: string): boolean { function detectStructuredFormat (line 92) | function detectStructuredFormat(content: string): "JSON" | "YAML" | null { function StructuredFormatWarning (line 98) | function StructuredFormatWarning({ FILE: src/components/prompts/translate-button.tsx type TranslateButtonProps (line 28) | interface TranslateButtonProps { function TranslateButton (line 34) | function TranslateButton({ content, onTranslate, isLoggedIn }: Translate... FILE: src/components/prompts/unlist-prompt-button.tsx type UnlistPromptButtonProps (line 9) | interface UnlistPromptButtonProps { function UnlistPromptButton (line 15) | function UnlistPromptButton({ FILE: src/components/prompts/upvote-button.tsx function TriangleUp (line 9) | function TriangleUp({ className }: { className?: string }) { type UpvoteButtonProps (line 29) | interface UpvoteButtonProps { function UpvoteButton (line 38) | function UpvoteButton({ FILE: src/components/prompts/user-examples-gallery.tsx type UserExample (line 15) | interface UserExample { type UserExamplesGalleryProps (line 28) | interface UserExamplesGalleryProps { function UserExamplesGallery (line 38) | function UserExamplesGallery({ FILE: src/components/prompts/user-examples-section.tsx type UserExamplesSectionProps (line 7) | interface UserExamplesSectionProps { function UserExamplesSection (line 17) | function UserExamplesSection({ FILE: src/components/prompts/variable-fill-modal.tsx type Variable (line 19) | interface Variable { type VariableFillModalProps (line 25) | interface VariableFillModalProps { function parseVariables (line 36) | function parseVariables(content: string): Variable[] { function getUniqueVariables (line 53) | function getUniqueVariables(variables: Variable[]): { name: string; defa... function VariableFillModal (line 63) | function VariableFillModal({ function hasVariables (line 155) | function hasVariables(content: string): boolean { function renderContentWithVariables (line 160) | function renderContentWithVariables(content: string): React.ReactNode { FILE: src/components/prompts/variable-hint.tsx type VariableHintProps (line 7) | interface VariableHintProps { constant SUPPORTED_VAR_REGEX (line 13) | const SUPPORTED_VAR_REGEX = /\$\{([a-zA-Z_][a-zA-Z0-9_\s]*?)(?::([^}]*))... function VariableHint (line 15) | function VariableHint({ content, onContentChange }: VariableHintProps) { FILE: src/components/prompts/variable-toolbar.tsx type VariableToolbarProps (line 15) | interface VariableToolbarProps { function VariableToolbar (line 20) | function VariableToolbar({ onInsert, getSelectedText }: VariableToolbarP... FILE: src/components/prompts/variable-warning.tsx type VariableWarningProps (line 14) | interface VariableWarningProps { function VariableWarning (line 19) | function VariableWarning({ content, onConvert }: VariableWarningProps) { FILE: src/components/prompts/version-compare-button.tsx type VersionCompareButtonProps (line 16) | interface VersionCompareButtonProps { function VersionCompareButton (line 24) | function VersionCompareButton({ FILE: src/components/prompts/version-compare-modal.tsx type Version (line 25) | interface Version { type VersionCompareModalProps (line 37) | interface VersionCompareModalProps { function VersionCompareModal (line 44) | function VersionCompareModal({ versions, currentContent, promptType, str... FILE: src/components/prompts/widget-card.tsx type WidgetCardProps (line 14) | interface WidgetCardProps { function WidgetCard (line 18) | function WidgetCard({ prompt }: WidgetCardProps) { FILE: src/components/providers/branding-provider.tsx type BrandingContextValue (line 5) | interface BrandingContextValue { type BrandingProviderProps (line 17) | interface BrandingProviderProps { function BrandingProvider (line 22) | function BrandingProvider({ children, branding }: BrandingProviderProps) { function useBranding (line 30) | function useBranding(): BrandingContextValue { FILE: src/components/providers/index.tsx type ThemeConfig (line 10) | interface ThemeConfig { type BrandingConfig (line 19) | interface BrandingConfig { type ProvidersProps (line 26) | interface ProvidersProps { function Providers (line 34) | function Providers({ children, locale, messages, theme, branding }: Prov... FILE: src/components/providers/locale-detector.tsx function LocaleDetector (line 11) | function LocaleDetector() { FILE: src/components/providers/theme-styles.tsx type ThemeStylesProps (line 6) | interface ThemeStylesProps { function ThemeStyles (line 13) | function ThemeStyles(_props: ThemeStylesProps) { FILE: src/components/seo/structured-data.tsx type StructuredDataProps (line 3) | interface StructuredDataProps { function StructuredData (line 29) | async function StructuredData({ type, data }: StructuredDataProps) { function WebsiteStructuredData (line 207) | async function WebsiteStructuredData() { FILE: src/components/settings/api-key-settings.tsx type ApiKeySettingsProps (line 29) | interface ApiKeySettingsProps { function ApiKeySettings (line 34) | function ApiKeySettings({ FILE: src/components/settings/profile-form.tsx function XTwitterIcon (line 12) | function XTwitterIcon({ className }: { className?: string }) { constant LINK_TYPES (line 48) | const LINK_TYPES: { value: CustomLinkType; label: string; icon: React.El... type ProfileFormValues (line 62) | type ProfileFormValues = z.infer; type ProfileFormProps (line 64) | interface ProfileFormProps { function ProfileForm (line 78) | function ProfileForm({ user, showVerifiedSection = false }: ProfileFormP... FILE: src/components/ui/alert.tsx function Alert (line 22) | function Alert({ function AlertTitle (line 37) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) { function AlertDescription (line 50) | function AlertDescription({ FILE: src/components/ui/animated-date.tsx type AnimatedDateProps (line 6) | interface AnimatedDateProps { function AnimatedDate (line 12) | function AnimatedDate({ date, relativeText, locale = "en" }: AnimatedDat... FILE: src/components/ui/avatar.tsx function Avatar (line 8) | function Avatar({ function AvatarImage (line 24) | function AvatarImage({ function AvatarFallback (line 37) | function AvatarFallback({ FILE: src/components/ui/badge.tsx function Badge (line 24) | function Badge({ FILE: src/components/ui/button.tsx function Button (line 35) | function Button({ FILE: src/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: src/components/ui/checkbox.tsx function Checkbox (line 9) | function Checkbox({ FILE: src/components/ui/code-editor.tsx type CodeEditorHandle (line 8) | interface CodeEditorHandle { type CodeEditorProps (line 12) | interface CodeEditorProps { FILE: src/components/ui/code-view.tsx type CodeViewProps (line 10) | interface CodeViewProps { type ViewMode (line 20) | type ViewMode = "code" | "tree"; function CodeView (line 22) | function CodeView({ content, language = "json", className, maxLines, fon... function highlightLine (line 146) | function highlightLine(line: string, language: "json" | "yaml") { function highlightJSON (line 153) | function highlightJSON(line: string) { function highlightYAML (line 197) | function highlightYAML(line: string) { function highlightYAMLValue (line 231) | function highlightYAMLValue(value: string, startKey: number) { FILE: src/components/ui/command.tsx function Command (line 16) | function Command({ function CommandDialog (line 32) | function CommandDialog({ function CommandInput (line 63) | function CommandInput({ function CommandList (line 85) | function CommandList({ function CommandEmpty (line 101) | function CommandEmpty({ function CommandGroup (line 113) | function CommandGroup({ function CommandSeparator (line 129) | function CommandSeparator({ function CommandItem (line 142) | function CommandItem({ function CommandShortcut (line 158) | function CommandShortcut({ FILE: src/components/ui/context-menu.tsx function ContextMenu (line 9) | function ContextMenu({ function ContextMenuTrigger (line 15) | function ContextMenuTrigger({ function ContextMenuGroup (line 23) | function ContextMenuGroup({ function ContextMenuPortal (line 31) | function ContextMenuPortal({ function ContextMenuSub (line 39) | function ContextMenuSub({ function ContextMenuRadioGroup (line 45) | function ContextMenuRadioGroup({ function ContextMenuSubTrigger (line 56) | function ContextMenuSubTrigger({ function ContextMenuSubContent (line 80) | function ContextMenuSubContent({ function ContextMenuContent (line 96) | function ContextMenuContent({ function ContextMenuItem (line 114) | function ContextMenuItem({ function ContextMenuCheckboxItem (line 137) | function ContextMenuCheckboxItem({ function ContextMenuRadioItem (line 163) | function ContextMenuRadioItem({ function ContextMenuLabel (line 187) | function ContextMenuLabel({ function ContextMenuSeparator (line 207) | function ContextMenuSeparator({ function ContextMenuShortcut (line 220) | function ContextMenuShortcut({ FILE: src/components/ui/dialog.tsx function Dialog (line 9) | function Dialog({ function DialogTrigger (line 15) | function DialogTrigger({ function DialogPortal (line 21) | function DialogPortal({ function DialogClose (line 27) | function DialogClose({ function DialogOverlay (line 33) | function DialogOverlay({ function DialogContent (line 49) | function DialogContent({ function DialogHeader (line 83) | function DialogHeader({ className, ...props }: React.ComponentProps<"div... function DialogFooter (line 93) | function DialogFooter({ className, ...props }: React.ComponentProps<"div... function DialogTitle (line 106) | function DialogTitle({ function DialogDescription (line 119) | function DialogDescription({ FILE: src/components/ui/diff-view.tsx type DiffViewProps (line 7) | interface DiffViewProps { type WordDiff (line 15) | interface WordDiff { function computeWordDiff (line 21) | function computeWordDiff(original: string, modified: string): WordDiff[] { function DiffView (line 93) | function DiffView({ original, modified, className, mode = "word", langua... function CodeDiffContent (line 151) | function CodeDiffContent({ wordDiff, language }: { wordDiff: WordDiff[];... function SideBySideDiff (line 221) | function SideBySideDiff({ original, modified, className }: Omit) { function FormLabel (line 90) | function FormLabel({ function FormControl (line 107) | function FormControl({ ...props }: React.ComponentProps) { function FormDescription (line 125) | function FormDescription({ className, ...props }: React.ComponentProps<"... function FormMessage (line 138) | function FormMessage({ className, ...props }: React.ComponentProps<"p">) { FILE: src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: src/components/ui/json-tree-view.tsx type JsonNode (line 8) | interface JsonNode { type JsonTreeViewProps (line 45) | interface JsonTreeViewProps { function JsonTreeView (line 54) | function JsonTreeView({ data, className, fontSize = "xs", maxDepth = 10,... function JsonTreeViewWrapper (line 265) | function JsonTreeViewWrapper({ FILE: src/components/ui/label.tsx function Label (line 8) | function Label({ FILE: src/components/ui/masonry.tsx type MasonryProps (line 5) | interface MasonryProps { function Masonry (line 17) | function Masonry({ FILE: src/components/ui/popover.tsx function Popover (line 8) | function Popover({ function PopoverTrigger (line 14) | function PopoverTrigger({ function PopoverContent (line 20) | function PopoverContent({ function PopoverAnchor (line 42) | function PopoverAnchor({ FILE: src/components/ui/scroll-area.tsx function ScrollArea (line 8) | function ScrollArea({ function ScrollBar (line 31) | function ScrollBar({ FILE: src/components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 21) | function SelectValue({ function SelectTrigger (line 27) | function SelectTrigger({ function SelectContent (line 53) | function SelectContent({ function SelectLabel (line 90) | function SelectLabel({ function SelectItem (line 103) | function SelectItem({ function SelectSeparator (line 127) | function SelectSeparator({ function SelectScrollUpButton (line 140) | function SelectScrollUpButton({ function SelectScrollDownButton (line 158) | function SelectScrollDownButton({ FILE: src/components/ui/separator.tsx function Separator (line 8) | function Separator({ FILE: src/components/ui/sheet.tsx function Sheet (line 9) | function Sheet({ ...props }: React.ComponentProps) { FILE: src/components/ui/switch.tsx function Switch (line 8) | function Switch({ FILE: src/components/ui/table.tsx function Table (line 7) | function Table({ className, ...props }: React.ComponentProps<"table">) { function TableHeader (line 22) | function TableHeader({ className, ...props }: React.ComponentProps<"thea... function TableBody (line 32) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"... function TableFooter (line 42) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo... function TableRow (line 55) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) { function TableHead (line 68) | function TableHead({ className, ...props }: React.ComponentProps<"th">) { function TableCell (line 81) | function TableCell({ className, ...props }: React.ComponentProps<"td">) { function TableCaption (line 94) | function TableCaption({ FILE: src/components/ui/tabs.tsx function Tabs (line 8) | function Tabs({ function TabsList (line 21) | function TabsList({ function TabsTrigger (line 37) | function TabsTrigger({ function TabsContent (line 53) | function TabsContent({ FILE: src/components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<"textare... FILE: src/components/ui/tooltip.tsx function TooltipProvider (line 8) | function TooltipProvider({ function Tooltip (line 21) | function Tooltip({ function TooltipTrigger (line 31) | function TooltipTrigger({ function TooltipContent (line 37) | function TooltipContent({ FILE: src/components/user/activity-chart-wrapper.tsx type ActivityChartWrapperProps (line 7) | interface ActivityChartWrapperProps { function ActivityChartWrapper (line 12) | function ActivityChartWrapper({ data, locale }: ActivityChartWrapperProp... FILE: src/components/user/activity-chart.tsx type ActivityData (line 12) | interface ActivityData { type ActivityChartProps (line 17) | interface ActivityChartProps { function ActivityChart (line 24) | function ActivityChart({ data, locale = "en", selectedDate, onDateClick ... FILE: src/components/user/profile-links.tsx function XIcon (line 15) | function XIcon({ className }: { className?: string }) { function DiscordIcon (line 25) | function DiscordIcon({ className }: { className?: string }) { function MastodonIcon (line 33) | function MastodonIcon({ className }: { className?: string }) { function BlueskyIcon (line 41) | function BlueskyIcon({ className }: { className?: string }) { type CustomLinkType (line 49) | type CustomLinkType = type CustomLink (line 62) | interface CustomLink { type LinkIconConfig (line 68) | interface LinkIconConfig { type ProfileLinksProps (line 88) | interface ProfileLinksProps { function parseBioText (line 94) | function parseBioText(text: string): React.ReactNode[] { function ProfileLinks (line 140) | function ProfileLinks({ bio, customLinks, className }: ProfileLinksProps) { FILE: src/data/api-docs.ts type ApiSection (line 7) | interface ApiSection { type ApiItem (line 12) | interface ApiItem { constant API_DOCS (line 22) | const API_DOCS: ApiSection[] = [ FILE: src/data/method-options.ts constant METHOD_OPTIONS (line 7) | const METHOD_OPTIONS: Record = { constant TYPE_OPTIONS (line 75) | const TYPE_OPTIONS: Record = { FILE: src/data/type-definitions.ts constant TYPE_DEFINITIONS (line 7) | const TYPE_DEFINITIONS = ` FILE: src/hooks/use-mobile.ts function useIsMobile (line 5) | function useIsMobile(breakpoint: number = 768) { FILE: src/i18n/request.ts function detectLocaleFromHeader (line 10) | function detectLocaleFromHeader(acceptLanguage: string | null): string |... method onError (line 73) | onError(error) { method getMessageFallback (line 83) | getMessageFallback({ namespace, key }) { FILE: src/instrumentation-client.ts method beforeSend (line 52) | beforeSend(event) { FILE: src/instrumentation.ts function register (line 3) | async function register() { FILE: src/lib/ai/embeddings.ts function getOpenAIClient (line 11) | function getOpenAIClient(): OpenAI { constant EMBEDDING_MODEL (line 25) | const EMBEDDING_MODEL = process.env.OPENAI_EMBEDDING_MODEL || "text-embe... constant TRANSLATION_MODEL (line 26) | const TRANSLATION_MODEL = process.env.OPENAI_TRANSLATION_MODEL || "gpt-4... function translateQueryToEnglish (line 32) | async function translateQueryToEnglish(query: string): Promise { function containsNonEnglish (line 64) | function containsNonEnglish(text: string): boolean { function generateEmbedding (line 70) | async function generateEmbedding(text: string): Promise { function generatePromptEmbedding (line 81) | async function generatePromptEmbedding(promptId: string): Promise { function delay (line 111) | function delay(ms: number): Promise { function generateAllEmbeddings (line 115) | async function generateAllEmbeddings( function cosineSimilarity (line 161) | function cosineSimilarity(a: number[], b: number[]): number { type SemanticSearchResult (line 175) | interface SemanticSearchResult { function semanticSearch (line 209) | async function semanticSearch( function isAISearchEnabled (line 293) | async function isAISearchEnabled(): Promise { function findAndSaveRelatedPrompts (line 302) | async function findAndSaveRelatedPrompts(promptId: string): Promise { FILE: src/lib/ai/generation.ts function getOpenAIClient (line 10) | function getOpenAIClient(): OpenAI { constant GENERATIVE_MODEL (line 24) | const GENERATIVE_MODEL = process.env.OPENAI_GENERATIVE_MODEL || "gpt-4o-... function getAIModelName (line 26) | function getAIModelName(): string { function isAIGenerationEnabled (line 30) | async function isAIGenerationEnabled(): Promise { function translateContent (line 35) | async function translateContent(content: string, targetLanguage: string)... function generateSQL (line 56) | async function generateSQL(prompt: string): Promise { FILE: src/lib/ai/improve-prompt.ts constant IMPROVE_MODEL (line 8) | const IMPROVE_MODEL = process.env.OPENAI_IMPROVE_MODEL || "gpt-4o"; function getOpenAIClient (line 12) | function getOpenAIClient(): OpenAI { type OutputType (line 26) | type OutputType = "text" | "image" | "video" | "sound"; type OutputFormat (line 27) | type OutputFormat = "text" | "structured_json" | "structured_yaml"; type ImprovePromptInput (line 29) | interface ImprovePromptInput { type ImprovePromptResult (line 35) | interface ImprovePromptResult { function cosineSimilarity (line 44) | function cosineSimilarity(a: number[], b: number[]): number { function mapOutputTypeToDbType (line 58) | function mapOutputTypeToDbType(outputType: OutputType): "TEXT" | "IMAGE"... function findSimilarPrompts (line 67) | async function findSimilarPrompts( function formatSimilarPrompts (line 126) | function formatSimilarPrompts( function improvePrompt (line 141) | async function improvePrompt(input: ImprovePromptInput): Promise { FILE: src/lib/analytics.ts type Window (line 9) | interface Window { type GTagEvent (line 18) | type GTagEvent = { function trackEvent (line 26) | function trackEvent({ action, category, label, value, ...rest }: GTagEve... FILE: src/lib/api-key.ts constant API_KEY_PREFIX (line 3) | const API_KEY_PREFIX = "pchat_"; constant API_KEY_LENGTH (line 4) | const API_KEY_LENGTH = 32; function generateApiKey (line 9) | function generateApiKey(): string { function isValidApiKeyFormat (line 17) | function isValidApiKeyFormat(apiKey: string): boolean { FILE: src/lib/auth/index.ts function generateBaseUsername (line 13) | function generateBaseUsername(email: string, name?: string | null): stri... function CustomPrismaAdapter (line 31) | function CustomPrismaAdapter(): Adapter { function getConfiguredProviders (line 109) | function getConfiguredProviders(config: Awaited { function getConfigSync (line 221) | function getConfigSync(): PromptsConfig { FILE: src/lib/date.ts function getDateLocale (line 13) | function getDateLocale(locale: string): Locale { function formatDistanceToNow (line 17) | function formatDistanceToNow(date: Date | string, locale: string = "en")... function formatDate (line 25) | function formatDate(date: Date | string, formatStr: string, locale: stri... FILE: src/lib/db-errors.ts function isUniqueConstraintViolation (line 10) | function isUniqueConstraintViolation( FILE: src/lib/ezoic.ts function runEzoic (line 8) | function runEzoic(fn: () => void) { FILE: src/lib/format.ts function prettifyJson (line 5) | function prettifyJson(content: string): string { function isValidJson (line 17) | function isValidJson(content: string): boolean { FILE: src/lib/hooks/use-debounce.ts function useDebounce (line 3) | function useDebounce(value: T, delay: number): T { FILE: src/lib/i18n/client.ts function setLocale (line 9) | function setLocale(locale: string): void { function getLocaleClient (line 21) | function getLocaleClient(): string | null { FILE: src/lib/i18n/config.ts constant LOCALE_COOKIE (line 2) | const LOCALE_COOKIE = "NEXT_LOCALE"; function isRtlLocale (line 12) | function isRtlLocale(locale: string): boolean { function getSupportedLocales (line 17) | function getSupportedLocales() { function getDefaultLocale (line 22) | function getDefaultLocale() { FILE: src/lib/i18n/server.ts function setLocaleServer (line 12) | async function setLocaleServer(locale: string): Promise { function syncLocaleFromUser (line 38) | async function syncLocaleFromUser(userId: string): Promise { FILE: src/lib/kids/levels.ts type Level (line 1) | interface Level { type World (line 12) | interface World { function getAllLevels (line 265) | function getAllLevels(): Level[] { function getLevelBySlug (line 269) | function getLevelBySlug(slug: string): Level | undefined { function getWorldByNumber (line 273) | function getWorldByNumber(worldNumber: number): World | undefined { function getAdjacentLevels (line 277) | function getAdjacentLevels(slug: string): { prev?: Level; next?: Level } { function getLevelIndex (line 286) | function getLevelIndex(slug: string): number { function getTotalLevels (line 290) | function getTotalLevels(): number { FILE: src/lib/kids/progress.ts constant STORAGE_KEY (line 5) | const STORAGE_KEY = "kids-progress"; type LevelProgress (line 7) | interface LevelProgress { type KidsProgress (line 13) | interface KidsProgress { function getProgress (line 24) | function getProgress(): KidsProgress { function saveProgress (line 36) | function saveProgress(progress: KidsProgress): void { function completeLevel (line 46) | function completeLevel(slug: string, stars: number): KidsProgress { function isLevelUnlocked (line 73) | function isLevelUnlocked(slug: string): boolean { function getLevelProgress (line 86) | function getLevelProgress(slug: string): LevelProgress | undefined { function resetProgress (line 91) | function resetProgress(): void { function getCompletedLevelsCount (line 96) | function getCompletedLevelsCount(): number { function getTotalStars (line 101) | function getTotalStars(): number { constant COMPONENT_STATE_KEY (line 106) | const COMPONENT_STATE_KEY = "kids-component-state"; type ComponentState (line 108) | interface ComponentState { function getComponentState (line 114) | function getComponentState(levelSlug: string, componentId: string): T... function saveComponentState (line 127) | function saveComponentState(levelSlug: string, componentId: string, d... function clearComponentState (line 145) | function clearComponentState(levelSlug: string): void { function clearAllProgress (line 160) | function clearAllProgress(): void { constant SECTION_COMPLETION_KEY (line 172) | const SECTION_COMPLETION_KEY = "kids-section-completion"; type SectionCompletionState (line 174) | interface SectionCompletionState { function isSectionCompleted (line 180) | function isSectionCompleted(levelSlug: string, sectionIndex: number): bo... function markSectionCompleted (line 193) | function markSectionCompleted(levelSlug: string, sectionIndex: number): ... function clearSectionCompletion (line 211) | function clearSectionCompletion(levelSlug: string): void { function hasCompletedInteraction (line 227) | function hasCompletedInteraction(levelSlug: string, componentIdPrefix?: ... FILE: src/lib/plugins/auth/apple.ts method profile (line 11) | profile(profile) { FILE: src/lib/plugins/auth/credentials.ts method authorize (line 22) | async authorize(credentials) { FILE: src/lib/plugins/auth/github.ts method profile (line 11) | profile(profile) { FILE: src/lib/plugins/auth/index.ts function registerBuiltInAuthPlugins (line 9) | function registerBuiltInAuthPlugins(): void { FILE: src/lib/plugins/index.ts function initializePlugins (line 14) | function initializePlugins(): void { function getProviderIds (line 24) | function getProviderIds(config: Awaited>): ... function getConfiguredAuthPlugins (line 37) | async function getConfiguredAuthPlugins() { function getConfiguredAuthPlugin (line 60) | async function getConfiguredAuthPlugin() { FILE: src/lib/plugins/media-generators/fal.ts constant FAL_QUEUE_BASE (line 25) | const FAL_QUEUE_BASE = "https://queue.fal.run"; constant ALLOWED_FAL_HOSTS (line 27) | const ALLOWED_FAL_HOSTS = new Set([ function assertFalOrigin (line 38) | function assertFalOrigin(url: string): void { function parseModels (line 50) | function parseModels(envVar: string | undefined, type: "image" | "video"... type FalQueueResponse (line 74) | interface FalQueueResponse { type FalStatusResponse (line 81) | interface FalStatusResponse { type FalImageOutput (line 88) | interface FalImageOutput { type FalVideoOutput (line 93) | interface FalVideoOutput { type FalAudioOutput (line 98) | interface FalAudioOutput { function submitToFalQueue (line 106) | async function submitToFalQueue( function getFalRequestStatus (line 135) | async function getFalRequestStatus( function getFalRequestResult (line 161) | async function getFalRequestResult( function mapAspectRatioToImageSize (line 187) | function mapAspectRatioToImageSize(aspectRatio?: string): string { method startGeneration (line 244) | async startGeneration(request: GenerationRequest): Promise { function extractOutputUrls (line 343) | function extractOutputUrls(result: FalImageOutput | FalVideoOutput | Fal... FILE: src/lib/plugins/media-generators/index.ts function initializeMediaGenerators (line 31) | function initializeMediaGenerators(): void { function getMediaGeneratorPlugin (line 37) | function getMediaGeneratorPlugin(id: string): MediaGeneratorPlugin | und... function getAllMediaGeneratorPlugins (line 42) | function getAllMediaGeneratorPlugins(): MediaGeneratorPlugin[] { function getEnabledMediaGeneratorPlugins (line 47) | function getEnabledMediaGeneratorPlugins(): MediaGeneratorPlugin[] { function getAvailableModels (line 54) | function getAvailableModels(type?: MediaType): Array { FILE: src/lib/plugins/storage/index.ts constant ENABLED_STORAGE (line 4) | const ENABLED_STORAGE: string = process.env.ENABLED_STORAGE || "url"; function registerBuiltInStoragePlugins (line 7) | function registerBuiltInStoragePlugins(): void { FILE: src/lib/plugins/storage/s3.ts function getS3Client (line 20) | async function getS3Client() { method upload (line 45) | async upload(file: File | Buffer, options?: UploadOptions): Promise { FILE: src/lib/plugins/storage/url.ts method upload (line 15) | async upload(file: File | Buffer): Promise { method delete (line 24) | async delete(): Promise { FILE: src/lib/plugins/types.ts type AuthPlugin (line 7) | interface AuthPlugin { type UploadResult (line 20) | interface UploadResult { type StoragePlugin (line 27) | interface StoragePlugin { type UploadOptions (line 44) | interface UploadOptions { type PluginRegistry (line 54) | interface PluginRegistry { FILE: src/lib/plugins/widgets/book.tsx function BookWidget (line 7) | function BookWidget() { FILE: src/lib/plugins/widgets/ezoic.tsx constant EZOIC_FEED_BASE_ID (line 7) | const EZOIC_FEED_BASE_ID = 101; FILE: src/lib/plugins/widgets/index.ts function getWidgetPlugins (line 22) | function getWidgetPlugins(): WidgetPlugin[] { function getWidgetPrompts (line 29) | function getWidgetPrompts(): WidgetPrompt[] { function getWidgetPlugin (line 36) | function getWidgetPlugin(id: string): WidgetPlugin | undefined { function getWidgetPrompt (line 43) | function getWidgetPrompt(pluginId: string, promptId: string): WidgetProm... function getWidgetInsertionPositions (line 51) | function getWidgetInsertionPositions( function injectWidgets (line 96) | function injectWidgets( FILE: src/lib/plugins/widgets/textream.tsx function TextreamWidget (line 6) | function TextreamWidget() { FILE: src/lib/plugins/widgets/types.ts type WidgetContext (line 7) | interface WidgetContext { type WidgetPositionMode (line 25) | type WidgetPositionMode = "once" | "repeat"; type WidgetPositionConfig (line 27) | interface WidgetPositionConfig { type WidgetPrompt (line 38) | interface WidgetPrompt { type InjectedWidget (line 66) | interface InjectedWidget extends WidgetPrompt { type WidgetPlugin (line 72) | interface WidgetPlugin { function isWidget (line 81) | function isWidget(item: unknown): item is InjectedWidget { FILE: src/lib/prompt-access.ts function canViewPrompt (line 9) | function canViewPrompt( function checkPromptAccess (line 28) | async function checkPromptAccess( FILE: src/lib/rate-limit.ts type RateLimitEntry (line 11) | interface RateLimitEntry { type RateLimiterOptions (line 15) | interface RateLimiterOptions { class RateLimiter (line 22) | class RateLimiter { method constructor (line 29) | constructor(opts: RateLimiterOptions) { method check (line 43) | check(identifier: string): { allowed: true; remaining: number } | { al... method cleanup (line 67) | private cleanup() { FILE: src/lib/similarity.ts function normalizeContent (line 12) | function normalizeContent(content: string): string { function jaccardSimilarity (line 32) | function jaccardSimilarity(str1: string, str2: string): number { function ngramSimilarity (line 49) | function ngramSimilarity(str1: string, str2: string, n: number = 3): num... function calculateSimilarity (line 75) | function calculateSimilarity(content1: string, content2: string): number { function isSimilarContent (line 97) | function isSimilarContent( function getContentFingerprint (line 109) | function getContentFingerprint(content: string): string { FILE: src/lib/skill-files.ts type SkillFile (line 17) | interface SkillFile { constant FILE_SEPARATOR_REGEX (line 26) | const FILE_SEPARATOR_REGEX = /\x1FFILE:(.+?)\x1E/g; constant DEFAULT_SKILL_FILE (line 30) | const DEFAULT_SKILL_FILE = "SKILL.md"; constant DEFAULT_SKILL_CONTENT (line 33) | const DEFAULT_SKILL_CONTENT = `--- function parseSkillFiles (line 52) | function parseSkillFiles(content: string): SkillFile[] { function serializeSkillFiles (line 88) | function serializeSkillFiles(files: SkillFile[]): string { function getLanguageFromFilename (line 110) | function getLanguageFromFilename(filename: string): string { function sanitizeFilename (line 201) | function sanitizeFilename(filename: string): string | null { type FilenameValidationError (line 214) | type FilenameValidationError = function validateFilename (line 229) | function validateFilename(filename: string, existingFiles: string[]): Fi... constant DEFAULT_SKILL_NAME (line 271) | const DEFAULT_SKILL_NAME = 'my-skill-name'; constant DEFAULT_SKILL_DESCRIPTION (line 272) | const DEFAULT_SKILL_DESCRIPTION = 'A clear description of what this skil... constant KEBAB_CASE_REGEX (line 275) | const KEBAB_CASE_REGEX = /^[a-z][a-z0-9-]*$/; function isValidKebabCase (line 280) | function isValidKebabCase(name: string): boolean { function transliterateToAscii (line 289) | function transliterateToAscii(text: string): string { function titleToSkillName (line 324) | function titleToSkillName(title: string): string { function buildFrontmatter (line 337) | function buildFrontmatter(title: string, description: string): string { function generateSkillContentWithFrontmatter (line 347) | function generateSkillContentWithFrontmatter(title: string, description:... function parseSkillFrontmatter (line 367) | function parseSkillFrontmatter(content: string): { name?: string; descri... function updateSkillFrontmatter (line 391) | function updateSkillFrontmatter(content: string, title: string, descript... type SkillFrontmatterValidationError (line 420) | type SkillFrontmatterValidationError = function validateSkillFrontmatter (line 426) | function validateSkillFrontmatter(content: string): SkillFrontmatterVali... function suggestFilename (line 451) | function suggestFilename(existingFiles: string[]): string { FILE: src/lib/slug.ts function getOpenAIClient (line 5) | function getOpenAIClient(): OpenAI | null { constant GENERATIVE_MODEL (line 19) | const GENERATIVE_MODEL = process.env.OPENAI_GENERATIVE_MODEL || "gpt-4o-... function slugify (line 24) | function slugify(text: string): string { function isLikelyNonEnglish (line 38) | function isLikelyNonEnglish(text: string): boolean { function translateToEnglish (line 47) | async function translateToEnglish(text: string): Promise { function generateSlug (line 80) | async function generateSlug(title: string): Promise { function generatePromptSlug (line 95) | async function generatePromptSlug(title: string): Promise { FILE: src/lib/urls.ts function getPromptUrl (line 5) | function getPromptUrl(id: string, slug?: string | null): string { function getPromptEditUrl (line 15) | function getPromptEditUrl(id: string, slug?: string | null): string { function getPromptChangesUrl (line 22) | function getPromptChangesUrl(id: string, slug?: string | null): string { FILE: src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { function isChromeBrowser (line 12) | function isChromeBrowser(): boolean { function isFirefoxBrowser (line 28) | function isFirefoxBrowser(): boolean { FILE: src/lib/variable-detection.ts type DetectedVariable (line 7) | interface DetectedVariable { type VariablePattern (line 16) | type VariablePattern = type PatternConfig (line 25) | interface PatternConfig { constant PATTERNS (line 33) | const PATTERNS: PatternConfig[] = [ constant FALSE_POSITIVES (line 81) | const FALSE_POSITIVES = new Set([ function isInsideJsonString (line 103) | function isInsideJsonString(text: string, index: number): boolean { function detectVariables (line 118) | function detectVariables(text: string): DetectedVariable[] { function convertToSupportedFormat (line 202) | function convertToSupportedFormat(variable: DetectedVariable): string { function convertAllVariables (line 220) | function convertAllVariables(text: string): string { function getPatternDescription (line 241) | function getPatternDescription(pattern: VariablePattern): string { FILE: src/lib/webhook.ts type PromptData (line 4) | interface PromptData { constant WEBHOOK_PLACEHOLDERS (line 25) | const WEBHOOK_PLACEHOLDERS = { constant SLACK_PRESET_PAYLOAD (line 44) | const SLACK_PRESET_PAYLOAD = `{ function escapeJsonString (line 140) | function escapeJsonString(str: string): string { function truncate (line 149) | function truncate(str: string, maxLength: number): string { function isPrivateUrl (line 159) | function isPrivateUrl(urlString: string): boolean { function replacePlaceholders (line 223) | function replacePlaceholders(template: string, prompt: PromptData): stri... function triggerWebhooks (line 262) | async function triggerWebhooks(event: WebhookEvent, prompt: PromptData):... FILE: src/lib/works-best-with.ts type PromptMCPConfig (line 4) | interface PromptMCPConfig { constant AI_MODELS (line 10) | const AI_MODELS = { type AIModelSlug (line 50) | type AIModelSlug = keyof typeof AI_MODELS; function getModelInfo (line 52) | function getModelInfo(slug: string): { name: string; provider: string } ... function isValidModelSlug (line 56) | function isValidModelSlug(slug: string): slug is AIModelSlug { function getModelsByProvider (line 61) | function getModelsByProvider(): Record { function handler (line 1387) | async function handler(req: NextApiRequest, res: NextApiResponse) { FILE: src/proxy.ts function proxy (line 3) | function proxy(request: NextRequest) {