@maestro-ai/mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -0
- package/dist/analyzers/base.d.ts +64 -0
- package/dist/analyzers/base.d.ts.map +1 -0
- package/dist/analyzers/base.js +104 -0
- package/dist/analyzers/base.js.map +1 -0
- package/dist/analyzers/index.d.ts +12 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +31 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/performance-analyzer.d.ts +11 -0
- package/dist/analyzers/performance-analyzer.d.ts.map +1 -0
- package/dist/analyzers/performance-analyzer.js +162 -0
- package/dist/analyzers/performance-analyzer.js.map +1 -0
- package/dist/analyzers/quality-analyzer.d.ts +11 -0
- package/dist/analyzers/quality-analyzer.d.ts.map +1 -0
- package/dist/analyzers/quality-analyzer.js +196 -0
- package/dist/analyzers/quality-analyzer.js.map +1 -0
- package/dist/analyzers/security-analyzer.d.ts +11 -0
- package/dist/analyzers/security-analyzer.d.ts.map +1 -0
- package/dist/analyzers/security-analyzer.js +177 -0
- package/dist/analyzers/security-analyzer.js.map +1 -0
- package/dist/content/content/design-system/README.md +231 -0
- package/dist/content/content/design-system/data/charts.csv +26 -0
- package/dist/content/content/design-system/data/colors.csv +97 -0
- package/dist/content/content/design-system/data/icons.csv +101 -0
- package/dist/content/content/design-system/data/landing.csv +31 -0
- package/dist/content/content/design-system/data/products.csv +97 -0
- package/dist/content/content/design-system/data/prompts.csv +24 -0
- package/dist/content/content/design-system/data/react-performance.csv +45 -0
- package/dist/content/content/design-system/data/styles.csv +59 -0
- package/dist/content/content/design-system/data/typography.csv +58 -0
- package/dist/content/content/design-system/data/ui-reasoning.csv +101 -0
- package/dist/content/content/design-system/data/ux-guidelines.csv +100 -0
- package/dist/content/content/design-system/data/web-interface.csv +31 -0
- package/dist/content/content/design-system/indexes/README.md +211 -0
- package/dist/content/content/design-system/indexes/colors-index.md +156 -0
- package/dist/content/content/design-system/indexes/quick-search.md +111 -0
- package/dist/content/content/design-system/indexes/stacks-index.md +341 -0
- package/dist/content/content/design-system/stacks/flutter.csv +53 -0
- package/dist/content/content/design-system/stacks/html-tailwind.csv +56 -0
- package/dist/content/content/design-system/stacks/jetpack-compose.csv +53 -0
- package/dist/content/content/design-system/stacks/nextjs.csv +53 -0
- package/dist/content/content/design-system/stacks/nuxt-ui.csv +51 -0
- package/dist/content/content/design-system/stacks/nuxtjs.csv +59 -0
- package/dist/content/content/design-system/stacks/react-native.csv +52 -0
- package/dist/content/content/design-system/stacks/react.csv +54 -0
- package/dist/content/content/design-system/stacks/shadcn.csv +61 -0
- package/dist/content/content/design-system/stacks/svelte.csv +54 -0
- package/dist/content/content/design-system/stacks/swiftui.csv +51 -0
- package/dist/content/content/design-system/stacks/vue.csv +50 -0
- package/dist/content/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +250 -0
- package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +278 -0
- package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +261 -0
- package/dist/content/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +258 -0
- package/dist/content/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/dist/content/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/dist/content/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/dist/content/content/guides/Gates de Qualidade.md +209 -0
- package/dist/content/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/dist/content/content/guides/Guia de Chaos Engineering.md +267 -0
- package/dist/content/content/guides/Guia de Debugging com IA.md +135 -0
- package/dist/content/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/dist/content/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/dist/content/content/guides/Guia de Multi-tenancy.md +368 -0
- package/dist/content/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/dist/content/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/dist/content/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/dist/content/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/dist/content/content/guides/Rules base.md +90 -0
- package/dist/content/content/playbook/Playbook de Desenvolvimento com IA.md +364 -0
- package/dist/content/content/prompts/README.md +203 -0
- package/dist/content/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/dist/content/content/prompts/apis/design-api-rest.md +303 -0
- package/dist/content/content/prompts/apis/idempotencia.md +254 -0
- package/dist/content/content/prompts/apis/versionamento.md +313 -0
- package/dist/content/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/dist/content/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/dist/content/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/dist/content/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/dist/content/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/dist/content/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/dist/content/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/dist/content/content/prompts/database/otimizacao-queries.md +296 -0
- package/dist/content/content/prompts/desenvolvimento/code-review.md +301 -0
- package/dist/content/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/dist/content/content/prompts/devops/docker-compose.md +336 -0
- package/dist/content/content/prompts/devops/feature-flags.md +374 -0
- package/dist/content/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/dist/content/content/prompts/devops/pipeline-cicd.md +358 -0
- package/dist/content/content/prompts/devops/terraform-iac.md +502 -0
- package/dist/content/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/dist/content/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/dist/content/content/prompts/escalabilidade/caching.md +255 -0
- package/dist/content/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/dist/content/content/prompts/observabilidade/slos.md +215 -0
- package/dist/content/content/prompts/produto/discovery-inicial.md +203 -0
- package/dist/content/content/prompts/produto/discovery-inicial.txt +33 -0
- package/dist/content/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/dist/content/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/dist/content/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/dist/content/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/dist/content/content/prompts/seguranca/rate-limiting.md +356 -0
- package/dist/content/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/dist/content/content/prompts/seguranca/threat-modeling.md +224 -0
- package/dist/content/content/prompts/testes/contract-testing.md +340 -0
- package/dist/content/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/dist/content/content/prompts/testes/testes-e2e.md +460 -0
- package/dist/content/content/prompts/testes/testes-integracao.md +418 -0
- package/dist/content/content/prompts/testes/testes-performance.md +458 -0
- package/dist/content/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/dist/content/content/rules/GEMINI.md +841 -0
- package/dist/content/content/rules/RULES.md +835 -0
- package/dist/content/content/rules/adapters/copilot.md +10 -0
- package/dist/content/content/rules/adapters/cursor.md +10 -0
- package/dist/content/content/rules/adapters/gemini.md +13 -0
- package/dist/content/content/rules/adapters/windsurf.md +10 -0
- package/dist/content/content/skills/api-patterns/SKILL.md +81 -0
- package/dist/content/content/skills/api-patterns/api-style.md +42 -0
- package/dist/content/content/skills/api-patterns/auth.md +24 -0
- package/dist/content/content/skills/api-patterns/documentation.md +26 -0
- package/dist/content/content/skills/api-patterns/graphql.md +41 -0
- package/dist/content/content/skills/api-patterns/rate-limiting.md +31 -0
- package/dist/content/content/skills/api-patterns/response.md +37 -0
- package/dist/content/content/skills/api-patterns/rest.md +40 -0
- package/dist/content/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/dist/content/content/skills/api-patterns/security-testing.md +122 -0
- package/dist/content/content/skills/api-patterns/trpc.md +41 -0
- package/dist/content/content/skills/api-patterns/versioning.md +22 -0
- package/dist/content/content/skills/app-builder/SKILL.md +75 -0
- package/dist/content/content/skills/app-builder/agent-coordination.md +71 -0
- package/dist/content/content/skills/app-builder/feature-building.md +53 -0
- package/dist/content/content/skills/app-builder/project-detection.md +34 -0
- package/dist/content/content/skills/app-builder/scaffolding.md +118 -0
- package/dist/content/content/skills/app-builder/tech-stack.md +40 -0
- package/dist/content/content/skills/app-builder/templates/SKILL.md +39 -0
- package/dist/content/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/dist/content/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/dist/content/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/dist/content/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/dist/content/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/dist/content/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/dist/content/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/dist/content/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/dist/content/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/dist/content/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/dist/content/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/dist/content/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/dist/content/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/dist/content/content/skills/architecture/SKILL.md +55 -0
- package/dist/content/content/skills/architecture/context-discovery.md +43 -0
- package/dist/content/content/skills/architecture/examples.md +94 -0
- package/dist/content/content/skills/architecture/pattern-selection.md +68 -0
- package/dist/content/content/skills/architecture/patterns-reference.md +50 -0
- package/dist/content/content/skills/architecture/trade-off-analysis.md +77 -0
- package/dist/content/content/skills/bash-linux/SKILL.md +199 -0
- package/dist/content/content/skills/behavioral-modes/SKILL.md +242 -0
- package/dist/content/content/skills/brainstorming/SKILL.md +163 -0
- package/dist/content/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/dist/content/content/skills/clean-code/SKILL.md +201 -0
- package/dist/content/content/skills/code-review-checklist/SKILL.md +109 -0
- package/dist/content/content/skills/database-design/SKILL.md +52 -0
- package/dist/content/content/skills/database-design/database-selection.md +43 -0
- package/dist/content/content/skills/database-design/indexing.md +39 -0
- package/dist/content/content/skills/database-design/migrations.md +48 -0
- package/dist/content/content/skills/database-design/optimization.md +36 -0
- package/dist/content/content/skills/database-design/orm-selection.md +30 -0
- package/dist/content/content/skills/database-design/schema-design.md +56 -0
- package/dist/content/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/dist/content/content/skills/deployment-procedures/SKILL.md +241 -0
- package/dist/content/content/skills/doc.md +177 -0
- package/dist/content/content/skills/documentation-templates/SKILL.md +194 -0
- package/dist/content/content/skills/frontend-design/SKILL.md +396 -0
- package/dist/content/content/skills/frontend-design/animation-guide.md +331 -0
- package/dist/content/content/skills/frontend-design/color-system.md +311 -0
- package/dist/content/content/skills/frontend-design/decision-trees.md +418 -0
- package/dist/content/content/skills/frontend-design/motion-graphics.md +306 -0
- package/dist/content/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/dist/content/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/dist/content/content/skills/frontend-design/typography-system.md +345 -0
- package/dist/content/content/skills/frontend-design/ux-psychology.md +541 -0
- package/dist/content/content/skills/frontend-design/visual-effects.md +383 -0
- package/dist/content/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/dist/content/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/dist/content/content/skills/game-development/SKILL.md +167 -0
- package/dist/content/content/skills/game-development/game-art/SKILL.md +185 -0
- package/dist/content/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/dist/content/content/skills/game-development/game-design/SKILL.md +129 -0
- package/dist/content/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/dist/content/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/dist/content/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/dist/content/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/dist/content/content/skills/game-development/web-games/SKILL.md +150 -0
- package/dist/content/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/dist/content/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/dist/content/content/skills/i18n-localization/SKILL.md +154 -0
- package/dist/content/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/dist/content/content/skills/intelligent-routing/SKILL.md +334 -0
- package/dist/content/content/skills/lint-and-validate/SKILL.md +45 -0
- package/dist/content/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/dist/content/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/dist/content/content/skills/mcp-builder/SKILL.md +176 -0
- package/dist/content/content/skills/mobile-design/SKILL.md +394 -0
- package/dist/content/content/skills/mobile-design/decision-trees.md +516 -0
- package/dist/content/content/skills/mobile-design/mobile-backend.md +491 -0
- package/dist/content/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/dist/content/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/dist/content/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/dist/content/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/dist/content/content/skills/mobile-design/mobile-performance.md +767 -0
- package/dist/content/content/skills/mobile-design/mobile-testing.md +356 -0
- package/dist/content/content/skills/mobile-design/mobile-typography.md +433 -0
- package/dist/content/content/skills/mobile-design/platform-android.md +666 -0
- package/dist/content/content/skills/mobile-design/platform-ios.md +561 -0
- package/dist/content/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/dist/content/content/skills/mobile-design/touch-psychology.md +537 -0
- package/dist/content/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/dist/content/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/dist/content/content/skills/parallel-agents/SKILL.md +175 -0
- package/dist/content/content/skills/performance-profiling/SKILL.md +143 -0
- package/dist/content/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/dist/content/content/skills/plan-writing/SKILL.md +152 -0
- package/dist/content/content/skills/powershell-windows/SKILL.md +167 -0
- package/dist/content/content/skills/python-patterns/SKILL.md +441 -0
- package/dist/content/content/skills/react-patterns/SKILL.md +198 -0
- package/dist/content/content/skills/red-team-tactics/SKILL.md +199 -0
- package/dist/content/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/dist/content/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/dist/content/content/skills/server-management/SKILL.md +161 -0
- package/dist/content/content/skills/systematic-debugging/SKILL.md +109 -0
- package/dist/content/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/dist/content/content/skills/tdd-workflow/SKILL.md +149 -0
- package/dist/content/content/skills/testing-patterns/SKILL.md +178 -0
- package/dist/content/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/dist/content/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/dist/content/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/dist/content/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/dist/content/content/skills/webapp-testing/SKILL.md +187 -0
- package/dist/content/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/dist/content/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/dist/content/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/dist/content/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/dist/content/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/dist/content/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/dist/content/content/specialists/Especialista em Contrato de API.md +172 -0
- package/dist/content/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/dist/content/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/dist/content/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/dist/content/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/dist/content/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/dist/content/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/dist/content/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/dist/content/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/dist/content/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/dist/content/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/dist/content/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/dist/content/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/dist/content/content/specialists/Especialista em Observabilidade.md +415 -0
- package/dist/content/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/dist/content/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/dist/content/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/dist/content/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/dist/content/content/specialists/Especialista em UX Design.md +453 -0
- package/dist/content/content/specialists/INDEX.md +43 -0
- package/dist/content/content/templates/PRD.md +165 -0
- package/dist/content/content/templates/README.md +65 -0
- package/dist/content/content/templates/adr.md +103 -0
- package/dist/content/content/templates/arquitetura.md +279 -0
- package/dist/content/content/templates/backlog.md +185 -0
- package/dist/content/content/templates/checklist-seguranca.md +180 -0
- package/dist/content/content/templates/contexto.md +120 -0
- package/dist/content/content/templates/criterios-aceite.md +99 -0
- package/dist/content/content/templates/design-banco.md +270 -0
- package/dist/content/content/templates/design-doc.md +240 -0
- package/dist/content/content/templates/feature.md +88 -0
- package/dist/content/content/templates/historia-backend.md +84 -0
- package/dist/content/content/templates/historia-frontend.md +75 -0
- package/dist/content/content/templates/historia-usuario.md +125 -0
- package/dist/content/content/templates/mapa-navegacao.md +133 -0
- package/dist/content/content/templates/matriz-rastreabilidade.md +121 -0
- package/dist/content/content/templates/modelo-dominio.md +219 -0
- package/dist/content/content/templates/plano-testes.md +199 -0
- package/dist/content/content/templates/prototipo-stitch.md +138 -0
- package/dist/content/content/templates/requisitos.md +162 -0
- package/dist/content/content/templates/slo-sli.md +197 -0
- package/dist/content/content/workflows/README-MCP.md +363 -0
- package/dist/content/content/workflows/brainstorm.md +113 -0
- package/dist/content/content/workflows/create.md +59 -0
- package/dist/content/content/workflows/debug.md +103 -0
- package/dist/content/content/workflows/deploy.md +176 -0
- package/dist/content/content/workflows/enhance.md +63 -0
- package/dist/content/content/workflows/mcp-debug.md +506 -0
- package/dist/content/content/workflows/mcp-feature.md +385 -0
- package/dist/content/content/workflows/mcp-gate.md +413 -0
- package/dist/content/content/workflows/mcp-next.md +388 -0
- package/dist/content/content/workflows/mcp-refactor.md +600 -0
- package/dist/content/content/workflows/mcp-start.md +304 -0
- package/dist/content/content/workflows/mcp-status.md +400 -0
- package/dist/content/content/workflows/orchestrate.md +237 -0
- package/dist/content/content/workflows/plan.md +89 -0
- package/dist/content/content/workflows/preview.md +81 -0
- package/dist/content/content/workflows/status.md +86 -0
- package/dist/content/content/workflows/test.md +144 -0
- package/dist/content/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/content/design-system/README.md +231 -0
- package/dist/content/design-system/data/charts.csv +26 -0
- package/dist/content/design-system/data/colors.csv +97 -0
- package/dist/content/design-system/data/icons.csv +101 -0
- package/dist/content/design-system/data/landing.csv +31 -0
- package/dist/content/design-system/data/products.csv +97 -0
- package/dist/content/design-system/data/prompts.csv +24 -0
- package/dist/content/design-system/data/react-performance.csv +45 -0
- package/dist/content/design-system/data/styles.csv +59 -0
- package/dist/content/design-system/data/typography.csv +58 -0
- package/dist/content/design-system/data/ui-reasoning.csv +101 -0
- package/dist/content/design-system/data/ux-guidelines.csv +100 -0
- package/dist/content/design-system/data/web-interface.csv +31 -0
- package/dist/content/design-system/indexes/README.md +211 -0
- package/dist/content/design-system/indexes/colors-index.md +156 -0
- package/dist/content/design-system/indexes/quick-search.md +111 -0
- package/dist/content/design-system/indexes/stacks-index.md +341 -0
- package/dist/content/design-system/stacks/flutter.csv +53 -0
- package/dist/content/design-system/stacks/html-tailwind.csv +56 -0
- package/dist/content/design-system/stacks/jetpack-compose.csv +53 -0
- package/dist/content/design-system/stacks/nextjs.csv +53 -0
- package/dist/content/design-system/stacks/nuxt-ui.csv +51 -0
- package/dist/content/design-system/stacks/nuxtjs.csv +59 -0
- package/dist/content/design-system/stacks/react-native.csv +52 -0
- package/dist/content/design-system/stacks/react.csv +54 -0
- package/dist/content/design-system/stacks/shadcn.csv +61 -0
- package/dist/content/design-system/stacks/svelte.csv +54 -0
- package/dist/content/design-system/stacks/swiftui.csv +51 -0
- package/dist/content/design-system/stacks/vue.csv +50 -0
- package/dist/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +250 -0
- package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +278 -0
- package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +261 -0
- package/dist/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +258 -0
- package/dist/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/dist/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/dist/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/dist/content/guides/Gates de Qualidade.md +209 -0
- package/dist/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/dist/content/guides/Guia de Chaos Engineering.md +267 -0
- package/dist/content/guides/Guia de Debugging com IA.md +135 -0
- package/dist/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/dist/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/dist/content/guides/Guia de Multi-tenancy.md +368 -0
- package/dist/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/dist/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/dist/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/dist/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/dist/content/guides/Rules base.md +90 -0
- package/dist/content/playbook/Playbook de Desenvolvimento com IA.md +364 -0
- package/dist/content/prompts/README.md +203 -0
- package/dist/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/dist/content/prompts/apis/design-api-rest.md +303 -0
- package/dist/content/prompts/apis/idempotencia.md +254 -0
- package/dist/content/prompts/apis/versionamento.md +313 -0
- package/dist/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/dist/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/dist/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/dist/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/dist/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/dist/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/dist/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/dist/content/prompts/database/otimizacao-queries.md +296 -0
- package/dist/content/prompts/desenvolvimento/code-review.md +301 -0
- package/dist/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/dist/content/prompts/devops/docker-compose.md +336 -0
- package/dist/content/prompts/devops/feature-flags.md +374 -0
- package/dist/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/dist/content/prompts/devops/pipeline-cicd.md +358 -0
- package/dist/content/prompts/devops/terraform-iac.md +502 -0
- package/dist/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/dist/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/dist/content/prompts/escalabilidade/caching.md +255 -0
- package/dist/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/dist/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/dist/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/dist/content/prompts/observabilidade/slos.md +215 -0
- package/dist/content/prompts/produto/discovery-inicial.md +203 -0
- package/dist/content/prompts/produto/discovery-inicial.txt +33 -0
- package/dist/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/dist/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/dist/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/dist/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/dist/content/prompts/seguranca/rate-limiting.md +356 -0
- package/dist/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/dist/content/prompts/seguranca/threat-modeling.md +224 -0
- package/dist/content/prompts/testes/contract-testing.md +340 -0
- package/dist/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/dist/content/prompts/testes/testes-e2e.md +460 -0
- package/dist/content/prompts/testes/testes-integracao.md +418 -0
- package/dist/content/prompts/testes/testes-performance.md +458 -0
- package/dist/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/dist/content/rules/GEMINI.md +841 -0
- package/dist/content/rules/RULES.md +835 -0
- package/dist/content/rules/adapters/copilot.md +10 -0
- package/dist/content/rules/adapters/cursor.md +10 -0
- package/dist/content/rules/adapters/gemini.md +13 -0
- package/dist/content/rules/adapters/windsurf.md +10 -0
- package/dist/content/skills/api-patterns/SKILL.md +81 -0
- package/dist/content/skills/api-patterns/api-style.md +42 -0
- package/dist/content/skills/api-patterns/auth.md +24 -0
- package/dist/content/skills/api-patterns/documentation.md +26 -0
- package/dist/content/skills/api-patterns/graphql.md +41 -0
- package/dist/content/skills/api-patterns/rate-limiting.md +31 -0
- package/dist/content/skills/api-patterns/response.md +37 -0
- package/dist/content/skills/api-patterns/rest.md +40 -0
- package/dist/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/dist/content/skills/api-patterns/security-testing.md +122 -0
- package/dist/content/skills/api-patterns/trpc.md +41 -0
- package/dist/content/skills/api-patterns/versioning.md +22 -0
- package/dist/content/skills/app-builder/SKILL.md +75 -0
- package/dist/content/skills/app-builder/agent-coordination.md +71 -0
- package/dist/content/skills/app-builder/feature-building.md +53 -0
- package/dist/content/skills/app-builder/project-detection.md +34 -0
- package/dist/content/skills/app-builder/scaffolding.md +118 -0
- package/dist/content/skills/app-builder/tech-stack.md +40 -0
- package/dist/content/skills/app-builder/templates/SKILL.md +39 -0
- package/dist/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/dist/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/dist/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/dist/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/dist/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/dist/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/dist/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/dist/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/dist/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/dist/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/dist/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/dist/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/dist/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/dist/content/skills/architecture/SKILL.md +55 -0
- package/dist/content/skills/architecture/context-discovery.md +43 -0
- package/dist/content/skills/architecture/examples.md +94 -0
- package/dist/content/skills/architecture/pattern-selection.md +68 -0
- package/dist/content/skills/architecture/patterns-reference.md +50 -0
- package/dist/content/skills/architecture/trade-off-analysis.md +77 -0
- package/dist/content/skills/bash-linux/SKILL.md +199 -0
- package/dist/content/skills/behavioral-modes/SKILL.md +242 -0
- package/dist/content/skills/brainstorming/SKILL.md +163 -0
- package/dist/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/dist/content/skills/clean-code/SKILL.md +201 -0
- package/dist/content/skills/code-review-checklist/SKILL.md +109 -0
- package/dist/content/skills/database-design/SKILL.md +52 -0
- package/dist/content/skills/database-design/database-selection.md +43 -0
- package/dist/content/skills/database-design/indexing.md +39 -0
- package/dist/content/skills/database-design/migrations.md +48 -0
- package/dist/content/skills/database-design/optimization.md +36 -0
- package/dist/content/skills/database-design/orm-selection.md +30 -0
- package/dist/content/skills/database-design/schema-design.md +56 -0
- package/dist/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/dist/content/skills/deployment-procedures/SKILL.md +241 -0
- package/dist/content/skills/doc.md +177 -0
- package/dist/content/skills/documentation-templates/SKILL.md +194 -0
- package/dist/content/skills/frontend-design/SKILL.md +396 -0
- package/dist/content/skills/frontend-design/animation-guide.md +331 -0
- package/dist/content/skills/frontend-design/color-system.md +311 -0
- package/dist/content/skills/frontend-design/decision-trees.md +418 -0
- package/dist/content/skills/frontend-design/motion-graphics.md +306 -0
- package/dist/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/dist/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/dist/content/skills/frontend-design/typography-system.md +345 -0
- package/dist/content/skills/frontend-design/ux-psychology.md +541 -0
- package/dist/content/skills/frontend-design/visual-effects.md +383 -0
- package/dist/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/dist/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/dist/content/skills/game-development/SKILL.md +167 -0
- package/dist/content/skills/game-development/game-art/SKILL.md +185 -0
- package/dist/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/dist/content/skills/game-development/game-design/SKILL.md +129 -0
- package/dist/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/dist/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/dist/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/dist/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/dist/content/skills/game-development/web-games/SKILL.md +150 -0
- package/dist/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/dist/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/dist/content/skills/i18n-localization/SKILL.md +154 -0
- package/dist/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/dist/content/skills/intelligent-routing/SKILL.md +334 -0
- package/dist/content/skills/lint-and-validate/SKILL.md +45 -0
- package/dist/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/dist/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/dist/content/skills/mcp-builder/SKILL.md +176 -0
- package/dist/content/skills/mobile-design/SKILL.md +394 -0
- package/dist/content/skills/mobile-design/decision-trees.md +516 -0
- package/dist/content/skills/mobile-design/mobile-backend.md +491 -0
- package/dist/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/dist/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/dist/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/dist/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/dist/content/skills/mobile-design/mobile-performance.md +767 -0
- package/dist/content/skills/mobile-design/mobile-testing.md +356 -0
- package/dist/content/skills/mobile-design/mobile-typography.md +433 -0
- package/dist/content/skills/mobile-design/platform-android.md +666 -0
- package/dist/content/skills/mobile-design/platform-ios.md +561 -0
- package/dist/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/dist/content/skills/mobile-design/touch-psychology.md +537 -0
- package/dist/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/dist/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/dist/content/skills/parallel-agents/SKILL.md +175 -0
- package/dist/content/skills/performance-profiling/SKILL.md +143 -0
- package/dist/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/dist/content/skills/plan-writing/SKILL.md +152 -0
- package/dist/content/skills/powershell-windows/SKILL.md +167 -0
- package/dist/content/skills/python-patterns/SKILL.md +441 -0
- package/dist/content/skills/react-patterns/SKILL.md +198 -0
- package/dist/content/skills/red-team-tactics/SKILL.md +199 -0
- package/dist/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/dist/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/dist/content/skills/server-management/SKILL.md +161 -0
- package/dist/content/skills/systematic-debugging/SKILL.md +109 -0
- package/dist/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/dist/content/skills/tdd-workflow/SKILL.md +149 -0
- package/dist/content/skills/testing-patterns/SKILL.md +178 -0
- package/dist/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/dist/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/dist/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/dist/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/dist/content/skills/webapp-testing/SKILL.md +187 -0
- package/dist/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/dist/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/dist/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/dist/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/dist/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/dist/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/dist/content/specialists/Especialista em Contrato de API.md +172 -0
- package/dist/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/dist/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/dist/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/dist/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/dist/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/dist/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/dist/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/dist/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/dist/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/dist/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/dist/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/dist/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/dist/content/specialists/Especialista em Observabilidade.md +415 -0
- package/dist/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/dist/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/dist/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/dist/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/dist/content/specialists/Especialista em UX Design.md +453 -0
- package/dist/content/specialists/INDEX.md +43 -0
- package/dist/content/templates/PRD.md +165 -0
- package/dist/content/templates/README.md +65 -0
- package/dist/content/templates/adr.md +103 -0
- package/dist/content/templates/arquitetura.md +279 -0
- package/dist/content/templates/backlog.md +185 -0
- package/dist/content/templates/checklist-seguranca.md +180 -0
- package/dist/content/templates/contexto.md +120 -0
- package/dist/content/templates/criterios-aceite.md +99 -0
- package/dist/content/templates/design-banco.md +270 -0
- package/dist/content/templates/design-doc.md +240 -0
- package/dist/content/templates/feature.md +88 -0
- package/dist/content/templates/historia-backend.md +84 -0
- package/dist/content/templates/historia-frontend.md +75 -0
- package/dist/content/templates/historia-usuario.md +125 -0
- package/dist/content/templates/mapa-navegacao.md +133 -0
- package/dist/content/templates/matriz-rastreabilidade.md +121 -0
- package/dist/content/templates/modelo-dominio.md +219 -0
- package/dist/content/templates/plano-testes.md +199 -0
- package/dist/content/templates/prototipo-stitch.md +138 -0
- package/dist/content/templates/requisitos.md +162 -0
- package/dist/content/templates/slo-sli.md +197 -0
- package/dist/content/workflows/README-MCP.md +363 -0
- package/dist/content/workflows/brainstorm.md +113 -0
- package/dist/content/workflows/create.md +59 -0
- package/dist/content/workflows/debug.md +103 -0
- package/dist/content/workflows/deploy.md +176 -0
- package/dist/content/workflows/enhance.md +63 -0
- package/dist/content/workflows/mcp-debug.md +506 -0
- package/dist/content/workflows/mcp-feature.md +385 -0
- package/dist/content/workflows/mcp-gate.md +413 -0
- package/dist/content/workflows/mcp-next.md +388 -0
- package/dist/content/workflows/mcp-refactor.md +600 -0
- package/dist/content/workflows/mcp-start.md +304 -0
- package/dist/content/workflows/mcp-status.md +400 -0
- package/dist/content/workflows/orchestrate.md +237 -0
- package/dist/content/workflows/plan.md +89 -0
- package/dist/content/workflows/preview.md +81 -0
- package/dist/content/workflows/status.md +86 -0
- package/dist/content/workflows/test.md +144 -0
- package/dist/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/flows/alternativas.d.ts +5 -0
- package/dist/flows/alternativas.d.ts.map +1 -0
- package/dist/flows/alternativas.js +218 -0
- package/dist/flows/alternativas.js.map +1 -0
- package/dist/flows/classifier.d.ts +10 -0
- package/dist/flows/classifier.d.ts.map +1 -0
- package/dist/flows/classifier.js +112 -0
- package/dist/flows/classifier.js.map +1 -0
- package/dist/flows/types.d.ts +23 -0
- package/dist/flows/types.d.ts.map +1 -0
- package/dist/flows/types.js +470 -0
- package/dist/flows/types.js.map +1 -0
- package/dist/gates/estrutura.d.ts +43 -0
- package/dist/gates/estrutura.d.ts.map +1 -0
- package/dist/gates/estrutura.js +199 -0
- package/dist/gates/estrutura.js.map +1 -0
- package/dist/gates/tiers.d.ts +42 -0
- package/dist/gates/tiers.d.ts.map +1 -0
- package/dist/gates/tiers.js +255 -0
- package/dist/gates/tiers.js.map +1 -0
- package/dist/gates/tiers.test.d.ts +2 -0
- package/dist/gates/tiers.test.d.ts.map +1 -0
- package/dist/gates/tiers.test.js +86 -0
- package/dist/gates/tiers.test.js.map +1 -0
- package/dist/gates/validator.d.ts +18 -0
- package/dist/gates/validator.d.ts.map +1 -0
- package/dist/gates/validator.js +171 -0
- package/dist/gates/validator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +596 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/index.d.ts +6 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +166 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +27 -0
- package/dist/server.js.map +1 -0
- package/dist/state/context.d.ts +43 -0
- package/dist/state/context.d.ts.map +1 -0
- package/dist/state/context.js +92 -0
- package/dist/state/context.js.map +1 -0
- package/dist/state/memory.d.ts +54 -0
- package/dist/state/memory.d.ts.map +1 -0
- package/dist/state/memory.js +173 -0
- package/dist/state/memory.js.map +1 -0
- package/dist/state/storage.d.ts +37 -0
- package/dist/state/storage.d.ts.map +1 -0
- package/dist/state/storage.js +127 -0
- package/dist/state/storage.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +350 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/analise/index.d.ts +8 -0
- package/dist/tools/analise/index.d.ts.map +1 -0
- package/dist/tools/analise/index.js +8 -0
- package/dist/tools/analise/index.js.map +1 -0
- package/dist/tools/analise/performance.d.ts +25 -0
- package/dist/tools/analise/performance.d.ts.map +1 -0
- package/dist/tools/analise/performance.js +82 -0
- package/dist/tools/analise/performance.js.map +1 -0
- package/dist/tools/analise/qualidade.d.ts +25 -0
- package/dist/tools/analise/qualidade.d.ts.map +1 -0
- package/dist/tools/analise/qualidade.js +82 -0
- package/dist/tools/analise/qualidade.js.map +1 -0
- package/dist/tools/analise/relatorio.d.ts +31 -0
- package/dist/tools/analise/relatorio.d.ts.map +1 -0
- package/dist/tools/analise/relatorio.js +162 -0
- package/dist/tools/analise/relatorio.js.map +1 -0
- package/dist/tools/analise/seguranca.d.ts +25 -0
- package/dist/tools/analise/seguranca.d.ts.map +1 -0
- package/dist/tools/analise/seguranca.js +87 -0
- package/dist/tools/analise/seguranca.js.map +1 -0
- package/dist/tools/aprovar-gate.d.ts +40 -0
- package/dist/tools/aprovar-gate.d.ts.map +1 -0
- package/dist/tools/aprovar-gate.js +217 -0
- package/dist/tools/aprovar-gate.js.map +1 -0
- package/dist/tools/atualizar-codebase.d.ts +184 -0
- package/dist/tools/atualizar-codebase.d.ts.map +1 -0
- package/dist/tools/atualizar-codebase.js +199 -0
- package/dist/tools/atualizar-codebase.js.map +1 -0
- package/dist/tools/avaliar-entregavel.d.ts +31 -0
- package/dist/tools/avaliar-entregavel.d.ts.map +1 -0
- package/dist/tools/avaliar-entregavel.js +164 -0
- package/dist/tools/avaliar-entregavel.js.map +1 -0
- package/dist/tools/carregar-projeto.d.ts +32 -0
- package/dist/tools/carregar-projeto.d.ts.map +1 -0
- package/dist/tools/carregar-projeto.js +202 -0
- package/dist/tools/carregar-projeto.js.map +1 -0
- package/dist/tools/classificar.d.ts +46 -0
- package/dist/tools/classificar.d.ts.map +1 -0
- package/dist/tools/classificar.js +148 -0
- package/dist/tools/classificar.js.map +1 -0
- package/dist/tools/confirmar-classificacao.d.ts +35 -0
- package/dist/tools/confirmar-classificacao.d.ts.map +1 -0
- package/dist/tools/confirmar-classificacao.js +121 -0
- package/dist/tools/confirmar-classificacao.js.map +1 -0
- package/dist/tools/confirmar-stitch.d.ts +32 -0
- package/dist/tools/confirmar-stitch.d.ts.map +1 -0
- package/dist/tools/confirmar-stitch.js +176 -0
- package/dist/tools/confirmar-stitch.js.map +1 -0
- package/dist/tools/contexto.d.ts +29 -0
- package/dist/tools/contexto.d.ts.map +1 -0
- package/dist/tools/contexto.js +138 -0
- package/dist/tools/contexto.js.map +1 -0
- package/dist/tools/fluxos-alternativos.d.ts +79 -0
- package/dist/tools/fluxos-alternativos.d.ts.map +1 -0
- package/dist/tools/fluxos-alternativos.js +221 -0
- package/dist/tools/fluxos-alternativos.js.map +1 -0
- package/dist/tools/implementar-historia.d.ts +34 -0
- package/dist/tools/implementar-historia.d.ts.map +1 -0
- package/dist/tools/implementar-historia.js +175 -0
- package/dist/tools/implementar-historia.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +291 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/iniciar-projeto.d.ts +64 -0
- package/dist/tools/iniciar-projeto.d.ts.map +1 -0
- package/dist/tools/iniciar-projeto.js +366 -0
- package/dist/tools/iniciar-projeto.js.map +1 -0
- package/dist/tools/injetar-conteudo.d.ts +41 -0
- package/dist/tools/injetar-conteudo.d.ts.map +1 -0
- package/dist/tools/injetar-conteudo.js +107 -0
- package/dist/tools/injetar-conteudo.js.map +1 -0
- package/dist/tools/proximo.d.ts +45 -0
- package/dist/tools/proximo.d.ts.map +1 -0
- package/dist/tools/proximo.js +571 -0
- package/dist/tools/proximo.js.map +1 -0
- package/dist/tools/salvar.d.ts +46 -0
- package/dist/tools/salvar.d.ts.map +1 -0
- package/dist/tools/salvar.js +176 -0
- package/dist/tools/salvar.js.map +1 -0
- package/dist/tools/status.d.ts +29 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/status.js +171 -0
- package/dist/tools/status.js.map +1 -0
- package/dist/tools/validar-gate.d.ts +39 -0
- package/dist/tools/validar-gate.d.ts.map +1 -0
- package/dist/tools/validar-gate.js +131 -0
- package/dist/tools/validar-gate.js.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +171 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +185 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/response.d.ts +38 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +35 -0
- package/dist/types/response.js.map +1 -0
- package/dist/utils/code-parser.d.ts +58 -0
- package/dist/utils/code-parser.d.ts.map +1 -0
- package/dist/utils/code-parser.js +182 -0
- package/dist/utils/code-parser.js.map +1 -0
- package/dist/utils/content-injector.d.ts +14 -0
- package/dist/utils/content-injector.d.ts.map +1 -0
- package/dist/utils/content-injector.js +88 -0
- package/dist/utils/content-injector.js.map +1 -0
- package/dist/utils/files.d.ts +73 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +282 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/history.d.ts +28 -0
- package/dist/utils/history.d.ts.map +1 -0
- package/dist/utils/history.js +32 -0
- package/dist/utils/history.js.map +1 -0
- package/dist/utils/instructions.d.ts +16 -0
- package/dist/utils/instructions.d.ts.map +1 -0
- package/dist/utils/instructions.js +70 -0
- package/dist/utils/instructions.js.map +1 -0
- package/dist/utils/local-content.d.ts +21 -0
- package/dist/utils/local-content.d.ts.map +1 -0
- package/dist/utils/local-content.js +85 -0
- package/dist/utils/local-content.js.map +1 -0
- package/dist/utils/prompt-mapper.d.ts +33 -0
- package/dist/utils/prompt-mapper.d.ts.map +1 -0
- package/dist/utils/prompt-mapper.js +184 -0
- package/dist/utils/prompt-mapper.js.map +1 -0
- package/dist/utils/system-md.d.ts +7 -0
- package/dist/utils/system-md.d.ts.map +1 -0
- package/dist/utils/system-md.js +51 -0
- package/dist/utils/system-md.js.map +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# MCP Maestro
|
|
2
|
+
|
|
3
|
+
Servidor MCP (Model Context Protocol) para o Maestro - Guia de Desenvolvimento Assistido por IA.
|
|
4
|
+
|
|
5
|
+
## 🚀 Uso via npx (Recomendado)
|
|
6
|
+
|
|
7
|
+
O Maestro agora é distribuído como pacote npm e executado localmente via `npx`, garantindo acesso direto aos arquivos do seu projeto.
|
|
8
|
+
|
|
9
|
+
### Instalação e Configuração
|
|
10
|
+
|
|
11
|
+
1. **Configure seu cliente MCP** (ex: Gemini, VS Code, Cline):
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"maestro": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["-y", "@maestro/mcp-server", "D:\\SEU\\DIRETÓRIO\\DE\\PROJETOS"],
|
|
19
|
+
"disabled": false,
|
|
20
|
+
"env": {}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. **Substitua `D:\\SEU\\DIRETÓRIO\\DE\\PROJETOS`** pelo caminho onde você cria projetos Maestro.
|
|
27
|
+
|
|
28
|
+
### Fluxo de Uso
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 1. Iniciar novo projeto (analisa e sugere classificação)
|
|
32
|
+
iniciar_projeto(
|
|
33
|
+
nome: "Meu App",
|
|
34
|
+
descricao: "Sistema de gestão de tarefas",
|
|
35
|
+
diretorio: "D:\\Projetos\\meu-app"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# 2. Confirmar criação (injeta conteúdo automaticamente)
|
|
39
|
+
confirmar_projeto(
|
|
40
|
+
nome: "Meu App",
|
|
41
|
+
diretorio: "D:\\Projetos\\meu-app",
|
|
42
|
+
tipo_artefato: "product",
|
|
43
|
+
nivel_complexidade: "medio"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# 3. Trabalhar nas fases
|
|
47
|
+
proximo() # Avança para próxima fase
|
|
48
|
+
status() # Ver status completo
|
|
49
|
+
salvar() # Salva entregáveis
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Injeção Automática de Conteúdo
|
|
53
|
+
|
|
54
|
+
Ao confirmar um projeto, o Maestro injeta automaticamente:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
meu-app/
|
|
58
|
+
├── .maestro/
|
|
59
|
+
│ ├── content/ ← Conteúdo injetado aqui
|
|
60
|
+
│ │ ├── specialists/ # Especialistas de cada fase
|
|
61
|
+
│ │ ├── templates/ # Modelos de entregáveis
|
|
62
|
+
│ │ ├── guides/ # Guias de apoio
|
|
63
|
+
│ │ └── prompts/ # Prompts por categoria
|
|
64
|
+
│ ├── estado.json # Estado do projeto
|
|
65
|
+
│ └── resumo.json # Memória do projeto
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Comandos Principais
|
|
69
|
+
|
|
70
|
+
| Comando | Descrição |
|
|
71
|
+
|---------|-----------|
|
|
72
|
+
| `iniciar_projeto` | Analisa e sugere classificação |
|
|
73
|
+
| `confirmar_projeto` | Cria projeto e injeta conteúdo |
|
|
74
|
+
| `carregar_projeto` | Carrega projeto existente |
|
|
75
|
+
| `proximo` | Salva entregável e avança fase |
|
|
76
|
+
| `status` | Retorna status completo |
|
|
77
|
+
| `injetar_conteudo` | Reinjeta conteúdo (use `force:true`) |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 🌐 Servidor Público (Legado)
|
|
82
|
+
|
|
83
|
+
O servidor HTTP público continua disponível para compatibilidade:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
https://maestro.deluna.dev.br
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
> **Nota**: Recomendamos usar o modo npx para acesso completo aos arquivos locais.
|
|
90
|
+
|
|
91
|
+
### Verificar Status
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
curl https://maestro.deluna.dev.br/health
|
|
95
|
+
# Retorna: {"status":"ok","server":"mcp-maestro","version":"1.0.0"}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## �️ Tools Disponíveis
|
|
101
|
+
|
|
102
|
+
| Tool | Descrição |
|
|
103
|
+
|------|-----------|
|
|
104
|
+
| `iniciar_projeto` | Inicia um novo projeto com classificação |
|
|
105
|
+
| `confirmar_projeto` | Confirma criação e injeta conteúdo |
|
|
106
|
+
| `carregar_projeto` | Carrega projeto existente |
|
|
107
|
+
| `proximo` | Salva entregável e avança para próxima fase |
|
|
108
|
+
| `status` | Retorna status atual do projeto |
|
|
109
|
+
| `validar_gate` | Valida checklist antes de avançar fase |
|
|
110
|
+
| `contexto` | Obtém contexto completo do projeto |
|
|
111
|
+
| `salvar` | Salva artefatos do projeto |
|
|
112
|
+
| `injetar_conteudo` | Injeta conteúdo base no projeto |
|
|
113
|
+
| `nova_feature` | Fluxo para adicionar nova feature |
|
|
114
|
+
| `corrigir_bug` | Fluxo para correção de bugs |
|
|
115
|
+
| `refatorar` | Fluxo para refatoração de código |
|
|
116
|
+
| `classificar` | Classifica entregáveis |
|
|
117
|
+
| `avaliar_entregavel` | Avalia qualidade com score |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 📚 Resources Disponíveis
|
|
122
|
+
|
|
123
|
+
| URI | Descrição |
|
|
124
|
+
|-----|-----------|
|
|
125
|
+
| `maestro://especialista/{nome}` | Especialistas de IA |
|
|
126
|
+
| `maestro://template/{nome}` | Templates de documentos |
|
|
127
|
+
| `maestro://guia/{nome}` | Guias práticos |
|
|
128
|
+
| `maestro://prompt/{categoria}/{nome}` | Prompts especializados |
|
|
129
|
+
| `maestro://system-prompt` | System prompt do Maestro |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 💻 Desenvolvimento Local
|
|
134
|
+
|
|
135
|
+
### Instalação
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
cd src
|
|
139
|
+
npm install
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Desenvolvimento
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Modo npx (STDIO) - principal
|
|
146
|
+
npm run dev
|
|
147
|
+
|
|
148
|
+
# Modo HTTP - apenas para testes
|
|
149
|
+
npm run dev:http
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Build e Produção
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npm run build
|
|
156
|
+
npm run start:stdio # Modo npx
|
|
157
|
+
npm run start # Modo HTTP
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Teste Local do Pacote
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Gerar pacote
|
|
164
|
+
npm run pack
|
|
165
|
+
|
|
166
|
+
# Testar antes de publicar
|
|
167
|
+
npx ./maestro-mcp-server-1.0.0.tgz D:\Projetos\teste
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Publicação
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Publicar no npm (requer login)
|
|
174
|
+
npm publish --access public
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 📋 Exemplo de Fluxo Completo (Modo npx)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# 1. Iniciar projeto
|
|
183
|
+
iniciar_projeto(
|
|
184
|
+
nome: "meu-app",
|
|
185
|
+
descricao: "Sistema de gestão de tarefas",
|
|
186
|
+
diretorio: "D:\\Projetos\\meu-app"
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
# 2. Confirmar criação (injeta conteúdo automaticamente)
|
|
190
|
+
confirmar_projeto(
|
|
191
|
+
nome: "meu-app",
|
|
192
|
+
diretorio: "D:\\Projetos\\meu-app",
|
|
193
|
+
tipo_artefato: "product",
|
|
194
|
+
nivel_complexidade: "medio"
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# 3. Verificar status
|
|
198
|
+
status(
|
|
199
|
+
diretorio: "D:\\Projetos\\meu-app"
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
# 4. Avançar fase
|
|
203
|
+
proximo(
|
|
204
|
+
entregavel: "# PRD - Produto\n\n## Problema\n...",
|
|
205
|
+
diretorio: "D:\\Projetos\\meu-app"
|
|
206
|
+
)
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 🐳 Docker (Legado)
|
|
212
|
+
|
|
213
|
+
A imagem Docker continua disponível para o modo HTTP:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Produção
|
|
217
|
+
docker-compose up -d
|
|
218
|
+
|
|
219
|
+
# Desenvolvimento
|
|
220
|
+
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 📄 Licença
|
|
226
|
+
|
|
227
|
+
MIT License - veja arquivo LICENSE para detalhes.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base types and interfaces for code analyzers
|
|
3
|
+
*/
|
|
4
|
+
export type Severity = "critical" | "high" | "medium" | "low" | "info";
|
|
5
|
+
export type AnalysisCategory = "security" | "performance" | "quality" | "accessibility" | "dependency";
|
|
6
|
+
export interface Finding {
|
|
7
|
+
id: string;
|
|
8
|
+
category: AnalysisCategory;
|
|
9
|
+
severity: Severity;
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
file?: string;
|
|
13
|
+
line?: number;
|
|
14
|
+
column?: number;
|
|
15
|
+
code?: string;
|
|
16
|
+
suggestion?: string;
|
|
17
|
+
references?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface AnalysisResult {
|
|
20
|
+
category: AnalysisCategory;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
duration: number;
|
|
23
|
+
findings: Finding[];
|
|
24
|
+
summary: {
|
|
25
|
+
total: number;
|
|
26
|
+
critical: number;
|
|
27
|
+
high: number;
|
|
28
|
+
medium: number;
|
|
29
|
+
low: number;
|
|
30
|
+
info: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface IAnalyzer {
|
|
34
|
+
category: AnalysisCategory;
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
analyze(content: string, options?: AnalyzerOptions): Promise<AnalysisResult>;
|
|
38
|
+
}
|
|
39
|
+
export interface AnalyzerOptions {
|
|
40
|
+
fileType?: string;
|
|
41
|
+
fileName?: string;
|
|
42
|
+
projectDir?: string;
|
|
43
|
+
rules?: string[];
|
|
44
|
+
severity?: Severity;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Abstract base class for all analyzers
|
|
48
|
+
*/
|
|
49
|
+
export declare abstract class BaseAnalyzer implements IAnalyzer {
|
|
50
|
+
abstract category: AnalysisCategory;
|
|
51
|
+
abstract name: string;
|
|
52
|
+
abstract description: string;
|
|
53
|
+
protected findings: Finding[];
|
|
54
|
+
protected startTime: number;
|
|
55
|
+
analyze(content: string, options?: AnalyzerOptions): Promise<AnalysisResult>;
|
|
56
|
+
protected abstract performAnalysis(content: string, options?: AnalyzerOptions): Promise<void>;
|
|
57
|
+
protected addFinding(finding: Omit<Finding, "id" | "category">): void;
|
|
58
|
+
protected buildResult(): AnalysisResult;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Format analysis result as markdown
|
|
62
|
+
*/
|
|
63
|
+
export declare function formatAnalysisResult(result: AnalysisResult): string;
|
|
64
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/analyzers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAGvE,MAAM,MAAM,gBAAgB,GACtB,UAAU,GACV,aAAa,GACb,SAAS,GACT,eAAe,GACf,YAAY,CAAC;AAGnB,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAGD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL;AAGD,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAChF;AAGD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAED;;GAEG;AACH,8BAAsB,YAAa,YAAW,SAAS;IACnD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IACnC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAE1B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IASlF,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7F,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,IAAI;IAQrE,SAAS,CAAC,WAAW,IAAI,cAAc;CAkB1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA0EnE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base types and interfaces for code analyzers
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Abstract base class for all analyzers
|
|
6
|
+
*/
|
|
7
|
+
export class BaseAnalyzer {
|
|
8
|
+
findings = [];
|
|
9
|
+
startTime = 0;
|
|
10
|
+
async analyze(content, options) {
|
|
11
|
+
this.startTime = Date.now();
|
|
12
|
+
this.findings = [];
|
|
13
|
+
await this.performAnalysis(content, options);
|
|
14
|
+
return this.buildResult();
|
|
15
|
+
}
|
|
16
|
+
addFinding(finding) {
|
|
17
|
+
this.findings.push({
|
|
18
|
+
id: `${this.category}-${this.findings.length + 1}`,
|
|
19
|
+
category: this.category,
|
|
20
|
+
...finding,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
buildResult() {
|
|
24
|
+
const summary = {
|
|
25
|
+
total: this.findings.length,
|
|
26
|
+
critical: this.findings.filter(f => f.severity === "critical").length,
|
|
27
|
+
high: this.findings.filter(f => f.severity === "high").length,
|
|
28
|
+
medium: this.findings.filter(f => f.severity === "medium").length,
|
|
29
|
+
low: this.findings.filter(f => f.severity === "low").length,
|
|
30
|
+
info: this.findings.filter(f => f.severity === "info").length,
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
category: this.category,
|
|
34
|
+
timestamp: new Date().toISOString(),
|
|
35
|
+
duration: Date.now() - this.startTime,
|
|
36
|
+
findings: this.findings,
|
|
37
|
+
summary,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Format analysis result as markdown
|
|
43
|
+
*/
|
|
44
|
+
export function formatAnalysisResult(result) {
|
|
45
|
+
const lines = [];
|
|
46
|
+
const emoji = {
|
|
47
|
+
security: "🔒",
|
|
48
|
+
performance: "⚡",
|
|
49
|
+
quality: "📊",
|
|
50
|
+
accessibility: "♿",
|
|
51
|
+
dependency: "📦",
|
|
52
|
+
};
|
|
53
|
+
lines.push(`# ${emoji[result.category]} Análise de ${result.category.charAt(0).toUpperCase() + result.category.slice(1)}\n`);
|
|
54
|
+
// Summary
|
|
55
|
+
lines.push("## Resumo\n");
|
|
56
|
+
lines.push(`| Severidade | Quantidade |`);
|
|
57
|
+
lines.push(`|------------|------------|`);
|
|
58
|
+
lines.push(`| 🔴 Crítico | ${result.summary.critical} |`);
|
|
59
|
+
lines.push(`| 🟠 Alto | ${result.summary.high} |`);
|
|
60
|
+
lines.push(`| 🟡 Médio | ${result.summary.medium} |`);
|
|
61
|
+
lines.push(`| 🔵 Baixo | ${result.summary.low} |`);
|
|
62
|
+
lines.push(`| ⚪ Info | ${result.summary.info} |`);
|
|
63
|
+
lines.push(`| **Total** | **${result.summary.total}** |\n`);
|
|
64
|
+
if (result.findings.length === 0) {
|
|
65
|
+
lines.push("✅ **Nenhum problema encontrado!**\n");
|
|
66
|
+
return lines.join("\n");
|
|
67
|
+
}
|
|
68
|
+
// Findings by severity
|
|
69
|
+
const bySeverity = ["critical", "high", "medium", "low", "info"];
|
|
70
|
+
for (const severity of bySeverity) {
|
|
71
|
+
const findings = result.findings.filter(f => f.severity === severity);
|
|
72
|
+
if (findings.length === 0)
|
|
73
|
+
continue;
|
|
74
|
+
const severityEmoji = {
|
|
75
|
+
critical: "🔴",
|
|
76
|
+
high: "🟠",
|
|
77
|
+
medium: "🟡",
|
|
78
|
+
low: "🔵",
|
|
79
|
+
info: "⚪",
|
|
80
|
+
};
|
|
81
|
+
lines.push(`## ${severityEmoji[severity]} ${severity.toUpperCase()} (${findings.length})\n`);
|
|
82
|
+
for (const finding of findings) {
|
|
83
|
+
lines.push(`### ${finding.title}\n`);
|
|
84
|
+
lines.push(finding.description);
|
|
85
|
+
if (finding.file) {
|
|
86
|
+
lines.push(`\n**Arquivo:** \`${finding.file}\`${finding.line ? `:${finding.line}` : ""}`);
|
|
87
|
+
}
|
|
88
|
+
if (finding.code) {
|
|
89
|
+
lines.push(`\n\`\`\`\n${finding.code}\n\`\`\``);
|
|
90
|
+
}
|
|
91
|
+
if (finding.suggestion) {
|
|
92
|
+
lines.push(`\n💡 **Sugestão:** ${finding.suggestion}`);
|
|
93
|
+
}
|
|
94
|
+
if (finding.references && finding.references.length > 0) {
|
|
95
|
+
lines.push(`\n**Referências:**`);
|
|
96
|
+
finding.references.forEach(ref => lines.push(`- ${ref}`));
|
|
97
|
+
}
|
|
98
|
+
lines.push("");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
lines.push(`---\n*Análise executada em ${result.duration}ms*`);
|
|
102
|
+
return lines.join("\n");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/analyzers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8DH;;GAEG;AACH,MAAM,OAAgB,YAAY;IAKpB,QAAQ,GAAc,EAAE,CAAC;IACzB,SAAS,GAAW,CAAC,CAAC;IAEhC,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAyB;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAIS,UAAU,CAAC,OAAyC;QAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,OAAO;SACb,CAAC,CAAC;IACP,CAAC;IAES,WAAW;QACjB,MAAM,OAAO,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM;YACrE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;YAC7D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;YACjE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM;YAC3D,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;SAChE,CAAC;QAEF,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO;SACV,CAAC;IACN,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG;QACV,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,GAAG;QAClB,UAAU,EAAE,IAAI;KACnB,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7H,UAAU;IACV,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAE5D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,uBAAuB;IACvB,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAe,CAAC;IAE/E,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEpC,MAAM,aAAa,GAAG;YAClB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,GAAG;SACZ,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAE7F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAE/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyzers Index - Export all analyzers
|
|
3
|
+
*/
|
|
4
|
+
export { BaseAnalyzer, formatAnalysisResult } from "./base.js";
|
|
5
|
+
export type { Finding, AnalysisResult, AnalyzerOptions, Severity, AnalysisCategory, IAnalyzer } from "./base.js";
|
|
6
|
+
export { SecurityAnalyzer } from "./security-analyzer.js";
|
|
7
|
+
export { QualityAnalyzer } from "./quality-analyzer.js";
|
|
8
|
+
export { PerformanceAnalyzer } from "./performance-analyzer.js";
|
|
9
|
+
import type { IAnalyzer, AnalysisCategory } from "./base.js";
|
|
10
|
+
export declare function createAnalyzer(category: AnalysisCategory): IAnalyzer;
|
|
11
|
+
export declare function getAllAnalyzers(): IAnalyzer[];
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAWpE;AAED,wBAAgB,eAAe,IAAI,SAAS,EAAE,CAM7C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyzers Index - Export all analyzers
|
|
3
|
+
*/
|
|
4
|
+
export { BaseAnalyzer, formatAnalysisResult } from "./base.js";
|
|
5
|
+
export { SecurityAnalyzer } from "./security-analyzer.js";
|
|
6
|
+
export { QualityAnalyzer } from "./quality-analyzer.js";
|
|
7
|
+
export { PerformanceAnalyzer } from "./performance-analyzer.js";
|
|
8
|
+
// Factory to get all analyzers
|
|
9
|
+
import { SecurityAnalyzer } from "./security-analyzer.js";
|
|
10
|
+
import { QualityAnalyzer } from "./quality-analyzer.js";
|
|
11
|
+
import { PerformanceAnalyzer } from "./performance-analyzer.js";
|
|
12
|
+
export function createAnalyzer(category) {
|
|
13
|
+
switch (category) {
|
|
14
|
+
case "security":
|
|
15
|
+
return new SecurityAnalyzer();
|
|
16
|
+
case "quality":
|
|
17
|
+
return new QualityAnalyzer();
|
|
18
|
+
case "performance":
|
|
19
|
+
return new PerformanceAnalyzer();
|
|
20
|
+
default:
|
|
21
|
+
throw new Error(`Unknown analyzer category: ${category}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function getAllAnalyzers() {
|
|
25
|
+
return [
|
|
26
|
+
new SecurityAnalyzer(),
|
|
27
|
+
new QualityAnalyzer(),
|
|
28
|
+
new PerformanceAnalyzer(),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,MAAM,UAAU,cAAc,CAAC,QAA0B;IACrD,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,UAAU;YACX,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAClC,KAAK,SAAS;YACV,OAAO,IAAI,eAAe,EAAE,CAAC;QACjC,KAAK,aAAa;YACd,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACrC;YACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,OAAO;QACH,IAAI,gBAAgB,EAAE;QACtB,IAAI,eAAe,EAAE;QACrB,IAAI,mBAAmB,EAAE;KAC5B,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance Analyzer - Detects performance issues and anti-patterns
|
|
3
|
+
*/
|
|
4
|
+
import { BaseAnalyzer, type AnalyzerOptions } from "./base.js";
|
|
5
|
+
export declare class PerformanceAnalyzer extends BaseAnalyzer {
|
|
6
|
+
category: "performance";
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
protected performAnalysis(content: string, options?: AnalyzerOptions): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=performance-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/performance-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAiB,MAAM,WAAW,CAAC;AA+H9E,qBAAa,mBAAoB,SAAQ,YAAY;IACjD,QAAQ,EAAG,aAAa,CAAU;IAClC,IAAI,SAA0B;IAC9B,WAAW,SAAsD;cAEjD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA4C7F"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance Analyzer - Detects performance issues and anti-patterns
|
|
3
|
+
*/
|
|
4
|
+
import { BaseAnalyzer } from "./base.js";
|
|
5
|
+
const PERFORMANCE_RULES = [
|
|
6
|
+
// Loop issues
|
|
7
|
+
{
|
|
8
|
+
id: "PERF-LOOP-AWAIT",
|
|
9
|
+
name: "Await dentro de loop",
|
|
10
|
+
description: "Await sequencial em loop causa N requests em série",
|
|
11
|
+
severity: "high",
|
|
12
|
+
pattern: /for\s*\([^)]*\)\s*\{[^}]*await\b|while\s*\([^)]*\)\s*\{[^}]*await\b/,
|
|
13
|
+
suggestion: "Use Promise.all() para executar em paralelo",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "PERF-NESTED-LOOP",
|
|
17
|
+
name: "Loops aninhados",
|
|
18
|
+
description: "Loops aninhados podem causar O(n²) ou pior",
|
|
19
|
+
severity: "medium",
|
|
20
|
+
pattern: /for\s*\([^)]*\)\s*\{[^}]*for\s*\(/,
|
|
21
|
+
suggestion: "Considere usar Map/Set ou reestruturar algoritmo",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "PERF-ARRAY-IN-LOOP",
|
|
25
|
+
name: "Criação de array em loop",
|
|
26
|
+
description: "Criar arrays dentro de loop causa alocações desnecessárias",
|
|
27
|
+
severity: "low",
|
|
28
|
+
pattern: /for\s*\([^)]*\)\s*\{[^}]*\[\s*\]/,
|
|
29
|
+
suggestion: "Mova criação de array para fora do loop",
|
|
30
|
+
},
|
|
31
|
+
// Memory issues
|
|
32
|
+
{
|
|
33
|
+
id: "PERF-LARGE-ARRAY",
|
|
34
|
+
name: "Array potencialmente grande",
|
|
35
|
+
description: "Carregar todos registros de uma vez pode consumir muita memória",
|
|
36
|
+
severity: "medium",
|
|
37
|
+
pattern: /findAll|find\(\)|getAll|fetchAll/i,
|
|
38
|
+
suggestion: "Use paginação ou streaming para grandes datasets",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "PERF-NO-LIMIT",
|
|
42
|
+
name: "Query sem LIMIT",
|
|
43
|
+
description: "Query sem limite pode retornar milhões de registros",
|
|
44
|
+
severity: "high",
|
|
45
|
+
pattern: /SELECT.*FROM(?!.*LIMIT)/i,
|
|
46
|
+
suggestion: "Sempre use LIMIT ou paginação em queries",
|
|
47
|
+
},
|
|
48
|
+
// React specific
|
|
49
|
+
{
|
|
50
|
+
id: "PERF-INLINE-FUNCTION",
|
|
51
|
+
name: "Função inline em render",
|
|
52
|
+
description: "Funções inline causam re-renders desnecessários",
|
|
53
|
+
severity: "medium",
|
|
54
|
+
pattern: /onClick=\{.*=>/,
|
|
55
|
+
suggestion: "Use useCallback ou defina função fora do JSX",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "PERF-INLINE-OBJECT",
|
|
59
|
+
name: "Objeto inline em render",
|
|
60
|
+
description: "Objetos inline causam re-renders desnecessários",
|
|
61
|
+
severity: "medium",
|
|
62
|
+
pattern: /style=\{\{|className=\{\{/,
|
|
63
|
+
suggestion: "Use useMemo ou defina objeto fora do JSX",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "PERF-MISSING-KEY",
|
|
67
|
+
name: "Lista sem key",
|
|
68
|
+
description: "Listas sem key única causam re-renders ineficientes",
|
|
69
|
+
severity: "medium",
|
|
70
|
+
pattern: /\.map\([^)]*\)\s*=>\s*<\w+(?![^>]*key=)/,
|
|
71
|
+
suggestion: "Adicione key única em elementos de lista",
|
|
72
|
+
},
|
|
73
|
+
// API/Network
|
|
74
|
+
{
|
|
75
|
+
id: "PERF-N-PLUS-1",
|
|
76
|
+
name: "Possível N+1 Query",
|
|
77
|
+
description: "Query dentro de loop causa múltiplas requisições ao banco",
|
|
78
|
+
severity: "high",
|
|
79
|
+
pattern: /for.*\{[^}]*(?:find|get|fetch|query|select)/i,
|
|
80
|
+
suggestion: "Use eager loading ou batch queries",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: "PERF-NO-CACHE",
|
|
84
|
+
name: "Requisição sem cache",
|
|
85
|
+
description: "Requisição que poderia ser cacheada",
|
|
86
|
+
severity: "low",
|
|
87
|
+
pattern: /fetch\([^)]*\)(?!.*cache)/i,
|
|
88
|
+
suggestion: "Considere adicionar cache para dados estáticos",
|
|
89
|
+
},
|
|
90
|
+
// JS performance
|
|
91
|
+
{
|
|
92
|
+
id: "PERF-SYNC-LOCALSTORAGE",
|
|
93
|
+
name: "LocalStorage síncrono",
|
|
94
|
+
description: "LocalStorage é síncrono e pode bloquear a thread",
|
|
95
|
+
severity: "low",
|
|
96
|
+
pattern: /localStorage\.(get|set|remove)Item/,
|
|
97
|
+
suggestion: "Use IndexedDB para dados grandes ou acesso frequente",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "PERF-DOCUMENT-QUERYSELECTORALL",
|
|
101
|
+
name: "QuerySelectorAll em loop",
|
|
102
|
+
description: "DOM query repetida é custosa",
|
|
103
|
+
severity: "medium",
|
|
104
|
+
pattern: /for.*document\.querySelector/,
|
|
105
|
+
suggestion: "Cache o resultado da query antes do loop",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: "PERF-STRING-CONCAT-LOOP",
|
|
109
|
+
name: "Concatenação de string em loop",
|
|
110
|
+
description: "Concatenar strings em loop é O(n²)",
|
|
111
|
+
severity: "medium",
|
|
112
|
+
pattern: /for.*\+=/,
|
|
113
|
+
suggestion: "Use array.join() ou template literals",
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
export class PerformanceAnalyzer extends BaseAnalyzer {
|
|
117
|
+
category = "performance";
|
|
118
|
+
name = "Performance Analyzer";
|
|
119
|
+
description = "Detecta problemas de performance e anti-patterns";
|
|
120
|
+
async performAnalysis(content, options) {
|
|
121
|
+
const lines = content.split("\n");
|
|
122
|
+
// Check for rules that span multiple lines
|
|
123
|
+
for (const rule of PERFORMANCE_RULES) {
|
|
124
|
+
if (rule.pattern.test(content)) {
|
|
125
|
+
// Find the line number
|
|
126
|
+
for (let i = 0; i < lines.length; i++) {
|
|
127
|
+
if (rule.pattern.test(lines[i])) {
|
|
128
|
+
this.addFinding({
|
|
129
|
+
severity: rule.severity,
|
|
130
|
+
title: `[${rule.id}] ${rule.name}`,
|
|
131
|
+
description: rule.description,
|
|
132
|
+
file: options?.fileName,
|
|
133
|
+
line: i + 1,
|
|
134
|
+
code: lines[i].trim(),
|
|
135
|
+
suggestion: rule.suggestion,
|
|
136
|
+
});
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Check bundle size indicators
|
|
143
|
+
const largeImports = [
|
|
144
|
+
{ name: "moment", size: "300KB", alternative: "dayjs (2KB)" },
|
|
145
|
+
{ name: "lodash", size: "70KB", alternative: "lodash-es com tree-shaking" },
|
|
146
|
+
{ name: "jquery", size: "90KB", alternative: "vanilla JS ou frameworks modernos" },
|
|
147
|
+
];
|
|
148
|
+
for (const lib of largeImports) {
|
|
149
|
+
const importPattern = new RegExp(`import.*from\\s*['"]${lib.name}['"]`);
|
|
150
|
+
if (importPattern.test(content)) {
|
|
151
|
+
this.addFinding({
|
|
152
|
+
severity: "medium",
|
|
153
|
+
title: `[PERF-LARGE-BUNDLE] Biblioteca pesada: ${lib.name}`,
|
|
154
|
+
description: `${lib.name} adiciona ~${lib.size} ao bundle`,
|
|
155
|
+
file: options?.fileName,
|
|
156
|
+
suggestion: `Considere usar ${lib.alternative}`,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=performance-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/performance-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality Analyzer - Code quality metrics and issues
|
|
3
|
+
*/
|
|
4
|
+
import { BaseAnalyzer, type AnalyzerOptions } from "./base.js";
|
|
5
|
+
export declare class QualityAnalyzer extends BaseAnalyzer {
|
|
6
|
+
category: "quality";
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
protected performAnalysis(content: string, options?: AnalyzerOptions): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=quality-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/quality-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAiB,MAAM,WAAW,CAAC;AA+G9E,qBAAa,eAAgB,SAAQ,YAAY;IAC7C,QAAQ,EAAG,SAAS,CAAU;IAC9B,IAAI,SAAsB;IAC1B,WAAW,SAAyD;cAEpD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA6F7F"}
|