fix: Generate dummy arguments from schema in test UI

This commit is contained in:
jade
2026-07-04 02:17:12 +09:00
parent af3822ed9d
commit 70542f5cfd

View File

@@ -364,6 +364,35 @@
document.addEventListener('DOMContentLoaded', fetchTools); document.addEventListener('DOMContentLoaded', fetchTools);
function generateDummyArguments(schemaStr) {
try {
if (!schemaStr || schemaStr === "null") return {};
const schema = JSON.parse(schemaStr);
if (!schema || !schema.properties) return {};
const dummy = {};
for (const [key, value] of Object.entries(schema.properties)) {
if (value.type === 'string') {
dummy[key] = "test_" + key;
} else if (value.type === 'number' || value.type === 'integer') {
dummy[key] = 123;
} else if (value.type === 'boolean') {
dummy[key] = true;
} else if (value.type === 'array') {
dummy[key] = [];
} else if (value.type === 'object') {
dummy[key] = {};
} else {
dummy[key] = "test";
}
}
return dummy;
} catch (e) {
console.warn("Failed to parse schema", e);
return {};
}
}
document.getElementById('mcpForm').addEventListener('submit', async function(e) { document.getElementById('mcpForm').addEventListener('submit', async function(e) {
e.preventDefault(); e.preventDefault();
@@ -378,16 +407,15 @@
// Show Loading // Show Loading
loadingOverlay.classList.add('active'); loadingOverlay.classList.add('active');
const selectedOption = toolSelect.options[toolSelect.selectedIndex];
const dummyArguments = generateDummyArguments(selectedOption.dataset.schema);
const payload = { const payload = {
jsonrpc: "2.0", jsonrpc: "2.0",
method: "tools/call", method: "tools/call",
params: { params: {
name: document.getElementById('toolName').value, name: toolSelect.value,
arguments: { arguments: dummyArguments
// arguments는 이제 순수 DTO이므로 테스트 UI에서는 빈 객체 또는 Mock 데이터를 보냅니다.
// 실제 AI Agent는 parameterSchema를 보고 채워줍니다.
ui_test_call: true
}
}, },
id: Math.floor(Math.random() * 10000) id: Math.floor(Math.random() * 10000)
}; };