hanseol-dev 5.0.2-dev.53 → 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;AA6ahE,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,52 +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
- if ((counts['ppt_build_layout_d'] || 0) > 3) {
69
- return `Layout D count ${counts['ppt_build_layout_d']} exceeds max 3`;
70
- }
71
- const layoutTypes = new Set(plan.slides
72
- .map(s => s.tool)
73
- .filter(t => t.startsWith('ppt_build_layout_')));
74
- if (layoutTypes.size < 5) {
75
- return `Only ${layoutTypes.size} layout types used, need at least 5`;
76
- }
77
51
  return null;
78
52
  }
79
53
  function parseJsonPlan(raw) {
@@ -97,11 +71,53 @@ function parseJsonPlan(raw) {
97
71
  return null;
98
72
  }
99
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
+ }
100
115
  async function runStructured(llmClient, instruction) {
101
116
  const startTime = Date.now();
102
117
  const phaseLogger = getSubAgentPhaseLogger();
103
118
  const toolCallLogger = getSubAgentToolCallLogger();
104
119
  let totalToolCalls = 0;
120
+ const timestamp = Date.now();
105
121
  logger.enter('PPT-Create.runStructured');
106
122
  const hasKorean = /[\uac00-\ud7af\u1100-\u11ff]/.test(instruction);
107
123
  const language = hasKorean ? 'ko' : 'en';
@@ -115,7 +131,7 @@ async function runStructured(llmClient, instruction) {
115
131
  { role: 'user', content: instruction },
116
132
  ],
117
133
  temperature: 0.5,
118
- max_tokens: 800,
134
+ max_tokens: 1200,
119
135
  });
120
136
  const enhMsg = enhRes.choices[0]?.message;
121
137
  guidance = enhMsg ? extractContent(enhMsg) : '';
@@ -138,18 +154,44 @@ async function runStructured(llmClient, instruction) {
138
154
  { role: 'user', content: enhancedInstruction },
139
155
  ],
140
156
  temperature: 0.4,
141
- max_tokens: 2000,
157
+ max_tokens: 4000,
142
158
  });
143
159
  const planMsg = planRes.choices[0]?.message;
144
160
  const rawPlan = planMsg ? extractContent(planMsg) : '';
145
161
  plan = rawPlan ? parseJsonPlan(rawPlan) : null;
146
162
  if (plan) {
163
+ plan.design = normalizeDesign(plan.design);
147
164
  const validationError = validatePlan(plan);
148
165
  if (validationError) {
149
166
  logger.warn('PPT plan validation failed', { error: validationError });
150
167
  if (phaseLogger)
151
- phaseLogger('powerpoint-create', 'planning', `Validation failed: ${validationError}. Falling back.`);
152
- 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
+ }
153
195
  }
