project-compass 4.3.3 → 4.3.7
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/AGENTS.md +1121 -22
- package/ARCHITECTURE.md +826 -10
- package/CONTRIBUTING.md +974 -10
- package/PROJECT_CONTEXT.md +404 -0
- package/README.md +594 -67
- package/commands.md +841 -104
- package/package.json +5 -4
- package/src/cli.js +310 -169
- package/src/components/AIHorizon.js +138 -255
- package/src/components/Footer.js +8 -64
- package/src/components/Header.js +8 -47
- package/src/components/Navigator.js +16 -70
- package/src/components/PackageRegistry.js +4 -3
- package/src/components/ProjectArchitect.js +6 -1
- package/src/components/TaskManager.js +12 -70
- package/src/detectors/dotnet.js +3 -2
- package/src/detectors/frameworks.js +28 -28
- package/src/detectors/go.js +6 -6
- package/src/detectors/java.js +2 -1
- package/src/detectors/node.js +3 -2
- package/src/detectors/php.js +1 -1
- package/src/detectors/python.js +33 -12
- package/src/detectors/ruby.js +1 -1
- package/src/detectors/rust.js +2 -2
- package/src/detectors/utils.js +6 -7
- package/src/projectDetection.js +41 -5
- 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
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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.*
|