feat: wire entry point, manifest, property inspectors, and assets
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||
<rect x="4" y="4" width="12" height="12" rx="2" fill="none" stroke="#ffffff" stroke-width="2"/>
|
||||
<rect x="8" y="8" width="4" height="4" fill="#ffffff"/>
|
||||
<path d="M9 1v3M13 1v3M9 16v3M13 16v3M1 9h3M1 13h3M16 9h3M16 13h3" stroke="#ffffff" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 375 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
|
||||
<rect width="72" height="72" fill="#222222"/>
|
||||
<rect x="14" y="14" width="44" height="44" rx="6" fill="none" stroke="#ffffff" stroke-width="4"/>
|
||||
<rect x="30" y="30" width="12" height="12" fill="#ffffff"/>
|
||||
<path d="M32 2v8M40 2v8M32 62v8M40 62v8M2 32h8M2 40h8M62 32h8M62 40h8" stroke="#ffffff" stroke-width="4" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 433 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||
<polyline points="1,10 5,10 7,4 10,16 12,10 19,10" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 239 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
|
||||
<rect width="72" height="72" fill="#222222"/>
|
||||
<polyline points="10,50 22,50 28,30 36,60 42,50 62,50" fill="none" stroke="#ffffff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 291 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56">
|
||||
<polyline points="8,42 20,32 28,38 42,16 48,10" fill="none" stroke="#ffffff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 236 B |
|
After Width: | Height: | Size: 6.8 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
|
||||
<rect width="256" height="256" rx="48" fill="#0e1117"/>
|
||||
<polyline points="40,190 90,150 130,170 190,80 216,60" fill="none" stroke="#3fae5a" stroke-width="14" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle cx="216" cy="60" r="16" fill="#e0453a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 357 B |
|
After Width: | Height: | Size: 26 KiB |
@@ -3,13 +3,33 @@
|
||||
"Name": "llama-watch",
|
||||
"Version": "1.0.0.0",
|
||||
"Author": "Bryce Zuccaro",
|
||||
"Actions": [],
|
||||
"Actions": [
|
||||
{
|
||||
"Name": "In-Flight Monitor",
|
||||
"UUID": "com.bryce.llamawatch.inflight",
|
||||
"Icon": "imgs/actions/inflight/icon",
|
||||
"Tooltip": "Shows whether a model has a request in flight",
|
||||
"PropertyInspectorPath": "ui/inflight.html",
|
||||
"Controllers": ["Keypad"],
|
||||
"States": [{ "Image": "imgs/actions/inflight/key", "ShowTitle": false }]
|
||||
},
|
||||
{
|
||||
"Name": "GPU Graph",
|
||||
"UUID": "com.bryce.llamawatch.gpu",
|
||||
"Icon": "imgs/actions/gpu/icon",
|
||||
"Tooltip": "Live GPU metric graph",
|
||||
"PropertyInspectorPath": "ui/gpu.html",
|
||||
"Controllers": ["Keypad"],
|
||||
"States": [{ "Image": "imgs/actions/gpu/key", "ShowTitle": false }]
|
||||
}
|
||||
],
|
||||
"Category": "llama-watch",
|
||||
"CategoryIcon": "imgs/plugin/category-icon",
|
||||
"CodePath": "bin/plugin.js",
|
||||
"Description": "Monitor llama-swap: in-flight requests per model and live GPU metric graphs.",
|
||||
"Icon": "imgs/plugin/icon",
|
||||
"SDKVersion": 2,
|
||||
"Software": { "MinimumVersion": "6.5" },
|
||||
"Software": { "MinimumVersion": "7.1" },
|
||||
"OS": [{ "Platform": "mac", "MinimumVersion": "13" }],
|
||||
"Nodejs": { "Version": "24" },
|
||||
"UUID": "com.bryce.llamawatch"
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head lang="en">
|
||||
<meta charset="utf-8" />
|
||||
<script src="sdpi-components.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<sdpi-item label="Base URL">
|
||||
<sdpi-textfield setting="baseUrl" value="http://localhost:9292" placeholder="http://host:port" />
|
||||
</sdpi-item>
|
||||
<sdpi-item label="API Key">
|
||||
<sdpi-password setting="apiKey" placeholder="Optional" />
|
||||
</sdpi-item>
|
||||
<sdpi-item label="GPU">
|
||||
<sdpi-select setting="gpuId" datasource="gpus" loading="Loading GPUs…" hot-reload default="all" placeholder="Select a GPU" />
|
||||
</sdpi-item>
|
||||
<sdpi-item label="Metric">
|
||||
<sdpi-select setting="metric" default="util_percent" placeholder="Select a metric">
|
||||
<option value="util_percent">Utilization %</option>
|
||||
<option value="memory_util_percent">VRAM %</option>
|
||||
<option value="temperature">Temperature</option>
|
||||
<option value="power">Power draw</option>
|
||||
<option value="fan">Fan speed</option>
|
||||
</sdpi-select>
|
||||
</sdpi-item>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head lang="en">
|
||||
<meta charset="utf-8" />
|
||||
<script src="sdpi-components.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<sdpi-item label="Base URL">
|
||||
<sdpi-textfield setting="baseUrl" value="http://localhost:9292" placeholder="http://host:port" />
|
||||
</sdpi-item>
|
||||
<sdpi-item label="API Key">
|
||||
<sdpi-password setting="apiKey" placeholder="Optional" />
|
||||
</sdpi-item>
|
||||
<sdpi-item label="Model">
|
||||
<sdpi-select setting="modelId" datasource="models" loading="Loading models…" hot-reload placeholder="Select a model" />
|
||||
</sdpi-item>
|
||||
</body>
|
||||
</html>
|
||||