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
moai_adk/__init__.py
CHANGED
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
SPEC-First TDD Framework with Alfred SuperAgent
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from moai_adk.version import MOAI_VERSION
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
__version__ = version("moai-adk")
|
|
10
|
-
except PackageNotFoundError:
|
|
11
|
-
__version__ = "0.23.0-dev"
|
|
8
|
+
__version__ = MOAI_VERSION
|
|
12
9
|
|
|
13
10
|
__all__ = ["__version__"]
|
moai_adk/__main__.py
CHANGED
|
@@ -2,32 +2,43 @@
|
|
|
2
2
|
"""MoAI-ADK CLI Entry Point
|
|
3
3
|
|
|
4
4
|
Implements the CLI entry point:
|
|
5
|
-
- Click-based CLI framework
|
|
5
|
+
- Click-based CLI framework with lazy command loading
|
|
6
6
|
- Rich console terminal output
|
|
7
|
-
- ASCII logo rendering
|
|
7
|
+
- ASCII logo rendering (lazy-loaded)
|
|
8
8
|
- --version and --help options
|
|
9
|
-
- Five core commands: init, doctor, status,
|
|
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).
|
|
10
13
|
"""
|
|
11
14
|
|
|
12
15
|
import sys
|
|
13
16
|
|
|
14
17
|
import click
|
|
15
|
-
import pyfiglet
|
|
16
|
-
from rich.console import Console
|
|
17
18
|
|
|
18
19
|
from moai_adk import __version__
|
|
19
|
-
from moai_adk.cli.commands.backup import backup
|
|
20
|
-
from moai_adk.cli.commands.doctor import doctor
|
|
21
|
-
from moai_adk.cli.commands.init import init
|
|
22
|
-
from moai_adk.cli.commands.migrate import migrate
|
|
23
|
-
from moai_adk.cli.commands.status import status
|
|
24
|
-
from moai_adk.cli.commands.update import update
|
|
25
20
|
|
|
26
|
-
console
|
|
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
|
|
27
33
|
|
|
28
34
|
|
|
29
35
|
def show_logo() -> None:
|
|
30
|
-
"""Render the MoAI-ADK ASCII logo with Pyfiglet"""
|
|
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
|
+
|
|
31
42
|
# Generate the "MoAI-ADK" banner using the ansi_shadow font
|
|
32
43
|
logo = pyfiglet.figlet_format("MoAI-ADK", font="ansi_shadow")
|
|
33
44
|
|
|
@@ -59,89 +70,108 @@ def cli(ctx: click.Context) -> None:
|
|
|
59
70
|
show_logo()
|
|
60
71
|
|
|
61
72
|
|
|
62
|
-
|
|
63
|
-
cli.
|
|
64
|
-
|
|
65
|
-
cli.add_command(backup)
|
|
66
|
-
cli.add_command(migrate)
|
|
67
|
-
cli.add_command(update)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
# 링크 검증 명령
|
|
71
|
-
@click.command(name="validate-links")
|
|
73
|
+
# Lazy-loaded commands (imported only when invoked)
|
|
74
|
+
@cli.command()
|
|
75
|
+
@click.argument("path", type=click.Path(), default=".")
|
|
72
76
|
@click.option(
|
|
73
|
-
"--
|
|
74
|
-
"-
|
|
75
|
-
|
|
76
|
-
help="
|
|
77
|
+
"--non-interactive",
|
|
78
|
+
"-y",
|
|
79
|
+
is_flag=True,
|
|
80
|
+
help="Non-interactive mode (use defaults)",
|
|
77
81
|
)
|
|
78
82
|
@click.option(
|
|
79
|
-
"--
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
help="동시에 검증할 최대 링크 수 (기본값: 3)",
|
|
83
|
+
"--mode",
|
|
84
|
+
type=click.Choice(["personal", "team"]),
|
|
85
|
+
default="personal",
|
|
86
|
+
help="Project mode",
|
|
84
87
|
)
|
|
85
88
|
@click.option(
|
|
86
|
-
"--
|
|
89
|
+
"--locale",
|
|
90
|
+
type=click.Choice(["ko", "en", "ja", "zh"]),
|
|
91
|
+
default=None,
|
|
92
|
+
help="Preferred language (ko/en/ja/zh, default: en)",
|
|
87
93
|
)
|
|
88
|
-
@click.option("--output", "-o", help="결과를 저장할 파일 경로")
|
|
89
|
-
@click.option("--verbose", "-v", is_flag=True, help="상세한 진행 상황 표시")
|
|
90
|
-
def validate_links(file, max_concurrent, timeout, output, verbose):
|
|
91
|
-
"""온라인 문서 링크 검증"""
|
|
92
|
-
from moai_adk.cli.commands.validate_links import run_command as validate_links_run
|
|
93
|
-
|
|
94
|
-
# CLI 명령 실행
|
|
95
|
-
sys.exit(validate_links_run(locals()))
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
# 사용자 경험 개선 명령
|
|
99
|
-
@click.command(name="improve-ux")
|
|
100
94
|
@click.option(
|
|
101
|
-
"--
|
|
102
|
-
|
|
103
|
-
default=
|
|
104
|
-
help="
|
|
95
|
+
"--language",
|
|
96
|
+
type=str,
|
|
97
|
+
default=None,
|
|
98
|
+
help="Programming language (auto-detect if not specified)",
|
|
105
99
|
)
|
|
106
|
-
@click.option("--output", "-o", help="분석 결과를 저장할 파일 경로")
|
|
107
100
|
@click.option(
|
|
108
|
-
"--
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
default="markdown",
|
|
112
|
-
help="출력 형식 (기본값: markdown)",
|
|
101
|
+
"--force",
|
|
102
|
+
is_flag=True,
|
|
103
|
+
help="Force reinitialize without confirmation",
|
|
113
104
|
)
|
|
114
|
-
@click.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
+
)
|
|
124
127
|
|
|
125
|
-
# 임시 args 객체 생성
|
|
126
|
-
class Args:
|
|
127
|
-
def __init__(self, **kwargs):
|
|
128
|
-
for key, value in kwargs.items():
|
|
129
|
-
setattr(self, key, value)
|
|
130
128
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
134
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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)
|
|
139
145
|
|
|
140
|
-
sys.exit(improve_ux_run(args))
|
|
141
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 = {}
|
|
142
171
|
|
|
143
|
-
|
|
144
|
-
|
|
172
|
+
# Render statusline
|
|
173
|
+
output = build_statusline_data(context, mode="extended")
|
|
174
|
+
print(output, end="")
|
|
145
175
|
|
|
146
176
|
|
|
147
177
|
def main() -> int:
|
|
@@ -156,11 +186,13 @@ def main() -> int:
|
|
|
156
186
|
e.show()
|
|
157
187
|
return e.exit_code
|
|
158
188
|
except Exception as e:
|
|
189
|
+
console = get_console()
|
|
159
190
|
console.print(f"[red]Error:[/red] {e}")
|
|
160
191
|
return 1
|
|
161
192
|
finally:
|
|
162
|
-
# Flush the output buffer explicitly
|
|
163
|
-
|
|
193
|
+
# Flush the output buffer explicitly if console was created
|
|
194
|
+
if _console is not None:
|
|
195
|
+
_console.file.flush()
|
|
164
196
|
|
|
165
197
|
|
|
166
198
|
if __name__ == "__main__":
|
moai_adk/cli/__init__.py
CHANGED
|
@@ -5,15 +5,13 @@ Core commands:
|
|
|
5
5
|
- doctor: run system diagnostics
|
|
6
6
|
- status: show project status
|
|
7
7
|
- update: update templates to latest version
|
|
8
|
-
- backup: create project backups
|
|
9
8
|
|
|
10
9
|
Note: restore functionality is handled by checkpoint system in core.git.checkpoint
|
|
11
10
|
"""
|
|
12
11
|
|
|
13
|
-
from moai_adk.cli.commands.backup import backup
|
|
14
12
|
from moai_adk.cli.commands.doctor import doctor
|
|
15
13
|
from moai_adk.cli.commands.init import init
|
|
16
14
|
from moai_adk.cli.commands.status import status
|
|
17
15
|
from moai_adk.cli.commands.update import update
|
|
18
16
|
|
|
19
|
-
__all__ = ["init", "doctor", "status", "update"
|
|
17
|
+
__all__ = ["init", "doctor", "status", "update"]
|
moai_adk/cli/commands/analyze.py
CHANGED
|
@@ -5,7 +5,6 @@ Analyze command for MoAI-ADK
|
|
|
5
5
|
Analyze Claude Code sessions and generate improvement suggestions.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
from pathlib import Path
|
|
10
9
|
from typing import Optional
|
|
11
10
|
|
|
@@ -22,9 +21,7 @@ console = Console()
|
|
|
22
21
|
@click.option("--days", "-d", default=7, help="Number of days to analyze (default: 7)")
|
|
23
22
|
@click.option("--output", "-o", type=click.Path(), help="Output file path")
|
|
24
23
|
@click.option("--verbose", "-v", is_flag=True, help="Verbose output")
|
|
25
|
-
@click.option(
|
|
26
|
-
"--report-only", "-r", is_flag=True, help="Generate report only (no console output)"
|
|
27
|
-
)
|
|
24
|
+
@click.option("--report-only", "-r", is_flag=True, help="Generate report only (no console output)")
|
|
28
25
|
@click.option(
|
|
29
26
|
"--project-path",
|
|
30
27
|
"-p",
|
|
@@ -54,9 +51,7 @@ def analyze(
|
|
|
54
51
|
|
|
55
52
|
# Validate project path
|
|
56
53
|
if not (project_path / ".moai").exists():
|
|
57
|
-
console.print(
|
|
58
|
-
"[red]Error:[/red] Not a MoAI-ADK project (missing .moai directory)"
|
|
59
|
-
)
|
|
54
|
+
console.print("[red]Error:[/red] Not a MoAI-ADK project (missing .moai directory)")
|
|
60
55
|
console.print(f"[blue]Current path:[/blue] {project_path}")
|
|
61
56
|
return
|
|
62
57
|
|
|
@@ -70,9 +65,7 @@ def analyze(
|
|
|
70
65
|
patterns = analyzer.parse_sessions()
|
|
71
66
|
|
|
72
67
|
if not report_only:
|
|
73
|
-
console.print(
|
|
74
|
-
f"[green]✅ Analyzed {patterns['total_sessions']} sessions[/green]"
|
|
75
|
-
)
|
|
68
|
+
console.print(f"[green]✅ Analyzed {patterns['total_sessions']} sessions[/green]")
|
|
76
69
|
console.print(f"[blue] Total events: {patterns['total_events']}[/blue]")
|
|
77
70
|
|
|
78
71
|
# Display summary table
|
|
@@ -90,9 +83,7 @@ def analyze(
|
|
|
90
83
|
# Show top tools
|
|
91
84
|
if patterns["tool_usage"]:
|
|
92
85
|
console.print("\n[bold]🔧 Top Tools Used:[/bold]")
|
|
93
|
-
top_tools = sorted(
|
|
94
|
-
patterns["tool_usage"].items(), key=lambda x: x[1], reverse=True
|
|
95
|
-
)[:10]
|
|
86
|
+
top_tools = sorted(patterns["tool_usage"].items(), key=lambda x: x[1], reverse=True)[:10]
|
|
96
87
|
|
|
97
88
|
tools_table = Table()
|
|
98
89
|
tools_table.add_column("Tool", style="cyan")
|
|
@@ -119,9 +110,7 @@ def analyze(
|
|
|
119
110
|
if suggestions_start != -1:
|
|
120
111
|
suggestions_section = report_content[suggestions_start:]
|
|
121
112
|
# Extract first few suggestions
|
|
122
|
-
lines = suggestions_section.split("\n")[
|
|
123
|
-
2:
|
|
124
|
-
] # Skip header and empty line
|
|
113
|
+
lines = suggestions_section.split("\n")[2:] # Skip header and empty line
|
|
125
114
|
for line in lines[:10]: # Show first 10 lines
|
|
126
115
|
if line.strip() and not line.startswith("---"):
|
|
127
116
|
console.print(line)
|
moai_adk/cli/commands/doctor.py
CHANGED
|
@@ -56,9 +56,7 @@ console = Console()
|
|
|
56
56
|
@click.option("--fix", is_flag=True, help="Suggest fixes for missing tools")
|
|
57
57
|
@click.option("--export", type=click.Path(), help="Export diagnostics to JSON file")
|
|
58
58
|
@click.option("--check", type=str, help="Check specific tool only")
|
|
59
|
-
@click.option(
|
|
60
|
-
"--check-commands", is_flag=True, help="Diagnose slash command loading issues"
|
|
61
|
-
)
|
|
59
|
+
@click.option("--check-commands", is_flag=True, help="Diagnose slash command loading issues")
|
|
62
60
|
def doctor(
|
|
63
61
|
verbose: bool,
|
|
64
62
|
fix: bool,
|
|
@@ -92,9 +90,7 @@ def doctor(
|
|
|
92
90
|
diagnostics_data["detected_language"] = language
|
|
93
91
|
|
|
94
92
|
if verbose:
|
|
95
|
-
console.print(
|
|
96
|
-
f"[dim]Detected language: {language or 'Unknown'}[/dim]\n"
|
|
97
|
-
)
|
|
93
|
+
console.print(f"[dim]Detected language: {language or 'Unknown'}[/dim]\n")
|
|
98
94
|
|
|
99
95
|
if language:
|
|
100
96
|
checker = SystemChecker()
|
|
@@ -138,22 +134,16 @@ def doctor(
|
|
|
138
134
|
console.print("\n[green]✓ All checks passed[/green]")
|
|
139
135
|
else:
|
|
140
136
|
console.print("\n[yellow]⚠ Some checks failed[/yellow]")
|
|
141
|
-
console.print(
|
|
142
|
-
"[dim]Run [cyan]python -m moai_adk doctor --verbose[/cyan] for detailed diagnostics[/dim]"
|
|
143
|
-
)
|
|
137
|
+
console.print("[dim]Run [cyan]python -m moai_adk doctor --verbose[/cyan] for detailed diagnostics[/dim]")
|
|
144
138
|
|
|
145
139
|
except Exception as e:
|
|
146
140
|
console.print(f"[red]✗ Diagnostic failed: {e}[/red]")
|
|
147
141
|
raise
|
|
148
142
|
|
|
149
143
|
|
|
150
|
-
def _display_language_tools(
|
|
151
|
-
language: str, tools: dict[str, bool], checker: SystemChecker
|
|
152
|
-
) -> None:
|
|
144
|
+
def _display_language_tools(language: str, tools: dict[str, bool], checker: SystemChecker) -> None:
|
|
153
145
|
"""Display a table of language-specific tools (helper)"""
|
|
154
|
-
table = Table(
|
|
155
|
-
show_header=True, header_style="bold cyan", title=f"{language.title()} Tools"
|
|
156
|
-
)
|
|
146
|
+
table = Table(show_header=True, header_style="bold cyan", title=f"{language.title()} Tools")
|
|
157
147
|
table.add_column("Tool", style="dim")
|
|
158
148
|
table.add_column("Status", justify="center")
|
|
159
149
|
table.add_column("Version", style="blue")
|
|
@@ -278,7 +268,5 @@ def _check_slash_commands() -> None:
|
|
|
278
268
|
elif total == 0:
|
|
279
269
|
console.print("[yellow]⚠ No command files found in .claude/commands/[/yellow]")
|
|
280
270
|
else:
|
|
281
|
-
console.print(
|
|
282
|
-
f"[yellow]⚠ Only {valid}/{total} command files are valid[/yellow]"
|
|
283
|
-
)
|
|
271
|
+
console.print(f"[yellow]⚠ Only {valid}/{total} command files are valid[/yellow]")
|
|
284
272
|
console.print("[dim]Fix the issues above to enable slash commands[/dim]")
|