Merge branch 'main' into codex/split-generator-functions-into-separate-modules

This commit is contained in:
2026-01-18 00:19:35 +00:00
committed by GitHub
72 changed files with 2537 additions and 2756 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": [
{

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 @@
{
"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"
}
}
}
}
}