hanseol-dev 5.0.2-dev.5 → 5.0.2-dev.51

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.
Files changed (121) hide show
  1. package/dist/agents/common/sub-agent.d.ts +21 -0
  2. package/dist/agents/common/sub-agent.d.ts.map +1 -1
  3. package/dist/agents/common/sub-agent.js +195 -10
  4. package/dist/agents/common/sub-agent.js.map +1 -1
  5. package/dist/agents/index.d.ts +1 -1
  6. package/dist/agents/index.d.ts.map +1 -1
  7. package/dist/agents/index.js +1 -1
  8. package/dist/agents/index.js.map +1 -1
  9. package/dist/agents/office/excel-agent.d.ts +1 -1
  10. package/dist/agents/office/excel-agent.d.ts.map +1 -1
  11. package/dist/agents/office/excel-agent.js +6 -6
  12. package/dist/agents/office/excel-agent.js.map +1 -1
  13. package/dist/agents/office/excel-create-agent.d.ts +3 -0
  14. package/dist/agents/office/excel-create-agent.d.ts.map +1 -0
  15. package/dist/agents/office/excel-create-agent.js +38 -0
  16. package/dist/agents/office/excel-create-agent.js.map +1 -0
  17. package/dist/agents/office/excel-create-prompts.d.ts +4 -0
  18. package/dist/agents/office/excel-create-prompts.d.ts.map +1 -0
  19. package/dist/agents/office/excel-create-prompts.js +154 -0
  20. package/dist/agents/office/excel-create-prompts.js.map +1 -0
  21. package/dist/agents/office/index.d.ts +6 -3
  22. package/dist/agents/office/index.d.ts.map +1 -1
  23. package/dist/agents/office/index.js +6 -3
  24. package/dist/agents/office/index.js.map +1 -1
  25. package/dist/agents/office/powerpoint-agent.d.ts +1 -1
  26. package/dist/agents/office/powerpoint-agent.d.ts.map +1 -1
  27. package/dist/agents/office/powerpoint-agent.js +6 -6
  28. package/dist/agents/office/powerpoint-agent.js.map +1 -1
  29. package/dist/agents/office/powerpoint-create-agent.d.ts +3 -0
  30. package/dist/agents/office/powerpoint-create-agent.d.ts.map +1 -0
  31. package/dist/agents/office/powerpoint-create-agent.js +337 -0
  32. package/dist/agents/office/powerpoint-create-agent.js.map +1 -0
  33. package/dist/agents/office/powerpoint-create-prompts.d.ts +6 -0
  34. package/dist/agents/office/powerpoint-create-prompts.d.ts.map +1 -0
  35. package/dist/agents/office/powerpoint-create-prompts.js +384 -0
  36. package/dist/agents/office/powerpoint-create-prompts.js.map +1 -0
  37. package/dist/agents/office/prompts.d.ts +10 -3
  38. package/dist/agents/office/prompts.d.ts.map +1 -1
  39. package/dist/agents/office/prompts.js +479 -59
  40. package/dist/agents/office/prompts.js.map +1 -1
  41. package/dist/agents/office/word-agent.d.ts +1 -1
  42. package/dist/agents/office/word-agent.d.ts.map +1 -1
  43. package/dist/agents/office/word-agent.js +6 -6
  44. package/dist/agents/office/word-agent.js.map +1 -1
  45. package/dist/agents/office/word-create-agent.d.ts +3 -0
  46. package/dist/agents/office/word-create-agent.d.ts.map +1 -0
  47. package/dist/agents/office/word-create-agent.js +38 -0
  48. package/dist/agents/office/word-create-agent.js.map +1 -0
  49. package/dist/agents/office/word-create-prompts.d.ts +4 -0
  50. package/dist/agents/office/word-create-prompts.d.ts.map +1 -0
  51. package/dist/agents/office/word-create-prompts.js +164 -0
  52. package/dist/agents/office/word-create-prompts.js.map +1 -0
  53. package/dist/cli.js +3 -0
  54. package/dist/cli.js.map +1 -1
  55. package/dist/constants.d.ts +1 -1
  56. package/dist/constants.d.ts.map +1 -1
  57. package/dist/constants.js +1 -1
  58. package/dist/constants.js.map +1 -1
  59. package/dist/pipe/pipe-runner.d.ts.map +1 -1
  60. package/dist/pipe/pipe-runner.js +20 -0
  61. package/dist/pipe/pipe-runner.js.map +1 -1
  62. package/dist/prompts/agents/planning.d.ts.map +1 -1
  63. package/dist/prompts/agents/planning.js +43 -15
  64. package/dist/prompts/agents/planning.js.map +1 -1
  65. package/dist/prompts/shared/tool-usage.d.ts.map +1 -1
  66. package/dist/prompts/shared/tool-usage.js +6 -3
  67. package/dist/prompts/shared/tool-usage.js.map +1 -1
  68. package/dist/prompts/system/plan-execute.js +1 -1
  69. package/dist/tools/office/excel-client.js +4 -4
  70. package/dist/tools/office/excel-tools/index.d.ts +2 -0
  71. package/dist/tools/office/excel-tools/index.d.ts.map +1 -1
  72. package/dist/tools/office/excel-tools/index.js +12 -0
  73. package/dist/tools/office/excel-tools/index.js.map +1 -1
  74. package/dist/tools/office/excel-tools/sheet-builders.d.ts +8 -0
  75. package/dist/tools/office/excel-tools/sheet-builders.d.ts.map +1 -0
  76. package/dist/tools/office/excel-tools/sheet-builders.js +414 -0
  77. package/dist/tools/office/excel-tools/sheet-builders.js.map +1 -0
  78. package/dist/tools/office/excel-tools.d.ts +1 -1
  79. package/dist/tools/office/excel-tools.d.ts.map +1 -1
  80. package/dist/tools/office/excel-tools.js +1 -1
  81. package/dist/tools/office/excel-tools.js.map +1 -1
  82. package/dist/tools/office/powerpoint-client.d.ts.map +1 -1
  83. package/dist/tools/office/powerpoint-client.js +9 -10
  84. package/dist/tools/office/powerpoint-client.js.map +1 -1
  85. package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -1
  86. package/dist/tools/office/powerpoint-tools/export.js +16 -1
  87. package/dist/tools/office/powerpoint-tools/export.js.map +1 -1
  88. package/dist/tools/office/powerpoint-tools/index.d.ts +2 -0
  89. package/dist/tools/office/powerpoint-tools/index.d.ts.map +1 -1
  90. package/dist/tools/office/powerpoint-tools/index.js +11 -0
  91. package/dist/tools/office/powerpoint-tools/index.js.map +1 -1
  92. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -1
  93. package/dist/tools/office/powerpoint-tools/launch.js +2 -0
  94. package/dist/tools/office/powerpoint-tools/launch.js.map +1 -1
  95. package/dist/tools/office/powerpoint-tools/layout-builders.d.ts +12 -0
  96. package/dist/tools/office/powerpoint-tools/layout-builders.d.ts.map +1 -0
  97. package/dist/tools/office/powerpoint-tools/layout-builders.js +771 -0
  98. package/dist/tools/office/powerpoint-tools/layout-builders.js.map +1 -0
  99. package/dist/tools/office/powerpoint-tools/slides.js +1 -1
  100. package/dist/tools/office/powerpoint-tools/slides.js.map +1 -1
  101. package/dist/tools/office/powerpoint-tools.d.ts +1 -1
  102. package/dist/tools/office/powerpoint-tools.d.ts.map +1 -1
  103. package/dist/tools/office/powerpoint-tools.js +1 -1
  104. package/dist/tools/office/powerpoint-tools.js.map +1 -1
  105. package/dist/tools/office/word-client.js +4 -4
  106. package/dist/tools/office/word-tools/index.d.ts +4 -1
  107. package/dist/tools/office/word-tools/index.d.ts.map +1 -1
  108. package/dist/tools/office/word-tools/index.js +15 -0
  109. package/dist/tools/office/word-tools/index.js.map +1 -1
  110. package/dist/tools/office/word-tools/section-builders.d.ts +10 -0
  111. package/dist/tools/office/word-tools/section-builders.d.ts.map +1 -0
  112. package/dist/tools/office/word-tools/section-builders.js +421 -0
  113. package/dist/tools/office/word-tools/section-builders.js.map +1 -0
  114. package/dist/tools/office/word-tools.d.ts +1 -1
  115. package/dist/tools/office/word-tools.d.ts.map +1 -1
  116. package/dist/tools/office/word-tools.js +1 -1
  117. package/dist/tools/office/word-tools.js.map +1 -1
  118. package/dist/tools/registry.d.ts.map +1 -1
  119. package/dist/tools/registry.js +7 -4
  120. package/dist/tools/registry.js.map +1 -1
  121. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ 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 DESIGN CONSISTENCY \u2550\u2550\u2550\nPass the SAME color_scheme (or colors) and design_style to EVERY builder tool call.\nUse the values from the EXECUTION PLAN's DESIGN DECISIONS section.\ncolor_scheme MUST be one of: MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN\nOr a custom object: {primary:\"#hex\", accent:\"#hex\", light:\"#hex\", highlight:\"#hex\", sidebar:\"#hex\"}\n\n\u2550\u2550\u2550 LAYOUT TYPES \u2550\u2550\u2550\n\u2022 Layout A (ppt_build_layout_a): Bullet points with \u25A0 and \u2013 markers\n\u2022 Layout B (ppt_build_layout_b): Two-column comparison \u2014 BEST for: features, team, comparisons\n\u2022 Layout C (ppt_build_layout_c): Big number spotlight \u2014 BEST for: key metric highlight\n\u2022 Layout D (ppt_build_layout_d): Three metrics dashboard \u2014 BEST for: market data, financial KPIs\n\u2022 Layout E (ppt_build_layout_e): Process/timeline with 3 circles \u2014 BEST for: roadmap, phases\n\u2022 Layout F (ppt_build_layout_f): Table with styled headers \u2014 BEST for: product specs, pricing, data\n\n\u2550\u2550\u2550 CRITICAL: LAYOUT USAGE LIMITS \u2550\u2550\u2550\n\u26A0 ppt_build_layout_a: AT MOST 3 times. More than 3 \u2192 tool will REJECT the call.\n\u26A0 ppt_build_layout_b: AT MOST 4 times. More than 4 \u2192 tool will REJECT the call.\n\u26A0 If the EXECUTION PLAN assigns a specific layout to a slide, you MUST use that exact layout.\n\u26A0 NEVER substitute Layout A or B for another layout type. This is a HARD RULE with no exceptions.\n\n\u2550\u2550\u2550 MANDATORY PLAN COMPLIANCE \u2550\u2550\u2550\nThe EXECUTION PLAN specifies the EXACT tool name for each slide.\nYou MUST call the specified tool for each slide \u2014 do NOT deviate.\nExample: If plan says \"Slide 5: Product | ppt_build_layout_f\" \u2192 you MUST call ppt_build_layout_f, NOT ppt_build_layout_a.\nChanging the plan's layout assignment = FAILURE.\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\u2022 Layout A: MUST have 3-4 \u25A0 blocks, each with 2-3 \u2013 sub-details (NOT just single-line bullets)\n\u2022 Layout B: 3-4 items per column with details\n\u2022 Table cells must have realistic data \u2014 NO empty cells\n\u2022 Layout D numbers: MAX 6 characters. Units go in label, not number.\n\u2022 Layout E labels: MAX 8 Korean characters. Descriptions: 1-3 sentences.\n\n\u2550\u2550\u2550 LAYOUT A FORMAT (CRITICAL) \u2550\u2550\u2550\nCORRECT format \u2014 each \u25A0 block has \u2013 sub-details:\n\"\u25A0 Main Point Title\\n \u2013 Detail sentence one\\n \u2013 Detail sentence two\\n\u25A0 Next Main Point\\n \u2013 Sub-detail...\"\n\nWRONG format \u2014 just single-line bullets:\n\"\u25A0 Main point one\\n\u25A0 Main point two\\n\u25A0 Main point three\"\n\nKeep body CONCISE: max 3-4 \u25A0 blocks with 2 sub-details each. Less is more.\n\n\u2550\u2550\u2550 TEXT OVERFLOW PREVENTION \u2550\u2550\u2550\n\u2022 Title: max 60 chars\n\u2022 Layout A body: max 500 chars total (KEEP IT CONCISE \u2014 fewer \u25A0 blocks, shorter sub-details)\n\u2022 Layout B columns: max 400 chars each\n\u2022 Layout C description: max 400 chars (FILL the description \u2014 write 3-4 complete sentences)\n\u2022 Layout D numbers: max 8 chars, labels: max 20 chars\n\u2022 Layout F cells: max 50 chars each\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\"\n6. Follow the EXECUTION PLAN EXACTLY \u2014 the tool name specified for each slide is MANDATORY\n7. ppt_build_closing_slide is ONLY for farewell. Call it ONCE, as the last slide before save.";
