@polarityinc/paragon 0.0.9 → 0.0.11

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/README.md CHANGED
@@ -103,6 +103,38 @@ Paragon uses Language Server Protocol (LSP) for deep code understanding, just li
103
103
  ### Extensible via MCP
104
104
  Add capabilities through Model Context Protocol (`http`, `stdio`, and `sse` transports).
105
105
 
106
+ Paragon ships with a Claude-compatible MCP CLI so you can manage servers without leaving the terminal:
107
+
108
+ ```bash
109
+ # Add stdio server locally (stored in .paragon/mcp.local.json)
110
+ paragon mcp add local-filesystem --transport stdio --env ROOT=/work -- ls --color=never
111
+
112
+ # Share a server with your team via .mcp.json
113
+ paragon mcp add github --transport http --scope project https://api.githubcopilot.com/mcp/
114
+
115
+ # Inspect and manage servers
116
+ paragon mcp list
117
+ paragon mcp get github
118
+ paragon mcp remove local-filesystem --scope local
119
+
120
+ # Supabase works exactly like Claude
121
+ paragon mcp add --scope project --transport http supabase https://mcp.supabase.com/mcp
122
+ paragon mcp auth supabase
123
+
124
+ # Install every catalog MCP in one shot
125
+ paragon mcp catalog install --all --scope project
126
+ ```
127
+
128
+ Scopes mirror Claude Code:
129
+
130
+ - `local` (default) → private to you per project, saved under `.paragon/mcp.local.json`
131
+ - `project` → shared `.mcp.json` in the repo root
132
+ - `user` → stored in your global Paragon config so every project can use it
133
+
134
+ The command palette’s **Add MCP Server** dialog now follows the same flow (scope selection, auth metadata, env vars) and will launch OAuth URLs automatically when provided. Supabase servers trigger the full Claude-style OAuth handshake (local callback server, PKCE, browser open) and save the resulting token to your local `.paragon/mcp.tokens.json`. For instant setup, run `paragon mcp catalog install --all --scope project` to pull in every curated MCP from the catalog; the `/mcp` dialog will walk you through approving and authenticating each one.
135
+
136
+ Inside the TUI, type `/mcp` (or run **Manage MCP Servers** from the command palette) to review servers, authenticate via browser, or disable entries. Project-scoped MCPs from `.mcp.json` prompt you to approve or reject them before Paragon connects, mirroring Claude Code’s safety flow.
137
+
106
138
  ### Works Everywhere
107
139
  First-class support in every terminal on macOS, Linux, Windows (PowerShell and WSL), FreeBSD, OpenBSD, and NetBSD.
108
140
 
@@ -203,4 +235,3 @@ For inquiries, contact [sales@polarity.cc](mailto:sales@polarity.cc).
203
235
  </p>
204
236
 
205
237
  ---
206
-
package/bin/paragon ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawn } = require('child_process');
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+
7
+ // Determine platform
8
+ const platform = process.platform === 'win32' ? 'windows' : process.platform;
9
+ const binaryName = platform === 'windows' ? 'paragon.exe' : 'paragon-bin';
10
+ const binaryPath = path.join(__dirname, binaryName);
11
+
12
+ // Check if binary exists
13
+ if (!fs.existsSync(binaryPath)) {
14
+ console.error('Error: Paragon binary not found.');
15
+ console.error('Please reinstall: npm install -g @polarityinc/paragon');
16
+ process.exit(1);
17
+ }
18
+
19
+ // Execute the binary with all arguments
20
+ const child = spawn(binaryPath, process.argv.slice(2), {
21
+ stdio: 'inherit',
22
+ shell: false
23
+ });
24
+
25
+ child.on('exit', (code) => {
26
+ process.exit(code);
27
+ });
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polarityinc/paragon",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Paragon is the First AI QA Engineer and the Worlds best code reviewer.",
5
5
  "author": "Polarity Inc.",
6
6
  "private": false,
