project-compass 4.3.6 → 4.3.8

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.
Files changed (41) hide show
  1. package/AGENTS.md +1121 -22
  2. package/ARCHITECTURE.md +826 -10
  3. package/CONTRIBUTING.md +974 -10
  4. package/PROJECT_CONTEXT.md +404 -0
  5. package/README.md +637 -67
  6. package/assets/screenshots/ai_mode.png +0 -0
  7. package/assets/screenshots/art_bar.png +0 -0
  8. package/assets/screenshots/help_structure.png +0 -0
  9. package/assets/screenshots/home.png +0 -0
  10. package/assets/screenshots/languages_checker_omni_studio.png +0 -0
  11. package/assets/screenshots/task_manager.png +0 -0
  12. package/commands.md +841 -104
  13. package/package.json +5 -4
  14. package/src/cli.js +310 -169
  15. package/src/components/AIHorizon.js +138 -255
  16. package/src/components/Footer.js +8 -64
  17. package/src/components/Header.js +8 -47
  18. package/src/components/Navigator.js +16 -70
  19. package/src/components/PackageRegistry.js +4 -3
  20. package/src/components/ProjectArchitect.js +6 -1
  21. package/src/components/TaskManager.js +12 -70
  22. package/src/detectors/dotnet.js +3 -2
  23. package/src/detectors/frameworks.js +28 -28
  24. package/src/detectors/go.js +6 -6
  25. package/src/detectors/java.js +2 -1
  26. package/src/detectors/node.js +3 -2
  27. package/src/detectors/php.js +1 -1
  28. package/src/detectors/python.js +11 -4
  29. package/src/detectors/ruby.js +1 -1
  30. package/src/detectors/rust.js +2 -2
  31. package/src/detectors/utils.js +6 -7
  32. package/src/projectDetection.js +41 -5
  33. package/assets/screenshots/architect.jpg +0 -0
  34. package/assets/screenshots/artboard.jpg +0 -0
  35. package/assets/screenshots/exit-confirm.jpg +0 -0
  36. package/assets/screenshots/navigator.jpg +0 -0
  37. package/assets/screenshots/overlays.jpg +0 -0
  38. package/assets/screenshots/registry.jpg +0 -0
  39. package/assets/screenshots/studio.jpg +0 -0
  40. package/assets/screenshots/taskmanager.jpg +0 -0
  41. package/src/store/useProjectStore.js +0 -32
