project-compass 4.1.3 → 4.1.5

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 (3) hide show
  1. package/README.md +28 -61
  2. package/package.json +1 -1
  3. package/src/cli.js +20 -12
package/README.md CHANGED
@@ -20,81 +20,48 @@ npm install -g project-compass
20
20
 
21
21
  ### 🌌 The Navigator (Main Interface)
22
22
  - **Automatic Discovery**: Instantly identifies **Node.js, Python, Rust, Go, Java, PHP, Ruby, .NET, and Shell/Make**.
23
- - **Paginated Control**: Optimized for massive workspaces. View projects in clean, manageable pages with **Page Up / Page Down** support.
24
- - **Configurable UI**: Customize your view with `maxVisibleProjects` and toggleable Art Boards and Help Cards.
23
+ - **Paginated Control**: Optimized for massive workspaces. Jump through project pages with **Page Up / Page Down**.
24
+ - **Configurable UI**: Customize your view with `maxVisibleProjects` (set to 2 or 3 for tight terminals).
25
+
26
+ ### 🤖 AI Horizon (`Shift+O` or `0`)
27
+ - **Agentic Intelligence**: Real-world integration with **OpenRouter, Gemini, Claude, and Ollama**.
28
+ - **DNA Mapping**: Automatically analyzes your project structure and **injects optimized BRIT commands** (Build, Run, Install, Test) into your config.
29
+ - **Persistent Auth**: Save your API tokens once; Compass handles the secure handshake thereafter.
30
+
31
+ ### 🔌 Infrastructure Control (`Shift+R`)
32
+ - **Manual Port Mapping**: Directly assign specific ports to projects. Config is saved persistently to prevent conflicts.
33
+ - **Metadata Awareness**: AI Horizon uses your manual port settings to suggest smarter deployment scripts.
34
+
35
+ ### 🛰️ Orbit Task Manager (`Shift+T`)
36
+ - **Background Orchestration**: Keep tasks running while you navigate.
37
+ - **Process Management**: Kill (`Shift+K`) or Rename (`Shift+R`) background tasks on the fly.
25
38
 
26
39
  ### 📦 Package Registry (`Shift+P`)
27
- - **Native Logic**: Automatically uses your project's preferred package manager (**npm, pnpm, yarn, bun, pip, cargo, composer, dotnet**). No more "command not found" errors.
28
- - **Internal Switcher**: Quick-swap between detected projects directly inside the registry.
40
+ - **Context-Aware Management**: Automatically detects **npm, pnpm, yarn, bun, pip, cargo, composer, and dotnet**.
29
41
 
30
42
  ### 🏗️ Project Architect (`Shift+N`)
31
- - **Modern Templates**: Scaffold high-performance projects with built-in support for **Bun, Next.js, Vite, Rust, and Django**.
32
-
33
- ### 🔌 Manual Infrastructure\n- **Port Mapping**: Hit `Shift + R` in details to manually assign ports to projects. Settings are saved persistently.\n\n### 🤖 AI Horizon (`Shift+O` or `0`)
34
- - **Intelligence Persistence**: Configure your provider (**OpenRouter, Gemini, Claude, Ollama**) once; Compass remembers your settings.
35
- - **Deep DNA Analysis**: Press `0` on any project to analyze its structure.
36
- - **Auto-Config (BRIT)**: AI automatically detects and configures missing **Build, Run, Install, and Test** commands, saving them directly to your `config.json`.
37
- - **Direct Access**: Launch straight into intelligence mode with `project-compass --ai`.
43
+ - **Rapid Scaffolding**: Create new projects from scratch using industry-standard templates.
38
44
 
39
- ## Command Reference
45
+ ## ⌨️ Command Reference
40
46
 
41
47
  | Shortcut | Action |
42
48
  | :--- | :--- |
43
49
  | `↑ / ↓` | Move project focus |
50
+ | `PgUp / PgDn`| Jump full project page |
44
51
  | `Enter` | Toggle project Detail View |
45
- | `B / T / R / I`| Macro: Build, Test, Run, **Install** |
52
+ | `0` | Trigger **AI DNA Analysis** (Inside Details) |
53
+ | `B / T / R / I`| Macro: Build, Test, Run, Install |
54
+ | `Shift + R` | **Configure Port** (Inside Details) |
55
+ | `Shift + O` | **AI Horizon** Dashboard |
46
56
  | `Shift + T` | **Orbit**: Task Manager |
47
57
  | `Shift + P` | **Registry**: Package Manager |
