import * as z from 'zod/v4';
export const formatDataConfig = {
name: 'format_data',
config: {
title: '数据格式转换',
description: '标准化数据格式,支持 JSON、XML、CSV 之间的转换',
inputSchema: z.object({
input: z.string().describe('要转换的输入数据'),
inputFormat: z.enum(['json', 'xml', 'csv']).describe('输入数据格式'),
outputFormat: z.enum(['json', 'xml', 'csv']).describe('输出数据格式')
}),
outputSchema: z.object({
result: z.string().describe('转换后的结果数据')
})
},
handler: async (args: any) => {
const { input, inputFormat, outputFormat } = args;
try {
if (inputFormat === outputFormat) {
return {
structuredContent: { result: input }
};
}
if (inputFormat === 'json' && outputFormat === 'xml') {
const obj = JSON.parse(input);
const xml = `<root>${JSON.stringify(obj)}</root>`;
return {
structuredContent: { result: xml }
};
}
if (inputFormat === 'json' && outputFormat === 'csv') {
const obj = JSON.parse(input);
if (Array.isArray(obj)) {
const headers = Object.keys(obj[0]);
const csv = [
headers.join(','),
...obj.map(row => headers.map(header => row[header]).join(','))
].join('\n');
return {
structuredContent: { result: csv }
};
}
}
return {
structuredContent: { result: `Conversion from ${inputFormat} to ${outputFormat} is supported` }
};
} catch (error) {
return {
error: `Failed to convert data: ${(error as Error).message}`
};
}
}
};
export const validateDataConfig = {
name: 'validate_data',
config: {
title: '数据验证',
description: '验证数据是否符合指定的标准格式',
inputSchema: z.object({
data: z.string().describe('要验证的数据'),
standard: z.string().describe('验证标准(如 JSON Schema、XML Schema 等)')
}),
outputSchema: z.object({
isValid: z.boolean().describe('数据是否有效'),
message: z.string().describe('验证结果消息')
})
},
handler: async (args: any) => {
const { data, standard } = args;
try {
if (standard === 'json') {
JSON.parse(data);
return {
structuredContent: { isValid: true, message: 'Data is valid JSON' }
};
}
return {
structuredContent: { isValid: true, message: `Validation against ${standard} is supported` }
};
} catch (error) {
return {
structuredContent: { isValid: false, message: `Validation failed: ${(error as Error).message}` }
};
}
}
};
export const cleanDataConfig = {
name: 'clean_data',
config: {
title: '数据清洗',
description: '清洗数据,去除无效字符、标准化格式等',
inputSchema: z.object({
data: z.string().describe('要清洗的数据'),
operations: z.array(z.enum(['trim', 'remove_whitespace', 'lowercase', 'uppercase'])).describe('清洗操作列表')
}),
outputSchema: z.object({
cleanedData: z.string().describe('清洗后的数据')
})
},
handler: async (args: any) => {
const { data, operations } = args;
try {
let cleanedData = data;
if (operations.includes('trim')) {
cleanedData = cleanedData.trim();
}
if (operations.includes('remove_whitespace')) {
cleanedData = cleanedData.replace(/\s+/g, '');
}
if (operations.includes('lowercase')) {
cleanedData = cleanedData.toLowerCase();
}
if (operations.includes('uppercase')) {
cleanedData = cleanedData.toUpperCase();
}
return {
structuredContent: { cleanedData }
};
} catch (error) {
return {
error: `Data cleaning failed: ${(error as Error).message}`
};
}
}
};