From c293cdaf931d474149e96d582eaa0fdf7f3f9fca Mon Sep 17 00:00:00 2001 From: guyb Date: Tue, 6 Oct 2026 15:06:49 +0300 Subject: [PATCH 1/2] plugins: add Local LLM Manager 0.4.0 --- plugins/registry.json | 28 ++ plugins/strata/.gitignore | 3 + plugins/strata/AGENTS.md | 84 ++++++ plugins/strata/CLAUDE.md | 4 + plugins/strata/LICENSE | 21 ++ plugins/strata/README.md | 37 +++ plugins/strata/assets/preview-panel.png | Bin 0 -> 144462 bytes plugins/strata/assets/preview-widget.png | Bin 0 -> 5075 bytes plugins/strata/bin/strata-models | 113 ++++++++ plugins/strata/content/Panel.qml | 346 +++++++++++++++++++++++ plugins/strata/content/Widget.qml | 78 +++++ plugins/strata/manifest.json | 72 +++++ plugins/strata/product-manifest.json | 105 +++++++ plugins/strata/service/Main.qml | 113 ++++++++ 14 files changed, 1004 insertions(+) create mode 100644 plugins/strata/.gitignore create mode 100644 plugins/strata/AGENTS.md create mode 100644 plugins/strata/CLAUDE.md create mode 100644 plugins/strata/LICENSE create mode 100644 plugins/strata/README.md create mode 100644 plugins/strata/assets/preview-panel.png create mode 100644 plugins/strata/assets/preview-widget.png create mode 100755 plugins/strata/bin/strata-models create mode 100644 plugins/strata/content/Panel.qml create mode 100644 plugins/strata/content/Widget.qml create mode 100644 plugins/strata/manifest.json create mode 100644 plugins/strata/product-manifest.json create mode 100644 plugins/strata/service/Main.qml diff --git a/plugins/registry.json b/plugins/registry.json index 900f983..c5f23a1 100644 --- a/plugins/registry.json +++ b/plugins/registry.json @@ -1354,6 +1354,34 @@ "desktopWidget" ], "lastUpdated": "2026-10-02" + }, + { + "id": "strata", + "name": "Local LLM Manager", + "version": "0.4.0", + "path": "plugins/strata", + "author": "guyb ", + "summary": "Pick a local model and start or stop it from the bar.", + "description": "Pick a local model and start or stop it from the bar. Finds Strata, TabbyAPI and llama.cpp engines and their models, one port per model.", + "tags": [ + "bar-widget" + ], + "accent": "#8f8378", + "surface": "#101010", + "preview": "assets/preview-widget.png", + "screenshots": [ + "assets/preview-widget.png", + "assets/preview-panel.png" + ], + "manifest": "product-manifest.json", + "manifestSha256": "c0f9626812f2b8e155247286d14d53cfcbf9982f9897bc2a9134335971b1b923", + "official": false, + "tagline": "Pick a local model and start or stop it from the bar.", + "icon": "", + "hosts": [ + "topbarGlyph" + ], + "lastUpdated": "2026-10-06" } ] } diff --git a/plugins/strata/.gitignore b/plugins/strata/.gitignore new file mode 100644 index 0000000..b8eb3e3 --- /dev/null +++ b/plugins/strata/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +*.log +*.tmp diff --git a/plugins/strata/AGENTS.md b/plugins/strata/AGENTS.md new file mode 100644 index 0000000..9441a35 --- /dev/null +++ b/plugins/strata/AGENTS.md @@ -0,0 +1,84 @@ +# Agent guide for the strata plugin + +This folder is a Ryoku shell plugin. If you are an AI agent editing it, follow +every rule below. They are the same rules `ryoku plugin validate` enforces, so +work that breaks one will not install. This file is self-contained: you do not +need any other document to work here. + +## The rules + +R1 Place. A plugin is one folder named after its id. Author it under +`$(xdg-user-dir DOCUMENTS)/ryoku-plugins//` (fallback `~/ryoku-plugins//`); +`ryoku plugin new ` creates it there. Never write into +`~/.local/share/ryoku/plugins/` (the store's install root, receipt-owned) or +`~/.config/quickshell/` (the shipped shell). + +R2 Shape. `manifest.json` at the root; `service/Main.qml` (logic, no UI); +`content/Widget.qml` (the one view); optional `content/Panel.qml` (a bar panel); +`README.md`; `LICENSE`; `assets/preview-widget.png` (a real capture); scripts +only under `bin/` with a shebang and the exec bit. Every extra file listed in +manifest `files`. + +R3 Id. Lowercase `[a-z0-9][a-z0-9-]*`, unique, not a built-in widget id. + +R4 Imports. Only `QtQuick*`, `Quickshell*`, `Ryoku.PluginKit`, +`Ryoku.PluginKit.Singletons`, and files inside the plugin folder. Never +`shell.*`, `Ryoku.Ui*` internals, or a relative import that climbs out of the +folder. + +R5 Settings. Declared in `metadata.settings` (types the bar renders: toggle, +choice, multi, int, text); read through `pluginApi.pluginSettings` behind a +default; written only through `pluginApi.saveSetting(key, value)`. Never edit +`shell.json` or `plugins.json` directly. + +R6 Commands. Every external program the plugin runs is either in its own `bin/` +or listed in `dependencies.commands`. No `sudo`, `doas`, `su`. A privileged +action is allowed only through `pkexec`, only on an explicit click, only when +listed in manifest `capabilities.privileged` (exact command strings) and +explained in README. + +R7 Network. Every host the plugin talks to is listed in +`capabilities.network`. No `curl … | sh`, no downloading and running code. + +R8 Files. Write only under `pluginApi.stateDir` +(`$XDG_STATE_HOME/ryoku/plugins/`), `$XDG_CACHE_HOME/ryoku/plugins/`, or +a temp dir. Never touch `~/.ssh`, `/etc`, shell rc files, or another plugin's +folder. + +R9 Shell. No `sh -c` with a string built from settings or program output +(injection). Pass argv arrays. + +R10 Secrets and binaries. No tokens, keys or credentials in the tree; no +compiled binaries (ELF/Mach-O/.so); scripts only. + +R11 Honesty. `official` is never true for a community plugin. `author` is +`Name `. README says what runs, what it reads, what it writes, and every +privileged/network capability. + +## The workflow + +1. `ryoku plugin new ` scaffolds this folder (already done). +2. Edit: `service/Main.qml` for logic, `content/Widget.qml` for the view, and + `content/Panel.qml` for the bar panel. Capture `assets/preview-widget.png`. +3. `ryoku plugin validate ` and fix every blocking finding (warnings are + advisory but read them). +4. `ryoku plugin add --bar --yes` to install it, then verify it on the bar + and under **QS Bar Settings > Community**. +5. `ryoku plugin share ` ONLY when the user asks to publish. Never share a + plugin unless asked. + +## What the host sets + +Every entry point receives, from the host: `pluginApi` (see below), `s` (a scale +factor), `active`, `density`, and `widthBudget`. Read them; never assign them. + +`pluginApi` exposes: + +- `mainInstance`: the live `service/Main.qml` instance every view shares. +- `pluginSettings`: the resolved settings object; read behind a default. +- `pluginDir`: this plugin's folder. +- `stateDir`: `$XDG_STATE_HOME/ryoku/plugins/`; the only place to write. +- `saveSetting(key, value)`: persist one setting. +- `panelOpen` (bool), `openPanel()`, `closePanel()`, `togglePanel()`: the bar + panel controls (present but inert off the bar). The sanctioned widget click is + `onClicked: pluginApi.togglePanel()`. diff --git a/plugins/strata/CLAUDE.md b/plugins/strata/CLAUDE.md new file mode 100644 index 0000000..3c35c32 --- /dev/null +++ b/plugins/strata/CLAUDE.md @@ -0,0 +1,4 @@ +# CLAUDE.md + +Read `AGENTS.md` in this folder before editing anything here. +It holds every rule this plugin must follow and the full authoring workflow. diff --git a/plugins/strata/LICENSE b/plugins/strata/LICENSE new file mode 100644 index 0000000..d98d35e --- /dev/null +++ b/plugins/strata/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 guyb + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/strata/README.md b/plugins/strata/README.md new file mode 100644 index 0000000..256bee5 --- /dev/null +++ b/plugins/strata/README.md @@ -0,0 +1,37 @@ +# Local LLM Manager + +Bar widget for local model servers. It finds every installed engine and its ready models by itself, +runs one model at a time, and gives each model its own port. + +- **Glyph**: a chip icon (lit while a model runs) and the selected model's name. Click to open the panel. +- **Panel**: models grouped by engine, each with its port; the selected model's address; START / STOP. + +## Engines and models (auto-detected) + +| Engine | Found when | Models | Started as | +|---|---|---|---| +| Strata | `/serve/server.py` exists | every `strata-.json` in it (port from its `"port"`) | `/.venv/bin/python` (or `python3`) `serve/server.py --engine strata --config --port --lazy --idle-unload 900` | +| TabbyAPI | `/run.sh` exists | every finished folder in its `models/` (EXL3) | `run.sh --port --model-name ` | +| llama.cpp | `llama-server` is on the PATH | every `*.gguf` in the GGUF folders (first shard; no mmproj/imatrix) | `llama-server -m --host 127.0.0.1 --port -c 16384` | + +A model with no fixed port gets the next free one from 8081 (skipping ports in use) the first time it +is seen, kept in `ports` under the state dir so it never changes. + +## Settings (QS Bar Settings > Community > Local LLM Manager, group "Paths") + +| Setting | Default | +|---|---| +| Strata folder | `~/Strata` | +| TabbyAPI folder | `~/tabbyAPI` | +| GGUF folders (space-separated) | `~/models` | + +## What it runs, reads, writes + +- `bin/strata-models list` every 5 s (reads the folders above, `ss -ltn` when assigning a port) and + `systemctl --user is-active strata-model.service`. +- On click: `use` writes `current`; `start` stops `strata-model.service` if it runs, then launches the + selected model as that transient user unit with `systemd-run --user` (command lines above); + `stop` stops it. Model servers you started by hand are left alone. +- Nothing to install: the unit is transient, nothing is enabled, nothing starts at login. +- Writes only under `$XDG_STATE_HOME/ryoku/plugins/strata/`. No privileged commands. Network: none + itself; it only shows the local servers' `127.0.0.1` address. diff --git a/plugins/strata/assets/preview-panel.png b/plugins/strata/assets/preview-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..afc83999fdb0ba20409301ca4ef37f6fd5b4c2d3 GIT binary patch literal 144462 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�Td3>&)J_Z^Odcgq{l^@~o~ zbwl?xCu=sN2I7y;y>b8Dy)aC&SOV5eOnI+guADh)u-h*9pZ5I$ZpG||eR7Jzoz7-D zQ$^p&BW_gwXp~_kc3h^voxg=_%&j~R<3Z$v0c|f> z+dJ%j=Q@;#$NtzFE1PWXccWn)<$hhLG<@9K3pZTPe|mjFKiN!^k8QOGEOYDp5D&4s z`BbbqYL@>Z-Hj*$V;dt2$+Khtc`}Al(q7@=X4cliwCC6!96oiCsz1MQKR@annXJ_9 z*w`6F!ZOL^@9_coEMy&aTYG+j@BlG70D z7QCbUKdk(L6T4n!gd3`Z%)V=CX({Zkk@(&Eo`K*s?qf#8ba#3vEmjVl>Oo~C3!gx2 z-@=I&m)j$LwSGNd-JvTdOVO5jJ|sp!N+N9-_7=C>qqer5PEmoW_QP|k4JD>NkxH^C zYj~Y|+w&%=s*0<)wGteI93+W>zL?T>dhpjT>W2+BRm3)nqzM$PO$#~Hl$C^*RBsZZ z+On6TIW@r2GUNvz ziU?fzd$C%DPUQ#mhj(fp&+wm5f5Tu3#(#PnEXSkI1)}W-#!^_FPDvPdj^v;5?+{M8 z9XEsoJ4tv~+_dP66<+Q;5sC4VBUt2zLOeed|1jzyA<-bI;|G`&gd9|Ue8Yu1p3Zl*wTKTH?N{XhsSuAJ;oGBNAHX0m^+_(zsWfo9P+t=divwUqggq-NdJmM zIG1V+Vb8{m>JLedtbS$ApHOLu@JWGHjE;*2Q6sOH0~8#e5hs{w*^uk&E4cG=&IK+Y z@9p*oW^f?C%2rLXS7sRh5Hs$yw}vpK89zBbS>GdIWHw<#l73N+-#hx(k|znOxyK_N5g<)~z*)ctAhuzY)8=b={eZs*w~i473+OA0j4XOOIP>;cq={ zfMszkxcr_yv;U3n1wUF%q(^QUdy%~S=d)4`xp=gf3@nzgP4&%auQ6Gwe&RsRyu z=Kj2V#rmTig*_%c5Ngs6#eOoF_@`P@ImTlD^B30f$;r@d#ykR^0n6{>0o1H_aMz*P zbZGy~?qM|}+!gn;^B&@U*aw2VE2}E&U+zWCt_oq>po;ztFXMu;GO`E@T$n`);X3r4 z#G?g6Lq;@T-0;^{?n)L`*t%?O>=T)pX<*;IdI%RVE%Ag;o_@)zKSKN=;>(JhiY@_SDMrVvl)F{NgtB}(q5l!uT7T1 zo;>>U_(WN?(7?jQ!B~?!lr<;nQ+lDsD<$2jlSxbd&k&{;KJq`CeQsNSd#<9W77Dy_ z=?0o;p##d7%Z%V-G3+L_q9bOPsp#FzW2`z> z`lkAFfHliZR-gQ}0O_>h+Ml1!T93L`u$dIZAF8AnDygV^EE*;__`*_6m;6B4xqC)- z8fFgz(G_>8PT(Vs=u*;hV|$sM+masjQdOxK@$K~TtSxk#!cq}hA!Io z%^Eb7A#Vh%1Y}ebk0er8K;b6aIvwr^U=`|BqzOSE6%SQ(b-Xsz4j_>BTDHU6!shME zu*etUREAD_26Z~uwRj=y0>@YQh-qmI9hUd6%ivq4hOuassSH&&h!^2YYvV5{Ti%)6 zv3S@o!H4OhFpQ@LXz4xGE>+1*mNX@X13LLaZ-$GUtP3le5r5J5Qw@Q*lAgpJy?2)84pt6<=BYV8VomHN469 zhN@vgadZs@cSR{Q!f8Di{k;(DHw;U=+}%j_3)`;*1xT#3(~mV-VV;)oW4s%^c&; zGUY1K)-N?0a~(Lq1*UeVjrppB4ReF=471^!q+FXntQM+gVlqXE{i&L?Y?FCIImZbQ zqC04K<(~26dT5k9iy>hwgypOq_P!VbZ9E!GMjuO|w$Va-`ixv9TZJ^=)g6Cn07VQl z_>Yf`B2;R4lfR)yhcW#mEa?cep*2uujF5Qu%@*ezgxe40ZB>fTsC%#BZ0p>AM$0Vs z39Z9VLBR6LI|*znMH!J!7f!^?d}s*X5qc3*lj`En(VgIx0*V&?7FlZk0~AuXVwD*g zZua~|BUtMmY$Kyhp|qZ}Tln>Nuz_g^eHgPvCEa|SW_QCJwNg7<&t~g5zZpo8)-Iab zc!Vl%G(WtVCZ$?Rwt+CZv9Q8`*((}88Lpd^=!{747jlFqyF7iS2CFVX^yvM7 zBfthFnrS@sow!0vUW0hKG9JKGLGAlIi|O?ak;?Fbhgi@`*sruWYfzf$J6spSmC7n$ z7HEKv34h*ukgiB@GhBkM6v`^Y)$X~V^8abO}XS;gZ&+Wt&Q~b<8FxNTOLQ7fZ|R`sFH#O0O81z708mY)+>9_L{R3L)G}C|9-Vh7K>RFO-k*Q2 z6faNDB~Dd`MrVU~9rPBq^`){Bq-7YKn@i#9>JG!vP$x|)aO?+69B2}fY{(&E)Jv2H z60JirJPS3ak7k$|i8yez>IN?t%!;7Ax)IUf$y~niE+QoVXlp8RrY2D8FCK< zM7=W*%`&rxKP%#*McaiYNeZKh4D-A`tCncO&Y>`%+(5ik@XXRCDD_Eb+3!Yj+)R@y z=|()VNEa1q!9#0njcUdSxC#nWmbI&_Oi*K-ZE3+IKPN|;7G)p_KF%Q&`aECbh;o9O z5+Cv45O`GpDJmRQ3sG%Ykbzo*-ZYE>7Ty%CBjwa($ zluwEh1L(6>@clg&?4BgLJuX9JTdZr(z&>uBC$+u;X$zIW&YA+|{t z_s@}C)_+3Tf)JonbL%O&T`Gx>>hpbJ*kRLy#-Y-=$*v>jR;S!}0xo|gGB{965o8~9 zc^(TbOpd2o<{aW#-|$!#f)`$H^g5nw(TDdp=yK(IM^h zw{I8M&n}xkkgx)6R&j8&T^_bngfg+@CeZoR)XVtPiW3I9nwj4{t&^?t6&)r7fyegZ zit_iMs1I#w3w?H8uuw)9Jdq>wU%?;RBB5iEO2vs48rnmPYlFOHKWF#jr>!v*uJAoW zS&I?T<43p~cYoc32)@01EfuPB{)D2;ABF9Gbq1^X(4tJHs!GaOHs0uKIut!u95M<01{Am*ofm9O5}xk5Nq9S{F@R`Scm9so^?#ebUr^$P}I zTRm$Zw1^_CWKa!Np(yfE=jDEtLCmThvc2@D*JR#zen0^-!=V7WN7xgwNJ#}eKlI#oXVwY@Dq#m=|+B#)^%AjO^hQ= z8xz6OqI-Tjb06;#Qb~qj%kkYhC5#`$)74y@c5yJQ&8NQ)$%N|cAqLRg9@w4xbp`!i zH>YqG?%R;<=U~j@#tMq!iK{fk6xsh-H1HF2j4iF3xy|=Jnnsu^_=pPMY&ajx#VP`i z!-e=cc1!gRpUV07SV%Mdo)uA`klJN&WgNBE+1_rm$&eaSn6nc!&d0j&LG(o;dNpU% zB7XEX$Ju)n^#zk>=ccE`n4c3?PHJFmUb|FM(Qe=jBj=Pe5{hvo(r102%_nR59v8^b!%d#- z`E6~e<9clJ1=#f7I$eOh#Kp~>WQ5ENh~{H;&cF8waP-5;ej=St&|P#=Go(x`pyQp1q`JCX&`G&5AS&3;2mAGMxaxA< zg@bCR6v!s=JDQs=2{iy=)gB9$vXFb4yY5`UxKS`G&v0W_$Zp9OqDu*rwh)Ve4l7i; zp^*pYm~jBpoQ)z6sQ=Prok?0Ya4e7@(y(Sk5uHUVoyGNr?IfE}&jll443!UYn_$=& zwBS#&W`=O1D7(26bfM`r@xIe$c1!7#)G?=>v>{N2w4w|3 zII`-~)MQeUL^zUvP(M_&Rv{{e20g1WDp}{K@9gZ%=>e7}gvAVDhu$=o?w%4oqi9&# zEx-kK^d%H}%SPw+ywt$=q?i`_tNwh~`z`o-7~loK68{H*1HAbi(4T8=BwfTDt)}%6SFzixuby#dJC7nrMIczu=t=Ou8v4!#`gCunmrL)BSGLb1Y7jJx z*n``zF<=XZwx#$fa;KtQtW{o9Gbs9}J4W1n3y;$0pTw)@e6y~H$$EBTc&_NaMS}1m zQk%$hdc6UOyV=yq*4<^cvoYJ6uRlAa^eVMFqyyGFgGJMAOt4*CP;tmxrb02D?^x-^ zZ=en-nnWB6Htzc8N@ZaKL7JpXorY|svk|gfD1-^A_oK?CQW=7O+U#CSVPqayg zbA9k*#UGepf(B%&)*pRJSZoL~8k)8j%=~9B9glGbmc<+_K&Fh$ao-?;<8lTfFp#^` z)wI1T0bEzq>pV|rP+tu_HZea6Us7dzUDyi!9tpl0`%=68mk5k@=mlSyRKaKDc_j>R zUzolcG5@ezyr(Y9lQH*HSO|3iL$17pZhrji3)lKMbIDa{ijO6H%mu?^(8Ina4@Q}D z*4EWdsoeAYcNJb|c7T@XsY%Fi${=JhgAMpL#|;x7#MtzOD36RFg#SgYixaV=o@swi z8fyEArO#ZTkxh=MZa2Ir(SP$*^dhqHV7q1C5aN5HQ{%Ak0y6cDG~xip>x>XE)N8c07Lq>Hn~Q`= z9L-%cY`U}i9yaan>o=~hS$nzQ!7|(d|GhjD&>QRay@PJmC1s#;6wWX@T-P??h*3@= z2)xav?KhA^9pV@sikb0Mu7D<+xd9BT9D6X3jr9Kq=#Y9D1ty42+*$+;&L^EnS+?VD z15l?~(HxZAh|oSoD3oZ~s$|!ZyuSY9#Z}4u8a^s~-6lPAf4W$8InJv#0Hbmum^D>e z62x#Z;1TMuXNe*4TGY`^2;V0_xn&shqM|kB>uA2}&h(&If4JkDqK<2NBupPOBL= zdCoiX{dvx4!G4Q_n%_w1!G*@E0$GF0=!eKr&Qp4g+~20sd|gp%YN+=#W-L~Kw&)a% zHX%~$SJ2s$`R*MT{nzsu3d-}|0po_!$ zsY!5(h-bSbK-ZQes| z5R`@fdBfNL37zBN*TIT+)wu@KK5R8XOEY${oz<=_Bm2MnbnzTj51I9Wt?c;!VHj9z z-^il5VT2QOScaI$zkSch=Wfv+1HgqX+}nAvRoe|k@W0i1zRL}t>2wwrSoNea@;cu- zKDJ3KS|99*Q12m=mEOMLtD5 zT0vqQ1AX(!hgcun1}eYZ38HfN=ni_e_oLBTZl0YcF1HHwV_+l*_&dqw!JVEVy`zu9 zB>8~Py;N`BVKo`vnK5;#g3C zbl*5G{Z!lShu5tD*&S(ZP726pOj@}@+Xo&CU5~({wrzLzCZ*d9?y#4?qHv;rn$X?X zEj?gOP6)pKydgC5c?iYkKr2#7Yks7OFOUf{dpdVVL>Pw21a;1fECpi2VPw(6Lu6m0 z7r!i-JlS2#}{s89h&Up@E4ZXNpBEJ|I z){{hA+$kxdyt1ZuB4hp+lA1muKYw#Nmnoj@+=H?8*L&$jk z?q$5Ha#8EwXmj~5;!XoX}>&bunP*VH`Xzla6Q=wRJtVjX_0 zV&&xI=yzIhGdMOd!?3hSX!y%`UjoCr>YeOB*L|mvrV6;5KJjIKIJGLZpZCo=c)m16 zA!HA!oObq~fD+5XTL973H*fCOPZI7EVG49&KH~m0*M=U+!q-sq%S-bQLZz6IUd&xN(<`YRh6^e9n=nV-aF$F9Eq~ZDr}gIv)9>dn!!mX!e44e>^jwHNK#>& zGU34BS!_4@3dNXbbotFJ38^CcZzhPt8Z3R%hIPh1Z!cIq2}!YoGt{z9{rBtVP$&Ah zqBJ8vDPBSJ1g7!w!LP7m+CWw9Px~G~|MJa|>E^SSR9B&vLU;Ud*4H=2k=NOY6Ws9Z z@uRCvx*rf;Y<$Yd4uj@7$2){17<>^1A$pX+nU&iai?$+BMEv33zRHVU> zz`fU>VjhnwRXA#i>bB&ho#x!SM0MZ)B=U#$cO(lS`2a?#J?XsIbqxx5Ww%44&Z+qvEo%` z2>a)&?$^;!h(2&8@E3yG3?k9%6zZ5MyzRW4;InQ^3$J;p9#7pqowD;esh$k{V<`Fi zN8RtE$!R)_2_P+!H4h3ipVn#xL!1G zT$u3&nX_a`rGEngr%R_$XPqq_jjOgi=j!9t%4Qc2{4#9;tI!*N7wYcDzulh43CNcR z*__#9ZXO=gIclG8(&ftZ)VRU;>{X^o2b~mfbS$`+nzxvf@ox>!)Sh#@UJRj}Hj&+WX@Lk~UDc9#RI$6dFFb&cuwI8%OFM5`*4_N$O zw#YRhASM8P%e%e9X>c*kWOLai$1DPoJl`St*j*M+Xs~yL|CX7V=`eLm?wO_eO2cbp z$0}7pmqo+_M_1+1D*v(>(Z&4qXL<xoB$w@QDns2tKK`=Pp!%_nkG1{V0%BJcHsS zN11LQ$9;w5$1hh#HPHi%g~cUW7E5pMAQLsGBl+5aL|<6zdbj{MMWB>6dDxv4JFo2G zXb_spJTsT%WrS01Q9LWGcu%{PBvZp11^$M#y5zXO<{f`FL9>;Fj=lz!ykt_DpWEx8 z=kD7HS4(_V%j4F;j;adRdC9Se;W9An?=%As?KUNHh>{Ydw zuoK_sw=feWY^xM#OaCm%j46dSLNkjKK#d>SGTm_fncUMB)@J+tUbcxeK_?X@^XPA$ ziWGfY*mM)hW~wcoGzdl5IZ!e6TPm}tr=rRIwwz3&#q&{vV(0vOoRs#%OsqlX3$^lu zFGrh(GjxUb`aBN-_{VtYSOQNR~Phjv$J`cJVCxHX^-?ZBK zGW9vLC}_VYAHc03T*(qd1ub_~0ZkrhM7t9JzUVlGiSh7&v}LJ7%#t_UQ1$!Ha$T>& z4Rm=Qw9X5duMqSe<*|sI?3@$}D?)|*X_jKVS#X4HM;Qz-x{GglJAGyKtj@GDbg|}~ zPg|pmjv;Jck_vZPjt!<$ra9QFUe47oMC~RK0Bt@H8-;sS6spB zuBx}5=bXI@a5>9x-Pn3ON56bNkGN=E!@3N-Vk=XA0syf$McR_PV~d&OsZz0J+nhN1 zs^RYsps$yEPr=QtaQd@UDnj_C38{8+q5_7>&<(EsJVLq1}%ur60 zJm=shJ#yG^y#rpesPe0=Sv&*ofi>n7k`&m*43kTGvpAD$D=FA$HwO#56=ig|ylIpsN~C*%P|U zF_D*7%D}gki1Qgr6T+qB-@iRWY16fC(Yn8VRMd;kUoh&g^x0&il#iQ08Y)|4f~}ft zO|s?Aw3_abqcHPA5Zi22LT*kH5`~%9(cU_DqQ%jvP{fdy`;EMhQZ!n{GMnE1*%+S2 z`MZYY$Ovs+!t$qPVE)z9BZ{cQB#BbQKAP{*bd@K#*0H#ZA^utJbG}SoJo%>fW#045 z9?0k4N0=bVw_oDh!|+QSz;P5y4=HWk^ax0|$tA&XWPS(!gX3Bu&a4m8X-e)P9Cj1Z zg=BVT>Hj@LEUjpXk6{k$O}AEE(!|OUTH$#_R~3AjQ#tZncZ7<<3qS8{xP-ei zofCh*;1{Fe?+UB`0`I=Jwl1K)D0>H3EqXSvm>6`i;IXs)Ou zrs>96w9xcBu18SX@+{*}d^P;YkLmQ)AwRx1z z?(=!vl{0#P;(EB}1e^|IlW~Y%-fqVbEv(69q4BHow-^_wb<+po`#3H#$=E@oz}Y%? zpWx_M{>^u7KeLO-X!*=7IO+{t^rHB&T}DP8;(%k%(K} zPbOxHzA0Rq1A?@HNPGmTY;ihCV+a1ODNJ1T#JYN?oL&4Er{P+7f7*vCeiuc^+@1+XxcunH?23jpfbFC>V7|vT#_+veX^HJLPgwB=3f|mFs%Xz5nw+w*L)i(z|TTk zj$=-e2at|Cw$9Gcv9yvZqEDNnHz_f597r141q^UbI_}tg-xO3iD6<7pB(BH4=indA z@x{R4w3W4y184b9TYrK74v76hg9w3f2NALC&Npfd_#+ZE(LX#R@nkX4r;5Mn$gw&RZwIVR~Sd=V=nAKHWrGWir0e$o&} z5;2@vi*N=F6Bd92|}AI+OCTAmPN=& z?3IL)NM{ON`qG#uwng7Er7PJr^M{BaMT!&tM!<9yFai|Tn*kcdFCRZND;F~k2lDX6 zLLK$p;7!udTIE)Rv+RE65h|L*Lw@2QYxYaiJ|3!aZ+pGmElQP0XGe@PN$Y6Qo;zR& zlVkYR%wVe>Q-nR6zirxgJ(>&avfa#Y0tW)5bp?PR3x{4A79kM`yjPXN?IAdaKRi5a z!>2zycxmfsn~f)zmj20s-j*-Zv;}DWj-pW?-wt&N`K?Ku&~1a`p6UKzx>$e1q^uE= zv_#6u+xd}WnyC^!EdH(%=fq_Ov%HF-V|wT_$c%x){Q!zmYXwSciooIpoj)Ol9&K=V zV%JQ=>kYkqk&55AJP94kK@@$k;&W5ZB)==8(^iQli_=2(T#+pFzj>?d9=`gBp0^mff(JxK*zQNu_~wgq1PX0;jLy*x?{?)HmiNJ@cw&5+ZPKTMs@W6Z zkaKAnutwFyeqOrf7w~#1p?7HYP)yYNB&3{-c>{Z4b0yv;|Bb%3>y9XxQ{-*H9eABX z*?!!3B2eP+f_Gx0?Tt9>k+Fig-^k-@`d?rL?kYr5?PTW+qhSKJMm&RI!wkqigduW>L85wya zrLxv_{8ylHsp!t8zOn=q%!fLs{-WXGvqtsZhCR36=C3=0a^~m9u6k{@5}2F`=9oq@ zCV%6UW|dMAJqu8Ab8M0#VK50%ovli28#%E|b9hv>-8cqhKk$oFkO(36g{?Iz4ZRo& z`=bb7eB(wJdsgQdaUE6h-dj+!DeNrwk$UpvH$oc;&Z+H0Bk7wd{Ub*bz|a>g?A(C@ zP=8TU$^#4ZO~K_b`3&6A@+hR=S%el@%5t0#{iP3fQU~MR%sJhv%N9~%uHvu}-rXp` z>&8-?GD#4uVuY@RO?JYhoGlOeeGfdFJPU`%&8zat`%p_OP+D@By)Z*QB_wyW36hrDhq5%l_YL4NCO~Z55BM8&g|RR(@bBQxkl8}h_s_)>DDmB%|CdcV0C|F@_)-nHvT!+W&VyU zi!9cjBrF7=N&!vR4>fxDzPj`XqrhDrxD^6?&BK|TxFrWeSZH#lz!Oj-PpX@|(VAK9 z@1gDrUB<#S6_nR{nLUk>GstS1lLNW%nCf zyx6I<(dUEvZBtvqP4Mq6fV`PS1~@B>Tu+v^NyZKv0F)XDi%}cqDBM#>#QJrq-7B{-nfuY2sEc(KRm2d zqNu&@jy`@6u1))ES;b=zN%eAzsnZ(KzbhS$nrNP*2n%=^0vY1yU%ym6e%}Q{$?Iwt z0CDyEdzb+f#Ow^Sr|5(2h}=*yS;vrd=q$3nAF?Hby$5mf-<5*@A-n$oxJ)GI`%E7R z=fc@3$sT=R%66AnRR?P!J~#%?!^VpS0v`XBj1WV=&x1Q-5NlI7a>n7(XhdOc z_^BNY6rW%dK;mClA#ZW^wG~ESP>x(pjxGg?P>L&S0DbKu7+T<8nAE7&=e$b3{2MUg z4hbgFao5DL89w!Zi*3c-n%Ov(s-kD$2T5xf&axNYS3;Jdsm0o7(Sh%> ztV##X*{I3m;$Rsp_{ug*sNV*8WXK7$_W@)Lzo`*_fvJMa5N&u0c7Bf6zVetkU7CbQ zQc}lgL$5?Cx)iVExcy@P^YI^II$(ohacQ|2koBE-2!TU0CT)N}1fYn=1Lq}MC&RE% zmk?GOSEP&|RgAoReE+1b9pI4;JIQRCAJa=1${!l~GuY6tP+}(7lYBvA{w>z8W>Ld44=Jak^HivB+VY@Aw0z+^l)7EKsFQJGi~v8qxOK-^1$* zjTZJc#GSv9U>%`o4Z&t-tN47y!?2n-H7_0_XA3YT3c<_rYb?@ixxK<0+#x1H(2!nb z%mEN$8>xWS!ta8q#-x+!gCN^q-L#dCT%Up|LFeg7u>bXL^dp!3K);Ny3-tS3yCygg z!oQWjB3%+zL&bM-EJ^$ZaZG03!bQR@oyMBE;(ZM_j~m-+JqP)2T><%NAt|Q?(^504 zRgI@Hv`KRZ(!0?NtsDVPwB8rk!t?Lr>4^PTkS{c_lD3M(1*+vFj zH;*@%o^Y&5f-602q;#%NM1e{lQY5`KPnirL9~%t~2*P_?Z%hn*4ZBaYqr2>9N@rcq z8w#fa6F6}Nehb=DYB{DgKxt>sOR;6ha3%4a+eT-7VW(f7>Qx*vh*Or6C?9H?Q`szu zS2E(^#!}d^#*MbHk$fNcy6dUbVcQSS9c+70P-s-MkF8{olp+h~s+m_&M3I6gh^$FF zWPl5qyJuP)h&4Db8dTt0##_%KWWdB*P%2x$qMp$m5z#J#r^>3}XtE|~96I{_LxU<< zpZ{CdCr3>TzGv@Mw=e}-JAF5*ENQl!rPZ@b(U;r)TPRcuR%zbpI~&fq?r}&_YQu{E z37MF6ouO#wB!46#iX^JGWrPvxRh`=?vPNkrc~Yi&yK7;MVv|BdE}=~rruW!-%Z#T6 zacZ^WcSdpoL^j-9K|1eo4}nODx^~8lue_eW=GRg2j>ohkkz$fVqNb$4bZHw%eSi;H zh?{lnpp$pqzL$EgV-wR3!E|U&=HVx+D^8ZXZzqKLZrfti>8evZY_LhBgN6xQ} z=Jt)8BdG%=79#v2chICN@N+Y^n>sqU<+QM{_B%vI$9Vix-Q*R;LU!Kna}995Zj2Q z^*gSGb2XOkSRr|t#Kv}()m342L&LCB`z*alEln(CY*Gw-ObZ%`L;+O|c!!yM%V>gn0EwCiJl29BT^j3l!^Tu&j;sW^TW0wHkcCYUUFSod!pZtq^OVO zUj6CMHNKkk9Qfm(#$X4edn!xgILXWPT8<^{<${)4d?%-iv2h= ze84Jy>2#jvDrxo3@@L%}C(XZj0NZvpe0+>&yrKJJZ zh4~*p$ox1nDn-tnn6T|B{W5X2bT3U{x^a#@%tRdYxvoAYL`!&KVX{Jg*bG;X4QeoAm*yH95Wg+PvtE z+o@Z)Dh-xd>66yLMFPAd$e2=)u6m8(jJlPokD=6y(zusCD#k!(cwf$y{V>M^QRGZh z=GdXd)0-jHPQSQ>OpL+9{?Z(qWF>~j%QxUpNwGk$s4qBZvGWyT#ldjw;Nf>pB&pZ` zpe&g3lWidF3cp_?Meex*t`BVIHn!@~hLkuJ{QToE^=AZKAk*PCN~5xoPZS zc|1|Wsvj^$Y6j1i<`sk?!vaz_p2rff#w9gr(Cox!%XD_N7|MfA0ator4z*U=~`7>v&A z34!5GD0yFd=;OK+?jam_(*>KUR^bVk)ei0I6i$+twNjcxkDnLI3j?}I;%|yJ?f;al zj&x(xpqk-ro`e2W;~71n78IaC78~iaP#|ElW5AY?N&hU|XeD3QMumVIArME!G<0}u zs489)_A5ue$^X;(@p0VFdiuE&sS6d(wmM7_`<*<&Dwh&m5l$jbef&_pA=j|B*}kxK zw~{vN7JrtdzzbIvtE!(NhI{6oM<*H0jFtswO<&A}?9Gje#nIgk-IIYUjQaZ5;q%>6 z1dXBb<1Bh_MK(Ds`2|Uxi-yWSRTc8;ObWg%562xoG&M806!PI)`sl3T8N77pa_?9* z#0Dx9lKR7GVq&mQ?$kW(IT*f+fV0c(D}2_Vc%zT7-Q7qLcWmgE3x8s8Fh{tJvQ5vg z9EM-K*R|LFY_)00aF*6%mTqMc(qqdJQ+Nh--J z8c?CQaZP14opWJx`(e&eB;VfsBRAj{5uv?n+)3z%`{3U!io^7#EGB|pAi7m=(oA}- zYdSiGl}u~bH-%uT`hziEOF*}=UDeV(&%l&|VPCjL#u7Y*Vv+^tL1vYbpq$R#t58LJ zO0b^es_>V6MBkglkHq&g!}GTTZ&RwmUvpLux*pkB2eL%$)UfEg6Q7oxvyP*U5SHHQ z?#g&cKBzV=(Gr((pK-vNlSmX=SLyO~5U3KRt_zu)4i9gUkdc z9$u{a%sWHYPk#k8M$mIX zo+uwN4XX+&SegttfwB+Q~@T<79kj564z*-r`+-tg;R$(_1$0u4D+=W0b670RrV&|%9xIS_88(nX%YO*B!pI%pshe}B6s{b$v< zRKs)y9InEG9Z5r>hMw*=e;BeDI0kg%k-G}A&>qr#Ix(j!UMq-8KiY7mp^}(HqLS4J zc8METn+HvBDBRh(Z%;!1ok^eD8D7+1wrE&{`>UbMtFt6unqvELEiyhHor*AZwv( zR%3TN)rdTfNC7n1XZUHMjO?UW14gX!pi{p6T>nqvhS%0UFWSgpt&m$i;tC~Et$1km z)I0c_IHv0-Rc__$tPo7}DkHue86bSGtE;;$8K0a&W_1RP0x!KOu=B~3#C*;rl|$@ul_Ilt z`HWFg74G=H;j$a`$7OEjPWx$*%eRv|u^D%1%3~8OaYw~*^v1IpE$N#mG*VA=g26p&^e?e(L&~)| zif;qkJsLn5zJNYOA`SC8MRRGzBKJ4jct7vrDyr-`k^As=&50^44$#xX62PckVvZU| z71s!+5U}d4@oS~h2r)y0Q#Xt=Wzdp9Q)rTbIQ1<)LrXebaaa}{Ty`sTn~49VjmD}W zHLteg@kPF+|GF8(^|N&3C7V4!oyBcX$n!930-+gA5+4^&ZH@PyI3!*$YT`sGNU$UG z^y1eq38u87PGW_Udt+g?KPI3;T2~ou3dWP70RzQoaf&Qu%8XgVwG>IK=-5ie2cG_W zhpjZidLugwx+3-;h0)561o#3YW9X-vrb(y#;r2XOE*B+cDTdK(Pg{r?gJU?UBWUue zGrK~4C}8F6dvcsM7f(@UH$P-iJlLe)R&(QtQ#S}!p^5z^U(=a5^yO-IBH4&_0|cSI zOpMPILGpy6lgcf3dQU~hj@;xGixM8iCtI$rlj-})Jk>PyaOe!HzSd$HhKfum`HUTs z6l*}p_C&qwMiLJX*V@A_?VHP{hv^7DIA!YSdVZv2+)t>IGm6g+RK+q3uVuR8KE$Hup&aL4uw02HPIr!z3ZHZw*MB31jbYGD zH+{;V4%P}yr)9G-DnkNWyu)t<`==vAy!dh=j(qz+31A12l3A}?It3=F@+lYn;lX7- zHiBsPy_1?Ez?b}37rq|0#$J-PN*#I}lSLR@&He@>8|&CNUQU|eFIwk{Ml)3E*RtYA z%o9%%L90Zt2l#lHkrgEk%`rdPmIaR(D(>3`l}YgGle*xb;aV7E5Koq5Fn&8Om|7)N zU@~U%%#I@AV@90!?sL{F8<|a~z>iT}$Ra*P+S8tFa7tr5MX}&-59~&}?c6NmlI11* zFlzxUUc#TBp@7<_j8GnW5%%H#6{)89$dTKU>N}g-6a7QB!S3VMvu*e-CJ{~sD))(6 zL0Jf4xZgnicx)8E=%?9yYKyd5)Rw9tg~2 z8qtxs=i3m=ZWK{*`l#t~2_{yjt{Db~LRpRWT}W#fab@!3U@#8(%g@xeIA`v7C3KWc zdGINb9*bTHD(|d6UyEQ+N5&2P|Kz9(z$UDmo&(-SPfGXW=5%8kKRz5C5$tN@e2q56 zMBpH#!60$ja%;1$E?!9`k_@dvXHRyUCT!LFHHoMDktM4ga1xW%SB!KTByi5AQi%S6l^MN zv*E??s32OltQez)9^}g5d}VE_yc!8zwU|6gFcq1{(aZaKldIzY6Png*@n=lu=TCa- z=!iCns5bZj4T{8Y=mSJGoR(J{EczXYz#tFPB`pE^*2vNd%T~bW46U|%!Y zhN8dD&O6iY-hNbGF_MX0s?2SXijxn5IfzmLyt zF^1Jo4-n{l+Y(!sX+E^?7o6KO{E;`OIDoM{Lnuq9T*EY1&r$U;3i^RWT%7SO;s-cn z_-+9Tt%>AF%2_Sdfr~@C>@>-g(Sz||IwaTVpz$nHGh=NA3`}>q{YZd3WMr9DOj0W$ zZN-|&Z8Tkty`3yD?RMk|#9=Y$0s)~oJFD~HHMcqL`rIBaNBN~rGqF1U0737JA40%N3w~#WkhAP zzWvw5d?s@|GZ(ih%f1gx5`%*!K9kkAL*N>tCCPuxTdb6xcw+HEnnkHv3V9RWDQ#YJ zh`r}RbaU_YY5161^2`xO_#?R9V#I7d8BVXur$@TP(}*(hKAJIq)?$A5Nw3Kg3eY}8 zVGR`w}pVbP=yhGUNZ)~-%A#@ZyuC45`=f;||R zZSDjn=t}RI&KJV~eOsZ+iS$grL8~AS&ORmTdL3~%K0h5wWhCztzHr3;^}H%%4af%GeAoBi>=Ze}34RO#x_@C~3-bP@Zj>1cztft#W1+3JT}zmajF zKpBx_zO}^E1Z-94T|8_%g);Jb+t0lf?b6a;jS!q*tW69;7Q+`j<$V@&F#(&B@?4>F3v zSR9AqLr6F*&YBZQ=9ta~2%IDmdYMQJu8SZ*N*?Oh_*63#0qidThQV1~J622%{$5Mx zr?k_=8cVQx^*>7_@HIs&CXxew?VR58cG3TG-5v0I&;mmwB1rT}NgPh;?j z9^FpWWn8r2)8bK(wQF4T5pWx%hMt!Clzl6LQA{*y`V?&yEs~8O0G87JyUEYbJ_xKy zft<0jYqxtA_ho`Un<|1a5j~OJaT~INz)lw>7Dw?9b+Helsx-HQwA8LEWtou)tBwPb z(y5z-u3VDR_-}OB3jcgD$K%#lFOzKFM!F9r4FfO!#R>Vy#Go!NoCJ2~KFVJKftwtG zKV$iOi3(zaD@S<{N4A)h1YugusY1AH&6jaWtSCI)Glmo5debizBVcvJ*4_%`oTU93 z6|`8ITe_+5(4kDuO+$2yndk;bfr}mA1Y90vm^GWBqmdQK7TC^5lR1AvgrRKU)+85E zePSdK{~IkpFHZ&%ALkb{5W1IVt2oJAir7lzJtC3gFRzFmPP7 zROb>3|Lfs4P!!SYDS9^;#ZR&03(m>(WNxrfuu!97l7|O6gP)|8t+C{-3B9SC`g2X; zCrATGO4RD)w8;EE8!1Fse+qU zsfZQ)`zpzw43)VUI3@bhT&%^u#FVpCZ$zz|B<9x`c>5&DpbvE|mlTJ3f)z{9z-g+m zCHL|_RfY7aBOI4fFTxwN;xNel>@>~meYo^N^}cF&Tha&EruUvOA<4s$m1I&HM~gt8 z1~4{ieB|e787EtI3!NfmRpwlgz|$&BWM{;IY%6K{TT>-;8BX9(&dp_{;wqoO(C=_& zi9Z>@{J&Gaeg`s-0pGBlWRQFYoq}i(EUhMiBsyBFQ9|pMFHRUdT7T1tmdl=JE39t@ zAMZ|ROi=aLe#xFOeR3dJDdTLio(E(+1{Up7uJ0Pv%*MadN<4MGdJyw%IV$}lolJe< zCJuVO&GR|Ccr(2_t{=1H&V2uwFFT#J5EARdUqs|Odr%@B&lu5ZTRW)}NJ@|1-~|D( zo48P_pdsTc=3=1`^b9N%#HKtbn^CLNM{s==yeqh}Ry9zkqH|~>VKQ;tf?<~{4G#R9 zk+m6ZU zNVKztz=yW?XQ=xxzYIE z@o>h+g6c!-FAj%OCqy;&9L3{W^eG(dK)DAXxnN9G9E`>iDLqtIH=7pG9QrOvzzeX+Grq@YQXEbF4ez%0%8!K3*vq?snHnIyT8Y zAwwcp#Wf-ftv@&jSruNM;Iyh@e(U?UN5-s*Mduob+qE_HxVk5{7cC2cJ-BzczE5Z> znf{SIfa%Kc>(@$Np(b_Aw|jPsokBUXKH^V3_z31rEw#ho9W>4f^}kqw0**s1Jsc1^ z4Rm&^%$#tOS#;(Up_XdWVm)*aaHk}QM12?fLf%D?Aoj$7E(U17#Ga-9#kipg`5@3T z4rqut88}7-L4LtkdG7J;A7^C>)#r@9>okhPZzu4-QPxcE-01Vp1fK<;X3R!MOZ6kk zdNwCeY<4%E&y8#3S};}`p|U(NsLpMdD(tL7p{If0?Zu<)IPVj0q0!6Asyf_Q6Wrq_ zseU-)kl$6%@TcY>Vp!QwBPeW^_0gtU`*maFDjlXX3?|DKh}k8V`G$i3Ii_Ok}) zNi=M#h--+XL2Yg&(T?LPu#S6tDmM&X>NV+xa(c7=NL;E$~2=f$gQAJk^;GC#BJPolBQKKu~d$ zlXE0=&O%B9FG)^T(dajcnLV^1hH&r)M2Gf%{DfYlZ{VJzIqV;M6^s+KH$yN z+NjrVI>~EL#{6xuK)wHWrnMWCzqS#ERM1y}1U_122#at&t@2q&YV^~C_x)aNZk^9Qz6)I>*%^BqnD*NH}qga^I zttm+G&Zh|22bnw$Wh%vJ#FH9RWhwV!E-UQA7EtNPF+lJ%3hCB(u@K%Nb@=W)XK(== z0jBD?m6gJRV6IEpbT&gG2Ar=&#HIc^I=oz2H%QIANLqdA9&jD&VI|ob+Ff?A5oal1 z?3f|eSjtUnI;~TLgMi8woMGat(Ku58dzYL+=86;Nug?ZuRGQtk0xdTG_nJHWH=m+% z;R*gbMI@ZCQ64yJqA1RQVFx6cH^GZ!Y48UVoj-4h2!^3(|{s$`nBBAjEI59I14y2*-h&-F0n}WGCuDh zUUgL7{q67c!Zbu=N_1qtFi55R##*@7OB_ZC^%rQfj$x1l5k$+eB(+qqlQgVnq3GIa zQ02Lx4mh;d>{$itcIb>)oxkYu*`4O(MongAsb@#Aeb+hZFMO9n$EzXD2pfQ1y|kL1 znspU137Z=_oG3LLL5o`gWMr03DErSS5VJsHM{pK9&=IFT{eR=;fS%3y_x*NXx!ruFbYKXuB@PJDPyH0(1FDw$w6$!zi z3w4iYw~lJya)Xi^B7tZg6Uk8_t4;jmG8=Ru6n8&`Y4z0U8HIZ$G)>0Kg95INl9cB3 zln7_z9dDV#0>$2N`|prbbG>=do1qL9se?_fL&_Z;ST3ȥSEt9J?NAHxZUWbroC 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 literal 0 HcmV?d00001 diff --git a/plugins/strata/bin/strata-models b/plugins/strata/bin/strata-models new file mode 100755 index 0000000..7ef0795 --- /dev/null +++ b/plugins/strata/bin/strata-models @@ -0,0 +1,113 @@ +#!/bin/sh +# Finds every installed engine and its ready models; one model runs at a time, as the transient +# user unit strata-model.service (systemd-run; nothing to install, nothing starts at login). +# +# strata-models list one "keyenginelabelportunitpath" line per model +# strata-models current print the selected model key ("engine:name"), or nothing +# strata-models use select a model; restarts the server if one is running +# strata-models start start the selected model (stops the previous one) +# strata-models run select a model and start it +# strata-models stop stop the running model +# +# Engines: Strata ($STRATA_DIR, default ~/Strata), TabbyAPI ($TABBY_DIR, default ~/tabbyAPI), +# llama.cpp (llama-server on the PATH; *.gguf in $GGUF_DIRS, space-separated, default ~/models). +home() { case "$1" in "~") echo "$HOME" ;; "~/"*) echo "$HOME/${1#\~/}" ;; *) echo "$1" ;; esac; } +strata=$(home "${STRATA_DIR:-$HOME/Strata}") +tabby=$(home "${TABBY_DIR:-$HOME/tabbyAPI}") +gguf_dirs=$(for g in ${GGUF_DIRS:-$HOME/models}; do home "$g"; done) +unit=strata-model.service + +# a stable port per model, kept in /ports ("key port"); skips ports already taken or in use +port_for() { # key state [fixed] + [ -n "$3" ] && { echo "$3"; return; } + p=$(awk -v k="$1" '$1 == k { print $2 }' "$2/ports" 2>/dev/null) + [ -n "$p" ] && { echo "$p"; return; } + used=$( { cat "$strata"/strata-*.json 2>/dev/null | sed -n 's/.*"port": *\([0-9]*\).*/\1/p' + awk '{ print $2 }' "$2/ports" 2>/dev/null + ss -Hltn 2>/dev/null | awk '{ n = split($4, a, ":"); print a[n] }'; } | sort -u) + p=8081 + while echo "$used" | grep -qx "$p"; do p=$((p + 1)); done + mkdir -p "$2" && echo "$1 $p" >> "$2/ports" + echo "$p" +} + +row() { # key engine label port path + printf '%s\t%s\t%s\t%s\t%s\t%s\n' "$1" "$2" "$3" "$4" "$unit" "$5" +} + +list() { # state + if [ -f "$strata/serve/server.py" ]; then + for f in "$strata"/strata-*.json; do + [ -e "$f" ] || continue + n=$(basename "$f" .json | sed 's/^strata-//') + fixed=$(sed -n 's/.*"port": *\([0-9]*\).*/\1/p' "$f" | head -n 1) + row "strata:$n" Strata "$n" "$(port_for "strata:$n" "$1" "${fixed:-8081}")" "$f" + done + fi + if [ -x "$tabby/run.sh" ]; then + for d in "$tabby"/models/*/; do + d=${d%/} + # a finished download: config and shards present, none still partial in hf's cache + [ -f "$d/config.json" ] && ls "$d"/*.safetensors >/dev/null 2>&1 || continue + ls "$d"/.cache/huggingface/download/*.incomplete >/dev/null 2>&1 && continue + n=$(basename "$d") + row "tabby:$n" TabbyAPI "$(echo "$n" | sed 's/[-_.]exl3.*//I')" "$(port_for "tabby:$n" "$1")" "$d" + done + fi + if command -v llama-server >/dev/null; then + for g in $gguf_dirs; do + for f in "$g"/*.gguf; do + [ -e "$f" ] || continue + n=$(basename "$f" .gguf) + case "$n" in *mmproj*|*imatrix*) continue ;; *-0000[2-9]-of-*|*-000[1-9][0-9]-of-*) continue ;; esac + row "llama:$n" llama.cpp "$(echo "$n" | sed 's/\.i1-.*//; s/-00001-of-.*//')" "$(port_for "llama:$n" "$1")" "$f" + done + done + fi + return 0 +} + +current() { # state + k=$(cat "$1/current" 2>/dev/null) || return 0 + case "$k" in *:*) echo "$k" ;; ?*) echo "strata:$k" ;; esac # older files hold a bare Strata name +} +lookup() { list "$2" | awk -F '\t' -v k="$1" '$1 == k'; } + +start() { # state + k=$(current "$1") + [ -n "$k" ] || { echo "no model selected" >&2; exit 2; } + r=$(lookup "$k" "$1") + [ -n "$r" ] || { echo "model not ready" >&2; exit 2; } + port=$(echo "$r" | cut -f4); path=$(echo "$r" | cut -f6) + systemctl --user stop "$unit" 2>/dev/null + systemctl --user reset-failed "$unit" 2>/dev/null + set -- systemd-run --user --unit="$unit" --collect --property=Restart=on-failure + case "$k" in + strata:*) + py="$strata/.venv/bin/python"; [ -x "$py" ] || py=python3 + "$@" --working-directory="$strata" -- "$py" "$strata/serve/server.py" --engine strata \ + --config "$path" --port "$port" --lazy --idle-unload 900 ;; + tabby:*) + "$@" --working-directory="$tabby" -- "$tabby/run.sh" --port "$port" --model-name "$(basename "$path")" ;; + llama:*) + "$@" --working-directory="$HOME" -- llama-server -m "$path" --host 127.0.0.1 --port "$port" -c 16384 ;; + esac +} + +case "$1" in +list) list "$2" ;; +current) current "$2" ;; +use) + case "$2" in ''|*[!A-Za-z0-9._:-]*) echo "bad model key" >&2; exit 2 ;; esac + [ -n "$(lookup "$2" "$3")" ] || { echo "no such model" >&2; exit 2; } + mkdir -p "$3" && echo "$2" > "$3/current" + if systemctl --user is-active --quiet "$unit"; then start "$3"; fi ;; +start) start "$2" ;; +run) + case "$2" in ''|*[!A-Za-z0-9._:-]*) echo "bad model key" >&2; exit 2 ;; esac + [ -n "$(lookup "$2" "$3")" ] || { echo "no such model" >&2; exit 2; } + mkdir -p "$3" && echo "$2" > "$3/current" + start "$3" ;; +stop) systemctl --user stop "$unit" 2>/dev/null ;; +*) echo "usage: $0 list|current|use|start|run|stop (see the header)" >&2; exit 2 ;; +esac diff --git a/plugins/strata/content/Panel.qml b/plugins/strata/content/Panel.qml new file mode 100644 index 0000000..2c02db1 --- /dev/null +++ b/plugins/strata/content/Panel.qml @@ -0,0 +1,346 @@ +import QtQuick +import Ryoku.PluginKit +import Ryoku.PluginKit.Singletons + +// Panel: models grouped by engine, each with its own start/stop; the selected model's address and +// a start/stop for it at the bottom. Starting any model stops the others (one at a time). +Item { + id: root + + property var pluginApi + property string density: "full" + property real s: 1 + property real widthBudget: 360 + property bool active: false + + readonly property var service: pluginApi ? pluginApi.mainInstance : null + readonly property bool on: service ? service.running : false + readonly property bool busy: service ? service.busy : false + readonly property string st: service ? service.state : "unknown" + readonly property var sel: service ? service.selected : null + + implicitWidth: root.widthBudget + implicitHeight: col.implicitHeight + 32 * root.s + + onActiveChanged: if (active && service) service.refresh() + + // a status dot: lit while running, pulsing while starting/stopping, hollow when idle + component Dot: Rectangle { + id: dot + property bool lit: false + property bool pulse: false + width: 7 * root.s + height: 7 * root.s + radius: width / 2 + color: lit ? Theme.accent : "transparent" + border.width: lit ? 0 : 1.5 * root.s + border.color: Theme.faint + SequentialAnimation on opacity { + running: dot.pulse + loops: Animation.Infinite + onRunningChanged: if (!running) dot.opacity = 1 + NumberAnimation { to: 0.25; duration: Motion.pulse } + NumberAnimation { to: 1; duration: Motion.pulse } + } + } + + Column { + id: col + x: 16 * root.s + y: 16 * root.s + width: root.width - 32 * root.s + spacing: 14 * root.s + + // header: title, the selected model's address, overall state + Item { + width: col.width + height: Math.max(head.implicitHeight, pill.height) + + Row { + id: head + spacing: 10 * root.s + anchors.verticalCenter: parent.verticalCenter + + GlyphIcon { + anchors.verticalCenter: parent.verticalCenter + width: 22 * root.s + height: 22 * root.s + name: "cpu" + color: root.on ? Theme.accent : Theme.iconDim + Behavior on color { ColorAnimation { duration: Motion.standard } } + } + Column { + anchors.verticalCenter: parent.verticalCenter + spacing: 1 * root.s + Text { + text: "Local models" + color: Theme.bright + font.family: Theme.display + font.pixelSize: 18 * root.s + } + Text { + text: root.sel ? root.sel.engine + " · 127.0.0.1:" + root.sel.port : "no model selected" + color: Theme.faint + font.family: Theme.mono + font.pixelSize: 10.5 * root.s + } + } + } + + Rectangle { + id: pill + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + width: pillRow.implicitWidth + 16 * root.s + height: pillRow.implicitHeight + 8 * root.s + radius: height / 2 + color: root.on ? Theme.threadBg : "transparent" + border.width: 1 + border.color: root.on ? Theme.accent : Theme.border + + Row { + id: pillRow + anchors.centerIn: parent + spacing: 6 * root.s + Dot { + anchors.verticalCenter: parent.verticalCenter + width: 6 * root.s + height: 6 * root.s + lit: root.on + pulse: root.busy + } + Text { + anchors.verticalCenter: parent.verticalCenter + text: root.st === "activating" ? "starting" + : root.st === "deactivating" ? "stopping" + : root.on ? "running" : root.st === "failed" ? "failed" : "idle" + color: root.on ? Theme.accent : root.st === "failed" ? Theme.verm : Theme.dim + font.family: Theme.mono + font.pixelSize: 10.5 * root.s + } + } + } + } + + Rectangle { width: col.width; height: 1; color: Theme.hair } + + // one group per detected engine + Column { + width: col.width + spacing: 14 * root.s + + Repeater { + model: root.service ? root.service.engines : [] + delegate: Column { + id: group + required property string modelData + readonly property var rows: root.service ? root.service.models.filter(m => m.engine === modelData) : [] + readonly property string est: root.service ? root.service.engineState(modelData) : "unknown" + width: col.width + spacing: 6 * root.s + + Item { + width: group.width + height: Math.max(eyebrow.implicitHeight, meta.implicitHeight) + MicroLabel { + id: eyebrow + anchors.verticalCenter: parent.verticalCenter + label: group.modelData + s: root.s + } + Text { + id: meta + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + text: (group.est === "active" ? "running · " : group.est === "failed" ? "failed · " : "") + + group.rows.length + (group.rows.length === 1 ? " model" : " models") + color: group.est === "active" ? Theme.accent : group.est === "failed" ? Theme.verm : Theme.faint + font.family: Theme.mono + font.pixelSize: 10 * root.s + } + } + + Repeater { + model: group.rows + delegate: Rectangle { + id: rowItem + required property var modelData + readonly property bool sel: root.service && root.service.current === modelData.key + readonly property bool live: root.service ? root.service.isRunning(modelData.key) : false + width: group.width + height: 44 * root.s + radius: Motion.rSmall * root.s + color: sel ? Theme.threadBg : (pickArea.containsMouse ? Theme.sheen : "transparent") + border.width: 1 + border.color: live ? Theme.accent : sel ? Theme.lineStrong : Theme.hair + opacity: root.busy && !sel ? 0.55 : 1 + Behavior on color { ColorAnimation { duration: Motion.fast } } + Behavior on border.color { ColorAnimation { duration: Motion.fast } } + + MouseArea { + id: pickArea + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + enabled: !root.busy + onClicked: if (root.service) root.service.pick(rowItem.modelData.key) + } + + Dot { + id: rowDot + x: 14 * root.s + anchors.verticalCenter: parent.verticalCenter + lit: rowItem.live + pulse: rowItem.sel && root.busy + border.color: rowItem.sel ? Theme.accent : Theme.faint + } + + Column { + anchors.left: rowDot.right + anchors.leftMargin: 12 * root.s + anchors.right: go.left + anchors.rightMargin: 10 * root.s + anchors.verticalCenter: parent.verticalCenter + spacing: 2 * root.s + Text { + width: parent.width + text: rowItem.modelData.label + color: rowItem.sel ? Theme.bright : Theme.dim + font.family: Theme.mono + font.pixelSize: 12.5 * root.s + elide: Text.ElideRight + } + Text { + width: parent.width + text: ":" + rowItem.modelData.port + (rowItem.live ? " · running" : "") + color: rowItem.live ? Theme.accent : Theme.faint + font.family: Theme.mono + font.pixelSize: 10 * root.s + elide: Text.ElideRight + } + } + + // this model's own start / stop + Rectangle { + id: go + anchors.right: parent.right + anchors.rightMargin: 9 * root.s + anchors.verticalCenter: parent.verticalCenter + width: 28 * root.s + height: 28 * root.s + radius: width / 2 + color: goArea.pressed ? Theme.vermDeep + : goArea.containsMouse ? (rowItem.live ? Theme.sheen : Theme.accent) + : "transparent" + border.width: 1 + border.color: rowItem.live || goArea.containsMouse ? Theme.accent : Theme.border + Behavior on color { ColorAnimation { duration: Motion.fast } } + + GlyphIcon { + anchors.centerIn: parent + width: 12 * root.s + height: 12 * root.s + name: rowItem.live ? "stop" : "play" + color: goArea.containsMouse && !rowItem.live ? Theme.cardBot + : rowItem.live ? Theme.accent : Theme.dim + } + MouseArea { + id: goArea + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + enabled: !root.busy + onClicked: if (root.service) root.service.toggleModel(rowItem.modelData.key) + } + } + } + } + } + } + + Text { + visible: root.service && root.service.models.length === 0 + text: "No models found yet." + color: Theme.faint + font.family: Theme.font + font.pixelSize: 12 * root.s + } + } + + Rectangle { width: col.width; height: 1; color: Theme.hair } + + // the selected model's OpenAI-style address (selectable, to copy) + Column { + width: col.width + spacing: 4 * root.s + visible: root.sel !== null + MicroLabel { label: "Address"; s: root.s } + TextInput { + width: parent.width + readOnly: true + selectByMouse: true + text: root.sel ? "http://127.0.0.1:" + root.sel.port + "/v1" : "" + color: root.on ? Theme.bright : Theme.dim + selectionColor: Theme.accent + selectedTextColor: Theme.cardBot + font.family: Theme.mono + font.pixelSize: 12 * root.s + } + } + + // start / stop the selected model + Rectangle { + id: action + width: col.width + height: 38 * root.s + radius: Motion.rSmall * root.s + color: root.on ? (area.containsMouse ? Theme.sheen : "transparent") + : (area.pressed ? Theme.vermDeep : area.containsMouse ? Theme.vermLit : Theme.accent) + border.width: root.on ? 1 : 0 + border.color: Theme.lineStrong + opacity: root.busy || !root.sel ? 0.6 : 1 + Behavior on color { ColorAnimation { duration: Motion.fast } } + + Row { + anchors.centerIn: parent + spacing: 8 * root.s + GlyphIcon { + anchors.verticalCenter: parent.verticalCenter + width: 14 * root.s + height: 14 * root.s + name: root.on ? "stop" : "play" + color: root.on ? Theme.bright : Theme.cardBot + visible: !root.busy + } + Text { + anchors.verticalCenter: parent.verticalCenter + text: root.st === "activating" ? "STARTING…" + : root.st === "deactivating" ? "STOPPING…" + : root.on ? "STOP SERVER" : "START SELECTED" + color: root.on ? Theme.bright : Theme.cardBot + font.family: Theme.mono + font.pixelSize: 11.5 * root.s + font.weight: Font.DemiBold + font.letterSpacing: 1.6 * root.s + } + } + MouseArea { + id: area + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + enabled: !root.busy && root.sel !== null + onClicked: if (root.service) root.service.toggle() + } + } + + Text { + width: col.width + wrapMode: Text.WordWrap + text: "One model runs at a time: starting one stops the others." + color: Theme.faint + font.family: Theme.font + font.pixelSize: 11 * root.s + } + } +} diff --git a/plugins/strata/content/Widget.qml b/plugins/strata/content/Widget.qml new file mode 100644 index 0000000..6a3cbd7 --- /dev/null +++ b/plugins/strata/content/Widget.qml @@ -0,0 +1,78 @@ +import QtQuick +import Ryoku.PluginKit +import Ryoku.PluginKit.Singletons + +// Bar glyph: chip icon with a status dot, then the selected model's name. +Item { + id: root + + property var pluginApi + property var screen + property bool active: false + property string density: "glyph" + property real s: 1 + property real widthBudget: 0 + + readonly property var service: pluginApi ? pluginApi.mainInstance : null + readonly property bool on: service ? service.running : false + readonly property bool busy: service ? service.busy : false + + implicitWidth: row.implicitWidth + implicitHeight: Math.max(row.implicitHeight, 18 * root.s) + + Row { + id: row + anchors.verticalCenter: parent.verticalCenter + spacing: 6 * root.s + + Item { + anchors.verticalCenter: parent.verticalCenter + width: 15 * root.s + height: 15 * root.s + + GlyphIcon { + anchors.fill: parent + name: "cpu" + color: root.on ? Theme.accent : Theme.iconDim + Behavior on color { ColorAnimation { duration: Motion.standard } } + } + // status dot, bottom-right of the icon + Rectangle { + id: dot + width: 6 * root.s + height: 6 * root.s + radius: width / 2 + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: -1 * root.s + color: root.on ? Theme.accent : Theme.ghost + border.width: 1 + border.color: Theme.cardBot + SequentialAnimation on opacity { + running: root.busy + loops: Animation.Infinite + onRunningChanged: if (!running) dot.opacity = 1 + NumberAnimation { to: 0.25; duration: Motion.pulse } + NumberAnimation { to: 1; duration: Motion.pulse } + } + } + } + + Text { + anchors.verticalCenter: parent.verticalCenter + text: root.service && root.service.selected ? root.service.selected.label : "models" + color: root.on ? Theme.bright : Theme.dim + font.family: Theme.mono + font.pixelSize: 12 * root.s + elide: Text.ElideRight + width: root.widthBudget > 0 ? Math.min(implicitWidth, root.widthBudget - 21 * root.s) : implicitWidth + Behavior on color { ColorAnimation { duration: Motion.standard } } + } + } + + MouseArea { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onClicked: if (root.pluginApi) root.pluginApi.togglePanel() + } +} diff --git a/plugins/strata/manifest.json b/plugins/strata/manifest.json new file mode 100644 index 0000000..a415002 --- /dev/null +++ b/plugins/strata/manifest.json @@ -0,0 +1,72 @@ +{ + "id": "strata", + "name": "Local LLM Manager", + "version": "0.4.0", + "author": "guyb ", + "description": "Pick a local model and start or stop it from the bar. Finds Strata, TabbyAPI and llama.cpp engines and their models, one port per model.", + "license": "MIT", + "official": false, + "hosts": [ + "topbarGlyph" + ], + "entryPoints": { + "main": "service/Main.qml", + "content": "content/Widget.qml", + "panel": "content/Panel.qml" + }, + "panel": { + "width": 360 + }, + "files": [ + "bin/strata-models", + "assets/preview-widget.png" + ], + "capabilities": { + "densities": [ + "glyph", + "compact" + ], + "network": [ + "127.0.0.1" + ] + }, + "defaults": { + "host": "topbarGlyph", + "label": "Local LLM Manager" + }, + "dependencies": { + "commands": [ + "systemctl", + "systemd-run", + "ss" + ] + }, + "metadata": { + "settings": [ + { + "key": "strataDir", + "type": "text", + "label": "Strata folder", + "group": "Paths", + "default": "~/Strata", + "placeholder": "~/Strata" + }, + { + "key": "tabbyDir", + "type": "text", + "label": "TabbyAPI folder", + "group": "Paths", + "default": "~/tabbyAPI", + "placeholder": "~/tabbyAPI" + }, + { + "key": "ggufDirs", + "type": "text", + "label": "GGUF folders (space-separated)", + "group": "Paths", + "default": "~/models", + "placeholder": "~/models ~/llm/gguf" + } + ] + } +} diff --git a/plugins/strata/product-manifest.json b/plugins/strata/product-manifest.json new file mode 100644 index 0000000..2e8a04c --- /dev/null +++ b/plugins/strata/product-manifest.json @@ -0,0 +1,105 @@ +{ + "schema": 1, + "id": "strata", + "category": "plugins", + "version": "0.4.0", + "destination": "ryoku/plugins/strata", + "files": [ + { + "source": ".gitignore", + "destination": ".gitignore", + "sha256": "379dfa9273952c08fa44042de676ed4addc26a7c4d4c90235d6ff2c73dffb810", + "mode": "0644", + "size": 22, + "install": true + }, + { + "source": "AGENTS.md", + "destination": "AGENTS.md", + "sha256": "0e08c37084d75f2911aa191bc73f3acf9744a9cd52604c556f96608bbf7a6894", + "mode": "0644", + "size": 3955, + "install": true + }, + { + "source": "CLAUDE.md", + "destination": "CLAUDE.md", + "sha256": "09ffb8ebdb8adf50bf4bde26dfe2109b4af3a4a8cc3f30cc536be42bb912c033", + "mode": "0644", + "size": 152, + "install": true + }, + { + "source": "LICENSE", + "destination": "LICENSE", + "sha256": "06181c521ca2a124453c1db837e83a0c076ccb465b6df225d8ad2376c5bfb20f", + "mode": "0644", + "size": 1061, + "install": false + }, + { + "source": "README.md", + "destination": "README.md", + "sha256": "56ad9ad18147ed3dbb2774f6ba0d3e0432a1899ce4534183c66595cb22ac2f88", + "mode": "0644", + "size": 2170, + "install": false + }, + { + "source": "assets/preview-panel.png", + "destination": "assets/preview-panel.png", + "sha256": "b2ad3f921d3f9cb782b8e0130d649ba5414e99efadb03e4360edfabfaa6c9b12", + "mode": "0644", + "size": 144462, + "install": false + }, + { + "source": "assets/preview-widget.png", + "destination": "assets/preview-widget.png", + "sha256": "3ada94879c01839c1a4baf29b1b51a1e5ec696a7f674b28d0c85e893ce513f08", + "mode": "0644", + "size": 5075, + "install": false + }, + { + "source": "bin/strata-models", + "destination": "bin/strata-models", + "sha256": "c0e9dc5417e424ce05dca1eb61f93203ee737b27df56371ef87e426a484c2d9e", + "mode": "0755", + "size": 5313, + "install": true + }, + { + "source": "content/Panel.qml", + "destination": "content/Panel.qml", + "sha256": "37a7dffed499a0c95392d201a1d15f2ab7f0bf8b89b91297f0baab209c2fa927", + "mode": "0644", + "size": 15317, + "install": true + }, + { + "source": "content/Widget.qml", + "destination": "content/Widget.qml", + "sha256": "6f72d1d6e42efef0c5d38415278d3538d5eabebb3c853a7f5ba50e151e1dca62", + "mode": "0644", + "size": 2718, + "install": true + }, + { + "source": "manifest.json", + "destination": "manifest.json", + "sha256": "bfa159a4299775ec7bf90851a9b2f0cba75cdeb98356103f2871e98e41c5dbec", + "mode": "0644", + "size": 1549, + "install": true + }, + { + "source": "service/Main.qml", + "destination": "service/Main.qml", + "sha256": "e846230a44d906bd4b434377fbee09272693c9041d2baefdbd3c25447151866a", + "mode": "0644", + "size": 4538, + "install": true + } + ] +} diff --git a/plugins/strata/service/Main.qml b/plugins/strata/service/Main.qml new file mode 100644 index 0000000..a0aec3f --- /dev/null +++ b/plugins/strata/service/Main.qml @@ -0,0 +1,113 @@ +pragma ComponentBehavior: Bound + +import QtQuick +import Quickshell.Io + +// Finds every installed engine (Strata, TabbyAPI, llama.cpp) and its ready models through +// bin/strata-models, polls their user units, and starts/stops the selected model (one at a time). +Item { + id: svc + + property var pluginApi + readonly property string bin: pluginApi ? pluginApi.pluginDir + "/bin/strata-models" : "" + readonly property string stateDir: pluginApi ? pluginApi.stateDir : "" + readonly property var settings: pluginApi && pluginApi.pluginSettings ? pluginApi.pluginSettings : ({}) + // where the script looks for engines and models (the manifest's Paths settings) + readonly property var env: ({ + STRATA_DIR: settings.strataDir || "~/Strata", + TABBY_DIR: settings.tabbyDir || "~/tabbyAPI", + GGUF_DIRS: settings.ggufDirs || "~/models" + }) + onEnvChanged: refresh() + + property var models: [] // [{ key, engine, label, port, unit }] + property string current: "" // selected model key, "engine:name" + property string state: "unknown" // the "most active" systemctl is-active result across units + property var unitStates: ({}) // unit -> systemctl is-active result + readonly property var engines: models.reduce((a, m) => a.includes(m.engine) ? a : a.concat([m.engine]), []) + readonly property var units: ["strata-model.service"] // the one transient unit the script runs + readonly property var selected: models.find(m => m.key === current) || null + readonly property bool running: state === "active" + readonly property bool busy: state === "activating" || state === "deactivating" || ctl.running + + // the running model: the selected one, while the unit is up (starts always go through it) + function isRunning(key) { + const m = svc.models.find(x => x.key === key); + return !!m && key === svc.current && svc.unitStates[m.unit] === "active"; + } + function engineState(engine) { + return svc.selected && svc.selected.engine === engine + ? (svc.unitStates[svc.selected.unit] || "unknown") : "inactive"; + } + + function refresh() { + if (!poll.running) poll.running = true; + if (bin && !list.running) list.running = true; + if (bin && !cur.running) cur.running = true; + } + function run(cmd, next) { + if (ctl.running) return; + ctl.command = cmd; + svc.state = next; + ctl.running = true; + } + function toggle() { + svc.run(svc.running ? [svc.bin, "stop"] : [svc.bin, "start", svc.stateDir], + svc.running ? "deactivating" : "activating"); + } + // start this model now (stops whatever else runs), or stop it if it is the one running + function toggleModel(key) { + if (svc.isRunning(key)) return svc.run([svc.bin, "stop"], "deactivating"); + svc.current = key; + svc.run([svc.bin, "run", key, svc.stateDir], "activating"); + } + function pick(key) { + if (key === svc.current) return; + svc.current = key; + svc.run([svc.bin, "use", key, svc.stateDir], svc.running ? "activating" : svc.state); + } + + Process { + id: poll + command: ["systemctl", "--user", "is-active"].concat(svc.units) + stdout: StdioCollector { + onStreamFinished: { + const st = this.text.split("\n"); + const map = {}; + svc.units.forEach((u, i) => map[u] = st[i] || "unknown"); + svc.unitStates = map; + svc.state = ["active", "activating", "deactivating", "failed", "inactive"] + .find(k => st.includes(k)) || "unknown"; + } + } + } + Process { + id: list + command: [svc.bin, "list", svc.stateDir] + environment: svc.env + stdout: StdioCollector { + onStreamFinished: svc.models = this.text.split("\n").filter(l => l.length).map(l => { + const f = l.split("\t"); + return { key: f[0], engine: f[1], label: f[2], port: f[3], unit: f[4] }; + }) + } + } + Process { + id: cur + command: [svc.bin, "current", svc.stateDir] + environment: svc.env + stdout: StdioCollector { onStreamFinished: svc.current = this.text.trim() } + } + Process { + id: ctl + environment: svc.env + onExited: svc.refresh() + } + Timer { + interval: 5000 + running: true + repeat: true + triggeredOnStart: true + onTriggered: svc.refresh() + } +} From 88249211344a26127978fb7492a15fa59789e67d Mon Sep 17 00:00:00 2001 From: guyb Date: Tue, 6 Oct 2026 15:10:08 +0300 Subject: [PATCH 2/2] plugins: strata upstream link Co-Authored-By: Claude Opus 5.5 --- plugins/registry.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/registry.json b/plugins/registry.json index c5f23a1..f26633a 100644 --- a/plugins/registry.json +++ b/plugins/registry.json @@ -1361,6 +1361,7 @@ "version": "0.4.0", "path": "plugins/strata", "author": "guyb ", + "upstream": "https://github.com/ryoku-dev/ryostore/tree/main/plugins/strata", "summary": "Pick a local model and start or stop it from the bar.", "description": "Pick a local model and start or stop it from the bar. Finds Strata, TabbyAPI and llama.cpp engines and their models, one port per model.", "tags": [