ai-debug-local-mcp
Version:
🎯 ENHANCED AI GUIDANCE v4.1.2: Dramatically improved tool descriptions help AI users choose the right tools instead of 'close enough' options. Ultra-fast keyboard automation (10x speed), universal recording, multi-ecosystem debugging support, and compreh
78 lines • 3.23 kB
JavaScript
export class FlutterCoreModule {
page;
async attachToPage(page) {
this.page = page;
await this.injectBasicMonitoring();
}
async detectFlutter(page) {
return await page.evaluate(() => {
// Multiple Flutter detection methods
return !!(window.flutterConfiguration ||
window._flutter ||
document.querySelector('flt-scene-host') ||
document.querySelector('flutter-view') ||
document.querySelector('[data-name="flutter"]') ||
document.querySelector('canvas[aria-label*="flutter"]'));
});
}
async getFlutterConfig() {
if (!this.page)
return null;
return await this.page.evaluate(() => {
const config = window.flutterConfiguration || {};
return {
framework: 'Flutter',
version: config.version || 'unknown',
renderer: config.renderer || 'auto',
buildMode: config.buildMode || 'release',
dartVersion: config.dartVersion || 'unknown',
flutterChannel: config.channel || 'stable',
webConfig: {
serviceWorker: !!config.serviceWorker,
canvasKitUrl: config.canvasKitBaseUrl,
fontManifest: config.fontManifest
}
};
});
}
async getFlutterDiagnostics() {
if (!this.page) {
return {
renderer: { type: 'HTML', wasmLoaded: false, loadTime: 0 },
platformChannels: [],
fonts: { manifest: [], loaded: [], failed: [], loadTime: 0 },
gestureHandling: { glassPane: false, pointerEvents: 'none', touchSupport: false, conflictingGestures: 0 },
textInput: { mode: 'native', focusIssues: 0, imeSupport: false }
};
}
return await this.page.evaluate(() => {
const flutter = window._flutter || {};
return {
renderer: {
type: flutter.renderer?.name || 'HTML',
wasmLoaded: !!flutter.canvasKit,
loadTime: flutter.renderer?.loadTime || 0,
canvasKitVersion: flutter.canvasKit?.version
},
platformChannels: flutter.platformChannels || [],
fonts: flutter.fontManager || { manifest: [], loaded: [], failed: [], loadTime: 0 },
gestureHandling: flutter.gestureBinding || { glassPane: false, pointerEvents: 'none', touchSupport: false, conflictingGestures: 0 },
textInput: flutter.textInput || { mode: 'native', focusIssues: 0, imeSupport: false }
};
});
}
async injectBasicMonitoring() {
if (!this.page)
return;
await this.page.evaluate(() => {
// Basic Flutter monitoring setup
if (!window.__flutterDebugCore__) {
window.__flutterDebugCore__ = {
initialized: true,
startTime: Date.now()
};
}
});
}
}
//# sourceMappingURL=flutter-core.js.map