package/commands.md CHANGED
@@ -1,107 +1,844 @@
1
- # Project Compass · Commands & Shortcuts
2
-
3
- This document lists all supported languages, frameworks, and their built-in commands and keyboard shortcuts.
4
-
5
- ## Keyboard Guide (Navigator)
6
-
7
- | Key | Action |
8
- | --- | --- |
9
- | **Shift+O** | Open **AI Horizon** (Workspace Intelligence) |
10
-
11
- | Key | Action |
12
- | --- | --- |
13
- | / ↓ | Move project focus |
14
- | Enter | Toggle deep detail view / Switch back from sub-views |
15
- | **0** | **Quick AI Analysis** (Detail View only) |
16
- | **B / T / R / I**| **Macro Launch**: Build, Test, Run, **Install** |
17
- | **Esc** | **Global Back**: Return to Main Navigator from any view |
18
- | **Shift+A** | Open **Omni-Studio** (Environment & Runtime audit) |
19
- | **Shift+T** | Open **Orbit Task Manager** (Manage background processes) |
20
- | **Shift+P** | Open **Package Registry** (Manage dependencies) |
21
- | **Shift+N** | Open **Project Architect** (Scaffold new projects) |
22
- | **Shift+D** | **Detach** from active task (runs in background) |
23
- | **Shift+B** | Toggle **Art Board** Build Atlas (Saved to config) |
24
- | **Shift+H** | Toggle **Help Cards** UI (Saved to config) |
25
- | **Shift+S** | Toggle **Structure Guide** (Saved to config) |
26
- | **Shift+X** | **Clear** active task output logs |
27
- | **Shift+E** | **Export** logs to a timestamped `.txt` file |
28
- | **Shift+L** | **Rerun** the last executed command |
29
- | PgUp / PgDn | Jump full project page |
30
- | **Shift+C** | Add a **Custom Command** (`label|cmd`) in detail view |
31
- | **Shift+Q** | **Quit** application (Confirms if tasks are running) |
32
- | Shift+↑ / ↓ | Scroll output logs |
33
- | ? | Toggle help overlay |
34
- | Ctrl+C | Interrupt running command |
35
-
36
- ## Supported Languages & Runtimes
37
-
38
- Compass scans for the following manifests and requires their binaries in your PATH:
39
-
40
- - **Node.js** (`node`, `npm`, `pnpm`, `bun`): `package.json`
41
- - **Python** (`python3`, `pip`): `pyproject.toml`, `requirements.txt`, `Pipfile`, `setup.py`
42
- - **Rust** (`cargo`): `Cargo.toml`
43
- - **Go** (`go`): `go.mod`
44
- - **Java/Kotlin** (`java`, `mvn`, `gradle`): `pom.xml`, `build.gradle`
45
- - **Scala** (`sbt`): `build.sbt`
46
- - **PHP** (`php`, `composer`): `composer.json`
47
- - **Ruby** (`ruby`, `bundle`): `Gemfile`
48
- - **.NET** (`dotnet`): `*.csproj`
49
- - **Shell** (`sh`, `make`): `Makefile`, `build.sh`
50
-
51
- ## Built-in Framework Intelligence
52
-
53
- | Framework | Icon | Commands |
54
- | --- | --- | --- |
55
- | **Next.js** | 🧭 | install, dev, build, test, start |
56
- | **React** | ⚛️ | install, dev, build, test |
57
- | **Vue.js** | 🟩 | install, dev, build, test |
58
- | **NestJS** | 🛡️ | install, dev (start:dev), build, test |
59
- | **Angular** | 🅰️ | install, serve, build, test |
60
- | **SvelteKit** | 🌀 | install, dev, build, test, preview |
61
- | **Nuxt** | 🪄 | install, dev, build, start |
62
- | **Astro** | ✨ | install, dev, build, preview |
63
- | **Django** | 🌿 | pip install, runserver, test, migrate |
64
- | **Flask** | 🍶 | pip install, run, pytest |
65
- | **FastAPI** | | pip install, uvicorn reload, pytest |
66
- | **Vite** | ⚡ | install, dev, build, preview |
67
- | **Spring Boot** | 🌱 | bootRun (Gradle) / spring-boot:run (Maven), build, test |
68
- | **ASP.NET Core**| 🌐 | restore, run, watch, test |
69
- | **Laravel** | 🧡 | composer install, artisan serve, test, migrate |
70
- | **Rocket** | 🚀 | cargo fetch, run, test |
71
- | **Actix Web** | 🦀 | cargo fetch, run, test |
72
- | **Prisma** | | install, generate, studio |
73
- | **Tailwind** | 🎨 | install |
74
-
75
- ## Orbit Task Manager Shortcuts (Shift+T)
76
-
77
- - **Shift+K**: Kill a running process or remove a finished task.
78
- - **Shift+R**: Rename a task for better organization.
79
- - **Arrows**: Move focus between tasks.
80
- - **Enter / Shift+T**: Return to Navigator.
81
-
82
- ## Package Registry Shortcuts (Shift+P)
83
-
84
- - **A**: Add a new package to the project.
85
- - **R**: Remove an existing package.
86
- - **S**: **Internal Switcher**: Quick-swap between detected projects.
87
- - **Esc / Shift+P**: Return to Navigator.
88
-
89
- ## Project Architect Shortcuts (Shift+N)
90
-
91
- - **↑ / ↓**: Select a project template:
92
- - Next.js (npm / Bun)
93
- - React (Vite - pnpm / npm)
94
- - Vue (Vite)
95
- - Rust (Cargo Binary)
96
- - Django (startproject)
97
- - Python (Basic)
98
- - Go (mod init)
99
- - **Enter**: Confirm selection and move to next step.
100
- - **Esc / Shift+N**: Exit architect mode.
1
+ # Project Compass · Complete Commands & Shortcuts Reference
2
+
3
+ This document lists **ALL** supported languages, frameworks, commands, keyboard shortcuts, and CLI arguments available in Project Compass (v4.3.6).
4
+
5
+ ---
6
+
7
+ ## Table of Contents
8
+
9
+ 1. [CLI Arguments (Non-TUI Mode)](#cli-arguments-non-tui-mode)
10
+ 2. [TUI Keyboard Shortcuts](#tui-keyboard-shortcuts)
11
+ 3. [Navigation Commands](#navigation-commands)
12
+ 4. [Quick Actions](#quick-actions)
13
+ 5. [View Toggles](#view-toggles)
14
+ 6. [Task Management](#task-management)
15
+ 7. [Package Management](#package-management)
16
+ 8. [Project Scaffolding](#project-scaffolding)
17
+ 9. [AI Features](#ai-features)
18
+ 10. [Supported Languages](#supported-languages)
19
+ 11. [Built-in Frameworks](#built-in-frameworks)
20
+ 12. [Advanced Configuration](#advanced-configuration)
21
+
22
+ ---
23
+
24
+ ## CLI Arguments (Non-TUI Mode)
25
+
26
+ ### Basic Usage
27
+
28
+ ```bash
29
+ # Show help (all commands)
30
+ project-compass --help
31
+ project-compass -h
32
+
33
+ # Show version
34
+ project-compass --version
35
+ project-compass -v
36
+
37
+ # Launch TUI (default: navigator view)
38
+ project-compass
39
+ project-compass --dir /path/to/workspace
40
+ ```
41
+
42
+ ### Direct View Launch
43
+
44
+ ```bash
45
+ # Launch directly into specific views
46
+ project-compass --studio # Launch in Studio view
47
+ project-compass --ai # Launch in AI Horizon view
48
+ project-compass --task # Launch in Task Manager view
49
+ project-compass --tasks # Alias for --task
50
+ ```
51
+
52
+ ### Project Detection (No TUI)
53
+
54
+ ```bash
55
+ # Legacy test mode (simple list)
56
+ project-compass --mode test
57
+ project-compass --dir /path/to/workspace --mode test
58
+
59
+ # Enhanced project listing (RECOMMENDED)
60
+ project-compass --list-projects
61
+ project-compass --list-projects --dir /path/to/workspace
62
+
63
+ # Get project info by index
64
+ project-compass --project-info 0
65
+ project-compass --project-info 1 --dir /path/to/workspace
66
+
67
+ # Output as JSON (for scripting/automation)
68
+ project-compass --list-projects --json
69
+ project-compass --project-info 0 --json
70
+ ```
71
+
72
+ ### Run Commands Directly (No TUI)
73
+
74
+ ```bash
75
+ # Run any command in a project directory
76
+ project-compass --run "npm install" --dir /path/to/project
77
+ project-compass --run "uv sync" --dir /path/to/python
78
+ project-compass --run "cargo build" --dir /path/to/rust
79
+ project-compass --run "go mod tidy" --dir /path/to/go
80
+
81
+ # Command runs with:
82
+ # - Working directory: --dir value (or current directory)
83
+ # - Inherit stdin/stdout/stderr
84
+ # - Current environment variables
85
+ # - Waits for completion before exiting
86
+ ```
87
+
88
+ ### Package Management (No TUI)
89
+
90
+ ```bash
91
+ # Add packages to project
92
+ project-compass --add-pkg "express" --dir /path/to/node-project
93
+ project-compass --add-pkg "fastapi" --dir /path/to/python-project
94
+ project-compass --add-pkg "lodash" --dir /path/to/project
95
+
96
+ # Remove packages from project
97
+ project-compass --remove-pkg "lodash" --dir /path/to/node-project
98
+ project-compass --remove-pkg "requests" --dir /path/to/python-project
99
+
100
+ # Auto-detects package manager:
101
+ # - Node.js: npm/yarn/pnpm/bun
102
+ # - Python: pip/uv/poetry/pipenv
103
+ # - Rust: cargo
104
+ # - Go: go
105
+ # - Java: maven/gradle
106
+ # - PHP: composer
107
+ # - Ruby: bundler
108
+ # - .NET: dotnet
109
+ ```
110
+
111
+ ### Project Scaffolding (No TUI)
112
+
113
+ ```bash
114
+ # Create new projects from templates
115
+ project-compass --scaffold nextjs --name my-app --dir /path/to/output
116
+ project-compass --scaffold nextjs-bun --name my-app --dir /path/to/output
117
+ project-compass --scaffold react-vite --name my-app --dir /path/to/output
118
+ project-compass --scaffold react-vite-npm --name my-app --dir /path/to/output
119
+ project-compass --scaffold vue-vite --name my-app --dir /path/to/output
120
+ project-compass --scaffold rust --name my-app --dir /path/to/output
121
+ project-compass --scaffold django --name my-app --dir /path/to/output
122
+ project-compass --scaffold python-basic --name my-app --dir /tmp
123
+ project-compass --scaffold go --name my-app --dir /path/to/output
124
+
125
+ # Available templates:
126
+ # - nextjs: Next.js with npm
127
+ # - nextjs-bun: Next.js with Bun
128
+ # - react-vite: React with Vite (pnpm)
129
+ # - react-vite-npm: React with Vite (npm)
130
+ # - vue-vite: Vue with Vite
131
+ # - rust: Rust Cargo binary
132
+ # - django: Django project (startproject)
133
+ # - python-basic: Basic Python directory
134
+ # - go: Go module (mod init)
135
+ ```
136
+
137
+ ### Environment Health Check (No TUI)
138
+
139
+ ```bash
140
+ # Check installed runtimes
141
+ project-compass --studio-check
142
+
143
+ # Output example:
144
+ # Environment Health Check:
145
+ # ✓ Node.js: v24.15.0
146
+ # ✓ npm: 11.12.1
147
+ # ✓ Python: Python 3.13.5
148
+ # ✗ Rust (Cargo): not installed
149
+ # ✓ Go: go version go1.24.4 linux/arm64
150
+ # ✓ Java: openjdk version "21.0.11" 2026-04-21
151
+ # ✗ PHP: not installed
152
+ # ✓ Ruby: ruby 3.3.8 (2025-04-09 revision b200bad6cd)
153
+ # ✗ .NET: not installed
154
+
155
+ # Checks these runtimes:
156
+ # - Node.js (node)
157
+ # - npm
158
+ # - Python (python3/python)
159
+ # - Rust (cargo)
160
+ # - Go (go)
161
+ # - Java (java)
162
+ # - PHP (php)
163
+ # - Ruby (ruby)
164
+ # - .NET (dotnet)
165
+ ```
166
+
167
+ ### AI Analysis
168
+
169
+ ```bash
170
+ # AI analysis requires interactive TUI mode for API configuration
171
+ project-compass --ai
172
+ project-compass --ai --dir /path/to/project
173
+
174
+ # Note: --ai-analyze flag shows message to use TUI mode
175
+ project-compass --ai-analyze
176
+ # Output: "AI analysis requires interactive TUI mode for API configuration."
177
+ # "Please use: project-compass --ai"
178
+ ```
179
+
180
+ ### JSON Output (For Scripting)
181
+
182
+ ```bash
183
+ # Output project list as JSON
184
+ project-compass --list-projects --json
185
+
186
+ # Output specific project info as JSON
187
+ project-compass --project-info 0 --json
188
+
189
+ # Use with jq for parsing:
190
+ project-compass --list-projects --json | jq '.[0].name'
191
+ project-compass --list-projects --json | jq '.[0].frameworks'
192
+ project-compass --list-projects --json | jq -r '.[0].path'
193
+ ```
194
+
195
+ ---
196
+
197
+ ## TUI Keyboard Shortcuts
198
+
199
+ ### Navigation (All Modes)
200
+
201
+ | Key | Action | Context | Description |
202
+ |-----|--------|---------|-------------|
203
+ | `↑` | Move project focus up | Navigator | Move to previous project in list |
204
+ | `↓` | Move project focus down | Navigator | Move to next project in list |
205
+ | `PgUp` | Jump full project page up | Navigator | Jump up by `maxVisibleProjects` (default: 3) |
206
+ | `PgDn` | Jump full project page down | Navigator | Jump down by `maxVisibleProjects` (default: 3) |
207
+ | `Enter` | Toggle project Detail View | Navigator | Show/hide project details |
208
+ | `Enter` | Select/deselect task | Task Manager | Select task for actions |
209
+ | `Enter` | Confirm selection | All sub-views | Confirm current selection |
210
+ | `Esc` | **Global Back** | Global | Return to Main Navigator from any view |
211
+ | `?` | Toggle help overlay | Navigator | Show/hide help overlay |
212
+ | `Shift+Q` | **Quit** application | Global | Quit (confirms if tasks are running) |
213
+ | `Ctrl+C` | Interrupt running command | When process running | Send SIGINT to running process |
214
+
215
+ ### Quick Actions (Detail View Only)
216
+
217
+ | Key | Action | Command | Description |
218
+ |-----|--------|---------|-------------|
219
+ | `0` | **Quick AI Analysis** | - | Switch to AI Horizon for selected project |
220
+ | `B` | **Build** project | `commands.build` | Run build command |
221
+ | `T` | **Test** project | `commands.test` | Run test command |
222
+ | `R` | **Run** project | `commands.run` | Run project command |
223
+ | `I` | **Install** dependencies | `commands.install` | Run install command |
224
+ | `1-9` | **Run numbered commands** | `detailShortcutMap` | Execute commands 1-9 from detail view |
225
+ | `Shift+1-9` (A-Z) | **Run commands 10+** | `detailShortcutMap` | Execute commands 10+ (A=10, B=11, etc.) |
226
+
227
+ ### View Toggles
228
+
229
+ | Key | Action | Target View | Description |
230
+ |-----|--------|--------------|-------------|
231
+ | `Shift+O` | **AI Horizon** Dashboard | `ai` | Workspace intelligence & analysis |
232
+ | `Shift+T` | **Orbit Task Manager** | `tasks` | Manage background processes |
233
+ | `Shift+P` | **Package Registry** | `registry` | Dependency management |
234
+ | `Shift+N` | **Project Architect** | `architect` | Scaffold new projects |
235
+ | `Shift+A` | **Omni-Studio** | `studio` | Environment & runtime health |
236
+
237
+ ### UI Toggles (Saved to Config)
238
+
239
+ | Key | Action | Config Key | Description |
240
+ |-----|--------|----------|-------------|
241
+ | `Shift+B` | Toggle **Art Board** visibility | `showArtBoard` | Show/hide build atlas |
242
+ | `Shift+H` | Toggle **Help Cards** UI | `showHelpCards` | Show/hide help cards |
243
+ | `Shift+S` | Toggle **Structure Guide** | `showStructureGuide` | Show/hide structure guide |
244
+
245
+ ### Task Management
246
+
247
+ | Key | Action | Context | Description |
248
+ |-----|--------|---------|-------------|
249
+ | `Shift+K` | **Kill** running process | Task Manager | Kill selected task |
250
+ | `Shift+R` | **Rename** task | Task Manager | Rename selected task (opens input) |
251
+ | `Shift+R` | **Configure Port** | Detail View | Set port for selected project |
252
+ | `Shift+D` | **Detach** from active task | Navigator | Detach (runs in background) |
253
+ | `Shift+X` | **Clear** active task output logs | Navigator | Clear log buffer |
254
+ | `Shift+E` | **Export** logs to `.txt` | Navigator | Export to `compass-task-*.txt` |
255
+ | `Shift+L` | **Rerun** the last executed command | Navigator | Repeat last command |
256
+ | `↑` / `↓` | Move focus between tasks | Task Manager | Select different task |
257
+ | `Enter` | Select/deselect task | Task Manager | Confirm task selection |
258
+
259
+ ### Log Scrolling
260
+
261
+ | Key | Action | Description |
262
+ |-----|--------|-------------|
263
+ | `Shift+↑` | Scroll output logs up | Scroll up in active task log |
264
+ | `Shift+↓` | Scroll output logs down | Scroll down in active task log |
265
+
266
+ ### Project Configuration
267
+
268
+ | Key | Action | Context | Description |
269
+ |-----|--------|---------|-------------|
270
+ | `Shift+R` | **Configure Port** | Detail View | Set port for selected project |
271
+ | `Shift+R` | **Rename task** | Task Manager | Rename selected task |
272
+ | `Shift+C` | **Add Custom Command** | Detail View | Add `label\|cmd` to project |
273
+
274
+ ### Stdin Input (When Process Running)
275
+
276
+ | Key | Action | Description |
277
+ |-----|--------|-------------|
278
+ | `Type` | Feed stdin | Characters typed go to process stdin |
279
+ | `Enter` | Submit stdin | Sends `stdinBuffer + '\n'` to process |
280
+ | `Backspace` / `Delete` | Delete character | Remove character before cursor |
281
+ | `←` / `→` | Move cursor | Move cursor left/right in input |
282
+
283
+ ### Text Input Modes (Custom Command, Port Config, Rename, etc.)
284
+
285
+ | Key | Action | Description |
286
+ |-----|--------|-------------|
287
+ | `Type` | Enter text | Characters typed go into input buffer |
288
+ | `Enter` | Confirm | Submit current input |
289
+ | `Esc` | Cancel | Cancel current input mode |
290
+ | `Backspace` / `Delete` | Delete | Remove character before cursor |
291
+ | `←` / `→` | Move cursor | Move cursor left/right |
292
+
293
+ ---
294
+
295
+ ## Navigation Commands
296
+
297
+ ### Main Navigator
298
+
299
+ The main project list view shows:
300
+ - Project name with icon
301
+ - Project type (Node.js, Python, etc.)
302
+ - Relative path from workspace root
303
+ - Framework badges (if detected)
304
+ - Missing runtime warnings (⚠️)
305
+
306
+ ### Pagination
307
+
308
+ - Uses `config.maxVisibleProjects` (default: 3)
309
+ - `PgUp` / `PgDn` jump full pages
310
+ - Page indicator shows: `--- Page X/Y (N projects) ---`
311
+
312
+ ### Detail View
313
+
314
+ Press `Enter` on a project to see:
315
+ - Project name with icon
316
+ - Type and manifest file
317
+ - Relative path
318
+ - Description (if available)
319
+ - Framework badges
320
+ - Missing runtime warnings (if any)
321
+ - **Commands** section with all available commands
322
+ - Custom commands (if added)
323
+ - Framework-suggested commands
324
+
325
+ ---
326
+
327
+ ## Quick Actions
328
+
329
+ ### Quick Action Bar (in Navigator)
330
+
331
+ When a project is selected, a quick action bar shows:
332
+ ```
333
+ Quick: [B] Build · [T] Test · [R] Run · [I] Install · [0] AI
334
+ ```
335
+
336
+ ### Command Execution
337
+
338
+ - Press `B` → Runs `commands.build`
339
+ - Press `T` → Runs `commands.test`
340
+ - Press `R` → Runs `commands.run`
341
+ - Press `I` → Runs `commands.install`
342
+
343
+ ### AI Analysis (Detail View)
344
+
345
+ Press `0` in detail view to:
346
+ 1. Switch to AI Horizon view
347
+ 2. Auto-select the current project
348
+ 3. Show AI provider/model info
349
+ 4. Press `Enter` to run analysis
350
+
351
+ ---
352
+
353
+ ## View Toggles
354
+
355
+ ### Orbit Task Manager (`Shift+T`)
356
+
357
+ **Features:**
358
+ - Background process management
359
+ - Live log streaming
360
+ - Task status colors (green=running, cyan=finished, red=failed, yellow=killed)
361
+ - Select tasks with `↑/↓`
362
+ - Kill tasks with `Shift+K`
363
+ - Rename tasks with `Shift+R`
364
+ - Mini log preview (last 5 lines)
365
+ - Task counter: `[N ACTIVE]`
366
+
367
+ ### Package Registry (`Shift+P`)
368
+
369
+ **Features:**
370
+ - Native package manager detection (npm/yarn/pnpm/bun/uv/pip/cargo/etc.)
371
+ - Project switcher (internal: `S` key)
372
+ - Package listing with `A` (add) and `R` (remove)
373
+ - Python venv creation with `V` (Python projects only)
374
+ - Dependency listing from project metadata
375
+
376
+ ### Project Architect (`Shift+N`)
377
+
378
+ **Features:**
379
+ - 7+ project templates
380
+ - Multi-step wizard: framework → path → name
381
+ - Command execution via Orbit
382
+
383
+ **Templates:**
384
+ 1. Next.js (npm)
385
+ 2. Next.js (Bun)
386
+ 3. React (Vite/pnpm)
387
+ 4. React (Vite/npm)
388
+ 5. Vue (Vite)
389
+ 6. Rust (Cargo)
390
+ 7. Django (startproject)
391
+ 8. Python (Basic)
392
+ 9. Go (mod init)
393
+
394
+ ### AI Horizon (`Shift+O` or `0`)
395
+
396
+ **Features:**
397
+ - Multi-step wizard: provider → model → token → analyze
398
+ - AI providers: OpenRouter, Gemini, Claude, Ollama
399
+ - Raw AI response display
400
+ - Editable suggestions (`E` to edit)
401
+ - Save to config (`S` to save)
402
+ - Reset auth (`R` to reset)
403
+
404
+ **Steps:**
405
+ 1. Select AI provider (↑/↓, Enter)
406
+ 2. Configure model (type, Enter)
407
+ 3. Enter API token (type, Enter)
408
+ 4. Press Enter to analyze
409
+ 5. Review/edit suggestions
410
+ 6. Save to config
411
+
412
+ ### Omni-Studio (`Shift+A`)
413
+
414
+ **Features:**
415
+ - Runtime health check (8 languages checked)
416
+ - Version display for installed runtimes
417
+ - Status indicators (✓/✗)
418
+
419
+ ---
420
+
421
+ ## Task Management
422
+
423
+ ### Task Object Structure
424
+
425
+ ```javascript
426
+ {
427
+ id: 'task-' + Date.now(), // Unique task ID
428
+ name: `${project.name} · ${commandLabel}`, // Display name
429
+ status: 'running' | 'finished' | 'failed' | 'killed',
430
+ logs: ['line1', 'line2', ...], // Log lines (capped at 500)
431
+ project: 'Project Name' // Source project name
432
+ }
433
+ ```
434
+
435
+ ### Task Status Colors
436
+
437
+ | Status | Color | Description |
438
+ |--------|-------|-------------|
439
+ | `running` | green | Process is executing |
440
+ | `finished` | cyan | Process completed successfully |
441
+ | `failed` | red | Process exited with error |
442
+ | `killed` | yellow | Process was forcefully terminated |
443
+
444
+ ### Log Management
445
+
446
+ - **Live Streaming**: Logs appear in real-time
447
+ - **Log Window**: Shows last 8 lines (OUTPUT_WINDOW_SIZE)
448
+ - **Scroll**: `Shift+↑/↓` to scroll through logs
449
+ - **Clear**: `Shift+X` clears active task logs
450
+ - **Export**: `Shift+E` exports to `compass-task-*.txt`
451
+
452
+ ### Process Management
453
+
454
+ - **Kill**: `Shift+K` in Task Manager
455
+ - Windows: `taskkill /pid <pid> /f /t`
456
+ - Unix: `process.kill(-pid, 'SIGKILL')` (process group)
457
+ - **Kill All**: When quitting with `Shift+Q`
458
+ - **Detach**: `Shift+D` in Navigator (keeps running in background)
459
+
460
+ ---
461
+
462
+ ## Package Management
463
+
464
+ ### Supported Package Managers
465
+
466
+ | Language | Package Manager | Add Command | Remove Command |
467
+ |----------|----------------|-------------|-----------------|
468
+ | Node.js | npm | `npm install <pkg>` | `npm uninstall <pkg>` |
469
+ | Node.js | yarn | `yarn add <pkg>` | `yarn remove <pkg>` |
470
+ | Node.js | pnpm | `pnpm add <pkg>` | `pnpm remove <pkg>` |
471
+ | Node.js | bun | `bun add <pkg>` | `bun remove <pkg>` |
472
+ | Python | pip | `pip install <pkg>` | `pip uninstall -y <pkg>` |
473
+ | Python | uv | `uv add <pkg>` | `uv remove <pkg>` |
474
+ | Python | poetry | `poetry add <pkg>` | `poetry remove <pkg>` |
475
+ | Python | pipenv | `pipenv install <pkg>` | `pipenv uninstall <pkg>` |
476
+ | Rust | cargo | `cargo add <pkg>` | `cargo remove <pkg>` |
477
+ | Go | go | `go get <pkg>` | (manual removal) |
478
+ | Java | maven | `mvn dependency:copy-dependencies` | (manual removal) |
479
+ | PHP | composer | `composer require <pkg>` | `composer remove <pkg>` |
480
+ | Ruby | bundler | `bundle add <pkg>` | `bundle remove <pkg>` |
481
+ | .NET | dotnet | `dotnet add package <pkg>` | `dotnet remove package <pkg>` |
482
+
483
+ ### TUI Usage (Shift+P)
484
+
485
+ 1. Press `Shift+P` to open Package Registry
486
+ 2. Use `↑/↓` to select project (or `S` to switch)
487
+ 3. Press `A` to add package
488
+ 4. Type package name, press `Enter`
489
+ 5. Press `R` to remove package
490
+ 6. Type package name, press `Enter`
491
+ 7. Press `Esc` or `Shift+P` to return
492
+
493
+ ### CLI Usage
494
+
495
+ ```bash
496
+ # Add package
497
+ project-compass --add-pkg "express" --dir /path/to/project
498
+
499
+ # Remove package
500
+ project-compass --remove-pkg "lodash" --dir /path/to/project
501
+ ```
502
+
503
+ ---
504
+
505
+ ## Project Scaffolding
506
+
507
+ ### Available Templates
508
+
509
+ | Template | Command | Description |
510
+ |----------|---------|-------------|
511
+ | `nextjs` | `npx create-next-app@latest <path>` | Next.js with npm |
512
+ | `nextjs-bun` | `bun create next-app <path>` | Next.js with Bun |
513
+ | `react-vite` | `pnpm create vite <path> --template react` | React with Vite (pnpm) |
514
+ | `react-vite-npm` | `npm create vite@latest <path> -- --template react` | React with Vite (npm) |
515
+ | `vue-vite` | `npm create vite@latest <path> -- --template vue` | Vue with Vite |
516
+ | `rust` | `cargo new <path>` | Rust Cargo binary |
517
+ | `django` | `django-admin startproject <name> <path>` | Django project |
518
+ | `python-basic` | `mkdir -p <path>` | Basic Python directory |
519
+ | `go` | `mkdir -p <path> && cd <path> && go mod init <name>` | Go module |
520
+
521
+ ### TUI Usage (Shift+N)
522
+
523
+ 1. Press `Shift+N` to open Project Architect
524
+ 2. Use `↑/↓` to select template
525
+ 3. Press `Enter` to confirm
526
+ 4. Type target path (or accept default), press `Enter`
527
+ 5. Type project name (or accept default), press `Enter`
528
+ 6. Project will be scaffolded via Orbit
529
+
530
+ ### CLI Usage
531
+
532
+ ```bash
533
+ # Create Next.js project
534
+ project-compass --scaffold nextjs --name my-app --dir /path/to/output
535
+
536
+ # Create Python basic project
537
+ project-compass --scaffold python-basic --name my-script --dir /tmp
538
+ ```
539
+
540
+ ---
541
+
542
+ ## AI Features
543
+
544
+ ### AI Providers
545
+
546
+ | Provider | ID | Endpoint | API Key Required |
547
+ |----------|-----|----------|-----------------|
548
+ | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1/chat/completions` | Yes |
549
+ | **Google Gemini** | `gemini` | `https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent` | Yes |
550
+ | **Anthropic Claude** | `claude` | `https://api.anthropic.com/v1/messages` | Yes |
551
+ | **Ollama (Local)** | `ollama` | `http://localhost:11434/api/generate` | No (local) |
552
+
553
+ ### AI Analysis Flow
554
+
555
+ 1. **Select Provider** (in TUI):
556
+ - Press `Shift+O` or `0` (in detail view)
557
+ - Use `↑/↓` to select provider
558
+ - Press `Enter`
559
+
560
+ 2. **Configure Model**:
561
+ - Default: `deepseek/deepseek-r1`
562
+ - Type model name
563
+ - Press `Enter`
564
+
565
+ 3. **Enter API Token**:
566
+ - Type your API token
567
+ - Press `Enter`
568
+ - (Saved to config for future use)
569
+
570
+ 4. **Run Analysis**:
571
+ - Press `Enter` to analyze
572
+ - AI receives project context:
573
+ - Project name, type, path
574
+ - Package manager
575
+ - Detected frameworks
576
+ - Available scripts
577
+ - Dependencies (first 30)
578
+ - README content (first 1500 chars)
579
+ - Main file content (first 1500 chars)
580
+ - Config file content (first 1500 chars)
581
+
582
+ 5. **Review Suggestions**:
583
+ - AI returns JSON with commands: build, run, install, test
584
+ - Raw AI response displayed
585
+ - Use `↑/↓` to select suggestion
586
+ - Press `E` to edit command
587
+ - Modify command, press `Enter` to confirm
588
+
589
+ 6. **Save to Config**:
590
+ - Press `S` to save suggestions
591
+ - Commands added to `config.customCommands[project.path]`
592
+ - Saved to `~/.project-compass/config.json`
593
+
594
+ ### AI Command Structure
595
+
596
+ ```javascript
597
+ // AI returns JSON like:
598
+ {
599
+ "build": "npm run build",
600
+ "run": "npm run dev",
601
+ "install": "npm install",
602
+ "test": "npm run test"
603
+ }
604
+
605
+ // Converted to:
606
+ [
607
+ { key: 'build', label: 'Build', command: ['npm', 'run', 'build'], source: 'ai' },
608
+ { key: 'run', label: 'Run', command: ['npm', 'run', 'dev'], source: 'ai' },
609
+ { key: 'install', label: 'Install', command: ['npm', 'install'], source: 'ai' },
610
+ { key: 'test', label: 'Test', command: ['npm', 'run', 'test'], source: 'ai' }
611
+ ]
612
+ ```
613
+
614
+ ---
615
+
616
+ ## Supported Languages
617
+
618
+ ### Language Detection
619
+
620
+ | Language | Priority | Manifest Files | Binaries | Auto-Detected Package Manager |
621
+ |----------|----------|----------------|----------|-----------------------------|
622
+ | **Node.js** | 100 | `package.json` | `node`, `npm` | npm/yarn/pnpm/bun |
623
+ | **Python** | 95 | `pyproject.toml`, `requirements.txt`, `setup.py`, `Pipfile`, `manage.py` | `python3`, `python`, `uv` | uv/poetry/pipenv/pip |
624
+ | **Rust** | 90 | `Cargo.toml` | `cargo`, `rustc` | cargo |
625
+ | **Go** | 85 | `go.mod` | `go` | go |
626
+ | **Java** | 80 | `pom.xml`, `build.gradle`, `build.gradle.kts` | `java`, `mvn`, `gradle` | maven/gradle |
627
+ | **PHP** | 75 | `composer.json` | `php`, `composer` | composer |
628
+ | **Ruby** | 70 | `Gemfile` | `ruby`, `bundle` | bundler |
629
+ | **.NET** | 65 | `*.csproj`, `*.fsproj` | `dotnet` | dotnet |
630
+ | **Generic** | 10 | `Makefile`, `build.sh` | (varies) | (none) |
631
+
632
+ ### Package Manager Detection
633
+
634
+ #### Node.js
635
+ ```javascript
636
+ // Detection order (first found wins):
637
+ 1. bun.lockb || bun.lock → bun
638
+ 2. pnpm-lock.yaml → pnpm
639
+ 3. yarn.lock → yarn
640
+ 4. package-lock.json → npm
641
+ 5. default: npm
642
+ ```
643
+
644
+ #### Python
645
+ ```javascript
646
+ // Detection order:
647
+ 1. uv.lock && checkBinary('uv') → uv
648
+ 2. poetry.lock → poetry
649
+ 3. Pipfile.lock → pipenv
650
+ 4. requirements.txt → pip
651
+ 5. default: pip
652
+ ```
653
+
654
+ ---
655
+
656
+ ## Built-in Frameworks
657
+
658
+ ### Node.js Frameworks (15+)
659
+
660
+ | Framework | Icon | Priority | Commands | Auto-Detected |
661
+ |-----------|------|----------|---------------|---------------|
662
+ | **Next.js** | 🧭 | 115 | install, dev, build, test, start | ✓ |
663
+ | **React** | ⚛️ | 112 | install, dev, build, test | ✓ |
664
+ | **Vue.js** | 🟩 | 111 | install, dev, build, test | ✓ |
665
+ | **NestJS** | 🛡️ | 110 | install, dev (start:dev), build, test | ✓ |
666
+ | **Nuxt** | 🟢 | 110 | install, dev, build, generate | ✓ |
667
+ | **Express** | 🚂 | 108 | install, start, dev | ✓ |
668
+ | **Svelte** | 🧡 | 109 | install, dev, build, test | ✓ |
669
+ | **Astro** | 🚀 | 108 | install, dev, build, preview | ✓ |
670
+ | **Fastify** | ⚡ | 107 | install, start, dev | ✓ |
671
+ | **Koa** | 🎋 | 106 | install, start | ✓ |
672
+ | **Vite** | ⚡ | 100 | install, dev, build, preview | ✓ |
673
+ | **Tailwind CSS** | 🎨 | 50 | init | ✓ |
674
+ | **Prisma** | ◮ | 50 | install, generate, studio | ✓ |
675
+ | **tRPC** | 🔌 | 45 | dev, build | ✓ |
676
+ | **GraphQL** | ◼️ | 48 | start, dev | ✓ |
677
+
678
+ ### Python Frameworks (12+)
679
+
680
+ | Framework | Icon | Priority | Commands | Auto-Detected |
681
+ |-----------|------|----------|---------------|---------------|
682
+ | **FastAPI** | ⚡ | 112 | install, run (uvicorn), test | ✓ |
683
+ | **Flask** | 🌶️ | 111 | install, run, test | ✓ |
684
+ | **Django** | 🌿 | 110 | install, runserver, test, migrate | ✓ |
685
+ | **Sanic** | 🚀 | 106 | run, test | ✓ |
686
+ | **AioHTTP** | 🔄 | 105 | test | ✓ |
687
+ | **Tornado** | 🌪️ | 104 | run, test | ✓ |
688
+ | **Pytest** | ✅ | 50 | run, coverage | ✓ |
689
+ | **SQLAlchemy** | 🗄️ | 48 | test | ✓ |
690
+ | **Pandas** | 🐼 | 45 | test | ✓ |
691
+ | **PyTorch** | 🔥 | 45 | test | ✓ |
692
+ | **TensorFlow** | 🧠 | 45 | test | ✓ |
693
+
694
+ ### Rust Frameworks (9+)
695
+
696
+ | Framework | Icon | Priority | Commands | Auto-Detected |
697
+ |-----------|------|----------|---------------|---------------|
698
+ | **Actix Web** | 🎭 | 110 | fetch, run, test, build | ✓ |
699
+ | **Axum** | 🗡️ | 108 | fetch, run, test | ✓ |
700
+ | **Rocket** | 🚀 | 105 | fetch, run, test | ✓ |
701
+ | **Warp** | 🌀 | 104 | run, test | ✓ |
702
+ | **Tokio** | ⚡ | 50 | run, test | ✓ |
703
+ | **Serde** | 🔄 | - | - | ✓ |
704
+ | **SQLx** | 🗄️ | - | - | ✓ |
705
+ | **Diesel** | 🛢️ | - | - | ✓ |
706
+ | **Tonic** | 🎵 | - | - | ✓ |
707
+ | **Tower** | 🏰 | - | - | ✓ |
708
+
709
+ ### Go Frameworks (4+)
710
+
711
+ | Framework | Icon | Priority | Commands | Auto-Detected |
712
+ |-----------|------|----------|---------------|---------------|
713
+ | **Gin** | 🍸 | 110 | mod tidy, run, test, build | ✓ |
714
+ | **Fiber** | 🔥 | 109 | run, test | ✓ |
715
+ | **Echo** | 🔊 | 108 | run, test | ✓ |
716
+ | **Chi** | 🤝 | 105 | run, test | ✓ |
717
+
718
+ ### Java Frameworks (3+)
719
+
720
+ | Framework | Icon | Priority | Commands | Auto-Detected |
721
+ |-----------|------|----------|---------------|---------------|
722
+ | **Spring Boot** | 🍃 | 115 | install, run, test, build | ✓ |
723
+ | **Quarkus** | ⚡ | 108 | dev, build, test | ✓ |
724
+ | **Micronaut** | 🚀 | 106 | run, test | ✓ |
725
+
726
+ ### PHP Frameworks (3+)
727
+
728
+ | Framework | Icon | Priority | Commands | Auto-Detected |
729
+ |-----------|------|----------|---------------|---------------|
730
+ | **Laravel** | 🧡 | 110 | install, serve, test, migrate | ✓ |
731
+ | **Symfony** | 🎵 | 108 | install, server:start, test | ✓ |
732
+ | **CodeIgniter** | 🔥 | 104 | test | ✓ |
733
+
734
+ ### Ruby Frameworks (2+)
735
+
736
+ | Framework | Icon | Priority | Commands | Auto-Detected |
737
+ |-----------|------|----------|---------------|---------------|
738
+ | **Ruby on Rails** | 🛤️ | 110 | install, server, test, migrate | ✓ |
739
+ | **Sinatra** | 🎷 | 105 | install, rackup | ✓ |
740
+
741
+ ### .NET Frameworks (2+)
742
+
743
+ | Framework | Icon | Priority | Commands | Auto-Detected |
744
+ |-----------|------|----------|---------------|---------------|
745
+ | **ASP.NET Core** | 🔷 | 110 | restore, run, test, build | ✓ |
746
+ | **Blazor** | 🌀 | 105 | run, build | ✓ |
747
+
748
+ ---
101
749
 
102
750
  ## Advanced Configuration
103
751
 
104
- You can manually edit the config file to change defaults:
105
- - **Location**: `~/.project-compass/config.json`
106
- - **maxVisibleProjects**: Adjust how many projects appear per page (default: 3).
107
- - **aiProvider / aiModel / aiToken**: Change your AI intelligence settings.
752
+ ### Main Config File: `~/.project-compass/config.json`
753
+
754
+ ```json
755
+ {
756
+ "customCommands": {
757
+ "/path/to/project": [
758
+ { "label": "My Command", "command": ["echo", "hello"], "source": "custom" }
759
+ ]
760
+ },
761
+ "showArtBoard": true,
762
+ "showHelpCards": false,
763
+ "showStructureGuide": false,
764
+ "maxVisibleProjects": 3,
765
+ "aiProvider": "openrouter",
766
+ "aiModel": "deepseek/deepseek-r1",
767
+ "aiToken": "your-api-token-here",
768
+ "projectMeta": {
769
+ "/path/to/project": { "port": "3000" }
770
+ }
771
+ }
772
+ ```
773
+
774
+ ### Configuration Options
775
+
776
+ | Option | Type | Default | Description | Example |
777
+ |--------|------|---------|-------------|---------|
778
+ | `customCommands` | Object | `{}` | Per-project custom commands | `{"path": [{"label": "test", "command": ["npm", "test"]}]}` |
779
+ | `showArtBoard` | Boolean | `true` | Show/hide the art board | `true` / `false` |
780
+ | `showHelpCards` | Boolean | `false` | Show/hide help cards | `true` / `false` |
781
+ | `showStructureGuide` | Boolean | `false` | Show/hide structure guide | `true` / `false` |
782
+ | `maxVisibleProjects` | Number | `3` | Projects per page in navigator | `5`, `10`, etc. |
783
+ | `aiProvider` | String | `"openrouter"` | AI provider ID | `"openrouter"`, `"gemini"`, `"claude"`, `"ollama"` |
784
+ | `aiModel` | String | `"deepseek/deepseek-r1"` | AI model to use | `"gpt-4"`, `"claude-3"`, etc. |
785
+ | `aiToken` | String | `""` | API token for AI provider | `"sk-..."` |
786
+ | `projectMeta` | Object | `{}` | Per-project metadata (ports, etc.) | `{"path": {"port": "3000"}}` |
787
+
788
+ ### Project-Specific Config: `compass.config.js`
789
+
790
+ Create in your project root:
791
+
792
+ ```javascript
793
+ export default {
794
+ commands: {
795
+ custom: {
796
+ label: 'My Command',
797
+ command: ['echo', 'hello'],
798
+ source: 'config'
799
+ }
800
+ },
801
+ frameworks: [
802
+ { name: 'MyFramework', icon: '🚀' }
803
+ ]
804
+ };
805
+ ```
806
+
807
+ **Features:**
808
+ - Automatically loaded during project detection
809
+ - Merged into project data (commands + frameworks)
810
+ - Applied BEFORE framework plugin detection
811
+ - Can override/add commands and frameworks
812
+
813
+ ### Custom Framework Plugins: `~/.project-compass/plugins.json`
814
+
815
+ ```json
816
+ {
817
+ "plugins": [
818
+ {
819
+ "name": "My Framework",
820
+ "icon": "🚀",
821
+ "languages": ["Node.js"],
822
+ "files": ["my-framework.config.js"],
823
+ "dependencies": ["my-framework"],
824
+ "priority": 100,
825
+ "commands": {
826
+ "dev": {
827
+ "label": "Dev",
828
+ "command": ["my-cli", "dev"]
829
+ }
830
+ }
831
+ }
832
+ ]
833
+ }
834
+ ```
835
+
836
+ **Plugin Detection:**
837
+ - Uses `dependencyMatches()` (not file existence)
838
+ - Can boost project priority
839
+ - Commands merged into project
840
+ - Loaded once and cached
841
+
842
+ ---
843
+
844
+ *Built for the modern developer.*