feat: Add intelligent auto-router and enhanced integrations

- Add intelligent-router.sh hook for automatic agent routing
- Add AUTO-TRIGGER-SUMMARY.md documentation
- Add FINAL-INTEGRATION-SUMMARY.md documentation
- Complete Prometheus integration (6 commands + 4 tools)
- Complete Dexto integration (12 commands + 5 tools)
- Enhanced Ralph with access to all agents
- Fix /clawd command (removed disable-model-invocation)
- Update hooks.json to v5 with intelligent routing
- 291 total skills now available
- All 21 commands with automatic routing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
admin
2026-01-28 00:27:56 +04:00
Unverified
parent 3b128ba3bd
commit b52318eeae
1724 changed files with 351216 additions and 0 deletions

337
dexto/DEVELOPMENT.md Normal file
View File

@@ -0,0 +1,337 @@
# Development Guide
This guide covers development workflows for working on the Dexto codebase.
## Table of Contents
- [Project Structure](#project-structure)
- [Development Setup](#development-setup)
- [Development Workflows](#development-workflows)
- [Build Commands](#build-commands)
- [Testing](#testing)
- [Code Quality](#code-quality)
- [Publishing](#publishing)
## Project Structure
Dexto is a monorepo using pnpm workspaces with the following structure:
```
dexto/
├── packages/
│ ├── core/ # @dexto/core - Core business logic
│ ├── cli/ # dexto - CLI application
│ └── webui/ # @dexto/webui - Next.js web interface
├── scripts/ # Build and development scripts
├── agents/ # Agent configurations
└── docs/ # Documentation
```
### Package Dependencies
- `dexto` (CLI) depends on `@dexto/core`
- `@dexto/webui` is embedded into CLI at build time
- All packages version together (fixed versioning)
## Development Setup
### Prerequisites
- Node.js >= 20.0.0
- pnpm (automatically managed via Corepack)
### Initial Setup
```bash
# Clone the repository
git clone https://github.com/truffle-ai/dexto.git
cd dexto
# Enable Corepack (if not already enabled) - this picks pnpm version
corepack enable
# Install dependencies (Corepack will use the correct pnpm version)
pnpm install
# Build all packages
pnpm run build
```
## Development Workflows
### 1. Hot Reload Development (Recommended)
Best for frontend development with automatic reload:
```bash
pnpm run dev
```
This command:
- Builds core and CLI packages
- Runs API server on port 3001 (from built dist)
- Runs WebUI dev server on port 3000 (with hot reload)
- Prefixes output with `[API]` and `[UI]` for clarity
- **Automatically sets `DEXTO_DEV_MODE=true`** to use repository agent configs
Access:
- API: http://localhost:3001
- WebUI: http://localhost:3000
### 2. Symlink Development
Best for CLI development with instant changes:
```bash
# Create global symlink (full build with WebUI)
pnpm run link-cli
# Create global symlink (fast, no WebUI)
pnpm run link-cli-fast
# Remove symlink
pnpm run unlink-cli
```
Now `dexto` command uses your local development code directly.
### 3. Production-like Testing
Test the actual installation experience:
```bash
# Install globally from local build (full)
pnpm run install-cli
# Install globally from local build (fast, no WebUI)
pnpm run install-cli-fast
```
This creates tarballs and installs them globally, simulating `npm install -g dexto`.
### Switching Between Workflows
The `link-cli` and `install-cli` commands are mutually exclusive:
- Running `link-cli` removes any npm installation
- Running `install-cli` removes any pnpm symlink
- Use `unlink-cli` to remove everything
## Build Commands
### Complete Builds
```bash
# Full build with cleaning
pnpm run build
# Build all packages without cleaning
pnpm run build:all
# Build with type checking
pnpm run build:check
```
### Package-Specific Builds
```bash
# Build individual packages
pnpm run build:core
pnpm run build:cli
pnpm run build:webui
# Build CLI and its dependencies only (no WebUI)
pnpm run build:cli-only
```
### WebUI Embedding
The WebUI is embedded into the CLI's dist folder during build:
```bash
# Embed WebUI into CLI dist (run after building WebUI)
pnpm run embed-webui
```
## Testing
### Automated Tests
```bash
# Run all tests
pnpm test
# Run unit tests only
pnpm run test:unit
# Run integration tests only
pnpm run test:integ
# Run tests with coverage
pnpm run test:ci
```
### Manual testing
1. Common commands
```bash
cd ~
dexto --help
dexto "what is the current time"
dexto "list files in current directory"
# Test other model override in CLI
dexto -m gpt-5-mini "what is the current date"
# Test web mode
dexto
# Test discord bot mode (requires additional setup)
dexto --mode discord
# Test telegram bot mode (requires additional setup)
dexto --mode telegram
```
2. Execution contexts
Dexto CLI operates differently based on the directory you are running in.
- source context -> when Dexto CLI is run in the source repository
- global context -> when Dexto CLI is run outside the source repository
- project context -> when Dexto CLI is run in a project that consumes @dexto dependencies
Based on execution context, Dexto CLI will use defaults for log path, default agent/agent registry.
Run the CLI in different places and see the console logs to understand this.
Test above commands in different execution contexts for manual testing coverage.
**Developer Mode Environment Variable:**
When running `dexto` from within this repository, it normally uses your `dexto setup` preferences and global `~/.dexto` directory. To force isolated testing with repository files:
```bash
export DEXTO_DEV_MODE=true # Use repo configs and local .dexto directory
```
**DEXTO_DEV_MODE Behavior:**
- **Agent Config**: Uses `agents/coding-agent/coding-agent.yml` from repo (instead of `~/.dexto/agents/`)
- **Logs/Database**: Uses `repo/.dexto/` (instead of `~/.dexto/`)
- **Preferences**: Skips global setup validation
- **Use Case**: Isolated testing and development on Dexto itself
**Note**: `pnpm run dev` automatically sets `DEXTO_DEV_MODE=true`, so the development server always uses repository configs and local storage.
## Code Quality
### Type Checking
```bash
# Type check all packages
pnpm run typecheck
# Type check with file watching
pnpm run typecheck:watch
# Type check specific package
pnpm run typecheck:core
```
### Linting
```bash
# Run linter
pnpm run lint
# Fix linting issues
pnpm run lint:fix
```
### Pre-commit Checks
Before committing, always run:
```bash
pnpm run build:check # Typecheck + build
pnpm test # Run tests
pnpm run lint # Check linting
```
## Publishing
### Changeset Workflow
We use [Changesets](https://github.com/changesets/changesets) for version management:
1. **Create a changeset** for your changes:
```bash
pnpm changeset
```
2. **Select packages** affected by your change
3. **Choose version bump** (patch/minor/major)
4. **Write summary** of your changes
### Version Strategy
- **Fixed versioning**: All packages version together
- `@dexto/core` and `dexto` always have the same version
- `@dexto/webui` is private and not published
### Publishing Process
Publishing is automated via GitHub Actions:
1. Merge PR with changeset
2. Bot creates "Version Packages" PR
3. Merge version PR to trigger npm publish
## Common Tasks
### Clean Everything
```bash
# Clean all build artifacts and caches
pnpm run clean
# Clean storage only
pnpm run clean:storage
```
### Start Production Server
```bash
# Start the CLI (requires build first)
pnpm start
```
### Working with Turbo
Turbo commands run tasks across all packages:
```bash
pnpm run repo:build # Build all packages with Turbo
pnpm run repo:test # Test all packages with Turbo
pnpm run repo:lint # Lint all packages with Turbo
pnpm run repo:typecheck # Typecheck all packages with Turbo
```
## Troubleshooting
### Native Dependencies
If you see errors about missing bindings (e.g., better-sqlite3):
```bash
# Reinstall dependencies
pnpm install
# If that doesn't work, clean and reinstall
pnpm run clean
pnpm install
```
### Port Conflicts
Default ports:
- API/Server: 3001
- WebUI Dev: 3000
Set environment variables to use different ports:
```bash
PORT=4000 API_PORT=4001 pnpm run dev
```
### Global Command Not Found
If `dexto` command is not found after linking:
```bash
# Check global installations
pnpm list -g
npm list -g dexto --depth=0
# Verify PATH includes pnpm/npm global bin
echo $PATH
```
## Questions?
- Check [CONTRIBUTING.md](./CONTRIBUTING.md) for contribution guidelines
- Open an issue for bugs or feature requests
- Join our Discord for development discussions