moai-adk 0.25.4__py3-none-any.whl → 0.32.8__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 +2 -5
- moai_adk/__main__.py +114 -82
- moai_adk/cli/__init__.py +6 -1
- moai_adk/cli/commands/__init__.py +1 -3
- moai_adk/cli/commands/analyze.py +5 -16
- moai_adk/cli/commands/doctor.py +6 -18
- moai_adk/cli/commands/init.py +56 -125
- moai_adk/cli/commands/language.py +14 -35
- moai_adk/cli/commands/status.py +9 -15
- moai_adk/cli/commands/update.py +1555 -190
- moai_adk/cli/prompts/init_prompts.py +112 -56
- 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 +672 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +490 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +128 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/analysis/session_analyzer.py +17 -56
- moai_adk/core/claude_integration.py +26 -54
- moai_adk/core/command_helpers.py +10 -10
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/auto_spec_config.py +5 -11
- moai_adk/core/config/migration.py +19 -9
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +6 -12
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +725 -112
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -0
- moai_adk/core/git/branch_manager.py +3 -11
- moai_adk/core/git/checkpoint.py +1 -3
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/manager.py +91 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/engine.py +6 -18
- moai_adk/core/integration/integration_tester.py +10 -9
- moai_adk/core/integration/utils.py +1 -1
- moai_adk/core/issue_creator.py +10 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config_resolver.py +485 -0
- moai_adk/core/language_validator.py +28 -41
- moai_adk/core/mcp/setup.py +15 -12
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +481 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +78 -9
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +8 -17
- 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 +6 -10
- moai_adk/core/migration/version_migrator.py +3 -3
- moai_adk/core/performance/cache_system.py +8 -10
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +1 -3
- moai_adk/core/project/initializer.py +135 -23
- moai_adk/core/project/phase_executor.py +54 -81
- moai_adk/core/project/validator.py +6 -12
- moai_adk/core/quality/trust_checker.py +9 -27
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +73 -148
- moai_adk/core/session_manager.py +10 -26
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +31 -100
- moai_adk/core/spec/ears_template_engine.py +351 -286
- moai_adk/core/spec/quality_validator.py +35 -69
- moai_adk/core/spec_status_manager.py +64 -74
- moai_adk/core/template/backup.py +45 -20
- moai_adk/core/template/config.py +112 -39
- moai_adk/core/template/merger.py +11 -19
- moai_adk/core/template/processor.py +253 -149
- moai_adk/core/template_engine.py +73 -40
- 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 +4 -12
- 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 +23 -72
- moai_adk/foundation/trust/validation_checklist.py +57 -162
- 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/alfred_detector.py +1 -3
- moai_adk/statusline/config.py +13 -4
- moai_adk/statusline/enhanced_output_style_detector.py +23 -15
- moai_adk/statusline/main.py +51 -15
- moai_adk/statusline/renderer.py +104 -48
- moai_adk/statusline/update_checker.py +3 -9
- moai_adk/statusline/version_reader.py +140 -46
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +993 -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 +921 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -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-domain-backend/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -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-frontend/SKILL.md +496 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -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/design-system-tokens.md +405 -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 +491 -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-foundation-claude/SKILL.md +201 -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-context/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -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 +346 -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-quality/SKILL.md +362 -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-integration-mcp/SKILL.md +352 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -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 +316 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -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-shadcn/SKILL.md +370 -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-platform-baas/README.md +186 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -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 +135 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -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/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -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 +71 -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-templates/SKILL.md +374 -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-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -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/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/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 +410 -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 +103 -41
- moai_adk/templates/.git-hooks/pre-push +116 -21
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.gitignore +184 -44
- moai_adk/templates/.mcp.json +7 -9
- moai_adk/templates/.moai/cache/personalization.json +10 -0
- moai_adk/templates/.moai/config/config.yaml +344 -0
- moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
- moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
- moai_adk/templates/.moai/config/presets/team.yaml +33 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -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 +15 -0
- moai_adk/templates/.moai/config/sections/system.yaml +14 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +382 -501
- moai_adk/utils/__init__.py +24 -1
- moai_adk/utils/banner.py +7 -10
- moai_adk/utils/common.py +16 -30
- moai_adk/utils/link_validator.py +4 -12
- moai_adk/utils/safe_file_reader.py +2 -6
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.32.8.dist-info/METADATA +2478 -0
- moai_adk-0.32.8.dist-info/RECORD +396 -0
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -82
- moai_adk/cli/commands/improve_user_experience.py +0 -348
- moai_adk/cli/commands/migrate.py +0 -158
- moai_adk/cli/commands/validate_links.py +0 -118
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/utils/user_experience.py +0 -531
- moai_adk-0.25.4.dist-info/METADATA +0 -2279
- moai_adk-0.25.4.dist-info/RECORD +0 -112
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Error Handling and Resilience
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Comprehensive error handling framework for MCP integrations featuring retry logic, circuit breakers, fault tolerance, and graceful degradation strategies.
|
|
5
|
+
|
|
6
|
+
## Quick Implementation
|
|
7
|
+
|
|
8
|
+
### Robust Error Management
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
class ErrorHandler:
|
|
12
|
+
def __init__(self):
|
|
13
|
+
self.retry_config = {
|
|
14
|
+
'max_retries': 3,
|
|
15
|
+
'backoff_factor': 2,
|
|
16
|
+
'retryable_errors': ['timeout', 'rate_limit', 'temporary_failure']
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async def handle_api_error(self, service: str, error: Exception, attempt: int = 1) -> dict:
|
|
20
|
+
"""Handle API errors with retry logic."""
|
|
21
|
+
error_type = self.classify_error(error)
|
|
22
|
+
|
|
23
|
+
if error_type in self.retry_config['retryable_errors'] and attempt <= self.retry_config['max_retries']:
|
|
24
|
+
wait_time = self.retry_config['backoff_factor'] attempt
|
|
25
|
+
await asyncio.sleep(wait_time)
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
'should_retry': True,
|
|
29
|
+
'wait_time': wait_time,
|
|
30
|
+
'attempt': attempt + 1
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
'should_retry': False,
|
|
35
|
+
'error_type': error_type,
|
|
36
|
+
'message': str(error),
|
|
37
|
+
'attempt': attempt
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
def classify_error(self, error: Exception) -> str:
|
|
41
|
+
"""Classify error type for retry determination."""
|
|
42
|
+
if 'rate limit' in str(error).lower():
|
|
43
|
+
return 'rate_limit'
|
|
44
|
+
elif 'timeout' in str(error).lower():
|
|
45
|
+
return 'timeout'
|
|
46
|
+
elif 'temporary' in str(error).lower():
|
|
47
|
+
return 'temporary_failure'
|
|
48
|
+
else:
|
|
49
|
+
return 'permanent_error'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Circuit Breaker Pattern
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
class CircuitBreaker:
|
|
56
|
+
def __init__(self, failure_threshold=5, timeout=60, expected_exception=Exception):
|
|
57
|
+
self.failure_threshold = failure_threshold
|
|
58
|
+
self.timeout = timeout
|
|
59
|
+
self.expected_exception = expected_exception
|
|
60
|
+
self.failure_count = 0
|
|
61
|
+
self.last_failure_time = None
|
|
62
|
+
self.state = 'CLOSED' # CLOSED, OPEN, HALF_OPEN
|
|
63
|
+
|
|
64
|
+
async def call(self, func, *args, kwargs):
|
|
65
|
+
"""Execute function with circuit breaker protection."""
|
|
66
|
+
if self.state == 'OPEN':
|
|
67
|
+
if self._should_attempt_reset():
|
|
68
|
+
self.state = 'HALF_OPEN'
|
|
69
|
+
else:
|
|
70
|
+
raise Exception("Circuit breaker is OPEN")
|
|
71
|
+
|
|
72
|
+
try:
|
|
73
|
+
result = await func(*args, kwargs)
|
|
74
|
+
self._on_success()
|
|
75
|
+
return result
|
|
76
|
+
|
|
77
|
+
except self.expected_exception as e:
|
|
78
|
+
self._on_failure()
|
|
79
|
+
raise e
|
|
80
|
+
|
|
81
|
+
def _should_attempt_reset(self):
|
|
82
|
+
"""Check if circuit breaker should attempt to reset."""
|
|
83
|
+
return time.time() - self.last_failure_time >= self.timeout
|
|
84
|
+
|
|
85
|
+
def _on_success(self):
|
|
86
|
+
"""Handle successful operation."""
|
|
87
|
+
self.failure_count = 0
|
|
88
|
+
self.state = 'CLOSED'
|
|
89
|
+
|
|
90
|
+
def _on_failure(self):
|
|
91
|
+
"""Handle failed operation."""
|
|
92
|
+
self.failure_count += 1
|
|
93
|
+
self.last_failure_time = time.time()
|
|
94
|
+
|
|
95
|
+
if self.failure_count >= self.failure_threshold:
|
|
96
|
+
self.state = 'OPEN'
|
|
97
|
+
|
|
98
|
+
# Usage example
|
|
99
|
+
class ResilientAPIClient:
|
|
100
|
+
def __init__(self, api_client):
|
|
101
|
+
self.api_client = api_client
|
|
102
|
+
self.circuit_breaker = CircuitBreaker(
|
|
103
|
+
failure_threshold=5,
|
|
104
|
+
timeout=60
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
async def make_request(self, endpoint, kwargs):
|
|
108
|
+
"""Make API request with circuit breaker protection."""
|
|
109
|
+
return await self.circuit_breaker.call(
|
|
110
|
+
self.api_client.request,
|
|
111
|
+
endpoint,
|
|
112
|
+
kwargs
|
|
113
|
+
)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Retry with Exponential Backoff
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
class RetryManager:
|
|
120
|
+
def __init__(self, max_retries=3, base_delay=1, max_delay=60):
|
|
121
|
+
self.max_retries = max_retries
|
|
122
|
+
self.base_delay = base_delay
|
|
123
|
+
self.max_delay = max_delay
|
|
124
|
+
|
|
125
|
+
async def retry_with_backoff(self, func, *args, kwargs):
|
|
126
|
+
"""Execute function with exponential backoff retry."""
|
|
127
|
+
last_exception = None
|
|
128
|
+
|
|
129
|
+
for attempt in range(self.max_retries + 1):
|
|
130
|
+
try:
|
|
131
|
+
return await func(*args, kwargs)
|
|
132
|
+
|
|
133
|
+
except Exception as e:
|
|
134
|
+
last_exception = e
|
|
135
|
+
|
|
136
|
+
if attempt < self.max_retries and self._should_retry(e):
|
|
137
|
+
delay = self._calculate_delay(attempt)
|
|
138
|
+
await asyncio.sleep(delay)
|
|
139
|
+
else:
|
|
140
|
+
break
|
|
141
|
+
|
|
142
|
+
raise last_exception
|
|
143
|
+
|
|
144
|
+
def _should_retry(self, exception: Exception) -> bool:
|
|
145
|
+
"""Determine if exception is retryable."""
|
|
146
|
+
retryable_errors = [
|
|
147
|
+
'timeout',
|
|
148
|
+
'rate limit',
|
|
149
|
+
'temporary',
|
|
150
|
+
'connection',
|
|
151
|
+
'network'
|
|
152
|
+
]
|
|
153
|
+
|
|
154
|
+
error_str = str(exception).lower()
|
|
155
|
+
return any(error in error_str for error in retryable_errors)
|
|
156
|
+
|
|
157
|
+
def _calculate_delay(self, attempt: int) -> float:
|
|
158
|
+
"""Calculate exponential backoff delay."""
|
|
159
|
+
delay = self.base_delay * (2 attempt)
|
|
160
|
+
jitter = random.uniform(0, 0.1) * delay # Add jitter
|
|
161
|
+
return min(delay + jitter, self.max_delay)
|
|
162
|
+
|
|
163
|
+
# Usage example
|
|
164
|
+
class RetryableServiceClient:
|
|
165
|
+
def __init__(self):
|
|
166
|
+
self.retry_manager = RetryManager(
|
|
167
|
+
max_retries=3,
|
|
168
|
+
base_delay=1,
|
|
169
|
+
max_delay=30
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
async def get_resource(self, resource_id: str):
|
|
173
|
+
"""Get resource with retry logic."""
|
|
174
|
+
return await self.retry_manager.retry_with_backoff(
|
|
175
|
+
self._fetch_resource,
|
|
176
|
+
resource_id
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
async def _fetch_resource(self, resource_id: str):
|
|
180
|
+
"""Actual resource fetching logic."""
|
|
181
|
+
# Implementation that might fail
|
|
182
|
+
pass
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Key Features
|
|
186
|
+
|
|
187
|
+
### 1. Error Classification
|
|
188
|
+
- Automatic error type detection
|
|
189
|
+
- Retryable vs non-retryable errors
|
|
190
|
+
- Service-specific error handling
|
|
191
|
+
- Custom error categories
|
|
192
|
+
|
|
193
|
+
### 2. Retry Strategies
|
|
194
|
+
- Exponential backoff with jitter
|
|
195
|
+
- Linear backoff
|
|
196
|
+
- Custom retry policies
|
|
197
|
+
- Maximum retry limits
|
|
198
|
+
|
|
199
|
+
### 3. Circuit Breaker Pattern
|
|
200
|
+
- Failure threshold management
|
|
201
|
+
- Automatic state transitions
|
|
202
|
+
- Half-open state testing
|
|
203
|
+
- Service isolation
|
|
204
|
+
|
|
205
|
+
### 4. Fault Tolerance
|
|
206
|
+
- Graceful degradation
|
|
207
|
+
- Fallback mechanisms
|
|
208
|
+
- Bulkhead isolation
|
|
209
|
+
- Timeout management
|
|
210
|
+
|
|
211
|
+
## Resilience Patterns
|
|
212
|
+
|
|
213
|
+
### 1. Bulkhead Pattern
|
|
214
|
+
```python
|
|
215
|
+
class Bulkhead:
|
|
216
|
+
def __init__(self, max_concurrent_calls=10):
|
|
217
|
+
self.semaphore = asyncio.Semaphore(max_concurrent_calls)
|
|
218
|
+
self.active_calls = 0
|
|
219
|
+
|
|
220
|
+
async def execute(self, func, *args, kwargs):
|
|
221
|
+
"""Execute function with bulkhead protection."""
|
|
222
|
+
async with self.semaphore:
|
|
223
|
+
self.active_calls += 1
|
|
224
|
+
try:
|
|
225
|
+
return await func(*args, kwargs)
|
|
226
|
+
finally:
|
|
227
|
+
self.active_calls -= 1
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### 2. Timeout Management
|
|
231
|
+
```python
|
|
232
|
+
class TimeoutManager:
|
|
233
|
+
def __init__(self, default_timeout=30):
|
|
234
|
+
self.default_timeout = default_timeout
|
|
235
|
+
|
|
236
|
+
async def execute_with_timeout(self, func, timeout=None, *args, kwargs):
|
|
237
|
+
"""Execute function with timeout protection."""
|
|
238
|
+
timeout = timeout or self.default_timeout
|
|
239
|
+
try:
|
|
240
|
+
return await asyncio.wait_for(
|
|
241
|
+
func(*args, kwargs),
|
|
242
|
+
timeout=timeout
|
|
243
|
+
)
|
|
244
|
+
except asyncio.TimeoutError:
|
|
245
|
+
raise Exception(f"Operation timed out after {timeout} seconds")
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### 3. Fallback Mechanisms
|
|
249
|
+
```python
|
|
250
|
+
class FallbackManager:
|
|
251
|
+
def __init__(self):
|
|
252
|
+
self.fallback_strategies = {}
|
|
253
|
+
|
|
254
|
+
def register_fallback(self, operation: str, fallback_func):
|
|
255
|
+
"""Register fallback strategy for operation."""
|
|
256
|
+
self.fallback_strategies[operation] = fallback_func
|
|
257
|
+
|
|
258
|
+
async def execute_with_fallback(self, operation: str, primary_func, *args, kwargs):
|
|
259
|
+
"""Execute operation with fallback support."""
|
|
260
|
+
try:
|
|
261
|
+
return await primary_func(*args, kwargs)
|
|
262
|
+
except Exception as e:
|
|
263
|
+
if operation in self.fallback_strategies:
|
|
264
|
+
logging.warning(f"Primary operation failed, using fallback: {e}")
|
|
265
|
+
return await self.fallback_strategies[operation](*args, kwargs)
|
|
266
|
+
else:
|
|
267
|
+
raise e
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Monitoring and Observability
|
|
271
|
+
|
|
272
|
+
### Error Metrics
|
|
273
|
+
```python
|
|
274
|
+
class ErrorMetrics:
|
|
275
|
+
def __init__(self):
|
|
276
|
+
self.error_counts = {}
|
|
277
|
+
self.retry_counts = {}
|
|
278
|
+
self.circuit_breaker_events = {}
|
|
279
|
+
|
|
280
|
+
def record_error(self, service: str, error_type: str):
|
|
281
|
+
"""Record error occurrence."""
|
|
282
|
+
key = f"{service}:{error_type}"
|
|
283
|
+
self.error_counts[key] = self.error_counts.get(key, 0) + 1
|
|
284
|
+
|
|
285
|
+
def record_retry(self, service: str):
|
|
286
|
+
"""Record retry attempt."""
|
|
287
|
+
self.retry_counts[service] = self.retry_counts.get(service, 0) + 1
|
|
288
|
+
|
|
289
|
+
def record_circuit_breaker_event(self, service: str, event: str):
|
|
290
|
+
"""Record circuit breaker state change."""
|
|
291
|
+
key = f"{service}:{event}"
|
|
292
|
+
self.circuit_breaker_events[key] = self.circuit_breaker_events.get(key, 0) + 1
|
|
293
|
+
|
|
294
|
+
def get_metrics_summary(self) -> dict:
|
|
295
|
+
"""Get summary of all metrics."""
|
|
296
|
+
return {
|
|
297
|
+
'error_counts': self.error_counts,
|
|
298
|
+
'retry_counts': self.retry_counts,
|
|
299
|
+
'circuit_breaker_events': self.circuit_breaker_events
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Best Practices
|
|
304
|
+
|
|
305
|
+
### 1. Error Handling Strategy
|
|
306
|
+
- Implement comprehensive error classification
|
|
307
|
+
- Use appropriate retry policies
|
|
308
|
+
- Set realistic timeout values
|
|
309
|
+
- Monitor and adjust thresholds
|
|
310
|
+
|
|
311
|
+
### 2. Circuit Breaker Configuration
|
|
312
|
+
- Set appropriate failure thresholds
|
|
313
|
+
- Configure reasonable timeout periods
|
|
314
|
+
- Implement proper state transitions
|
|
315
|
+
- Monitor circuit breaker states
|
|
316
|
+
|
|
317
|
+
### 3. Retry Policy Design
|
|
318
|
+
- Use exponential backoff with jitter
|
|
319
|
+
- Implement retry limits
|
|
320
|
+
- Handle different error types appropriately
|
|
321
|
+
- Consider service-specific requirements
|
|
322
|
+
|
|
323
|
+
### 4. Monitoring and Alerting
|
|
324
|
+
- Track error rates and patterns
|
|
325
|
+
- Monitor circuit breaker states
|
|
326
|
+
- Set up appropriate alerts
|
|
327
|
+
- Regular review and adjustment
|
|
328
|
+
|
|
329
|
+
## Integration Points
|
|
330
|
+
- External API clients
|
|
331
|
+
- Database connections
|
|
332
|
+
- Message queue systems
|
|
333
|
+
- File system operations
|
|
334
|
+
- Network communications
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# Advanced Integration Patterns
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Sophisticated integration patterns for multi-service orchestration, resource management, and complex workflows across Figma, Notion, Nano-Banana, and custom services.
|
|
5
|
+
|
|
6
|
+
## Quick Implementation
|
|
7
|
+
|
|
8
|
+
### Multi-Service Orchestration
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
class ServiceOrchestrator:
|
|
12
|
+
def __init__(self, mcp_server: UniversalMCPServer):
|
|
13
|
+
self.mcp_server = mcp_server
|
|
14
|
+
self.workflow_engine = WorkflowEngine()
|
|
15
|
+
|
|
16
|
+
def register_orchestration_tools(self):
|
|
17
|
+
@self.mcp_server.server.tool()
|
|
18
|
+
async def design_to_code_workflow(
|
|
19
|
+
figma_file_id: str,
|
|
20
|
+
component_library: str = "shadcn"
|
|
21
|
+
) -> dict:
|
|
22
|
+
"""Complete design-to-code workflow from Figma to React components."""
|
|
23
|
+
|
|
24
|
+
# Step 1: Extract components from Figma
|
|
25
|
+
figma_result = await self.mcp_server.server.invoke_tool(
|
|
26
|
+
"extract_figma_components",
|
|
27
|
+
{"file_id": figma_file_id}
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# Step 2: Generate React components
|
|
31
|
+
components = figma_result["components"]
|
|
32
|
+
generated_code = []
|
|
33
|
+
|
|
34
|
+
for component in components:
|
|
35
|
+
ai_prompt = f"""
|
|
36
|
+
Generate a React component using {component_library} for this Figma design:
|
|
37
|
+
Component Name: {component['name']}
|
|
38
|
+
Design: {component['design_data']}
|
|
39
|
+
Tokens: {component['tokens']}
|
|
40
|
+
|
|
41
|
+
Requirements:
|
|
42
|
+
- Use TypeScript
|
|
43
|
+
- Include proper props interface
|
|
44
|
+
- Apply design tokens
|
|
45
|
+
- Make responsive with Tailwind CSS
|
|
46
|
+
- Include accessibility attributes
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
ai_result = await self.mcp_server.server.invoke_tool(
|
|
50
|
+
"generate_ai_content",
|
|
51
|
+
{"prompt": ai_prompt, "max_tokens": 2000}
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
generated_code.append({
|
|
55
|
+
"name": component['name'],
|
|
56
|
+
"code": ai_result["content"],
|
|
57
|
+
"tokens": component['tokens']
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
# Step 3: Create documentation
|
|
61
|
+
doc_prompt = f"""
|
|
62
|
+
Create comprehensive documentation for these React components:
|
|
63
|
+
{json.dumps([c['name'] for c in components], indent=2)}
|
|
64
|
+
|
|
65
|
+
Include:
|
|
66
|
+
- Component descriptions
|
|
67
|
+
- Props documentation
|
|
68
|
+
- Usage examples
|
|
69
|
+
- Design token references
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
docs = await self.mcp_server.server.invoke_tool(
|
|
73
|
+
"generate_ai_content",
|
|
74
|
+
{"prompt": doc_prompt, "max_tokens": 3000}
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
"components": generated_code,
|
|
79
|
+
"documentation": docs["content"],
|
|
80
|
+
"workflow_status": "completed",
|
|
81
|
+
"generated_files": len(generated_code)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@self.mcp_server.server.tool()
|
|
85
|
+
async def knowledge_extraction_workflow(
|
|
86
|
+
notion_database_id: str,
|
|
87
|
+
analysis_goal: str = "extract_best_practices"
|
|
88
|
+
) -> dict:
|
|
89
|
+
"""Extract knowledge from Notion and create structured documentation."""
|
|
90
|
+
|
|
91
|
+
# Step 1: Query Notion database
|
|
92
|
+
notion_result = await self.mcp_server.server.invoke_tool(
|
|
93
|
+
"query_notion_database",
|
|
94
|
+
{"database_id": notion_database_id}
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
# Step 2: Analyze content with AI
|
|
98
|
+
all_content = "\n\n".join([
|
|
99
|
+
self.extract_text_from_page(page)
|
|
100
|
+
for page in notion_result["results"]
|
|
101
|
+
])
|
|
102
|
+
|
|
103
|
+
analysis_prompt = f"""
|
|
104
|
+
Analyze this content for {analysis_goal}:
|
|
105
|
+
|
|
106
|
+
Content:
|
|
107
|
+
{all_content[:8000]} # Limit content length
|
|
108
|
+
|
|
109
|
+
Please provide:
|
|
110
|
+
1. Key insights and patterns
|
|
111
|
+
2. Structured summary
|
|
112
|
+
3. Actionable recommendations
|
|
113
|
+
4. Categorization of information
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
analysis = await self.mcp_server.server.invoke_tool(
|
|
117
|
+
"analyze_with_ai",
|
|
118
|
+
{"content": all_content, "analysis_type": analysis_goal}
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
# Step 3: Create structured knowledge base
|
|
122
|
+
knowledge_base = self.structure_knowledge(
|
|
123
|
+
analysis["analysis"],
|
|
124
|
+
notion_result["results"]
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
return {
|
|
128
|
+
"analysis": analysis["analysis"],
|
|
129
|
+
"knowledge_base": knowledge_base,
|
|
130
|
+
"source_count": len(notion_result["results"]),
|
|
131
|
+
"workflow_status": "completed"
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Workflow Engine
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
class WorkflowEngine:
|
|
139
|
+
def __init__(self):
|
|
140
|
+
self.active_workflows = {}
|
|
141
|
+
self.workflow_templates = {}
|
|
142
|
+
|
|
143
|
+
def create_workflow_template(self, name: str, steps: List[Dict]):
|
|
144
|
+
"""Create reusable workflow template."""
|
|
145
|
+
self.workflow_templates[name] = {
|
|
146
|
+
"name": name,
|
|
147
|
+
"steps": steps,
|
|
148
|
+
"created_at": datetime.now()
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
async def execute_workflow(self, template_name: str, params: Dict) -> Dict:
|
|
152
|
+
"""Execute workflow from template."""
|
|
153
|
+
if template_name not in self.workflow_templates:
|
|
154
|
+
raise ValueError(f"Workflow template '{template_name}' not found")
|
|
155
|
+
|
|
156
|
+
workflow_id = str(uuid.uuid4())
|
|
157
|
+
template = self.workflow_templates[template_name]
|
|
158
|
+
|
|
159
|
+
try:
|
|
160
|
+
self.active_workflows[workflow_id] = {
|
|
161
|
+
"template": template_name,
|
|
162
|
+
"params": params,
|
|
163
|
+
"status": "running",
|
|
164
|
+
"started_at": datetime.now()
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
results = []
|
|
168
|
+
for step in template["steps"]:
|
|
169
|
+
step_result = await self.execute_step(step, params)
|
|
170
|
+
results.append(step_result)
|
|
171
|
+
|
|
172
|
+
# Update workflow status
|
|
173
|
+
self.active_workflows[workflow_id]["status"] = "completed"
|
|
174
|
+
self.active_workflows[workflow_id]["results"] = results
|
|
175
|
+
|
|
176
|
+
return {
|
|
177
|
+
"workflow_id": workflow_id,
|
|
178
|
+
"status": "completed",
|
|
179
|
+
"results": results
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
except Exception as e:
|
|
183
|
+
self.active_workflows[workflow_id]["status"] = "failed"
|
|
184
|
+
self.active_workflows[workflow_id]["error"] = str(e)
|
|
185
|
+
raise
|
|
186
|
+
|
|
187
|
+
async def execute_step(self, step: Dict, params: Dict) -> Dict:
|
|
188
|
+
"""Execute individual workflow step."""
|
|
189
|
+
step_type = step["type"]
|
|
190
|
+
|
|
191
|
+
if step_type == "tool_call":
|
|
192
|
+
return await self.execute_tool_call(step["tool"], step["params"], params)
|
|
193
|
+
elif step_type == "condition":
|
|
194
|
+
return await self.execute_condition(step["condition"], params)
|
|
195
|
+
elif step_type == "parallel":
|
|
196
|
+
return await self.execute_parallel_steps(step["steps"], params)
|
|
197
|
+
else:
|
|
198
|
+
raise ValueError(f"Unknown step type: {step_type}")
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Key Features
|
|
202
|
+
|
|
203
|
+
### 1. Multi-Service Workflows
|
|
204
|
+
- Sequential and parallel execution
|
|
205
|
+
- Error handling and rollback
|
|
206
|
+
- State management and persistence
|
|
207
|
+
- Template-based workflow creation
|
|
208
|
+
|
|
209
|
+
### 2. Resource Management
|
|
210
|
+
- Connection pooling for APIs
|
|
211
|
+
- Rate limiting and throttling
|
|
212
|
+
- Caching and optimization
|
|
213
|
+
- Resource cleanup and garbage collection
|
|
214
|
+
|
|
215
|
+
### 3. Data Flow Integration
|
|
216
|
+
- Data transformation pipelines
|
|
217
|
+
- Format conversion utilities
|
|
218
|
+
- Validation and sanitization
|
|
219
|
+
- Conflict resolution strategies
|
|
220
|
+
|
|
221
|
+
### 4. Advanced Patterns
|
|
222
|
+
- Saga pattern for distributed transactions
|
|
223
|
+
- Circuit breaker for fault tolerance
|
|
224
|
+
- Event-driven architecture
|
|
225
|
+
- Message queue integration
|
|
226
|
+
|
|
227
|
+
## Integration Patterns
|
|
228
|
+
|
|
229
|
+
### 1. Request-Response Pattern
|
|
230
|
+
```python
|
|
231
|
+
# Simple synchronous integration
|
|
232
|
+
result = await mcp_server.invoke_tool("extract_figma_components", params)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 2. Pipeline Pattern
|
|
236
|
+
```python
|
|
237
|
+
# Sequential data processing
|
|
238
|
+
pipeline = Pipeline([
|
|
239
|
+
extract_from_figma,
|
|
240
|
+
transform_with_ai,
|
|
241
|
+
generate_code,
|
|
242
|
+
create_documentation
|
|
243
|
+
])
|
|
244
|
+
result = await pipeline.execute(input_data)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 3. Fan-Out/Fan-In Pattern
|
|
248
|
+
```python
|
|
249
|
+
# Parallel processing
|
|
250
|
+
parallel_tasks = [
|
|
251
|
+
process_component(component)
|
|
252
|
+
for component in components
|
|
253
|
+
]
|
|
254
|
+
results = await asyncio.gather(*parallel_tasks)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### 4. Event-Driven Pattern
|
|
258
|
+
```python
|
|
259
|
+
# Reactive integration
|
|
260
|
+
@event_handler("figma_file_updated")
|
|
261
|
+
async def handle_figma_update(event):
|
|
262
|
+
await design_to_code_workflow(event.file_id)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Error Handling Strategies
|
|
266
|
+
|
|
267
|
+
### 1. Retry Logic
|
|
268
|
+
- Exponential backoff
|
|
269
|
+
- Circuit breaker patterns
|
|
270
|
+
- Dead letter queues
|
|
271
|
+
- Graceful degradation
|
|
272
|
+
|
|
273
|
+
### 2. Fallback Mechanisms
|
|
274
|
+
- Alternative service providers
|
|
275
|
+
- Cached responses
|
|
276
|
+
- Default behavior
|
|
277
|
+
- Manual intervention points
|
|
278
|
+
|
|
279
|
+
### 3. Monitoring and Alerting
|
|
280
|
+
- Real-time status tracking
|
|
281
|
+
- Performance metrics
|
|
282
|
+
- Error rate monitoring
|
|
283
|
+
- Automated recovery
|
|
284
|
+
|
|
285
|
+
## Performance Optimization
|
|
286
|
+
|
|
287
|
+
### 1. Connection Management
|
|
288
|
+
- Connection pooling
|
|
289
|
+
- Keep-alive connections
|
|
290
|
+
- HTTP/2 support
|
|
291
|
+
- Multiplexing
|
|
292
|
+
|
|
293
|
+
### 2. Caching Strategies
|
|
294
|
+
- Response caching
|
|
295
|
+
- Result memoization
|
|
296
|
+
- Distributed caching
|
|
297
|
+
- Cache invalidation
|
|
298
|
+
|
|
299
|
+
### 3. Resource Optimization
|
|
300
|
+
- Memory management
|
|
301
|
+
- CPU utilization
|
|
302
|
+
- Network optimization
|
|
303
|
+
- Storage efficiency
|
|
304
|
+
|
|
305
|
+
## Integration Points
|
|
306
|
+
- External API services
|
|
307
|
+
- Internal microservices
|
|
308
|
+
- Message queues (Redis, RabbitMQ)
|
|
309
|
+
- Database systems
|
|
310
|
+
- File storage systems
|