@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
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Parser - Extracts structure from source code
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Detect language from file extension or content
|
|
6
|
+
*/
|
|
7
|
+
export function detectLanguage(fileName, content) {
|
|
8
|
+
const ext = fileName.split(".").pop()?.toLowerCase();
|
|
9
|
+
const extMap = {
|
|
10
|
+
ts: "typescript",
|
|
11
|
+
tsx: "typescript",
|
|
12
|
+
js: "javascript",
|
|
13
|
+
jsx: "javascript",
|
|
14
|
+
py: "python",
|
|
15
|
+
java: "java",
|
|
16
|
+
cs: "csharp",
|
|
17
|
+
go: "go",
|
|
18
|
+
rs: "rust",
|
|
19
|
+
rb: "ruby",
|
|
20
|
+
php: "php",
|
|
21
|
+
html: "html",
|
|
22
|
+
css: "css",
|
|
23
|
+
scss: "scss",
|
|
24
|
+
sql: "sql",
|
|
25
|
+
yaml: "yaml",
|
|
26
|
+
yml: "yaml",
|
|
27
|
+
json: "json",
|
|
28
|
+
md: "markdown",
|
|
29
|
+
};
|
|
30
|
+
if (ext && extMap[ext]) {
|
|
31
|
+
return extMap[ext];
|
|
32
|
+
}
|
|
33
|
+
// Detect from content
|
|
34
|
+
if (content.includes("import React") || content.includes("from 'react'")) {
|
|
35
|
+
return "typescript";
|
|
36
|
+
}
|
|
37
|
+
if (content.includes("def ") && content.includes(":")) {
|
|
38
|
+
return "python";
|
|
39
|
+
}
|
|
40
|
+
if (content.includes("public class") || content.includes("private void")) {
|
|
41
|
+
return "java";
|
|
42
|
+
}
|
|
43
|
+
return "unknown";
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse TypeScript/JavaScript code
|
|
47
|
+
*/
|
|
48
|
+
export function parseTypeScript(content) {
|
|
49
|
+
const lines = content.split("\n");
|
|
50
|
+
const result = {
|
|
51
|
+
language: "typescript",
|
|
52
|
+
imports: [],
|
|
53
|
+
exports: [],
|
|
54
|
+
functions: [],
|
|
55
|
+
classes: [],
|
|
56
|
+
variables: [],
|
|
57
|
+
dependencies: [],
|
|
58
|
+
lines: lines.length,
|
|
59
|
+
complexity: 0,
|
|
60
|
+
};
|
|
61
|
+
let complexity = 0;
|
|
62
|
+
for (let i = 0; i < lines.length; i++) {
|
|
63
|
+
const line = lines[i];
|
|
64
|
+
const lineNum = i + 1;
|
|
65
|
+
// Parse imports
|
|
66
|
+
const importMatch = line.match(/import\s+(?:(\{[^}]+\})|(\w+))\s+from\s+['"]([^'"]+)['"]/);
|
|
67
|
+
if (importMatch) {
|
|
68
|
+
const items = importMatch[1]
|
|
69
|
+
? importMatch[1].replace(/[{}]/g, "").split(",").map(s => s.trim())
|
|
70
|
+
: [importMatch[2]];
|
|
71
|
+
result.imports.push({
|
|
72
|
+
module: importMatch[3],
|
|
73
|
+
items,
|
|
74
|
+
line: lineNum,
|
|
75
|
+
isDefault: !importMatch[1],
|
|
76
|
+
});
|
|
77
|
+
// Track dependencies (non-relative imports)
|
|
78
|
+
if (!importMatch[3].startsWith(".") && !importMatch[3].startsWith("/")) {
|
|
79
|
+
const dep = importMatch[3].split("/")[0];
|
|
80
|
+
if (!result.dependencies.includes(dep)) {
|
|
81
|
+
result.dependencies.push(dep);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Parse exports
|
|
86
|
+
const exportMatch = line.match(/export\s+(default\s+)?(function|class|const|let|var)\s+(\w+)/);
|
|
87
|
+
if (exportMatch) {
|
|
88
|
+
result.exports.push({
|
|
89
|
+
name: exportMatch[3],
|
|
90
|
+
type: exportMatch[1] ? "default" : exportMatch[2],
|
|
91
|
+
line: lineNum,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// Parse functions
|
|
95
|
+
const funcMatch = line.match(/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)/);
|
|
96
|
+
if (funcMatch) {
|
|
97
|
+
result.functions.push({
|
|
98
|
+
name: funcMatch[2],
|
|
99
|
+
params: funcMatch[3] ? funcMatch[3].split(",").map(s => s.trim()) : [],
|
|
100
|
+
async: !!funcMatch[1],
|
|
101
|
+
line: lineNum,
|
|
102
|
+
complexity: 1,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Parse arrow functions (const/let)
|
|
106
|
+
const arrowMatch = line.match(/(const|let)\s+(\w+)\s*=\s*(async\s+)?\([^)]*\)\s*=>/);
|
|
107
|
+
if (arrowMatch) {
|
|
108
|
+
result.functions.push({
|
|
109
|
+
name: arrowMatch[2],
|
|
110
|
+
params: [],
|
|
111
|
+
async: !!arrowMatch[3],
|
|
112
|
+
line: lineNum,
|
|
113
|
+
complexity: 1,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// Parse classes
|
|
117
|
+
const classMatch = line.match(/class\s+(\w+)(?:\s+extends\s+(\w+))?(?:\s+implements\s+(.+))?/);
|
|
118
|
+
if (classMatch) {
|
|
119
|
+
result.classes.push({
|
|
120
|
+
name: classMatch[1],
|
|
121
|
+
extends: classMatch[2],
|
|
122
|
+
implements: classMatch[3] ? classMatch[3].split(",").map(s => s.trim()) : [],
|
|
123
|
+
methods: [],
|
|
124
|
+
properties: [],
|
|
125
|
+
line: lineNum,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// Parse variables
|
|
129
|
+
const varMatch = line.match(/(const|let|var)\s+(\w+)\s*[=:]/);
|
|
130
|
+
if (varMatch && !arrowMatch) {
|
|
131
|
+
result.variables.push({
|
|
132
|
+
name: varMatch[2],
|
|
133
|
+
type: varMatch[1],
|
|
134
|
+
line: lineNum,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Calculate complexity (simplified)
|
|
138
|
+
if (line.includes("if (") || line.includes("if("))
|
|
139
|
+
complexity++;
|
|
140
|
+
if (line.includes("else"))
|
|
141
|
+
complexity++;
|
|
142
|
+
if (line.includes("for (") || line.includes("for("))
|
|
143
|
+
complexity++;
|
|
144
|
+
if (line.includes("while (") || line.includes("while("))
|
|
145
|
+
complexity++;
|
|
146
|
+
if (line.includes("switch (") || line.includes("switch("))
|
|
147
|
+
complexity++;
|
|
148
|
+
if (line.includes("catch (") || line.includes("catch("))
|
|
149
|
+
complexity++;
|
|
150
|
+
if (line.includes("&&") || line.includes("||"))
|
|
151
|
+
complexity++;
|
|
152
|
+
if (line.includes("? ") && line.includes(" : "))
|
|
153
|
+
complexity++;
|
|
154
|
+
}
|
|
155
|
+
result.complexity = complexity;
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Parse code based on detected language
|
|
160
|
+
*/
|
|
161
|
+
export function parseCode(content, fileName = "file.ts") {
|
|
162
|
+
const language = detectLanguage(fileName, content);
|
|
163
|
+
switch (language) {
|
|
164
|
+
case "typescript":
|
|
165
|
+
case "javascript":
|
|
166
|
+
return parseTypeScript(content);
|
|
167
|
+
default:
|
|
168
|
+
// Return basic info for unsupported languages
|
|
169
|
+
return {
|
|
170
|
+
language,
|
|
171
|
+
imports: [],
|
|
172
|
+
exports: [],
|
|
173
|
+
functions: [],
|
|
174
|
+
classes: [],
|
|
175
|
+
variables: [],
|
|
176
|
+
dependencies: [],
|
|
177
|
+
lines: content.split("\n").length,
|
|
178
|
+
complexity: 0,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=code-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-parser.js","sourceRoot":"","sources":["../../src/utils/code-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function getBuiltinContentDir(): string;
|
|
2
|
+
export interface InjectContentOptions {
|
|
3
|
+
sourcePath?: string;
|
|
4
|
+
force?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface InjectContentResult {
|
|
7
|
+
targetDir: string;
|
|
8
|
+
sourceDir: string;
|
|
9
|
+
installed: boolean;
|
|
10
|
+
filesCopied?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function injectContentIntoProject(diretorio: string, options?: InjectContentOptions): Promise<InjectContentResult>;
|
|
13
|
+
export declare function ensureContentInstalled(diretorio: string): Promise<InjectContentResult>;
|
|
14
|
+
//# sourceMappingURL=content-injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-injector.d.ts","sourceRoot":"","sources":["../../src/utils/content-injector.ts"],"names":[],"mappings":"AA4BA,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwB9H;AAED,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAY5F"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { cp, mkdir, readdir } from "fs/promises";
|
|
2
|
+
import { existsSync, statSync } from "fs";
|
|
3
|
+
import { join, dirname } from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
function getDefaultSourceDir() {
|
|
7
|
+
// Tente diferentes caminhos relativos para encontrar o conteúdo
|
|
8
|
+
const possiblePaths = [
|
|
9
|
+
join(__dirname, "..", "..", "..", "content"), // src/../content
|
|
10
|
+
join(__dirname, "..", "..", "content"), // src/content
|
|
11
|
+
join(__dirname, "content"), // mesmo dir
|
|
12
|
+
join(process.cwd(), "content"), // working dir
|
|
13
|
+
join(__dirname, "..", "content"), // dist/content (quando instalado)
|
|
14
|
+
];
|
|
15
|
+
for (const path of possiblePaths) {
|
|
16
|
+
if (existsSync(path)) {
|
|
17
|
+
console.log(`[DEBUG] Conteúdo encontrado em: ${path}`);
|
|
18
|
+
return path;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
console.log(`[DEBUG] Conteúdo não encontrado. Tentados: ${possiblePaths.join(", ")}`);
|
|
22
|
+
throw new Error("Conteúdo embutido não encontrado");
|
|
23
|
+
}
|
|
24
|
+
export function getBuiltinContentDir() {
|
|
25
|
+
return getDefaultSourceDir();
|
|
26
|
+
}
|
|
27
|
+
async function countFiles(dir) {
|
|
28
|
+
try {
|
|
29
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
30
|
+
let count = 0;
|
|
31
|
+
for (const entry of entries) {
|
|
32
|
+
const fullPath = join(dir, entry.name);
|
|
33
|
+
if (entry.isDirectory()) {
|
|
34
|
+
count += await countFiles(fullPath);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
count += 1;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return count;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function injectContentIntoProject(diretorio, options) {
|
|
47
|
+
const sourceDir = options?.sourcePath ?? getDefaultSourceDir();
|
|
48
|
+
const targetDir = join(diretorio, ".maestro", "content");
|
|
49
|
+
if (!directoryExists(sourceDir)) {
|
|
50
|
+
throw new Error(`Fonte de conteúdo não encontrada: ${sourceDir}`);
|
|
51
|
+
}
|
|
52
|
+
if (existsSync(targetDir)) {
|
|
53
|
+
if (!options?.force) {
|
|
54
|
+
return { targetDir, sourceDir, installed: false };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
await mkdir(targetDir, { recursive: true });
|
|
58
|
+
await cp(sourceDir, targetDir, { recursive: true });
|
|
59
|
+
const filesCopied = await countFiles(targetDir);
|
|
60
|
+
return {
|
|
61
|
+
targetDir,
|
|
62
|
+
sourceDir,
|
|
63
|
+
installed: true,
|
|
64
|
+
filesCopied,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export async function ensureContentInstalled(diretorio) {
|
|
68
|
+
const targetDir = join(diretorio, ".maestro", "content");
|
|
69
|
+
if (existsSync(targetDir)) {
|
|
70
|
+
return {
|
|
71
|
+
targetDir,
|
|
72
|
+
sourceDir: getDefaultSourceDir(),
|
|
73
|
+
installed: false,
|
|
74
|
+
filesCopied: await countFiles(targetDir),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return injectContentIntoProject(diretorio);
|
|
78
|
+
}
|
|
79
|
+
function directoryExists(path) {
|
|
80
|
+
try {
|
|
81
|
+
const stats = statSync(path);
|
|
82
|
+
return stats.isDirectory();
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=content-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-injector.js","sourceRoot":"","sources":["../../src/utils/content-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define o diretório do projeto para leitura local
|
|
3
|
+
*/
|
|
4
|
+
export declare function setProjectDirectory(dir: string | null): void;
|
|
5
|
+
/**
|
|
6
|
+
* Obtém o diretório do projeto atual
|
|
7
|
+
*/
|
|
8
|
+
export declare function getProjectDirectory(): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Verifica se o projeto tem content local instalado
|
|
11
|
+
*/
|
|
12
|
+
export declare function temContentLocal(diretorio?: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Lê conteúdo de um especialista (local ou servidor)
|
|
15
|
+
*/
|
|
16
|
+
export declare function lerEspecialista(nome: string, diretorio?: string): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Lê conteúdo de um template (local ou servidor)
|
|
19
|
+
*/
|
|
20
|
+
export declare function lerTemplate(nome: string, diretorio?: string): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Lê conteúdo de um prompt (local ou servidor)
|
|
23
|
+
*/
|
|
24
|
+
export declare function lerPrompt(categoria: string, nome: string, diretorio?: string): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Lê conteúdo de um guia (local ou servidor)
|
|
27
|
+
*/
|
|
28
|
+
export declare function lerGuia(nome: string, diretorio?: string): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Lista arquivos markdown em um diretório dentro de content
|
|
31
|
+
*/
|
|
32
|
+
export declare function listarArquivos(subdir: string, diretorio?: string): Promise<string[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Lista especialistas disponíveis
|
|
35
|
+
*/
|
|
36
|
+
export declare function listarEspecialistas(diretorio?: string): Promise<string[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Lista templates disponíveis
|
|
39
|
+
*/
|
|
40
|
+
export declare function listarTemplates(diretorio?: string): Promise<string[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Lista guias disponíveis
|
|
43
|
+
*/
|
|
44
|
+
export declare function listarGuias(diretorio?: string): Promise<string[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Verifica se arquivo existe
|
|
47
|
+
*/
|
|
48
|
+
export declare function arquivoExiste(path: string): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
* Obtém caminho raiz do servidor (fallback)
|
|
51
|
+
*/
|
|
52
|
+
export declare function getServerContentRoot(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Lê conteúdo de um exemplo de fluxo (local ou servidor)
|
|
55
|
+
*/
|
|
56
|
+
export declare function lerExemplo(nome: string, diretorio?: string): Promise<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Lista exemplos disponíveis
|
|
59
|
+
*/
|
|
60
|
+
export declare function listarExemplos(diretorio?: string): Promise<string[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Normaliza o caminho do projeto, removendo prefixos de container (ex: /app/c:)
|
|
63
|
+
*/
|
|
64
|
+
export declare function normalizeProjectPath(path: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Resolve o caminho do projeto lidando com ambientes mistos (Docker Linux -> Windows Host)
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolveProjectPath(path: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Join paths handling mixed environments (Docker Linux -> Windows Host)
|
|
71
|
+
*/
|
|
72
|
+
export declare function joinProjectPath(...paths: string[]): string;
|
|
73
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,QAErD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAI3D;AAyBD;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBvF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBnF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYpG;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB/E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc1F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG/E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAU1D"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { readFile, readdir, stat } from "fs/promises";
|
|
2
|
+
import { join, dirname, resolve, win32 } from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { platform } from "os";
|
|
6
|
+
import { getBuiltinContentDir } from "./content-injector.js";
|
|
7
|
+
// Resolve path to content folder (server fallback)
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const SERVER_CONTENT_ROOT = join(__dirname, "..", "..", "..", "content");
|
|
10
|
+
// Diretório do projeto atual (pode ser setado por contexto)
|
|
11
|
+
let currentProjectDir = null;
|
|
12
|
+
/**
|
|
13
|
+
* Define o diretório do projeto para leitura local
|
|
14
|
+
*/
|
|
15
|
+
export function setProjectDirectory(dir) {
|
|
16
|
+
currentProjectDir = dir;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Obtém o diretório do projeto atual
|
|
20
|
+
*/
|
|
21
|
+
export function getProjectDirectory() {
|
|
22
|
+
return currentProjectDir;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Verifica se o projeto tem content local instalado
|
|
26
|
+
*/
|
|
27
|
+
export function temContentLocal(diretorio) {
|
|
28
|
+
const dir = diretorio || currentProjectDir;
|
|
29
|
+
if (!dir)
|
|
30
|
+
return false;
|
|
31
|
+
return existsSync(join(dir, '.maestro', 'content'));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Obtém o diretório de content (local ou servidor)
|
|
35
|
+
*/
|
|
36
|
+
function getContentRoot(diretorio) {
|
|
37
|
+
const dir = diretorio || currentProjectDir;
|
|
38
|
+
// Tenta local primeiro
|
|
39
|
+
if (dir) {
|
|
40
|
+
const localContent = join(dir, '.maestro', 'content');
|
|
41
|
+
if (existsSync(localContent)) {
|
|
42
|
+
return localContent;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Fallback para servidor (usa o content-injector para encontrar)
|
|
46
|
+
try {
|
|
47
|
+
return getBuiltinContentDir();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Último fallback - caminho relativo
|
|
51
|
+
return join(__dirname, "..", "..", "..", "content");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Lê conteúdo de um especialista (local ou servidor)
|
|
56
|
+
*/
|
|
57
|
+
export async function lerEspecialista(nome, diretorio) {
|
|
58
|
+
const contentRoot = getContentRoot(diretorio);
|
|
59
|
+
const especialistasDir = join(contentRoot, "specialists");
|
|
60
|
+
try {
|
|
61
|
+
const files = await readdir(especialistasDir);
|
|
62
|
+
// Busca arquivo que contém o nome do especialista
|
|
63
|
+
const arquivo = files.find(f => f.toLowerCase().includes(nome.toLowerCase()) && f.endsWith(".md"));
|
|
64
|
+
if (!arquivo) {
|
|
65
|
+
throw new Error(`Especialista não encontrado: ${nome}`);
|
|
66
|
+
}
|
|
67
|
+
const path = join(especialistasDir, arquivo);
|
|
68
|
+
return readFile(path, "utf-8");
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
// Se falhou no local, tenta no servidor
|
|
72
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
73
|
+
return lerEspecialista(nome, undefined);
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Lê conteúdo de um template (local ou servidor)
|
|
80
|
+
*/
|
|
81
|
+
export async function lerTemplate(nome, diretorio) {
|
|
82
|
+
const contentRoot = getContentRoot(diretorio);
|
|
83
|
+
const templatesDir = join(contentRoot, "templates");
|
|
84
|
+
try {
|
|
85
|
+
const files = await readdir(templatesDir);
|
|
86
|
+
const arquivo = files.find(f => f.toLowerCase().includes(nome.toLowerCase()) && f.endsWith(".md"));
|
|
87
|
+
if (!arquivo) {
|
|
88
|
+
throw new Error(`Template não encontrado: ${nome}`);
|
|
89
|
+
}
|
|
90
|
+
const path = join(templatesDir, arquivo);
|
|
91
|
+
return readFile(path, "utf-8");
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
95
|
+
return lerTemplate(nome, undefined);
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Lê conteúdo de um prompt (local ou servidor)
|
|
102
|
+
*/
|
|
103
|
+
export async function lerPrompt(categoria, nome, diretorio) {
|
|
104
|
+
const contentRoot = getContentRoot(diretorio);
|
|
105
|
+
const path = join(contentRoot, "prompts", categoria, `${nome}.md`);
|
|
106
|
+
try {
|
|
107
|
+
return await readFile(path, "utf-8");
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
111
|
+
return lerPrompt(categoria, nome, undefined);
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Lê conteúdo de um guia (local ou servidor)
|
|
118
|
+
*/
|
|
119
|
+
export async function lerGuia(nome, diretorio) {
|
|
120
|
+
const contentRoot = getContentRoot(diretorio);
|
|
121
|
+
const guiasDir = join(contentRoot, "guides");
|
|
122
|
+
try {
|
|
123
|
+
const files = await readdir(guiasDir);
|
|
124
|
+
const arquivo = files.find(f => f.toLowerCase().includes(nome.toLowerCase()) && f.endsWith(".md"));
|
|
125
|
+
if (!arquivo) {
|
|
126
|
+
throw new Error(`Guia não encontrado: ${nome}`);
|
|
127
|
+
}
|
|
128
|
+
const path = join(guiasDir, arquivo);
|
|
129
|
+
return readFile(path, "utf-8");
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
133
|
+
return lerGuia(nome, undefined);
|
|
134
|
+
}
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Lista arquivos markdown em um diretório dentro de content
|
|
140
|
+
*/
|
|
141
|
+
export async function listarArquivos(subdir, diretorio) {
|
|
142
|
+
const contentRoot = getContentRoot(diretorio);
|
|
143
|
+
const dir = join(contentRoot, subdir);
|
|
144
|
+
try {
|
|
145
|
+
const entries = await readdir(dir);
|
|
146
|
+
return entries.filter(e => e.endsWith(".md"));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Se falhar no local, tenta servidor
|
|
150
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
151
|
+
return listarArquivos(subdir, undefined);
|
|
152
|
+
}
|
|
153
|
+
return [];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Lista especialistas disponíveis
|
|
158
|
+
*/
|
|
159
|
+
export async function listarEspecialistas(diretorio) {
|
|
160
|
+
const files = await listarArquivos("specialists", diretorio);
|
|
161
|
+
return files.map(f => f.replace(/^Especialista em /i, "").replace(".md", ""));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Lista templates disponíveis
|
|
165
|
+
*/
|
|
166
|
+
export async function listarTemplates(diretorio) {
|
|
167
|
+
const files = await listarArquivos("templates", diretorio);
|
|
168
|
+
return files.map(f => f.replace(".md", ""));
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Lista guias disponíveis
|
|
172
|
+
*/
|
|
173
|
+
export async function listarGuias(diretorio) {
|
|
174
|
+
const files = await listarArquivos("guides", diretorio);
|
|
175
|
+
return files.map(f => f.replace(".md", ""));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Verifica se arquivo existe
|
|
179
|
+
*/
|
|
180
|
+
export async function arquivoExiste(path) {
|
|
181
|
+
try {
|
|
182
|
+
await stat(path);
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Obtém caminho raiz do servidor (fallback)
|
|
191
|
+
*/
|
|
192
|
+
export function getServerContentRoot() {
|
|
193
|
+
return SERVER_CONTENT_ROOT;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Lê conteúdo de um exemplo de fluxo (local ou servidor)
|
|
197
|
+
*/
|
|
198
|
+
export async function lerExemplo(nome, diretorio) {
|
|
199
|
+
const contentRoot = getContentRoot(diretorio);
|
|
200
|
+
const examplesDir = join(contentRoot, "examples");
|
|
201
|
+
try {
|
|
202
|
+
const files = await readdir(examplesDir);
|
|
203
|
+
// Busca arquivo que contém o nome do exemplo
|
|
204
|
+
const arquivo = files.find(f => f.toLowerCase().includes(nome.toLowerCase()) && f.endsWith(".md"));
|
|
205
|
+
if (!arquivo) {
|
|
206
|
+
throw new Error(`Exemplo não encontrado: ${nome}`);
|
|
207
|
+
}
|
|
208
|
+
const path = join(examplesDir, arquivo);
|
|
209
|
+
return readFile(path, "utf-8");
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
// Se falhou no local, tenta no servidor
|
|
213
|
+
if (contentRoot !== SERVER_CONTENT_ROOT) {
|
|
214
|
+
return lerExemplo(nome, undefined);
|
|
215
|
+
}
|
|
216
|
+
throw error;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Lista exemplos disponíveis
|
|
221
|
+
*/
|
|
222
|
+
export async function listarExemplos(diretorio) {
|
|
223
|
+
const files = await listarArquivos("examples", diretorio);
|
|
224
|
+
return files.map(f => f.replace(".md", ""));
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Normaliza o caminho do projeto, removendo prefixos de container (ex: /app/c:)
|
|
228
|
+
*/
|
|
229
|
+
export function normalizeProjectPath(path) {
|
|
230
|
+
if (!path)
|
|
231
|
+
return path;
|
|
232
|
+
// Remove prefixo /app/ de caminhos Windows com drive letter (ex: /app/c: -> c:)
|
|
233
|
+
const winDriveMatch = path.match(/^\/app\/([a-zA-Z]:.*)$/);
|
|
234
|
+
if (winDriveMatch) {
|
|
235
|
+
return winDriveMatch[1];
|
|
236
|
+
}
|
|
237
|
+
// Remove apenas /app/ se for um caminho absoluto linux/mac que foi prepended
|
|
238
|
+
if (path.startsWith('/app/')) {
|
|
239
|
+
const stripped = path.replace(/^\/app\//, '/');
|
|
240
|
+
// Se após remover ficar apenas uma barra ou caminho válido, retorna
|
|
241
|
+
return stripped;
|
|
242
|
+
}
|
|
243
|
+
return path;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Resolve o caminho do projeto lidando com ambientes mistos (Docker Linux -> Windows Host)
|
|
247
|
+
*/
|
|
248
|
+
export function resolveProjectPath(path) {
|
|
249
|
+
const normalized = normalizeProjectPath(path).trim();
|
|
250
|
+
// Debug logging
|
|
251
|
+
if (platform() !== 'win32') {
|
|
252
|
+
console.log(`[DEBUG] resolveProjectPath input: "${path}"`);
|
|
253
|
+
console.log(`[DEBUG] normalized: "${normalized}"`);
|
|
254
|
+
}
|
|
255
|
+
// Se o path é Windows (Drive Letter) mas estamos no Linux (Docker/WSL)
|
|
256
|
+
// Checks for "C:" at start OR "C:\" inside string (handling weird mounting)
|
|
257
|
+
if (platform() !== 'win32' && (normalized.match(/^[a-zA-Z]:/) || normalized.includes(':\\'))) {
|
|
258
|
+
console.log(`[DEBUG] Windows path detected on Linux. Mapping to CWD: ${process.cwd()}`);
|
|
259
|
+
return process.cwd();
|
|
260
|
+
}
|
|
261
|
+
// Se parece um caminho Windows em ambiente Windows, força win32
|
|
262
|
+
if (platform() === 'win32' && normalized.match(/^[a-zA-Z]:/)) {
|
|
263
|
+
const safePath = normalized.replace(/\//g, '\\');
|
|
264
|
+
return win32.resolve(safePath);
|
|
265
|
+
}
|
|
266
|
+
// Caso contrário, usa resolve padrão do sistema
|
|
267
|
+
return resolve(normalized);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Join paths handling mixed environments (Docker Linux -> Windows Host)
|
|
271
|
+
*/
|
|
272
|
+
export function joinProjectPath(...paths) {
|
|
273
|
+
if (paths.length === 0)
|
|
274
|
+
return "";
|
|
275
|
+
const first = normalizeProjectPath(paths[0]);
|
|
276
|
+
// Se o primeiro segmento parece um caminho Windows, usa join win32
|
|
277
|
+
if (first.match(/^[a-zA-Z]:/)) {
|
|
278
|
+
return win32.join(...paths);
|
|
279
|
+
}
|
|
280
|
+
return join(...paths);
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=files.js.map
|