diff --git a/web/src/components/nodes/GpuRow.vue b/web/src/components/nodes/GpuRow.vue new file mode 100644 index 0000000..3de9cc5 --- /dev/null +++ b/web/src/components/nodes/GpuRow.vue @@ -0,0 +1,147 @@ + + + + + + GPU {{ gpu.gpu_id }}: {{ gpu.card }} + sm{{ gpu.compute_cap }} + {{ gpu.temp_c }}°C + {{ gpu.utilization_pct }}% + + + + + + + {{ gpu.vram_used_mb }} / {{ gpu.vram_total_mb }} MB ({{ vramPct }}%) + + + + + + + {{ saveError }} + + + + diff --git a/web/src/components/nodes/NodeCard.vue b/web/src/components/nodes/NodeCard.vue new file mode 100644 index 0000000..5ad0ff3 --- /dev/null +++ b/web/src/components/nodes/NodeCard.vue @@ -0,0 +1,121 @@ + + + + + + + + {{ node.node_id }} + {{ node.agent_url }} + + + + {{ showOllama ? 'Hide Ollama' : 'Ollama' }} + + + {{ showHf ? 'Hide Catalog' : 'Catalog' }} + + + + + + No profile configured for this node. GPU stats are visible; service assignment is disabled. + + + + + + + + + + + + diff --git a/web/src/components/nodes/ServiceBadge.vue b/web/src/components/nodes/ServiceBadge.vue new file mode 100644 index 0000000..93ca73b --- /dev/null +++ b/web/src/components/nodes/ServiceBadge.vue @@ -0,0 +1,81 @@ + + + + + {{ STATE_ICONS[state] ?? '?' }} + {{ serviceName }} + {{ STATE_LABELS[state] ?? state }} + + + +