UNPKG

cortexweaver

Version:

CortexWeaver is a command-line interface (CLI) tool that orchestrates a swarm of specialized AI agents, powered by Claude Code and Gemini CLI, to assist in software development. It transforms a high-level project plan (plan.md) into a series of coordinate

178 lines (148 loc) 4.66 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.DockerBaseTemplates = void 0; const fs = __importStar(require("fs")); const path = __importStar(require("path")); /** * DockerBaseTemplates handles basic Docker files like Dockerfile and .dockerignore */ class DockerBaseTemplates { static async createDockerfile(projectRoot) { const dockerfilePath = path.join(projectRoot, 'Dockerfile'); if (fs.existsSync(dockerfilePath)) { return; // Don't overwrite existing Dockerfile } const dockerfileContent = `# CortexWeaver Project Dockerfile FROM node:18-alpine # Set working directory WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN npm ci --only=production # Copy source code COPY . . # Build the application RUN npm run build # Create non-root user RUN addgroup -g 1001 -S cortexweaver && \\ adduser -S cortexweaver -u 1001 # Change ownership of the app directory RUN chown -R cortexweaver:cortexweaver /app # Switch to non-root user USER cortexweaver # Expose port EXPOSE 3000 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \\ CMD curl -f http://localhost:3000/health || exit 1 # Start the application CMD ["npm", "start"] `; fs.writeFileSync(dockerfilePath, dockerfileContent); } static async createDockerIgnore(projectRoot) { const dockerIgnorePath = path.join(projectRoot, '.dockerignore'); if (fs.existsSync(dockerIgnorePath)) { return; // Don't overwrite existing .dockerignore } const dockerIgnoreContent = `# CortexWeaver Docker ignore file # Git .git .gitignore # Documentation README.md docs/ # Development files .env.example .env.local .env.development.local # Node modules (will be installed in container) node_modules/ npm-debug.log* # Build artifacts dist/ build/ # IDE files .vscode/ .idea/ # OS files .DS_Store Thumbs.db # Test files coverage/ .nyc_output # CortexWeaver specific .cortex-history/ .cortex-cache/ prototypes/ `; fs.writeFileSync(dockerIgnorePath, dockerIgnoreContent); } static async createDockerfileDev(projectRoot) { const dockerfileDevPath = path.join(projectRoot, 'Dockerfile.dev'); if (fs.existsSync(dockerfileDevPath)) { return; // Don't overwrite existing development Dockerfile } const dockerfileDevContent = `# Development Dockerfile for CortexWeaver FROM node:18-alpine # Install development tools RUN apk add --no-cache curl # Set working directory WORKDIR /app # Copy package files COPY package*.json ./ # Install all dependencies (including dev dependencies) RUN npm ci # Copy source code COPY . . # Create non-root user for development RUN addgroup -g 1001 -S cortexweaver && \\ adduser -S cortexweaver -u 1001 # Change ownership of the app directory RUN chown -R cortexweaver:cortexweaver /app # Switch to non-root user USER cortexweaver # Expose port and debugging port EXPOSE 3000 9229 # Development command with hot reload and debugging CMD ["npm", "run", "dev"] `; fs.writeFileSync(dockerfileDevPath, dockerfileDevContent); } } exports.DockerBaseTemplates = DockerBaseTemplates; //# sourceMappingURL=docker-base-templates.js.map