mirror of
https://github.com/eyaltoledano/claude-task-master.git
synced 2025-07-04 15:41:26 +00:00
90 lines
2.0 KiB
JavaScript
90 lines
2.0 KiB
JavaScript
import {
|
|
getConfig,
|
|
isConfigFilePresent,
|
|
writeConfig
|
|
} from '../config-manager.js';
|
|
import { findConfigPath } from '../../../src/utils/path-utils.js';
|
|
import { log } from '../utils.js';
|
|
|
|
function setResponseLanguage(lang, options = {}) {
|
|
const { mcpLog, projectRoot } = options;
|
|
|
|
const report = (level, ...args) => {
|
|
if (mcpLog && typeof mcpLog[level] === 'function') {
|
|
mcpLog[level](...args);
|
|
}
|
|
};
|
|
|
|
// Use centralized config path finding instead of hardcoded path
|
|
const configPath = findConfigPath(null, { projectRoot });
|
|
const configExists = isConfigFilePresent(projectRoot);
|
|
|
|
log(
|
|
'debug',
|
|
`Checking for config file using findConfigPath, found: ${configPath}`
|
|
);
|
|
log(
|
|
'debug',
|
|
`Checking config file using isConfigFilePresent(), exists: ${configExists}`
|
|
);
|
|
|
|
if (!configExists) {
|
|
return {
|
|
success: false,
|
|
error: {
|
|
code: 'CONFIG_MISSING',
|
|
message:
|
|
'The configuration file is missing. Run "task-master models --setup" to create it.'
|
|
}
|
|
};
|
|
}
|
|
|
|
// Validate response language
|
|
if (typeof lang !== 'string' || lang.trim() === '') {
|
|
return {
|
|
success: false,
|
|
error: {
|
|
code: 'INVALID_RESPONSE_LANGUAGE',
|
|
message: `Invalid response language: ${lang}. Must be a non-empty string.`
|
|
}
|
|
};
|
|
}
|
|
|
|
try {
|
|
const currentConfig = getConfig(projectRoot);
|
|
currentConfig.global.responseLanguage = lang;
|
|
const writeResult = writeConfig(currentConfig, projectRoot);
|
|
|
|
if (!writeResult) {
|
|
return {
|
|
success: false,
|
|
error: {
|
|
code: 'WRITE_ERROR',
|
|
message: 'Error writing updated configuration to configuration file'
|
|
}
|
|
};
|
|
}
|
|
|
|
const successMessage = `Successfully set response language to: ${lang}`;
|
|
report('info', successMessage);
|
|
return {
|
|
success: true,
|
|
data: {
|
|
responseLanguage: lang,
|
|
message: successMessage
|
|
}
|
|
};
|
|
} catch (error) {
|
|
report('error', `Error setting response language: ${error.message}`);
|
|
return {
|
|
success: false,
|
|
error: {
|
|
code: 'SET_RESPONSE_LANGUAGE_ERROR',
|
|
message: error.message
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|
|
export default setResponseLanguage;
|