@majkapp/plugin-kit 1.3.6 → 1.3.8

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.
@@ -74,17 +74,34 @@
74
74
 
75
75
  async function captureScreenshot(options = {}) {
76
76
  try {
77
+ // Debug: Check if html2canvas is available
78
+ console.log('[MCP DOM Agent] Screenshot capture started');
79
+ console.log('[MCP DOM Agent] html2canvas available:', typeof html2canvas !== 'undefined');
80
+ console.log('[MCP DOM Agent] window.html2canvas:', window.html2canvas);
81
+
77
82
  // Use html2canvas if available, otherwise use basic canvas approach
78
83
  if (typeof html2canvas !== 'undefined') {
84
+ console.log('[MCP DOM Agent] Using html2canvas for real screenshot');
79
85
  const canvas = await html2canvas(document.body, {
80
86
  allowTaint: true,
81
87
  useCORS: true,
82
88
  logging: false,
83
89
  ...options
84
90
  });
91
+ console.log('[MCP DOM Agent] html2canvas capture successful');
85
92
  return canvas.toDataURL('image/png');
86
93
  } else {
87
94
  // Fallback: Use basic canvas API to capture visible viewport
95
+ console.warn('[MCP DOM Agent] html2canvas not available, using fallback');
96
+ console.log('[MCP DOM Agent] Checking document scripts:');
97
+ const scripts = document.querySelectorAll('script');
98
+ scripts.forEach((script, idx) => {
99
+ console.log(` Script ${idx}:`, {
100
+ src: script.src || 'inline',
101
+ hasContent: script.textContent?.length || 0,
102
+ contains_html2canvas: script.textContent?.includes('html2canvas') || false
103
+ });
104
+ });
88
105
  return captureViewportScreenshot(options);
89
106
  }
90
107
  } catch (error) {
@@ -259,6 +276,22 @@
259
276
  // Listen for file picker results from parent window
260
277
  window.addEventListener('message', function (ev) {
261
278
  const msg = ev.data;
279
+
280
+ // Log ALL incoming messages for debugging
281
+ if (msg && msg.type && msg.type.startsWith('majk:file-picker:')) {
282
+ console.log('[MCP DOM Agent] Received postMessage:', {
283
+ type: msg.type,
284
+ requestId: msg.requestId,
285
+ success: msg.success,
286
+ hasResult: !!msg.result,
287
+ hasResults: !!msg.results,
288
+ hasError: !!msg.error,
289
+ errorName: msg.error?.name,
290
+ errorMessage: msg.error?.message,
291
+ fullMessage: msg
292
+ });
293
+ }
294
+
262
295
  if (!msg) return;
263
296
 
264
297
  // Handle directory picker result
@@ -267,10 +300,23 @@
267
300
  if (pending) {
268
301
  pendingFilePickerRequests.delete(msg.requestId);
269
302
  if (msg.success) {
303
+ console.log('[MCP DOM Agent] Directory picker SUCCESS - resolving promise', {
304
+ requestId: msg.requestId,
305
+ result: msg.result
306
+ });
270
307
  pending.resolve(msg.result);
271
308
  } else {
309
+ console.log('[MCP DOM Agent] Directory picker FAILED - rejecting promise', {
310
+ requestId: msg.requestId,
311
+ error: msg.error
312
+ });
272
313
  pending.reject(new Error(msg.error?.message || 'Directory picker failed'));
273
314
  }
315
+ } else {
316
+ console.warn('[MCP DOM Agent] Received directory picker result but no pending request found', {
317
+ requestId: msg.requestId,
318
+ pendingRequestIds: Array.from(pendingFilePickerRequests.keys())
319
+ });
274
320
  }
275
321
  }
276
322
 
@@ -305,6 +351,12 @@
305
351
  async function showDirectoryPickerBridge(options) {
306
352
  const requestId = 'file-picker-' + (filePickerRequestId++);
307
353
 
354
+ console.log('[MCP DOM Agent] Sending directory picker request:', {
355
+ requestId,
356
+ options,
357
+ pendingRequests: pendingFilePickerRequests.size
358
+ });
359
+
308
360
  return new Promise((resolve, reject) => {
309
361
  pendingFilePickerRequests.set(requestId, { resolve, reject });
310
362
 
@@ -401,4 +453,12 @@
401
453
  }
402
454
 
403
455
  console.log('[MCP DOM Agent] Initialized v1.1.0 with File Picker Bridge');
456
+ console.log('[MCP DOM Agent] Initialized v1.0.0');
457
+ console.log('[MCP DOM Agent] html2canvas detected:', typeof html2canvas !== 'undefined');
458
+ console.log('[MCP DOM Agent] Screenshot support:', typeof html2canvas !== 'undefined' ? 'FULL' : 'FALLBACK');
459
+
460
+ // Debug: Log all inline scripts to help debug injection
461
+ const inlineScripts = Array.from(document.querySelectorAll('script:not([src])')).length;
462
+ const externalScripts = Array.from(document.querySelectorAll('script[src]')).length;
463
+ console.log('[MCP DOM Agent] Scripts in document:', { inline: inlineScripts, external: externalScripts });
404
464
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"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"}
@@ -398,17 +398,59 @@ function serveSpa(ui, req, res, ctx) {
398
398
  `window.__MAJK_IFRAME_BASE__=${JSON.stringify(ui.base)};` +
399
399
  `window.__MAJK_PLUGIN_ID__=${JSON.stringify(ctx.pluginId)};` +
400
400
  `</script>`;
401
+ // Inject html2canvas library (inline from node_modules)
402
+ const html2canvasScript = BuiltPlugin.html2canvasScript
403
+ ? `<script>${BuiltPlugin.html2canvasScript}</script>`
404
+ : '';
401
405
  // Inject MCP DOM Agent script
402
406
  const mcpScript = BuiltPlugin.mcpDomAgentScript
403
407
  ? `<script>${BuiltPlugin.mcpDomAgentScript}</script>`
404
408
  : '';
405
- const allInjections = configInject + mcpScript;
409
+ // Debug logging
410
+ if (html2canvasScript) {
411
+ ctx.logger.debug(`[React SPA] Injecting html2canvas (${(BuiltPlugin.html2canvasScript?.length || 0) / 1024} KB)`);
412
+ }
413
+ else {
414
+ ctx.logger.warn('[React SPA] html2canvas NOT injected - script not loaded');
415
+ }
416
+ if (mcpScript) {
417
+ ctx.logger.debug('[React SPA] Injecting MCP DOM Agent');
418
+ }
419
+ const allInjections = configInject + html2canvasScript + mcpScript;
406
420
  const injected = html.replace('</head>', `${allInjections}</head>`);
407
421
  content = Buffer.from(injected, 'utf-8');
408
422
  }
409
423
  res.writeHead(200, corsHeaders({ 'Content-Type': getContentType(targetFile) }));
410
424
  res.end(content);
411
425
  }
426
+ /**
427
+ * Load html2canvas library from node_modules
428
+ */
429
+ function loadHtml2CanvasScript() {
430
+ try {
431
+ // Try multiple possible paths for html2canvas
432
+ const possiblePaths = [
433
+ // When running from dist/ (after build)
434
+ path_1.default.join(__dirname, '..', 'node_modules', 'html2canvas', 'dist', 'html2canvas.min.js'),
435
+ // When running from src/ (development)
436
+ path_1.default.join(__dirname, '..', '..', 'node_modules', 'html2canvas', 'dist', 'html2canvas.min.js'),
437
+ // When installed as a dependency in user's project
438
+ path_1.default.join(__dirname, '..', '..', '..', 'html2canvas', 'dist', 'html2canvas.min.js'),
439
+ ];
440
+ for (const scriptPath of possiblePaths) {
441
+ if (fs_1.default.existsSync(scriptPath)) {
442
+ log(`[html2canvas] Loaded from: ${scriptPath}`);
443
+ return fs_1.default.readFileSync(scriptPath, 'utf-8');
444
+ }
445
+ }
446
+ log('[html2canvas] Script file not found in any expected location');
447
+ return '';
448
+ }
449
+ catch (error) {
450
+ log(`[html2canvas] Failed to load script: ${error.message}`);
451
+ return '';
452
+ }
453
+ }
412
454
  /**
413
455
  * Load MCP DOM Agent script
414
456
  */
@@ -584,7 +626,17 @@ class BuiltPlugin {
584
626
  context.logger.info(`🌐 HTTP Port: ${context.http.port}`);
585
627
  context.logger.info(`🔗 Base URL: ${context.http.baseUrl}`);
586
628
  context.logger.info('═══════════════════════════════════════════════════════');
587
- // Load MCP DOM Agent script once for all plugins
629
+ // Load html2canvas and MCP DOM Agent scripts once for all plugins
630
+ if (!BuiltPlugin.html2canvasScript) {
631
+ BuiltPlugin.html2canvasScript = loadHtml2CanvasScript();
632
+ if (BuiltPlugin.html2canvasScript) {
633
+ const sizeKB = (BuiltPlugin.html2canvasScript.length / 1024).toFixed(2);
634
+ context.logger.info(`✅ html2canvas library loaded (${sizeKB} KB) - screenshot support enabled`);
635
+ }
636
+ else {
637
+ context.logger.warn('⚠️ html2canvas not found - screenshots will use fallback mode');
638
+ }
639
+ }
588
640
  if (!BuiltPlugin.mcpDomAgentScript) {
589
641
  BuiltPlugin.mcpDomAgentScript = loadMcpDomAgentScript();
590
642
  if (BuiltPlugin.mcpDomAgentScript) {
@@ -949,18 +1001,30 @@ class BuiltPlugin {
949
1001
  return;
950
1002
  }
951
1003
  }
952
- // Inject MCP DOM Agent script into HTML screens
1004
+ // Inject html2canvas and MCP DOM Agent script into HTML screens
953
1005
  if (BuiltPlugin.mcpDomAgentScript) {
1006
+ const html2canvasScript = BuiltPlugin.html2canvasScript
1007
+ ? `<script>${BuiltPlugin.html2canvasScript}</script>`
1008
+ : '';
954
1009
  const mcpScript = `<script>${BuiltPlugin.mcpDomAgentScript}</script>`;
1010
+ const allScripts = html2canvasScript + mcpScript;
1011
+ // Debug logging
1012
+ if (html2canvasScript) {
1013
+ this.context.logger.debug(`[HTML Screen] Injecting html2canvas (${(BuiltPlugin.html2canvasScript?.length || 0) / 1024} KB)`);
1014
+ }
1015
+ else {
1016
+ this.context.logger.warn('[HTML Screen] html2canvas NOT injected - script not loaded');
1017
+ }
1018
+ this.context.logger.debug('[HTML Screen] Injecting MCP DOM Agent');
955
1019
  // Try to inject before </body>, fallback to </head>, fallback to end of HTML
956
1020
  if (htmlContent.includes('</body>')) {
957
- htmlContent = htmlContent.replace('</body>', `${mcpScript}</body>`);
1021
+ htmlContent = htmlContent.replace('</body>', `${allScripts}</body>`);
958
1022
  }
959
1023
  else if (htmlContent.includes('</head>')) {
960
- htmlContent = htmlContent.replace('</head>', `${mcpScript}</head>`);
1024
+ htmlContent = htmlContent.replace('</head>', `${allScripts}</head>`);
961
1025
  }
962
1026
  else {
963
- htmlContent += mcpScript;
1027
+ htmlContent += allScripts;
964
1028
  }
965
1029
  }
966
1030
  res.end(htmlContent);
@@ -1114,6 +1178,7 @@ class BuiltPlugin {
1114
1178
  }
1115
1179
  // MCP DOM Agent script (loaded once at startup, accessible to serveSpa function)
1116
1180
  BuiltPlugin.mcpDomAgentScript = null;
1181
+ BuiltPlugin.html2canvasScript = null;
1117
1182
  /**
1118
1183
  * Group tools by scope
1119
1184
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@majkapp/plugin-kit",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "Fluent builder framework for creating robust MAJK plugins",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",