Files
automaker/.planning/codebase/STACK.md
Shirone c30cde242a docs: map existing codebase
- 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
2026-01-27 13:48:24 +01:00

7.2 KiB

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