claude-presentation-master 5.0.0 → 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 +307 -158
- package/dist/index.d.ts +307 -158
- package/dist/index.js +829 -615
- package/dist/index.mjs +826 -612
- package/package.json +1 -1
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
|
-
*
|
|
597
|
+
* Extract the main title from content
|
|
368
598
|
*/
|
|
369
|
-
private
|
|
599
|
+
private extractTitle;
|
|
370
600
|
/**
|
|
371
|
-
*
|
|
601
|
+
* Detect presentation type from content signals
|
|
372
602
|
*/
|
|
373
|
-
private
|
|
603
|
+
private detectPresentationType;
|
|
374
604
|
/**
|
|
375
|
-
*
|
|
605
|
+
* Extract sections from content (headers, bullets, content)
|
|
376
606
|
*/
|
|
377
|
-
private
|
|
607
|
+
private extractSections;
|
|
378
608
|
/**
|
|
379
|
-
*
|
|
609
|
+
* Extract SCQA structure (Barbara Minto)
|
|
380
610
|
*/
|
|
381
|
-
private
|
|
382
|
-
/**
|
|
383
|
-
* Split text into paragraphs.
|
|
384
|
-
*/
|
|
385
|
-
private splitIntoParagraphs;
|
|
386
|
-
/**
|
|
387
|
-
* Split text into sentences.
|
|
388
|
-
*/
|
|
389
|
-
private splitIntoSentences;
|
|
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
|
*/
|
|
@@ -633,19 +861,27 @@ declare class ScoreCalculator {
|
|
|
633
861
|
}
|
|
634
862
|
|
|
635
863
|
/**
|
|
636
|
-
* QA Engine - Real Visual Quality Validation
|
|
864
|
+
* QA Engine - Real Visual Quality Validation with KB-Driven Metrics
|
|
637
865
|
*
|
|
866
|
+
* Uses KnowledgeGateway for ALL quality thresholds and expert principles.
|
|
638
867
|
* Unlike fake validation systems, this engine ACTUALLY tests:
|
|
639
868
|
* - Visual quality using Playwright screenshots + Canvas API
|
|
640
869
|
* - Layout balance and whitespace distribution
|
|
641
870
|
* - WCAG contrast compliance
|
|
642
|
-
* - Expert methodology adherence
|
|
871
|
+
* - Expert methodology adherence (Duarte, Reynolds, Gallo, Anderson)
|
|
872
|
+
*
|
|
873
|
+
* CRITICAL: All thresholds come from the knowledge base
|
|
643
874
|
*/
|
|
644
875
|
|
|
645
876
|
declare class QAEngine {
|
|
646
877
|
private browser;
|
|
878
|
+
private kb;
|
|
879
|
+
/**
|
|
880
|
+
* Initialize KnowledgeGateway
|
|
881
|
+
*/
|
|
882
|
+
private initialize;
|
|
647
883
|
/**
|
|
648
|
-
* Validate a presentation
|
|
884
|
+
* Validate a presentation using KB-driven quality metrics
|
|
649
885
|
*/
|
|
650
886
|
validate(presentation: string | Buffer, options?: {
|
|
651
887
|
mode?: 'keynote' | 'business';
|
|
@@ -653,7 +889,7 @@ declare class QAEngine {
|
|
|
653
889
|
threshold?: number;
|
|
654
890
|
}): Promise<QAResults>;
|
|
655
891
|
/**
|
|
656
|
-
* Calculate overall QA score
|
|
892
|
+
* Calculate overall QA score using KB-driven weights
|
|
657
893
|
*/
|
|
658
894
|
calculateScore(results: QAResults): number;
|
|
659
895
|
/**
|
|
@@ -663,7 +899,10 @@ declare class QAEngine {
|
|
|
663
899
|
private runVisualTests;
|
|
664
900
|
private runContentTests;
|
|
665
901
|
private runExpertTests;
|
|
666
|
-
private
|
|
902
|
+
private validateDuartePrinciples;
|
|
903
|
+
private validateReynoldsPrinciples;
|
|
904
|
+
private validateGalloPrinciples;
|
|
905
|
+
private validateAndersonPrinciples;
|
|
667
906
|
private runAccessibilityTests;
|
|
668
907
|
private calculateVisualScore;
|
|
669
908
|
private calculateContentScore;
|
|
@@ -678,32 +917,47 @@ declare class QAEngine {
|
|
|
678
917
|
* Reveal.js Generator - HTML Presentation Output
|
|
679
918
|
*
|
|
680
919
|
* Generates complete Reveal.js presentations with:
|
|
920
|
+
* - KB-driven color palettes and typography
|
|
681
921
|
* - Responsive layouts
|
|
682
922
|
* - Animations
|
|
683
923
|
* - Speaker notes
|
|
684
|
-
* - Custom themes
|
|
685
924
|
* - Chart.js integration
|
|
686
925
|
* - Mermaid diagrams
|
|
926
|
+
*
|
|
927
|
+
* CRITICAL: All design decisions come from KnowledgeGateway
|
|
687
928
|
*/
|
|
688
929
|
|
|
689
930
|
declare class RevealJsGenerator {
|
|
690
931
|
private templateEngine;
|
|
932
|
+
private kb;
|
|
691
933
|
private defaultRevealConfig;
|
|
692
934
|
constructor();
|
|
935
|
+
/**
|
|
936
|
+
* Initialize KnowledgeGateway
|
|
937
|
+
*/
|
|
938
|
+
private initialize;
|
|
693
939
|
/**
|
|
694
940
|
* Generate complete Reveal.js HTML presentation.
|
|
695
941
|
*/
|
|
696
942
|
generate(slides: Slide[], config: PresentationConfig): Promise<string>;
|
|
943
|
+
/**
|
|
944
|
+
* Detect presentation type from config
|
|
945
|
+
*/
|
|
946
|
+
private detectPresentationType;
|
|
697
947
|
/**
|
|
698
948
|
* Build the complete HTML document.
|
|
699
949
|
*/
|
|
700
950
|
private buildDocument;
|
|
701
951
|
/**
|
|
702
|
-
* Get base styles for slides
|
|
952
|
+
* Get base styles for slides - KB-DRIVEN
|
|
703
953
|
*/
|
|
704
954
|
private getBaseStyles;
|
|
705
955
|
/**
|
|
706
|
-
*
|
|
956
|
+
* Lighten a hex color
|
|
957
|
+
*/
|
|
958
|
+
private lightenColor;
|
|
959
|
+
/**
|
|
960
|
+
* Get theme-specific styles - KB-DRIVEN
|
|
707
961
|
*/
|
|
708
962
|
private getThemeStyles;
|
|
709
963
|
/**
|
|
@@ -1026,111 +1280,6 @@ declare class CompositeChartProvider implements ChartProvider {
|
|
|
1026
1280
|
*/
|
|
1027
1281
|
declare function createDefaultChartProvider(): CompositeChartProvider;
|
|
1028
1282
|
|
|
1029
|
-
/**
|
|
1030
|
-
* Knowledge Base - RuVector Expert Principles Loader
|
|
1031
|
-
*
|
|
1032
|
-
* Loads and provides access to the 6,300+ line expert knowledge base
|
|
1033
|
-
* containing methodologies from 40+ presentation experts.
|
|
1034
|
-
*
|
|
1035
|
-
* This runs WITHOUT any API - it's static data bundled with the package.
|
|
1036
|
-
*/
|
|
1037
|
-
interface ExpertPrinciple {
|
|
1038
|
-
name: string;
|
|
1039
|
-
description: string;
|
|
1040
|
-
validation?: string[];
|
|
1041
|
-
examples?: string[];
|
|
1042
|
-
}
|
|
1043
|
-
interface ExpertMethodology {
|
|
1044
|
-
name: string;
|
|
1045
|
-
principles: ExpertPrinciple[];
|
|
1046
|
-
slideTypes?: string[];
|
|
1047
|
-
wordLimits?: {
|
|
1048
|
-
min?: number;
|
|
1049
|
-
max?: number;
|
|
1050
|
-
};
|
|
1051
|
-
}
|
|
1052
|
-
interface AutomatedQA {
|
|
1053
|
-
scoringRubric: {
|
|
1054
|
-
totalPoints: number;
|
|
1055
|
-
passingThreshold: number;
|
|
1056
|
-
categories: Record<string, {
|
|
1057
|
-
weight: number;
|
|
1058
|
-
checks: Record<string, unknown>;
|
|
1059
|
-
}>;
|
|
1060
|
-
};
|
|
1061
|
-
}
|
|
1062
|
-
declare class KnowledgeBase {
|
|
1063
|
-
private data;
|
|
1064
|
-
private loaded;
|
|
1065
|
-
/**
|
|
1066
|
-
* Load the knowledge base from the bundled YAML file.
|
|
1067
|
-
*/
|
|
1068
|
-
load(): Promise<void>;
|
|
1069
|
-
/**
|
|
1070
|
-
* Get expert methodology by name.
|
|
1071
|
-
*/
|
|
1072
|
-
getExpert(name: string): ExpertMethodology | undefined;
|
|
1073
|
-
/**
|
|
1074
|
-
* Get all expert names.
|
|
1075
|
-
*/
|
|
1076
|
-
getExpertNames(): string[];
|
|
1077
|
-
/**
|
|
1078
|
-
* Get framework recommendation for audience.
|
|
1079
|
-
*/
|
|
1080
|
-
getFrameworkForAudience(audience: string): {
|
|
1081
|
-
primaryFramework: string;
|
|
1082
|
-
secondaryFramework?: string;
|
|
1083
|
-
slideTypes: string[];
|
|
1084
|
-
} | undefined;
|
|
1085
|
-
/**
|
|
1086
|
-
* Get framework recommendation for goal.
|
|
1087
|
-
*/
|
|
1088
|
-
getFrameworkForGoal(goal: string): {
|
|
1089
|
-
primaryFramework: string;
|
|
1090
|
-
secondaryFramework?: string;
|
|
1091
|
-
slideTypes: string[];
|
|
1092
|
-
} | undefined;
|
|
1093
|
-
/**
|
|
1094
|
-
* Get QA scoring rubric.
|
|
1095
|
-
*/
|
|
1096
|
-
getScoringRubric(): AutomatedQA['scoringRubric'] | undefined;
|
|
1097
|
-
/**
|
|
1098
|
-
* Get mode configuration (keynote or business).
|
|
1099
|
-
*/
|
|
1100
|
-
getModeConfig(mode: 'keynote' | 'business'): unknown;
|
|
1101
|
-
/**
|
|
1102
|
-
* Get slide type configuration.
|
|
1103
|
-
*/
|
|
1104
|
-
getSlideType(type: string): unknown;
|
|
1105
|
-
/**
|
|
1106
|
-
* Get the knowledge base version.
|
|
1107
|
-
*/
|
|
1108
|
-
getVersion(): string;
|
|
1109
|
-
/**
|
|
1110
|
-
* Validate a slide against expert principles.
|
|
1111
|
-
*/
|
|
1112
|
-
validateAgainstExpert(expertName: string, slideData: {
|
|
1113
|
-
wordCount: number;
|
|
1114
|
-
hasActionTitle: boolean;
|
|
1115
|
-
bulletCount: number;
|
|
1116
|
-
}): {
|
|
1117
|
-
passed: boolean;
|
|
1118
|
-
violations: string[];
|
|
1119
|
-
};
|
|
1120
|
-
/**
|
|
1121
|
-
* Ensure knowledge base is loaded.
|
|
1122
|
-
*/
|
|
1123
|
-
private ensureLoaded;
|
|
1124
|
-
/**
|
|
1125
|
-
* Get default data if YAML can't be loaded.
|
|
1126
|
-
*/
|
|
1127
|
-
private getDefaultData;
|
|
1128
|
-
}
|
|
1129
|
-
/**
|
|
1130
|
-
* Get the knowledge base singleton.
|
|
1131
|
-
*/
|
|
1132
|
-
declare function getKnowledgeBase(): KnowledgeBase;
|
|
1133
|
-
|
|
1134
1283
|
/**
|
|
1135
1284
|
* Claude Presentation Master
|
|
1136
1285
|
*
|
|
@@ -1198,7 +1347,7 @@ declare function validate(presentation: string | Buffer, options?: {
|
|
|
1198
1347
|
/**
|
|
1199
1348
|
* Get the version of the package.
|
|
1200
1349
|
*/
|
|
1201
|
-
declare const VERSION = "
|
|
1350
|
+
declare const VERSION = "6.0.0";
|
|
1202
1351
|
/**
|
|
1203
1352
|
* Default export for convenience.
|
|
1204
1353
|
*/
|
|
@@ -1210,4 +1359,4 @@ declare const _default: {
|
|
|
1210
1359
|
VERSION: string;
|
|
1211
1360
|
};
|
|
1212
1361
|
|
|
1213
|
-
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 };
|