@dennisrepa/elevate 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/de.md ADDED
@@ -0,0 +1,305 @@
1
+ # 🪶 Elevate — Deutsche Dokumentation
2
+
3
+ > **Interaktives Terminal-Dashboard (TUI) zur sicheren, selektiven und transparenten Aktualisierung von Abhängigkeiten in Polyglot-Monorepos.**
4
+ > *Entwickelt und gepflegt von **Dennis Répa**.*
5
+
6
+ ---
7
+
8
+ ## 🌟 Übersicht
9
+
10
+ **Elevate** ist ein interaktives Terminal-Dashboard (TUI) zur sicheren, selektiven und transparenten Aktualisierung von Abhängigkeiten in **Polyglot-Monorepos** (Node/npm & Java/Maven) sowie Einzelprojekten.
11
+
12
+ * **Feder-Symbolik (`🪶`) & Orange-Brand (`#FF8800`):** Leicht, modern und übersichtlich im Terminal.
13
+ * **Polyglot-Fähig:** Unterstützt gleichzeitig Frontend-Projekte (`package.json` mit npm Workspaces) und Backend-Projekte (`pom.xml` mit Maven).
14
+ * **Release Channels:** Filtert Vorabversionen (Beta, RC, Alpha, Milestone, Snapshot) standardmäßig heraus und schlägt ausschließlich produktionsreife Releases vor.
15
+ * **Animiertes Begleiter-Hühnchen („Pip“ 🐣):** Begleitet den Entwickler dezent im Terminal und reagiert auf Aktionen.
16
+ * **Bilinguales i18n:** Jederzeit umschaltbar zwischen Deutsch und Englisch via Taste **`[L]`**.
17
+
18
+ ---
19
+
20
+ ## ✨ Features & Highlights
21
+
22
+ 1. **🌐 Polyglot Monorepo Support (npm & Maven):**
23
+ * **Node / npm:** Erkennt Root- und Workspace-Pakete, berechnet SemVer-Diffs, aktualisiert `package.json` und führt `npm install` aus.
24
+ * **Java / Maven:** Durchsucht das Projekt nach allen `pom.xml`-Dateien (Spring-Boot-Services, Libraries etc.), fragt Maven Central ab und prüft Quellcode mit `mvn test-compile`.
25
+ * **Live-Wechsel:** Ein Tastendruck auf **`[E]`** schaltet im laufenden Betrieb zwischen Frontend- und Backend-Modulen um.
26
+
27
+ 2. **🔍 Version gezielt heraussuchen (`[V]`):**
28
+ * Man muss nicht zwingend auf die `latest` Version aktualisieren: Taste **`[V]`** öffnet ein interaktives Such-Modal für das aktuell ausgewählte Paket.
29
+ * Lädt alle jemals veröffentlichten Versionen aus der npm- oder Maven-Registry.
30
+ * Ermöglicht Echtzeit-Filterung während des Tippens (z. B. `3.2` oder `25`), Pfeiltasten-Navigation und Übernahme mit `Enter`.
31
+ * Manuell ausgewählte Versionen werden im Dashboard mit einem `[MANUELL]`-Badge hervorgehoben.
32
+
33
+ 3. **🚦 Release Channels (`stable` vs. `all`):**
34
+ * **`channel: "stable"` (Standard):** Verhindert das unabsichtliche Installieren instabiler Vorabversionen (`-alpha`, `-beta`, `-rc`, `-m1`, `-snapshot`).
35
+ * **`channel: "all"`:** Zeigt alle Versionen an und hebt Vorabversionen mit farbigen Warn-Badges (`[BETA]`, `[RC]`, `[ALPHA]`) in Magenta hervor.
36
+
37
+ 4. **🛡️ Monorepo-Schutz für interne Pakete:**
38
+ * Schützt interne Pakete (z. B. `@my-org/*`, `com.mycompany.*`) davor, versehentlich durch fremde Bibliotheken aus öffentlichen Registries überschrieben zu werden.
39
+
40
+ 5. **🐣 Das animierte Hühnchen („Pip“):**
41
+ * Sitzt unten rechts im Dashboard.
42
+ * Reagiert auf den Status:
43
+ * *Idle:* Blinzelt sanft oder schlürft im Java-Modus Kaffee (`*kaffee schlürf* ☕`).
44
+ * *Scan:* Sucht neugierig mit Lupe (`( ˘ө˘ )🔍`).
45
+ * *Build:* Arbeitet emsig (`(ง •ө• )ง`).
46
+ * *Erfolg:* Feiert das Update mit Konfetti (`\( ᵔөᵔ )/ 🎉`).
47
+
48
+ 6. **🚀 Englischer Initial-Splash-Screen:**
49
+ * Ein stylischer Startbildschirm mit animiertem Ladebalken (~3,2 Sekunden).
50
+ * Kann jederzeit mit der `[Leertaste]` oder `[Enter]` sofort übersprungen werden.
51
+
52
+ ---
53
+
54
+ ## 🏗️ Domain-Driven Clean Architecture
55
+
56
+ Elevate ist strikt nach den Prinzipien des **Domain-Driven Design (DDD)** und der **Hexagonalen Architektur (Ports & Adapters)** aufgebaut. UI und Hooks hängen niemals direkt von Paketmanagern ab:
57
+
58
+ ```text
59
+ src/
60
+ ├── domain/ # 🧠 DOMAIN CORE (Reine Fachlogik, zero I/O)
61
+ │ ├── models.ts # Entities & Value Objects (ProjectModule, UpdateCandidate, etc.)
62
+ │ ├── ports.ts # Domain Ports (ModuleDiscoveryPort, RegistryPort, etc.)
63
+ │ ├── ecosystem-strategy.ts # Strategy Pattern: Plattform-agnostisches Interface
64
+ │ └── ecosystem-factory.ts # Factory Pattern: Liefert npm- oder Maven-Strategie
65
+ │
66
+ ├── adapters/ # 🔌 ADAPTERS (Konkrete Implementierungen)
67
+ │ ├── npm/ # 📦 Node / npm Adapter
68
+ │ │ ├── npm-discovery.ts # Liest workspaces aus Root-package.json
69
+ │ │ ├── npm-registry.ts # npm-Registry-Abfragen & Dist-Tags
70
+ │ │ ├── npm-scanner.ts # Parst dependencies & SemVer-Diffs
71
+ │ │ ├── npm-updater.ts # Aktualisiert package.json & npm install
72
+ │ │ ├── npm-verifier.ts # Konsistenzchecks & Build-Tests
73
+ │ │ └── npm-strategy.ts # NpmEcosystemStrategy
74
+ │ │
75
+ │ └── maven/ # ☕ Java / Maven Adapter
76
+ │ ├── maven-discovery.ts # Findet alle pom.xml im Projektbaum
77
+ │ ├── maven-registry.ts # Maven Central Metadata & Release-Filter
78
+ │ ├── maven-scanner.ts # Parst dependencies, Deduplizierung & Properties
79
+ │ ├── maven-updater.ts # Aktualisiert pom.xml & mvn dependency:resolve
80
+ │ ├── maven-verifier.ts # mvn test-compile Quellcode-Verifikation
81
+ │ └── maven-strategy.ts # MavenEcosystemStrategy
82
+ │
83
+ ├── hooks/ # 🎣 APPLICATION HOOKS (Verwenden ausschließlich Ports)
84
+ │ ├── use-workspaces.ts # Modulverwaltung über ModuleDiscoveryPort
85
+ │ ├── use-packages.ts # Scan & Filterung über DependencyReaderPort
86
+ │ └── use-updater.ts # Update & Verifikation über Updater-/Verifier-Ports
87
+ │
88
+ ├── components/ # 🎨 PRESENTATIONAL UI (Reine Darstellung mit Ink)
89
+ │ ├── header.tsx # Ökosystem [E], Channel [stable], Sprache [L], Autor
90
+ │ ├── workspace-bar.tsx # Aktives Modul mit statischem Schutzhinweis
91
+ │ ├── mascot.tsx # 🐣 Animiertes Begleiter-Hühnchen ("Pip")
92
+ │ ├── status-bar.tsx # Wackelfreie Statusleiste mit Zählern & Pip
93
+ │ ├── tab-bar.tsx # Ökosystem-spezifische Tabs
94
+ │ ├── package-list.tsx # Scrollbare Liste im Orange-Design
95
+ │ ├── package-row.tsx # Zeile mit Badges ([Patch], [Minor], [MAJOR], [BETA])
96
+ │ ├── controls-bar.tsx # Tastaturkürzel
97
+ │ ├── workspace-modal.tsx # Modalauswahl für Module
98
+ │ ├── version-modal.tsx # 🔍 Modale Version-Suche & Picker
99
+ │ ├── splash-screen.tsx # Initialer Start-Screen
100
+ │ ├── updating-view.tsx # Fortschrittsanzeige während des Updates
101
+ │ └── summary-view.tsx # Ergebnisbericht nach Abschluss
102
+ │
103
+ ├── cli/ # 💻 HEADLESS CLI SUBCOMMANDS (für CI/CD & Shell-Agents)
104
+ │ ├── parser.ts # Befehlszeilen-Parser (node:util.parseArgs)
105
+ │ ├── command-modules.ts # `elevate modules`
106
+ │ ├── command-scan.ts # `elevate scan`
107
+ │ ├── command-versions.ts # `elevate versions`
108
+ │ └── command-update.ts # `elevate update`
109
+ │
110
+ ├── mcp/ # 🤖 MODEL CONTEXT PROTOCOL (MCP Server)
111
+ │ └── mcp-server.ts # Standardisierter stdio MCP-Server mit 5 Tools
112
+ │
113
+ ├── i18n/ # 🌍 Sprachverwaltung (de.ts / en.ts)
114
+ ├── config.ts # ⚙️ Konfigurations-Loader
115
+ ├── theme.ts # 🎨 Farb-Tokens & Icons
116
+ ├── app.tsx # 📱 App-Shell (Container)
117
+ └── index.tsx # 🏁 Universeller Einstiegspunkt (TUI / CLI / MCP)
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 🤖 Agentic & CI/CD Nutzung (Headless CLI & MCP)
123
+
124
+ Elevate kann von KI-Agenten (Claude Code, Antigravity, Cursor, Copilot) sowie automatisierten CI/CD-Pipelines nahtlos angesteuert werden.
125
+
126
+ ### 1. Headless CLI-Befehle (`--json`)
127
+
128
+ ```bash
129
+ # Module im Monorepo auflisten
130
+ node tools/updater/elevate/index.mjs modules --json
131
+
132
+ # Abhängigkeiten aller Module scannen (Exit-Code 1 wenn Updates verfügbar)
133
+ node tools/updater/elevate/index.mjs scan --channel=stable --all-modules --json
134
+
135
+ # Vollständige Versionshistorie eines Pakets abfragen
136
+ node tools/updater/elevate/index.mjs versions chalk --json
137
+
138
+ # Updates mit Guardrails simulieren (--dry-run)
139
+ node tools/updater/elevate/index.mjs update --module=apps/e2e-cockpit --packages=chalk@5.6.2 --dry-run --json
140
+
141
+ # Major-Updates gezielt anwenden (--allow-major erforderlich)
142
+ node tools/updater/elevate/index.mjs update --module=apps/e2e-cockpit --packages=pinia@4.0.3 --allow-major --json
143
+ ```
144
+
145
+ ### 2. Model Context Protocol (MCP) Server
146
+
147
+ Elevate bietet einen vollwertigen, stdio-basierten MCP-Server:
148
+ ```bash
149
+ node tools/updater/elevate/index.mjs mcp
150
+ ```
151
+
152
+ In der MCP-Konfiguration hinterlegen (z. B. `claude_desktop_config.json` oder Antigravity MCP):
153
+ ```json
154
+ {
155
+ "mcpServers": {
156
+ "elevate": {
157
+ "command": "npx",
158
+ "args": ["-y", "@dennisrepa/elevate", "mcp"]
159
+ }
160
+ }
161
+ }
162
+ ```
163
+
164
+ #### Verfügbare MCP-Tools für LLMs:
165
+ | Tool | Funktion |
166
+ | :--- | :--- |
167
+ | `elevate_discover_modules` | Erkennt alle Monorepo-Module und Workspaces für npm oder Maven |
168
+ | `elevate_scan` | Scannt ein Modul (oder alle Module) nach verfügbaren Updates |
169
+ | `elevate_get_versions` | Ruft die Versionshistorie direkt aus der Registry ab |
170
+ | `elevate_apply_updates` | Wendet Updates mit Guardrails und Verifikations-Builds an |
171
+ | `elevate_verify` | Führt modulspezifische Build- und Test-Checks aus |
172
+
173
+ ---
174
+
175
+ ## ⌨️ Tastatur-Steuerung (Interaktive TUI)
176
+
177
+ | Taste | Aktion |
178
+ | :--- | :--- |
179
+ | **`E`** | **Ökosystem umschalten (📦 Node/npm ⇄ ☕ Java/Maven)** |
180
+ | **`W`** | Modul- / Workspace-Auswahl öffnen |
181
+ | **`V`** | **Version heraussuchen (Interaktiver Such- & Filterdialog)** |
182
+ | **`L`** | Sprache umschalten (Deutsch ⇄ English) |
183
+ | **`↑` / `↓`** *(oder `k`/`j`)* | In der Liste navigieren |
184
+ | **`Space`** | Markierung des fokussierten Eintrags umschalten |
185
+ | **`A`** | Alle sichtbaren Einträge im aktuellen Tab umschalten |
186
+ | **`Tab`** *(oder `1`, `2`, `3`)* | Zwischen Tabs wechseln |
187
+ | **`U`** | Update für alle ausgewählten Einträge starten |
188
+ | **`R`** | Aktuelles Modul neu scannen |
189
+ | **`Q`** | Elevate beenden |
190
+
191
+ ---
192
+
193
+ ## ⚙️ Konfiguration (`elevate.config.json`)
194
+
195
+ Im Wurzelverzeichnis deines Repositories kann optional eine `elevate.config.json` angelegt werden:
196
+
197
+ ```json
198
+ {
199
+ "author": "Dennis Répa",
200
+ "channel": "stable",
201
+ "locale": "de",
202
+ "excludeScopes": ["@my-org", "com.mycompany"],
203
+ "postUpdateScript": "npm test",
204
+ "postUpdateLabel": "Test-Suite ausführen"
205
+ }
206
+ ```
207
+
208
+ * **`author`:** Optionaler Name, der oben rechts im Header erscheint.
209
+ * **`channel`:** `"stable"` (Standard, schließt Betas/RCs aus) oder `"all"` (zeigt auch Vorabversionen).
210
+ * **`locale`:** `"de"` (Deutsch), `"en"` (Englisch) oder `"auto"` (automatische Erkennung).
211
+ * **`excludeScopes`:** Liste interner Paket-Präfixe, die vor externen Registry-Abfragen geschützt werden.
212
+ * **`postUpdateScript`:** Optionaler Konsistenz- oder Testbefehl nach einem npm-Update.
213
+
214
+ ---
215
+
216
+ ## 📦 Installation & Bereitstellung
217
+
218
+ Elevate bietet maximale Flexibilität für jede Entwickler-Umgebung:
219
+
220
+ ### 1. ⚡ Sofortstart ohne Installation via `npx` (Empfohlen)
221
+ Startet Elevate sofort, ohne Klonen oder npm-Installationen:
222
+ ```bash
223
+ npx @dennisrepa/elevate
224
+ ```
225
+ > **Für autonome KI-Agenten (Claude Code, Cursor, Antigravity):**
226
+ > Direkt in der MCP-Konfiguration hinterlegen:
227
+ > ```json
228
+ > {
229
+ > "mcpServers": {
230
+ > "elevate": {
231
+ > "command": "npx",
232
+ > "args": ["-y", "@dennisrepa/elevate", "mcp"]
233
+ > }
234
+ > }
235
+ > }
236
+ > ```
237
+
238
+ ---
239
+
240
+ ### 2. 🪟 Standalone Executable (Komplett ohne Node.js)
241
+ Für reine Java-Entwickler, Systemadministratoren oder CI-Server ohne Node-Installation:
242
+ 1. `elevate.exe` (Windows) oder `elevate-linux` aus den **[GitHub Releases](https://github.com/dennisrepa/elevate/releases)** herunterladen.
243
+ 2. Direkt im Terminal oder per Doppelklick starten:
244
+ ```powershell
245
+ .\elevate.exe
246
+ ```
247
+
248
+ ---
249
+
250
+ ### 3. 🌍 Globale System-Installation
251
+ Installiert den Befehl `elevate` dauerhaft in jedem Terminal:
252
+ ```bash
253
+ npm install -g @dennisrepa/elevate
254
+ ```
255
+ Danach überall einfach aufrufen:
256
+ ```bash
257
+ elevate
258
+ ```
259
+
260
+ ---
261
+
262
+ ### 4. 🏢 Monorepo- & Projekt-Integration
263
+ Als devDependency im eigenen Monorepo hinterlegen:
264
+ ```bash
265
+ npm install -D @dennisrepa/elevate
266
+ ```
267
+ Skript in die Root-`package.json` einfügen:
268
+ ```json
269
+ {
270
+ "scripts": {
271
+ "elevate": "elevate"
272
+ }
273
+ }
274
+ ```
275
+ Jedes Teammitglied kann das Dashboard nun starten mit:
276
+ ```bash
277
+ npm run elevate
278
+ ```
279
+
280
+ ---
281
+
282
+ ### 5. 🛠️ Lokale Entwicklung & Mitwirken (In diesem Repo)
283
+ ```bash
284
+ cd tools/updater/elevate
285
+ npm run build
286
+ npm link
287
+ ```
288
+ Direkt aus dem Root-Verzeichnis ausführen:
289
+ ```powershell
290
+ .\elevate.exe
291
+ # oder
292
+ node tools/updater/elevate/dist/cli.js
293
+ ```
294
+
295
+ ---
296
+
297
+ ## ☕ Projekt unterstützen (Ko-fi & Sponsoring)
298
+
299
+ Elevate ist Open-Source und wird mit Leidenschaft entwickelt. Wenn dir das Tool gefällt und es dir oder deinem Team Zeit spart, kannst du die Weiterentwicklung gerne unterstützen:
300
+
301
+ [![Dennis Répa auf Ko-fi unterstützen](https://img.shields.io/badge/Ko--fi-Support%20Dennis%20R%C3%A9pa-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/dennisrepa)
302
+
303
+ * ☕ **[Dennis Répa auf Ko-fi einen Kaffee spendieren](https://ko-fi.com/dennisrepa)**
304
+ * 💻 Oder im Terminal: `npm fund @dennisrepa/elevate`
305
+
package/docs/en.md ADDED
@@ -0,0 +1,309 @@
1
+ # 🪶 Elevate — English Documentation
2
+
3
+ > **Interactive Polyglot Terminal Dashboard (TUI) for safe, selective, and transparent dependency management across monorepos and multi-project repositories.**
4
+ > *Developed and maintained by **Dennis Répa**.*
5
+
6
+ ---
7
+
8
+ ## 🌟 Overview
9
+
10
+ **Elevate** is an interactive terminal dashboard (TUI) for safe, selective, and transparent dependency management across **polyglot monorepos** (Node/npm & Java/Maven) and single-package projects.
11
+
12
+ * **Feather Identity (`🪶`) & Orange Brand (`#FF8800`):** Clean, modern, and readable in any terminal.
13
+ * **Polyglot Architecture:** Seamlessly manages frontend workspaces (`package.json` with npm workspaces) and backend modules (`pom.xml` with Maven).
14
+ * **Release Channels:** Filters out pre-releases (Alpha, Beta, RC, Milestone, Snapshot) by default, suggesting only battle-tested production releases.
15
+ * **Animated Companion ("Pip" 🐣):** A delightful chicken mascot that reacts to actions and keeps you company in the terminal.
16
+ * **Bilingual i18n:** Toggle on the fly between English and German with the **`[L]`** key.
17
+
18
+ ---
19
+
20
+ ## ✨ Features & Highlights
21
+
22
+ 1. **🌐 Polyglot Monorepo Support (npm & Maven):**
23
+ * **Node / npm:** Discovers root and workspace packages, calculates SemVer diffs, updates `package.json`, and runs `npm install`.
24
+ * **Java / Maven:** Scans the project tree for all `pom.xml` files (Spring Boot services, libraries, etc.), queries Maven Central, and verifies source code with `mvn test-compile`.
25
+ * **Runtime Switch:** Press **`[E]`** anytime to switch between frontend and backend modules.
26
+
27
+ 2. **🔍 Pick a Specific Version (`[V]`):**
28
+ * You aren't restricted to upgrading only to `latest`: pressing **`[V]`** opens an interactive modal to browse and select any published version for the focused package.
29
+ * Fetches the entire version history directly from the npm or Maven registry.
30
+ * Real-time search/filtering as you type (e.g. `3.2` or `25`), arrow key navigation, and instant selection via `Enter`.
31
+ * Manually chosen versions are marked with a `[MANUAL]` badge in the dashboard.
32
+
33
+ 3. **🚦 Release Channels (`stable` vs. `all`):**
34
+ * **`channel: "stable"` (Default):** Prevents accidental upgrades to pre-releases (`-alpha`, `-beta`, `-rc`, `-m1`, `-snapshot`).
35
+ * **`channel: "all"`:** Displays all versions and highlights pre-releases with prominent magenta badges (`[BETA]`, `[RC]`, `[ALPHA]`).
36
+
37
+ 4. **🛡️ Monorepo Symlink & Internal Scope Protection:**
38
+ * Protects internal packages (e.g. `@my-org/*`, `com.mycompany.*`) from being overwritten by public registries.
39
+
40
+ 5. **🐣 Animated Mascot ("Pip"):**
41
+ * Positioned neatly in the bottom right corner of the dashboard.
42
+ * State-reactive behavior:
43
+ * *Idle:* Blinks gently or sips coffee in Java mode (`*sipping coffee* ☕`).
44
+ * *Scanning:* Inspects dependencies with a magnifying glass (`( ˘ө˘ )🔍`).
45
+ * *Building:* Rolls up its sleeves (`(ง •ө• )ง`).
46
+ * *Success:* Celebrates with confetti (`\( ᵔөᵔ )/ 🎉`).
47
+
48
+ 6. **🚀 Initial Splash Screen:**
49
+ * A stylish intro screen with an animated progress bar (~3.2 seconds).
50
+ * Can be skipped immediately at any time by pressing `[Space]` or `[Enter]`.
51
+
52
+ ---
53
+
54
+ ## 🏗️ Domain-Driven Clean Architecture
55
+
56
+ Elevate follows **Domain-Driven Design (DDD)** and **Hexagonal Architecture (Ports & Adapters)**. The UI and hooks never depend directly on a package manager:
57
+
58
+ ```text
59
+ src/
60
+ ├── domain/ # 🧠 DOMAIN CORE (Pure domain logic, zero I/O)
61
+ │ ├── models.ts # Entities & Value Objects (ProjectModule, UpdateCandidate, etc.)
62
+ │ ├── ports.ts # Domain Ports (ModuleDiscoveryPort, RegistryPort, etc.)
63
+ │ ├── ecosystem-strategy.ts # Strategy Pattern: Platform-agnostic interface
64
+ │ └── ecosystem-factory.ts # Factory Pattern: Resolves npm or Maven strategy
65
+ │
66
+ ├── adapters/ # 🔌 ADAPTERS (Concrete port implementations)
67
+ │ ├── npm/ # 📦 Node / npm Adapters
68
+ │ │ ├── npm-discovery.ts # Reads workspaces from root package.json
69
+ │ │ ├── npm-registry.ts # npm registry queries & dist-tags
70
+ │ │ ├── npm-scanner.ts # Parses dependencies & SemVer diffs
71
+ │ │ ├── npm-updater.ts # Updates package.json & runs npm install
72
+ │ │ ├── npm-verifier.ts # Workspace check & test verification
73
+ │ │ └── npm-strategy.ts # NpmEcosystemStrategy
74
+ │ │
75
+ │ └── maven/ # ☕ Java / Maven Adapters
76
+ │ ├── maven-discovery.ts # Finds all pom.xml files in the repo tree
77
+ │ ├── maven-registry.ts # Maven Central metadata & release filters
78
+ │ ├── maven-scanner.ts # Parses dependencies, deduplication & properties
79
+ │ ├── maven-updater.ts # Updates pom.xml & runs mvn dependency:resolve
80
+ │ ├── maven-verifier.ts # mvn test-compile code verification
81
+ │ └── maven-strategy.ts # MavenEcosystemStrategy
82
+ │
83
+ ├── hooks/ # 🎣 APPLICATION HOOKS (Consume only domain ports)
84
+ │ ├── use-workspaces.ts # Module management via ModuleDiscoveryPort
85
+ │ ├── use-packages.ts # Scanning & filtering via DependencyReaderPort
86
+ │ └── use-updater.ts # Updating & verification via updater/verifier ports
87
+ │
88
+ ├── components/ # 🎨 PRESENTATIONAL UI (Pure rendering with Ink)
89
+ │ ├── header.tsx # Ecosystem [E], Channel [stable], Language [L], Author
90
+ │ ├── workspace-bar.tsx # Active module with static protection notice
91
+ │ ├── mascot.tsx # 🐣 Animated companion ("Pip")
92
+ │ ├── status-bar.tsx # Rock-solid status bar with counts & mascot
93
+ │ ├── tab-bar.tsx # Ecosystem-specific tabs
94
+ │ ├── package-list.tsx # Scrollable list with orange accents
95
+ │ ├── package-row.tsx # Row with badges ([Patch], [Minor], [MAJOR], [BETA])
96
+ │ ├── controls-bar.tsx # Keyboard shortcuts
97
+ │ ├── workspace-modal.tsx # Modal selector for modules
98
+ │ ├── version-modal.tsx # 🔍 Modal version search & picker
99
+ │ ├── splash-screen.tsx # Initial startup screen
100
+ │ ├── updating-view.tsx # Update progress display
101
+ │ └── summary-view.tsx # Final report summary
102
+ │
103
+ ├── cli/ # 💻 HEADLESS CLI SUBCOMMANDS (for CI/CD & Shell-Agents)
104
+ │ ├── parser.ts # Zero-dependency CLI argument parser
105
+ │ ├── command-modules.ts # `elevate modules`
106
+ │ ├── command-scan.ts # `elevate scan`
107
+ │ ├── command-versions.ts # `elevate versions`
108
+ │ └── command-update.ts # `elevate update`
109
+ │
110
+ ├── mcp/ # 🤖 MODEL CONTEXT PROTOCOL (MCP Server)
111
+ │ └── mcp-server.ts # Standard stdio MCP server exposing 5 tools
112
+ │
113
+ ├── i18n/ # 🌍 Localization dictionaries (de.ts / en.ts)
114
+ ├── config.ts # ⚙️ Configuration loader
115
+ ├── theme.ts # 🎨 Color tokens & icons
116
+ ├── app.tsx # 📱 App Shell (Container)
117
+ └── index.tsx # 🏁 Universal entry point (TUI / CLI / MCP)
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 🤖 Agentic & CI/CD Support (Headless CLI & MCP)
123
+
124
+ Elevate is built from the ground up for agentic execution by AI coding assistants (Claude Code, Antigravity, Cursor, Copilot CLI) and automated CI/CD runners.
125
+
126
+ ### 1. Headless CLI Subcommands (`--json`)
127
+
128
+ Any command line agent or pipeline can run Elevate without starting the interactive TUI:
129
+
130
+ ```bash
131
+ # Discover modules in monorepo
132
+ node tools/updater/elevate/index.mjs modules --json
133
+
134
+ # Scan dependencies across all modules (exit code 1 if updates found)
135
+ node tools/updater/elevate/index.mjs scan --channel=stable --all-modules --json
136
+
137
+ # Query complete version history for a package
138
+ node tools/updater/elevate/index.mjs versions chalk --json
139
+
140
+ # Apply updates with safety guardrails (simulation via --dry-run)
141
+ node tools/updater/elevate/index.mjs update --module=apps/e2e-cockpit --packages=chalk@5.6.2 --dry-run --json
142
+
143
+ # Apply major updates (explicit permission required)
144
+ node tools/updater/elevate/index.mjs update --module=apps/e2e-cockpit --packages=pinia@4.0.3 --allow-major --json
145
+ ```
146
+
147
+ ### 2. Model Context Protocol (MCP) Server
148
+
149
+ Elevate provides a native, stdio-based MCP Server:
150
+ ```bash
151
+ node tools/updater/elevate/index.mjs mcp
152
+ ```
153
+
154
+ Register it in your agent's MCP settings (e.g., `claude_desktop_config.json` or Antigravity MCP config):
155
+ ```json
156
+ {
157
+ "mcpServers": {
158
+ "elevate": {
159
+ "command": "npx",
160
+ "args": ["-y", "@dennisrepa/elevate", "mcp"]
161
+ }
162
+ }
163
+ }
164
+ ```
165
+
166
+ #### Available MCP Tools for LLMs:
167
+ | Tool | Purpose |
168
+ | :--- | :--- |
169
+ | `elevate_discover_modules` | Discovers all repository modules and workspaces for npm or Maven |
170
+ | `elevate_scan` | Scans a module (or all modules) for available dependency updates |
171
+ | `elevate_get_versions` | Fetches complete published version history from registry |
172
+ | `elevate_apply_updates` | Applies targeted updates with verification & major guardrails |
173
+ | `elevate_verify` | Runs module-specific build and test verification checks |
174
+
175
+ ---
176
+
177
+ ## ⌨️ Keyboard Shortcuts (Interactive TUI)
178
+
179
+ | Key | Action |
180
+ | :--- | :--- |
181
+ | **`E`** | **Switch Ecosystem (📦 Node/npm ⇄ ☕ Java/Maven)** |
182
+ | **`W`** | Open module / workspace selector |
183
+ | **`V`** | **Pick specific version (Interactive search & filter modal)** |
184
+ | **`L`** | Toggle language (English ⇄ German) |
185
+ | **`↑` / `↓`** *(or `k`/`j`)* | Navigate list items |
186
+ | **`Space`** | Toggle selection of focused item |
187
+ | **`A`** | Toggle all visible items in the active tab |
188
+ | **`Tab`** *(or `1`, `2`, `3`)* | Switch between tabs |
189
+ | **`U`** | Start update for all selected items |
190
+ | **`R`** | Re-scan the active module |
191
+ | **`Q`** | Quit Elevate |
192
+
193
+ ---
194
+
195
+ ## ⚙️ Configuration (`elevate.config.json`)
196
+
197
+ You can place an optional `elevate.config.json` file in your repository root:
198
+
199
+ ```json
200
+ {
201
+ "author": "Dennis Répa",
202
+ "channel": "stable",
203
+ "locale": "en",
204
+ "excludeScopes": ["@my-org", "com.mycompany"],
205
+ "postUpdateScript": "npm test",
206
+ "postUpdateLabel": "Run test suite"
207
+ }
208
+ ```
209
+
210
+ * **`author`:** Optional name displayed in the top-right header.
211
+ * **`channel`:** `"stable"` (default, excludes betas/RCs) or `"all"` (includes pre-releases).
212
+ * **`locale`:** `"en"` (English), `"de"` (German), or `"auto"` (system detection).
213
+ * **`excludeScopes`:** List of internal package prefixes protected from external registry lookups.
214
+ * **`postUpdateScript`:** Optional script executed after an npm update.
215
+
216
+ ---
217
+
218
+ ## 📦 Installation & Setup
219
+
220
+ Elevate offers multiple flexible options for any developer workflow or environment:
221
+
222
+ ### 1. ⚡ Zero-Install Instant Run via `npx` (Recommended)
223
+ Run Elevate immediately without cloning or installing anything:
224
+ ```bash
225
+ npx @dennisrepa/elevate
226
+ ```
227
+ > **For Autonomous AI Agents (Claude Code, Cursor, Antigravity):**
228
+ > Register Elevate directly in your agent's MCP settings:
229
+ > ```json
230
+ > {
231
+ > "mcpServers": {
232
+ > "elevate": {
233
+ > "command": "npx",
234
+ > "args": ["-y", "@dennisrepa/elevate", "mcp"]
235
+ > }
236
+ > }
237
+ > }
238
+ > ```
239
+
240
+ ---
241
+
242
+ ### 2. 🪟 Standalone Executable (Zero Node.js Required)
243
+ For Java/Backend developers, system administrators, or CI environments without Node.js:
244
+ 1. Download `elevate.exe` (Windows) or `elevate-linux` from the **[GitHub Releases](https://github.com/dennisrepa/elevate/releases)**.
245
+ 2. Run directly in your terminal:
246
+ ```powershell
247
+ .\elevate.exe
248
+ ```
249
+ *(Or double-click `elevate.exe` in Windows Explorer).*
250
+
251
+ ---
252
+
253
+ ### 3. 🌍 Global System Installation
254
+ Install Elevate globally to have the `elevate` command available in every terminal:
255
+ ```bash
256
+ npm install -g @dennisrepa/elevate
257
+ ```
258
+ Then launch anywhere:
259
+ ```bash
260
+ elevate
261
+ ```
262
+
263
+ ---
264
+
265
+ ### 4. 🏢 Monorepo & Project Integration
266
+ Add Elevate as a devDependency to your project or monorepo:
267
+ ```bash
268
+ npm install -D @dennisrepa/elevate
269
+ ```
270
+ Add an `elevate` script to your root `package.json`:
271
+ ```json
272
+ {
273
+ "scripts": {
274
+ "elevate": "elevate"
275
+ }
276
+ }
277
+ ```
278
+ Now every team member can launch the dashboard using:
279
+ ```bash
280
+ npm run elevate
281
+ ```
282
+
283
+ ---
284
+
285
+ ### 5. 🛠️ Local Development & Contributing (Inside this Repo)
286
+ If you are developing or customizing Elevate locally:
287
+ ```bash
288
+ cd tools/updater/elevate
289
+ npm run build
290
+ npm link
291
+ ```
292
+ Run directly from repo root:
293
+ ```powershell
294
+ .\elevate.exe
295
+ # or
296
+ node tools/updater/elevate/dist/cli.js
297
+ ```
298
+
299
+ ---
300
+
301
+ ## ☕ Support & Funding
302
+
303
+ Elevate is free, open-source software maintained to make dependency updates safe, fast, and transparent across multi-language monorepos. If Elevate saves you or your team valuable development time, you can support its creator and future feature development:
304
+
305
+ [![Support Dennis Répa on Ko-fi](https://img.shields.io/badge/Ko--fi-Support%20Dennis%20R%C3%A9pa-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/dennisrepa)
306
+
307
+ * ☕ **[Buy Dennis a coffee on Ko-fi](https://ko-fi.com/dennisrepa)**
308
+ * 💻 Or run: `npm fund @dennisrepa/elevate`
309
+