@@ -39,7 +39,7 @@ const GITHUB_RELEASE_URL = `https://github.com/Polarityinc/polarity-binaries/rel
39
39
 
40
40
  // Create bin directory
41
41
  const binDir = path.join(__dirname, '..', 'bin');
42
- const binPath = path.join(binDir, platform === 'windows' ? 'paragon.exe' : 'paragon');
42
+ const binPath = path.join(binDir, platform === 'windows' ? 'paragon.exe' : 'paragon-bin');
43
43
 
44
44
  if (!fs.existsSync(binDir)) {
45
45
  fs.mkdirSync(binDir, { recursive: true });
@@ -162,6 +162,33 @@ function installRipgrep() {
162
162
  }
163
163
  }
164
164
 
165
+ // Uninstall brew version if it exists
166
+ function uninstallBrewPolarity() {
167
+ if (platform !== 'darwin') {
168
+ return; // Only relevant for macOS
169
+ }
170
+
171
+ try {
172
+ // Check if brew is available
173
+ execSync('brew --version', { stdio: 'ignore' });
174
+
175
+ // Check if polarity is installed via brew
176
+ try {
177
+ execSync('brew list polarity', { stdio: 'ignore' });
178
+ console.log('Found existing Homebrew installation of polarity, uninstalling...');
179
+ execSync('brew uninstall polarity', { stdio: 'inherit' });
180
+ console.log('✓ Homebrew polarity uninstalled successfully\n');
181
+ } catch (e) {
182
+ // polarity not installed via brew, which is fine
183
+ }
184
+ } catch (e) {
185
+ // brew not available, skip
186
+ }
187
+ }
188
+
189
+ // Uninstall brew version before installing npm version
190
+ uninstallBrewPolarity();
191
+
165
192
  downloadFile(GITHUB_RELEASE_URL, binPath)
166
193
  .then(() => {
167
194
  // Make binary executable on Unix systems
@@ -169,26 +196,42 @@ downloadFile(GITHUB_RELEASE_URL, binPath)
169
196
  fs.chmodSync(binPath, 0o755);
170
197
  }
171
198
 
172
- console.log('✓ Paragon installed successfully!');
199
+ // ASCII Art Logo
200
+ console.log('\n');
201
+ console.log(' ██████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ ███╗ ██╗');
202
+ console.log(' ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔═══██╗████╗ ██║');
203
+ console.log(' ██████╔╝███████║██████╔╝███████║██║ ███╗██║ ██║██╔██╗ ██║');
204
+ console.log(' ██╔═══╝ ██╔══██║██╔══██╗██╔══██║██║ ██║██║ ██║██║╚██╗██║');
205
+ console.log(' ██║ ██║ ██║██║ ██║██║ ██║╚██████╔╝╚██████╔╝██║ ╚████║');
206
+ console.log(' ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝');
207
+ console.log('\n The Best Code Review Agent in the World\n');
208
+ console.log('✓ Paragon installed successfully!\n');
173
209
 
174
210
  // Check and install ripgrep if needed
175
211
  if (!checkRipgrep()) {
176
- console.log('\nripgrep is required but not found.');
177
212
  if (!installRipgrep()) {
178
- console.log('\n⚠️ Warning: Paragon requires ripgrep to function properly');
179
- console.log('Please install it manually: https://github.com/BurntSushi/ripgrep#installation');
213
+ console.log('⚠️ Could not auto-install ripgrep');
214
+ console.log('Please install it manually: https://github.com/BurntSushi/ripgrep#installation\n');
180
215
  } else {
181
- console.log('✓ ripgrep installed successfully!');
216
+ console.log('✓ ripgrep installed automatically!\n');
182
217
  }
183
218
  }
184
219
 
185
- console.log(`\nTo get started, run: paragon`);
186
- console.log('For authentication, run: paragon auth login');
220
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
221
+ console.log('\n📝 Next Steps:\n');
222
+ console.log(' 1. Authenticate with Polarity:');
223
+ console.log(' $ paragon auth login\n');
224
+ console.log(' 2. Get your API key from:');
225
+ console.log(' https://home.polarity.cc/app/settings\n');
226
+ console.log(' 3. Start using Paragon:');
227
+ console.log(' $ paragon\n');
228
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
229
+ console.log('\n📚 Documentation: https://polarity.cc/docs');
230
+ console.log('💬 Support: sales@polarity.cc\n');
187
231
  })
188
232
  .catch((err) => {
189
233
  console.error('✗ Installation failed:', err.message);
190
234
  console.error('\nPlease try one of these alternatives:');
191
- console.error('- Homebrew: brew install polarityinc/polarity/polarity');
192
235
  console.error('- Direct download: https://github.com/Polarityinc/polarity-binaries/releases');
193
236
  process.exit(1);
194
237
  });