hanseol-dev 5.0.2-dev.13 → 5.0.2-dev.131
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/dist/agents/common/sub-agent.d.ts +14 -0
- package/dist/agents/common/sub-agent.d.ts.map +1 -1
- package/dist/agents/common/sub-agent.js +106 -4
- package/dist/agents/common/sub-agent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/office/excel-agent.d.ts +1 -1
- package/dist/agents/office/excel-agent.d.ts.map +1 -1
- package/dist/agents/office/excel-agent.js +6 -6
- package/dist/agents/office/excel-agent.js.map +1 -1
- package/dist/agents/office/excel-create-agent.d.ts +3 -0
- package/dist/agents/office/excel-create-agent.d.ts.map +1 -0
- package/dist/agents/office/excel-create-agent.js +38 -0
- package/dist/agents/office/excel-create-agent.js.map +1 -0
- package/dist/agents/office/excel-create-prompts.d.ts +4 -0
- package/dist/agents/office/excel-create-prompts.d.ts.map +1 -0
- package/dist/agents/office/excel-create-prompts.js +154 -0
- package/dist/agents/office/excel-create-prompts.js.map +1 -0
- package/dist/agents/office/index.d.ts +6 -3
- package/dist/agents/office/index.d.ts.map +1 -1
- package/dist/agents/office/index.js +6 -3
- package/dist/agents/office/index.js.map +1 -1
- package/dist/agents/office/powerpoint-agent.d.ts +1 -1
- package/dist/agents/office/powerpoint-agent.d.ts.map +1 -1
- package/dist/agents/office/powerpoint-agent.js +6 -6
- package/dist/agents/office/powerpoint-agent.js.map +1 -1
- package/dist/agents/office/powerpoint-create-agent.d.ts +3 -0
- package/dist/agents/office/powerpoint-create-agent.d.ts.map +1 -0
- package/dist/agents/office/powerpoint-create-agent.js +1295 -0
- package/dist/agents/office/powerpoint-create-agent.js.map +1 -0
- package/dist/agents/office/powerpoint-create-prompts.d.ts +19 -0
- package/dist/agents/office/powerpoint-create-prompts.d.ts.map +1 -0
- package/dist/agents/office/powerpoint-create-prompts.js +486 -0
- package/dist/agents/office/powerpoint-create-prompts.js.map +1 -0
- package/dist/agents/office/prompts.d.ts +10 -6
- package/dist/agents/office/prompts.d.ts.map +1 -1
- package/dist/agents/office/prompts.js +314 -61
- package/dist/agents/office/prompts.js.map +1 -1
- package/dist/agents/office/word-agent.d.ts +1 -1
- package/dist/agents/office/word-agent.d.ts.map +1 -1
- package/dist/agents/office/word-agent.js +6 -6
- package/dist/agents/office/word-agent.js.map +1 -1
- package/dist/agents/office/word-create-agent.d.ts +3 -0
- package/dist/agents/office/word-create-agent.d.ts.map +1 -0
- package/dist/agents/office/word-create-agent.js +38 -0
- package/dist/agents/office/word-create-agent.js.map +1 -0
- package/dist/agents/office/word-create-prompts.d.ts +4 -0
- package/dist/agents/office/word-create-prompts.d.ts.map +1 -0
- package/dist/agents/office/word-create-prompts.js +164 -0
- package/dist/agents/office/word-create-prompts.js.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/pipe/pipe-runner.d.ts.map +1 -1
- package/dist/pipe/pipe-runner.js +20 -0
- package/dist/pipe/pipe-runner.js.map +1 -1
- package/dist/prompts/agents/planning.d.ts.map +1 -1
- package/dist/prompts/agents/planning.js +20 -11
- package/dist/prompts/agents/planning.js.map +1 -1
- package/dist/prompts/shared/tool-usage.d.ts.map +1 -1
- package/dist/prompts/shared/tool-usage.js +6 -3
- package/dist/prompts/shared/tool-usage.js.map +1 -1
- package/dist/prompts/system/plan-execute.js +1 -1
- package/dist/tools/office/excel-client.js +4 -4
- package/dist/tools/office/excel-tools/index.d.ts +2 -0
- package/dist/tools/office/excel-tools/index.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/index.js +12 -0
- package/dist/tools/office/excel-tools/index.js.map +1 -1
- package/dist/tools/office/excel-tools/sheet-builders.d.ts +8 -0
- package/dist/tools/office/excel-tools/sheet-builders.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/sheet-builders.js +414 -0
- package/dist/tools/office/excel-tools/sheet-builders.js.map +1 -0
- package/dist/tools/office/excel-tools.d.ts +1 -1
- package/dist/tools/office/excel-tools.d.ts.map +1 -1
- package/dist/tools/office/excel-tools.js +1 -1
- package/dist/tools/office/excel-tools.js.map +1 -1
- package/dist/tools/office/powerpoint-client.d.ts +3 -0
- package/dist/tools/office/powerpoint-client.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-client.js +143 -10
- package/dist/tools/office/powerpoint-client.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.js +16 -1
- package/dist/tools/office/powerpoint-tools/export.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/index.d.ts +2 -0
- package/dist/tools/office/powerpoint-tools/index.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/index.js +7 -0
- package/dist/tools/office/powerpoint-tools/index.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/launch.js +2 -0
- package/dist/tools/office/powerpoint-tools/launch.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/layout-builders.d.ts +12 -0
- package/dist/tools/office/powerpoint-tools/layout-builders.d.ts.map +1 -0
- package/dist/tools/office/powerpoint-tools/layout-builders.js +785 -0
- package/dist/tools/office/powerpoint-tools/layout-builders.js.map +1 -0
- package/dist/tools/office/powerpoint-tools/slides.js +1 -1
- package/dist/tools/office/powerpoint-tools/slides.js.map +1 -1
- package/dist/tools/office/powerpoint-tools.d.ts +1 -1
- package/dist/tools/office/powerpoint-tools.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools.js +1 -1
- package/dist/tools/office/powerpoint-tools.js.map +1 -1
- package/dist/tools/office/word-client.js +4 -4
- package/dist/tools/office/word-tools/index.d.ts +4 -1
- package/dist/tools/office/word-tools/index.d.ts.map +1 -1
- package/dist/tools/office/word-tools/index.js +15 -0
- package/dist/tools/office/word-tools/index.js.map +1 -1
- package/dist/tools/office/word-tools/section-builders.d.ts +10 -0
- package/dist/tools/office/word-tools/section-builders.d.ts.map +1 -0
- package/dist/tools/office/word-tools/section-builders.js +421 -0
- package/dist/tools/office/word-tools/section-builders.js.map +1 -0
- package/dist/tools/office/word-tools.d.ts +1 -1
- package/dist/tools/office/word-tools.d.ts.map +1 -1
- package/dist/tools/office/word-tools.js +1 -1
- package/dist/tools/office/word-tools.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +7 -4
- package/dist/tools/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powerpoint-create-agent.js","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const PPT_CREATE_ENHANCEMENT_PROMPT = "You are an elite presentation design consultant specializing in modern HTML/CSS slide design.\n\nEach slide will be rendered as a standalone HTML page (1920\u00D71080px) using ONLY CSS \u2014 no images, no external resources.\nYour job: design a cohesive visual system and detailed content plan that produces beautiful HTML slides.\n\nOUTPUT FORMAT (structured text, max 1000 words):\n\n1. DOCUMENT_TYPE: pitch deck / business report / training / product launch / general\n2. AUDIENCE: Target audience description\n3. MOOD: modern-minimal / bold-energetic / corporate-elegant / warm-friendly / academic-clean\n\n4. COLOR PALETTE (6 hex values \u2014 choose colors that match the topic and mood):\n - primary: Deep main color for headers and key elements (e.g., #1B2A4A for corporate, #6C63FF for tech)\n - accent: Vibrant contrast color for highlights and CTAs (e.g., #00D4AA, #FF6B35)\n - background: Page background \u2014 near white (#F8F9FA) or near black (#0D1117) or subtle tint\n - text: Main text color \u2014 dark (#1A1A2E) for light bg, light (#E8E8E8) for dark bg\n - accent_light: Light tint of accent for subtle backgrounds (e.g., #E8F5F0)\n - gradient_end: Secondary gradient color paired with primary (e.g., #2D5F8A)\n\n5. FONTS: title_font, body_font (system only: Segoe UI, Malgun Gothic, Arial, Calibri, Georgia)\n6. SLIDE PLAN: 10-15 slides, each with:\n - Slide number and type (title / content / data / comparison / process / highlight / table / closing)\n - Title in user's language\n - Specific content direction (what data, text, visuals to include)\n - CSS layout approach (e.g., \"flexbox 3-column card grid with box-shadow\", \"CSS grid 2\u00D72 with gradient headers\", \"conic-gradient donut chart + metric cards\", \"CSS bar chart using flex-end alignment\")\n7. DESIGN NOTES: Overall HTML/CSS approach \u2014 gradients (linear-gradient, radial-gradient), box-shadows, border-radius, flexbox/grid layouts, CSS shapes, pseudo-elements for decoration\n\nKEY PRINCIPLES FOR HTML SLIDES:\n- Each slide is a full 1920\u00D71080px HTML page \u2014 use the ENTIRE space (flex:1 to stretch content)\n- CSS-only visuals: gradients, box-shadow, border-radius, conic-gradient for pie/donut charts\n- MAXIMUM 4 items per slide (2\u00D72 grid preferred)\n- NO images, NO external fonts, NO JavaScript\n\nVISUAL DIVERSITY IS CRITICAL \u2014 a presentation with only text cards is BORING:\n- For DATA: specify CSS bar charts (vertical bars using flex-end + height%), donut charts (conic-gradient), progress bars, horizontal bars\n- For COMPARISON: styled tables with colored headers, side-by-side columns\n- For PROCESS/FLOW: horizontal step boxes with arrow connectors (\u2192), numbered phases, timeline layouts\n- For METRICS: big number spotlights (72-96px font), KPI dashboards with trend arrows (\u25B2\u25BC)\n- For MIXED: left column text + right column chart, or top chart + bottom summary cards\n- In a 10-12 slide deck, plan at least: 2 chart/data viz slides, 1-2 table slides, 1-2 flow/process slides, 2-3 card slides, 1-2 metric spotlight slides\n- NEVER plan all slides as \"card grid\" \u2014 that makes every slide look identical\n\nLANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction.\nKorean input \u2192 Korean output. English slogans for Korean input = FAILURE.\n\nOutput structured text only. No preamble.";
|
|
2
|
+
export declare const PPT_STRUCTURED_PLANNING_PROMPT: string;
|
|
3
|
+
export interface DesignSystem {
|
|
4
|
+
primary_color: string;
|
|
5
|
+
accent_color: string;
|
|
6
|
+
background_color: string;
|
|
7
|
+
text_color: string;
|
|
8
|
+
accent_light: string;
|
|
9
|
+
gradient_end: string;
|
|
10
|
+
font_title: string;
|
|
11
|
+
font_body: string;
|
|
12
|
+
mood: string;
|
|
13
|
+
design_notes: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildSlideHtmlPrompt(slideTitle: string, contentDirection: string, design: DesignSystem, slideIndex: number, totalSlides: number, language: 'ko' | 'en'): string;
|
|
16
|
+
export declare const PPT_CREATE_SYSTEM_PROMPT = "You are an elite PowerPoint presentation creator.\nYou build NEW presentations using high-level layout builder tools.\nEach tool call creates ONE complete, professionally-designed slide.\n\n\u2550\u2550\u2550 AVAILABLE TOOLS \u2550\u2550\u2550\nLifecycle: powerpoint_create, powerpoint_save\nSlides: ppt_build_title_slide, ppt_build_layout_a, ppt_build_layout_b, ppt_build_layout_c, ppt_build_layout_d, ppt_build_layout_e, ppt_build_layout_f, ppt_build_closing_slide\nChart: powerpoint_add_chart (use sparingly \u2014 prefer Layout D or F for data)\nComplete: complete (call AFTER saving)\n\n\u2550\u2550\u2550 WORKFLOW \u2550\u2550\u2550\n1. powerpoint_create \u2014 launch PowerPoint\n2. ppt_build_title_slide \u2014 first slide\n3. ppt_build_layout_[a-f] \u2014 content slides (one tool call per slide)\n4. ppt_build_closing_slide \u2014 MUST be the absolute LAST content slide\n5. powerpoint_save \u2014 save file\n6. complete \u2014 report summary\n\n\u2550\u2550\u2550 CONTENT QUALITY \u2550\u2550\u2550\n\u2022 ALL text MUST be in the same language as the user's instruction\n\u2022 Korean input \u2192 Korean titles, bullets, table headers, everything\n\u2022 NEVER use placeholder text like \"[\uB0B4\uC6A9]\", \"XXX\", \"lorem ipsum\"\n\u2022 Generate REAL, specific, professional content with concrete data\n\n\u2550\u2550\u2550 RULES \u2550\u2550\u2550\n1. Build each slide COMPLETELY with one tool call before moving to the next\n2. NEVER go back to modify a previous slide\n3. NEVER use HTML tags in text \u2014 use \\n for line breaks\n4. The LAST tool before \"complete\" MUST be powerpoint_save\n5. If save fails with path error, try \"C:\\\\temp\\\\presentation.pptx\"";
|
|
17
|
+
export declare const PPT_CREATE_PLANNING_PROMPT = "You are a presentation structure planner.\nGiven the user's instruction and CREATIVE GUIDANCE, create the execution plan.\n\n\u26A0 LANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction.\n\nOUTPUT FORMAT:\nMODE: CREATE\nDESIGN DECISIONS:\n- COLOR_SCHEME: [MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN]\n- DESIGN_STYLE: [sidebar / top_band / clean]\nTOTAL_SLIDES: [number]\nSLIDE_PLAN:\n- Slide 1: [Title] | Tool: ppt_build_title_slide | Subtitle: [text]\n- Slide N: [Title] | Tool: [tool name] | Content: [summary]";
|
|
18
|
+
export declare function buildSlideSystemPrompt(toolName: string, title: string, direction: string, guidance: string, language: 'ko' | 'en'): string;
|
|
19
|
+
//# sourceMappingURL=powerpoint-create-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powerpoint-create-prompts.d.ts","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-prompts.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,6BAA6B,q1GA6CA,CAAC;AAM3C,eAAO,MAAM,8BAA8B,QAsLmC,CAAC;AAM/E,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GAAG,IAAI,GACpB,MAAM,CAkMR;AAMD,eAAO,MAAM,wBAAwB,2pDA6BmC,CAAC;AAEzE,eAAO,MAAM,0BAA0B,wlBAaqB,CAAC;AAG7D,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,GAAG,IAAI,GACpB,MAAM,CAqBR"}
|
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
export const PPT_CREATE_ENHANCEMENT_PROMPT = `You are an elite presentation design consultant specializing in modern HTML/CSS slide design.
|
|
2
|
+
|
|
3
|
+
Each slide will be rendered as a standalone HTML page (1920×1080px) using ONLY CSS — no images, no external resources.
|
|
4
|
+
Your job: design a cohesive visual system and detailed content plan that produces beautiful HTML slides.
|
|
5
|
+
|
|
6
|
+
OUTPUT FORMAT (structured text, max 1000 words):
|
|
7
|
+
|
|
8
|
+
1. DOCUMENT_TYPE: pitch deck / business report / training / product launch / general
|
|
9
|
+
2. AUDIENCE: Target audience description
|
|
10
|
+
3. MOOD: modern-minimal / bold-energetic / corporate-elegant / warm-friendly / academic-clean
|
|
11
|
+
|
|
12
|
+
4. COLOR PALETTE (6 hex values — choose colors that match the topic and mood):
|
|
13
|
+
- primary: Deep main color for headers and key elements (e.g., #1B2A4A for corporate, #6C63FF for tech)
|
|
14
|
+
- accent: Vibrant contrast color for highlights and CTAs (e.g., #00D4AA, #FF6B35)
|
|
15
|
+
- background: Page background — near white (#F8F9FA) or near black (#0D1117) or subtle tint
|
|
16
|
+
- text: Main text color — dark (#1A1A2E) for light bg, light (#E8E8E8) for dark bg
|
|
17
|
+
- accent_light: Light tint of accent for subtle backgrounds (e.g., #E8F5F0)
|
|
18
|
+
- gradient_end: Secondary gradient color paired with primary (e.g., #2D5F8A)
|
|
19
|
+
|
|
20
|
+
5. FONTS: title_font, body_font (system only: Segoe UI, Malgun Gothic, Arial, Calibri, Georgia)
|
|
21
|
+
6. SLIDE PLAN: 10-15 slides, each with:
|
|
22
|
+
- Slide number and type (title / content / data / comparison / process / highlight / table / closing)
|
|
23
|
+
- Title in user's language
|
|
24
|
+
- Specific content direction (what data, text, visuals to include)
|
|
25
|
+
- CSS layout approach (e.g., "flexbox 3-column card grid with box-shadow", "CSS grid 2×2 with gradient headers", "conic-gradient donut chart + metric cards", "CSS bar chart using flex-end alignment")
|
|
26
|
+
7. DESIGN NOTES: Overall HTML/CSS approach — gradients (linear-gradient, radial-gradient), box-shadows, border-radius, flexbox/grid layouts, CSS shapes, pseudo-elements for decoration
|
|
27
|
+
|
|
28
|
+
KEY PRINCIPLES FOR HTML SLIDES:
|
|
29
|
+
- Each slide is a full 1920×1080px HTML page — use the ENTIRE space (flex:1 to stretch content)
|
|
30
|
+
- CSS-only visuals: gradients, box-shadow, border-radius, conic-gradient for pie/donut charts
|
|
31
|
+
- MAXIMUM 4 items per slide (2×2 grid preferred)
|
|
32
|
+
- NO images, NO external fonts, NO JavaScript
|
|
33
|
+
|
|
34
|
+
VISUAL DIVERSITY IS CRITICAL — a presentation with only text cards is BORING:
|
|
35
|
+
- For DATA: specify CSS bar charts (vertical bars using flex-end + height%), donut charts (conic-gradient), progress bars, horizontal bars
|
|
36
|
+
- For COMPARISON: styled tables with colored headers, side-by-side columns
|
|
37
|
+
- For PROCESS/FLOW: horizontal step boxes with arrow connectors (→), numbered phases, timeline layouts
|
|
38
|
+
- For METRICS: big number spotlights (72-96px font), KPI dashboards with trend arrows (▲▼)
|
|
39
|
+
- For MIXED: left column text + right column chart, or top chart + bottom summary cards
|
|
40
|
+
- In a 10-12 slide deck, plan at least: 2 chart/data viz slides, 1-2 table slides, 1-2 flow/process slides, 2-3 card slides, 1-2 metric spotlight slides
|
|
41
|
+
- NEVER plan all slides as "card grid" — that makes every slide look identical
|
|
42
|
+
|
|
43
|
+
LANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction.
|
|
44
|
+
Korean input → Korean output. English slogans for Korean input = FAILURE.
|
|
45
|
+
|
|
46
|
+
Output structured text only. No preamble.`;
|
|
47
|
+
export const PPT_STRUCTURED_PLANNING_PROMPT = `You are a presentation structure planner. Output ONLY valid JSON — no markdown, no explanation, no code fences.
|
|
48
|
+
|
|
49
|
+
Given the user's instruction and CREATIVE GUIDANCE, produce a JSON object with this exact structure:
|
|
50
|
+
|
|
51
|
+
{
|
|
52
|
+
"design": {
|
|
53
|
+
"primary_color": "<CHOOSE: deep color matching the topic — NOT #1B2A4A>",
|
|
54
|
+
"accent_color": "<CHOOSE: vibrant contrast color — NOT #00D4AA>",
|
|
55
|
+
"background_color": "<CHOOSE: near-white or near-black or subtle tint>",
|
|
56
|
+
"text_color": "<CHOOSE: must contrast with background>",
|
|
57
|
+
"accent_light": "<CHOOSE: light tint of your accent color>",
|
|
58
|
+
"gradient_end": "<CHOOSE: secondary gradient paired with primary>",
|
|
59
|
+
"font_title": "Segoe UI",
|
|
60
|
+
"font_body": "Malgun Gothic",
|
|
61
|
+
"mood": "modern-minimal",
|
|
62
|
+
"design_notes": "Describe your visual approach in 1-2 sentences"
|
|
63
|
+
},
|
|
64
|
+
"slides": [
|
|
65
|
+
{ "type": "title", "title": "...", "content_direction": "..." },
|
|
66
|
+
{ "type": "content", "title": "...", "content_direction": "..." },
|
|
67
|
+
{ "type": "closing", "title": "...", "content_direction": "..." }
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
═══ FIELD DEFINITIONS ═══
|
|
72
|
+
• design.primary_color: Deep main color (headers, key elements)
|
|
73
|
+
• design.accent_color: Vibrant contrast (highlights, CTAs)
|
|
74
|
+
• design.background_color: Page background (near white, near black, or subtle tint)
|
|
75
|
+
• design.text_color: Main text color (must contrast with background)
|
|
76
|
+
• design.accent_light: Light tint for subtle section backgrounds
|
|
77
|
+
• design.gradient_end: Paired gradient color for primary
|
|
78
|
+
• design.font_title: System font for titles (Segoe UI, Arial, Georgia, Calibri)
|
|
79
|
+
• design.font_body: System font for body (Malgun Gothic, Segoe UI, Arial, Calibri)
|
|
80
|
+
• design.mood: One of modern-minimal, bold-energetic, corporate-elegant, warm-friendly, academic-clean
|
|
81
|
+
• design.design_notes: 1-2 sentence visual approach description
|
|
82
|
+
|
|
83
|
+
• slides[].type: One of "title", "content", "closing"
|
|
84
|
+
• slides[].title: Slide title in user's language (max 60 chars)
|
|
85
|
+
• slides[].content_direction: The ACTUAL TEXT AND DATA to display on this slide (3-6 sentences).
|
|
86
|
+
⚠⚠⚠ content_direction = REAL CONTENT the viewer will read. NOT layout instructions.
|
|
87
|
+
Include: specific numbers, names, descriptions, bullet point text, table data.
|
|
88
|
+
Optionally end with ONE short layout hint (e.g., "Layout: 3-column cards" or "Layout: comparison table").
|
|
89
|
+
✓ GOOD: "총매출 1,250억원(전년비 15%↑), 영업이익 180억원(14.4%). 클라우드 사업부가 전체 매출의 45%를 차지하며 가장 큰 성장 동력. Layout: 2 big metric cards"
|
|
90
|
+
✓ GOOD: "3 core services: (1) 클라우드 인프라 — 하이브리드 클라우드 구축 및 운영, (2) AI 솔루션 — 자연어처리/영상분석 AI 모델, (3) 컨설팅 — IT 전략 및 디지털 전환 자문. Layout: 3-column cards"
|
|
91
|
+
✗ BAD: "왼쪽에 개요 텍스트 3-4줄, 오른쪽에 3개의 핵심 성과 카드" ← This is a layout instruction, NOT content!
|
|
92
|
+
✗ BAD: "#accent_light 배경, #primary 글씨" ← CSS instruction, NOT content!
|
|
93
|
+
✗ BAD: "전체 배경에 그라데이션, 중앙에 큰 글씨" ← Visual instruction, NOT content!
|
|
94
|
+
|
|
95
|
+
═══ SLIDE TYPE GUIDELINES ═══
|
|
96
|
+
Every presentation MUST have: 1 title slide (first) + 1 closing slide (last)
|
|
97
|
+
Content slides between them — aim for 10-12 total slides.
|
|
98
|
+
⚠ Current year: ${new Date().getFullYear()}. For dates/timelines/roadmaps with no explicit year in the user's request, use ${new Date().getFullYear()} or later. If the user specifies a year (e.g., "2024년 3분기"), USE THAT YEAR — do not override it.
|
|
99
|
+
|
|
100
|
+
For each content slide, the content_direction should specify:
|
|
101
|
+
- What information to show (specific text, numbers, names)
|
|
102
|
+
- How to lay it out (cards, columns, table, big number, timeline, etc.)
|
|
103
|
+
- This is the ONLY instruction the HTML-generating LLM will see, so be DETAILED
|
|
104
|
+
|
|
105
|
+
═══ TEMPLATES ═══
|
|
106
|
+
PITCH DECK (startup/사업계획서/피치덱): 12 slides
|
|
107
|
+
title → problem → solution → market size → product → business model → competition → traction → team → roadmap → investment ask → closing
|
|
108
|
+
|
|
109
|
+
BUSINESS REPORT (보고서/분석/실적): 10 slides
|
|
110
|
+
title → executive summary → key metrics → analysis → comparison → spotlight → breakdown → action plan → recommendations → closing
|
|
111
|
+
|
|
112
|
+
TRAINING (교육/세미나/강의): 10 slides
|
|
113
|
+
title → objectives → core concepts → key data → process → details → case study → summary → key takeaway → closing
|
|
114
|
+
|
|
115
|
+
PRODUCT LAUNCH (제품/출시/소개): 11 slides
|
|
116
|
+
title → market need → overview → key feature → features → metrics → use cases → pricing → timeline → CTA → closing
|
|
117
|
+
|
|
118
|
+
GENERAL (발표/프레젠테이션): 10 slides
|
|
119
|
+
title → overview → key points → data → detail → spotlight → comparison → process → summary → closing
|
|
120
|
+
|
|
121
|
+
═══ THE #1 RULE — ONE VISUAL APPROACH PER SLIDE ═══
|
|
122
|
+
⚠⚠⚠ Each slide's content_direction MUST describe EXACTLY ONE visual layout.
|
|
123
|
+
The HTML renderer creates ONE visual element per slide — no more.
|
|
124
|
+
If a topic needs 2 visual elements, SPLIT IT INTO 2 SLIDES.
|
|
125
|
+
|
|
126
|
+
GOOD content_direction (ONE visual each):
|
|
127
|
+
✓ "총매출 1,250억원(전년비 15%↑), 영업이익 180억원(14.4%), 순이익 120억원. Layout: bar chart"
|
|
128
|
+
✓ "Comparison table: 4 rows (MediAI, CompA, CompB, CompC) × 3 columns (정확도, 속도, 데이터량). Highlight MediAI row. Layout: comparison table"
|
|
129
|
+
✓ "$45B 시장 규모, 28% 연평균 성장률, 5% 1년 내 점유율 목표. Layout: big numbers"
|
|
130
|
+
✓ "데이터 수집 → 전처리 → AI 분석 → 결과 리포트 → 의사 확인. 각 단계별 소요시간 표시. Layout: process flow"
|
|
131
|
+
✓ "매출 구성: 구독형 45%, 라이선스 30%, 컨설팅 25%. Layout: donut chart"
|
|
132
|
+
✓ "3 core services: (1) 클라우드 인프라, (2) AI 솔루션, (3) 컨설팅. Layout: 2×2 grid"
|
|
133
|
+
✓ "목표 달성률: 매출 92%, 고객 확보 87%, 시장점유율 73%, 만족도 95%. Layout: progress bars"
|
|
134
|
+
|
|
135
|
+
BAD content_direction (MULTIPLE visuals = OVERFLOW):
|
|
136
|
+
✗ "테이블로 수익 모델 + 수익 그래프 + 파트너십 + 라이선싱" ← 4 sections!
|
|
137
|
+
✗ "원형 차트 + 투자 조건 테이블 + 단계적 계획 + 바 차트" ← 4 sections!
|
|
138
|
+
✗ "레이더 차트 + 데이터 바 + 차별화 카드 4개" ← 3 sections!
|
|
139
|
+
✗ "성장 차트 + 시장 분할 파이 + 기회 텍스트 + 과제 텍스트" ← 4 sections!
|
|
140
|
+
|
|
141
|
+
═══ SPLITTING DENSE TOPICS INTO MULTIPLE SLIDES ═══
|
|
142
|
+
⚠ If a user topic has 4+ sub-items, you MUST split it into 2 slides:
|
|
143
|
+
• "비즈니스모델" → "수익 모델" (pricing table) + "수익 성장 전망" (bar chart)
|
|
144
|
+
• "시장분석" → "시장 규모" (3 big metrics) + "고객 세분화" (pie chart or cards)
|
|
145
|
+
• "투자조건" → "투자 조건" (table) + "자금 사용 계획" (pie or bar chart)
|
|
146
|
+
• "경쟁우위" → "경쟁사 비교" (comparison table) + "핵심 차별화" (3 card grid)
|
|
147
|
+
• "경쟁분석" → "경쟁사 비교" (comparison table ONLY) + "SWOT 분석" (2×2 grid ONLY). NEVER put table AND SWOT on same slide.
|
|
148
|
+
• "AI 솔루션" → "핵심 기능" (3 card grid) + "진단 프로세스" (process flow)
|
|
149
|
+
• "제품/플랫폼" → "핵심 기능" (3 card grid with feature descriptions) — NOT a hub-and-spoke diagram
|
|
150
|
+
• "마케팅/GTM 전략" → "마케팅 채널 전략" (3 cards) + "성과 지표" (metrics or table). NEVER put 4 strategy columns on one slide.
|
|
151
|
+
• "로드맵" → "단기 로드맵 2026" (3 milestone cards) + "장기 비전 2027-2028" (3 milestone cards)
|
|
152
|
+
• "팀 소개" (4+ members) → "창업진 소개" (2-3 people) + "핵심 팀원" (2-3 people)
|
|
153
|
+
This keeps each slide clean with generous whitespace.
|
|
154
|
+
|
|
155
|
+
═══ CONTENT DENSITY LIMITS — ABSOLUTE HARD CAPS ═══
|
|
156
|
+
⚠⚠⚠ These limits are ENFORCED by the rendering system. Exceeding them = content CLIPPED.
|
|
157
|
+
⚠ MAXIMUM 3 items per slide (cards, sections, columns). 4+ items = OVERFLOW.
|
|
158
|
+
⚠ Each item: title + 2-3 short bullets ONLY. No paragraphs inside cards.
|
|
159
|
+
⚠ Tables: maximum 4 data rows × 4 columns.
|
|
160
|
+
⚠ Timeline/Roadmap: MAXIMUM 3 milestones per slide.
|
|
161
|
+
If a roadmap has 6+ items, SPLIT into "단기 로드맵" (3 items) + "장기 비전" (3 items).
|
|
162
|
+
⚠ Data/metrics: maximum 3 big numbers per slide.
|
|
163
|
+
⚠ content_direction: max 2 sentences of ACTUAL DATA. ONE layout hint at end.
|
|
164
|
+
⚠ Keep text concise — short bullets and labels, not paragraphs. The HTML renderer will CLIP excess content.
|
|
165
|
+
|
|
166
|
+
═══ OVERVIEW / AGENDA SLIDES ═══
|
|
167
|
+
⚠ Overview/agenda slides listing presentation sections: MAXIMUM 5 items.
|
|
168
|
+
Use a numbered list style (1-5) or compact 2-column grid. NEVER use 6-7+ horizontal cards.
|
|
169
|
+
Each item: short title (2-3 words) + 1-line description only.
|
|
170
|
+
If the presentation has 10+ sections, group related topics: "시장 및 경쟁" instead of separate "시장 분석" + "경쟁 분석".
|
|
171
|
+
Overview slides should be concise — just a navigation map, not a content dump.
|
|
172
|
+
|
|
173
|
+
═══ TITLE & CLOSING SLIDE FORMAT ═══
|
|
174
|
+
⚠ Title slide (FIRST):
|
|
175
|
+
• title: Company/topic name ONLY — max 3-4 words, rendered at 96px by system
|
|
176
|
+
✓ GOOD: "MediAI" ✓ GOOD: "삼성전자 AI센터"
|
|
177
|
+
✗ BAD: "MediAI - 인공지능으로 의료 혁신을 선도합니다" (too long, wraps at 96px)
|
|
178
|
+
• content_direction: The actual subtitle/tagline TEXT. 1-2 lines, under 120 chars.
|
|
179
|
+
✓ GOOD: "AI 기반 의료 진단 혁신 플랫폼 — 투자유치 발표자료"
|
|
180
|
+
✗ BAD: "회사 로고, 슬로건, 연락처 정보" (instruction, not subtitle)
|
|
181
|
+
• Do NOT include visual/layout instructions — title uses a fixed premium template
|
|
182
|
+
⚠ Closing slide (LAST):
|
|
183
|
+
• title: "감사합니다" (Korean) or "Thank You" (English)
|
|
184
|
+
• content_direction: Same company/topic name as title slide
|
|
185
|
+
• Do NOT include visual/layout instructions — closing uses a fixed premium template
|
|
186
|
+
|
|
187
|
+
═══ LAYOUT VARIETY + VISUAL TYPE — MANDATORY ═══
|
|
188
|
+
⚠⚠⚠ You MUST vary the visual approach. No more than 2 slides with the same layout hint.
|
|
189
|
+
Available layouts (use at least 5 different types across the presentation):
|
|
190
|
+
- "2×2 grid": 4 cards in 2 rows × 2 columns (MAX 2 slides)
|
|
191
|
+
- "bar chart": CSS vertical/horizontal bars showing data trends or comparisons
|
|
192
|
+
- "donut chart": conic-gradient pie/donut with metric labels
|
|
193
|
+
- "comparison table": styled table with 3-4 rows, colored headers
|
|
194
|
+
- "process flow": horizontal step boxes connected by arrows (→), numbered phases
|
|
195
|
+
- "big numbers": 2-3 large metric spotlights (72-96px) with trend indicators (▲▼)
|
|
196
|
+
- "2-column split": left panel + right content (chart + text, or metric + details)
|
|
197
|
+
- "timeline": 3-4 milestone steps horizontal with dates
|
|
198
|
+
- "progress bars": horizontal bars showing completion/comparison percentages
|
|
199
|
+
- "hero stat": one large central metric with supporting context
|
|
200
|
+
⚠ Each content_direction MUST end with a "Layout:" hint specifying the visual type.
|
|
201
|
+
⚠ If your plan has 3+ slides all using "cards/grid" layout, REWRITE to use charts, tables, flows instead.
|
|
202
|
+
⚠ A 10-slide deck MUST have: at least 2 chart/data-viz slides, at least 1 table slide, at least 1 process/flow slide.
|
|
203
|
+
⚠ NEVER plan a presentation where every slide is cards — that is LAZY and BORING.
|
|
204
|
+
|
|
205
|
+
═══ COLOR PALETTE RULES ═══
|
|
206
|
+
⚠ NEVER use placeholder/example colors. EVERY presentation must have a UNIQUE palette:
|
|
207
|
+
• Medical/Health: blues + greens (#0B5394, #27AE60)
|
|
208
|
+
• Tech/AI: purples + cyans (#6C63FF, #00BCD4)
|
|
209
|
+
• Finance: navy + gold (#1A237E, #F4A300)
|
|
210
|
+
• Education: teal + orange (#00796B, #FF7043)
|
|
211
|
+
• Marketing: coral + purple (#FF6B6B, #7C3AED)
|
|
212
|
+
⚠ Choose colors that MATCH the specific topic. Generic blue = LAZY.
|
|
213
|
+
⚠ Ensure accent_color has HIGH contrast with primary_color.
|
|
214
|
+
|
|
215
|
+
═══ HARD RULES ═══
|
|
216
|
+
⚠ First slide MUST be type "title"
|
|
217
|
+
⚠ Last slide MUST be type "closing" with "감사합니다"/"Thank You" as title
|
|
218
|
+
⚠ ALL titles and content_direction MUST be in the SAME language as the user's instruction
|
|
219
|
+
⚠ content_direction: MUST contain ACTUAL TEXT/DATA the viewer will read. Layout hint is optional and goes at the END.
|
|
220
|
+
⚠ content_direction that is ONLY layout/visual instructions (no real data) = FAILURE. The HTML generator will display it literally.
|
|
221
|
+
⚠ HARD MAXIMUM: 13 slides total. Slides beyond 13 are DISCARDED by the system. Aim for 10-12.
|
|
222
|
+
⚠ FEWER, HIGHER-QUALITY slides > many mediocre slides. 12 excellent slides beats 15 mixed ones.
|
|
223
|
+
⚠ Each slide's content_direction must be unique and substantive — no generic placeholders
|
|
224
|
+
⚠ NEVER use "스크린샷", "screenshot", "이미지", "사진", "placeholder", "[내용]" in content_direction
|
|
225
|
+
— the system cannot insert images. Describe REAL text/data content to display.
|
|
226
|
+
⚠ Do NOT create a separate "연락처"/"Contact" slide — the closing slide already handles this.
|
|
227
|
+
— Use that slot for valuable content instead (e.g., competitive advantage, key metrics, next steps).
|
|
228
|
+
|
|
229
|
+
Output ONLY the JSON object. No preamble, no markdown fences, no explanation.`;
|
|
230
|
+
export function buildSlideHtmlPrompt(slideTitle, contentDirection, design, slideIndex, totalSlides, language) {
|
|
231
|
+
const langRule = language === 'ko'
|
|
232
|
+
? 'ALL visible text MUST be in Korean. Write naturally in Korean.'
|
|
233
|
+
: 'ALL visible text MUST be in English.';
|
|
234
|
+
const styleVariants = [
|
|
235
|
+
'LIGHT_CARDS',
|
|
236
|
+
'DARK_SECTION',
|
|
237
|
+
'LEFT_RIGHT_SPLIT',
|
|
238
|
+
'GRADIENT_HEADER',
|
|
239
|
+
'FULL_GRADIENT',
|
|
240
|
+
];
|
|
241
|
+
const styleVariant = styleVariants[slideIndex % styleVariants.length];
|
|
242
|
+
const styleGuide = {
|
|
243
|
+
'LIGHT_CARDS': `Use ${design.background_color} as page background with white cards (background:#fff, border-radius:16px, box-shadow:0 4px 20px rgba(0,0,0,0.06)).`,
|
|
244
|
+
'DARK_SECTION': `Use a compact dark gradient header strip (background: linear-gradient(135deg, ${design.primary_color}, ${design.gradient_end}); height:100px; max-height:100px) with the title in white text. The content area below (flex:1, background:${design.background_color}) holds ALL the data using the full remaining ~920px. ⚠ Header MUST be exactly 100px — NOT 200-300px. Maximize content area.`,
|
|
245
|
+
'LEFT_RIGHT_SPLIT': `Split the slide into 2 columns: LEFT panel (width:340px, background: linear-gradient(180deg, ${design.primary_color}, ${design.gradient_end})) with the title in white text (centered vertically), RIGHT area (flex:1, background:${design.background_color}, padding:48px) with the main content. Both full-height. ⚠ LEFT panel is narrow (340px) — keep title text concise. RIGHT area has 1580px for content.`,
|
|
246
|
+
'GRADIENT_HEADER': `Add a bold accent bar at the top (height:8px, background: linear-gradient(90deg, ${design.accent_color}, ${design.primary_color})). Title goes directly below the bar (no large background band — just the accent bar + title text). Content uses ${design.background_color}. ⚠ The accent bar is ONLY 8px tall — do NOT create a large colored header section.`,
|
|
247
|
+
'FULL_GRADIENT': `Use a subtle full-page gradient (background: linear-gradient(150deg, ${design.background_color} 0%, ${design.accent_light} 50%, ${design.background_color} 100%)). Cards float with stronger shadows (box-shadow: 0 8px 32px rgba(0,0,0,0.08)).`,
|
|
248
|
+
};
|
|
249
|
+
return `You are a world-class web designer creating a presentation slide as a complete HTML page.
|
|
250
|
+
Output ONLY the complete HTML document — nothing else. No explanation, no markdown fences.
|
|
251
|
+
|
|
252
|
+
═══ SLIDE INFO ═══
|
|
253
|
+
Title: "${slideTitle}"
|
|
254
|
+
Slide ${slideIndex + 1} of ${totalSlides}
|
|
255
|
+
|
|
256
|
+
═══ CONTENT DIRECTION (what to show on this slide) ═══
|
|
257
|
+
${contentDirection}
|
|
258
|
+
|
|
259
|
+
⚠⚠⚠ CRITICAL: The content_direction above is a GUIDE for what content to create.
|
|
260
|
+
Generate REAL, specific, professional text based on it. NEVER display the content_direction text literally on the slide.
|
|
261
|
+
If it says "3 big metrics: X, Y, Z" → create 3 beautifully formatted metric cards with X, Y, Z values.
|
|
262
|
+
If it says "Layout: comparison table" → create a table with the DATA mentioned, not the word "comparison table".
|
|
263
|
+
|
|
264
|
+
═══ DESIGN SYSTEM ═══
|
|
265
|
+
Primary: ${design.primary_color} | Accent: ${design.accent_color} | Background: ${design.background_color}
|
|
266
|
+
Text: ${design.text_color} | Accent Light: ${design.accent_light} | Gradient End: ${design.gradient_end}
|
|
267
|
+
Title Font: ${design.font_title} | Body Font: ${design.font_body}
|
|
268
|
+
Mood: ${design.mood} | Notes: ${design.design_notes}
|
|
269
|
+
|
|
270
|
+
═══ THIS SLIDE'S VISUAL STYLE ═══
|
|
271
|
+
${styleGuide[styleVariant]}
|
|
272
|
+
This ensures visual variety across slides. Follow this style direction.
|
|
273
|
+
|
|
274
|
+
═══ MANDATORY CSS BOILERPLATE — COPY EXACTLY ═══
|
|
275
|
+
Your <style> tag MUST start with these EXACT rules (copy verbatim):
|
|
276
|
+
|
|
277
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
278
|
+
html, body {
|
|
279
|
+
width: 1920px; height: 1080px; overflow: hidden;
|
|
280
|
+
font-family: "${design.font_body}", "${design.font_title}", "Segoe UI", "Malgun Gothic", Arial, sans-serif;
|
|
281
|
+
word-break: keep-all;
|
|
282
|
+
overflow-wrap: break-word;
|
|
283
|
+
}
|
|
284
|
+
body {
|
|
285
|
+
display: flex; flex-direction: column;
|
|
286
|
+
padding: 60px 80px;
|
|
287
|
+
height: 1080px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
⚠ word-break:keep-all is CRITICAL for Korean text — without it, words break at random characters.
|
|
291
|
+
⚠ body MUST be display:flex + flex-direction:column + height:1080px for vertical fill.
|
|
292
|
+
⚠ The main content container (the one with cards/table/chart) MUST use class="content" — required for post-processing.
|
|
293
|
+
|
|
294
|
+
═══ TECHNICAL REQUIREMENTS ═══
|
|
295
|
+
1. Complete HTML: <!DOCTYPE html> through </html>
|
|
296
|
+
2. ALL styling in <style> tag — no external resources, images, fonts, or scripts
|
|
297
|
+
3. System fonts ONLY. NO <img> tags.
|
|
298
|
+
4. Use CSS for visuals: gradients, shapes, shadows, borders, pseudo-elements
|
|
299
|
+
5. FIXED pixel layout — NO max-width, NO media queries, NO percentage widths below 80%
|
|
300
|
+
6. body IS the container — no wrapper divs. Content goes directly in body.
|
|
301
|
+
|
|
302
|
+
═══ VERTICAL FILL — THE #1 QUALITY RULE ═══
|
|
303
|
+
⚠⚠⚠ Content MUST fill the ENTIRE 1920×1080 slide. Empty space = FAILURE.
|
|
304
|
+
⚠⚠⚠ NEVER have more than 150px of empty whitespace anywhere on the slide.
|
|
305
|
+
|
|
306
|
+
MANDATORY STRUCTURE (body has EXACTLY 2 direct children):
|
|
307
|
+
body (display:flex, flex-direction:column, height:1080px, padding:60px 80px)
|
|
308
|
+
→ .slide-title (flex:0 0 auto — title text only, NO extra margin-bottom)
|
|
309
|
+
→ .content (flex:1 — STRETCHES to fill ALL remaining vertical space)
|
|
310
|
+
|
|
311
|
+
⚠ body MUST have exactly 2 direct children: .slide-title and .content. No accent bars, no spacers, no extra divs between them.
|
|
312
|
+
⚠ .slide-title should include any accent bars/decorations AS PART OF the title section, not as separate body children.
|
|
313
|
+
⚠ .content MUST use flex:1 to stretch. NEVER use justify-content:center on .content — it creates dead space.
|
|
314
|
+
|
|
315
|
+
CARDS — USE 2×2 GRID (preferred, fills vertical space best):
|
|
316
|
+
.content { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
|
|
317
|
+
.card { display:flex; flex-direction:column; justify-content:flex-start; gap:16px; padding:32px 28px; border-radius:16px; background:#fff; box-shadow:0 4px 20px rgba(0,0,0,0.06); }
|
|
318
|
+
⚠ Default to 4 cards in a 2×2 grid. If only 3 topics exist, add a "Summary" or "Outlook" card for the 4th.
|
|
319
|
+
⚠ For 2 topics: use 2 wide cards (grid-template-columns:1fr 1fr; grid-template-rows:1fr).
|
|
320
|
+
⚠ For 3 topics: grid-template-columns:1fr 1fr; first card spans 2 columns (grid-column:1/3) for variety.
|
|
321
|
+
⚠ NEVER use justify-content:space-between on cards — use flex-start + gap.
|
|
322
|
+
|
|
323
|
+
═══ CARD CONTENT — FILL EACH CARD DENSELY ═══
|
|
324
|
+
Each card MUST contain 5-6 of these items to fill the ~400px card height:
|
|
325
|
+
1. Card title (30-36px, bold, primary color)
|
|
326
|
+
2. Descriptive subtitle or intro line (26px, muted text color)
|
|
327
|
+
3. 3-5 bullet points with specific data/metrics (26px)
|
|
328
|
+
4. A short paragraph (2-3 sentences) explaining the key insight (26px)
|
|
329
|
+
5. Bottom highlight: metric badge, accent stat, or trend indicator
|
|
330
|
+
⚠ Cards with only 2-3 items look EMPTY. Always include at least: title + 3 bullets + 1 paragraph + 1 stat.
|
|
331
|
+
⚠ Each bullet: MAX 25 characters (Korean) or 50 characters (English). Longer text wraps badly.
|
|
332
|
+
⚠ Gap:16px between items. Padding:32px. Total card content should reach ~380-420px naturally.
|
|
333
|
+
|
|
334
|
+
TABLES: .content { flex:1; display:flex; flex-direction:column; }
|
|
335
|
+
table { width:100%; } th { padding:20px 24px; background:${design.primary_color}; color:#fff; }
|
|
336
|
+
td { padding:24px 20px; font-size:22px; } Add a SUMMARY BAR below the table.
|
|
337
|
+
|
|
338
|
+
TIMELINES: .content { flex:1; display:flex; align-items:stretch; gap:32px; }
|
|
339
|
+
Each milestone: tall card (flex:1) with icon circle, title, year, description, and KPI at bottom.
|
|
340
|
+
|
|
341
|
+
2-COL SPLIT: .content { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:32px; }
|
|
342
|
+
Left: chart or big metric. Right: detail cards. Both stretch full height.
|
|
343
|
+
|
|
344
|
+
BIG NUMBERS: .content { flex:1; display:flex; gap:40px; align-items:stretch; }
|
|
345
|
+
Each: flex:1 card with huge number (72-96px), label, and description paragraph.
|
|
346
|
+
|
|
347
|
+
BAR CHARTS: .content { flex:1; display:flex; flex-direction:column; }
|
|
348
|
+
.chart-area { flex:1; display:flex; align-items:flex-end; gap:48px; padding:40px; }
|
|
349
|
+
Each bar: flex:1, label ABOVE the bar (never beside it). Min label width: 120px.
|
|
350
|
+
⚠ Bar labels: use min-width:120px and text-align:center to prevent character-by-character wrapping.
|
|
351
|
+
|
|
352
|
+
DONUT/PIE CHARTS: .content { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
|
|
353
|
+
Left: donut div (width:400px; height:400px; border-radius:50%; background:conic-gradient(color1 0% X%, color2 X% Y%, ...); position:relative;)
|
|
354
|
+
Inner circle for donut hole: pseudo-element or inner div (width:200px; height:200px; border-radius:50%; background:white; centered with margin:auto)
|
|
355
|
+
Right: legend with colored dots + labels + percentages. Each item: display:flex; align-items:center; gap:12px; margin-bottom:16px;
|
|
356
|
+
|
|
357
|
+
PROCESS FLOW: .content { flex:1; display:flex; align-items:stretch; gap:0; }
|
|
358
|
+
Each step: flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:24px; background:accent_light; border-radius:12px;
|
|
359
|
+
Between steps: arrow div (width:60px; display:flex; align-items:center; justify-content:center; font-size:36px; color:accent) containing "→"
|
|
360
|
+
⚠ Use real → characters or CSS borders for arrows. NEVER use position:absolute for arrows.
|
|
361
|
+
|
|
362
|
+
PROGRESS BARS: .content { flex:1; display:flex; flex-direction:column; justify-content:center; gap:32px; }
|
|
363
|
+
Each item: label (font-size:28px; margin-bottom:8px;) + bar container (width:100%; height:40px; background:#eee; border-radius:20px; overflow:hidden;)
|
|
364
|
+
Inner bar: height:100%; width:X%; background:linear-gradient(90deg, primary, accent); border-radius:20px;
|
|
365
|
+
Percentage label at right end of bar or after the bar container.
|
|
366
|
+
|
|
367
|
+
═══ DESIGN RULES ═══
|
|
368
|
+
1. Title: 48-64px bold. Body: 26-32px. MINIMUM any visible text: 26px. NEVER use font-size below 26px for any text element. If content doesn't fit at 26px, REDUCE ITEM COUNT instead of shrinking text. Card descriptions: 26-30px. Card titles: 32-40px. Labels/captions: 26px minimum. body { font-size: 26px; } is MANDATORY.
|
|
369
|
+
2. Use gradients, box-shadow (0 4px 20px rgba(0,0,0,0.06)), border-radius (12-20px)
|
|
370
|
+
3. MIX visual types across slides for variety — use cards, tables, bar charts (CSS), donut charts (conic-gradient), process flows, comparison layouts, and big number metrics. Avoid using the same type (e.g., cards) on consecutive slides.
|
|
371
|
+
4. HARD LIMITS: MAX 4 cards (2×2 grid), MAX 2 cards per row, MAX 4 table rows, MAX 4 timeline steps.
|
|
372
|
+
⚠ If content_direction lists 5+ items, group them into 4 cards (combine related items).
|
|
373
|
+
5. ⚠⚠⚠ NEVER use position:absolute. ALL layout MUST use flexbox/grid. position:absolute is STRIPPED by the renderer.
|
|
374
|
+
6. ⚠ NEVER use hub-and-spoke or center-circle layouts (a circle in the center with items around it). The overlapping circle ALWAYS covers text. Use a simple card grid instead.
|
|
375
|
+
7. ⚠ MAXIMUM 4 columns in any grid layout. 5+ columns = text too small. Use 2-3 columns + 2 rows instead.
|
|
376
|
+
8. PIE/DONUT: conic-gradient on border-radius:50% div ONLY. No clip-path or rotated divs.
|
|
377
|
+
9. Bar chart labels: min-width:120px, text-align:center. Never let labels wrap per-character.
|
|
378
|
+
10. ⚠ NO LINE CHARTS in CSS — lines/dots never align correctly. Use bar charts (flex-end alignment) or donut charts (conic-gradient) instead.
|
|
379
|
+
11. CSS CHARTS THAT WORK: vertical bar charts (flex-end + height%), horizontal bar charts (width%), donut/pie charts (conic-gradient + border-radius:50%), progress bars (width%). Use these liberally for data visualization.
|
|
380
|
+
12. Table headers: dark background (${design.primary_color}) with WHITE text. Never transparent.
|
|
381
|
+
|
|
382
|
+
═══ SPACE UTILIZATION — NO DEAD ZONES ═══
|
|
383
|
+
⚠ Content MUST be distributed across the full 1080px height. No section should be >150px of empty whitespace.
|
|
384
|
+
⚠ If using a colored header/banner area, it MUST NOT exceed 20% of slide height (216px max).
|
|
385
|
+
⚠ The main content area (.content with flex:1) must contain the MAJORITY of visible information.
|
|
386
|
+
⚠ Cards stretch to fill height via align-items:stretch from parent — but they MUST have DENSE content inside (see CARD CONTENT DENSITY above).
|
|
387
|
+
⚠ NEVER use justify-content:center or align-items:center on .content — it bunches content in the center with empty space around it.
|
|
388
|
+
⚠ NEVER use justify-content:space-between on individual cards — it creates huge gaps between sparse items. Use flex-start + gap instead.
|
|
389
|
+
⚠ Cards in a row: parent uses align-items:stretch (default) so cards fill the full height.
|
|
390
|
+
|
|
391
|
+
═══ VISUAL DIVERSITY — MANDATORY ═══
|
|
392
|
+
⚠ Do NOT make every slide look the same! Use DIFFERENT visual types across the presentation:
|
|
393
|
+
- DATA SLIDES: CSS bar charts (vertical/horizontal), donut charts (conic-gradient), progress bars
|
|
394
|
+
- COMPARISON: Side-by-side columns, before/after layouts, styled tables
|
|
395
|
+
- PROCESS/FLOW: Horizontal step boxes connected by CSS arrows (→ or border-based), numbered phases
|
|
396
|
+
- METRICS: Big number cards with trend indicators (▲▼), KPI dashboards
|
|
397
|
+
- TEXT+VISUAL: Left column text + right column chart/graphic, or top chart + bottom cards
|
|
398
|
+
⚠ In a 12-slide deck, aim for: 2-3 chart slides, 2-3 card slides, 1-2 table slides, 1-2 process/flow slides, 1-2 mixed layouts.
|
|
399
|
+
⚠ NEVER use only cards for the entire presentation.
|
|
400
|
+
|
|
401
|
+
═══ TABLE COMPLETENESS — MANDATORY ═══
|
|
402
|
+
⚠ If you create a table, EVERY cell MUST contain real data. Empty cells = FAILURE.
|
|
403
|
+
⚠ For comparison tables: fill ALL columns for ALL competitors/items with realistic data.
|
|
404
|
+
⚠ Example: 5-company comparison → all 5 columns must have data in every row.
|
|
405
|
+
⚠ NEVER create a table with only 1 column filled — that's not a comparison, it's a list.
|
|
406
|
+
|
|
407
|
+
═══ CONTENT RULES ═══
|
|
408
|
+
• ${langRule}
|
|
409
|
+
• Korean text only — never Chinese characters (漢字), Japanese, or other scripts
|
|
410
|
+
• Generate REAL, specific content — no placeholders
|
|
411
|
+
• BALANCE density and readability — fill 80-90% of the slide area with meaningful content. Avoid both sparse slides and overloaded slides.
|
|
412
|
+
• If the user specifies a year in their request, USE THAT YEAR faithfully. Only default to ${new Date().getFullYear()} for content with no explicit year.
|
|
413
|
+
• ALL content MUST fit within 1080px height. Use compact padding (20-28px) and moderate font sizes (24-30px body) to fit more content.
|
|
414
|
+
• body MUST set font-size: 26px as the base. All text inherits at least 26px unless explicitly larger.
|
|
415
|
+
|
|
416
|
+
═══ PAGE NUMBER ═══
|
|
417
|
+
Bottom-right: "${slideIndex + 1}" (12px, opacity 0.4)
|
|
418
|
+
|
|
419
|
+
Output the complete HTML document now. Start with <!DOCTYPE html> and end with </html>.`;
|
|
420
|
+
}
|
|
421
|
+
export const PPT_CREATE_SYSTEM_PROMPT = `You are an elite PowerPoint presentation creator.
|
|
422
|
+
You build NEW presentations using high-level layout builder tools.
|
|
423
|
+
Each tool call creates ONE complete, professionally-designed slide.
|
|
424
|
+
|
|
425
|
+
═══ AVAILABLE TOOLS ═══
|
|
426
|
+
Lifecycle: powerpoint_create, powerpoint_save
|
|
427
|
+
Slides: ppt_build_title_slide, ppt_build_layout_a, ppt_build_layout_b, ppt_build_layout_c, ppt_build_layout_d, ppt_build_layout_e, ppt_build_layout_f, ppt_build_closing_slide
|
|
428
|
+
Chart: powerpoint_add_chart (use sparingly — prefer Layout D or F for data)
|
|
429
|
+
Complete: complete (call AFTER saving)
|
|
430
|
+
|
|
431
|
+
═══ WORKFLOW ═══
|
|
432
|
+
1. powerpoint_create — launch PowerPoint
|
|
433
|
+
2. ppt_build_title_slide — first slide
|
|
434
|
+
3. ppt_build_layout_[a-f] — content slides (one tool call per slide)
|
|
435
|
+
4. ppt_build_closing_slide — MUST be the absolute LAST content slide
|
|
436
|
+
5. powerpoint_save — save file
|
|
437
|
+
6. complete — report summary
|
|
438
|
+
|
|
439
|
+
═══ CONTENT QUALITY ═══
|
|
440
|
+
• ALL text MUST be in the same language as the user's instruction
|
|
441
|
+
• Korean input → Korean titles, bullets, table headers, everything
|
|
442
|
+
• NEVER use placeholder text like "[내용]", "XXX", "lorem ipsum"
|
|
443
|
+
• Generate REAL, specific, professional content with concrete data
|
|
444
|
+
|
|
445
|
+
═══ RULES ═══
|
|
446
|
+
1. Build each slide COMPLETELY with one tool call before moving to the next
|
|
447
|
+
2. NEVER go back to modify a previous slide
|
|
448
|
+
3. NEVER use HTML tags in text — use \\n for line breaks
|
|
449
|
+
4. The LAST tool before "complete" MUST be powerpoint_save
|
|
450
|
+
5. If save fails with path error, try "C:\\\\temp\\\\presentation.pptx"`;
|
|
451
|
+
export const PPT_CREATE_PLANNING_PROMPT = `You are a presentation structure planner.
|
|
452
|
+
Given the user's instruction and CREATIVE GUIDANCE, create the execution plan.
|
|
453
|
+
|
|
454
|
+
⚠ LANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction.
|
|
455
|
+
|
|
456
|
+
OUTPUT FORMAT:
|
|
457
|
+
MODE: CREATE
|
|
458
|
+
DESIGN DECISIONS:
|
|
459
|
+
- COLOR_SCHEME: [MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN]
|
|
460
|
+
- DESIGN_STYLE: [sidebar / top_band / clean]
|
|
461
|
+
TOTAL_SLIDES: [number]
|
|
462
|
+
SLIDE_PLAN:
|
|
463
|
+
- Slide 1: [Title] | Tool: ppt_build_title_slide | Subtitle: [text]
|
|
464
|
+
- Slide N: [Title] | Tool: [tool name] | Content: [summary]`;
|
|
465
|
+
export function buildSlideSystemPrompt(toolName, title, direction, guidance, language) {
|
|
466
|
+
if (!toolName.startsWith('ppt_build_layout_'))
|
|
467
|
+
return '';
|
|
468
|
+
const langRule = language === 'ko'
|
|
469
|
+
? 'ALL text MUST be in Korean.'
|
|
470
|
+
: 'ALL text MUST be in English.';
|
|
471
|
+
return `You are building slide "${title}" for a PowerPoint presentation.
|
|
472
|
+
You have exactly ONE tool available. Call it with the correct parameters.
|
|
473
|
+
|
|
474
|
+
═══ CONTENT DIRECTION ═══
|
|
475
|
+
${direction}
|
|
476
|
+
|
|
477
|
+
═══ CREATIVE CONTEXT ═══
|
|
478
|
+
${guidance}
|
|
479
|
+
|
|
480
|
+
═══ RULES ═══
|
|
481
|
+
• ${langRule}
|
|
482
|
+
• Generate REAL, specific, professional content with concrete data
|
|
483
|
+
• NEVER use placeholder text
|
|
484
|
+
• Call the tool EXACTLY ONCE with all required parameters`;
|
|
485
|
+
}
|
|
486
|
+
//# sourceMappingURL=powerpoint-create-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powerpoint-create-prompts.js","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-prompts.ts"],"names":[],"mappings":"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"}
|