mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 20:23:36 +00:00
- STACK.md - Technologies and dependencies - ARCHITECTURE.md - System design and patterns - STRUCTURE.md - Directory layout - CONVENTIONS.md - Code style and patterns - TESTING.md - Test structure - INTEGRATIONS.md - External services - CONCERNS.md - Technical debt and issues
231 lines
7.2 KiB
Markdown
231 lines
7.2 KiB
Markdown
# Technology Stack
|
|
|
|
**Analysis Date:** 2026-01-27
|
|
|
|
## Languages
|
|
|
|
**Primary:**
|
|
|
|
- TypeScript 5.9.3 - Used across all packages, apps, and configuration
|
|
- JavaScript (Node.js) - Runtime execution for scripts and tooling
|
|
|
|
**Secondary:**
|
|
|
|
- YAML 2.7.0 - Configuration files
|
|
- CSS/Tailwind CSS 4.1.18 - Frontend styling
|
|
|
|
## Runtime
|
|
|
|
**Environment:**
|
|
|
|
- Node.js 22.x (>=22.0.0 <23.0.0) - Required version, specified in `.nvmrc`
|
|
|
|
**Package Manager:**
|
|
|
|
- npm - Monorepo workspace management via npm workspaces
|
|
- Lockfile: `package-lock.json` (present)
|
|
|
|
## Frameworks
|
|
|
|
**Core - Frontend:**
|
|
|
|
- React 19.2.3 - UI framework with hooks and concurrent features
|
|
- Vite 7.3.0 - Build tool and dev server (`apps/ui/vite.config.ts`)
|
|
- Electron 39.2.7 - Desktop application runtime (`apps/ui/package.json`)
|
|
- TanStack Router 1.141.6 - File-based routing (React)
|
|
- Zustand 5.0.9 - State management (lightweight alternative to Redux)
|
|
- TanStack Query (React Query) 5.90.17 - Server state management
|
|
|
|
**Core - Backend:**
|
|
|
|
- Express 5.2.1 - HTTP server framework (`apps/server/package.json`)
|
|
- WebSocket (ws) 8.18.3 - Real-time bidirectional communication
|
|
- Claude Agent SDK (@anthropic-ai/claude-agent-sdk) 0.1.76 - AI provider integration
|
|
|
|
**Testing:**
|
|
|
|
- Playwright 1.57.0 - End-to-end testing (`apps/ui` E2E tests)
|
|
- Vitest 4.0.16 - Unit testing framework (runs on all packages and server)
|
|
- @vitest/ui 4.0.16 - Visual test runner UI
|
|
- @vitest/coverage-v8 4.0.16 - Code coverage reporting
|
|
|
|
**Build/Dev:**
|
|
|
|
- electron-builder 26.0.12 - Electron app packaging and distribution
|
|
- @vitejs/plugin-react 5.1.2 - Vite React support
|
|
- vite-plugin-electron 0.29.0 - Vite plugin for Electron main process
|
|
- vite-plugin-electron-renderer 0.14.6 - Vite plugin for Electron renderer
|
|
- ESLint 9.39.2 - Code linting (`apps/ui`)
|
|
- @typescript-eslint/eslint-plugin 8.50.0 - TypeScript ESLint rules
|
|
- Prettier 3.7.4 - Code formatting (root-level config)
|
|
- Tailwind CSS 4.1.18 - Utility-first CSS framework
|
|
- @tailwindcss/vite 4.1.18 - Tailwind Vite integration
|
|
|
|
**UI Components & Libraries:**
|
|
|
|
- Radix UI - Unstyled accessible component library (@radix-ui packages)
|
|
- react-dropdown-menu 2.1.16
|
|
- react-dialog 1.1.15
|
|
- react-select 2.2.6
|
|
- react-tooltip 1.2.8
|
|
- react-tabs 1.1.13
|
|
- react-collapsible 1.1.12
|
|
- react-checkbox 1.3.3
|
|
- react-radio-group 1.3.8
|
|
- react-popover 1.1.15
|
|
- react-slider 1.3.6
|
|
- react-switch 1.2.6
|
|
- react-scroll-area 1.2.10
|
|
- react-label 2.1.8
|
|
- Lucide React 0.562.0 - Icon library
|
|
- Geist 1.5.1 - Design system UI library
|
|
- Sonner 2.0.7 - Toast notifications
|
|
|
|
**Code Editor & Terminal:**
|
|
|
|
- @uiw/react-codemirror 4.25.4 - Code editor React component
|
|
- CodeMirror (@codemirror packages) 6.x - Editor toolkit
|
|
- xterm.js (@xterm/xterm) 5.5.0 - Terminal emulator
|
|
- @xterm/addon-fit 0.10.0 - Fit addon for terminal
|
|
- @xterm/addon-search 0.15.0 - Search addon for terminal
|
|
- @xterm/addon-web-links 0.11.0 - Web links addon
|
|
- @xterm/addon-webgl 0.18.0 - WebGL renderer for terminal
|
|
|
|
**Diagram/Graph Visualization:**
|
|
|
|
- @xyflow/react 12.10.0 - React flow diagram library
|
|
- dagre 0.8.5 - Graph layout algorithms
|
|
|
|
**Markdown/Content Rendering:**
|
|
|
|
- react-markdown 10.1.0 - Markdown parser and renderer
|
|
- remark-gfm 4.0.1 - GitHub Flavored Markdown support
|
|
- rehype-raw 7.0.0 - Raw HTML support in markdown
|
|
- rehype-sanitize 6.0.0 - HTML sanitization
|
|
|
|
**Data Validation & Parsing:**
|
|
|
|
- zod 3.24.1 or 4.0.0 - Schema validation and TypeScript type inference
|
|
|
|
**Utilities:**
|
|
|
|
- class-variance-authority 0.7.1 - CSS variant utilities
|
|
- clsx 2.1.1 - Conditional className utility
|
|
- cmdk 1.1.1 - Command menu/palette
|
|
- tailwind-merge 3.4.0 - Tailwind CSS conflict resolution
|
|
- usehooks-ts 3.1.1 - TypeScript React hooks
|
|
- @dnd-kit (drag-and-drop) 6.3.1 - Drag and drop library
|
|
|
|
**Font Libraries:**
|
|
|
|
- @fontsource - Web font packages (Cascadia Code, Fira Code, IBM Plex, Inconsolata, Inter, etc.)
|
|
|
|
**Development Utilities:**
|
|
|
|
- cross-spawn 7.0.6 - Cross-platform process spawning
|
|
- dotenv 17.2.3 - Environment variable loading
|
|
- tsx 4.21.0 - TypeScript execution for Node.js
|
|
- tree-kill 1.2.2 - Process tree killer utility
|
|
- node-pty 1.1.0-beta41 - PTY/terminal interface for Node.js
|
|
|
|
## Key Dependencies
|
|
|
|
**Critical - AI/Agent Integration:**
|
|
|
|
- @anthropic-ai/claude-agent-sdk 0.1.76 - Core Claude AI provider
|
|
- @github/copilot-sdk 0.1.16 - GitHub Copilot integration
|
|
- @openai/codex-sdk 0.77.0 - OpenAI Codex/GPT-4 integration
|
|
- @modelcontextprotocol/sdk 1.25.2 - Model Context Protocol servers
|
|
|
|
**Infrastructure - Internal Packages:**
|
|
|
|
- @automaker/types 1.0.0 - Shared TypeScript type definitions
|
|
- @automaker/utils 1.0.0 - Logging, error handling, utilities
|
|
- @automaker/platform 1.0.0 - Path management, security, process spawning
|
|
- @automaker/prompts 1.0.0 - AI prompt templates
|
|
- @automaker/model-resolver 1.0.0 - Claude model alias resolution
|
|
- @automaker/dependency-resolver 1.0.0 - Feature dependency ordering
|
|
- @automaker/git-utils 1.0.0 - Git operations & worktree management
|
|
- @automaker/spec-parser 1.0.0 - Project specification parsing
|
|
|
|
**Server Utilities:**
|
|
|
|
- express 5.2.1 - Web framework
|
|
- cors 2.8.5 - CORS middleware
|
|
- morgan 1.10.1 - HTTP request logger
|
|
- cookie-parser 1.4.7 - Cookie parsing middleware
|
|
- yaml 2.7.0 - YAML parsing and generation
|
|
|
|
**Type Definitions:**
|
|
|
|
- @types/express 5.0.6
|
|
- @types/node 22.19.3
|
|
- @types/react 19.2.7
|
|
- @types/react-dom 19.2.3
|
|
- @types/dagre 0.7.53
|
|
- @types/ws 8.18.1
|
|
- @types/cookie 0.6.0
|
|
- @types/cookie-parser 1.4.10
|
|
- @types/cors 2.8.19
|
|
- @types/morgan 1.9.10
|
|
|
|
**Optional Dependencies (Platform-specific):**
|
|
|
|
- lightningcss (various platforms) 1.29.2 - CSS parser (alternate to PostCSS)
|
|
- dmg-license 1.0.11 - DMG license dialog for macOS
|
|
|
|
## Configuration
|
|
|
|
**Environment:**
|
|
|
|
- `.env` and `.env.example` files in `apps/server/` and `apps/ui/`
|
|
- `dotenv` library loads variables from `.env` files
|
|
- Key env vars:
|
|
- `ANTHROPIC_API_KEY` - Claude API authentication
|
|
- `OPENAI_API_KEY` - OpenAI/Codex authentication
|
|
- `GITHUB_TOKEN` - GitHub API access
|
|
- `ANTHROPIC_BASE_URL` - Custom Claude endpoint (optional)
|
|
- `HOST` - Server bind address (default: 0.0.0.0)
|
|
- `HOSTNAME` - Hostname for URLs (default: localhost)
|
|
- `PORT` - Server port (default: 3008)
|
|
- `DATA_DIR` - Data storage directory (default: ./data)
|
|
- `ALLOWED_ROOT_DIRECTORY` - Restrict file operations
|
|
- `AUTOMAKER_MOCK_AGENT` - Enable mock agent for testing
|
|
- `AUTOMAKER_AUTO_LOGIN` - Skip login in dev (disabled in production)
|
|
- `VITE_HOSTNAME` - Frontend API hostname
|
|
|
|
**Build:**
|
|
|
|
- `apps/ui/electron-builder.config.json` or `apps/ui/package.json` build config
|
|
- Electron builder targets:
|
|
- macOS: DMG and ZIP
|
|
- Windows: NSIS installer
|
|
- Linux: AppImage, DEB, RPM
|
|
- Vite config: `apps/ui/vite.config.ts`, `apps/server/tsconfig.json`
|
|
- TypeScript config: `tsconfig.json` files in each package
|
|
|
|
## Platform Requirements
|
|
|
|
**Development:**
|
|
|
|
- Node.js 22.x
|
|
- npm (included with Node.js)
|
|
- Git (for worktree operations)
|
|
- Python (optional, for some dev scripts)
|
|
|
|
**Production:**
|
|
|
|
- Electron desktop app: Windows, macOS, Linux
|
|
- Web browser: Modern Chromium-based browsers
|
|
- Server: Any platform supporting Node.js 22.x
|
|
|
|
**Deployment Target:**
|
|
|
|
- Local desktop (Electron)
|
|
- Local web server (Express + Vite)
|
|
- Remote server deployment (Docker, systemd, or other orchestration)
|
|
|
|
---
|
|
|
|
_Stack analysis: 2026-01-27_
|