graph TD
subgraph "Main Window"
Header[Header: Status Hub]
Search[Body: Search Interface]
Log[Slide Panel: Activity Log]
end
Header -->|Status| Dot[Status Dot]
Header -->|Info| Count[Doc Count]
Header -->|Actions| Config[MCP Config Modal]
Search -->|Input| Input[Search Bar]
Search -->|Output| Results[Result Cards]
Log -->|Real-time| SSE[Tool Invocation Log]
linear-gradient(135deg, #1a1a2e 0%, #16213e 100%)rgba(255, 255, 255, 0.05)、ブラー効果 backdrop-filter: blur(10px)。1px solid rgba(255, 255, 255, 0.1) で光沢感を表現。'Inter', 'Roboto', 'Outfit', sans-serif#4facfe, #00f2fe (アクティブ/リンク)scale: 1.02)。以下は、UI仕様を満たす最小構成のサンプルHTMLです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>TelosDB</title>
<style>
body { font-family: sans-serif; margin: 2em; }
input, button { font-size: 1.1em; margin: 0.2em; }
pre { background: #f4f4f4; padding: 1em; border-radius: 6px; }
</style>
</head>
<body>
<div id="llama-status" style="font-weight:bold; color:green;">llama_server: 起動中</div>
<div id="doc-count" style="font-weight:bold; color:#333;">ドキュメント: 123件</div>
<button onclick="showMcpJson()">mcp.json表示</button>
<button onclick="copyMcpJson()">コピー</button>
<pre id="mcp-json" style="display:none;"></pre>
<h1>TelosDB 検索</h1>
<input id="query" type="text" placeholder="検索ワード" />
<button onclick="search()">検索</button>
<pre id="result"></pre>
<script>
async function showMcpJson() {
const res = await fetch('mcp.json');
const data = await res.json();
const pre = document.getElementById('mcp-json');
pre.textContent = JSON.stringify(data, null, 2);
pre.style.display = 'block';
}
function copyMcpJson() {
const pre = document.getElementById('mcp-json');
if (pre.style.display !== 'none') {
navigator.clipboard.writeText(pre.textContent);
}
}
async function search() {
const q = document.getElementById('query').value;
const res = await fetch('http://127.0.0.1:3001/messages', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'search_text',
params: { content: q, limit: 10 },
id: 1,
}),
});
const data = await res.json();
document.getElementById('result').textContent = JSON.stringify(data.result, null, 2);
}
</script>
</body>
</html>