moai-adk 0.35.1__py3-none-any.whl
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.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +10 -0
- moai_adk/__main__.py +199 -0
- moai_adk/cli/__init__.py +6 -0
- moai_adk/cli/commands/__init__.py +17 -0
- moai_adk/cli/commands/analyze.py +116 -0
- moai_adk/cli/commands/doctor.py +272 -0
- moai_adk/cli/commands/init.py +372 -0
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +104 -0
- moai_adk/cli/commands/update.py +2686 -0
- moai_adk/cli/main.py +13 -0
- moai_adk/cli/prompts/__init__.py +5 -0
- moai_adk/cli/prompts/init_prompts.py +219 -0
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +683 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +493 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +422 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/__init__.py +1 -0
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +400 -0
- moai_adk/core/claude_integration.py +393 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/__init__.py +19 -0
- moai_adk/core/config/auto_spec_config.py +340 -0
- moai_adk/core/config/migration.py +244 -0
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +273 -0
- moai_adk/core/diagnostics/__init__.py +19 -0
- moai_adk/core/diagnostics/slash_commands.py +159 -0
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +1902 -0
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +31 -0
- moai_adk/core/git/branch.py +25 -0
- moai_adk/core/git/branch_manager.py +129 -0
- moai_adk/core/git/checkpoint.py +134 -0
- moai_adk/core/git/commit.py +67 -0
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/event_detector.py +79 -0
- moai_adk/core/git/manager.py +216 -0
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +157 -0
- moai_adk/core/integration/integration_tester.py +226 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +305 -0
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_config_resolver.py +572 -0
- moai_adk/core/language_validator.py +543 -0
- moai_adk/core/mcp/setup.py +116 -0
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +605 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +277 -0
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +209 -0
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +139 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +316 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/__init__.py +1 -0
- moai_adk/core/project/backup_utils.py +70 -0
- moai_adk/core/project/checker.py +300 -0
- moai_adk/core/project/detector.py +293 -0
- moai_adk/core/project/initializer.py +387 -0
- moai_adk/core/project/phase_executor.py +716 -0
- moai_adk/core/project/validator.py +139 -0
- moai_adk/core/quality/__init__.py +6 -0
- moai_adk/core/quality/trust_checker.py +377 -0
- moai_adk/core/quality/validators/__init__.py +6 -0
- moai_adk/core/quality/validators/base_validator.py +19 -0
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +918 -0
- moai_adk/core/session_manager.py +651 -0
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +680 -0
- moai_adk/core/spec/ears_template_engine.py +1247 -0
- moai_adk/core/spec/quality_validator.py +687 -0
- moai_adk/core/spec_status_manager.py +478 -0
- moai_adk/core/template/__init__.py +7 -0
- moai_adk/core/template/backup.py +174 -0
- moai_adk/core/template/config.py +191 -0
- moai_adk/core/template/languages.py +43 -0
- moai_adk/core/template/merger.py +233 -0
- moai_adk/core/template/processor.py +1200 -0
- moai_adk/core/template_engine.py +310 -0
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +557 -0
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +676 -0
- moai_adk/foundation/trust/validation_checklist.py +1573 -0
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +105 -0
- moai_adk/statusline/config.py +376 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +322 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +343 -0
- moai_adk/statusline/update_checker.py +129 -0
- moai_adk/statusline/version_reader.py +741 -0
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
- moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
- moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +128 -0
- moai_adk/templates/.git-hooks/pre-push +365 -0
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
- moai_adk/templates/.gitignore +222 -0
- moai_adk/templates/.mcp.json +13 -0
- moai_adk/templates/.moai/config/config.yaml +58 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
- moai_adk/templates/.moai/config/sections/system.yaml +24 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +642 -0
- moai_adk/utils/__init__.py +30 -0
- moai_adk/utils/banner.py +38 -0
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +241 -0
- moai_adk/utils/logger.py +147 -0
- moai_adk/utils/safe_file_reader.py +206 -0
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.35.1.dist-info/METADATA +3018 -0
- moai_adk-0.35.1.dist-info/RECORD +502 -0
- moai_adk-0.35.1.dist-info/WHEEL +4 -0
- moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
- moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py
ADDED
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Enterprise Testing Workflow with AI Integration
|
|
3
|
+
Context7 MCP-powered automated testing orchestration
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import asyncio
|
|
7
|
+
import logging
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from datetime import datetime
|
|
10
|
+
from enum import Enum
|
|
11
|
+
from typing import Dict, List
|
|
12
|
+
|
|
13
|
+
# Configure logging
|
|
14
|
+
logging.basicConfig(level=logging.INFO)
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class TestStatus(Enum):
|
|
19
|
+
PENDING = "pending"
|
|
20
|
+
RUNNING = "running"
|
|
21
|
+
PASSED = "passed"
|
|
22
|
+
FAILED = "failed"
|
|
23
|
+
SKIPPED = "skipped"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class TestResult:
|
|
28
|
+
name: str
|
|
29
|
+
status: TestStatus
|
|
30
|
+
execution_time: float
|
|
31
|
+
assertions: int
|
|
32
|
+
errors: List[str]
|
|
33
|
+
browser: str
|
|
34
|
+
viewport: Dict[str, int]
|
|
35
|
+
timestamp: datetime
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@dataclass
|
|
39
|
+
class TestSuite:
|
|
40
|
+
name: str
|
|
41
|
+
tests: List[TestResult]
|
|
42
|
+
total_time: float
|
|
43
|
+
pass_rate: float
|
|
44
|
+
coverage_percentage: float
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class EnterpriseTestOrchestrator:
|
|
48
|
+
"""AI-powered enterprise test orchestration with Context7 integration"""
|
|
49
|
+
|
|
50
|
+
def __init__(self, context7_client=None):
|
|
51
|
+
self.context7_client = context7_client
|
|
52
|
+
self.test_results = []
|
|
53
|
+
self.coverage_data = {}
|
|
54
|
+
|
|
55
|
+
async def create_test_plan(self, application_info: Dict) -> Dict:
|
|
56
|
+
"""AI-powered test plan generation using Context7 patterns"""
|
|
57
|
+
|
|
58
|
+
logger.info("๐ง Generating AI-powered test plan...")
|
|
59
|
+
|
|
60
|
+
# Analyze application characteristics
|
|
61
|
+
app_type = self._analyze_application_type(application_info)
|
|
62
|
+
complexity = self._assess_complexity(application_info)
|
|
63
|
+
|
|
64
|
+
# Get Context7 testing patterns
|
|
65
|
+
context7_patterns = await self._get_context7_patterns(app_type)
|
|
66
|
+
|
|
67
|
+
# Generate comprehensive test plan
|
|
68
|
+
test_plan = {
|
|
69
|
+
"application_type": app_type,
|
|
70
|
+
"complexity_level": complexity,
|
|
71
|
+
"test_strategies": self._generate_test_strategies(app_type, complexity, context7_patterns),
|
|
72
|
+
"browser_matrix": self._create_browser_matrix(complexity),
|
|
73
|
+
"coverage_targets": self._set_coverage_targets(app_type),
|
|
74
|
+
"performance_benchmarks": self._define_performance_benchmarks(app_type),
|
|
75
|
+
"visual_regression_config": context7_patterns.get("visual_regression", {}),
|
|
76
|
+
"ai_enhancements": {
|
|
77
|
+
"smart_selectors": True,
|
|
78
|
+
"failure_classification": True,
|
|
79
|
+
"maintenance_prediction": True,
|
|
80
|
+
"performance_optimization": True,
|
|
81
|
+
},
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
logger.info(f"โ
Test plan generated for {app_type} application")
|
|
85
|
+
return test_plan
|
|
86
|
+
|
|
87
|
+
def _analyze_application_type(self, app_info: Dict) -> str:
|
|
88
|
+
"""AI-powered application type classification"""
|
|
89
|
+
|
|
90
|
+
# Analyze characteristics
|
|
91
|
+
has_forms = app_info.get("has_forms", False)
|
|
92
|
+
has_authentication = app_info.get("has_authentication", False)
|
|
93
|
+
is_single_page = app_info.get("is_single_page", False)
|
|
94
|
+
has_apis = app_info.get("has_apis", False)
|
|
95
|
+
is_e_commerce = app_info.get("is_e_commerce", False)
|
|
96
|
+
|
|
97
|
+
# AI classification logic
|
|
98
|
+
if is_e_commerce:
|
|
99
|
+
return "e-commerce"
|
|
100
|
+
elif has_authentication and has_forms:
|
|
101
|
+
return "enterprise_portal"
|
|
102
|
+
elif is_single_page and has_apis:
|
|
103
|
+
return "spa_with_apis"
|
|
104
|
+
elif has_forms:
|
|
105
|
+
return "content_management"
|
|
106
|
+
else:
|
|
107
|
+
return "brochure_website"
|
|
108
|
+
|
|
109
|
+
def _assess_complexity(self, app_info: Dict) -> str:
|
|
110
|
+
"""AI-powered complexity assessment"""
|
|
111
|
+
|
|
112
|
+
complexity_score = 0
|
|
113
|
+
|
|
114
|
+
# Scoring factors
|
|
115
|
+
if app_info.get("has_forms", False):
|
|
116
|
+
complexity_score += 2
|
|
117
|
+
if app_info.get("has_authentication", False):
|
|
118
|
+
complexity_score += 3
|
|
119
|
+
if app_info.get("has_apis", False):
|
|
120
|
+
complexity_score += 2
|
|
121
|
+
if app_info.get("is_multi_language", False):
|
|
122
|
+
complexity_score += 2
|
|
123
|
+
if app_info.get("has_file_upload", False):
|
|
124
|
+
complexity_score += 1
|
|
125
|
+
if app_info.get("has_real_time_features", False):
|
|
126
|
+
complexity_score += 3
|
|
127
|
+
|
|
128
|
+
if complexity_score >= 7:
|
|
129
|
+
return "high"
|
|
130
|
+
elif complexity_score >= 4:
|
|
131
|
+
return "medium"
|
|
132
|
+
else:
|
|
133
|
+
return "low"
|
|
134
|
+
|
|
135
|
+
async def _get_context7_patterns(self, app_type: str) -> Dict:
|
|
136
|
+
"""Fetch Context7 MCP patterns for application type"""
|
|
137
|
+
|
|
138
|
+
# Simulate Context7 integration
|
|
139
|
+
patterns = {
|
|
140
|
+
"e-commerce": {
|
|
141
|
+
"critical_paths": ["product_browse", "add_to_cart", "checkout"],
|
|
142
|
+
"visual_regression": {"ignore_regions": ["price", "inventory_count"]},
|
|
143
|
+
"performance_thresholds": {"lcp": 2.0, "fid": 100},
|
|
144
|
+
},
|
|
145
|
+
"enterprise_portal": {
|
|
146
|
+
"critical_paths": ["login", "dashboard", "data_export"],
|
|
147
|
+
"visual_regression": {"ignore_regions": ["user_data", "timestamps"]},
|
|
148
|
+
"performance_thresholds": {"lcp": 2.5, "fid": 150},
|
|
149
|
+
},
|
|
150
|
+
"spa_with_apis": {
|
|
151
|
+
"critical_paths": ["initial_load", "api_calls", "navigation"],
|
|
152
|
+
"visual_regression": {"ignore_regions": ["dynamic_content"]},
|
|
153
|
+
"performance_thresholds": {"lcp": 1.5, "fid": 50},
|
|
154
|
+
},
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return patterns.get(app_type, {})
|
|
158
|
+
|
|
159
|
+
def _generate_test_strategies(self, app_type: str, complexity: str, patterns: Dict) -> List[Dict]:
|
|
160
|
+
"""Generate AI-enhanced test strategies"""
|
|
161
|
+
|
|
162
|
+
strategies = [
|
|
163
|
+
{
|
|
164
|
+
"name": "functional_testing",
|
|
165
|
+
"priority": "high",
|
|
166
|
+
"automation_level": "full",
|
|
167
|
+
"ai_enhancements": ["smart_selectors", "failure_classification"],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"name": "visual_regression",
|
|
171
|
+
"priority": "medium" if complexity == "low" else "high",
|
|
172
|
+
"automation_level": "full",
|
|
173
|
+
"ai_enhancements": ["ai_comparison", "ignore_regions"],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "performance_testing",
|
|
177
|
+
"priority": "medium",
|
|
178
|
+
"automation_level": "partial",
|
|
179
|
+
"ai_enhancements": ["performance_prediction", "bottleneck_detection"],
|
|
180
|
+
},
|
|
181
|
+
]
|
|
182
|
+
|
|
183
|
+
# Add app-specific strategies
|
|
184
|
+
if app_type == "e-commerce":
|
|
185
|
+
strategies.append(
|
|
186
|
+
{
|
|
187
|
+
"name": "checkout_flow_testing",
|
|
188
|
+
"priority": "critical",
|
|
189
|
+
"automation_level": "full",
|
|
190
|
+
"ai_enhancements": ["payment_simulation", "error_handling"],
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
return strategies
|
|
195
|
+
|
|
196
|
+
def _create_browser_matrix(self, complexity: str) -> List[Dict]:
|
|
197
|
+
"""AI-optimized browser testing matrix"""
|
|
198
|
+
|
|
199
|
+
base_matrix = [
|
|
200
|
+
{
|
|
201
|
+
"browser": "chromium",
|
|
202
|
+
"versions": ["latest"],
|
|
203
|
+
"viewports": ["desktop", "mobile"],
|
|
204
|
+
},
|
|
205
|
+
{"browser": "firefox", "versions": ["latest"], "viewports": ["desktop"]},
|
|
206
|
+
{
|
|
207
|
+
"browser": "webkit",
|
|
208
|
+
"versions": ["latest"],
|
|
209
|
+
"viewports": ["desktop", "mobile"],
|
|
210
|
+
},
|
|
211
|
+
]
|
|
212
|
+
|
|
213
|
+
if complexity in ["high", "medium"]:
|
|
214
|
+
# Add more comprehensive testing for complex applications
|
|
215
|
+
base_matrix[0]["versions"].extend(["latest-1"])
|
|
216
|
+
base_matrix[1]["viewports"].append("mobile")
|
|
217
|
+
|
|
218
|
+
return base_matrix
|
|
219
|
+
|
|
220
|
+
def _set_coverage_targets(self, app_type: str) -> Dict:
|
|
221
|
+
"""AI-optimized coverage targets"""
|
|
222
|
+
|
|
223
|
+
targets = {
|
|
224
|
+
"functional_coverage": 85,
|
|
225
|
+
"visual_coverage": 80,
|
|
226
|
+
"performance_coverage": 70,
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if app_type == "e-commerce":
|
|
230
|
+
targets["functional_coverage"] = 95
|
|
231
|
+
targets["visual_coverage"] = 85
|
|
232
|
+
elif app_type == "enterprise_portal":
|
|
233
|
+
targets["functional_coverage"] = 90
|
|
234
|
+
|
|
235
|
+
return targets
|
|
236
|
+
|
|
237
|
+
def _define_performance_benchmarks(self, app_type: str) -> Dict:
|
|
238
|
+
"""Context7-powered performance benchmarks"""
|
|
239
|
+
|
|
240
|
+
benchmarks = {
|
|
241
|
+
"lcp": {"target": 2.5, "warning": 4.0},
|
|
242
|
+
"fid": {"target": 100, "warning": 300},
|
|
243
|
+
"cls": {"target": 0.1, "warning": 0.25},
|
|
244
|
+
"tti": {"target": 3.8, "warning": 7.3},
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if app_type == "spa_with_apis":
|
|
248
|
+
benchmarks["lcp"]["target"] = 1.5
|
|
249
|
+
benchmarks["fid"]["target"] = 50
|
|
250
|
+
|
|
251
|
+
return benchmarks
|
|
252
|
+
|
|
253
|
+
async def execute_test_suite(self, test_plan: Dict) -> TestSuite:
|
|
254
|
+
"""Execute AI-orchestrated test suite"""
|
|
255
|
+
|
|
256
|
+
logger.info("๐ Executing AI-orchestrated test suite...")
|
|
257
|
+
|
|
258
|
+
test_results = []
|
|
259
|
+
total_start_time = datetime.now()
|
|
260
|
+
|
|
261
|
+
# Execute test strategies
|
|
262
|
+
for strategy in test_plan["test_strategies"]:
|
|
263
|
+
strategy_results = await self._execute_strategy(strategy, test_plan)
|
|
264
|
+
test_results.extend(strategy_results)
|
|
265
|
+
|
|
266
|
+
total_time = (datetime.now() - total_start_time).total_seconds()
|
|
267
|
+
|
|
268
|
+
# Calculate metrics
|
|
269
|
+
passed_tests = [t for t in test_results if t.status == TestStatus.PASSED]
|
|
270
|
+
pass_rate = len(passed_tests) / len(test_results) * 100 if test_results else 0
|
|
271
|
+
|
|
272
|
+
# Calculate coverage
|
|
273
|
+
coverage_percentage = self._calculate_coverage(test_results, test_plan)
|
|
274
|
+
|
|
275
|
+
test_suite = TestSuite(
|
|
276
|
+
name=f"Enterprise Test Suite - {test_plan['application_type']}",
|
|
277
|
+
tests=test_results,
|
|
278
|
+
total_time=total_time,
|
|
279
|
+
pass_rate=pass_rate,
|
|
280
|
+
coverage_percentage=coverage_percentage,
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
logger.info(f"โ
Test suite completed: {pass_rate:.1f}% pass rate, {coverage_percentage:.1f}% coverage")
|
|
284
|
+
return test_suite
|
|
285
|
+
|
|
286
|
+
async def _execute_strategy(self, strategy: Dict, test_plan: Dict) -> List[TestResult]:
|
|
287
|
+
"""Execute individual test strategy with AI enhancements"""
|
|
288
|
+
|
|
289
|
+
logger.info(f"๐งช Executing strategy: {strategy['name']}")
|
|
290
|
+
|
|
291
|
+
# Mock test execution (in real implementation, this would run actual Playwright tests)
|
|
292
|
+
test_results = []
|
|
293
|
+
|
|
294
|
+
# Simulate test execution for each browser in matrix
|
|
295
|
+
for browser_config in test_plan["browser_matrix"]:
|
|
296
|
+
for viewport in ["desktop", "mobile"]:
|
|
297
|
+
test_name = f"{strategy['name']}_{browser_config['browser']}_{viewport}"
|
|
298
|
+
|
|
299
|
+
# Simulate test execution
|
|
300
|
+
execution_time = 2.5 + len(strategy["name"]) * 0.1 # Simulate variable execution times
|
|
301
|
+
status = TestStatus.PASSED if execution_time < 5 else TestStatus.FAILED
|
|
302
|
+
|
|
303
|
+
test_result = TestResult(
|
|
304
|
+
name=test_name,
|
|
305
|
+
status=status,
|
|
306
|
+
execution_time=execution_time,
|
|
307
|
+
assertions=5 + len(strategy["ai_enhancements"]),
|
|
308
|
+
errors=[] if status == TestStatus.PASSED else ["Timeout error"],
|
|
309
|
+
browser=browser_config["browser"],
|
|
310
|
+
viewport={
|
|
311
|
+
"width": 1920 if viewport == "desktop" else 375,
|
|
312
|
+
"height": 1080 if viewport == "desktop" else 667,
|
|
313
|
+
},
|
|
314
|
+
timestamp=datetime.now(),
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
test_results.append(test_result)
|
|
318
|
+
|
|
319
|
+
return test_results
|
|
320
|
+
|
|
321
|
+
def _calculate_coverage(self, test_results: List[TestResult], test_plan: Dict) -> float:
|
|
322
|
+
"""AI-powered coverage calculation"""
|
|
323
|
+
|
|
324
|
+
# Simplified coverage calculation
|
|
325
|
+
total_tests = len(test_results)
|
|
326
|
+
passed_tests = len([t for t in test_results if t.status == TestStatus.PASSED])
|
|
327
|
+
|
|
328
|
+
# Factor in different test types
|
|
329
|
+
strategies_count = len(test_plan["test_strategies"])
|
|
330
|
+
browser_coverage = len(test_plan["browser_matrix"])
|
|
331
|
+
|
|
332
|
+
coverage = (
|
|
333
|
+
passed_tests / total_tests * 0.6 + (strategies_count / 3) * 0.2 + (browser_coverage / 3) * 0.2
|
|
334
|
+
) * 100
|
|
335
|
+
|
|
336
|
+
return min(coverage, 100.0)
|
|
337
|
+
|
|
338
|
+
async def generate_intelligence_report(self, test_suite: TestSuite) -> Dict:
|
|
339
|
+
"""Generate AI-powered testing intelligence report"""
|
|
340
|
+
|
|
341
|
+
logger.info("๐ Generating AI intelligence report...")
|
|
342
|
+
|
|
343
|
+
# Analyze test results
|
|
344
|
+
failed_tests = [t for t in test_suite.tests if t.status == TestStatus.FAILED]
|
|
345
|
+
performance_issues = [t for t in test_suite.tests if t.execution_time > 5.0]
|
|
346
|
+
|
|
347
|
+
# AI-powered insights
|
|
348
|
+
insights = {
|
|
349
|
+
"summary": {
|
|
350
|
+
"total_tests": len(test_suite.tests),
|
|
351
|
+
"pass_rate": test_suite.pass_rate,
|
|
352
|
+
"coverage": test_suite.coverage_percentage,
|
|
353
|
+
"execution_time": test_suite.total_time,
|
|
354
|
+
},
|
|
355
|
+
"quality_metrics": {
|
|
356
|
+
"reliability_score": self._calculate_reliability_score(test_suite),
|
|
357
|
+
"performance_score": self._calculate_performance_score(test_suite),
|
|
358
|
+
"stability_score": self._calculate_stability_score(test_suite),
|
|
359
|
+
},
|
|
360
|
+
"ai_insights": {
|
|
361
|
+
"failure_patterns": self._analyze_failure_patterns(failed_tests),
|
|
362
|
+
"performance_bottlenecks": self._identify_performance_bottlenecks(performance_issues),
|
|
363
|
+
"maintenance_recommendations": self._generate_maintenance_recommendations(test_suite),
|
|
364
|
+
"optimization_opportunities": self._identify_optimization_opportunities(test_suite),
|
|
365
|
+
},
|
|
366
|
+
"context7_recommendations": {
|
|
367
|
+
"latest_patterns": "Applied Context7 MCP best practices",
|
|
368
|
+
"version_updates": "Playwright patterns are current",
|
|
369
|
+
"community_insights": "Integrated collective testing wisdom",
|
|
370
|
+
},
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
return insights
|
|
374
|
+
|
|
375
|
+
def _calculate_reliability_score(self, test_suite: TestSuite) -> float:
|
|
376
|
+
"""AI-powered reliability scoring"""
|
|
377
|
+
|
|
378
|
+
base_score = test_suite.pass_rate
|
|
379
|
+
|
|
380
|
+
# Factor in coverage
|
|
381
|
+
coverage_factor = test_suite.coverage_percentage / 100
|
|
382
|
+
|
|
383
|
+
# Factor in consistency (standard deviation of execution times)
|
|
384
|
+
execution_times = [t.execution_time for t in test_suite.tests]
|
|
385
|
+
avg_time = sum(execution_times) / len(execution_times) if execution_times else 1
|
|
386
|
+
variance = sum((t - avg_time) ** 2 for t in execution_times) / len(execution_times) if execution_times else 0
|
|
387
|
+
consistency_factor = 1 - min(variance / avg_time**2, 1) if avg_time > 0 else 0
|
|
388
|
+
|
|
389
|
+
reliability_score = base_score * 0.6 + coverage_factor * 100 * 0.2 + consistency_factor * 100 * 0.2
|
|
390
|
+
return min(reliability_score, 100.0)
|
|
391
|
+
|
|
392
|
+
def _calculate_performance_score(self, test_suite: TestSuite) -> float:
|
|
393
|
+
"""AI-powered performance scoring"""
|
|
394
|
+
|
|
395
|
+
execution_times = [t.execution_time for t in test_suite.tests]
|
|
396
|
+
|
|
397
|
+
if not execution_times:
|
|
398
|
+
return 100.0
|
|
399
|
+
|
|
400
|
+
avg_time = sum(execution_times) / len(execution_times)
|
|
401
|
+
|
|
402
|
+
# Score based on average execution time (lower is better)
|
|
403
|
+
if avg_time <= 2.0:
|
|
404
|
+
return 100.0
|
|
405
|
+
elif avg_time <= 5.0:
|
|
406
|
+
return 80.0
|
|
407
|
+
elif avg_time <= 10.0:
|
|
408
|
+
return 60.0
|
|
409
|
+
else:
|
|
410
|
+
return 40.0
|
|
411
|
+
|
|
412
|
+
def _calculate_stability_score(self, test_suite: TestSuite) -> float:
|
|
413
|
+
"""AI-powered stability scoring"""
|
|
414
|
+
|
|
415
|
+
# Factor in test failure patterns
|
|
416
|
+
failed_tests = [t for t in test_suite.tests if t.status == TestStatus.FAILED]
|
|
417
|
+
|
|
418
|
+
if not failed_tests:
|
|
419
|
+
return 100.0
|
|
420
|
+
|
|
421
|
+
# Check if failures are consistent or random
|
|
422
|
+
browser_failures = {}
|
|
423
|
+
for test in failed_tests:
|
|
424
|
+
browser_failures[test.browser] = browser_failures.get(test.browser, 0) + 1
|
|
425
|
+
|
|
426
|
+
# More consistent failures across browsers indicate application issues
|
|
427
|
+
# Random failures indicate test instability
|
|
428
|
+
max_failures = max(browser_failures.values()) if browser_failures else 0
|
|
429
|
+
total_failures = len(failed_tests)
|
|
430
|
+
|
|
431
|
+
if max_failures == total_failures:
|
|
432
|
+
# All failures in one browser - likely browser compatibility issue
|
|
433
|
+
return 70.0
|
|
434
|
+
elif max_failures > total_failures * 0.7:
|
|
435
|
+
# Most failures in one browser
|
|
436
|
+
return 80.0
|
|
437
|
+
else:
|
|
438
|
+
# Distributed failures - test instability
|
|
439
|
+
return 50.0
|
|
440
|
+
|
|
441
|
+
def _analyze_failure_patterns(self, failed_tests: List[TestResult]) -> List[str]:
|
|
442
|
+
"""AI-powered failure pattern analysis"""
|
|
443
|
+
|
|
444
|
+
patterns = []
|
|
445
|
+
|
|
446
|
+
if not failed_tests:
|
|
447
|
+
return ["No failures detected"]
|
|
448
|
+
|
|
449
|
+
# Analyze browser patterns
|
|
450
|
+
browser_failures = {}
|
|
451
|
+
for test in failed_tests:
|
|
452
|
+
browser_failures[test.browser] = browser_failures.get(test.browser, 0) + 1
|
|
453
|
+
|
|
454
|
+
if len(browser_failures) == 1:
|
|
455
|
+
patterns.append(f"Browser-specific issues: {list(browser_failures.keys())[0]}")
|
|
456
|
+
|
|
457
|
+
# Analyze timing patterns
|
|
458
|
+
slow_tests = [t for t in failed_tests if t.execution_time > 5.0]
|
|
459
|
+
if slow_tests:
|
|
460
|
+
patterns.append(f"Performance-related failures: {len(slow_tests)} slow tests")
|
|
461
|
+
|
|
462
|
+
return patterns
|
|
463
|
+
|
|
464
|
+
def _identify_performance_bottlenecks(self, performance_issues: List[TestResult]) -> List[str]:
|
|
465
|
+
"""AI-powered performance bottleneck identification"""
|
|
466
|
+
|
|
467
|
+
bottlenecks = []
|
|
468
|
+
|
|
469
|
+
if not performance_issues:
|
|
470
|
+
return bottlenecks
|
|
471
|
+
|
|
472
|
+
avg_execution_time = sum(t.execution_time for t in performance_issues) / len(performance_issues)
|
|
473
|
+
|
|
474
|
+
if avg_execution_time > 10.0:
|
|
475
|
+
bottlenecks.append("Severe performance degradation detected")
|
|
476
|
+
elif avg_execution_time > 5.0:
|
|
477
|
+
bottlenecks.append("Moderate performance issues identified")
|
|
478
|
+
|
|
479
|
+
return bottlenecks
|
|
480
|
+
|
|
481
|
+
def _generate_maintenance_recommendations(self, test_suite: TestSuite) -> List[str]:
|
|
482
|
+
"""AI-powered maintenance recommendations"""
|
|
483
|
+
|
|
484
|
+
recommendations = []
|
|
485
|
+
|
|
486
|
+
# Coverage recommendations
|
|
487
|
+
if test_suite.coverage_percentage < 80:
|
|
488
|
+
recommendations.append("Increase test coverage by adding more test scenarios")
|
|
489
|
+
|
|
490
|
+
# Reliability recommendations
|
|
491
|
+
if test_suite.pass_rate < 90:
|
|
492
|
+
recommendations.append("Investigate failing tests and improve test stability")
|
|
493
|
+
|
|
494
|
+
# Performance recommendations
|
|
495
|
+
avg_time = sum(t.execution_time for t in test_suite.tests) / len(test_suite.tests) if test_suite.tests else 0
|
|
496
|
+
if avg_time > 5.0:
|
|
497
|
+
recommendations.append("Optimize test execution time through parallelization")
|
|
498
|
+
|
|
499
|
+
return recommendations
|
|
500
|
+
|
|
501
|
+
def _identify_optimization_opportunities(self, test_suite: TestSuite) -> List[str]:
|
|
502
|
+
"""AI-powered optimization opportunity identification"""
|
|
503
|
+
|
|
504
|
+
opportunities = []
|
|
505
|
+
|
|
506
|
+
# Test parallelization opportunities
|
|
507
|
+
if test_suite.total_time > 60:
|
|
508
|
+
opportunities.append("Implement test parallelization to reduce execution time")
|
|
509
|
+
|
|
510
|
+
# Smart selector opportunities
|
|
511
|
+
opportunities.append("Implement AI-powered smart selectors for better test reliability")
|
|
512
|
+
|
|
513
|
+
# Visual regression optimization
|
|
514
|
+
opportunities.append("Optimize visual regression tests with AI-driven ignore regions")
|
|
515
|
+
|
|
516
|
+
return opportunities
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
# Main execution example
|
|
520
|
+
async def main():
|
|
521
|
+
"""Example enterprise testing workflow"""
|
|
522
|
+
|
|
523
|
+
# Initialize orchestrator
|
|
524
|
+
orchestrator = EnterpriseTestOrchestrator()
|
|
525
|
+
|
|
526
|
+
# Define application information
|
|
527
|
+
application_info = {
|
|
528
|
+
"name": "Enterprise Web Application",
|
|
529
|
+
"url": "https://example.com",
|
|
530
|
+
"has_forms": True,
|
|
531
|
+
"has_authentication": True,
|
|
532
|
+
"is_single_page": True,
|
|
533
|
+
"has_apis": True,
|
|
534
|
+
"is_e_commerce": False,
|
|
535
|
+
"is_multi_language": True,
|
|
536
|
+
"has_file_upload": True,
|
|
537
|
+
"has_real_time_features": False,
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
print("๐ฏ Enterprise AI-Powered Testing Workflow")
|
|
541
|
+
print("=" * 50)
|
|
542
|
+
|
|
543
|
+
# Step 1: Generate AI-powered test plan
|
|
544
|
+
test_plan = await orchestrator.create_test_plan(application_info)
|
|
545
|
+
print(f"๐ Test Plan Generated: {test_plan['application_type']} ({test_plan['complexity_level']} complexity)")
|
|
546
|
+
|
|
547
|
+
# Step 2: Execute test suite
|
|
548
|
+
test_suite = await orchestrator.execute_test_suite(test_plan)
|
|
549
|
+
print(f"๐งช Test Suite Completed: {test_suite.pass_rate:.1f}% pass rate")
|
|
550
|
+
|
|
551
|
+
# Step 3: Generate intelligence report
|
|
552
|
+
intelligence_report = await orchestrator.generate_intelligence_report(test_suite)
|
|
553
|
+
|
|
554
|
+
print("\n๐ AI Intelligence Report:")
|
|
555
|
+
print(f" Reliability Score: {intelligence_report['quality_metrics']['reliability_score']:.1f}/100")
|
|
556
|
+
print(f" Performance Score: {intelligence_report['quality_metrics']['performance_score']:.1f}/100")
|
|
557
|
+
print(f" Stability Score: {intelligence_report['quality_metrics']['stability_score']:.1f}/100")
|
|
558
|
+
|
|
559
|
+
print("\n๐ก AI Recommendations:")
|
|
560
|
+
for rec in intelligence_report["ai_insights"]["maintenance_recommendations"]:
|
|
561
|
+
print(f" โข {rec}")
|
|
562
|
+
|
|
563
|
+
print("\n๐ Optimization Opportunities:")
|
|
564
|
+
for opp in intelligence_report["ai_insights"]["optimization_opportunities"]:
|
|
565
|
+
print(f" โข {opp}")
|
|
566
|
+
|
|
567
|
+
print("\nโ
Enterprise testing workflow completed successfully")
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
if __name__ == "__main__":
|
|
571
|
+
asyncio.run(main())
|