154
196
  else {
155
197
  if (phaseLogger)
@@ -182,147 +224,171 @@ async function runStructured(llmClient, instruction) {
182
224
  return agent.run(instruction);
183
225
  }
184
226
  if (phaseLogger)
185
- phaseLogger('powerpoint-create', 'execution', 'Starting slide-by-slide execution...');
186
- const toolMap = new Map();
187
- for (const tool of POWERPOINT_CREATE_TOOLS) {
188
- toolMap.set(tool.definition.function.name, tool);
189
- }
227
+ phaseLogger('powerpoint-create', 'execution', 'Starting HTML rendering pipeline...');
228
+ const { writePath: tempWritePath, winPath: tempWinPath } = getTempDir();
229
+ ensureTempDir(tempWritePath);
190
230
  const pathMatch = instruction.match(/([A-Za-z]:\\[^\s,]+\.pptx|\/[^\s,]+\.pptx)/i);
191
231
  const savePath = pathMatch ? pathMatch[1] : undefined;
192
- const createTool = toolMap.get('powerpoint_create');
193
- if (!createTool) {
194
- return { success: false, error: 'powerpoint_create tool not found' };
195
- }
196
- resetLayoutCounters();
197
- const createResult = await createTool.execute({ reason: 'Creating new presentation' });
232
+ const createResult = await powerpointClient.powerpointCreate();
198
233
  totalToolCalls++;
199
234
  if (toolCallLogger)
200
- 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);
201
236
  if (!createResult.success) {
202
- 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}`;
203
244
  }
204
245
  const builtSlides = [];
246
+ let failCount = 0;
247
+ const tempFiles = [];
205
248
  for (let i = 0; i < plan.slides.length; i++) {
206
249
  const slidePlan = plan.slides[i];
207
250
  const slideNum = i + 1;
208
- const tool = toolMap.get(slidePlan.tool);
209
- if (!tool) {
210
- logger.warn(`Tool ${slidePlan.tool} not found, skipping slide ${slideNum}`);
211
- continue;
251
+ if (failCount >= 3) {
252
+ logger.warn('Too many slide failures, stopping');
253
+ break;
212
254
  }
213
- if (slidePlan.tool === 'ppt_build_title_slide') {
214
- const kstNow = new Date(Date.now() + 9 * 60 * 60 * 1000);
215
- const kstDate = `${kstNow.getUTCFullYear()}년 ${kstNow.getUTCMonth() + 1}월`;
216
- const args = {
217
- title: slidePlan.title,
218
- subtitle: slidePlan.params?.['subtitle'] || '',
219
- date_text: kstDate,
220
- color_scheme: plan.design.color_scheme,
221
- design_style: plan.design.design_style,
222
- };
223
- const result = await tool.execute(args);
224
- totalToolCalls++;
225
- if (toolCallLogger)
226
- toolCallLogger('powerpoint-create', slidePlan.tool, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
227
- if (result.success) {
228
- builtSlides.push(`Slide ${slideNum}: ${slidePlan.title} (title)`);
229
- }
230
- else {
231
- 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);
232
284
  }
233
- continue;
234
285
  }
235
- if (slidePlan.tool === 'ppt_build_closing_slide') {
236
- const closingText = slidePlan.params?.['text'] || slidePlan.title || '감사합니다';
237
- const args = {
238
- text: closingText,
239
- subtitle: slidePlan.params?.['subtitle'] || '',
240
- color_scheme: plan.design.color_scheme,
241
- design_style: plan.design.design_style,
242
- };
243
- const result = await tool.execute(args);
244
- totalToolCalls++;
245
- if (toolCallLogger)
246
- toolCallLogger('powerpoint-create', slidePlan.tool, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
247
- if (result.success) {
248
- builtSlides.push(`Slide ${slideNum}: ${closingText} (closing)`);
249
- }
250
- else {
251
- logger.warn(`Closing slide failed: ${result.error}`);
252
- }
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++;
253
292
  continue;
254
293
  }
255
- const slideSystemPrompt = buildSlideSystemPrompt(slidePlan.tool, slidePlan.title, slidePlan.direction || '', guidance, language);
256
- if (!slideSystemPrompt) {
257
- 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++;
258
307
  continue;
259
308
  }
309
+ let renderSuccess = false;
260
310
  try {
261
- const slideRes = await llmClient.chatCompletion({
262
- messages: [
263
- { role: 'system', content: slideSystemPrompt },
264
- { role: 'user', content: `Build slide "${slidePlan.title}" now. Call the tool with all required parameters.` },
265
- ],
266
- tools: [tool.definition],
267
- temperature: 0.3,
268
- max_tokens: 2000,
269
- });
270
- const msg = slideRes.choices[0]?.message;
271
- if (!msg?.tool_calls || msg.tool_calls.length === 0) {
272
- logger.warn(`Slide ${slideNum}: LLM did not call tool, skipping`);
273
- 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;
274
319
  }
275
- const tc = msg.tool_calls[0];
276
- let args;
320
+ }
321
+ catch (e) {
322
+ logger.warn(`Slide ${slideNum}: Edge screenshot failed: ${e}`);
277
323
  try {
278
- 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;
279
328
  }
280
329
  catch {
281
- logger.warn(`Slide ${slideNum}: Invalid JSON args from LLM`);
282
- continue;
283
- }
284
- args['color_scheme'] = plan.design.color_scheme;
285
- args['design_style'] = plan.design.design_style;
286
- if (slidePlan.tool === 'ppt_build_layout_f' && Array.isArray(args['table_data'])) {
287
- args['table_data'] = args['table_data'].filter(row => Array.isArray(row));
288
- }
289
- const result = await tool.execute(args);
290
- totalToolCalls++;
291
- if (toolCallLogger)
292
- toolCallLogger('powerpoint-create', tc.function.name, args, result.result || result.error || '', result.success, slideNum, totalToolCalls);
293
- if (result.success) {
294
- builtSlides.push(`Slide ${slideNum}: ${slidePlan.title} (${slidePlan.tool.replace('ppt_build_layout_', 'Layout ').toUpperCase()})`);
295
- }
296
- else {
297
- logger.warn(`Slide ${slideNum} failed: ${result.error}`);
330
+ renderSuccess = false;
298
331
  }
299
332
  }
300
- catch (e) {
301
- 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++;
302
360
  }
303
361
  }
304
- const saveTool = toolMap.get('powerpoint_save');
305
- if (saveTool) {
306
- const saveArgs = { reason: 'Saving completed presentation' };
362
+ if (builtSlides.length > 0) {
363
+ const saveArgs = {};
307
364
  if (savePath)
308
365
  saveArgs['path'] = savePath;
309
- const saveResult = await saveTool.execute(saveArgs);
310
- totalToolCalls++;
311
- if (toolCallLogger)
312
- toolCallLogger('powerpoint-create', 'powerpoint_save', saveArgs, saveResult.result || saveResult.error || '', saveResult.success, 0, totalToolCalls);
313
- if (!saveResult.success) {
314
- const fallbackArgs = { reason: 'Retry save', path: 'C:\\temp\\presentation.pptx' };
315
- 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);
316
369
  totalToolCalls++;
317
370
  if (toolCallLogger)
318
- 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);
319
384
  }
385
+ catch { }
320
386
  }
321
387
  const duration = Date.now() - startTime;
322
- 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')}`;
323
389
  logger.exit('PPT-Create.runStructured', { slideCount: builtSlides.length, totalToolCalls, duration });
324
390
  return {
325
- success: true,
391
+ success: builtSlides.length > 0,
326
392
  result: summary,
327
393
  metadata: { iterations: plan.slides.length, toolCalls: totalToolCalls, duration },
328
394
  };
@@ -333,7 +399,7 @@ export function createPowerPointCreateRequestTool() {
333
399
  type: 'function',
334
400
  function: {
335
401
  name: 'powerpoint_create_agent',
336
- 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.',
337
403
  parameters: {
338
404
  type: 'object',
339
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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"}