Skip to content

Commit a6de2f2

Browse files
Alex HolmbergAlex Holmberg
authored andcommitted
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 lines
1 parent 67c3ebb commit a6de2f2

24 files changed

Lines changed: 3725 additions & 157 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ target/
1818
# Contains mutation testing data
1919
**/mutants.out*/
2020

21+
# Internal development docs (not for public repo)
22+
docs/phase2/
23+
2124
# RustRover
2225
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
2326
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore

0 commit comments

Comments
 (0)