2
+ export declare const PPT_CREATE_PLANNING_PROMPT = "You are a presentation structure planner.\nGiven the user's instruction and CREATIVE GUIDANCE, select a template and create the execution plan.\n\n\u26A0\u26A0\u26A0 LANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction. \u26A0\u26A0\u26A0\nKorean input \u2192 Korean titles: \"\uBB38\uC81C \uC778\uC2DD\", \"\uC194\uB8E8\uC158 \uC18C\uAC1C\"\nEnglish input \u2192 English titles: \"Problem\", \"Solution\"\nOnly FORMAT labels (MODE, DESIGN DECISIONS, Layout:) stay in English.\n\n\u2550\u2550\u2550 STEP 1: SELECT TEMPLATE \u2550\u2550\u2550\nBased on the document type, select the matching template:\n\nTEMPLATE A \u2014 PITCH DECK (startup/investment/pitch/\uC0AC\uC5C5\uACC4\uD68D\uC11C/\uD53C\uCE58\uB371):\n Base: 12 slides (expandable to 15)\n Slide 1: Title | ppt_build_title_slide\n Slide 2: Problem | ppt_build_layout_a\n Slide 3: Solution | ppt_build_layout_b\n Slide 4: Market Size | ppt_build_layout_d\n Slide 5: Product | ppt_build_layout_f\n Slide 6: Business Model | ppt_build_layout_d\n Slide 7: Competition | ppt_build_layout_b\n Slide 8: Traction/KPIs | ppt_build_layout_d\n Slide 9: Team | ppt_build_layout_b\n Slide 10: Roadmap | ppt_build_layout_e\n Slide 11: Investment Ask | ppt_build_layout_c\n Slide 12: Closing | ppt_build_closing_slide\n Extension slots (add between 11 and 12 if user needs more sections):\n +A: Customer Cases | ppt_build_layout_b\n +B: Tech Detail | ppt_build_layout_f\n +C: Contact | ppt_build_layout_a\n\nTEMPLATE B \u2014 BUSINESS REPORT (\uBCF4\uACE0\uC11C/\uBD84\uC11D/\uD604\uD669/\uC2E4\uC801):\n Base: 10 slides (expandable to 13)\n Slide 1: Title | ppt_build_title_slide\n Slide 2: Executive Summary | ppt_build_layout_a\n Slide 3: Key Metrics | ppt_build_layout_d\n Slide 4: Analysis Detail | ppt_build_layout_f\n Slide 5: Comparison | ppt_build_layout_b\n Slide 6: Spotlight Metric | ppt_build_layout_c\n Slide 7: Breakdown | ppt_build_layout_f\n Slide 8: Action Plan | ppt_build_layout_e\n Slide 9: Recommendations | ppt_build_layout_a\n Slide 10: Closing | ppt_build_closing_slide\n Extension: +ppt_build_layout_b, +ppt_build_layout_d, +ppt_build_layout_c\n\nTEMPLATE C \u2014 TRAINING/EDUCATION (\uAD50\uC721/\uC5F0\uC218/\uC138\uBBF8\uB098/\uAC15\uC758):\n Base: 10 slides (expandable to 13)\n Slide 1: Title | ppt_build_title_slide\n Slide 2: Learning Objectives | ppt_build_layout_a\n Slide 3: Core Concepts | ppt_build_layout_b\n Slide 4: Key Data | ppt_build_layout_d\n Slide 5: Process/Steps | ppt_build_layout_e\n Slide 6: Details | ppt_build_layout_f\n Slide 7: Case Study | ppt_build_layout_b\n Slide 8: Summary | ppt_build_layout_a\n Slide 9: Key Takeaway | ppt_build_layout_c\n Slide 10: Closing | ppt_build_closing_slide\n Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_f\n\nTEMPLATE D \u2014 PRODUCT LAUNCH (\uC81C\uD488/\uC11C\uBE44\uC2A4/\uCD9C\uC2DC/\uC18C\uAC1C):\n Base: 11 slides (expandable to 14)\n Slide 1: Title | ppt_build_title_slide\n Slide 2: Market Need | ppt_build_layout_a\n Slide 3: Product Overview | ppt_build_layout_b\n Slide 4: Key Feature | ppt_build_layout_c\n Slide 5: Features Table | ppt_build_layout_f\n Slide 6: Performance Metrics | ppt_build_layout_d\n Slide 7: Use Cases | ppt_build_layout_b\n Slide 8: Pricing | ppt_build_layout_f\n Slide 9: Launch Timeline | ppt_build_layout_e\n Slide 10: Call to Action | ppt_build_layout_a\n Slide 11: Closing | ppt_build_closing_slide\n Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_c\n\nTEMPLATE E \u2014 GENERAL (\uAE30\uD0C0/\uBC1C\uD45C/\uD504\uB808\uC820\uD14C\uC774\uC158):\n Base: 10 slides (expandable to 13)\n Slide 1: Title | ppt_build_title_slide\n Slide 2: Overview | ppt_build_layout_a\n Slide 3: Key Points | ppt_build_layout_b\n Slide 4: Data Highlights | ppt_build_layout_d\n Slide 5: Detail Table | ppt_build_layout_f\n Slide 6: Spotlight | ppt_build_layout_c\n Slide 7: Comparison | ppt_build_layout_b\n Slide 8: Process | ppt_build_layout_e\n Slide 9: Summary | ppt_build_layout_a\n Slide 10: Closing | ppt_build_closing_slide\n Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_f\n\n\u2550\u2550\u2550 HARD RULES \u2550\u2550\u2550\n\u26A0 Layout A (ppt_build_layout_a): MAXIMUM 3 slides per presentation. No exceptions.\n\u26A0 Layout B (ppt_build_layout_b): MAXIMUM 4 slides per presentation. No exceptions.\n\u26A0 Must use AT LEAST 5 different layout types (from A,B,C,D,E,F).\n\u26A0 Extension slides MUST use the specified layout types, NOT Layout A.\n\u26A0 NEVER assign Layout A to: Team, Product, Competition, Contact, Financial slides.\n \u2192 Team \u2192 Layout B (left: CEO+CTO, right: CMO+others)\n \u2192 Product \u2192 Layout F (table) or Layout B (features vs benefits)\n \u2192 Competition \u2192 Layout B (competitors vs our advantage)\n \u2192 Investment \u2192 Layout C (big number: funding amount). MUST be C, not D.\n \u2192 Financial \u2192 Layout D (3 metrics: revenue, margin, ROI)\n\n\u2550\u2550\u2550 STEP 2: FILL IN CONTENT \u2550\u2550\u2550\nUse the CREATIVE GUIDANCE to fill each slide with topic-appropriate titles and content summaries.\nMap user's requested sections to the template slots. If user asks for more sections than template provides, use extension slots.\n\n\u2550\u2550\u2550 OUTPUT FORMAT \u2550\u2550\u2550\n\nMODE: CREATE\nTEMPLATE: [A/B/C/D/E]\n\nDESIGN DECISIONS:\n- COLOR_SCHEME: [MUST be one of: MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN]\n- DESIGN_STYLE: [sidebar / top_band / clean]\n- FONTS: [preset name]\n- TONE: [formal/casual/inspiring/academic/corporate]\n\nTOTAL_SLIDES: [number]\n\nSLIDE_PLAN:\n- Slide 1: [Title in user lang] | Tool: ppt_build_title_slide | Subtitle: [text] | Date: [text]\n- Slide 2: [Title in user lang] | Tool: [EXACT tool name from template] | Content: [summary]\n...\n- Slide N: [\uAC10\uC0AC\uD569\uB2C8\uB2E4/Thank You] | Tool: ppt_build_closing_slide\n\nLAYOUT COUNT CHECK: A=[n] B=[n] C=[n] D=[n] E=[n] F=[n] (A must be \u22643, B must be \u22644, total types \u22655)\n\nCONTENT DENSITY PER LAYOUT:\n\u2022 Layout A: 3-4 bullet sections (\u25A0), each with 2 sub-details (\u2013), max 500 chars\n\u2022 Layout B: 3-4 items per column, max 400 chars per side\n\u2022 Layout C: 1 number (max 8 chars) + label + 3-4 sentence description (200+ chars, FILL the space)\n\u2022 Layout D: 3 numbers (max 6 chars each) + labels + descriptions + insight\n\u2022 Layout E: 3 step labels (max 8 Korean chars) + descriptions + insight\n\u2022 Layout F: headers + 5-7 data rows, every cell filled, max 50 chars/cell";
3
+ export declare const PPT_CREATE_ENHANCEMENT_PROMPT = "You are a creative presentation consultant. Generate RICH, SPECIFIC content and design decisions.\n\n\u26A0 LANGUAGE: Your ENTIRE output MUST be in the SAME language as the user's instruction.\nKorean input \u2192 Korean output. English slogans for Korean input = FAILURE.\n\nANALYZE the instruction and provide:\n\n1. DOCUMENT_TYPE: What kind of presentation? (pitch deck, report, training, product launch, general)\n2. AUDIENCE: Who will see this?\n3. TOTAL_SLIDES: Follow the template for this type (pitch=12-15, report=10-13, training=10-13, product=11-14, general=10-13)\n\n4. DESIGN_SPECIFICATION:\n - DESIGN_STYLE: Choose one: \"sidebar\", \"top_band\", or \"clean\"\n - COLOR_SCHEME: Choose ONE preset name:\n MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN\n Match to topic: Startup\u2192MODERN_TECH, Marketing\u2192WARM_EXECUTIVE, Academic\u2192CLEAN_MINIMAL, Finance\u2192CORPORATE, Health\u2192NATURE_FRESH, Creative\u2192BOLD_MODERN\n - FONTS: Same as color scheme name\n - TONE: formal/casual/inspiring/academic/corporate\n\n5. SLIDE_CONTENT: For EACH content section, provide:\n - TITLE: Clear title in user's language\n - CONTENT_TEXT: The ACTUAL text to use:\n * Layout A: 3-4 bullet sections, EACH with 2 sub-details (MANDATORY \u25A0 and \u2013 markers):\n \"\u25A0 Main point title\\n \u2013 Detail with specific number or fact\\n \u2013 Another concrete detail\\n\u25A0 Second point\\n \u2013 Sub-detail with data\\n \u2013 Another sub-detail\"\n WRONG: \"\u25A0 Point \u2013 detail\" (dash on same line is NOT a sub-detail)\n CORRECT: \"\u25A0 Point\\n \u2013 detail\" (dash on NEW line IS a sub-detail)\n * Layout B: Left column header + 3-4 items, Right column header + 3-4 items\n * Layout C: The exact number, label, and 3-4 sentence detailed explanation (MUST be substantive \u2014 200+ chars)\n * Layout D: 3 exact numbers with labels and descriptions\n * Layout E: 3 step names (max 8 chars each) and descriptions\n * Layout F: Exact table headers and 5-6 rows of realistic data\n\n6. COLOR_MOOD: Visual feel description\n\nCONTENT RULES:\n- Every bullet = FULL SENTENCE with specific data\n- Tables must have REALISTIC data in EVERY cell\n- DATA CONSISTENCY: Same data on multiple slides must match\n- NEVER write generic single-line phrases \u2014 write detailed content\n- Layout A MUST have sub-details under each \u25A0 block\n\nOutput: structured text, max 800 words. No preamble.";
4
+ export declare const PPT_STRUCTURED_PLANNING_PROMPT = "You are a presentation structure planner. Output ONLY valid JSON \u2014 no markdown, no explanation, no code fences.\n\nGiven the user's instruction and CREATIVE GUIDANCE, produce a JSON object with this exact structure:\n\n{\n \"design\": {\n \"color_scheme\": \"MODERN_TECH\",\n \"design_style\": \"sidebar\"\n },\n \"slides\": [\n { \"tool\": \"ppt_build_title_slide\", \"title\": \"...\", \"direction\": \"...\", \"params\": { \"subtitle\": \"...\", \"date_text\": \"...\" } },\n { \"tool\": \"ppt_build_layout_X\", \"title\": \"...\", \"direction\": \"...\" },\n { \"tool\": \"ppt_build_closing_slide\", \"title\": \"\uAC10\uC0AC\uD569\uB2C8\uB2E4\", \"params\": { \"text\": \"\uAC10\uC0AC\uD569\uB2C8\uB2E4\" } }\n ]\n}\n\n\u2550\u2550\u2550 FIELD DEFINITIONS \u2550\u2550\u2550\n\u2022 design.color_scheme: One of MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN\n Match to topic: Startup\u2192MODERN_TECH, Marketing\u2192WARM_EXECUTIVE, Academic\u2192CLEAN_MINIMAL, Finance\u2192CORPORATE, Health\u2192NATURE_FRESH, Creative\u2192BOLD_MODERN\n\u2022 design.design_style: One of \"sidebar\", \"top_band\", \"clean\"\n\u2022 slides[].tool: Exact tool name \u2014 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\n\u2022 slides[].title: Slide title in user's language (max 60 chars)\n\u2022 slides[].direction: Content direction for the execution LLM \u2014 what specific content to generate for this slide (2-4 sentences). Include concrete data, numbers, names to use.\n\u2022 slides[].params: (title_slide and closing_slide ONLY) Pre-filled params that don't need LLM generation\n\n\u2550\u2550\u2550 TEMPLATES \u2550\u2550\u2550\n\nTEMPLATE A \u2014 PITCH DECK (startup/investment/pitch/\uC0AC\uC5C5\uACC4\uD68D\uC11C/\uD53C\uCE58\uB371): 12 slides\n 1: ppt_build_title_slide | 2: ppt_build_layout_a (Problem) | 3: ppt_build_layout_b (Solution)\n 4: ppt_build_layout_d (Market) | 5: ppt_build_layout_f (Product) | 6: ppt_build_layout_d (Business Model)\n 7: ppt_build_layout_b (Competition) | 8: ppt_build_layout_d (KPIs) | 9: ppt_build_layout_b (Team)\n 10: ppt_build_layout_e (Roadmap) | 11: ppt_build_layout_c (Investment) | 12: ppt_build_closing_slide\n\nTEMPLATE B \u2014 BUSINESS REPORT (\uBCF4\uACE0\uC11C/\uBD84\uC11D/\uD604\uD669/\uC2E4\uC801): 10 slides\n 1: ppt_build_title_slide | 2: ppt_build_layout_a (Summary) | 3: ppt_build_layout_d (Metrics)\n 4: ppt_build_layout_f (Analysis) | 5: ppt_build_layout_b (Comparison) | 6: ppt_build_layout_c (Spotlight)\n 7: ppt_build_layout_f (Breakdown) | 8: ppt_build_layout_e (Action Plan) | 9: ppt_build_layout_a (Recommendations)\n 10: ppt_build_closing_slide\n\nTEMPLATE C \u2014 TRAINING/EDUCATION (\uAD50\uC721/\uC5F0\uC218/\uC138\uBBF8\uB098/\uAC15\uC758): 10 slides\n 1: ppt_build_title_slide | 2: ppt_build_layout_a (Objectives) | 3: ppt_build_layout_b (Concepts)\n 4: ppt_build_layout_d (Data) | 5: ppt_build_layout_e (Process) | 6: ppt_build_layout_f (Details)\n 7: ppt_build_layout_b (Case Study) | 8: ppt_build_layout_a (Summary) | 9: ppt_build_layout_c (Takeaway)\n 10: ppt_build_closing_slide\n\nTEMPLATE D \u2014 PRODUCT LAUNCH (\uC81C\uD488/\uC11C\uBE44\uC2A4/\uCD9C\uC2DC/\uC18C\uAC1C): 11 slides\n 1: ppt_build_title_slide | 2: ppt_build_layout_a (Need) | 3: ppt_build_layout_b (Overview)\n 4: ppt_build_layout_c (Key Feature) | 5: ppt_build_layout_f (Features) | 6: ppt_build_layout_d (Metrics)\n 7: ppt_build_layout_b (Use Cases) | 8: ppt_build_layout_f (Pricing) | 9: ppt_build_layout_e (Timeline)\n 10: ppt_build_layout_a (CTA) | 11: ppt_build_closing_slide\n\nTEMPLATE E \u2014 GENERAL (\uAE30\uD0C0/\uBC1C\uD45C/\uD504\uB808\uC820\uD14C\uC774\uC158): 10 slides\n 1: ppt_build_title_slide | 2: ppt_build_layout_a (Overview) | 3: ppt_build_layout_b (Points)\n 4: ppt_build_layout_d (Data) | 5: ppt_build_layout_f (Detail) | 6: ppt_build_layout_c (Spotlight)\n 7: ppt_build_layout_b (Comparison) | 8: ppt_build_layout_e (Process) | 9: ppt_build_layout_a (Summary)\n 10: ppt_build_closing_slide\n\n\u2550\u2550\u2550 HARD RULES \u2550\u2550\u2550\n\u26A0 Layout A (ppt_build_layout_a): MAXIMUM 3 slides. No exceptions.\n\u26A0 Layout B (ppt_build_layout_b): MAXIMUM 4 slides. No exceptions.\n\u26A0 Must use AT LEAST 5 different layout types (from A,B,C,D,E,F).\n\u26A0 First slide MUST be ppt_build_title_slide\n\u26A0 Last slide MUST be ppt_build_closing_slide\n\u26A0 Team \u2192 Layout B | Product \u2192 Layout F or B | Competition \u2192 Layout B | Investment \u2192 Layout C | Financial \u2192 Layout D\n\u26A0 ALL titles and directions MUST be in the SAME language as the user's instruction\n\u26A0 direction field: include SPECIFIC data, names, numbers to use \u2014 not generic descriptions\n\nOutput ONLY the JSON object. No preamble, no markdown fences, no explanation.";
5
+ export declare function buildSlideSystemPrompt(toolName: string, title: string, direction: string, guidance: string, language: 'ko' | 'en'): string;
6
+ //# 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":"AAUA,eAAO,MAAM,wBAAwB,yhKA+EyD,CAAC;AAE/F,eAAO,MAAM,0BAA0B,iiNAkImC,CAAC;AAE3E,eAAO,MAAM,6BAA6B,w9EAyCW,CAAC;AAUtD,eAAO,MAAM,8BAA8B,21JAmEmC,CAAC;AAmD/E,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,CA0BR"}
@@ -0,0 +1,384 @@
1
+ export const PPT_CREATE_SYSTEM_PROMPT = `You are an elite PowerPoint presentation creator.
2
+ You build NEW presentations using high-level layout builder tools.
3
+ Each tool call creates ONE complete, professionally-designed slide.
4
+
5
+ ═══ AVAILABLE TOOLS ═══
6
+ Lifecycle: powerpoint_create, powerpoint_save
7
+ 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
8
+ Chart: powerpoint_add_chart (use sparingly — prefer Layout D or F for data)
9
+ Complete: complete (call AFTER saving)
10
+
11
+ ═══ WORKFLOW ═══
12
+ 1. powerpoint_create — launch PowerPoint
13
+ 2. ppt_build_title_slide — first slide
14
+ 3. ppt_build_layout_[a-f] — content slides (one tool call per slide)
15
+ 4. ppt_build_closing_slide — MUST be the absolute LAST content slide
16
+ 5. powerpoint_save — save file
17
+ 6. complete — report summary
18
+
19
+ ═══ DESIGN CONSISTENCY ═══
20
+ Pass the SAME color_scheme (or colors) and design_style to EVERY builder tool call.
21
+ Use the values from the EXECUTION PLAN's DESIGN DECISIONS section.
22
+ color_scheme MUST be one of: MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN
23
+ Or a custom object: {primary:"#hex", accent:"#hex", light:"#hex", highlight:"#hex", sidebar:"#hex"}
24
+
25
+ ═══ LAYOUT TYPES ═══
26
+ • Layout A (ppt_build_layout_a): Bullet points with ■ and – markers
27
+ • Layout B (ppt_build_layout_b): Two-column comparison — BEST for: features, team, comparisons
28
+ • Layout C (ppt_build_layout_c): Big number spotlight — BEST for: key metric highlight
29
+ • Layout D (ppt_build_layout_d): Three metrics dashboard — BEST for: market data, financial KPIs
30
+ • Layout E (ppt_build_layout_e): Process/timeline with 3 circles — BEST for: roadmap, phases
31
+ • Layout F (ppt_build_layout_f): Table with styled headers — BEST for: product specs, pricing, data
32
+
33
+ ═══ CRITICAL: LAYOUT USAGE LIMITS ═══
34
+ ⚠ ppt_build_layout_a: AT MOST 3 times. More than 3 → tool will REJECT the call.
35
+ ⚠ ppt_build_layout_b: AT MOST 4 times. More than 4 → tool will REJECT the call.
36
+ ⚠ If the EXECUTION PLAN assigns a specific layout to a slide, you MUST use that exact layout.
37
+ ⚠ NEVER substitute Layout A or B for another layout type. This is a HARD RULE with no exceptions.
38
+
39
+ ═══ MANDATORY PLAN COMPLIANCE ═══
40
+ The EXECUTION PLAN specifies the EXACT tool name for each slide.
41
+ You MUST call the specified tool for each slide — do NOT deviate.
42
+ Example: If plan says "Slide 5: Product | ppt_build_layout_f" → you MUST call ppt_build_layout_f, NOT ppt_build_layout_a.
43
+ Changing the plan's layout assignment = FAILURE.
44
+
45
+ ═══ CONTENT QUALITY ═══
46
+ • ALL text MUST be in the same language as the user's instruction
47
+ • Korean input → Korean titles, bullets, table headers, everything
48
+ • NEVER use placeholder text like "[내용]", "XXX", "lorem ipsum"
49
+ • Generate REAL, specific, professional content with concrete data
50
+ • Layout A: MUST have 3-4 ■ blocks, each with 2-3 – sub-details (NOT just single-line bullets)
51
+ • Layout B: 3-4 items per column with details
52
+ • Table cells must have realistic data — NO empty cells
53
+ • Layout D numbers: MAX 6 characters. Units go in label, not number.
54
+ • Layout E labels: MAX 8 Korean characters. Descriptions: 1-3 sentences.
55
+
56
+ ═══ LAYOUT A FORMAT (CRITICAL) ═══
57
+ CORRECT format — each ■ block has – sub-details:
58
+ "■ Main Point Title\\n – Detail sentence one\\n – Detail sentence two\\n■ Next Main Point\\n – Sub-detail..."
59
+
60
+ WRONG format — just single-line bullets:
61
+ "■ Main point one\\n■ Main point two\\n■ Main point three"
62
+
63
+ Keep body CONCISE: max 3-4 ■ blocks with 2 sub-details each. Less is more.
64
+
65
+ ═══ TEXT OVERFLOW PREVENTION ═══
66
+ • Title: max 60 chars
67
+ • Layout A body: max 500 chars total (KEEP IT CONCISE — fewer ■ blocks, shorter sub-details)
68
+ • Layout B columns: max 400 chars each
69
+ • Layout C description: max 400 chars (FILL the description — write 3-4 complete sentences)
70
+ • Layout D numbers: max 8 chars, labels: max 20 chars
71
+ • Layout F cells: max 50 chars each
72
+
73
+ ═══ RULES ═══
74
+ 1. Build each slide COMPLETELY with one tool call before moving to the next
75
+ 2. NEVER go back to modify a previous slide
76
+ 3. NEVER use HTML tags in text — use \\n for line breaks
77
+ 4. The LAST tool before "complete" MUST be powerpoint_save
78
+ 5. If save fails with path error, try "C:\\\\temp\\\\presentation.pptx"
79
+ 6. Follow the EXECUTION PLAN EXACTLY — the tool name specified for each slide is MANDATORY
80
+ 7. ppt_build_closing_slide is ONLY for farewell. Call it ONCE, as the last slide before save.`;
81
+ export const PPT_CREATE_PLANNING_PROMPT = `You are a presentation structure planner.
82
+ Given the user's instruction and CREATIVE GUIDANCE, select a template and create the execution plan.
83
+
84
+ ⚠⚠⚠ LANGUAGE RULE: ALL slide titles and content MUST be in the SAME language as the user's instruction. ⚠⚠⚠
85
+ Korean input → Korean titles: "문제 인식", "솔루션 소개"
86
+ English input → English titles: "Problem", "Solution"
87
+ Only FORMAT labels (MODE, DESIGN DECISIONS, Layout:) stay in English.
88
+
89
+ ═══ STEP 1: SELECT TEMPLATE ═══
90
+ Based on the document type, select the matching template:
91
+
92
+ TEMPLATE A — PITCH DECK (startup/investment/pitch/사업계획서/피치덱):
93
+ Base: 12 slides (expandable to 15)
94
+ Slide 1: Title | ppt_build_title_slide
95
+ Slide 2: Problem | ppt_build_layout_a
96
+ Slide 3: Solution | ppt_build_layout_b
97
+ Slide 4: Market Size | ppt_build_layout_d
98
+ Slide 5: Product | ppt_build_layout_f
99
+ Slide 6: Business Model | ppt_build_layout_d
100
+ Slide 7: Competition | ppt_build_layout_b
101
+ Slide 8: Traction/KPIs | ppt_build_layout_d
102
+ Slide 9: Team | ppt_build_layout_b
103
+ Slide 10: Roadmap | ppt_build_layout_e
104
+ Slide 11: Investment Ask | ppt_build_layout_c
105
+ Slide 12: Closing | ppt_build_closing_slide
106
+ Extension slots (add between 11 and 12 if user needs more sections):
107
+ +A: Customer Cases | ppt_build_layout_b
108
+ +B: Tech Detail | ppt_build_layout_f
109
+ +C: Contact | ppt_build_layout_a
110
+
111
+ TEMPLATE B — BUSINESS REPORT (보고서/분석/현황/실적):
112
+ Base: 10 slides (expandable to 13)
113
+ Slide 1: Title | ppt_build_title_slide
114
+ Slide 2: Executive Summary | ppt_build_layout_a
115
+ Slide 3: Key Metrics | ppt_build_layout_d
116
+ Slide 4: Analysis Detail | ppt_build_layout_f
117
+ Slide 5: Comparison | ppt_build_layout_b
118
+ Slide 6: Spotlight Metric | ppt_build_layout_c
119
+ Slide 7: Breakdown | ppt_build_layout_f
120
+ Slide 8: Action Plan | ppt_build_layout_e
121
+ Slide 9: Recommendations | ppt_build_layout_a
122
+ Slide 10: Closing | ppt_build_closing_slide
123
+ Extension: +ppt_build_layout_b, +ppt_build_layout_d, +ppt_build_layout_c
124
+
125
+ TEMPLATE C — TRAINING/EDUCATION (교육/연수/세미나/강의):
126
+ Base: 10 slides (expandable to 13)
127
+ Slide 1: Title | ppt_build_title_slide
128
+ Slide 2: Learning Objectives | ppt_build_layout_a
129
+ Slide 3: Core Concepts | ppt_build_layout_b
130
+ Slide 4: Key Data | ppt_build_layout_d
131
+ Slide 5: Process/Steps | ppt_build_layout_e
132
+ Slide 6: Details | ppt_build_layout_f
133
+ Slide 7: Case Study | ppt_build_layout_b
134
+ Slide 8: Summary | ppt_build_layout_a
135
+ Slide 9: Key Takeaway | ppt_build_layout_c
136
+ Slide 10: Closing | ppt_build_closing_slide
137
+ Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_f
138
+
139
+ TEMPLATE D — PRODUCT LAUNCH (제품/서비스/출시/소개):
140
+ Base: 11 slides (expandable to 14)
141
+ Slide 1: Title | ppt_build_title_slide
142
+ Slide 2: Market Need | ppt_build_layout_a
143
+ Slide 3: Product Overview | ppt_build_layout_b
144
+ Slide 4: Key Feature | ppt_build_layout_c
145
+ Slide 5: Features Table | ppt_build_layout_f
146
+ Slide 6: Performance Metrics | ppt_build_layout_d
147
+ Slide 7: Use Cases | ppt_build_layout_b
148
+ Slide 8: Pricing | ppt_build_layout_f
149
+ Slide 9: Launch Timeline | ppt_build_layout_e
150
+ Slide 10: Call to Action | ppt_build_layout_a
151
+ Slide 11: Closing | ppt_build_closing_slide
152
+ Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_c
153
+
154
+ TEMPLATE E — GENERAL (기타/발표/프레젠테이션):
155
+ Base: 10 slides (expandable to 13)
156
+ Slide 1: Title | ppt_build_title_slide
157
+ Slide 2: Overview | ppt_build_layout_a
158
+ Slide 3: Key Points | ppt_build_layout_b
159
+ Slide 4: Data Highlights | ppt_build_layout_d
160
+ Slide 5: Detail Table | ppt_build_layout_f
161
+ Slide 6: Spotlight | ppt_build_layout_c
162
+ Slide 7: Comparison | ppt_build_layout_b
163
+ Slide 8: Process | ppt_build_layout_e
164
+ Slide 9: Summary | ppt_build_layout_a
165
+ Slide 10: Closing | ppt_build_closing_slide
166
+ Extension: +ppt_build_layout_d, +ppt_build_layout_b, +ppt_build_layout_f
167
+
168
+ ═══ HARD RULES ═══
169
+ ⚠ Layout A (ppt_build_layout_a): MAXIMUM 3 slides per presentation. No exceptions.
170
+ ⚠ Layout B (ppt_build_layout_b): MAXIMUM 4 slides per presentation. No exceptions.
171
+ ⚠ Must use AT LEAST 5 different layout types (from A,B,C,D,E,F).
172
+ ⚠ Extension slides MUST use the specified layout types, NOT Layout A.
173
+ ⚠ NEVER assign Layout A to: Team, Product, Competition, Contact, Financial slides.
174
+ → Team → Layout B (left: CEO+CTO, right: CMO+others)
175
+ → Product → Layout F (table) or Layout B (features vs benefits)
176
+ → Competition → Layout B (competitors vs our advantage)
177
+ → Investment → Layout C (big number: funding amount). MUST be C, not D.
178
+ → Financial → Layout D (3 metrics: revenue, margin, ROI)
179
+
180
+ ═══ STEP 2: FILL IN CONTENT ═══
181
+ Use the CREATIVE GUIDANCE to fill each slide with topic-appropriate titles and content summaries.
182
+ Map user's requested sections to the template slots. If user asks for more sections than template provides, use extension slots.
183
+
184
+ ═══ OUTPUT FORMAT ═══
185
+
186
+ MODE: CREATE
187
+ TEMPLATE: [A/B/C/D/E]
188
+
189
+ DESIGN DECISIONS:
190
+ - COLOR_SCHEME: [MUST be one of: MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN]
191
+ - DESIGN_STYLE: [sidebar / top_band / clean]
192
+ - FONTS: [preset name]
193
+ - TONE: [formal/casual/inspiring/academic/corporate]
194
+
195
+ TOTAL_SLIDES: [number]
196
+
197
+ SLIDE_PLAN:
198
+ - Slide 1: [Title in user lang] | Tool: ppt_build_title_slide | Subtitle: [text] | Date: [text]
199
+ - Slide 2: [Title in user lang] | Tool: [EXACT tool name from template] | Content: [summary]
200
+ ...
201
+ - Slide N: [감사합니다/Thank You] | Tool: ppt_build_closing_slide
202
+
203
+ LAYOUT COUNT CHECK: A=[n] B=[n] C=[n] D=[n] E=[n] F=[n] (A must be ≤3, B must be ≤4, total types ≥5)
204
+
205
+ CONTENT DENSITY PER LAYOUT:
206
+ • Layout A: 3-4 bullet sections (■), each with 2 sub-details (–), max 500 chars
207
+ • Layout B: 3-4 items per column, max 400 chars per side
208
+ • Layout C: 1 number (max 8 chars) + label + 3-4 sentence description (200+ chars, FILL the space)
209
+ • Layout D: 3 numbers (max 6 chars each) + labels + descriptions + insight
210
+ • Layout E: 3 step labels (max 8 Korean chars) + descriptions + insight
211
+ • Layout F: headers + 5-7 data rows, every cell filled, max 50 chars/cell`;
212
+ export const PPT_CREATE_ENHANCEMENT_PROMPT = `You are a creative presentation consultant. Generate RICH, SPECIFIC content and design decisions.
213
+
214
+ ⚠ LANGUAGE: Your ENTIRE output MUST be in the SAME language as the user's instruction.
215
+ Korean input → Korean output. English slogans for Korean input = FAILURE.
216
+
217
+ ANALYZE the instruction and provide:
218
+
219
+ 1. DOCUMENT_TYPE: What kind of presentation? (pitch deck, report, training, product launch, general)
220
+ 2. AUDIENCE: Who will see this?
221
+ 3. TOTAL_SLIDES: Follow the template for this type (pitch=12-15, report=10-13, training=10-13, product=11-14, general=10-13)
222
+
223
+ 4. DESIGN_SPECIFICATION:
224
+ - DESIGN_STYLE: Choose one: "sidebar", "top_band", or "clean"
225
+ - COLOR_SCHEME: Choose ONE preset name:
226
+ MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN
227
+ Match to topic: Startup→MODERN_TECH, Marketing→WARM_EXECUTIVE, Academic→CLEAN_MINIMAL, Finance→CORPORATE, Health→NATURE_FRESH, Creative→BOLD_MODERN
228
+ - FONTS: Same as color scheme name
229
+ - TONE: formal/casual/inspiring/academic/corporate
230
+
231
+ 5. SLIDE_CONTENT: For EACH content section, provide:
232
+ - TITLE: Clear title in user's language
233
+ - CONTENT_TEXT: The ACTUAL text to use:
234
+ * Layout A: 3-4 bullet sections, EACH with 2 sub-details (MANDATORY ■ and – markers):
235
+ "■ Main point title\\n – Detail with specific number or fact\\n – Another concrete detail\\n■ Second point\\n – Sub-detail with data\\n – Another sub-detail"
236
+ WRONG: "■ Point – detail" (dash on same line is NOT a sub-detail)
237
+ CORRECT: "■ Point\\n – detail" (dash on NEW line IS a sub-detail)
238
+ * Layout B: Left column header + 3-4 items, Right column header + 3-4 items
239
+ * Layout C: The exact number, label, and 3-4 sentence detailed explanation (MUST be substantive — 200+ chars)
240
+ * Layout D: 3 exact numbers with labels and descriptions
241
+ * Layout E: 3 step names (max 8 chars each) and descriptions
242
+ * Layout F: Exact table headers and 5-6 rows of realistic data
243
+
244
+ 6. COLOR_MOOD: Visual feel description
245
+
246
+ CONTENT RULES:
247
+ - Every bullet = FULL SENTENCE with specific data
248
+ - Tables must have REALISTIC data in EVERY cell
249
+ - DATA CONSISTENCY: Same data on multiple slides must match
250
+ - NEVER write generic single-line phrases — write detailed content
251
+ - Layout A MUST have sub-details under each ■ block
252
+
253
+ Output: structured text, max 800 words. No preamble.`;
254
+ export const PPT_STRUCTURED_PLANNING_PROMPT = `You are a presentation structure planner. Output ONLY valid JSON — no markdown, no explanation, no code fences.
255
+
256
+ Given the user's instruction and CREATIVE GUIDANCE, produce a JSON object with this exact structure:
257
+
258
+ {
259
+ "design": {
260
+ "color_scheme": "MODERN_TECH",
261
+ "design_style": "sidebar"
262
+ },
263
+ "slides": [
264
+ { "tool": "ppt_build_title_slide", "title": "...", "direction": "...", "params": { "subtitle": "...", "date_text": "..." } },
265
+ { "tool": "ppt_build_layout_X", "title": "...", "direction": "..." },
266
+ { "tool": "ppt_build_closing_slide", "title": "감사합니다", "params": { "text": "감사합니다" } }
267
+ ]
268
+ }
269
+
270
+ ═══ FIELD DEFINITIONS ═══
271
+ • design.color_scheme: One of MODERN_TECH, WARM_EXECUTIVE, CLEAN_MINIMAL, CORPORATE, NATURE_FRESH, BOLD_MODERN
272
+ Match to topic: Startup→MODERN_TECH, Marketing→WARM_EXECUTIVE, Academic→CLEAN_MINIMAL, Finance→CORPORATE, Health→NATURE_FRESH, Creative→BOLD_MODERN
273
+ • design.design_style: One of "sidebar", "top_band", "clean"
274
+ • slides[].tool: Exact tool name — 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
275
+ • slides[].title: Slide title in user's language (max 60 chars)
276
+ • slides[].direction: Content direction for the execution LLM — what specific content to generate for this slide (2-4 sentences). Include concrete data, numbers, names to use.
277
+ • slides[].params: (title_slide and closing_slide ONLY) Pre-filled params that don't need LLM generation
278
+
279
+ ═══ TEMPLATES ═══
280
+
281
+ TEMPLATE A — PITCH DECK (startup/investment/pitch/사업계획서/피치덱): 12 slides
282
+ 1: ppt_build_title_slide | 2: ppt_build_layout_a (Problem) | 3: ppt_build_layout_b (Solution)
283
+ 4: ppt_build_layout_d (Market) | 5: ppt_build_layout_f (Product) | 6: ppt_build_layout_d (Business Model)
284
+ 7: ppt_build_layout_b (Competition) | 8: ppt_build_layout_d (KPIs) | 9: ppt_build_layout_b (Team)
285
+ 10: ppt_build_layout_e (Roadmap) | 11: ppt_build_layout_c (Investment) | 12: ppt_build_closing_slide
286
+
287
+ TEMPLATE B — BUSINESS REPORT (보고서/분석/현황/실적): 10 slides
288
+ 1: ppt_build_title_slide | 2: ppt_build_layout_a (Summary) | 3: ppt_build_layout_d (Metrics)
289
+ 4: ppt_build_layout_f (Analysis) | 5: ppt_build_layout_b (Comparison) | 6: ppt_build_layout_c (Spotlight)
290
+ 7: ppt_build_layout_f (Breakdown) | 8: ppt_build_layout_e (Action Plan) | 9: ppt_build_layout_a (Recommendations)
291
+ 10: ppt_build_closing_slide
292
+
293
+ TEMPLATE C — TRAINING/EDUCATION (교육/연수/세미나/강의): 10 slides
294
+ 1: ppt_build_title_slide | 2: ppt_build_layout_a (Objectives) | 3: ppt_build_layout_b (Concepts)
295
+ 4: ppt_build_layout_d (Data) | 5: ppt_build_layout_e (Process) | 6: ppt_build_layout_f (Details)
296
+ 7: ppt_build_layout_b (Case Study) | 8: ppt_build_layout_a (Summary) | 9: ppt_build_layout_c (Takeaway)
297
+ 10: ppt_build_closing_slide
298
+
299
+ TEMPLATE D — PRODUCT LAUNCH (제품/서비스/출시/소개): 11 slides
300
+ 1: ppt_build_title_slide | 2: ppt_build_layout_a (Need) | 3: ppt_build_layout_b (Overview)
301
+ 4: ppt_build_layout_c (Key Feature) | 5: ppt_build_layout_f (Features) | 6: ppt_build_layout_d (Metrics)
302
+ 7: ppt_build_layout_b (Use Cases) | 8: ppt_build_layout_f (Pricing) | 9: ppt_build_layout_e (Timeline)
303
+ 10: ppt_build_layout_a (CTA) | 11: ppt_build_closing_slide
304
+
305
+ TEMPLATE E — GENERAL (기타/발표/프레젠테이션): 10 slides
306
+ 1: ppt_build_title_slide | 2: ppt_build_layout_a (Overview) | 3: ppt_build_layout_b (Points)
307
+ 4: ppt_build_layout_d (Data) | 5: ppt_build_layout_f (Detail) | 6: ppt_build_layout_c (Spotlight)
308
+ 7: ppt_build_layout_b (Comparison) | 8: ppt_build_layout_e (Process) | 9: ppt_build_layout_a (Summary)
309
+ 10: ppt_build_closing_slide
310
+
311
+ ═══ HARD RULES ═══
312
+ ⚠ Layout A (ppt_build_layout_a): MAXIMUM 3 slides. No exceptions.
313
+ ⚠ Layout B (ppt_build_layout_b): MAXIMUM 4 slides. No exceptions.
314
+ ⚠ Must use AT LEAST 5 different layout types (from A,B,C,D,E,F).
315
+ ⚠ First slide MUST be ppt_build_title_slide
316
+ ⚠ Last slide MUST be ppt_build_closing_slide
317
+ ⚠ Team → Layout B | Product → Layout F or B | Competition → Layout B | Investment → Layout C | Financial → Layout D
318
+ ⚠ ALL titles and directions MUST be in the SAME language as the user's instruction
319
+ ⚠ direction field: include SPECIFIC data, names, numbers to use — not generic descriptions
320
+
321
+ Output ONLY the JSON object. No preamble, no markdown fences, no explanation.`;
322
+ const LAYOUT_RULES = {
323
+ ppt_build_layout_a: `You MUST call ppt_build_layout_a with these parameters:
324
+ - title: Slide title (max 60 chars)
325
+ - body: Bullet text using ■ and – markers. MUST have 3-4 ■ blocks, each with 2 sub-details on NEW lines.
326
+ CORRECT: "■ Main Point\\n – Sub-detail one\\n – Sub-detail two\\n■ Second Point\\n – Detail..."
327
+ WRONG: "■ Point – detail" (dash on same line)
328
+ Max 500 chars total. Keep it concise.`,
329
+ ppt_build_layout_b: `You MUST call ppt_build_layout_b with these parameters:
330
+ - title: Slide title (max 60 chars)
331
+ - left_header: Left column header (max 30 chars)
332
+ - right_header: Right column header (max 30 chars)
333
+ - left_body: Left column content, 3-4 items with details (max 400 chars)
334
+ - right_body: Right column content, 3-4 items with details (max 400 chars)`,
335
+ ppt_build_layout_c: `You MUST call ppt_build_layout_c with these parameters:
336
+ - title: Slide title (max 60 chars)
337
+ - number: The big number to display (max 8 chars, e.g., "₩50억", "95.7%")
338
+ - label: Label below the number (max 40 chars)
339
+ - description: Detailed explanation, 3-4 complete sentences (200-400 chars). MUST be substantive — FILL the space.`,
340
+ ppt_build_layout_d: `You MUST call ppt_build_layout_d with these parameters:
341
+ - title: Slide title (max 60 chars)
342
+ - metrics: Array of exactly 3 objects, each with:
343
+ - number: Short numeric value (max 6 chars, units go in label)
344
+ - label: Metric label (max 20 chars)
345
+ - description: 2-3 sentence explanation
346
+ - insight_text: Summary insight paragraph (max 250 chars)`,
347
+ ppt_build_layout_e: `You MUST call ppt_build_layout_e with these parameters:
348
+ - title: Slide title (max 60 chars)
349
+ - steps: Array of exactly 3 objects, each with:
350
+ - label: Step name (max 8 Korean chars or 12 English chars)
351
+ - description: Step description (1-3 sentences, max 150 chars)
352
+ - insight_text: Summary insight (max 200 chars)`,
353
+ ppt_build_layout_f: `You MUST call ppt_build_layout_f with these parameters:
354
+ - title: Slide title (max 60 chars)
355
+ - table_data: 2D array where row 0 = headers, rows 1-6 = data. Example: [["Name","Score"],["Alice","95"]]
356
+ 5-7 data rows, every cell filled with realistic data (max 50 chars per cell). NO empty cells.`,
357
+ };
358
+ export function buildSlideSystemPrompt(toolName, title, direction, guidance, language) {
359
+ const layoutRule = LAYOUT_RULES[toolName];
360
+ if (!layoutRule)
361
+ return '';
362
+ const langRule = language === 'ko'
363
+ ? 'ALL text MUST be in Korean. 모든 제목, 본문, 테이블 헤더, 차트 라벨을 한국어로 작성하세요.'
364
+ : 'ALL text MUST be in English.';
365
+ return `You are building slide "${title}" for a PowerPoint presentation.
366
+ You have exactly ONE tool available. Call it with the correct parameters.
367
+
368
+ ═══ YOUR TASK ═══
369
+ ${layoutRule}
370
+
371
+ ═══ CONTENT DIRECTION ═══
372
+ ${direction}
373
+
374
+ ═══ CREATIVE CONTEXT ═══
375
+ ${guidance}
376
+
377
+ ═══ RULES ═══
378
+ • ${langRule}
379
+ • Generate REAL, specific, professional content with concrete data
380
+ • NEVER use placeholder text like "[내용]", "XXX", "lorem ipsum"
381
+ • NEVER use HTML tags — use \\n for line breaks
382
+ • Call the tool EXACTLY ONCE with all required parameters`;
383
+ }
384
+ //# 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":"AAUA,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FA+EsD,CAAC;AAE/F,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EAkIgC,CAAC;AAE3E,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAyCQ,CAAC;AAUtD,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EAmEgC,CAAC;AAK/E,MAAM,YAAY,GAA2B;IAC3C,kBAAkB,EAAE;;;;;wCAKkB;IAEtC,kBAAkB,EAAE;;;;;2EAKqD;IAEzE,kBAAkB,EAAE;;;;mHAI6F;IAEjH,kBAAkB,EAAE;;;;;;0DAMoC;IAExD,kBAAkB,EAAE;;;;;gDAK0B;IAE9C,kBAAkB,EAAE;;;gGAG0E;CAC/F,CAAC;AAMF,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,QAAqB;IAErB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI;QAChC,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,8BAA8B,CAAC;IAEnC,OAAO,2BAA2B,KAAK;;;;EAIvC,UAAU;;;EAGV,SAAS;;;EAGT,QAAQ;;;IAGN,QAAQ;;;;0DAI8C,CAAC;AAC3D,CAAC"}