ultra-dex 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/hooks/pre-push +26 -0
- package/assets/live-templates/astro-sanity/.env.example +3 -0
- package/assets/live-templates/astro-sanity/README.md +14 -0
- package/assets/live-templates/astro-sanity/package.json +23 -0
- package/assets/live-templates/astro-sanity/src/pages/index.astro +14 -0
- package/assets/live-templates/nuxt3-supabase/.env.example +2 -0
- package/assets/live-templates/nuxt3-supabase/README.md +14 -0
- package/assets/live-templates/nuxt3-supabase/app.vue +5 -0
- package/assets/live-templates/nuxt3-supabase/package.json +22 -0
- package/assets/live-templates/solid-drizzle/.env.example +1 -0
- package/assets/live-templates/solid-drizzle/README.md +15 -0
- package/assets/live-templates/solid-drizzle/drizzle.config.ts +10 -0
- package/assets/live-templates/solid-drizzle/package.json +27 -0
- package/assets/live-templates/solid-drizzle/src/routes/index.tsx +10 -0
- package/assets/live-templates/tauri-desktop/README.md +13 -0
- package/assets/live-templates/tauri-desktop/package.json +18 -0
- package/assets/live-templates/tauri-desktop/src-tauri/tauri.conf.json +39 -0
- package/bin/ultra-dex.js +88 -26
- package/lib/acp/cursor.js +351 -0
- package/lib/acp/host.js +442 -0
- package/lib/auth/rbac.js +89 -0
- package/lib/auth/sso.js +146 -0
- package/lib/cache/index.js +280 -0
- package/lib/commands/advanced.js +145 -465
- package/lib/commands/agents.js +182 -43
- package/lib/commands/audit.js +223 -182
- package/lib/commands/auth.js +21 -0
- package/lib/commands/auto-implement.js +28 -26
- package/lib/commands/autonomous.js +94 -85
- package/lib/commands/banner.js +35 -23
- package/lib/commands/batch.js +50 -33
- package/lib/commands/brain.js +52 -2
- package/lib/commands/browser-auto.js +500 -0
- package/lib/commands/browser.js +1 -0
- package/lib/commands/build.js +134 -77
- package/lib/commands/ci-monitor.js +18 -2
- package/lib/commands/cloud.js +26 -4
- package/lib/commands/code-gen.js +58 -40
- package/lib/commands/config.js +69 -53
- package/lib/commands/dashboard.js +39 -16
- package/lib/commands/deploy.js +85 -60
- package/lib/commands/diff.js +58 -40
- package/lib/commands/doctor.js +323 -308
- package/lib/commands/estimate.js +238 -203
- package/lib/commands/exec.js +163 -289
- package/lib/commands/export.js +55 -15
- package/lib/commands/fetch.js +16 -15
- package/lib/commands/fix.js +13 -12
- package/lib/commands/generate.js +199 -156
- package/lib/commands/github.js +25 -22
- package/lib/commands/hooks.js +157 -33
- package/lib/commands/init.js +1269 -293
- package/lib/commands/integrate.js +56 -42
- package/lib/commands/memory.js +63 -47
- package/lib/commands/monitoring.js +130 -121
- package/lib/commands/pipeline.js +98 -91
- package/lib/commands/plan.js +220 -148
- package/lib/commands/playground.js +21 -19
- package/lib/commands/plugin.js +266 -110
- package/lib/commands/pty.js +251 -0
- package/lib/commands/quality-enhanced.js +32 -30
- package/lib/commands/quality.js +166 -114
- package/lib/commands/ralph.js +310 -0
- package/lib/commands/review.js +46 -44
- package/lib/commands/run.js +170 -49
- package/lib/commands/scaffold-enhanced.js +29 -27
- package/lib/commands/scaffold.js +49 -27
- package/lib/commands/search.js +251 -263
- package/lib/commands/serve.js +222 -193
- package/lib/commands/setup.js +66 -54
- package/lib/commands/state.js +220 -189
- package/lib/commands/suggest.js +170 -189
- package/lib/commands/swarm.js +423 -99
- package/lib/commands/sync-pm.js +88 -86
- package/lib/commands/sync.js +24 -23
- package/lib/commands/team.js +189 -128
- package/lib/commands/undo.js +229 -0
- package/lib/commands/upgrade.js +48 -37
- package/lib/commands/validate.js +39 -37
- package/lib/commands/vector-search.js +144 -0
- package/lib/commands/verify.js +141 -30
- package/lib/commands/voice.js +160 -30
- package/lib/commands/watch.js +48 -57
- package/lib/commands/workflows.js +148 -164
- package/lib/commands/workspace.js +38 -24
- package/lib/context/compactor.js +588 -0
- package/lib/context/test-compactor.js +71 -0
- package/lib/governance/audit.js +115 -0
- package/lib/governance/index.js +309 -0
- package/lib/governance/rules.js +196 -0
- package/lib/history/tracker.js +371 -0
- package/lib/history/undo.js +238 -0
- package/lib/kernel/agent.js +68 -4
- package/lib/kernel/editor.js +35 -12
- package/lib/kernel/session.js +35 -0
- package/lib/kernel/tools.js +4 -4
- package/lib/marketplace/client.js +339 -0
- package/lib/mcp/client.js +85 -24
- package/lib/mcp/context-engine.js +529 -0
- package/lib/mcp/graph.js +703 -98
- package/lib/mcp/host.js +179 -0
- package/lib/mcp/memory.js +45 -17
- package/lib/mcp/resources.js +34 -18
- package/lib/mcp/server.js +43 -11
- package/lib/mcp/tools.js +264 -3
- package/lib/mcp/websocket.js +144 -110
- package/lib/memory/memex.js +204 -0
- package/lib/plugins/guide.js +115 -0
- package/lib/plugins/index.js +482 -0
- package/lib/plugins/integration.js +129 -0
- package/lib/providers/base.js +9 -1
- package/lib/providers/claude.js +181 -109
- package/lib/providers/gemini.js +172 -92
- package/lib/providers/index.js +31 -2
- package/lib/providers/langchain.js +181 -274
- package/lib/providers/openai.js +161 -79
- package/lib/quality/checklist.js +175 -0
- package/lib/quality/hooks.js +42 -0
- package/lib/repl/pty.js +297 -0
- package/lib/swarm/coordinator.js +24 -9
- package/lib/swarm/index.js +50 -19
- package/lib/swarm/protocol.js +15 -13
- package/lib/swarm/tiers.js +5 -8
- package/lib/templates/prompts/generate-plan.js +162 -5
- package/lib/templates/ultra.js +29 -0
- package/lib/ui/TokenBudget.js +189 -0
- package/lib/ui/components/ArrowMenu.js +35 -0
- package/lib/ui/components/CollapsibleDiff.js +44 -0
- package/lib/ui/components/FileSelector.js +28 -0
- package/lib/ui/components/LoadingSpinner.js +17 -0
- package/lib/ui/components/Shimmer.js +23 -0
- package/lib/ui/components/Thinking.js +36 -0
- package/lib/ui/components/icons.js +10 -0
- package/lib/ui/interactive.js +7 -1
- package/lib/utils/config-manager.js +8 -1
- package/lib/utils/enhanced-output.js +67 -0
- package/lib/utils/errors.js +62 -0
- package/lib/utils/help.js +233 -49
- package/lib/utils/output.js +5 -4
- package/lib/utils/progress.js +236 -3
- package/lib/utils/prompts.js +185 -3
- package/lib/utils/spinners.js +39 -36
- package/lib/utils/status.js +321 -0
- package/lib/utils/tables.js +145 -18
- package/lib/utils/validation.js +24 -0
- package/lib/utils/version-display.js +26 -25
- package/package.json +11 -2
- package/lib/commands/plugins.js +0 -179
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Ultra-Dex Pre-Push Hook v1.0
|
|
3
|
+
# Auto-updates CONTEXT.md from git diff + runs live verification
|
|
4
|
+
# Install with: npx ultra-dex hooks install
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
echo ""
|
|
9
|
+
echo "🚀 Ultra-Dex: Running pre-push verification..."
|
|
10
|
+
echo ""
|
|
11
|
+
|
|
12
|
+
# Check if ultra-dex is available
|
|
13
|
+
if ! command -v ultra-dex >/dev/null 2>&1 && ! npx ultra-dex --version >/dev/null 2>&1; then
|
|
14
|
+
echo "⚠️ Ultra-Dex not found. Skipping pre-push verification."
|
|
15
|
+
echo " Install with: npm install -g ultra-dex"
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Update CONTEXT.md based on diff + run live verification
|
|
20
|
+
npx ultra-dex verify --live --pre-push
|
|
21
|
+
|
|
22
|
+
echo ""
|
|
23
|
+
echo "✅ Ultra-Dex pre-push checks passed"
|
|
24
|
+
echo ""
|
|
25
|
+
|
|
26
|
+
exit 0
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Astro + Sanity CMS Template
|
|
2
|
+
|
|
3
|
+
Starter template for building high-performance websites with Astro and Sanity CMS.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
- Astro 4.x
|
|
7
|
+
- Sanity Client integration
|
|
8
|
+
- TypeScript support
|
|
9
|
+
- SEO optimized
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
1. `npm install`
|
|
13
|
+
2. Update `.env` with your Sanity credentials
|
|
14
|
+
3. `npm run dev`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ultra-dex-astro-sanity",
|
|
3
|
+
"description": "Astro and Sanity CMS starter template",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "astro dev",
|
|
8
|
+
"start": "astro dev",
|
|
9
|
+
"build": "astro build",
|
|
10
|
+
"preview": "astro preview",
|
|
11
|
+
"astro": "astro"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"astro": "^4.10.0",
|
|
15
|
+
"@sanity/client": "^6.21.0",
|
|
16
|
+
"@sanity/astro": "^3.1.0",
|
|
17
|
+
"react": "^18.3.0",
|
|
18
|
+
"react-dom": "^18.3.0"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"typescript": "^5.4.0"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
|
+
<meta name="viewport" content="width=device-width" />
|
|
8
|
+
<meta name="generator" content={Astro.generator} />
|
|
9
|
+
<title>Astro + Sanity</title>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<h1>Astro + Sanity</h1>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Nuxt 3 + Supabase Template
|
|
2
|
+
|
|
3
|
+
Powerful full-stack applications with Nuxt 3 and Supabase.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
- Nuxt 3 (Vue.js)
|
|
7
|
+
- Supabase Auth & Database
|
|
8
|
+
- TypeScript
|
|
9
|
+
- SSR & Nitro Engine
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
1. `npm install`
|
|
13
|
+
2. Update `.env` with Supabase project URL and Anon Key
|
|
14
|
+
3. `npm run dev`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ultra-dex-nuxt3-supabase",
|
|
3
|
+
"description": "Nuxt 3 and Supabase starter template",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "nuxt build",
|
|
8
|
+
"dev": "nuxt dev",
|
|
9
|
+
"generate": "nuxt generate",
|
|
10
|
+
"preview": "nuxt preview",
|
|
11
|
+
"postinstall": "nuxt prepare"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@nuxtjs/supabase": "^1.2.0",
|
|
15
|
+
"nuxt": "^3.12.0",
|
|
16
|
+
"vue": "^3.4.0",
|
|
17
|
+
"vue-router": "^4.4.0"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"typescript": "^5.5.0"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DATABASE_URL=postgres://user:password@localhost:5432/dbname
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# SolidStart + Drizzle ORM Template
|
|
2
|
+
|
|
3
|
+
Performant full-stack SolidStart apps with type-safe database access via Drizzle ORM.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
- SolidStart (v1+)
|
|
7
|
+
- Drizzle ORM
|
|
8
|
+
- Type-safe SQL
|
|
9
|
+
- High performance reactivity
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
1. `npm install`
|
|
13
|
+
2. Update `.env` with your PostgreSQL connection string
|
|
14
|
+
3. `npm run db:push`
|
|
15
|
+
4. `npm run dev`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ultra-dex-solid-drizzle",
|
|
3
|
+
"description": "SolidStart and Drizzle ORM starter template",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"private": true,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"dev": "vinxi dev",
|
|
9
|
+
"build": "vinxi build",
|
|
10
|
+
"start": "vinxi start",
|
|
11
|
+
"db:push": "drizzle-kit push",
|
|
12
|
+
"db:studio": "drizzle-kit studio"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@solidjs/meta": "^0.29.0",
|
|
16
|
+
"@solidjs/router": "^0.13.0",
|
|
17
|
+
"@solidjs/start": "^1.0.0",
|
|
18
|
+
"drizzle-orm": "^0.31.0",
|
|
19
|
+
"postgres": "^3.4.0",
|
|
20
|
+
"solid-js": "^1.8.0"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"drizzle-kit": "^0.22.0",
|
|
24
|
+
"typescript": "^5.5.0",
|
|
25
|
+
"vinxi": "^0.3.0"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Tauri Desktop App Template
|
|
2
|
+
|
|
3
|
+
Lightweight, secure, and fast desktop apps built with Rust and web technologies.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
- Tauri 1.x
|
|
7
|
+
- Native OS integration
|
|
8
|
+
- Cross-platform (Windows, macOS, Linux)
|
|
9
|
+
- Secure-by-default architecture
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
1. `npm install`
|
|
13
|
+
2. `npm run dev`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ultra-dex-tauri-desktop",
|
|
3
|
+
"description": "Tauri desktop app starter template",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"tauri": "tauri",
|
|
8
|
+
"dev": "tauri dev",
|
|
9
|
+
"build": "tauri build"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@tauri-apps/api": "^1.5.0"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@tauri-apps/cli": "^1.5.0",
|
|
16
|
+
"typescript": "^5.4.0"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"package": {
|
|
3
|
+
"productName": "UltraDexApp",
|
|
4
|
+
"version": "0.1.0"
|
|
5
|
+
},
|
|
6
|
+
"build": {
|
|
7
|
+
"distDir": "../dist",
|
|
8
|
+
"devPath": "http://localhost:1420",
|
|
9
|
+
"beforeDevCommand": "npm run dev",
|
|
10
|
+
"beforeBuildCommand": "npm run build"
|
|
11
|
+
},
|
|
12
|
+
"tauri": {
|
|
13
|
+
"bundle": {
|
|
14
|
+
"active": true,
|
|
15
|
+
"targets": "all",
|
|
16
|
+
"identifier": "com.ultradex.app",
|
|
17
|
+
"icon": [
|
|
18
|
+
"icons/32x32.png",
|
|
19
|
+
"icons/128x128.png",
|
|
20
|
+
"icons/128x128@2x.png",
|
|
21
|
+
"icons/icon.icns",
|
|
22
|
+
"icons/icon.ico"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"allowlist": {
|
|
26
|
+
"all": true
|
|
27
|
+
},
|
|
28
|
+
"windows": [
|
|
29
|
+
{
|
|
30
|
+
"title": "UltraDex Desktop",
|
|
31
|
+
"width": 800,
|
|
32
|
+
"height": 600
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"security": {
|
|
36
|
+
"csp": null
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
package/bin/ultra-dex.js
CHANGED
|
@@ -8,11 +8,14 @@ import boxen from 'boxen';
|
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import { setDoomsdayMode } from '../lib/utils/theme-state.js';
|
|
10
10
|
import { VERSION, PACKAGE_NAME } from '../lib/utils/version.js';
|
|
11
|
+
import { formatInfo, formatWarning, formatSuccess } from '../lib/utils/status.js';
|
|
11
12
|
|
|
12
13
|
// Initialize monitoring and configuration systems
|
|
13
14
|
import { monitoring } from '../lib/utils/monitoring.js';
|
|
14
15
|
import { configManager } from '../lib/utils/config-manager.js';
|
|
15
16
|
import { pluginManager } from '../lib/plugin-system.js';
|
|
17
|
+
import { governance } from '../lib/governance/index.js';
|
|
18
|
+
import { installHistoryTracking } from '../lib/history/tracker.js';
|
|
16
19
|
import '../lib/utils/error-recovery.js';
|
|
17
20
|
|
|
18
21
|
// Wait for initialization
|
|
@@ -20,7 +23,9 @@ try {
|
|
|
20
23
|
await Promise.all([
|
|
21
24
|
monitoring.initialize(),
|
|
22
25
|
configManager.load(),
|
|
23
|
-
pluginManager.initialize()
|
|
26
|
+
pluginManager.initialize(),
|
|
27
|
+
governance.init(),
|
|
28
|
+
installHistoryTracking()
|
|
24
29
|
]);
|
|
25
30
|
} catch (error) {
|
|
26
31
|
console.error(chalk.red('Failed to initialize systems:'), error.message);
|
|
@@ -46,21 +51,38 @@ if (process.argv.includes('--help') && process.argv.includes('--doomsday')) {
|
|
|
46
51
|
process.exit(0);
|
|
47
52
|
}
|
|
48
53
|
|
|
54
|
+
// Check for ACP (Agent Client Protocol) mode - GitHub's agent portability standard
|
|
55
|
+
const isAcpMode = process.argv.includes('--acp');
|
|
56
|
+
if (isAcpMode) {
|
|
57
|
+
const acpPort = process.argv.find(arg => arg.startsWith('--acp-port='))?.split('=')[1];
|
|
58
|
+
const acpHttp = process.argv.includes('--acp-http');
|
|
59
|
+
|
|
60
|
+
(async () => {
|
|
61
|
+
try {
|
|
62
|
+
const { startACPHost } = await import('../lib/acp/host.js');
|
|
63
|
+
await startACPHost({
|
|
64
|
+
stdio: !acpHttp,
|
|
65
|
+
http: acpHttp,
|
|
66
|
+
port: acpPort ? parseInt(acpPort, 10) : 3002
|
|
67
|
+
});
|
|
68
|
+
} catch (error) {
|
|
69
|
+
console.error(chalk.red('\n✕ Failed to start ACP Host:'), error.message);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
})();
|
|
73
|
+
|
|
74
|
+
// ACP mode takes over completely - don't process other commands
|
|
75
|
+
await new Promise(() => {});
|
|
76
|
+
}
|
|
77
|
+
|
|
49
78
|
// Check for updates
|
|
50
79
|
const pkg = { name: PACKAGE_NAME, version: VERSION };
|
|
51
80
|
const notifier = updateNotifier({ pkg, updateCheckInterval: 1000 * 60 * 60 * 24 });
|
|
52
81
|
|
|
53
82
|
if (notifier.update) {
|
|
54
|
-
console.log(
|
|
55
|
-
`Update available! ${
|
|
56
|
-
`
|
|
57
|
-
`Run ${chalk.cyan('npm install -g ultra-dex')} to update`,
|
|
58
|
-
{
|
|
59
|
-
padding: 1,
|
|
60
|
-
margin: 1,
|
|
61
|
-
borderStyle: 'round',
|
|
62
|
-
borderColor: 'yellow'
|
|
63
|
-
}
|
|
83
|
+
console.log(formatWarning(
|
|
84
|
+
`Update available! ${notifier.update.current} → ${notifier.update.latest}\n` +
|
|
85
|
+
`Run ${chalk.cyan('npm install -g ultra-dex')} to update`
|
|
64
86
|
));
|
|
65
87
|
}
|
|
66
88
|
|
|
@@ -94,6 +116,7 @@ import { exportCommand } from '../lib/commands/export.js';
|
|
|
94
116
|
import { upgradeCommand } from '../lib/commands/upgrade.js';
|
|
95
117
|
import { configCommand } from '../lib/commands/config.js';
|
|
96
118
|
|
|
119
|
+
import { registerRalphCommand } from '../lib/commands/ralph.js';
|
|
97
120
|
import { registerWorkflowCommand } from '../lib/commands/workflows.js';
|
|
98
121
|
import { registerPlanCommand } from '../lib/commands/plan.js';
|
|
99
122
|
import { registerSuggestCommand } from '../lib/commands/suggest.js';
|
|
@@ -107,13 +130,20 @@ import { registerMemoryCommand } from '../lib/commands/memory.js';
|
|
|
107
130
|
import { registerScaffoldCommand } from '../lib/commands/scaffold.js';
|
|
108
131
|
import { registerSystemConfigCommand, registerMetricsCommand, registerHealthCommand, registerDebugCommand } from '../lib/commands/monitoring.js';
|
|
109
132
|
import { registerBrainCommand } from '../lib/commands/brain.js';
|
|
133
|
+
import { registerEstimateCommand } from '../lib/commands/estimate.js';
|
|
134
|
+
import { registerUndoCommand } from '../lib/commands/undo.js';
|
|
135
|
+
import { startACPHost } from '../lib/acp/host.js';
|
|
136
|
+
import { createEnhancedHelp, formatHelpSection, formatUsage, formatDescription, formatOptions } from '../lib/utils/help.js';
|
|
110
137
|
|
|
111
138
|
// v3.4.3 Commands - 2026 Competitive Features
|
|
139
|
+
import { registerBrowserCommand } from '../lib/commands/browser.js';
|
|
112
140
|
import { registerExecCommand } from '../lib/commands/exec.js';
|
|
113
141
|
import { registerGitHubCommand } from '../lib/commands/github.js';
|
|
114
142
|
import { registerSearchCommand } from '../lib/commands/search.js';
|
|
143
|
+
import { registerVectorSearchCommand } from '../lib/commands/vector-search.js';
|
|
115
144
|
import { registerCloudCommand } from '../lib/commands/cloud.js';
|
|
116
145
|
import { registerAutonomousCommand } from '../lib/commands/autonomous.js';
|
|
146
|
+
import { registerPTYCommands } from '../lib/commands/pty.js';
|
|
117
147
|
import { startInteractiveMode } from '../lib/ui/interactive.js';
|
|
118
148
|
import { theme, ultraGradient } from '../lib/ui/theme.js';
|
|
119
149
|
|
|
@@ -124,20 +154,16 @@ program.configureHelp({
|
|
|
124
154
|
formatHelp: (cmd, _helper) => {
|
|
125
155
|
// For subcommands, build command-specific help
|
|
126
156
|
if (cmd.parent) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
output += '\n';
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return output;
|
|
157
|
+
const commandData = {
|
|
158
|
+
name: cmd.name(),
|
|
159
|
+
description: cmd.description(),
|
|
160
|
+
options: cmd.options,
|
|
161
|
+
examples: cmd._examples || [],
|
|
162
|
+
tips: cmd._tips || [],
|
|
163
|
+
troubleshooting: cmd._troubleshooting || []
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
return createEnhancedHelp(commandData);
|
|
141
167
|
}
|
|
142
168
|
|
|
143
169
|
const gradientBanner = ultraGradient(banner);
|
|
@@ -160,7 +186,8 @@ program.configureHelp({
|
|
|
160
186
|
|
|
161
187
|
output += ` ${theme.title('OPTIONS')}\n`;
|
|
162
188
|
output += ` ${theme.primary('-V, --version').padEnd(20)} ${theme.dim('output the version number')}\n`;
|
|
163
|
-
output += ` ${theme.primary('-h, --help').padEnd(20)} ${theme.dim('display help for command')}\n
|
|
189
|
+
output += ` ${theme.primary('-h, --help').padEnd(20)} ${theme.dim('display help for command')}\n`;
|
|
190
|
+
output += ` ${theme.primary('--acp').padEnd(20)} ${theme.dim('start ACP (Agent Client Protocol) host')}\n\n`;
|
|
164
191
|
|
|
165
192
|
output += ` ${theme.dim('─────────────────────────────────────────────────────────')}\n`;
|
|
166
193
|
output += ` ${theme.subtitle('Run ultra-dex without arguments to launch the Interactive Dashboard')}\n\n`;
|
|
@@ -264,14 +291,49 @@ registerDebugCommand(program);
|
|
|
264
291
|
|
|
265
292
|
// v3.4.3 Commands - 2026 Competitive Features
|
|
266
293
|
registerExecCommand(program);
|
|
294
|
+
registerBrowserCommand(program);
|
|
267
295
|
registerGitHubCommand(program);
|
|
268
296
|
registerSearchCommand(program);
|
|
297
|
+
registerVectorSearchCommand(program);
|
|
269
298
|
registerCloudCommand(program);
|
|
270
299
|
registerBrainCommand(program);
|
|
271
300
|
registerAutonomousCommand(program);
|
|
301
|
+
registerRalphCommand(program);
|
|
272
302
|
registerWorkspaceCommand(program);
|
|
273
303
|
registerBatchCommand(program);
|
|
274
304
|
registerPipelineCommand(program);
|
|
305
|
+
registerPTYCommands(program);
|
|
306
|
+
registerEstimateCommand(program);
|
|
307
|
+
registerUndoCommand(program);
|
|
308
|
+
|
|
309
|
+
// ACP (Agent Client Protocol) Commands
|
|
310
|
+
import { cursorCommand } from '../lib/acp/cursor.js';
|
|
311
|
+
|
|
312
|
+
program
|
|
313
|
+
.command('acp')
|
|
314
|
+
.description('Start ACP (Agent Client Protocol) host for IDE integration')
|
|
315
|
+
.option('--http', 'Run in HTTP mode instead of stdio')
|
|
316
|
+
.option('--port <port>', 'Port for HTTP mode', '3002')
|
|
317
|
+
.option('--stdio', 'Run in stdio mode (default)', true)
|
|
318
|
+
.action(async (options) => {
|
|
319
|
+
const { startACPHost } = await import('../lib/acp/host.js');
|
|
320
|
+
await startACPHost({
|
|
321
|
+
stdio: !options.http,
|
|
322
|
+
http: options.http,
|
|
323
|
+
port: parseInt(options.port, 10)
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
program
|
|
328
|
+
.command('cursor')
|
|
329
|
+
.description('Manage Cursor 2.0 IDE integration')
|
|
330
|
+
.option('--install', 'Install Cursor ACP integration (default)')
|
|
331
|
+
.option('--uninstall', 'Remove Cursor ACP integration')
|
|
332
|
+
.option('--status', 'Check Cursor integration status')
|
|
333
|
+
.option('--vscode', 'Also update VS Code settings')
|
|
334
|
+
.action(async (options) => {
|
|
335
|
+
await cursorCommand(options);
|
|
336
|
+
});
|
|
275
337
|
|
|
276
338
|
// Activate plugins after all commands are registered
|
|
277
339
|
try {
|