feat(cli-tools): add dynamic configuration for Pi, OMP, Crush, ForgeCode, Smelt and CodeWhale

- Add dedicated settings API routes for pi, omp, crush, forge, smelt, codewhale
- Integrate GenericCliToolCard with multi-model support for Pi and auto-discovery for OMP
- Register tools in cliTools catalog and all-statuses route
- Add official logos for all new CLI tools

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
decoluaandClaude Code committed 2026-09-22 14:48:04 +07:00
1 parent 44fd69d229
commit 6c9fe6f78a
17 files changed
+1809 -1

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Codewhale">
<defs>
<linearGradient id="codewhale-current" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#1E8FD8"/>
<stop offset="1" stop-color="#0B48BB"/>
</linearGradient>
</defs>
<path fill="url(#codewhale-current)" fill-rule="evenodd" d="M215.77 40.96C208.55 41.41 204.88 41.74 201.43 42.19C197 42.77 191.11 43.68 190.66 43.83C190.48 43.9 189.58 44.05 188.65 44.2C185.38 44.71 171.46 48.1 167.61 49.36C166.23 49.81 163.99 50.54 162.68 50.97C157.57 52.61 150.43 55.35 142.93 58.55C140.59 59.53 130.65 64.41 130.1 64.84C129.97 64.94 128.72 65.62 127.33 66.34C125.95 67.07 123.23 68.63 121.29 69.82C119.36 71 117.09 72.36 116.29 72.84C98.57 83.3 78.57 101.12 63.12 120.19C61.59 Line truncated
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800">
<path fill="#F09082" d="M165.29 165.29H517.36V400H400V282.65H165.29Z"/>
<path fill="#4D9ABF" d="M165.29 282.65H282.65V400H400V517.36H282.65V634.72H165.29Z"/>
<path fill="#F1BE58" d="M517.36 400H634.72V634.72H517.36Z"/>
</svg>

After

Width:  |  Height:  |  Size: 334 B

+101
View File
@@ -0,0 +1,101 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 12.1" shape-rendering="crispEdges" role="img" aria-label="smelt logo">
<rect x="6" y="0" width="1" height="1.1" fill="#af0000"/>
<rect x="6" y="1.1" width="1" height="1.1" fill="#ff5f00"/>
<rect x="7" y="1.1" width="1" height="1.1" fill="#ff5f00"/>
<rect x="5" y="2.2" width="1" height="1.1" fill="#af0000"/>
<rect x="6" y="2.2" width="1" height="1.1" fill="#ff5f00"/>
<rect x="7" y="2.2" width="1" height="1.1" fill="#ff8700"/>
<rect x="8" y="2.2" width="1" height="1.1" fill="#ff8700"/>
<rect x="9" y="2.2" width="1" height="1.1" fill="#ff5f00"/>
<rect x="10" y="2.2" width="1" height="1.1" fill="#af0000"/>
<rect x="4" y="3.3" width="1" height="1.1" fill="#af0000"/>
<rect x="5" y="3.3" width="1" height="1.1" fill="#ff5f00"/>
<rect x="6" y="3.3" width="1" height="1.1" fill="#ff8700"/>
<rect x="7" y="3.3" width="1" height="1.1" fill="#ffd700"/>
<rect x="8" y="3.3" width="1" height="1.1" fill="#ffd700"/>
<rect x="9" y="3.3" width="1" height="1.1" fill="#ff8700"/>
<rect x="10" y="3.3" width="1" height="1.1" fill="#ff5f00"/>
<rect x="11" y="3.3" width="1" height="1.1" fill="#af0000"/>
<rect x="13" y="3.3" width="1" height="1.1" fill="#af0000"/>
<rect x="14" y="3.3" width="1" height="1.1" fill="#ff5f00"/>
<rect x="3" y="4.4" width="1" height="1.1" fill="#af0000"/>
<rect x="4" y="4.4" width="1" height="1.1" fill="#ff5f00"/>
<rect x="5" y="4.4" width="1" height="1.1" fill="#ff8700"/>
<rect x="6" y="4.4" width="1" height="1.1" fill="#ffd700"/>
<rect x="7" y="4.4" width="1" height="1.1" fill="#ffd700"/>
<rect x="8" y="4.4" width="1" height="1.1" fill="#ffd700"/>
<rect x="9" y="4.4" width="1" height="1.1" fill="#ffd700"/>
<rect x="10" y="4.4" width="1" height="1.1" fill="#ffd700"/>
<rect x="11" y="4.4" width="1" height="1.1" fill="#ff8700"/>
<rect x="12" y="4.4" width="1" height="1.1" fill="#ff5f00"/>
<rect x="13" y="4.4" width="1" height="1.1" fill="#ff8700"/>
<rect x="14" y="4.4" width="1" height="1.1" fill="#ff8700"/>
<rect x="15" y="4.4" width="1" height="1.1" fill="#ff5f00"/>
<rect x="1" y="5.5" width="1" height="1.1" fill="#af0000"/>
<rect x="2" y="5.5" width="1" height="1.1" fill="#ff5f00"/>
<rect x="3" y="5.5" width="1" height="1.1" fill="#ff8700"/>
<rect x="4" y="5.5" width="1" height="1.1" fill="#ff8700"/>
<rect x="5" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="6" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="7" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="8" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="9" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="10" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="11" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="12" y="5.5" width="1" height="1.1" fill="#ff8700"/>
<rect x="13" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="14" y="5.5" width="1" height="1.1" fill="#ffd700"/>
<rect x="15" y="5.5" width="1" height="1.1" fill="#ff8700"/>
<rect x="16" y="5.5" width="1" height="1.1" fill="#ff5f00"/>
<rect x="17" y="5.5" width="1" height="1.1" fill="#af0000"/>
<rect x="0" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="1" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="2" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="4" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="5" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="6" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="7" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="8" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="10" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="11" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="12" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="14" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="17" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="18" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="19" y="7.7" width="1" height="1.1" fill="#fff6ef"/>
<rect x="0" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="1" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="2" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="4" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="5" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="6" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="7" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="8" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="10" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="11" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="12" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="14" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="17" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="18" y="8.8" width="1" height="1.1" fill="#fff6ef"/>
<rect x="19" y="8.8" width="1" height="1.1" fill="#9b8880"/>
<rect x="2" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="4" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="6" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="8" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="10" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="14" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="18" y="9.9" width="1" height="1.1" fill="#fff6ef"/>
<rect x="0" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="1" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="2" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="4" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="6" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="8" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="10" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="11" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="12" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="14" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="15" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="18" y="11" width="1" height="1.1" fill="#fff6ef"/>
<rect x="19" y="11" width="1" height="1.1" fill="#fff6ef"/>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB