Commit a6de2f2
feat: Add AI agent layer with Rig framework and harden framework detection
## Agent Layer (Phase 2 Implementation)
### Core Agent Architecture
- Integrate Rig framework for LLM-powered AI agent capabilities
- Add OpenAI provider with streaming support and multi-turn conversations
- Configure 300 turn limit for thorough investigation before responding
- Implement persistent API key storage in ~/.syncable/credentials.toml
### Agent Tools Suite
- AnalyzeTool: Analyze project directories for technology detection
- DiscoverServicesTool: Find all services/packages in monorepos
- SearchCodeTool: Grep-like regex search across codebases
- FindFilesTool: Find files by name/pattern/extension
- GenerateIaCTool: Generate Dockerfile/docker-compose from analysis
- SecurityScanTool: Run security scans with configurable modes
### Interactive UI
- Real-time streaming output with spinner animations
- Tool call visibility for transparency
- Interactive first-run setup for provider selection
## Framework Detection Hardening
### JavaScript/TypeScript
- React Router v7: Fix false positives by requiring @react-router/dev
- Encore: Remove generic 'encore' pattern, require 'encore.dev'
- Add file_indicators for SvelteKit, Nuxt.js, Astro, SolidStart
- Add conflicts_with for mutually exclusive frameworks
- Separate React Router library from React Router v7 framework
### Go
- Add Encore Go rule with encore.app file indicator
- Fix GORM: require 'gorm.io/gorm' not generic 'gorm'
- Fix Xorm: require 'xorm.io/xorm' not generic 'xorm'
- Fix Cobra/Viper: require full github.com paths
- Fix Zap/Logrus/Ginkgo: require full package paths
### Python
- Fix TurboGears: 'turbogears' not generic 'tg'
- Fix Fire: rename to 'Python Fire' with 'python-fire' pattern
- Fix Asgi: rename to 'ASGI Server', use uvicorn/hypercorn/daphne
- Add file_indicators: Django (manage.py), Flask (app.py), etc.
- Remove duplicate case-sensitive patterns
### Java
- Spring Boot: Add application.properties/yml file_indicators
- Quarkus/Micronaut/Helidon: Use group:artifact patterns
- Fix Jakarta EE: Specific artifacts, not 'jakarta.' prefix
- Fix Apache Commons: Specific modules, not 'commons-' prefix
- Add conflicts_with for mutually exclusive frameworks
### Rust
- Add Rocket.toml file_indicator
- Add requires (Tokio/async-std) for web frameworks
- Lower confidence for generic library names
- Add secondary patterns (salvo_core, gotham_derive, etc.)
## Monorepo Analysis
- Enhanced detection for workspaces and service directories
- Better package.json/Cargo.toml/go.mod parsing
- Improved aggressive exploration via system prompt
## CLI Enhancements
- Add 'chat' command for interactive AI conversations
- Provider selection with OpenAI/Anthropic/Ollama support
- First-run credential setup wizard
Files changed: 26 | +4455 -157 lines1 parent 67c3ebb commit a6de2f2
24 files changed
Lines changed: 3725 additions & 157 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
| |||
0 commit comments