Merge branch 'main' into codex/split-featureideacloud-into-subcomponents

This commit is contained in:
2026-01-18 00:22:51 +00:00
committed by GitHub
135 changed files with 6703 additions and 5352 deletions

View File

@@ -1,4 +1,6 @@
{
"title": "Agents Files",
"subtitle": "AI agent configuration and service architecture",
"overview": "CodeForge uses a modular AI service architecture that integrates OpenAI's GPT models across all features. Each designer has specialized prompts and validation logic to ensure high-quality generated code.",
"coreServices": [
{
@@ -30,18 +32,81 @@
]
},
{
"filename": "generators.ts",
"path": "/src/lib/generators.ts",
"description": "Code generation utilities for project export",
"filename": "generateNextJSProject.ts",
"path": "/src/lib/generators/generateNextJSProject.ts",
"description": "Generates Next.js project scaffolding",
"features": [
"Next.js project structure generation",
"Prisma schema file generation",
"Material UI theme configuration",
"Playwright test file generation",
"Storybook story file generation",
"Unit test file generation",
"Flask application structure",
"Package.json configuration"
"Package.json defaults and scripts",
"Prisma schema wiring for data models",
"Material UI theme bootstrap",
"README and environment defaults"
]
},
{
"filename": "generatePrismaSchema.ts",
"path": "/src/lib/generators/generatePrismaSchema.ts",
"description": "Creates Prisma schema files from models",
"features": [
"Model definition generation",
"Field-level attributes and defaults",
"Datasource and client config",
"Array and optional field handling"
]
},
{
"filename": "generateMUITheme.ts",
"path": "/src/lib/generators/generateMUITheme.ts",
"description": "Builds Material UI theme configuration",
"features": [
"Light and dark palette generation",
"Typography and spacing configuration",
"Shape/border radius settings",
"Theme export defaults"
]
},
{
"filename": "generatePlaywrightTests.ts",
"path": "/src/lib/generators/generatePlaywrightTests.ts",
"description": "Generates Playwright test suites",
"features": [
"Test suite scaffolding",
"Step-by-step action scripts",
"Assertion generation",
"Default test fallback"
]
},
{
"filename": "generateStorybookStories.ts",
"path": "/src/lib/generators/generateStorybookStories.ts",
"description": "Creates Storybook story files",
"features": [
"Stories grouped by component",
"Meta configuration generation",
"Args mapping for variants",
"Story file structure"
]
},
{
"filename": "generateUnitTests.ts",
"path": "/src/lib/generators/generateUnitTests.ts",
"description": "Generates unit test files",
"features": [
"Component, hook, and module tests",
"Test setup and teardown blocks",
"Assertion generation",
"Dynamic test naming"
]
},
{
"filename": "generateFlaskApp.ts",
"path": "/src/lib/generators/generateFlaskApp.ts",
"description": "Creates Flask backend scaffolding",
"features": [
"App factory generation",
"Blueprint registration",
"Environment and requirements files",
"README and setup instructions"
]
}
],

View File

