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,520 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MoAI Menu Project - Integrated Module System
|
|
3
|
+
|
|
4
|
+
Comprehensive project management system that integrates documentation,
|
|
5
|
+
language initialization, and template optimization modules.
|
|
6
|
+
|
|
7
|
+
This module provides a unified interface for managing project setup,
|
|
8
|
+
documentation generation, multilingual support, and template optimization.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import json
|
|
12
|
+
from datetime import datetime
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
from typing import Any, Dict, List
|
|
15
|
+
|
|
16
|
+
# Import module components
|
|
17
|
+
from .modules.documentation_manager import DocumentationManager
|
|
18
|
+
from .modules.language_initializer import LanguageInitializer
|
|
19
|
+
from .modules.template_optimizer import TemplateOptimizer
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class MoaiMenuProject:
|
|
23
|
+
"""
|
|
24
|
+
Main interface for MoAI Menu Project integrated system.
|
|
25
|
+
|
|
26
|
+
Provides unified access to documentation management, language initialization,
|
|
27
|
+
and template optimization capabilities.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(self, project_root: str = None, config: Dict[str, Any] = None):
|
|
31
|
+
"""
|
|
32
|
+
Initialize the MoAI Menu Project system.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
project_root: Root directory of the project
|
|
36
|
+
config: Configuration dictionary
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
# Determine project root
|
|
40
|
+
if project_root is None:
|
|
41
|
+
project_root = Path.cwd()
|
|
42
|
+
else:
|
|
43
|
+
project_root = Path(project_root)
|
|
44
|
+
|
|
45
|
+
self.project_root = project_root
|
|
46
|
+
|
|
47
|
+
# Load or create configuration
|
|
48
|
+
if config is None:
|
|
49
|
+
config = self._load_or_create_config()
|
|
50
|
+
|
|
51
|
+
self.config = config
|
|
52
|
+
|
|
53
|
+
# Initialize modules
|
|
54
|
+
self.documentation_manager = DocumentationManager(str(project_root), config)
|
|
55
|
+
self.language_initializer = LanguageInitializer(str(project_root), config)
|
|
56
|
+
self.template_optimizer = TemplateOptimizer(str(project_root), config)
|
|
57
|
+
|
|
58
|
+
# System metadata
|
|
59
|
+
self.version = "1.0.0"
|
|
60
|
+
self.initialized_at = datetime.now()
|
|
61
|
+
|
|
62
|
+
def _load_or_create_config(self) -> Dict[str, Any]:
|
|
63
|
+
"""Load existing configuration or create default."""
|
|
64
|
+
|
|
65
|
+
config_path = self.project_root / ".moai/config/config.json"
|
|
66
|
+
|
|
67
|
+
if config_path.exists():
|
|
68
|
+
try:
|
|
69
|
+
return json.loads(config_path.read_text(encoding="utf-8"))
|
|
70
|
+
except (json.JSONDecodeError, UnicodeDecodeError):
|
|
71
|
+
pass
|
|
72
|
+
|
|
73
|
+
# Create default configuration
|
|
74
|
+
default_config = {
|
|
75
|
+
"project": {
|
|
76
|
+
"name": "My Project",
|
|
77
|
+
"type": "web_application",
|
|
78
|
+
"initialized_at": datetime.now().isoformat(),
|
|
79
|
+
},
|
|
80
|
+
"language": {
|
|
81
|
+
"conversation_language": "en",
|
|
82
|
+
"conversation_language_name": "English",
|
|
83
|
+
"agent_prompt_language": "english",
|
|
84
|
+
"documentation_language": "en",
|
|
85
|
+
},
|
|
86
|
+
"user": {"name": "Developer", "selected_at": datetime.now().isoformat()},
|
|
87
|
+
"menu_system": {
|
|
88
|
+
"version": self.version,
|
|
89
|
+
"initialized_at": datetime.now().isoformat(),
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# Ensure config directory exists
|
|
94
|
+
config_path.parent.mkdir(parents=True, exist_ok=True)
|
|
95
|
+
|
|
96
|
+
# Save default configuration
|
|
97
|
+
config_path.write_text(json.dumps(default_config, indent=2, ensure_ascii=False), encoding="utf-8")
|
|
98
|
+
|
|
99
|
+
return default_config
|
|
100
|
+
|
|
101
|
+
def initialize_complete_project(
|
|
102
|
+
self,
|
|
103
|
+
language: str = None,
|
|
104
|
+
user_name: str = None,
|
|
105
|
+
domains: List[str] = None,
|
|
106
|
+
project_type: str = None,
|
|
107
|
+
optimization_enabled: bool = True,
|
|
108
|
+
) -> Dict[str, Any]:
|
|
109
|
+
"""
|
|
110
|
+
Initialize complete project with all modules.
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
language: Primary language for the project
|
|
114
|
+
user_name: User name for personalization
|
|
115
|
+
domains: List of domains to enable
|
|
116
|
+
project_type: Type of project (web_application, mobile_application, etc.)
|
|
117
|
+
optimization_enabled: Whether to run template optimization
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
Complete initialization results
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
initialization_result = {
|
|
124
|
+
"timestamp": datetime.now().isoformat(),
|
|
125
|
+
"project_root": str(self.project_root),
|
|
126
|
+
"modules_initialized": [],
|
|
127
|
+
"configuration_updates": {},
|
|
128
|
+
"created_files": [],
|
|
129
|
+
"optimization_results": None,
|
|
130
|
+
"success": True,
|
|
131
|
+
"errors": [],
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
try:
|
|
135
|
+
# Update project type if provided
|
|
136
|
+
if project_type:
|
|
137
|
+
self.config["project"]["type"] = project_type
|
|
138
|
+
|
|
139
|
+
# Step 1: Initialize language configuration
|
|
140
|
+
language_result = self.language_initializer.initialize_language_configuration(
|
|
141
|
+
language=language, user_name=user_name, domains=domains
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
initialization_result["modules_initialized"].append("language_initializer")
|
|
145
|
+
initialization_result["configuration_updates"]["language"] = language_result
|
|
146
|
+
|
|
147
|
+
# Step 2: Initialize documentation structure
|
|
148
|
+
docs_result = self.documentation_manager.initialize_documentation_structure()
|
|
149
|
+
|
|
150
|
+
initialization_result["modules_initialized"].append("documentation_manager")
|
|
151
|
+
initialization_result["configuration_updates"]["documentation"] = docs_result
|
|
152
|
+
initialization_result["created_files"].extend(docs_result.get("created_files", []))
|
|
153
|
+
|
|
154
|
+
# Step 3: Create multilingual documentation structure
|
|
155
|
+
multilingual_result = self.language_initializer.create_multilingual_documentation_structure(
|
|
156
|
+
language=language_result.get("language", "en")
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
initialization_result["configuration_updates"]["multilingual"] = multilingual_result
|
|
160
|
+
initialization_result["created_files"].extend(multilingual_result.get("created_directories", []))
|
|
161
|
+
|
|
162
|
+
# Step 4: Analyze and optimize templates (if enabled)
|
|
163
|
+
if optimization_enabled:
|
|
164
|
+
template_analysis = self.template_optimizer.analyze_project_templates()
|
|
165
|
+
|
|
166
|
+
# Apply optimizations if opportunities exist
|
|
167
|
+
optimization_opportunities = template_analysis.get("optimization_opportunities", [])
|
|
168
|
+
if optimization_opportunities:
|
|
169
|
+
optimization_result = self.template_optimizer.create_optimized_templates()
|
|
170
|
+
initialization_result["optimization_results"] = optimization_result
|
|
171
|
+
|
|
172
|
+
initialization_result["modules_initialized"].append("template_optimizer")
|
|
173
|
+
initialization_result["configuration_updates"]["template_analysis"] = template_analysis
|
|
174
|
+
|
|
175
|
+
# Step 5: Create benchmarks (optional)
|
|
176
|
+
if optimization_enabled:
|
|
177
|
+
benchmark_result = self.template_optimizer.benchmark_template_performance()
|
|
178
|
+
initialization_result["configuration_updates"]["benchmark"] = benchmark_result
|
|
179
|
+
|
|
180
|
+
# Update final configuration
|
|
181
|
+
self.config["menu_system"]["fully_initialized"] = True
|
|
182
|
+
self.config["menu_system"]["initialization_completed_at"] = datetime.now().isoformat()
|
|
183
|
+
self._save_config()
|
|
184
|
+
|
|
185
|
+
except Exception as e:
|
|
186
|
+
initialization_result["success"] = False
|
|
187
|
+
initialization_result["errors"].append(str(e))
|
|
188
|
+
|
|
189
|
+
return initialization_result
|
|
190
|
+
|
|
191
|
+
def generate_documentation_from_spec(self, spec_data: Dict[str, Any]) -> Dict[str, Any]:
|
|
192
|
+
"""
|
|
193
|
+
Generate comprehensive documentation from SPEC data.
|
|
194
|
+
|
|
195
|
+
Args:
|
|
196
|
+
spec_data: SPEC specification data
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
Documentation generation results
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
# Generate base documentation
|
|
203
|
+
docs_result = self.documentation_manager.generate_documentation_from_spec(spec_data)
|
|
204
|
+
|
|
205
|
+
# Localize documentation based on language settings
|
|
206
|
+
language = self.config.get("language", {}).get("conversation_language", "en")
|
|
207
|
+
|
|
208
|
+
if language != "en":
|
|
209
|
+
# Apply language-specific customizations
|
|
210
|
+
localized_docs = self._localize_documentation(docs_result, language)
|
|
211
|
+
docs_result["localized_documentation"] = localized_docs
|
|
212
|
+
|
|
213
|
+
return docs_result
|
|
214
|
+
|
|
215
|
+
def _localize_documentation(self, docs_result: Dict[str, Any], language: str) -> Dict[str, Any]:
|
|
216
|
+
"""Localize documentation content based on language."""
|
|
217
|
+
|
|
218
|
+
# This would apply language-specific formatting, terminology, and structure
|
|
219
|
+
# Implementation would be more sophisticated in practice
|
|
220
|
+
|
|
221
|
+
localized_docs = {
|
|
222
|
+
"language": language,
|
|
223
|
+
"localization_applied": True,
|
|
224
|
+
"modified_sections": [],
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return localized_docs
|
|
228
|
+
|
|
229
|
+
def optimize_project_templates(self, options: Dict[str, Any] = None) -> Dict[str, Any]:
|
|
230
|
+
"""
|
|
231
|
+
Optimize project templates with advanced analysis.
|
|
232
|
+
|
|
233
|
+
Args:
|
|
234
|
+
options: Optimization options
|
|
235
|
+
|
|
236
|
+
Returns:
|
|
237
|
+
Template optimization results
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
# Analyze current templates
|
|
241
|
+
analysis = self.template_optimizer.analyze_project_templates()
|
|
242
|
+
|
|
243
|
+
# Apply optimizations based on analysis
|
|
244
|
+
optimization_result = self.template_optimizer.create_optimized_templates(options)
|
|
245
|
+
|
|
246
|
+
# Create benchmarks for comparison
|
|
247
|
+
benchmark_result = self.template_optimizer.benchmark_template_performance()
|
|
248
|
+
|
|
249
|
+
return {
|
|
250
|
+
"analysis": analysis,
|
|
251
|
+
"optimization": optimization_result,
|
|
252
|
+
"benchmark": benchmark_result,
|
|
253
|
+
"timestamp": datetime.now().isoformat(),
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
def update_language_settings(self, language_updates: Dict[str, Any]) -> Dict[str, Any]:
|
|
257
|
+
"""
|
|
258
|
+
Update language configuration.
|
|
259
|
+
|
|
260
|
+
Args:
|
|
261
|
+
language_updates: Language configuration updates
|
|
262
|
+
|
|
263
|
+
Returns:
|
|
264
|
+
Update results
|
|
265
|
+
"""
|
|
266
|
+
|
|
267
|
+
# Update language configuration
|
|
268
|
+
update_result = self.language_initializer.update_language_settings(language_updates)
|
|
269
|
+
|
|
270
|
+
if update_result.get("success"):
|
|
271
|
+
# Reload configuration
|
|
272
|
+
self.config = self._load_or_create_config()
|
|
273
|
+
|
|
274
|
+
# Update documentation language if changed
|
|
275
|
+
doc_lang = language_updates.get("language.documentation_language")
|
|
276
|
+
if doc_lang:
|
|
277
|
+
# Update documentation structure for new language
|
|
278
|
+
multilingual_result = self.language_initializer.create_multilingual_documentation_structure(doc_lang)
|
|
279
|
+
update_result["documentation_updated"] = multilingual_result
|
|
280
|
+
|
|
281
|
+
return update_result
|
|
282
|
+
|
|
283
|
+
def get_project_status(self) -> Dict[str, Any]:
|
|
284
|
+
"""
|
|
285
|
+
Get comprehensive project status.
|
|
286
|
+
|
|
287
|
+
Returns:
|
|
288
|
+
Project status and metrics
|
|
289
|
+
"""
|
|
290
|
+
|
|
291
|
+
status = {
|
|
292
|
+
"timestamp": datetime.now().isoformat(),
|
|
293
|
+
"project_root": str(self.project_root),
|
|
294
|
+
"configuration": {
|
|
295
|
+
"project_name": self.config.get("project", {}).get("name", "Unknown"),
|
|
296
|
+
"project_type": self.config.get("project", {}).get("type", "unknown"),
|
|
297
|
+
"initialized_at": self.config.get("project", {}).get("initialized_at"),
|
|
298
|
+
"menu_system_version": self.config.get("menu_system", {}).get("version", "1.0.0"),
|
|
299
|
+
},
|
|
300
|
+
"modules": {
|
|
301
|
+
"documentation_manager": "initialized",
|
|
302
|
+
"language_initializer": "initialized",
|
|
303
|
+
"template_optimizer": "initialized",
|
|
304
|
+
},
|
|
305
|
+
"language_status": self.language_initializer.get_language_status(),
|
|
306
|
+
"documentation_status": self.documentation_manager.get_documentation_status(),
|
|
307
|
+
"template_analysis": None, # Will be populated on demand
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
# Check if fully initialized
|
|
311
|
+
status["fully_initialized"] = self.config.get("menu_system", {}).get("fully_initialized", False)
|
|
312
|
+
|
|
313
|
+
return status
|
|
314
|
+
|
|
315
|
+
def export_project_documentation(self, format_type: str = "markdown", language: str = None) -> Dict[str, Any]:
|
|
316
|
+
"""
|
|
317
|
+
Export project documentation in specified format.
|
|
318
|
+
|
|
319
|
+
Args:
|
|
320
|
+
format_type: Export format (markdown, html, pdf)
|
|
321
|
+
language: Target language for export
|
|
322
|
+
|
|
323
|
+
Returns:
|
|
324
|
+
Export results
|
|
325
|
+
"""
|
|
326
|
+
|
|
327
|
+
# Use specified language or default project language
|
|
328
|
+
if language is None:
|
|
329
|
+
language = self.config.get("language", {}).get("conversation_language", "en")
|
|
330
|
+
|
|
331
|
+
# Export documentation
|
|
332
|
+
export_result = self.documentation_manager.export_documentation(format_type)
|
|
333
|
+
|
|
334
|
+
# Apply language-specific customizations
|
|
335
|
+
export_result["language"] = language
|
|
336
|
+
export_result["localized"] = language != "en"
|
|
337
|
+
|
|
338
|
+
return export_result
|
|
339
|
+
|
|
340
|
+
def create_project_backup(self, backup_name: str = None) -> Dict[str, Any]:
|
|
341
|
+
"""
|
|
342
|
+
Create comprehensive project backup.
|
|
343
|
+
|
|
344
|
+
Args:
|
|
345
|
+
backup_name: Name for the backup
|
|
346
|
+
|
|
347
|
+
Returns:
|
|
348
|
+
Backup creation results
|
|
349
|
+
"""
|
|
350
|
+
|
|
351
|
+
if backup_name is None:
|
|
352
|
+
backup_name = f"project-backup-{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}"
|
|
353
|
+
|
|
354
|
+
backup_result = {
|
|
355
|
+
"backup_name": backup_name,
|
|
356
|
+
"timestamp": datetime.now().isoformat(),
|
|
357
|
+
"components": {},
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
# Backup templates
|
|
361
|
+
template_backup = self.template_optimizer._create_template_backup(f"{backup_name}-templates")
|
|
362
|
+
backup_result["components"]["templates"] = template_backup
|
|
363
|
+
|
|
364
|
+
# Backup configuration
|
|
365
|
+
config_backup_path = self.project_root / ".moai-backups" / backup_name / "config.json"
|
|
366
|
+
config_backup_path.parent.mkdir(parents=True, exist_ok=True)
|
|
367
|
+
config_backup_path.write_text(json.dumps(self.config, indent=2, ensure_ascii=False), encoding="utf-8")
|
|
368
|
+
|
|
369
|
+
backup_result["components"]["configuration"] = {
|
|
370
|
+
"success": True,
|
|
371
|
+
"backup_path": str(config_backup_path),
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
# Backup documentation if exists
|
|
375
|
+
docs_dir = self.project_root / "docs"
|
|
376
|
+
if docs_dir.exists():
|
|
377
|
+
import shutil
|
|
378
|
+
|
|
379
|
+
docs_backup_path = self.project_root / ".moai-backups" / backup_name / "docs"
|
|
380
|
+
if docs_backup_path.exists():
|
|
381
|
+
shutil.rmtree(docs_backup_path)
|
|
382
|
+
shutil.copytree(docs_dir, docs_backup_path)
|
|
383
|
+
|
|
384
|
+
backup_result["components"]["documentation"] = {
|
|
385
|
+
"success": True,
|
|
386
|
+
"backup_path": str(docs_backup_path),
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
backup_result["success"] = all(
|
|
390
|
+
component.get("success", False) for component in backup_result["components"].values()
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
return backup_result
|
|
394
|
+
|
|
395
|
+
def _save_config(self):
|
|
396
|
+
"""Save current configuration to file."""
|
|
397
|
+
|
|
398
|
+
config_path = self.project_root / ".moai/config/config.json"
|
|
399
|
+
config_path.parent.mkdir(parents=True, exist_ok=True)
|
|
400
|
+
|
|
401
|
+
config_path.write_text(json.dumps(self.config, indent=2, ensure_ascii=False), encoding="utf-8")
|
|
402
|
+
|
|
403
|
+
def get_integration_matrix(self) -> Dict[str, Any]:
|
|
404
|
+
"""
|
|
405
|
+
Get module integration matrix and workflow.
|
|
406
|
+
|
|
407
|
+
Returns:
|
|
408
|
+
Integration information and workflows
|
|
409
|
+
"""
|
|
410
|
+
|
|
411
|
+
return {
|
|
412
|
+
"modules": {
|
|
413
|
+
"documentation_manager": {
|
|
414
|
+
"description": "Manages project documentation generation and maintenance",
|
|
415
|
+
"integrates_with": ["language_initializer"],
|
|
416
|
+
"output_formats": ["markdown", "html", "pdf"],
|
|
417
|
+
"key_features": [
|
|
418
|
+
"template-based generation",
|
|
419
|
+
"multilingual support",
|
|
420
|
+
"SPEC integration",
|
|
421
|
+
],
|
|
422
|
+
},
|
|
423
|
+
"language_initializer": {
|
|
424
|
+
"description": "Handles language detection, configuration, and localization",
|
|
425
|
+
"integrates_with": ["documentation_manager"],
|
|
426
|
+
"supported_languages": ["en", "ko", "ja", "zh"],
|
|
427
|
+
"key_features": [
|
|
428
|
+
"auto-detection",
|
|
429
|
+
"locale management",
|
|
430
|
+
"agent prompt localization",
|
|
431
|
+
],
|
|
432
|
+
},
|
|
433
|
+
"template_optimizer": {
|
|
434
|
+
"description": "Analyzes and optimizes project templates for performance",
|
|
435
|
+
"integrates_with": [],
|
|
436
|
+
"optimization_types": ["size", "performance", "complexity"],
|
|
437
|
+
"key_features": [
|
|
438
|
+
"automated analysis",
|
|
439
|
+
"backup creation",
|
|
440
|
+
"benchmarking",
|
|
441
|
+
],
|
|
442
|
+
},
|
|
443
|
+
},
|
|
444
|
+
"workflows": {
|
|
445
|
+
"project_initialization": [
|
|
446
|
+
"language_initializer.initialize_language_configuration()",
|
|
447
|
+
"documentation_manager.initialize_documentation_structure()",
|
|
448
|
+
"language_initializer.create_multilingual_documentation_structure()",
|
|
449
|
+
"template_optimizer.analyze_project_templates()",
|
|
450
|
+
"template_optimizer.create_optimized_templates()",
|
|
451
|
+
],
|
|
452
|
+
"documentation_generation": [
|
|
453
|
+
"language_initializer.detect_project_language()",
|
|
454
|
+
"documentation_manager.generate_documentation_from_spec()",
|
|
455
|
+
"language_initializer.localize_agent_prompts()",
|
|
456
|
+
"documentation_manager.export_documentation()",
|
|
457
|
+
],
|
|
458
|
+
"template_optimization": [
|
|
459
|
+
"template_optimizer.analyze_project_templates()",
|
|
460
|
+
"template_optimizer.create_optimized_templates()",
|
|
461
|
+
"template_optimizer.benchmark_template_performance()",
|
|
462
|
+
"template_optimizer._create_template_backup()",
|
|
463
|
+
],
|
|
464
|
+
},
|
|
465
|
+
"data_flow": {
|
|
466
|
+
"configuration": "Shared across all modules via config.json",
|
|
467
|
+
"language_settings": "language_initializer → documentation_manager",
|
|
468
|
+
"template_analysis": "template_optimizer (independent)",
|
|
469
|
+
"documentation_output": "documentation_manager → multiple formats",
|
|
470
|
+
},
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
# Convenience functions for easy access
|
|
475
|
+
def initialize_project(project_root: str = None, **kwargs) -> Dict[str, Any]:
|
|
476
|
+
"""
|
|
477
|
+
Convenience function to initialize a complete MoAI project.
|
|
478
|
+
|
|
479
|
+
Args:
|
|
480
|
+
project_root: Root directory of the project
|
|
481
|
+
**kwargs: Additional initialization parameters
|
|
482
|
+
|
|
483
|
+
Returns:
|
|
484
|
+
Initialization results
|
|
485
|
+
"""
|
|
486
|
+
|
|
487
|
+
project = MoaiMenuProject(project_root)
|
|
488
|
+
return project.initialize_complete_project(**kwargs)
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
def generate_docs(spec_data: Dict[str, Any], project_root: str = None) -> Dict[str, Any]:
|
|
492
|
+
"""
|
|
493
|
+
Convenience function to generate documentation from SPEC.
|
|
494
|
+
|
|
495
|
+
Args:
|
|
496
|
+
spec_data: SPEC specification data
|
|
497
|
+
project_root: Root directory of the project
|
|
498
|
+
|
|
499
|
+
Returns:
|
|
500
|
+
Documentation generation results
|
|
501
|
+
"""
|
|
502
|
+
|
|
503
|
+
project = MoaiMenuProject(project_root)
|
|
504
|
+
return project.generate_documentation_from_spec(spec_data)
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
def optimize_templates(project_root: str = None, **options) -> Dict[str, Any]:
|
|
508
|
+
"""
|
|
509
|
+
Convenience function to optimize project templates.
|
|
510
|
+
|
|
511
|
+
Args:
|
|
512
|
+
project_root: Root directory of the project
|
|
513
|
+
**options: Optimization options
|
|
514
|
+
|
|
515
|
+
Returns:
|
|
516
|
+
Template optimization results
|
|
517
|
+
"""
|
|
518
|
+
|
|
519
|
+
project = MoaiMenuProject(project_root)
|
|
520
|
+
return project.optimize_project_templates(options)
|