hanseol-dev 5.0.2-dev.52 → 5.0.2-dev.54

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.
@@ -1 +1 @@
1
- {"version":3,"file":"powerpoint-create-agent.d.ts","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-agent.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAkahE,wBAAgB,iCAAiC,IAAI,YAAY,CA2BhE"}
1
+ {"version":3,"file":"powerpoint-create-agent.d.ts","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAufhE,wBAAgB,iCAAiC,IAAI,YAAY,CA2BhE"}
@@ -1,23 +1,24 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
1
3
  import { POWERPOINT_CREATE_TOOLS } from '../../tools/office/powerpoint-tools.js';
2
- import { resetLayoutCounters } from '../../tools/office/powerpoint-tools/layout-builders.js';
4
+ import { powerpointClient } from '../../tools/office/powerpoint-client.js';
3
5
  import { SubAgent } from '../common/sub-agent.js';
4
6
  import { getSubAgentPhaseLogger, getSubAgentToolCallLogger } from '../common/sub-agent.js';
5
7
  import { logger } from '../../utils/logger.js';
6
- import { PPT_CREATE_SYSTEM_PROMPT, PPT_CREATE_PLANNING_PROMPT, PPT_CREATE_ENHANCEMENT_PROMPT, PPT_STRUCTURED_PLANNING_PROMPT, buildSlideSystemPrompt, } from './powerpoint-create-prompts.js';
7
- const VALID_SLIDE_TOOLS = new Set([
8
- 'ppt_build_title_slide',
9
- 'ppt_build_layout_a',
10
- 'ppt_build_layout_b',
11
- 'ppt_build_layout_c',
12
- 'ppt_build_layout_d',
13
- 'ppt_build_layout_e',
14
- 'ppt_build_layout_f',
15
- 'ppt_build_closing_slide',
16
- ]);
17
- const VALID_COLOR_SCHEMES = new Set([
18
- 'MODERN_TECH', 'WARM_EXECUTIVE', 'CLEAN_MINIMAL', 'CORPORATE', 'NATURE_FRESH', 'BOLD_MODERN',
19
- ]);
20
- const VALID_DESIGN_STYLES = new Set(['sidebar', 'top_band', 'clean']);
8
+ import { getPlatform } from '../../utils/platform-utils.js';
9
+ import { PPT_CREATE_SYSTEM_PROMPT, PPT_CREATE_PLANNING_PROMPT, PPT_CREATE_ENHANCEMENT_PROMPT, PPT_STRUCTURED_PLANNING_PROMPT, buildSlideHtmlPrompt, } from './powerpoint-create-prompts.js';
10
+ const DEFAULT_DESIGN = {
11
+ primary_color: '#1B2A4A',
12
+ accent_color: '#00D4AA',
13
+ background_color: '#FFFFFF',
14
+ text_color: '#1A1A2E',
15
+ accent_light: '#E8F5F0',
16
+ gradient_end: '#2D5F8A',
17
+ font_title: 'Segoe UI',
18
+ font_body: 'Malgun Gothic',
19
+ mood: 'modern-minimal',
20
+ design_notes: 'Clean gradients, card-based layouts',
21
+ };
21
22
  function extractContent(msg) {
22
23
  const content = msg['content'];
23
24
  if (content && content.trim())
@@ -28,49 +29,25 @@ function extractContent(msg) {
28
29
  return '';
29
30
  }
30
31
  function validatePlan(plan) {
31
- if (!plan.design?.color_scheme || !plan.design?.design_style) {
32
- return 'Missing design.color_scheme or design.design_style';
33
- }
34
- if (!VALID_COLOR_SCHEMES.has(plan.design.color_scheme)) {
35
- return `Invalid color_scheme: ${plan.design.color_scheme}`;
36
- }
37
- if (!VALID_DESIGN_STYLES.has(plan.design.design_style)) {
38
- return `Invalid design_style: ${plan.design.design_style}`;
32
+ if (!plan.design)
33
+ return 'Missing design object';
34
+ if (!plan.design.primary_color || !plan.design.accent_color) {
35
+ return 'Missing design colors (primary_color, accent_color)';
39
36
  }
40
37
  if (!Array.isArray(plan.slides) || plan.slides.length < 3) {
41
38
  return 'slides array must have at least 3 entries';
42
39
  }
43
- if (plan.slides[0]?.tool !== 'ppt_build_title_slide') {
44
- return 'First slide must be ppt_build_title_slide';
40
+ if (plan.slides[0]?.type !== 'title') {
41
+ return 'First slide must be type "title"';
45
42
  }
46
- if (plan.slides[plan.slides.length - 1]?.tool !== 'ppt_build_closing_slide') {
47
- return 'Last slide must be ppt_build_closing_slide';
43
+ if (plan.slides[plan.slides.length - 1]?.type !== 'closing') {
44
+ return 'Last slide must be type "closing"';
48
45
  }
49
46
  for (let i = 0; i < plan.slides.length; i++) {
50
- const s = plan.slides[i];
51
- if (!VALID_SLIDE_TOOLS.has(s.tool)) {
52
- return `Slide ${i + 1}: invalid tool "${s.tool}"`;
53
- }
54
- if (!s.title) {
47
+ if (!plan.slides[i].title) {
55
48
  return `Slide ${i + 1}: missing title`;
56
49
  }
57
50
  }
58
- const counts = {};
59
- for (const s of plan.slides) {
60
- counts[s.tool] = (counts[s.tool] || 0) + 1;
61
- }
62
- if ((counts['ppt_build_layout_a'] || 0) > 3) {
63
- return `Layout A count ${counts['ppt_build_layout_a']} exceeds max 3`;
64
- }
65
- if ((counts['ppt_build_layout_b'] || 0) > 4) {
66
- return `Layout B count ${counts['ppt_build_layout_b']} exceeds max 4`;
67
- }
68
- const layoutTypes = new Set(plan.slides
69
- .map(s => s.tool)
70
- .filter(t => t.startsWith('ppt_build_layout_')));
71
- if (layoutTypes.size < 5) {
72
- return `Only ${layoutTypes.size} layout types used, need at least 5`;
73
- }
74
51
  return null;
75
52
  }
76
53
  function parseJsonPlan(raw) {
@@ -94,11 +71,53 @@ function parseJsonPlan(raw) {
94
71
  return null;
95
72
  }
96
73
  }
74
+ function extractHtml(raw) {
75
+ const trimmed = raw.trim();
76
+ if (trimmed.startsWith('<!DOCTYPE') || trimmed.startsWith('<html')) {
77
+ return trimmed;
78
+ }
79
+ const fenceMatch = trimmed.match(/```(?:html)?\s*\n([\s\S]*?)\n```/);
80
+ if (fenceMatch?.[1]) {
81
+ return fenceMatch[1].trim();
82
+ }
83
+ const docMatch = trimmed.match(/(<!DOCTYPE[\s\S]*<\/html>)/i);
84
+ if (docMatch?.[1]) {
85
+ return docMatch[1].trim();
86
+ }
87
+ return null;
88
+ }
89
+ function getTempDir() {
90
+ const platform = getPlatform();
91
+ if (platform === 'wsl') {
92
+ return { writePath: '/mnt/c/temp', winPath: 'C:\\temp' };
93
+ }
94
+ return { writePath: 'C:\\temp', winPath: 'C:\\temp' };
95
+ }
96
+ function ensureTempDir(writePath) {
97
+ if (!fs.existsSync(writePath)) {
98
+ fs.mkdirSync(writePath, { recursive: true });
99
+ }
100
+ }
101
+ function normalizeDesign(raw) {
102
+ return {
103
+ primary_color: raw['primary_color'] || DEFAULT_DESIGN.primary_color,
104
+ accent_color: raw['accent_color'] || DEFAULT_DESIGN.accent_color,
105
+ background_color: raw['background_color'] || DEFAULT_DESIGN.background_color,
106
+ text_color: raw['text_color'] || DEFAULT_DESIGN.text_color,
107
+ accent_light: raw['accent_light'] || DEFAULT_DESIGN.accent_light,
108
+ gradient_end: raw['gradient_end'] || DEFAULT_DESIGN.gradient_end,
109
+ font_title: raw['font_title'] || DEFAULT_DESIGN.font_title,
110
+ font_body: raw['font_body'] || DEFAULT_DESIGN.font_body,
111
+ mood: raw['mood'] || DEFAULT_DESIGN.mood,
112
+ design_notes: raw['design_notes'] || DEFAULT_DESIGN.design_notes,
113
+ };
114
+ }
97
115
  async function runStructured(llmClient, instruction) {
98
116
  const startTime = Date.now();
99
117
  const phaseLogger = getSubAgentPhaseLogger();
100
118
  const toolCallLogger = getSubAgentToolCallLogger();
101
119
  let totalToolCalls = 0;
120
+ const timestamp = Date.now();
102
121
  logger.enter('PPT-Create.runStructured');
103
122
  const hasKorean = /[\uac00-\ud7af\u1100-\u11ff]/.test(instruction);
104
123
  const language = hasKorean ? 'ko' : 'en';
@@ -112,7 +131,7 @@ async function runStructured(llmClient, instruction) {
112
131
  { role: 'user', content: instruction },
113
132
  ],
114
133
  temperature: 0.5,
115
- max_tokens: 800,
134
+ max_tokens: 1200,
116
135
  });
117
136
  const enhMsg = enhRes.choices[0]?.message;
118
137
  guidance = enhMsg ? extractContent(enhMsg) : '';
@@ -135,18 +154,44 @@ async function runStructured(llmClient, instruction) {
135
154
  { role: 'user', content: enhancedInstruction },
136
155
  ],
137
156
  temperature: 0.4,
138
- max_tokens: 2000,
157
+ max_tokens: 4000,
139
158
  });
140
159
  const planMsg = planRes.choices[0]?.message;
141
160
  const rawPlan = planMsg ? extractContent(planMsg) : '';
142
161
  plan = rawPlan ? parseJsonPlan(rawPlan) : null;
143
162
  if (plan) {
163
+ plan.design = normalizeDesign(plan.design);
144
164
  const validationError = validatePlan(plan);
145
165
  if (validationError) {
146
166
  logger.warn('PPT plan validation failed', { error: validationError });
147
167
  if (phaseLogger)
148
- phaseLogger('powerpoint-create', 'planning', `Validation failed: ${validationError}. Falling back.`);
149
- plan = null;
168
+ phaseLogger('powerpoint-create', 'planning', `Validation failed: ${validationError}. Retrying...`);
169
+ const retryRes = await llmClient.chatCompletion({
170
+ messages: [
171
+ { role: 'system', content: PPT_STRUCTURED_PLANNING_PROMPT },
172
+ { role: 'user', content: enhancedInstruction },
173
+ ],
174
+ temperature: 0.2,
175
+ max_tokens: 4000,
176
+ });
177
+ const retryMsg = retryRes.choices[0]?.message;
178
+ const retryRaw = retryMsg ? extractContent(retryMsg) : '';
179
+ const retryPlan = retryRaw ? parseJsonPlan(retryRaw) : null;
180
+ if (retryPlan) {
181
+ retryPlan.design = normalizeDesign(retryPlan.design);
182
+ const retryError = validatePlan(retryPlan);
183
+ if (!retryError) {
184
+ plan = retryPlan;
185
+ if (phaseLogger)
186
+ phaseLogger('powerpoint-create', 'planning', `Retry succeeded (${plan.slides.length} slides)`);
187
+ }
188
+ else {
189
+ plan = null;
190
+ }
191
+ }
192
+ else {
193
+ plan = null;
194
+ }
150
195
  }
151
196
  else {
152
197
  if (phaseLogger)
@@ -179,142 +224,171 @@ async function runStructured(llmClient, instruction) {
179
224
  return agent.run(instruction);
180
225
  }
181
226
  if (phaseLogger)
182
- phaseLogger('powerpoint-create', 'execution', 'Starting slide-by-slide execution...');
183
- const toolMap = new Map();
184
- for (const tool of POWERPOINT_CREATE_TOOLS) {
185
- toolMap.set(tool.definition.function.name, tool);
186
- }
227
+ phaseLogger('powerpoint-create', 'execution', 'Starting HTML rendering pipeline...');
228
+ const { writePath: tempWritePath, winPath: tempWinPath } = getTempDir();
229
+ ensureTempDir(tempWritePath);
187
230
  const pathMatch = instruction.match(/([A-Za-z]:\\[^\s,]+\.pptx|\/[^\s,]+\.pptx)/i);
188
231
  const savePath = pathMatch ? pathMatch[1] : undefined;
189
- const createTool = toolMap.get('powerpoint_create');
190
- if (!createTool) {
191
- return { success: false, error: 'powerpoint_create tool not found' };
192
- }
193
- resetLayoutCounters();
194
- const createResult = await createTool.execute({ reason: 'Creating new presentation' });
232
+ const createResult = await powerpointClient.powerpointCreate();
195
233
  totalToolCalls++;
196
234
  if (toolCallLogger)
197
- toolCallLogger('powerpoint-create', 'powerpoint_create', { reason: 'Creating new presentation' }, createResult.result || createResult.error || '', createResult.success, 0, totalToolCalls);
235
+ toolCallLogger('powerpoint-create', 'powerpoint_create', {}, createResult.success ? 'Created' : createResult['error'] || '', createResult.success, 0, totalToolCalls);
198
236
  if (!createResult.success) {
199
- return { success: false, error: `Failed to create presentation: ${createResult.error}` };
237
+ return { success: false, error: `Failed to create presentation: ${createResult['error']}` };
238
+ }
239
+ const titleSlide = plan.slides.find(s => s.type === 'title');
240
+ if (titleSlide) {
241
+ const kstNow = new Date(Date.now() + 9 * 60 * 60 * 1000);
242
+ const kstDate = `${kstNow.getUTCFullYear()}년 ${kstNow.getUTCMonth() + 1}월`;
243
+ titleSlide.content_direction = (titleSlide.content_direction || '') + `\nDate text to display: ${kstDate}`;
200
244
  }
201
245
  const builtSlides = [];
246
+ let failCount = 0;
247
+ const tempFiles = [];
202
248
  for (let i = 0; i < plan.slides.length; i++) {
203
249
  const slidePlan = plan.slides[i];
204
250
  const slideNum = i + 1;
205
- const tool = toolMap.get(slidePlan.tool);
206
- if (!tool) {
207
- logger.warn(`Tool ${slidePlan.tool} not found, skipping slide ${slideNum}`);
208
- continue;
251
+ if (failCount >= 3) {
252
+ logger.warn('Too many slide failures, stopping');
253
+ break;
209
254
  }
210
- if (slidePlan.tool === 'ppt_build_title_slide') {
211
- const args = {
212
- title: slidePlan.title,
213
- subtitle: slidePlan.params?.['subtitle'] || '',
214
- date_text: slidePlan.params?.['date_text'] || '',
215
- color_scheme: plan.design.color_scheme,
216
- design_style: plan.design.design_style,
217
- };
218
- const result = await tool.execute(args);
219
- totalToolCalls++;
220
- if (toolCallLogger)
221
- toolCallLogger('powerpoint-create', slidePlan.tool, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
222
- if (result.success) {
223
- builtSlides.push(`Slide ${slideNum}: ${slidePlan.title} (title)`);
224
- }
225
- else {
226
- logger.warn(`Title slide failed: ${result.error}`);
255
+ if (phaseLogger)
256
+ phaseLogger('powerpoint-create', 'execution', `Rendering slide ${slideNum}/${plan.slides.length}: ${slidePlan.title}`);
257
+ const htmlPrompt = buildSlideHtmlPrompt(slidePlan.title, slidePlan.content_direction || '', plan.design, i, plan.slides.length, language);
258
+ let html = null;
259
+ try {
260
+ const htmlRes = await llmClient.chatCompletion({
261
+ messages: [
262
+ { role: 'system', content: htmlPrompt },
263
+ { role: 'user', content: 'Generate the HTML slide now.' },
264
+ ],
265
+ temperature: 0.3,
266
+ max_tokens: 4000,
267
+ });
268
+ const htmlMsg = htmlRes.choices[0]?.message;
269
+ const rawHtml = htmlMsg ? extractContent(htmlMsg) : '';
270
+ html = extractHtml(rawHtml);
271
+ if (!html && rawHtml.length > 100) {
272
+ logger.warn(`Slide ${slideNum}: HTML extraction failed, retrying`);
273
+ const retryRes = await llmClient.chatCompletion({
274
+ messages: [
275
+ { role: 'system', content: htmlPrompt },
276
+ { role: 'user', content: 'Generate the complete HTML document. Start with <!DOCTYPE html> and end with </html>. No markdown fences.' },
277
+ ],
278
+ temperature: 0.2,
279
+ max_tokens: 4000,
280
+ });
281
+ const retryMsg = retryRes.choices[0]?.message;
282
+ const retryRaw = retryMsg ? extractContent(retryMsg) : '';
283
+ html = extractHtml(retryRaw);
227
284
  }
228
- continue;
229
285
  }
230
- if (slidePlan.tool === 'ppt_build_closing_slide') {
231
- const closingText = slidePlan.params?.['text'] || slidePlan.title || '감사합니다';
232
- const args = {
233
- text: closingText,
234
- subtitle: slidePlan.params?.['subtitle'] || '',
235
- color_scheme: plan.design.color_scheme,
236
- design_style: plan.design.design_style,
237
- };
238
- const result = await tool.execute(args);
239
- totalToolCalls++;
240
- if (toolCallLogger)
241
- toolCallLogger('powerpoint-create', slidePlan.tool, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
242
- if (result.success) {
243
- builtSlides.push(`Slide ${slideNum}: ${closingText} (closing)`);
244
- }
245
- else {
246
- logger.warn(`Closing slide failed: ${result.error}`);
247
- }
286
+ catch (e) {
287
+ logger.warn(`Slide ${slideNum}: LLM call failed: ${e}`);
288
+ }
289
+ if (!html) {
290
+ logger.warn(`Slide ${slideNum}: Failed to generate HTML, skipping`);
291
+ failCount++;
248
292
  continue;
249
293
  }
250
- const slideSystemPrompt = buildSlideSystemPrompt(slidePlan.tool, slidePlan.title, slidePlan.direction || '', guidance, language);
251
- if (!slideSystemPrompt) {
252
- logger.warn(`No system prompt for ${slidePlan.tool}, skipping`);
294
+ const htmlFileName = `hanseol_slide_${slideNum}_${timestamp}.html`;
295
+ const pngFileName = `hanseol_slide_${slideNum}_${timestamp}.png`;
296
+ const htmlWritePath = path.join(tempWritePath, htmlFileName);
297
+ const pngWritePath = path.join(tempWritePath, pngFileName);
298
+ const htmlWinPath = `${tempWinPath}\\${htmlFileName}`;
299
+ const pngWinPath = `${tempWinPath}\\${pngFileName}`;
300
+ try {
301
+ fs.writeFileSync(htmlWritePath, html, 'utf-8');
302
+ tempFiles.push(htmlWritePath);
303
+ }
304
+ catch (e) {
305
+ logger.warn(`Slide ${slideNum}: Failed to write HTML file: ${e}`);
306
+ failCount++;
253
307
  continue;
254
308
  }
309
+ let renderSuccess = false;
255
310
  try {
256
- const slideRes = await llmClient.chatCompletion({
257
- messages: [
258
- { role: 'system', content: slideSystemPrompt },
259
- { role: 'user', content: `Build slide "${slidePlan.title}" now. Call the tool with all required parameters.` },
260
- ],
261
- tools: [tool.definition],
262
- temperature: 0.3,
263
- max_tokens: 2000,
264
- });
265
- const msg = slideRes.choices[0]?.message;
266
- if (!msg?.tool_calls || msg.tool_calls.length === 0) {
267
- logger.warn(`Slide ${slideNum}: LLM did not call tool, skipping`);
268
- continue;
311
+ const renderResult = await powerpointClient.renderHtmlToImage(htmlWinPath, pngWinPath);
312
+ totalToolCalls++;
313
+ renderSuccess = renderResult.success;
314
+ if (!renderSuccess) {
315
+ await new Promise(r => setTimeout(r, 2000));
316
+ const retryRender = await powerpointClient.renderHtmlToImage(htmlWinPath, pngWinPath);
317
+ totalToolCalls++;
318
+ renderSuccess = retryRender.success;
269
319
  }
270
- const tc = msg.tool_calls[0];
271
- let args;
320
+ }
321
+ catch (e) {
322
+ logger.warn(`Slide ${slideNum}: Edge screenshot failed: ${e}`);
272
323
  try {
273
- args = JSON.parse(tc.function.arguments);
324
+ await new Promise(r => setTimeout(r, 2000));
325
+ const retryRender = await powerpointClient.renderHtmlToImage(htmlWinPath, pngWinPath);
326
+ totalToolCalls++;
327
+ renderSuccess = retryRender.success;
274
328
  }
275
329
  catch {
276
- logger.warn(`Slide ${slideNum}: Invalid JSON args from LLM`);
277
- continue;
278
- }
279
- args['color_scheme'] = plan.design.color_scheme;
280
- args['design_style'] = plan.design.design_style;
281
- const result = await tool.execute(args);
282
- totalToolCalls++;
283
- if (toolCallLogger)
284
- toolCallLogger('powerpoint-create', tc.function.name, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
285
- if (result.success) {
286
- builtSlides.push(`Slide ${slideNum}: ${slidePlan.title} (${slidePlan.tool.replace('ppt_build_layout_', 'Layout ').toUpperCase()})`);
287
- }
288
- else {
289
- logger.warn(`Slide ${slideNum} failed: ${result.error}`);
330
+ renderSuccess = false;
290
331
  }
291
332
  }
292
- catch (e) {
293
- logger.warn(`Slide ${slideNum} LLM call failed: ${e}`);
333
+ try {
334
+ fs.unlinkSync(htmlWritePath);
335
+ }
336
+ catch { }
337
+ if (!renderSuccess) {
338
+ logger.warn(`Slide ${slideNum}: Screenshot rendering failed, skipping`);
339
+ failCount++;
340
+ continue;
341
+ }
342
+ tempFiles.push(pngWritePath);
343
+ const addResult = await powerpointClient.powerpointAddSlide(7);
344
+ totalToolCalls++;
345
+ if (!addResult.success) {
346
+ logger.warn(`Slide ${slideNum}: Failed to add blank slide`);
347
+ failCount++;
348
+ continue;
349
+ }
350
+ const bgResult = await powerpointClient.powerpointSetBackground(slideNum, { imagePath: pngWinPath });
351
+ totalToolCalls++;
352
+ if (toolCallLogger)
353
+ toolCallLogger('powerpoint-create', 'setBackground', { slideNum, imagePath: pngWinPath }, bgResult.success ? 'OK' : 'Failed', bgResult.success, slideNum, totalToolCalls);
354
+ if (bgResult.success) {
355
+ builtSlides.push(`Slide ${slideNum}: ${slidePlan.title} (${slidePlan.type})`);
356
+ }
357
+ else {
358
+ logger.warn(`Slide ${slideNum}: Failed to set background: ${JSON.stringify(bgResult)}`);
359
+ failCount++;
294
360
  }
295
361
  }
296
- const saveTool = toolMap.get('powerpoint_save');
297
- if (saveTool) {
298
- const saveArgs = { reason: 'Saving completed presentation' };
362
+ if (builtSlides.length > 0) {
363
+ const saveArgs = {};
299
364
  if (savePath)
300
365
  saveArgs['path'] = savePath;
301
- const saveResult = await saveTool.execute(saveArgs);
302
- totalToolCalls++;
303
- if (toolCallLogger)
304
- toolCallLogger('powerpoint-create', 'powerpoint_save', saveArgs, saveResult.result || saveResult.error || '', saveResult.success, 0, totalToolCalls);
305
- if (!saveResult.success) {
306
- const fallbackArgs = { reason: 'Retry save', path: 'C:\\temp\\presentation.pptx' };
307
- const retryResult = await saveTool.execute(fallbackArgs);
366
+ const saveTool = POWERPOINT_CREATE_TOOLS.find(t => t.definition.function.name === 'powerpoint_save');
367
+ if (saveTool) {
368
+ const saveResult = await saveTool.execute(saveArgs);
308
369
  totalToolCalls++;
309
370
  if (toolCallLogger)
310
- toolCallLogger('powerpoint-create', 'powerpoint_save', fallbackArgs, retryResult.result || retryResult.error || '', retryResult.success, 0, totalToolCalls);
371
+ toolCallLogger('powerpoint-create', 'powerpoint_save', saveArgs, saveResult.result || saveResult.error || '', saveResult.success, 0, totalToolCalls);
372
+ if (!saveResult.success) {
373
+ const fallbackArgs = { path: 'C:\\temp\\presentation.pptx' };
374
+ const retryResult = await saveTool.execute(fallbackArgs);
375
+ totalToolCalls++;
376
+ if (toolCallLogger)
377
+ toolCallLogger('powerpoint-create', 'powerpoint_save', fallbackArgs, retryResult.result || retryResult.error || '', retryResult.success, 0, totalToolCalls);
378
+ }
379
+ }
380
+ }
381
+ for (const tempFile of tempFiles) {
382
+ try {
383
+ fs.unlinkSync(tempFile);
311
384
  }
385
+ catch { }
312
386
  }
313
387
  const duration = Date.now() - startTime;
314
- const summary = `Presentation created with ${builtSlides.length} slides (${plan.design.color_scheme}, ${plan.design.design_style} style):\n${builtSlides.join('\n')}`;
388
+ const summary = `Presentation created with ${builtSlides.length} slides (HTML rendering, ${plan.design.mood}):\n${builtSlides.join('\n')}`;
315
389
  logger.exit('PPT-Create.runStructured', { slideCount: builtSlides.length, totalToolCalls, duration });
316
390
  return {
317
- success: true,
391
+ success: builtSlides.length > 0,
318
392
  result: summary,
319
393
  metadata: { iterations: plan.slides.length, toolCalls: totalToolCalls, duration },
320
394
  };
@@ -325,7 +399,7 @@ export function createPowerPointCreateRequestTool() {
325
399
  type: 'function',
326
400
  function: {
327
401
  name: 'powerpoint_create_agent',
328
- description: 'Autonomous PowerPoint CREATION agent. Creates NEW presentations from scratch with professional slide designs, color schemes, and visual hierarchy. Uses high-level builder tools where each tool call creates one complete slide. Give it a topic or outline and it produces a polished, enterprise-grade presentation. For EDITING existing .pptx files, use powerpoint_modify_agent instead.',
402
+ description: 'Autonomous PowerPoint CREATION agent. Creates NEW presentations from scratch with professional slide designs, color schemes, and visual hierarchy. Uses HTML rendering pipeline for maximum design quality — each slide is rendered as a beautiful HTML page and captured as a high-quality image. Give it a topic or outline and it produces a polished, enterprise-grade presentation. For EDITING existing .pptx files, use powerpoint_modify_agent instead.',
329
403
  parameters: {
330
404
  type: 'object',
331
405
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"powerpoint-create-agent.js","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"powerpoint-create-agent.js","sourceRoot":"","sources":["../../../src/agents/office/powerpoint-create-agent.ts"],"names":[],"mappings":"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"}