@@ -53,62 +53,66 @@
]
}
],
"pipelineStages": [
{
"stage": "Lint",
"description": "ESLint and TypeScript type checking to ensure code quality",
"duration": "~1-2 min"
},
{
"stage": "Test",
"description": "Unit tests with coverage reporting and result artifacts",
"duration": "~2-3 min"
},
{
"stage": "Build",
"description": "Production build with artifact generation for deployment",
"duration": "~2-4 min"
},
{
"stage": "E2E Tests",
"description": "Playwright end-to-end tests with HTML reports",
"duration": "~3-5 min"
},
{
"stage": "Security",
"description": "npm audit and Trivy vulnerability scanning",
"duration": "~1-2 min"
},
{
"stage": "Docker Build",
"description": "Multi-stage Docker image build and push to registry",
"duration": "~3-5 min"
},
{
"stage": "Deploy",
"description": "Automated deployment to staging and production environments",
"duration": "~1-3 min"
}
],
"dockerConfig": {
"pipeline": {
"intro": "All CI/CD configurations follow a similar multi-stage pipeline structure:",
"stages": [
{
"stage": "Lint",
"description": "ESLint and TypeScript type checking to ensure code quality",
"duration": "~1-2 min"
},
{
"stage": "Test",
"description": "Unit tests with coverage reporting and result artifacts",
"duration": "~2-3 min"
},
{
"stage": "Build",
"description": "Production build with artifact generation for deployment",
"duration": "~2-4 min"
},
{
"stage": "E2E Tests",
"description": "Playwright end-to-end tests with HTML reports",
"duration": "~3-5 min"
},
{
"stage": "Security",
"description": "npm audit and Trivy vulnerability scanning",
"duration": "~1-2 min"
},
{
"stage": "Docker Build",
"description": "Multi-stage Docker image build and push to registry",
"duration": "~3-5 min"
},
{
"stage": "Deploy",
"description": "Automated deployment to staging and production environments",
"duration": "~1-3 min"
}
]
},
"docker": {
"files": [
{
"file": "Dockerfile",
"name": "Dockerfile",
"description": "Multi-stage build with Node.js builder and Nginx runtime"
},
{
"file": "nginx.conf",
"name": "nginx.conf",
"description": "Production Nginx configuration with health checks and caching"
},
{
"file": "docker-compose.yml",
"name": "docker-compose.yml",
"description": "Local development and deployment orchestration"
},
{
"file": ".dockerignore",
"name": ".dockerignore",
"description": "Optimized build context by excluding unnecessary files"
}
],
"commands": "# Build image locally\ndocker build -t codeforge:local .\n\n# Run container\ndocker run -p 3000:80 codeforge:local\n\n# Use docker-compose\ndocker-compose up -d\n\n# Pull from registry\ndocker pull ghcr.io/<username>/<repo>:latest",
"features": [
"Multi-stage build reduces final image size to ~50MB",
"Nginx serves static files with gzip compression",
@@ -121,54 +125,54 @@
{
"variable": "NODE_VERSION",
"description": "Node.js version (default: 20)",
"required": false
"required": "No"
},
{
"variable": "REGISTRY",
"description": "Docker registry URL (default: ghcr.io)",
"required": false
"required": "No"
},
{
"variable": "STAGING_WEBHOOK_URL",
"description": "Webhook for staging deployments",
"required": false
"required": "Optional"
},
{
"variable": "PRODUCTION_WEBHOOK_URL",
"description": "Webhook for production deployments",
"required": false
"required": "Optional"
},
{
"variable": "CODECOV_TOKEN",
"description": "Codecov integration token",
"required": false
"required": "Optional"
},
{
"variable": "SLACK_WEBHOOK",
"description": "Slack webhook for notifications",
"required": false
"required": "Optional"
}
],
"branchStrategy": [
"branches": [
{
"branch": "main",
"name": "main",
"description": "Production branch - deploys to production environment (manual approval required)",
"color": "green"
"tone": "green"
},
{
"branch": "develop",
"name": "develop",
"description": "Development branch - automatically deploys to staging environment",
"color": "blue"
"tone": "blue"
},
{
"branch": "feature/*",
"name": "feature/*",
"description": "Feature branches - runs tests only, no deployment",
"color": "purple"
"tone": "purple"
},
{
"branch": "v* tags",
"name": "v* tags",
"description": "Version tags - triggers release workflow with artifacts and changelog",
"color": "orange"
"tone": "orange"
}
],
"quickStart": [
@@ -203,25 +207,25 @@
"Use semantic versioning for releases (v1.0.0, v1.1.0, etc.)",
"Configure Slack or email notifications for deployment status"
],
"additionalResources": [
"resources": [
{
"file": "CI_CD_GUIDE.md",
"label": "CI_CD_GUIDE.md",
"description": "Detailed setup guide for all platforms"
},
{
"file": ".github/workflows/",
"label": ".github/workflows/",
"description": "GitHub Actions workflows"
},
{
"file": ".gitlab-ci.yml",
"label": ".gitlab-ci.yml",
"description": "GitLab CI configuration"
},
{
"file": "Jenkinsfile",
"label": "Jenkinsfile",
"description": "Jenkins pipeline definition"
},
{
"file": ".circleci/config.yml",
"label": ".circleci/config.yml",
"description": "CircleCI configuration"
}
]

View File

@@ -31,7 +31,7 @@
"installation": {
"desktop": [
{
"platform": "Chrome/Edge/Brave",
"title": "Chrome/Edge/Brave:",
"steps": [
"Look for install icon (⊕) in address bar",
"Click \"Install\" or use prompt in app",
@@ -39,7 +39,7 @@
]
},
{
"platform": "Safari (macOS)",
"title": "Safari (macOS):",
"steps": [
"Click File → Add to Dock",
"App appears in Dock"
@@ -48,15 +48,15 @@
],
"mobile": [
{
"platform": "iOS (Safari)",
"title": "iOS (Safari):",
"steps": [
"Tap Share button",
"Select \"Add to Home Screen\"",
"Confirm installation"
"Tap \"Add\""
]
},
{
"platform": "Android (Chrome)",
"title": "Android (Chrome):",
"steps": [
"Tap menu (three dots)",
"Select \"Install app\"",
@@ -87,7 +87,7 @@
"description": "Install pending updates when new versions are available"
}
],
"offlineCapabilities": {
"offline": {
"worksOffline": [
"View and edit existing projects",
"Browse files and code",

View File

@@ -1,4 +1,6 @@
{
"title": "Product Roadmap",
"subtitle": "Features delivered and planned for CodeForge development",
"completed": [
{
"title": "Monaco Code Editor Integration",

View File

@@ -27,7 +27,13 @@
"components": [
{
"name": "Buttons",
"classes": ["mui-custom-button--primary", "mui-custom-button--secondary", "mui-custom-button--accent", "mui-custom-button--outline", "mui-custom-button--ghost"],
"classes": [
"mui-custom-button--primary",
"mui-custom-button--secondary",
"mui-custom-button--accent",
"mui-custom-button--outline",
"mui-custom-button--ghost"
],
"description": "Custom styled buttons with hover effects and variants"
},
{
@@ -78,56 +84,62 @@
],
"layoutComponents": [
{
"name": "custom-mui-container",
"title": "custom-mui-container",
"description": "Max-width container with responsive padding"
},
{
"name": "custom-mui-grid",
"title": "custom-mui-grid",
"description": "CSS Grid layouts with responsive columns (--cols-1 to --cols-12, --responsive)"
},
{
"name": "custom-mui-flex",
"title": "custom-mui-flex",
"description": "Flexbox utilities (--row, --col, --wrap, --center, --between, --around)"
},
{
"name": "custom-mui-stack",
"title": "custom-mui-stack",
"description": "Vertical/horizontal stacks with configurable gaps"
},
{
"name": "custom-mui-surface",
"title": "custom-mui-surface",
"description": "Interactive surfaces with elevation and hover effects"
}
],
"utilities": [
{
"name": "@include respond-to($breakpoint)",
"title": "Responsive Design",
"mixin": "@include respond-to($breakpoint)",
"description": "Generate media queries for xs, sm, md, lg, xl, 2xl breakpoints",
"example": "@include respond-to('lg') {\n padding: 2rem;\n}"
"snippet": "@include respond-to('lg') {\n padding: 2rem;\n}"
},
{
"name": "@include elevation($level)",
"title": "Elevation & Shadows",
"mixin": "@include elevation($level)",
"description": "Apply box shadows with levels 1-4",
"example": "@include elevation(2);"
"snippet": "@include elevation(2);"
},
{
"name": "@include glassmorphism($blur, $opacity)",
"title": "Glassmorphism",
"mixin": "@include glassmorphism($blur, $opacity)",
"description": "Create frosted glass effects with backdrop blur",
"example": "@include glassmorphism(16px, 0.1);"
"snippet": "@include glassmorphism(16px, 0.1);"
},
{
"name": "get-color($palette, $shade)",
"title": "Color Functions",
"mixin": "get-color($palette, $shade)",
"description": "Access colors from predefined palettes (primary, secondary, accent, success, error, warning)",
"example": "color: get-color('primary', 500);"
"snippet": "color: get-color('primary', 500);"
},
{
"name": "@include truncate($lines)",
"title": "Text Truncation",
"mixin": "@include truncate($lines)",
"description": "Truncate text with ellipsis after specified lines",
"example": "@include truncate(2);"
"snippet": "@include truncate(2);"
},
{
"name": "@include show-scrollbar($track, $thumb)",
"title": "Custom Scrollbars",
"mixin": "@include show-scrollbar($track, $thumb)",
"description": "Style webkit scrollbars with custom colors",
"example": "@include show-scrollbar(rgba(0,0,0,0.1), rgba(0,0,0,0.3));"
"snippet": "@include show-scrollbar(rgba(0,0,0,0.1), rgba(0,0,0,0.3));"
}
],
"animations": [
@@ -142,6 +154,16 @@
{ "name": "animate-float", "description": "Floating up and down" },
{ "name": "animate-glow", "description": "Glowing shadow effect" }
],
"quickStart": {
"components": {
"title": "Using Custom Components",
"code": "import './styles/main.scss'\n\nfunction MyComponent() {\n return (\n <div className=\"custom-mui-container\">\n <div className=\"custom-mui-grid custom-mui-grid--cols-3\">\n <div className=\"mui-custom-card\">\n <h3>Card Title</h3>\n <p>Card content</p>\n <button className=\"mui-custom-button mui-custom-button--primary\">\n Click Me\n </button>\n </div>\n </div>\n </div>\n )\n}"
},
"mixins": {
"title": "Creating Custom Styles with Mixins",
"code": "@use './styles/utilities' as *;\n@use './styles/variables' as *;\n\n.my-custom-component {\n @include elevation(2);\n @include responsive-padding(spacing('6'));\n background: get-color('primary', 500);\n \n @include respond-to('md') {\n @include elevation(3);\n }\n \n &:hover {\n @include glassmorphism(12px, 0.15);\n }\n}"
}
},
"bestPractices": [
"Import main.scss in your index.css to access all Sass components and utilities",
"Use @use instead of @import for better module encapsulation",

View File

@@ -0,0 +1,36 @@
{
"presetSizes": [16, 32, 48, 64, 128, 256, 512],
"elementTypes": [
{ "value": "circle", "label": "Circle" },
{ "value": "square", "label": "Square" },
{ "value": "triangle", "label": "Triangle" },
{ "value": "star", "label": "Star" },
{ "value": "heart", "label": "Heart" },
{ "value": "polygon", "label": "Polygon" },
{ "value": "text", "label": "Text" },
{ "value": "emoji", "label": "Emoji" }
],
"defaultDesign": {
"id": "default",
"name": "My Favicon",
"size": 128,
"backgroundColor": "#7c3aed",
"elements": [
{
"id": "1",
"type": "text",
"x": 64,
"y": 64,
"width": 100,
"height": 100,
"color": "#ffffff",
"rotation": 0,
"text": "CF",
"fontSize": 48,
"fontWeight": "bold"
}
],
"createdAt": 0,
"updatedAt": 0
}
}

View File

@@ -0,0 +1,120 @@
{
"toolbar": {
"newDesign": "New Design",
"duplicate": "Duplicate",
"delete": "Delete"
},
"modes": {
"select": "Select",
"draw": "Draw",
"erase": "Erase"
},
"toasts": {
"designDuplicated": "Design duplicated",
"cannotDeleteLast": "Cannot delete the last design",
"designDeleted": "Design deleted",
"exportedPng": "Exported as {size}x{size} PNG",
"exportedIco": "Exported as ICO",
"exportedSvg": "Exported as SVG",
"exportAll": "Exporting all sizes..."
},
"canvas": {
"exportPresetTitle": "Export {size}x{size}",
"brushBadge": "{effect}: {size}px",
"eraserBadge": "Eraser: {size}px",
"presetLabel": "{size}px"
},
"export": {
"png": "Export PNG",
"svg": "Export SVG",
"all": "Export All Sizes"
},
"design": {
"nameLabel": "Design Name",
"namePlaceholder": "My Favicon",
"newDesignName": "Favicon {count}",
"duplicateSuffix": " (Copy)",
"selectLabel": "Select Design",
"sizeLabel": "Canvas Size",
"backgroundLabel": "Background Color",
"backgroundPlaceholder": "#7c3aed",
"filterLabel": "Image Filter",
"filterIntensity": "Filter Intensity: {value}%"
},
"filters": {
"none": "None",
"blur": "Blur",
"brightness": "Brightness",
"contrast": "Contrast",
"grayscale": "Grayscale",
"sepia": "Sepia",
"invert": "Invert",
"saturate": "Saturate",
"hue-rotate": "Hue Rotate",
"pixelate": "Pixelate"
},
"elements": {
"addTitle": "Add Elements",
"selectHint": "Switch to Select mode to add elements",
"listTitle": "Elements ({count})",
"empty": "No elements yet. Add some or start drawing!"
},
"brush": {
"settingsTitle": "Brush Settings",
"eraserSettingsTitle": "Eraser Settings",
"effectLabel": "Brush Effect",
"colorLabel": "Brush Color",
"gradientColorLabel": "Gradient End Color",
"glowIntensity": "Glow Intensity: {value}px",
"sizeLabel": "{mode} Size: {size}px"
},
"inspector": {
"title": "Edit Element",
"strokeColor": "Stroke Color",
"strokeWidth": "Stroke Width: {value}px",
"textLabel": "Text",
"textPlaceholder": "Enter text",
"emojiLabel": "Emoji",
"emojiPlaceholder": "😀",
"fontSize": "Font Size: {value}px",
"fontWeight": "Font Weight",
"width": "Width: {value}px",
"height": "Height: {value}px",
"xPosition": "X Position: {value}px",
"yPosition": "Y Position: {value}px",
"rotation": "Rotation: {value}°",
"color": "Color"
},
"effects": {
"solid": "Solid",
"gradient": "Gradient",
"spray": "Spray Paint",
"glow": "Glow"
},
"fontWeights": {
"normal": "Normal",
"bold": "Bold",
"lighter": "Light"
},
"elementTypes": {
"circle": "Circle",
"square": "Square",
"triangle": "Triangle",
"star": "Star",
"heart": "Heart",
"polygon": "Polygon",
"text": "Text",
"emoji": "Emoji",
"freehand": "Freehand"
},
"defaults": {
"designName": "My Favicon",
"designText": "CF",
"newText": "A",
"newEmoji": "😀"
},
"placeholders": {
"color": "#ffffff",
"gradient": "#ff00ff"
}
}

View File

@@ -0,0 +1,120 @@
{
"header": {
"title": "Project Settings",
"description": "Configure Next.js and npm settings"
},
"tabs": {
"nextjs": "Next.js Config",
"packages": "NPM Packages",
"scripts": "Scripts",
"data": "Data"
},
"nextjs": {
"application": {
"title": "Application Settings",
"description": "Basic Next.js application configuration",
"fields": {
"appName": {
"label": "Application Name",
"placeholder": "my-nextjs-app"
},
"importAlias": {
"label": "Import Alias",
"placeholder": "@/*",
"helper": "Used for module imports (e.g., import { Button } from \"@/components\")"
}
}
},
"features": {
"title": "Features",
"description": "Enable or disable Next.js features",
"items": {
"typescript": {
"label": "TypeScript",
"description": "Use TypeScript for type safety"
},
"eslint": {
"label": "ESLint",
"description": "Code linting and formatting"
},
"tailwind": {
"label": "Tailwind CSS",
"description": "Utility-first CSS framework"
},
"srcDirectory": {
"label": "Use src/ Directory",
"description": "Organize code inside src/ folder"
},
"appRouter": {
"label": "App Router",
"description": "Use the new App Router (vs Pages Router)"
},
"turbopack": {
"label": "Turbopack (Beta)",
"description": "Faster incremental bundler"
}
}
}
},
"packages": {
"title": "NPM Packages",
"description": "Manage project dependencies",
"packageManager": {
"label": "Package Manager"
},
"dependencies": {
"title": "Dependencies",
"empty": "No dependencies added yet"
},
"devDependencies": {
"title": "Dev Dependencies",
"empty": "No dev dependencies added yet"
},
"dialog": {
"title": {
"add": "Add Package",
"edit": "Edit Package"
},
"description": "Configure npm package details",
"fields": {
"name": {
"label": "Package Name",
"placeholder": "e.g., react-query, axios"
},
"version": {
"label": "Version",
"placeholder": "latest, ^1.0.0, ~2.3.4"
},
"description": {
"label": "Description (Optional)",
"placeholder": "What is this package for?"
},
"devDependency": {
"label": "Development Dependency"
}
}
}
},
"scripts": {
"title": "NPM Scripts",
"description": "Define custom commands for your project",
"empty": "No scripts defined yet",
"dialog": {
"title": {
"add": "Add Script",
"edit": "Edit Script"
},
"description": "Define a custom npm script command",
"fields": {
"name": {
"label": "Script Name",
"placeholder": "e.g., dev, build, test"
},
"command": {
"label": "Command",
"placeholder": "e.g., next dev, tsc --noEmit"
}
}
}
}
}

View File

@@ -0,0 +1,12 @@
{
"cookie": {
"name": "sidebar_state",
"maxAgeSeconds": 604800
},
"keyboardShortcut": "b",
"labels": {
"toggleSidebar": "Toggle Sidebar",
"sidebarTitle": "Sidebar",
"sidebarDescription": "Displays the mobile sidebar."
}
}