chore: scaffold llama-watch Stream Deck plugin
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
node_modules/
|
||||||
|
*.streamDeckPlugin
|
||||||
|
.DS_Store
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{ "type": "module" }
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json",
|
||||||
|
"Name": "llama-watch",
|
||||||
|
"Version": "1.0.0.0",
|
||||||
|
"Author": "Bryce Zuccaro",
|
||||||
|
"Actions": [],
|
||||||
|
"Category": "llama-watch",
|
||||||
|
"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" },
|
||||||
|
"OS": [{ "Platform": "mac", "MinimumVersion": "13" }],
|
||||||
|
"Nodejs": { "Version": "24" },
|
||||||
|
"UUID": "com.bryce.llamawatch"
|
||||||
|
}
|
||||||
Generated
+2559
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"name": "llama-watch",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Stream Deck plugin to monitor llama-swap requests and GPU metrics.",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"build": "rollup -c",
|
||||||
|
"watch": "rollup -c -w --watch.onEnd=\"streamdeck restart com.bryce.llamawatch\"",
|
||||||
|
"test": "tsx --test tests/"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@elgato/cli": "^1.8.1",
|
||||||
|
"@rollup/plugin-commonjs": "^28.0.2",
|
||||||
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||||
|
"@rollup/plugin-terser": "^0.4.4",
|
||||||
|
"@rollup/plugin-typescript": "^12.1.2",
|
||||||
|
"@tsconfig/node20": "^20.1.4",
|
||||||
|
"@types/node": "22.13.0",
|
||||||
|
"rollup": "^4.32.1",
|
||||||
|
"tslib": "^2.8.1",
|
||||||
|
"tsx": "^4.19.2",
|
||||||
|
"typescript": "^5.7.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@elgato/streamdeck": "^2.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import commonjs from "@rollup/plugin-commonjs";
|
||||||
|
import nodeResolve from "@rollup/plugin-node-resolve";
|
||||||
|
import terser from "@rollup/plugin-terser";
|
||||||
|
import typescript from "@rollup/plugin-typescript";
|
||||||
|
import path from "node:path";
|
||||||
|
import url from "node:url";
|
||||||
|
|
||||||
|
const isWatching = !!process.env.ROLLUP_WATCH;
|
||||||
|
const sdPlugin = "com.bryce.llamawatch.sdPlugin";
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
input: "src/plugin.ts",
|
||||||
|
output: {
|
||||||
|
file: `${sdPlugin}/bin/plugin.js`,
|
||||||
|
sourcemap: isWatching,
|
||||||
|
sourcemapPathTransform: (relativeSourcePath, sourcemapPath) => {
|
||||||
|
return url.pathToFileURL(path.resolve(path.dirname(sourcemapPath), relativeSourcePath)).href;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
{
|
||||||
|
name: "watch-externals",
|
||||||
|
buildStart: function () {
|
||||||
|
this.addWatchFile(`${sdPlugin}/manifest.json`);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
typescript({ mapRoot: isWatching ? "./" : undefined }),
|
||||||
|
nodeResolve({ browser: false, exportConditions: ["node"], preferBuiltins: true }),
|
||||||
|
commonjs(),
|
||||||
|
!isWatching && terser(),
|
||||||
|
{
|
||||||
|
name: "emit-module-package-file",
|
||||||
|
generateBundle() {
|
||||||
|
this.emitFile({ fileName: "package.json", source: `{ "type": "module" }`, type: "asset" });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export {};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export {};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import streamDeck from "@elgato/streamdeck";
|
||||||
|
|
||||||
|
streamDeck.connect();
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"extends": "@tsconfig/node20/tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"customConditions": ["node"],
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
"module": "ES2022",
|
||||||
|
"moduleResolution": "Bundler"
|
||||||
|
},
|
||||||
|
"include": ["src/**/*.ts"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user