Cocos MCP Log Bridge
by czh2774
Verified
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EditorControlHandler = void 0;
const editor_1 = require("../../../@types/editor");
class EditorControlHandler {
/**
* Reads log messages from the Cocos Creator Console
* @param params Parameters containing filtering options
* @returns Object containing console messages filtered by type
*/
static async ReadConsole(params) {
try {
// Default values for show flags
const showLogs = params.show_logs !== undefined ? params.show_logs : true;
const showWarnings = params.show_warnings !== undefined ? params.show_warnings : true;
const showErrors = params.show_errors !== undefined ? params.show_errors : true;
const searchTerm = params.search_term || '';
// Prepare log types to query
const types = [];
if (showLogs)
types.push('log');
if (showWarnings)
types.push('warn');
if (showErrors)
types.push('error');
// Query logs from Cocos Creator
const response = await editor_1.Editor.Message.request('console', 'query', {
type: types,
pattern: searchTerm,
limit: 1000 // Configurable limit
});
// Process and format the logs
const entries = response.logs.map((log) => ({
type: log.type === 'warn' ? 'Warning' :
log.type === 'error' ? 'Error' : 'Log',
message: log.message,
stackTrace: log.stack || '',
timestamp: log.timestamp
}));
return {
message: "Console logs retrieved successfully",
entries: entries,
total_entries: response.total,
filtered_count: entries.length,
show_logs: showLogs,
show_warnings: showWarnings,
show_errors: showErrors
};
}
catch (error) {
return {
error: `Failed to read console logs: ${error.message}`,
entries: []
};
}
}
/**
* Sets up real-time log monitoring
* @param callback Callback function to handle new log entries
*/
static SetupLogMonitor(callback) {
editor_1.Editor.Message.addListener('console:log', (log) => {
callback({
type: log.type === 'warn' ? 'Warning' :
log.type === 'error' ? 'Error' : 'Log',
message: log.message,
stackTrace: log.stack || '',
timestamp: log.timestamp
});
});
}
}
exports.EditorControlHandler = EditorControlHandler;