Release v0.4.0
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
const crypto = require('crypto');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { normalizeSavedToolProfiles } = require('./tool-profiles');
|
||||
|
||||
const DEFAULTS = {
|
||||
host: '127.0.0.1',
|
||||
@@ -12,9 +14,12 @@ const DEFAULTS = {
|
||||
enabledToolCategories: [],
|
||||
disabledToolCategories: [],
|
||||
enableSessions: false,
|
||||
executeJavascriptSafetyChecks: true,
|
||||
autostart: true,
|
||||
maxInteractionLogEntries: 50,
|
||||
lastClientTargetId: 'claude_code',
|
||||
activeToolProfileName: '',
|
||||
savedToolProfiles: [],
|
||||
};
|
||||
|
||||
function getProjectPath() {
|
||||
@@ -28,6 +33,19 @@ function getProjectName() {
|
||||
return path.basename(getProjectPath());
|
||||
}
|
||||
|
||||
function normalizeProjectIdentityPath(projectPath) {
|
||||
const normalized = path.resolve(String(projectPath || process.cwd())).replace(/\\/g, '/');
|
||||
return process.platform === 'win32' ? normalized.toLowerCase() : normalized;
|
||||
}
|
||||
|
||||
function getProjectIdentity(projectPath = getProjectPath()) {
|
||||
return crypto
|
||||
.createHash('sha256')
|
||||
.update(`funplay-cocos-mcp:${normalizeProjectIdentityPath(projectPath)}`)
|
||||
.digest('hex')
|
||||
.slice(0, 24);
|
||||
}
|
||||
|
||||
function getCocosVersion() {
|
||||
if (global.Editor && Editor.App) {
|
||||
if (typeof Editor.App.version === 'string' && Editor.App.version) {
|
||||
@@ -106,11 +124,16 @@ function loadConfig() {
|
||||
enabledToolCategories: normalizeStringList(fileConfig.enabledToolCategories).map((item) => item.toLowerCase()),
|
||||
disabledToolCategories: normalizeStringList(fileConfig.disabledToolCategories).map((item) => item.toLowerCase()),
|
||||
enableSessions: typeof fileConfig.enableSessions === 'boolean' ? fileConfig.enableSessions : DEFAULTS.enableSessions,
|
||||
executeJavascriptSafetyChecks: typeof fileConfig.executeJavascriptSafetyChecks === 'boolean'
|
||||
? fileConfig.executeJavascriptSafetyChecks
|
||||
: DEFAULTS.executeJavascriptSafetyChecks,
|
||||
autostart: typeof fileConfig.autostart === 'boolean' ? fileConfig.autostart : DEFAULTS.autostart,
|
||||
maxInteractionLogEntries: Number.isInteger(fileConfig.maxInteractionLogEntries)
|
||||
? Math.max(10, Math.min(500, fileConfig.maxInteractionLogEntries))
|
||||
: DEFAULTS.maxInteractionLogEntries,
|
||||
lastClientTargetId: normalizeClientTargetId(fileConfig.lastClientTargetId),
|
||||
activeToolProfileName: typeof fileConfig.activeToolProfileName === 'string' ? fileConfig.activeToolProfileName : '',
|
||||
savedToolProfiles: normalizeSavedToolProfiles(fileConfig.savedToolProfiles),
|
||||
configPath,
|
||||
configError: fileConfig.__error || '',
|
||||
};
|
||||
@@ -120,6 +143,7 @@ module.exports = {
|
||||
DEFAULTS,
|
||||
getProjectPath,
|
||||
getProjectName,
|
||||
getProjectIdentity,
|
||||
getCocosVersion,
|
||||
loadConfig,
|
||||
normalizeProfile,
|
||||
|
||||
Reference in New Issue
Block a user