48
- | `Shift + N` | **Architect**: Project Creator |
49
- | `Shift + A` | **Studio**: Environment Health |
50
- | `Shift + B` | Toggle **Art Board** visibility |
51
- | `Shift + H` | Toggle **Help Cards** |
52
- | `Shift + S` | Toggle **Structure Guide** |
53
- | `Shift + Q` | Quit (with safe-exit confirmation) |
54
- | `?` | Toggle Help Overlay |
55
-
56
- ### 🛡️ Safe Termination
57
- - **Process Protection**: Compass won't let you accidentally kill your work. If tasks are running, a dedicated confirmation dialog ensures you intended to quit.
58
-
59
- ![Exit Confirmation](https://raw.githubusercontent.com/CrimsonDevil333333/project-compass/master/assets/screenshots/exit-confirm.jpg)
60
-
61
- ## ⚙️ Configuration & Customization
62
-
63
- Project Compass is designed to be personalized. All settings and custom commands are stored in a local JSON file.
64
-
65
- - **Linux/macOS**: `~/.project-compass/config.json`
66
- - **Windows**: `C:\Users\<YourUser>\.project-compass\config.json`
67
-
68
- ### 🛠️ Adding Custom Commands
69
- You can add your own project-specific commands directly within the app by pressing **Shift+C** in the Detail View. Use the format `Label|Command` (e.g., `Deploy|npm run deploy`).
70
-
71
- ### 📁 Manual Config Structure
72
- If you prefer manual editing, the `config.json` follows this structure:
73
-
74
- ```json
75
- {
76
- "showArtBoard": true,
77
- "showHelpCards": false,
78
- "showStructureGuide": false,
79
- "customCommands": {
80
- "/path/to/your/project": [
81
- {
82
- "label": "Build Production",
83
- "command": ["npm", "run", "build", "--prod"]
84
- }
85
- ]
86
- }
87
- }
88
- ```
89
-
90
- - `showArtBoard/HelpCards/Structure`: Persistence for your UI visibility preferences.
91
- - `customCommands`: A map of absolute project paths to arrays of command objects.
58
+ | `Shift + Q` | **Quit** (with terminal clear) |
92
59
 
93
- ---
60
+ ## ⚙️ Configuration
94
61
 
95
- ## 🚀 Vision
96
- Project Compass is designed to be the "Last Terminal Tool" you ever need to open. It bridges the gap between raw CLI commands and full IDEs, giving you a professional, reactive cockpit for all your development work.
62
+ Edit `~/.project-compass/config.json` to customize:
63
+ - `maxVisibleProjects`: How many rows per page.
64
+ - `aiToken / aiModel`: Your intelligence credentials.
97
65
 
98
66
  ---
99
67
  **Crafted with ❤️ by Satyaa & Clawdy**
100
- *MIT License*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-compass",
3
- "version": "4.1.3",
3
+ "version": "4.1.5",
4
4
  "description": "Futuristic project navigator and runner for Node, Python, Rust, and Go",
5
5
  "main": "src/cli.js",
6
6
  "bin": {
package/src/cli.js CHANGED
@@ -482,25 +482,33 @@ function Compass({rootPath, initialView = 'navigator'}) {
482
482
  if (key.shift && key.upArrow) { scrollLogs(1); return; }
483
483
  if (key.shift && key.downArrow) { scrollLogs(-1); return; }
484
484
 
485
+
485
486
  const pageLimit = config.maxVisibleProjects || 3;
486
- const pageStep = Math.max(1, pageLimit);
487
+ const totalProjects = projects.length;
487
488
 
488
- if (key.pageUp && projects.length > pageLimit) {
489
- console.clear();
489
+ if (key.pageUp && totalProjects > pageLimit) {
490
490
  setSelectedIndex((prev) => {
491
- const next = prev - pageStep;
491
+ const next = prev - pageLimit;
492
492
  return next < 0 ? 0 : next;
493
- });
494
- return;
493
+ });
494
+ console.clear();
495
+ return;
495
496
  }
496
- if (key.pageDown && projects.length > pageLimit) {
497
- console.clear();
497
+
498
+ if (key.pageDown && totalProjects > pageLimit) {
498
499
  setSelectedIndex((prev) => {
499
- const next = prev + pageStep;
500
- return next >= projects.length ? (Math.floor((projects.length - 1) / pageLimit) * pageLimit) : next;
501
- });
502
- return;
500
+ const next = prev + pageLimit;
501
+ // If next jump exceeds project list, stay at the start of the last page
502
+ if (next >= totalProjects) {
503
+ const lastPageStart = Math.floor((totalProjects - 1) / pageLimit) * pageLimit;
504
+ return lastPageStart;
505
+ }
506
+ return next;
507
+ });
508
+ console.clear();
509
+ return;
503
510
  }
511
+
504
512
 
505
513
  if (normalizedInput === '?') { console.clear(); setShowHelp((prev) => !prev); return; }
506
514
  if (shiftCombo('l') && lastCommandRef.current) { runProjectCommand(lastCommandRef.current.commandMeta, lastCommandRef.current.project); return; }