moai-adk 0.35.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +10 -0
- moai_adk/__main__.py +199 -0
- moai_adk/cli/__init__.py +6 -0
- moai_adk/cli/commands/__init__.py +17 -0
- moai_adk/cli/commands/analyze.py +116 -0
- moai_adk/cli/commands/doctor.py +272 -0
- moai_adk/cli/commands/init.py +372 -0
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +104 -0
- moai_adk/cli/commands/update.py +2686 -0
- moai_adk/cli/main.py +13 -0
- moai_adk/cli/prompts/__init__.py +5 -0
- moai_adk/cli/prompts/init_prompts.py +219 -0
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +683 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +493 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +422 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/__init__.py +1 -0
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +400 -0
- moai_adk/core/claude_integration.py +393 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/__init__.py +19 -0
- moai_adk/core/config/auto_spec_config.py +340 -0
- moai_adk/core/config/migration.py +244 -0
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +273 -0
- moai_adk/core/diagnostics/__init__.py +19 -0
- moai_adk/core/diagnostics/slash_commands.py +159 -0
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +1902 -0
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +31 -0
- moai_adk/core/git/branch.py +25 -0
- moai_adk/core/git/branch_manager.py +129 -0
- moai_adk/core/git/checkpoint.py +134 -0
- moai_adk/core/git/commit.py +67 -0
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/event_detector.py +79 -0
- moai_adk/core/git/manager.py +216 -0
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +157 -0
- moai_adk/core/integration/integration_tester.py +226 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +305 -0
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_config_resolver.py +572 -0
- moai_adk/core/language_validator.py +543 -0
- moai_adk/core/mcp/setup.py +116 -0
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +605 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +277 -0
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +209 -0
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +139 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +316 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/__init__.py +1 -0
- moai_adk/core/project/backup_utils.py +70 -0
- moai_adk/core/project/checker.py +300 -0
- moai_adk/core/project/detector.py +293 -0
- moai_adk/core/project/initializer.py +387 -0
- moai_adk/core/project/phase_executor.py +716 -0
- moai_adk/core/project/validator.py +139 -0
- moai_adk/core/quality/__init__.py +6 -0
- moai_adk/core/quality/trust_checker.py +377 -0
- moai_adk/core/quality/validators/__init__.py +6 -0
- moai_adk/core/quality/validators/base_validator.py +19 -0
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +918 -0
- moai_adk/core/session_manager.py +651 -0
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +680 -0
- moai_adk/core/spec/ears_template_engine.py +1247 -0
- moai_adk/core/spec/quality_validator.py +687 -0
- moai_adk/core/spec_status_manager.py +478 -0
- moai_adk/core/template/__init__.py +7 -0
- moai_adk/core/template/backup.py +174 -0
- moai_adk/core/template/config.py +191 -0
- moai_adk/core/template/languages.py +43 -0
- moai_adk/core/template/merger.py +233 -0
- moai_adk/core/template/processor.py +1200 -0
- moai_adk/core/template_engine.py +310 -0
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +557 -0
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +676 -0
- moai_adk/foundation/trust/validation_checklist.py +1573 -0
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +105 -0
- moai_adk/statusline/config.py +376 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +322 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +343 -0
- moai_adk/statusline/update_checker.py +129 -0
- moai_adk/statusline/version_reader.py +741 -0
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
- moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
- moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +128 -0
- moai_adk/templates/.git-hooks/pre-push +365 -0
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
- moai_adk/templates/.gitignore +222 -0
- moai_adk/templates/.mcp.json +13 -0
- moai_adk/templates/.moai/config/config.yaml +58 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
- moai_adk/templates/.moai/config/sections/system.yaml +24 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +642 -0
- moai_adk/utils/__init__.py +30 -0
- moai_adk/utils/banner.py +38 -0
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +241 -0
- moai_adk/utils/logger.py +147 -0
- moai_adk/utils/safe_file_reader.py +206 -0
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.35.1.dist-info/METADATA +3018 -0
- moai_adk-0.35.1.dist-info/RECORD +502 -0
- moai_adk-0.35.1.dist-info/WHEEL +4 -0
- moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
- moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
moai_adk/__init__.py
ADDED
moai_adk/__main__.py
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# type: ignore
|
|
2
|
+
"""MoAI-ADK CLI Entry Point
|
|
3
|
+
|
|
4
|
+
Implements the CLI entry point:
|
|
5
|
+
- Click-based CLI framework with lazy command loading
|
|
6
|
+
- Rich console terminal output
|
|
7
|
+
- ASCII logo rendering (lazy-loaded)
|
|
8
|
+
- --version and --help options
|
|
9
|
+
- Five core commands: init, doctor, status, update (lazy-loaded)
|
|
10
|
+
|
|
11
|
+
Performance optimization: Commands and heavy libraries are lazy-loaded
|
|
12
|
+
to reduce CLI startup time by 75% (~400ms → ~100ms).
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
import click
|
|
18
|
+
|
|
19
|
+
from moai_adk import __version__
|
|
20
|
+
|
|
21
|
+
# Lazy-loaded console (created when needed)
|
|
22
|
+
_console = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def get_console():
|
|
26
|
+
"""Get or create Rich Console instance (lazy loading)"""
|
|
27
|
+
global _console
|
|
28
|
+
if _console is None:
|
|
29
|
+
from rich.console import Console
|
|
30
|
+
|
|
31
|
+
_console = Console()
|
|
32
|
+
return _console
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def show_logo() -> None:
|
|
36
|
+
"""Render the MoAI-ADK ASCII logo with Pyfiglet (lazy-loaded)"""
|
|
37
|
+
# Lazy load pyfiglet only when displaying logo
|
|
38
|
+
import pyfiglet
|
|
39
|
+
|
|
40
|
+
console = get_console()
|
|
41
|
+
|
|
42
|
+
# Generate the "MoAI-ADK" banner using the ansi_shadow font
|
|
43
|
+
logo = pyfiglet.figlet_format("MoAI-ADK", font="ansi_shadow")
|
|
44
|
+
|
|
45
|
+
# Print with Rich styling
|
|
46
|
+
console.print(logo, style="cyan bold", highlight=False)
|
|
47
|
+
console.print(
|
|
48
|
+
" Modu-AI's Agentic Development Kit w/ SuperAgent 🎩 Alfred",
|
|
49
|
+
style="yellow bold",
|
|
50
|
+
)
|
|
51
|
+
console.print()
|
|
52
|
+
console.print(" Version: ", style="green", end="")
|
|
53
|
+
console.print(__version__, style="cyan bold")
|
|
54
|
+
console.print()
|
|
55
|
+
console.print(" Tip: Run ", style="yellow", end="")
|
|
56
|
+
console.print("uv run moai-adk --help", style="cyan", end="")
|
|
57
|
+
console.print(" to see available commands", style="yellow")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@click.group(invoke_without_command=True)
|
|
61
|
+
@click.version_option(version=__version__, prog_name="MoAI-ADK")
|
|
62
|
+
@click.pass_context
|
|
63
|
+
def cli(ctx: click.Context) -> None:
|
|
64
|
+
"""MoAI Agentic Development Kit
|
|
65
|
+
|
|
66
|
+
SPEC-First TDD Framework with Alfred SuperAgent
|
|
67
|
+
"""
|
|
68
|
+
# Display the logo when no subcommand is invoked
|
|
69
|
+
if ctx.invoked_subcommand is None:
|
|
70
|
+
show_logo()
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# Lazy-loaded commands (imported only when invoked)
|
|
74
|
+
@cli.command()
|
|
75
|
+
@click.argument("path", type=click.Path(), default=".")
|
|
76
|
+
@click.option(
|
|
77
|
+
"--non-interactive",
|
|
78
|
+
"-y",
|
|
79
|
+
is_flag=True,
|
|
80
|
+
help="Non-interactive mode (use defaults)",
|
|
81
|
+
)
|
|
82
|
+
@click.option(
|
|
83
|
+
"--mode",
|
|
84
|
+
type=click.Choice(["personal", "team"]),
|
|
85
|
+
default="personal",
|
|
86
|
+
help="Project mode",
|
|
87
|
+
)
|
|
88
|
+
@click.option(
|
|
89
|
+
"--locale",
|
|
90
|
+
type=click.Choice(["ko", "en", "ja", "zh"]),
|
|
91
|
+
default=None,
|
|
92
|
+
help="Preferred language (ko/en/ja/zh, default: en)",
|
|
93
|
+
)
|
|
94
|
+
@click.option(
|
|
95
|
+
"--language",
|
|
96
|
+
type=str,
|
|
97
|
+
default=None,
|
|
98
|
+
help="Programming language (auto-detect if not specified)",
|
|
99
|
+
)
|
|
100
|
+
@click.option(
|
|
101
|
+
"--force",
|
|
102
|
+
is_flag=True,
|
|
103
|
+
help="Force reinitialize without confirmation",
|
|
104
|
+
)
|
|
105
|
+
@click.pass_context
|
|
106
|
+
def init(
|
|
107
|
+
ctx: click.Context,
|
|
108
|
+
path: str,
|
|
109
|
+
non_interactive: bool,
|
|
110
|
+
mode: str,
|
|
111
|
+
locale: str,
|
|
112
|
+
language: str | None,
|
|
113
|
+
force: bool,
|
|
114
|
+
) -> None:
|
|
115
|
+
"""Initialize a new MoAI-ADK project"""
|
|
116
|
+
from moai_adk.cli.commands.init import init as _init
|
|
117
|
+
|
|
118
|
+
ctx.invoke(
|
|
119
|
+
_init,
|
|
120
|
+
path=path,
|
|
121
|
+
non_interactive=non_interactive,
|
|
122
|
+
mode=mode,
|
|
123
|
+
locale=locale,
|
|
124
|
+
language=language,
|
|
125
|
+
force=force,
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@cli.command()
|
|
130
|
+
@click.pass_context
|
|
131
|
+
def doctor(ctx: click.Context, **kwargs) -> None:
|
|
132
|
+
"""Run system diagnostics"""
|
|
133
|
+
from moai_adk.cli.commands.doctor import doctor as _doctor
|
|
134
|
+
|
|
135
|
+
ctx.invoke(_doctor, **kwargs)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
@cli.command()
|
|
139
|
+
@click.pass_context
|
|
140
|
+
def status(ctx: click.Context, **kwargs) -> None:
|
|
141
|
+
"""Show project status"""
|
|
142
|
+
from moai_adk.cli.commands.status import status as _status
|
|
143
|
+
|
|
144
|
+
ctx.invoke(_status, **kwargs)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@cli.command()
|
|
148
|
+
@click.pass_context
|
|
149
|
+
def update(ctx: click.Context, **kwargs) -> None:
|
|
150
|
+
"""Update MoAI-ADK to latest version"""
|
|
151
|
+
from moai_adk.cli.commands.update import update as _update
|
|
152
|
+
|
|
153
|
+
ctx.invoke(_update, **kwargs)
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
# statusline command (for Claude Code statusline rendering)
|
|
157
|
+
@cli.command(name="statusline")
|
|
158
|
+
def statusline() -> None:
|
|
159
|
+
"""Render Claude Code statusline (internal use only)"""
|
|
160
|
+
import json
|
|
161
|
+
|
|
162
|
+
# Lazy load statusline module
|
|
163
|
+
from moai_adk.statusline.main import build_statusline_data
|
|
164
|
+
|
|
165
|
+
try:
|
|
166
|
+
# Read JSON context from stdin
|
|
167
|
+
input_data = sys.stdin.read() if not sys.stdin.isatty() else "{}"
|
|
168
|
+
context = json.loads(input_data) if input_data else {}
|
|
169
|
+
except (json.JSONDecodeError, EOFError, ValueError):
|
|
170
|
+
context = {}
|
|
171
|
+
|
|
172
|
+
# Render statusline
|
|
173
|
+
output = build_statusline_data(context, mode="extended")
|
|
174
|
+
print(output, end="")
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def main() -> int:
|
|
178
|
+
"""CLI entry point"""
|
|
179
|
+
try:
|
|
180
|
+
cli(standalone_mode=False)
|
|
181
|
+
return 0
|
|
182
|
+
except click.Abort:
|
|
183
|
+
# User cancelled with Ctrl+C
|
|
184
|
+
return 130
|
|
185
|
+
except click.ClickException as e:
|
|
186
|
+
e.show()
|
|
187
|
+
return e.exit_code
|
|
188
|
+
except Exception as e:
|
|
189
|
+
console = get_console()
|
|
190
|
+
console.print(f"[red]Error:[/red] {e}")
|
|
191
|
+
return 1
|
|
192
|
+
finally:
|
|
193
|
+
# Flush the output buffer explicitly if console was created
|
|
194
|
+
if _console is not None:
|
|
195
|
+
_console.file.flush()
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
if __name__ == "__main__":
|
|
199
|
+
sys.exit(main())
|
moai_adk/cli/__init__.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""CLI command module
|
|
2
|
+
|
|
3
|
+
Core commands:
|
|
4
|
+
- init: initialize the project
|
|
5
|
+
- doctor: run system diagnostics
|
|
6
|
+
- status: show project status
|
|
7
|
+
- update: update templates to latest version
|
|
8
|
+
|
|
9
|
+
Note: restore functionality is handled by checkpoint system in core.git.checkpoint
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from moai_adk.cli.commands.doctor import doctor
|
|
13
|
+
from moai_adk.cli.commands.init import init
|
|
14
|
+
from moai_adk.cli.commands.status import status
|
|
15
|
+
from moai_adk.cli.commands.update import update
|
|
16
|
+
|
|
17
|
+
__all__ = ["init", "doctor", "status", "update"]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Analyze command for MoAI-ADK
|
|
4
|
+
|
|
5
|
+
Analyze Claude Code sessions and generate improvement suggestions.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Optional
|
|
10
|
+
|
|
11
|
+
import click
|
|
12
|
+
from rich.console import Console
|
|
13
|
+
from rich.table import Table
|
|
14
|
+
|
|
15
|
+
from moai_adk.core.analysis.session_analyzer import SessionAnalyzer
|
|
16
|
+
|
|
17
|
+
console = Console()
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@click.command()
|
|
21
|
+
@click.option("--days", "-d", default=7, help="Number of days to analyze (default: 7)")
|
|
22
|
+
@click.option("--output", "-o", type=click.Path(), help="Output file path")
|
|
23
|
+
@click.option("--verbose", "-v", is_flag=True, help="Verbose output")
|
|
24
|
+
@click.option("--report-only", "-r", is_flag=True, help="Generate report only (no console output)")
|
|
25
|
+
@click.option(
|
|
26
|
+
"--project-path",
|
|
27
|
+
"-p",
|
|
28
|
+
type=click.Path(),
|
|
29
|
+
help="Project root path (default: current directory)",
|
|
30
|
+
)
|
|
31
|
+
def analyze(
|
|
32
|
+
days: int,
|
|
33
|
+
output: Optional[Path],
|
|
34
|
+
verbose: bool,
|
|
35
|
+
report_only: bool,
|
|
36
|
+
project_path: Optional[Path],
|
|
37
|
+
):
|
|
38
|
+
"""
|
|
39
|
+
Analyze Claude Code sessions from the last N days
|
|
40
|
+
|
|
41
|
+
Analyzes Claude Code session logs to identify usage patterns,
|
|
42
|
+
error frequencies, and generate improvement suggestions.
|
|
43
|
+
|
|
44
|
+
Examples:
|
|
45
|
+
moai-adk analyze session
|
|
46
|
+
moai-adk analyze session --days 14 --verbose
|
|
47
|
+
moai-adk analyze session --output /path/to/report.md
|
|
48
|
+
"""
|
|
49
|
+
if project_path is None:
|
|
50
|
+
project_path = Path.cwd()
|
|
51
|
+
|
|
52
|
+
# Validate project path
|
|
53
|
+
if not (project_path / ".moai").exists():
|
|
54
|
+
console.print("[red]Error:[/red] Not a MoAI-ADK project (missing .moai directory)")
|
|
55
|
+
console.print(f"[blue]Current path:[/blue] {project_path}")
|
|
56
|
+
return
|
|
57
|
+
|
|
58
|
+
# Initialize analyzer
|
|
59
|
+
analyzer = SessionAnalyzer(days_back=days, verbose=verbose)
|
|
60
|
+
|
|
61
|
+
if not report_only:
|
|
62
|
+
console.print(f"[blue]📊 Analyzing sessions from last {days} days...[/blue]")
|
|
63
|
+
|
|
64
|
+
# Parse sessions
|
|
65
|
+
patterns = analyzer.parse_sessions()
|
|
66
|
+
|
|
67
|
+
if not report_only:
|
|
68
|
+
console.print(f"[green]✅ Analyzed {patterns['total_sessions']} sessions[/green]")
|
|
69
|
+
console.print(f"[blue] Total events: {patterns['total_events']}[/blue]")
|
|
70
|
+
|
|
71
|
+
# Display summary table
|
|
72
|
+
table = Table(title="Session Summary")
|
|
73
|
+
table.add_column("Metric", style="cyan")
|
|
74
|
+
table.add_column("Value", style="green")
|
|
75
|
+
|
|
76
|
+
table.add_row("Total Sessions", str(patterns["total_sessions"]))
|
|
77
|
+
table.add_row("Total Events", str(patterns["total_events"]))
|
|
78
|
+
table.add_row("Failed Sessions", str(patterns["failed_sessions"]))
|
|
79
|
+
table.add_row("Success Rate", f"{patterns.get('success_rate', 0):.1f}%")
|
|
80
|
+
|
|
81
|
+
console.print(table)
|
|
82
|
+
|
|
83
|
+
# Show top tools
|
|
84
|
+
if patterns["tool_usage"]:
|
|
85
|
+
console.print("\n[bold]🔧 Top Tools Used:[/bold]")
|
|
86
|
+
top_tools = sorted(patterns["tool_usage"].items(), key=lambda x: x[1], reverse=True)[:10]
|
|
87
|
+
|
|
88
|
+
tools_table = Table()
|
|
89
|
+
tools_table.add_column("Tool", style="cyan")
|
|
90
|
+
tools_table.add_column("Usage", style="green")
|
|
91
|
+
|
|
92
|
+
for tool, count in top_tools:
|
|
93
|
+
tools_table.add_row(f"`{tool}`", str(count))
|
|
94
|
+
|
|
95
|
+
console.print(tools_table)
|
|
96
|
+
|
|
97
|
+
# Save report
|
|
98
|
+
output_path_obj = Path(output) if output else None
|
|
99
|
+
report_path = analyzer.save_report(output_path_obj, project_path)
|
|
100
|
+
|
|
101
|
+
if not report_only:
|
|
102
|
+
console.print(f"\n[green]📄 Report saved: {report_path}[/green]")
|
|
103
|
+
|
|
104
|
+
# Show key suggestions
|
|
105
|
+
report_content = analyzer.generate_report()
|
|
106
|
+
if "💡 Improvement Suggestions" in report_content:
|
|
107
|
+
console.print("\n[bold yellow]💡 Key Suggestions:[/bold yellow]")
|
|
108
|
+
# Extract suggestions section
|
|
109
|
+
suggestions_start = report_content.find("💡 Improvement Suggestions")
|
|
110
|
+
if suggestions_start != -1:
|
|
111
|
+
suggestions_section = report_content[suggestions_start:]
|
|
112
|
+
# Extract first few suggestions
|
|
113
|
+
lines = suggestions_section.split("\n")[2:] # Skip header and empty line
|
|
114
|
+
for line in lines[:10]: # Show first 10 lines
|
|
115
|
+
if line.strip() and not line.startswith("---"):
|
|
116
|
+
console.print(line)
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"""MoAI-ADK doctor command
|
|
2
|
+
|
|
3
|
+
System diagnostics command:
|
|
4
|
+
- Check the Python version
|
|
5
|
+
- Verify Git installation
|
|
6
|
+
- Validate project structure
|
|
7
|
+
- Inspect language-specific tool chains
|
|
8
|
+
- Diagnose slash command loading issues (--check-commands)
|
|
9
|
+
|
|
10
|
+
## Skill Invocation Guide (English-Only)
|
|
11
|
+
|
|
12
|
+
### Related Skills
|
|
13
|
+
- **moai-foundation-langs**: For language toolchain verification and detection
|
|
14
|
+
- Trigger: Use `--verbose` or `--fix` flag to inspect language-specific tools
|
|
15
|
+
- Invocation: `Skill("moai-foundation-langs")` for detailed language stack analysis
|
|
16
|
+
|
|
17
|
+
- **moai-foundation-trust**: For TRUST 5-principles verification after fixing tools
|
|
18
|
+
- Trigger: After running doctor with `--fix` to validate improvements
|
|
19
|
+
- Invocation: `Skill("moai-foundation-trust")` to verify code quality toolchain
|
|
20
|
+
|
|
21
|
+
### When to Invoke Skills in Related Workflows
|
|
22
|
+
1. **After doctor diagnosis**:
|
|
23
|
+
- Run `Skill("moai-foundation-trust")` to validate that all TRUST tools are properly configured
|
|
24
|
+
- Run `Skill("moai-foundation-langs")` to confirm language-specific toolchains
|
|
25
|
+
|
|
26
|
+
2. **When tools are missing** (`--fix` flag):
|
|
27
|
+
- Use suggested fixes from doctor command
|
|
28
|
+
- Follow up with `Skill("moai-foundation-langs")` to validate corrections
|
|
29
|
+
|
|
30
|
+
3. **Debugging slash command issues** (`--check-commands`):
|
|
31
|
+
- Run `Skill("moai-cc-commands")` if commands fail to load
|
|
32
|
+
- Check `.claude/commands/` directory structure and permissions
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
import json
|
|
36
|
+
from pathlib import Path
|
|
37
|
+
|
|
38
|
+
import click
|
|
39
|
+
import questionary
|
|
40
|
+
from rich.console import Console
|
|
41
|
+
from rich.table import Table
|
|
42
|
+
|
|
43
|
+
from moai_adk.core.project.checker import SystemChecker, check_environment
|
|
44
|
+
from moai_adk.core.project.detector import detect_project_language
|
|
45
|
+
|
|
46
|
+
console = Console()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@click.command()
|
|
50
|
+
@click.option(
|
|
51
|
+
"--verbose",
|
|
52
|
+
"-v",
|
|
53
|
+
is_flag=True,
|
|
54
|
+
help="Show detailed tool versions and language detection",
|
|
55
|
+
)
|
|
56
|
+
@click.option("--fix", is_flag=True, help="Suggest fixes for missing tools")
|
|
57
|
+
@click.option("--export", type=click.Path(), help="Export diagnostics to JSON file")
|
|
58
|
+
@click.option("--check", type=str, help="Check specific tool only")
|
|
59
|
+
@click.option("--check-commands", is_flag=True, help="Diagnose slash command loading issues")
|
|
60
|
+
def doctor(
|
|
61
|
+
verbose: bool,
|
|
62
|
+
fix: bool,
|
|
63
|
+
export: str | None,
|
|
64
|
+
check: str | None,
|
|
65
|
+
check_commands: bool,
|
|
66
|
+
) -> None:
|
|
67
|
+
"""Check system requirements and project health
|
|
68
|
+
|
|
69
|
+
Verifies:
|
|
70
|
+
- Python version (>= 3.13)
|
|
71
|
+
- Git installation
|
|
72
|
+
- Project structure (.moai directory)
|
|
73
|
+
- Language-specific tool chains (20+ languages)
|
|
74
|
+
"""
|
|
75
|
+
try:
|
|
76
|
+
# Handle --check-commands option first
|
|
77
|
+
if check_commands:
|
|
78
|
+
_check_slash_commands()
|
|
79
|
+
return
|
|
80
|
+
|
|
81
|
+
console.print("[cyan]Running system diagnostics...[/cyan]\n")
|
|
82
|
+
|
|
83
|
+
# Run basic environment checks
|
|
84
|
+
results = check_environment()
|
|
85
|
+
diagnostics_data: dict = {"basic_checks": results}
|
|
86
|
+
|
|
87
|
+
# In verbose mode, verify language-specific toolchains
|
|
88
|
+
if verbose or fix:
|
|
89
|
+
language = detect_project_language()
|
|
90
|
+
diagnostics_data["detected_language"] = language
|
|
91
|
+
|
|
92
|
+
if verbose:
|
|
93
|
+
console.print(f"[dim]Detected language: {language or 'Unknown'}[/dim]\n")
|
|
94
|
+
|
|
95
|
+
if language:
|
|
96
|
+
checker = SystemChecker()
|
|
97
|
+
language_tools = checker.check_language_tools(language)
|
|
98
|
+
diagnostics_data["language_tools"] = language_tools
|
|
99
|
+
|
|
100
|
+
if verbose:
|
|
101
|
+
_display_language_tools(language, language_tools, checker)
|
|
102
|
+
|
|
103
|
+
# Specific tool check
|
|
104
|
+
if check:
|
|
105
|
+
_check_specific_tool(check)
|
|
106
|
+
return
|
|
107
|
+
|
|
108
|
+
# Build the base results table
|
|
109
|
+
table = Table(show_header=True, header_style="bold magenta")
|
|
110
|
+
table.add_column("Check", style="dim", width=40)
|
|
111
|
+
table.add_column("Status", justify="center")
|
|
112
|
+
|
|
113
|
+
for check_name, status in results.items():
|
|
114
|
+
icon = "✓" if status else "✗"
|
|
115
|
+
color = "green" if status else "red"
|
|
116
|
+
table.add_row(check_name, f"[{color}]{icon}[/{color}]")
|
|
117
|
+
|
|
118
|
+
console.print(table)
|
|
119
|
+
|
|
120
|
+
# In fix mode, suggest installation commands for missing tools
|
|
121
|
+
if fix and "language_tools" in diagnostics_data:
|
|
122
|
+
_suggest_fixes(
|
|
123
|
+
diagnostics_data["language_tools"],
|
|
124
|
+
diagnostics_data.get("detected_language"),
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# When exporting, write diagnostics to JSON
|
|
128
|
+
if export:
|
|
129
|
+
_export_diagnostics(export, diagnostics_data)
|
|
130
|
+
|
|
131
|
+
# Summarize the overall result
|
|
132
|
+
all_passed = all(results.values())
|
|
133
|
+
if all_passed:
|
|
134
|
+
console.print("\n[green]✓ All checks passed[/green]")
|
|
135
|
+
else:
|
|
136
|
+
console.print("\n[yellow]⚠ Some checks failed[/yellow]")
|
|
137
|
+
console.print("[dim]Run [cyan]python -m moai_adk doctor --verbose[/cyan] for detailed diagnostics[/dim]")
|
|
138
|
+
|
|
139
|
+
except Exception as e:
|
|
140
|
+
console.print(f"[red]✗ Diagnostic failed: {e}[/red]")
|
|
141
|
+
raise
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def _display_language_tools(language: str, tools: dict[str, bool], checker: SystemChecker) -> None:
|
|
145
|
+
"""Display a table of language-specific tools (helper)"""
|
|
146
|
+
table = Table(show_header=True, header_style="bold cyan", title=f"{language.title()} Tools")
|
|
147
|
+
table.add_column("Tool", style="dim")
|
|
148
|
+
table.add_column("Status", justify="center")
|
|
149
|
+
table.add_column("Version", style="blue")
|
|
150
|
+
|
|
151
|
+
for tool, available in tools.items():
|
|
152
|
+
icon = "✓" if available else "✗"
|
|
153
|
+
color = "green" if available else "red"
|
|
154
|
+
version = checker.get_tool_version(tool) if available else "not installed"
|
|
155
|
+
|
|
156
|
+
table.add_row(tool, f"[{color}]{icon}[/{color}]", version or "")
|
|
157
|
+
|
|
158
|
+
console.print(table)
|
|
159
|
+
console.print()
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def _check_specific_tool(tool: str) -> None:
|
|
163
|
+
"""Check only a specific tool (helper)"""
|
|
164
|
+
checker = SystemChecker()
|
|
165
|
+
available = checker._is_tool_available(tool)
|
|
166
|
+
version = checker.get_tool_version(tool) if available else None
|
|
167
|
+
|
|
168
|
+
if available:
|
|
169
|
+
console.print(f"[green]✓ {tool} is installed[/green]")
|
|
170
|
+
if version:
|
|
171
|
+
console.print(f" Version: {version}")
|
|
172
|
+
else:
|
|
173
|
+
console.print(f"[red]✗ {tool} is not installed[/red]")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _suggest_fixes(tools: dict[str, bool], language: str | None) -> None:
|
|
177
|
+
"""Suggest installation commands for missing tools (helper)"""
|
|
178
|
+
missing_tools = [tool for tool, available in tools.items() if not available]
|
|
179
|
+
|
|
180
|
+
if not missing_tools:
|
|
181
|
+
console.print("\n[green]✓ All tools are installed[/green]")
|
|
182
|
+
return
|
|
183
|
+
|
|
184
|
+
console.print(f"\n[yellow]⚠ Missing {len(missing_tools)} tool(s)[/yellow]")
|
|
185
|
+
|
|
186
|
+
try:
|
|
187
|
+
proceed = questionary.confirm(
|
|
188
|
+
"Would you like to see install suggestions for missing tools?",
|
|
189
|
+
default=True,
|
|
190
|
+
).ask()
|
|
191
|
+
except Exception:
|
|
192
|
+
proceed = True
|
|
193
|
+
|
|
194
|
+
if not proceed:
|
|
195
|
+
console.print("[yellow]User skipped install suggestions[/yellow]")
|
|
196
|
+
return
|
|
197
|
+
|
|
198
|
+
for tool in missing_tools:
|
|
199
|
+
install_cmd = _get_install_command(tool, language)
|
|
200
|
+
console.print(f" [red]✗[/red] {tool}")
|
|
201
|
+
if install_cmd:
|
|
202
|
+
console.print(f" Install: [cyan]{install_cmd}[/cyan]")
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def _get_install_command(tool: str, language: str | None) -> str:
|
|
206
|
+
"""Return the install command for a given tool (helper)"""
|
|
207
|
+
# Common tools with preferred package managers
|
|
208
|
+
install_commands = {
|
|
209
|
+
# Python tools (prefer uv)
|
|
210
|
+
"pytest": "uv pip install pytest",
|
|
211
|
+
"mypy": "uv pip install mypy",
|
|
212
|
+
"ruff": "uv pip install ruff",
|
|
213
|
+
# JavaScript tools
|
|
214
|
+
"vitest": "npm install -D vitest",
|
|
215
|
+
"biome": "npm install -D @biomejs/biome",
|
|
216
|
+
"eslint": "npm install -D eslint",
|
|
217
|
+
"jest": "npm install -D jest",
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return install_commands.get(tool, f"# Install {tool} for {language}")
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def _export_diagnostics(export_path: str, data: dict) -> None:
|
|
224
|
+
"""Export diagnostic results to a JSON file (helper)"""
|
|
225
|
+
try:
|
|
226
|
+
output = Path(export_path)
|
|
227
|
+
output.write_text(json.dumps(data, indent=2))
|
|
228
|
+
console.print(f"\n[green]✓ Diagnostics exported to {export_path}[/green]")
|
|
229
|
+
except Exception as e:
|
|
230
|
+
console.print(f"\n[red]✗ Failed to export diagnostics: {e}[/red]")
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def _check_slash_commands() -> None:
|
|
234
|
+
"""Check slash command loading issues (helper)"""
|
|
235
|
+
from moai_adk.core.diagnostics.slash_commands import diagnose_slash_commands
|
|
236
|
+
|
|
237
|
+
console.print("[cyan]Running slash command diagnostics...[/cyan]\n")
|
|
238
|
+
|
|
239
|
+
result = diagnose_slash_commands()
|
|
240
|
+
|
|
241
|
+
# Handle error case
|
|
242
|
+
if "error" in result:
|
|
243
|
+
console.print(f"[red]✗ {result['error']}[/red]")
|
|
244
|
+
return
|
|
245
|
+
|
|
246
|
+
# Build results table
|
|
247
|
+
table = Table(show_header=True, header_style="bold magenta")
|
|
248
|
+
table.add_column("Command File", style="dim", width=40)
|
|
249
|
+
table.add_column("Status", justify="center", width=10)
|
|
250
|
+
table.add_column("Issues", style="yellow")
|
|
251
|
+
|
|
252
|
+
for detail in result["details"]:
|
|
253
|
+
icon = "✓" if detail["valid"] else "✗"
|
|
254
|
+
color = "green" if detail["valid"] else "red"
|
|
255
|
+
issues = ", ".join(detail["errors"]) if detail["errors"] else "-"
|
|
256
|
+
|
|
257
|
+
table.add_row(detail["file"], f"[{color}]{icon}[/{color}]", issues)
|
|
258
|
+
|
|
259
|
+
console.print(table)
|
|
260
|
+
console.print()
|
|
261
|
+
|
|
262
|
+
# Summary
|
|
263
|
+
total = result["total_files"]
|
|
264
|
+
valid = result["valid_commands"]
|
|
265
|
+
|
|
266
|
+
if valid == total and total > 0:
|
|
267
|
+
console.print(f"[green]✓ {valid}/{total} command files are valid[/green]")
|
|
268
|
+
elif total == 0:
|
|
269
|
+
console.print("[yellow]⚠ No command files found in .claude/commands/[/yellow]")
|
|
270
|
+
else:
|
|
271
|
+
console.print(f"[yellow]⚠ Only {valid}/{total} command files are valid[/yellow]")
|
|
272
|
+
console.print("[dim]Fix the issues above to enable slash commands[/dim]")
|