claude-presentation-master 4.4.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +2 -2
- package/dist/index.d.mts +311 -158
- package/dist/index.d.ts +311 -158
- package/dist/index.js +846 -622
- package/dist/index.mjs +843 -619
- package/package.json +12 -20
package/bin/cli.js
CHANGED
|
@@ -20,7 +20,7 @@ const args = process.argv.slice(2);
|
|
|
20
20
|
|
|
21
21
|
// Help text
|
|
22
22
|
const helpText = `
|
|
23
|
-
Claude Presentation Master
|
|
23
|
+
Claude Presentation Master v6.0.0
|
|
24
24
|
Generate world-class presentations using expert methodologies
|
|
25
25
|
|
|
26
26
|
100% FREE • Zero API Keys • Runs Locally
|
|
@@ -85,7 +85,7 @@ For more information: https://github.com/Stuinfla/claude-presentation-master
|
|
|
85
85
|
`;
|
|
86
86
|
|
|
87
87
|
// Version
|
|
88
|
-
const version = '
|
|
88
|
+
const version = '6.0.0';
|
|
89
89
|
|
|
90
90
|
// Parse arguments
|
|
91
91
|
function parseArgs(args) {
|
package/dist/index.d.mts
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
* Claude Presentation Master - Type Definitions
|
|
3
3
|
* @module types
|
|
4
4
|
*/
|
|
5
|
-
type PresentationMode = 'keynote' | 'business';
|
|
5
|
+
type PresentationMode$1 = 'keynote' | 'business';
|
|
6
6
|
type OutputFormat = 'html' | 'pptx';
|
|
7
7
|
type ThemeName = 'default' | 'light-corporate' | 'modern-tech' | 'minimal' | 'warm' | 'creative';
|
|
8
|
+
type PresentationType$1 = 'ted_keynote' | 'sales_pitch' | 'consulting_deck' | 'investment_banking' | 'investor_pitch' | 'technical_presentation' | 'all_hands';
|
|
8
9
|
interface PresentationConfig {
|
|
9
10
|
/** Input content (Markdown, JSON, YAML, or plain text) */
|
|
10
11
|
content: string;
|
|
11
12
|
/** Content format */
|
|
12
13
|
contentType: 'markdown' | 'json' | 'yaml' | 'text';
|
|
13
14
|
/** Presentation mode: keynote (6-25 words/slide) or business (40-80 words/slide) */
|
|
14
|
-
mode: PresentationMode;
|
|
15
|
+
mode: PresentationMode$1;
|
|
16
|
+
/** Specific presentation type (optional, inferred from mode if not provided) */
|
|
17
|
+
presentationType?: PresentationType$1;
|
|
15
18
|
/** Output formats to generate */
|
|
16
19
|
format: OutputFormat[];
|
|
17
20
|
/** Visual theme */
|
|
@@ -239,7 +242,7 @@ interface PresentationMetadata {
|
|
|
239
242
|
/** Generation timestamp */
|
|
240
243
|
generatedAt: string;
|
|
241
244
|
/** Presentation mode */
|
|
242
|
-
mode: PresentationMode;
|
|
245
|
+
mode: PresentationMode$1;
|
|
243
246
|
/** Total slide count */
|
|
244
247
|
slideCount: number;
|
|
245
248
|
/** Total word count */
|
|
@@ -251,7 +254,7 @@ interface PresentationMetadata {
|
|
|
251
254
|
/** Themes/frameworks used */
|
|
252
255
|
frameworks: string[];
|
|
253
256
|
}
|
|
254
|
-
interface ContentAnalysis {
|
|
257
|
+
interface ContentAnalysis$1 {
|
|
255
258
|
/** SCQA structure extracted */
|
|
256
259
|
scqa: SCQAStructure;
|
|
257
260
|
/** Sparkline narrative arc */
|
|
@@ -337,6 +340,194 @@ declare class PresentationEngine {
|
|
|
337
340
|
private detectFrameworks;
|
|
338
341
|
}
|
|
339
342
|
|
|
343
|
+
/**
|
|
344
|
+
* KnowledgeGateway - Central access point to the presentation knowledge base
|
|
345
|
+
*
|
|
346
|
+
* This gateway provides methods to query the knowledge base for:
|
|
347
|
+
* - Presentation mode selection (keynote vs business)
|
|
348
|
+
* - Expert methodology recommendations
|
|
349
|
+
* - Word limits and constraints
|
|
350
|
+
* - Slide templates
|
|
351
|
+
* - Quality metrics
|
|
352
|
+
* - Color palettes
|
|
353
|
+
* - Anti-patterns to avoid
|
|
354
|
+
*
|
|
355
|
+
* The entire presentation engine should query this gateway for EVERY decision.
|
|
356
|
+
*/
|
|
357
|
+
interface PresentationMode {
|
|
358
|
+
name: string;
|
|
359
|
+
use_for: string[];
|
|
360
|
+
characteristics: {
|
|
361
|
+
words_per_slide: string;
|
|
362
|
+
whitespace: string;
|
|
363
|
+
visuals: string;
|
|
364
|
+
structure: string;
|
|
365
|
+
slides_per_idea?: number;
|
|
366
|
+
action_titles?: string;
|
|
367
|
+
};
|
|
368
|
+
experts: string[];
|
|
369
|
+
}
|
|
370
|
+
interface SlideTemplate {
|
|
371
|
+
name: string;
|
|
372
|
+
purpose: string;
|
|
373
|
+
elements?: string[];
|
|
374
|
+
components?: string[];
|
|
375
|
+
word_limit: number;
|
|
376
|
+
}
|
|
377
|
+
interface QualityMetrics {
|
|
378
|
+
keynote_mode: Record<string, {
|
|
379
|
+
threshold?: number;
|
|
380
|
+
required?: boolean;
|
|
381
|
+
description: string;
|
|
382
|
+
}>;
|
|
383
|
+
business_mode: Record<string, {
|
|
384
|
+
threshold?: number;
|
|
385
|
+
required?: boolean;
|
|
386
|
+
description: string;
|
|
387
|
+
}>;
|
|
388
|
+
universal: Record<string, {
|
|
389
|
+
threshold?: number;
|
|
390
|
+
required?: boolean;
|
|
391
|
+
max_items_per_chunk?: number;
|
|
392
|
+
description: string;
|
|
393
|
+
}>;
|
|
394
|
+
}
|
|
395
|
+
interface ColorPalette {
|
|
396
|
+
name: string;
|
|
397
|
+
background: string;
|
|
398
|
+
primary: string;
|
|
399
|
+
secondary: string;
|
|
400
|
+
accent: string;
|
|
401
|
+
text: string;
|
|
402
|
+
use_case: string;
|
|
403
|
+
contrast_ratio: string;
|
|
404
|
+
}
|
|
405
|
+
type PresentationType = 'ted_keynote' | 'sales_pitch' | 'consulting_deck' | 'investment_banking' | 'investor_pitch' | 'technical_presentation' | 'all_hands';
|
|
406
|
+
declare class KnowledgeGateway {
|
|
407
|
+
private kb;
|
|
408
|
+
private loaded;
|
|
409
|
+
constructor();
|
|
410
|
+
/**
|
|
411
|
+
* Load the knowledge base from YAML file
|
|
412
|
+
*/
|
|
413
|
+
load(): Promise<void>;
|
|
414
|
+
/**
|
|
415
|
+
* Get presentation mode configuration (keynote or business)
|
|
416
|
+
*/
|
|
417
|
+
getMode(mode: 'keynote' | 'business'): PresentationMode;
|
|
418
|
+
/**
|
|
419
|
+
* Determine which mode is best for a given presentation type
|
|
420
|
+
*/
|
|
421
|
+
getModeForType(type: PresentationType): 'keynote' | 'business';
|
|
422
|
+
/**
|
|
423
|
+
* Get word limits for the specified mode
|
|
424
|
+
*/
|
|
425
|
+
getWordLimits(mode: 'keynote' | 'business'): {
|
|
426
|
+
min: number;
|
|
427
|
+
max: number;
|
|
428
|
+
ideal: number;
|
|
429
|
+
};
|
|
430
|
+
/**
|
|
431
|
+
* Get bullet point limits
|
|
432
|
+
*/
|
|
433
|
+
getBulletLimits(mode: 'keynote' | 'business'): {
|
|
434
|
+
maxBullets: number;
|
|
435
|
+
maxWordsPerBullet: number;
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Get whitespace percentage requirement
|
|
439
|
+
*/
|
|
440
|
+
getWhitespaceRequirement(mode: 'keynote' | 'business'): number;
|
|
441
|
+
/**
|
|
442
|
+
* Get slide templates for the specified mode
|
|
443
|
+
*/
|
|
444
|
+
getSlideTemplates(mode: 'keynote' | 'business'): SlideTemplate[];
|
|
445
|
+
/**
|
|
446
|
+
* Get a specific slide template by name
|
|
447
|
+
*/
|
|
448
|
+
getSlideTemplate(mode: 'keynote' | 'business', templateName: string): SlideTemplate | undefined;
|
|
449
|
+
/**
|
|
450
|
+
* Get quality metrics for grading
|
|
451
|
+
*/
|
|
452
|
+
getQualityMetrics(): QualityMetrics;
|
|
453
|
+
/**
|
|
454
|
+
* Get anti-patterns to avoid
|
|
455
|
+
*/
|
|
456
|
+
getAntiPatterns(mode: 'keynote' | 'business'): string[];
|
|
457
|
+
/**
|
|
458
|
+
* Get data visualization anti-patterns
|
|
459
|
+
*/
|
|
460
|
+
getDataVizAntiPatterns(): string[];
|
|
461
|
+
/**
|
|
462
|
+
* Get accessibility anti-patterns
|
|
463
|
+
*/
|
|
464
|
+
getAccessibilityAntiPatterns(): string[];
|
|
465
|
+
/**
|
|
466
|
+
* Get color palette by name
|
|
467
|
+
*/
|
|
468
|
+
getColorPalette(name: string): ColorPalette | undefined;
|
|
469
|
+
/**
|
|
470
|
+
* Get recommended color palette for presentation type
|
|
471
|
+
*/
|
|
472
|
+
getRecommendedPalette(type: PresentationType): ColorPalette;
|
|
473
|
+
/**
|
|
474
|
+
* Get typography guidelines for mode
|
|
475
|
+
*/
|
|
476
|
+
getTypography(mode: 'keynote' | 'business'): Record<string, string>;
|
|
477
|
+
/**
|
|
478
|
+
* Get story framework by name
|
|
479
|
+
*/
|
|
480
|
+
getStoryFramework(name: 'sparkline' | 'scqa' | 'pyramid' | 'scr'): any;
|
|
481
|
+
/**
|
|
482
|
+
* Get expert principles by name
|
|
483
|
+
*/
|
|
484
|
+
getExpertPrinciples(expertName: string): any;
|
|
485
|
+
/**
|
|
486
|
+
* Get Duarte's glance test requirements
|
|
487
|
+
*/
|
|
488
|
+
getDuarteGlanceTest(): {
|
|
489
|
+
wordLimit: number;
|
|
490
|
+
timeSeconds: number;
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Get Miller's Law constraints
|
|
494
|
+
*/
|
|
495
|
+
getMillersLaw(): {
|
|
496
|
+
minItems: number;
|
|
497
|
+
maxItems: number;
|
|
498
|
+
};
|
|
499
|
+
/**
|
|
500
|
+
* Get cognitive load constraints
|
|
501
|
+
*/
|
|
502
|
+
getCognitiveLoadLimits(): {
|
|
503
|
+
maxItemsPerChunk: number;
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* Get chart selection guidance
|
|
507
|
+
*/
|
|
508
|
+
getChartGuidance(purpose: 'comparison' | 'composition' | 'distribution' | 'relationship'): any;
|
|
509
|
+
/**
|
|
510
|
+
* Get charts to avoid
|
|
511
|
+
*/
|
|
512
|
+
getChartsToAvoid(): string[];
|
|
513
|
+
/**
|
|
514
|
+
* Get investment banking pitch book structure
|
|
515
|
+
*/
|
|
516
|
+
getIBPitchBookStructure(type: 'ma_sell_side' | 'ma_buy_side' | 'ipo_pitchbook'): any;
|
|
517
|
+
/**
|
|
518
|
+
* Check if knowledge base is loaded
|
|
519
|
+
*/
|
|
520
|
+
private ensureLoaded;
|
|
521
|
+
/**
|
|
522
|
+
* Get the full knowledge base (for advanced queries)
|
|
523
|
+
*/
|
|
524
|
+
getRawKB(): any;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Get or create the KnowledgeGateway instance
|
|
528
|
+
*/
|
|
529
|
+
declare function getKnowledgeGateway(): Promise<KnowledgeGateway>;
|
|
530
|
+
|
|
340
531
|
/**
|
|
341
532
|
* Content Analyzer - Extracts Structure from Raw Content
|
|
342
533
|
*
|
|
@@ -344,82 +535,114 @@ declare class PresentationEngine {
|
|
|
344
535
|
* - SCQA structure (Barbara Minto)
|
|
345
536
|
* - Sparkline narrative arc (Nancy Duarte)
|
|
346
537
|
* - Key messages (Rule of Three)
|
|
347
|
-
* -
|
|
348
|
-
* -
|
|
538
|
+
* - Sections with headers, bullets, metrics
|
|
539
|
+
* - Presentation type detection
|
|
540
|
+
*
|
|
541
|
+
* Fully integrated with KnowledgeGateway for expert principles.
|
|
349
542
|
*/
|
|
350
543
|
|
|
544
|
+
interface ContentSection {
|
|
545
|
+
header: string;
|
|
546
|
+
level: number;
|
|
547
|
+
content: string;
|
|
548
|
+
bullets: string[];
|
|
549
|
+
metrics: Array<{
|
|
550
|
+
value: string;
|
|
551
|
+
label: string;
|
|
552
|
+
context?: string;
|
|
553
|
+
}>;
|
|
554
|
+
}
|
|
555
|
+
interface ContentAnalysis {
|
|
556
|
+
detectedType: PresentationType;
|
|
557
|
+
title: string;
|
|
558
|
+
sections: ContentSection[];
|
|
559
|
+
keyMessages: string[];
|
|
560
|
+
dataPoints: Array<{
|
|
561
|
+
value: string;
|
|
562
|
+
label: string;
|
|
563
|
+
context?: string;
|
|
564
|
+
}>;
|
|
565
|
+
scqa: {
|
|
566
|
+
situation: string;
|
|
567
|
+
complication: string;
|
|
568
|
+
question: string;
|
|
569
|
+
answer: string;
|
|
570
|
+
};
|
|
571
|
+
sparkline: {
|
|
572
|
+
whatIs: string[];
|
|
573
|
+
whatCouldBe: string[];
|
|
574
|
+
callToAdventure: string;
|
|
575
|
+
};
|
|
576
|
+
titles: string[];
|
|
577
|
+
starMoments: string[];
|
|
578
|
+
estimatedSlideCount: number;
|
|
579
|
+
}
|
|
351
580
|
declare class ContentAnalyzer {
|
|
581
|
+
private kb;
|
|
352
582
|
private readonly situationSignals;
|
|
353
583
|
private readonly complicationSignals;
|
|
354
|
-
private readonly questionSignals;
|
|
355
584
|
private readonly answerSignals;
|
|
356
|
-
private readonly
|
|
357
|
-
private readonly
|
|
585
|
+
private readonly ctaSignals;
|
|
586
|
+
private readonly typeSignals;
|
|
587
|
+
initialize(): Promise<void>;
|
|
358
588
|
/**
|
|
359
589
|
* Analyze content and extract structural elements.
|
|
360
590
|
*/
|
|
361
591
|
analyze(content: string, contentType: string): Promise<ContentAnalysis>;
|
|
362
592
|
/**
|
|
363
|
-
* Parse content based on
|
|
593
|
+
* Parse content based on type
|
|
364
594
|
*/
|
|
365
595
|
private parseContent;
|
|
366
596
|
/**
|
|
367
|
-
*
|
|
368
|
-
*/
|
|
369
|
-
private parseMarkdown;
|
|
370
|
-
/**
|
|
371
|
-
* Parse JSON content.
|
|
372
|
-
*/
|
|
373
|
-
private parseJSON;
|
|
374
|
-
/**
|
|
375
|
-
* Parse YAML content.
|
|
597
|
+
* Extract the main title from content
|
|
376
598
|
*/
|
|
377
|
-
private
|
|
599
|
+
private extractTitle;
|
|
378
600
|
/**
|
|
379
|
-
*
|
|
601
|
+
* Detect presentation type from content signals
|
|
380
602
|
*/
|
|
381
|
-
private
|
|
603
|
+
private detectPresentationType;
|
|
382
604
|
/**
|
|
383
|
-
*
|
|
605
|
+
* Extract sections from content (headers, bullets, content)
|
|
384
606
|
*/
|
|
385
|
-
private
|
|
607
|
+
private extractSections;
|
|
386
608
|
/**
|
|
387
|
-
*
|
|
609
|
+
* Extract SCQA structure (Barbara Minto)
|
|
388
610
|
*/
|
|
389
|
-
private
|
|
611
|
+
private extractSCQA;
|
|
390
612
|
/**
|
|
391
|
-
* Extract
|
|
613
|
+
* Extract STAR moments (Something They'll Always Remember)
|
|
614
|
+
* Per Nancy Duarte - these are emotional peaks in the presentation
|
|
392
615
|
*/
|
|
393
|
-
private
|
|
616
|
+
private extractStarMoments;
|
|
394
617
|
/**
|
|
395
|
-
* Extract Sparkline
|
|
618
|
+
* Extract Sparkline elements (Nancy Duarte)
|
|
396
619
|
*/
|
|
397
620
|
private extractSparkline;
|
|
398
621
|
/**
|
|
399
|
-
* Extract key messages (max 3 - Rule of Three)
|
|
622
|
+
* Extract key messages (max 3 - Rule of Three)
|
|
400
623
|
*/
|
|
401
624
|
private extractKeyMessages;
|
|
402
625
|
/**
|
|
403
|
-
*
|
|
626
|
+
* Extract data points (metrics with values)
|
|
404
627
|
*/
|
|
405
|
-
private
|
|
628
|
+
private extractDataPoints;
|
|
406
629
|
/**
|
|
407
|
-
*
|
|
630
|
+
* Get context around a match
|
|
408
631
|
*/
|
|
409
|
-
private
|
|
632
|
+
private getContextAroundMatch;
|
|
410
633
|
/**
|
|
411
|
-
*
|
|
634
|
+
* Extract a label from surrounding context
|
|
635
|
+
* Fixes the "Century Interactive |" garbage issue by stripping table syntax
|
|
412
636
|
*/
|
|
413
|
-
private
|
|
637
|
+
private extractLabelFromContext;
|
|
414
638
|
/**
|
|
415
|
-
*
|
|
639
|
+
* Check if text contains any of the signals
|
|
416
640
|
*/
|
|
417
|
-
private estimateSlideCount;
|
|
418
641
|
private containsSignals;
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
private
|
|
642
|
+
/**
|
|
643
|
+
* Extract first meaningful sentence from text
|
|
644
|
+
*/
|
|
645
|
+
private extractFirstSentence;
|
|
423
646
|
}
|
|
424
647
|
|
|
425
648
|
/**
|
|
@@ -433,11 +656,16 @@ declare class ContentAnalyzer {
|
|
|
433
656
|
|
|
434
657
|
declare class SlideFactory {
|
|
435
658
|
private readonly templates;
|
|
659
|
+
private usedContent;
|
|
436
660
|
constructor();
|
|
661
|
+
/**
|
|
662
|
+
* Check if content has already been used (deduplication)
|
|
663
|
+
*/
|
|
664
|
+
private isContentUsed;
|
|
437
665
|
/**
|
|
438
666
|
* Create slides from analyzed content.
|
|
439
667
|
*/
|
|
440
|
-
createSlides(analysis: ContentAnalysis, mode: PresentationMode): Promise<Slide[]>;
|
|
668
|
+
createSlides(analysis: ContentAnalysis$1, mode: PresentationMode$1): Promise<Slide[]>;
|
|
441
669
|
/**
|
|
442
670
|
* Create a title slide.
|
|
443
671
|
*/
|
|
@@ -478,6 +706,10 @@ declare class SlideFactory {
|
|
|
478
706
|
* Initialize slide templates with constraints.
|
|
479
707
|
*/
|
|
480
708
|
private initializeTemplates;
|
|
709
|
+
/**
|
|
710
|
+
* Clean text by removing all content markers.
|
|
711
|
+
*/
|
|
712
|
+
private cleanText;
|
|
481
713
|
/**
|
|
482
714
|
* Truncate text to max length at word boundary.
|
|
483
715
|
*/
|
|
@@ -629,19 +861,27 @@ declare class ScoreCalculator {
|
|
|
629
861
|
}
|
|
630
862
|
|
|
631
863
|
/**
|
|
632
|
-
* QA Engine - Real Visual Quality Validation
|
|
864
|
+
* QA Engine - Real Visual Quality Validation with KB-Driven Metrics
|
|
633
865
|
*
|
|
866
|
+
* Uses KnowledgeGateway for ALL quality thresholds and expert principles.
|
|
634
867
|
* Unlike fake validation systems, this engine ACTUALLY tests:
|
|
635
868
|
* - Visual quality using Playwright screenshots + Canvas API
|
|
636
869
|
* - Layout balance and whitespace distribution
|
|
637
870
|
* - WCAG contrast compliance
|
|
638
|
-
* - Expert methodology adherence
|
|
871
|
+
* - Expert methodology adherence (Duarte, Reynolds, Gallo, Anderson)
|
|
872
|
+
*
|
|
873
|
+
* CRITICAL: All thresholds come from the knowledge base
|
|
639
874
|
*/
|
|
640
875
|
|
|
641
876
|
declare class QAEngine {
|
|
642
877
|
private browser;
|
|
878
|
+
private kb;
|
|
643
879
|
/**
|
|
644
|
-
*
|
|
880
|
+
* Initialize KnowledgeGateway
|
|
881
|
+
*/
|
|
882
|
+
private initialize;
|
|
883
|
+
/**
|
|
884
|
+
* Validate a presentation using KB-driven quality metrics
|
|
645
885
|
*/
|
|
646
886
|
validate(presentation: string | Buffer, options?: {
|
|
647
887
|
mode?: 'keynote' | 'business';
|
|
@@ -649,7 +889,7 @@ declare class QAEngine {
|
|
|
649
889
|
threshold?: number;
|
|
650
890
|
}): Promise<QAResults>;
|
|
651
891
|
/**
|
|
652
|
-
* Calculate overall QA score
|
|
892
|
+
* Calculate overall QA score using KB-driven weights
|
|
653
893
|
*/
|
|
654
894
|
calculateScore(results: QAResults): number;
|
|
655
895
|
/**
|
|
@@ -659,7 +899,10 @@ declare class QAEngine {
|
|
|
659
899
|
private runVisualTests;
|
|
660
900
|
private runContentTests;
|
|
661
901
|
private runExpertTests;
|
|
662
|
-
private
|
|
902
|
+
private validateDuartePrinciples;
|
|
903
|
+
private validateReynoldsPrinciples;
|
|
904
|
+
private validateGalloPrinciples;
|
|
905
|
+
private validateAndersonPrinciples;
|
|
663
906
|
private runAccessibilityTests;
|
|
664
907
|
private calculateVisualScore;
|
|
665
908
|
private calculateContentScore;
|
|
@@ -674,32 +917,47 @@ declare class QAEngine {
|
|
|
674
917
|
* Reveal.js Generator - HTML Presentation Output
|
|
675
918
|
*
|
|
676
919
|
* Generates complete Reveal.js presentations with:
|
|
920
|
+
* - KB-driven color palettes and typography
|
|
677
921
|
* - Responsive layouts
|
|
678
922
|
* - Animations
|
|
679
923
|
* - Speaker notes
|
|
680
|
-
* - Custom themes
|
|
681
924
|
* - Chart.js integration
|
|
682
925
|
* - Mermaid diagrams
|
|
926
|
+
*
|
|
927
|
+
* CRITICAL: All design decisions come from KnowledgeGateway
|
|
683
928
|
*/
|
|
684
929
|
|
|
685
930
|
declare class RevealJsGenerator {
|
|
686
931
|
private templateEngine;
|
|
932
|
+
private kb;
|
|
687
933
|
private defaultRevealConfig;
|
|
688
934
|
constructor();
|
|
935
|
+
/**
|
|
936
|
+
* Initialize KnowledgeGateway
|
|
937
|
+
*/
|
|
938
|
+
private initialize;
|
|
689
939
|
/**
|
|
690
940
|
* Generate complete Reveal.js HTML presentation.
|
|
691
941
|
*/
|
|
692
942
|
generate(slides: Slide[], config: PresentationConfig): Promise<string>;
|
|
943
|
+
/**
|
|
944
|
+
* Detect presentation type from config
|
|
945
|
+
*/
|
|
946
|
+
private detectPresentationType;
|
|
693
947
|
/**
|
|
694
948
|
* Build the complete HTML document.
|
|
695
949
|
*/
|
|
696
950
|
private buildDocument;
|
|
697
951
|
/**
|
|
698
|
-
* Get base styles for slides
|
|
952
|
+
* Get base styles for slides - KB-DRIVEN
|
|
699
953
|
*/
|
|
700
954
|
private getBaseStyles;
|
|
701
955
|
/**
|
|
702
|
-
*
|
|
956
|
+
* Lighten a hex color
|
|
957
|
+
*/
|
|
958
|
+
private lightenColor;
|
|
959
|
+
/**
|
|
960
|
+
* Get theme-specific styles - KB-DRIVEN
|
|
703
961
|
*/
|
|
704
962
|
private getThemeStyles;
|
|
705
963
|
/**
|
|
@@ -1022,111 +1280,6 @@ declare class CompositeChartProvider implements ChartProvider {
|
|
|
1022
1280
|
*/
|
|
1023
1281
|
declare function createDefaultChartProvider(): CompositeChartProvider;
|
|
1024
1282
|
|
|
1025
|
-
/**
|
|
1026
|
-
* Knowledge Base - RuVector Expert Principles Loader
|
|
1027
|
-
*
|
|
1028
|
-
* Loads and provides access to the 6,300+ line expert knowledge base
|
|
1029
|
-
* containing methodologies from 40+ presentation experts.
|
|
1030
|
-
*
|
|
1031
|
-
* This runs WITHOUT any API - it's static data bundled with the package.
|
|
1032
|
-
*/
|
|
1033
|
-
interface ExpertPrinciple {
|
|
1034
|
-
name: string;
|
|
1035
|
-
description: string;
|
|
1036
|
-
validation?: string[];
|
|
1037
|
-
examples?: string[];
|
|
1038
|
-
}
|
|
1039
|
-
interface ExpertMethodology {
|
|
1040
|
-
name: string;
|
|
1041
|
-
principles: ExpertPrinciple[];
|
|
1042
|
-
slideTypes?: string[];
|
|
1043
|
-
wordLimits?: {
|
|
1044
|
-
min?: number;
|
|
1045
|
-
max?: number;
|
|
1046
|
-
};
|
|
1047
|
-
}
|
|
1048
|
-
interface AutomatedQA {
|
|
1049
|
-
scoringRubric: {
|
|
1050
|
-
totalPoints: number;
|
|
1051
|
-
passingThreshold: number;
|
|
1052
|
-
categories: Record<string, {
|
|
1053
|
-
weight: number;
|
|
1054
|
-
checks: Record<string, unknown>;
|
|
1055
|
-
}>;
|
|
1056
|
-
};
|
|
1057
|
-
}
|
|
1058
|
-
declare class KnowledgeBase {
|
|
1059
|
-
private data;
|
|
1060
|
-
private loaded;
|
|
1061
|
-
/**
|
|
1062
|
-
* Load the knowledge base from the bundled YAML file.
|
|
1063
|
-
*/
|
|
1064
|
-
load(): Promise<void>;
|
|
1065
|
-
/**
|
|
1066
|
-
* Get expert methodology by name.
|
|
1067
|
-
*/
|
|
1068
|
-
getExpert(name: string): ExpertMethodology | undefined;
|
|
1069
|
-
/**
|
|
1070
|
-
* Get all expert names.
|
|
1071
|
-
*/
|
|
1072
|
-
getExpertNames(): string[];
|
|
1073
|
-
/**
|
|
1074
|
-
* Get framework recommendation for audience.
|
|
1075
|
-
*/
|
|
1076
|
-
getFrameworkForAudience(audience: string): {
|
|
1077
|
-
primaryFramework: string;
|
|
1078
|
-
secondaryFramework?: string;
|
|
1079
|
-
slideTypes: string[];
|
|
1080
|
-
} | undefined;
|
|
1081
|
-
/**
|
|
1082
|
-
* Get framework recommendation for goal.
|
|
1083
|
-
*/
|
|
1084
|
-
getFrameworkForGoal(goal: string): {
|
|
1085
|
-
primaryFramework: string;
|
|
1086
|
-
secondaryFramework?: string;
|
|
1087
|
-
slideTypes: string[];
|
|
1088
|
-
} | undefined;
|
|
1089
|
-
/**
|
|
1090
|
-
* Get QA scoring rubric.
|
|
1091
|
-
*/
|
|
1092
|
-
getScoringRubric(): AutomatedQA['scoringRubric'] | undefined;
|
|
1093
|
-
/**
|
|
1094
|
-
* Get mode configuration (keynote or business).
|
|
1095
|
-
*/
|
|
1096
|
-
getModeConfig(mode: 'keynote' | 'business'): unknown;
|
|
1097
|
-
/**
|
|
1098
|
-
* Get slide type configuration.
|
|
1099
|
-
*/
|
|
1100
|
-
getSlideType(type: string): unknown;
|
|
1101
|
-
/**
|
|
1102
|
-
* Get the knowledge base version.
|
|
1103
|
-
*/
|
|
1104
|
-
getVersion(): string;
|
|
1105
|
-
/**
|
|
1106
|
-
* Validate a slide against expert principles.
|
|
1107
|
-
*/
|
|
1108
|
-
validateAgainstExpert(expertName: string, slideData: {
|
|
1109
|
-
wordCount: number;
|
|
1110
|
-
hasActionTitle: boolean;
|
|
1111
|
-
bulletCount: number;
|
|
1112
|
-
}): {
|
|
1113
|
-
passed: boolean;
|
|
1114
|
-
violations: string[];
|
|
1115
|
-
};
|
|
1116
|
-
/**
|
|
1117
|
-
* Ensure knowledge base is loaded.
|
|
1118
|
-
*/
|
|
1119
|
-
private ensureLoaded;
|
|
1120
|
-
/**
|
|
1121
|
-
* Get default data if YAML can't be loaded.
|
|
1122
|
-
*/
|
|
1123
|
-
private getDefaultData;
|
|
1124
|
-
}
|
|
1125
|
-
/**
|
|
1126
|
-
* Get the knowledge base singleton.
|
|
1127
|
-
*/
|
|
1128
|
-
declare function getKnowledgeBase(): KnowledgeBase;
|
|
1129
|
-
|
|
1130
1283
|
/**
|
|
1131
1284
|
* Claude Presentation Master
|
|
1132
1285
|
*
|
|
@@ -1194,7 +1347,7 @@ declare function validate(presentation: string | Buffer, options?: {
|
|
|
1194
1347
|
/**
|
|
1195
1348
|
* Get the version of the package.
|
|
1196
1349
|
*/
|
|
1197
|
-
declare const VERSION = "
|
|
1350
|
+
declare const VERSION = "6.0.0";
|
|
1198
1351
|
/**
|
|
1199
1352
|
* Default export for convenience.
|
|
1200
1353
|
*/
|
|
@@ -1206,4 +1359,4 @@ declare const _default: {
|
|
|
1206
1359
|
VERSION: string;
|
|
1207
1360
|
};
|
|
1208
1361
|
|
|
1209
|
-
export { type AccessibilityResults, type ChartData, type ChartDataset, ChartJsProvider, type ChartProvider, type ChartRequest, type ChartResult, type ChartType, CompositeChartProvider, CompositeImageProvider, type ContentAnalysis, ContentAnalyzer, type ContentQAResults, type ContrastIssue, type ExpertQAResults, type ExpertValidation, type FontSizeIssue, type GlanceTestResult, type ImageData, type ImageProvider, type ImageRequest, type ImageResult,
|
|
1362
|
+
export { type AccessibilityResults, type ChartData, type ChartDataset, ChartJsProvider, type ChartProvider, type ChartRequest, type ChartResult, type ChartType, type ColorPalette, CompositeChartProvider, CompositeImageProvider, type ContentAnalysis$1 as ContentAnalysis, ContentAnalyzer, type ContentQAResults, type ContrastIssue, type ExpertQAResults, type ExpertValidation, type FontSizeIssue, type GlanceTestResult, type ImageData, type ImageProvider, type ImageRequest, type ImageResult, KnowledgeGateway, LocalImageProvider, MermaidProvider, type MetricData, type OneIdeaResult, type OutputFormat, PlaceholderImageProvider, PowerPointGenerator, type PresentationConfig, PresentationEngine, type PresentationMetadata, type PresentationMode$1 as PresentationMode, type PresentationResult, type PresentationType, QAEngine, QAFailureError, type QAIssue, type QAResults, QuickChartProvider, RevealJsGenerator, type SCQAStructure, ScoreCalculator, type SignalNoiseResult, type Slide, type SlideContentScore, type SlideData, SlideFactory, type SlideTemplate, type SlideType, type SlideVisualScore, type SparklineStructure, TemplateEngine, TemplateNotFoundError, type ThemeName, UnsplashImageProvider, VERSION, ValidationError, type VisualQAResults, createDefaultChartProvider, createDefaultImageProvider, _default as default, generate, getKnowledgeGateway, validate };
|