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
|
@@ -0,0 +1,562 @@
|
|
|
1
|
+
# Kotlin 2.0+ Reference Guide
|
|
2
|
+
|
|
3
|
+
## Complete Language Coverage
|
|
4
|
+
|
|
5
|
+
### Kotlin 2.0
|
|
6
|
+
|
|
7
|
+
Version Information:
|
|
8
|
+
- Latest: 2.0.20 (November 2025)
|
|
9
|
+
- K2 Compiler: 2x faster compilation, better type inference
|
|
10
|
+
- Multiplatform: JVM, JS, Native, WASM targets
|
|
11
|
+
- Minimum JVM: Java 8 (Java 21 recommended)
|
|
12
|
+
|
|
13
|
+
Core Features:
|
|
14
|
+
|
|
15
|
+
K2 Compiler Features:
|
|
16
|
+
- Stable - New compiler frontend with 2x performance improvement
|
|
17
|
+
- Better type inference and error messages
|
|
18
|
+
- Improved smart casts and control flow analysis
|
|
19
|
+
- Enhanced kapt alternative: KSP 2.0
|
|
20
|
+
|
|
21
|
+
Context Receivers:
|
|
22
|
+
- Experimental feature for multiple implicit receivers
|
|
23
|
+
- Enable with `-Xcontext-receivers` compiler flag
|
|
24
|
+
- Useful for dependency injection patterns
|
|
25
|
+
|
|
26
|
+
Data Objects:
|
|
27
|
+
- Stable singleton data classes
|
|
28
|
+
- Automatically generated `toString()` returns object name
|
|
29
|
+
- No `copy()` or `componentN()` methods
|
|
30
|
+
|
|
31
|
+
Value Classes:
|
|
32
|
+
- Stable inline wrapper types (formerly inline classes)
|
|
33
|
+
- Zero runtime overhead for primitive wrappers
|
|
34
|
+
- Use `@JvmInline` annotation
|
|
35
|
+
|
|
36
|
+
Sealed Interfaces:
|
|
37
|
+
- Stable restricted interface implementations
|
|
38
|
+
- Enable exhaustive `when` expressions
|
|
39
|
+
- Support hierarchical type modeling
|
|
40
|
+
|
|
41
|
+
Explicit API Mode:
|
|
42
|
+
- Stable mode for library development
|
|
43
|
+
- Enforces explicit visibility modifiers
|
|
44
|
+
- Enable with `explicitApi()` in Gradle
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Ecosystem Libraries
|
|
49
|
+
|
|
50
|
+
### Coroutines (kotlinx.coroutines 1.9)
|
|
51
|
+
|
|
52
|
+
Core Components:
|
|
53
|
+
- `CoroutineScope` - Structured concurrency boundary
|
|
54
|
+
- `Job` - Cancellable background operation
|
|
55
|
+
- `Deferred` - Future with result value
|
|
56
|
+
- `Flow` - Cold asynchronous stream
|
|
57
|
+
- `StateFlow` / `SharedFlow` - Hot observable streams
|
|
58
|
+
|
|
59
|
+
Dispatchers:
|
|
60
|
+
- `Dispatchers.Default` - CPU-intensive work
|
|
61
|
+
- `Dispatchers.IO` - Blocking I/O operations
|
|
62
|
+
- `Dispatchers.Main` - UI thread (Android/Desktop)
|
|
63
|
+
- `Dispatchers.Unconfined` - Immediate execution
|
|
64
|
+
|
|
65
|
+
Virtual Thread Integration (JVM 21+):
|
|
66
|
+
```kotlin
|
|
67
|
+
val vtDispatcher = Executors.newVirtualThreadPerTaskExecutor()
|
|
68
|
+
.asCoroutineDispatcher()
|
|
69
|
+
|
|
70
|
+
withContext(vtDispatcher) {
|
|
71
|
+
// Runs on virtual thread
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Ktor 3.0
|
|
76
|
+
|
|
77
|
+
Server Features:
|
|
78
|
+
- Async HTTP with Netty, CIO, Jetty engines
|
|
79
|
+
- WebSocket support with routing
|
|
80
|
+
- JWT, OAuth, Session authentication
|
|
81
|
+
- Content negotiation with kotlinx.serialization
|
|
82
|
+
- Request validation and error handling
|
|
83
|
+
- OpenAPI/Swagger integration
|
|
84
|
+
|
|
85
|
+
Client Features:
|
|
86
|
+
- Multiplatform HTTP client
|
|
87
|
+
- Connection pooling and retry
|
|
88
|
+
- Serialization support
|
|
89
|
+
- WebSocket client
|
|
90
|
+
- Logging and monitoring
|
|
91
|
+
|
|
92
|
+
Plugins Ecosystem:
|
|
93
|
+
- `ContentNegotiation` - JSON/XML serialization
|
|
94
|
+
- `Authentication` - JWT, OAuth, Basic, Form
|
|
95
|
+
- `StatusPages` - Exception handling
|
|
96
|
+
- `CallLogging` - Request/response logging
|
|
97
|
+
- `CORS` - Cross-origin resource sharing
|
|
98
|
+
- `Compression` - Gzip, Deflate
|
|
99
|
+
- `RateLimit` - Request throttling
|
|
100
|
+
|
|
101
|
+
### Exposed 0.55
|
|
102
|
+
|
|
103
|
+
Features:
|
|
104
|
+
- Type-safe SQL DSL
|
|
105
|
+
- DAO pattern support
|
|
106
|
+
- Transaction management
|
|
107
|
+
- Connection pooling integration
|
|
108
|
+
- Coroutines support via `exposed-kotlin-datetime`
|
|
109
|
+
|
|
110
|
+
Supported Databases:
|
|
111
|
+
- PostgreSQL, MySQL, MariaDB
|
|
112
|
+
- SQLite, H2, Oracle
|
|
113
|
+
- SQL Server
|
|
114
|
+
|
|
115
|
+
Table Types:
|
|
116
|
+
- `Table` - Base table definition
|
|
117
|
+
- `IdTable<T>` - Table with typed ID column
|
|
118
|
+
- `IntIdTable` - Table with Int ID
|
|
119
|
+
- `LongIdTable` - Table with Long ID
|
|
120
|
+
- `UUIDTable` - Table with UUID ID
|
|
121
|
+
|
|
122
|
+
### Arrow 2.0
|
|
123
|
+
|
|
124
|
+
Core Modules:
|
|
125
|
+
- `arrow-core` - Either, Option, Validated
|
|
126
|
+
- `arrow-fx-coroutines` - Effectful programming
|
|
127
|
+
- `arrow-optics` - Lens, Prism, Traversal
|
|
128
|
+
- `arrow-resilience` - Retry, Circuit breaker
|
|
129
|
+
|
|
130
|
+
Key Types:
|
|
131
|
+
- `Either<A, B>` - Disjoint union type
|
|
132
|
+
- `Option<A>` - Nullable alternative
|
|
133
|
+
- `Validated<E, A>` - Accumulating errors
|
|
134
|
+
- `Ior<A, B>` - Inclusive or
|
|
135
|
+
|
|
136
|
+
### Compose Multiplatform 1.7
|
|
137
|
+
|
|
138
|
+
Supported Platforms:
|
|
139
|
+
- Android (native Compose)
|
|
140
|
+
- Desktop (JVM with Skia)
|
|
141
|
+
- iOS (Kotlin/Native with Skia)
|
|
142
|
+
- Web (Kotlin/JS or WASM)
|
|
143
|
+
|
|
144
|
+
UI Components:
|
|
145
|
+
- Material 3 design system
|
|
146
|
+
- Custom component creation
|
|
147
|
+
- Animation framework
|
|
148
|
+
- Gesture handling
|
|
149
|
+
- Navigation library
|
|
150
|
+
|
|
151
|
+
State Management:
|
|
152
|
+
- `remember` - Composition-scoped state
|
|
153
|
+
- `mutableStateOf` - Observable state
|
|
154
|
+
- `derivedStateOf` - Computed state
|
|
155
|
+
- `collectAsState` - Flow to state conversion
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Context7 Library Mappings
|
|
160
|
+
|
|
161
|
+
Kotlin Core:
|
|
162
|
+
```
|
|
163
|
+
/JetBrains/kotlin - Kotlin language reference
|
|
164
|
+
/Kotlin/kotlinx.coroutines - Coroutines library
|
|
165
|
+
/Kotlin/kotlinx.serialization - Serialization framework
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Server Frameworks:
|
|
169
|
+
```
|
|
170
|
+
/ktorio/ktor - Ktor server and client
|
|
171
|
+
/JetBrains/Exposed - SQL framework
|
|
172
|
+
/koin/koin - Dependency injection
|
|
173
|
+
/insert-koin/koin - Alternative Koin path
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Functional Programming:
|
|
177
|
+
```
|
|
178
|
+
/arrow-kt/arrow - Arrow FP library
|
|
179
|
+
/cashapp/sqldelight - Type-safe SQL
|
|
180
|
+
/google/ksp - Kotlin Symbol Processing
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Multiplatform:
|
|
184
|
+
```
|
|
185
|
+
/jetbrains/compose-multiplatform - Compose UI
|
|
186
|
+
/touchlab/SKIE - Swift-Kotlin interop
|
|
187
|
+
/AAkira/Napier - Multiplatform logging
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Android:
|
|
191
|
+
```
|
|
192
|
+
/android/architecture-components - Jetpack
|
|
193
|
+
/coil-kt/coil - Image loading
|
|
194
|
+
/square/okhttp - HTTP client
|
|
195
|
+
/square/retrofit - REST client
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Testing:
|
|
199
|
+
```
|
|
200
|
+
/mockk/mockk - Mocking library
|
|
201
|
+
/kotest/kotest - Testing framework
|
|
202
|
+
/app.cash/turbine - Flow testing
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Testing Patterns
|
|
208
|
+
|
|
209
|
+
### MockK with Coroutines
|
|
210
|
+
|
|
211
|
+
```kotlin
|
|
212
|
+
class UserServiceTest {
|
|
213
|
+
private val repository = mockk<UserRepository>()
|
|
214
|
+
private val service = UserService(repository)
|
|
215
|
+
|
|
216
|
+
@Test
|
|
217
|
+
fun `should create user`() = runTest {
|
|
218
|
+
// Arrange
|
|
219
|
+
val request = CreateUserRequest("John", "john@example.com", "password")
|
|
220
|
+
val expectedUser = User(1L, "John", "john@example.com")
|
|
221
|
+
|
|
222
|
+
coEvery { repository.existsByEmail(any()) } returns false
|
|
223
|
+
coEvery { repository.save(any()) } returns expectedUser
|
|
224
|
+
|
|
225
|
+
// Act
|
|
226
|
+
val result = service.create(request)
|
|
227
|
+
|
|
228
|
+
// Assert
|
|
229
|
+
assertThat(result).isEqualTo(expectedUser)
|
|
230
|
+
coVerify(exactly = 1) { repository.save(any()) }
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@Test
|
|
234
|
+
fun `should throw on duplicate email`() = runTest {
|
|
235
|
+
coEvery { repository.existsByEmail("existing@example.com") } returns true
|
|
236
|
+
|
|
237
|
+
assertThrows<DuplicateEmailException> {
|
|
238
|
+
service.create(CreateUserRequest("John", "existing@example.com", "pass"))
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
coVerify(exactly = 0) { repository.save(any()) }
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Flow Testing with Turbine
|
|
247
|
+
|
|
248
|
+
```kotlin
|
|
249
|
+
@Test
|
|
250
|
+
fun `should emit user updates`() = runTest {
|
|
251
|
+
val users = listOf(
|
|
252
|
+
User(1L, "John", "john@example.com"),
|
|
253
|
+
User(2L, "Jane", "jane@example.com")
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
service.observeUsers().test {
|
|
257
|
+
assertThat(awaitItem()).isEqualTo(users[0])
|
|
258
|
+
assertThat(awaitItem()).isEqualTo(users[1])
|
|
259
|
+
awaitComplete()
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
@Test
|
|
264
|
+
fun `should handle errors in flow`() = runTest {
|
|
265
|
+
coEvery { repository.findAllAsFlow() } throws RuntimeException("DB error")
|
|
266
|
+
|
|
267
|
+
service.streamUsers().test {
|
|
268
|
+
val error = awaitError()
|
|
269
|
+
assertThat(error).isInstanceOf(RuntimeException::class.java)
|
|
270
|
+
assertThat(error.message).contains("DB error")
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Kotest Specification Style
|
|
276
|
+
|
|
277
|
+
```kotlin
|
|
278
|
+
class UserServiceSpec : FunSpec({
|
|
279
|
+
val repository = mockk<UserRepository>()
|
|
280
|
+
val service = UserService(repository)
|
|
281
|
+
|
|
282
|
+
beforeTest {
|
|
283
|
+
clearAllMocks()
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
context("create user") {
|
|
287
|
+
test("should create user successfully") {
|
|
288
|
+
coEvery { repository.existsByEmail(any()) } returns false
|
|
289
|
+
coEvery { repository.save(any()) } returns User(1L, "John", "john@example.com")
|
|
290
|
+
|
|
291
|
+
val result = service.create(CreateUserRequest("John", "john@example.com", "pass"))
|
|
292
|
+
|
|
293
|
+
result.name shouldBe "John"
|
|
294
|
+
result.email shouldBe "john@example.com"
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
test("should reject duplicate email") {
|
|
298
|
+
coEvery { repository.existsByEmail("taken@example.com") } returns true
|
|
299
|
+
|
|
300
|
+
shouldThrow<DuplicateEmailException> {
|
|
301
|
+
service.create(CreateUserRequest("John", "taken@example.com", "pass"))
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Ktor Test Host
|
|
309
|
+
|
|
310
|
+
```kotlin
|
|
311
|
+
class UserRoutesTest {
|
|
312
|
+
@Test
|
|
313
|
+
fun `GET users returns list`() = testApplication {
|
|
314
|
+
val mockService = mockk<UserService>()
|
|
315
|
+
coEvery { mockService.findAll(any(), any()) } returns listOf(
|
|
316
|
+
User(1L, "John", "john@example.com")
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
application {
|
|
320
|
+
install(ContentNegotiation) { json() }
|
|
321
|
+
routing {
|
|
322
|
+
route("/api/users") {
|
|
323
|
+
get { call.respond(mockService.findAll(0, 20)) }
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
client.get("/api/users").apply {
|
|
329
|
+
assertEquals(HttpStatusCode.OK, status)
|
|
330
|
+
val users = body<List<UserDto>>()
|
|
331
|
+
assertEquals(1, users.size)
|
|
332
|
+
assertEquals("John", users[0].name)
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Performance Characteristics
|
|
341
|
+
|
|
342
|
+
### Compilation Times
|
|
343
|
+
|
|
344
|
+
Build Performance (Kotlin 2.0 with K2):
|
|
345
|
+
- Clean build: 30-60% faster than Kotlin 1.9
|
|
346
|
+
- Incremental build: 10-20% faster
|
|
347
|
+
- KSP processing: 2-3x faster than kapt
|
|
348
|
+
|
|
349
|
+
Gradle Configuration:
|
|
350
|
+
```kotlin
|
|
351
|
+
// gradle.properties
|
|
352
|
+
kotlin.experimental.tryK2=true
|
|
353
|
+
kotlin.incremental=true
|
|
354
|
+
kotlin.daemon.jvmargs=-Xmx4g
|
|
355
|
+
org.gradle.parallel=true
|
|
356
|
+
org.gradle.caching=true
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Runtime Performance
|
|
360
|
+
|
|
361
|
+
JVM Performance:
|
|
362
|
+
- Inline functions: Zero overhead
|
|
363
|
+
- Value classes: Zero runtime allocation
|
|
364
|
+
- Coroutines: ~100 bytes per suspended coroutine
|
|
365
|
+
- Flow: Minimal allocation per emission
|
|
366
|
+
|
|
367
|
+
Ktor Performance:
|
|
368
|
+
- Throughput: ~200K requests/sec (Netty)
|
|
369
|
+
- Latency P99: ~1ms
|
|
370
|
+
- Memory: ~256MB base heap
|
|
371
|
+
|
|
372
|
+
### Memory Usage
|
|
373
|
+
|
|
374
|
+
Coroutine Memory:
|
|
375
|
+
- Continuation: ~100-200 bytes
|
|
376
|
+
- Job: ~300 bytes
|
|
377
|
+
- Channel: ~500 bytes per buffer slot
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## Development Environment
|
|
382
|
+
|
|
383
|
+
### IDE Support
|
|
384
|
+
|
|
385
|
+
IntelliJ IDEA (Recommended):
|
|
386
|
+
- Full K2 compiler support
|
|
387
|
+
- Advanced refactoring tools
|
|
388
|
+
- Debugging with coroutine visualization
|
|
389
|
+
- Profiling integration
|
|
390
|
+
|
|
391
|
+
Android Studio:
|
|
392
|
+
- Based on IntelliJ IDEA
|
|
393
|
+
- Android-specific tooling
|
|
394
|
+
- Compose preview support
|
|
395
|
+
- Layout inspector
|
|
396
|
+
|
|
397
|
+
VS Code:
|
|
398
|
+
- Kotlin extension available
|
|
399
|
+
- Basic syntax highlighting
|
|
400
|
+
- Limited refactoring support
|
|
401
|
+
|
|
402
|
+
### Recommended Plugins
|
|
403
|
+
|
|
404
|
+
IntelliJ IDEA:
|
|
405
|
+
- Kotlin (bundled)
|
|
406
|
+
- Ktor (official)
|
|
407
|
+
- Exposed (database tooling)
|
|
408
|
+
- Detekt (static analysis)
|
|
409
|
+
- ktlint (formatting)
|
|
410
|
+
|
|
411
|
+
### Linting and Formatting
|
|
412
|
+
|
|
413
|
+
Detekt Configuration:
|
|
414
|
+
```yaml
|
|
415
|
+
# detekt.yml
|
|
416
|
+
build:
|
|
417
|
+
maxIssues: 10
|
|
418
|
+
excludeCorrectable: false
|
|
419
|
+
|
|
420
|
+
style:
|
|
421
|
+
MaxLineLength:
|
|
422
|
+
maxLineLength: 120
|
|
423
|
+
MagicNumber:
|
|
424
|
+
ignoreNumbers: ['-1', '0', '1', '2']
|
|
425
|
+
UnusedPrivateMember:
|
|
426
|
+
active: true
|
|
427
|
+
|
|
428
|
+
complexity:
|
|
429
|
+
ComplexMethod:
|
|
430
|
+
threshold: 15
|
|
431
|
+
LongParameterList:
|
|
432
|
+
functionThreshold: 6
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
ktlint Configuration:
|
|
436
|
+
```properties
|
|
437
|
+
# .editorconfig
|
|
438
|
+
[*.kt]
|
|
439
|
+
indent_style = space
|
|
440
|
+
indent_size = 4
|
|
441
|
+
max_line_length = 120
|
|
442
|
+
ktlint_code_style = ktlint_official
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## Container Optimization
|
|
448
|
+
|
|
449
|
+
### Docker Multi-Stage Build
|
|
450
|
+
|
|
451
|
+
```dockerfile
|
|
452
|
+
FROM gradle:8.5-jdk21 AS builder
|
|
453
|
+
WORKDIR /app
|
|
454
|
+
COPY build.gradle.kts settings.gradle.kts ./
|
|
455
|
+
COPY gradle ./gradle
|
|
456
|
+
RUN gradle dependencies --no-daemon
|
|
457
|
+
|
|
458
|
+
COPY src ./src
|
|
459
|
+
RUN gradle shadowJar --no-daemon
|
|
460
|
+
|
|
461
|
+
FROM eclipse-temurin:21-jre-alpine
|
|
462
|
+
RUN addgroup -g 1000 app && adduser -u 1000 -G app -s /bin/sh -D app
|
|
463
|
+
WORKDIR /app
|
|
464
|
+
COPY --from=builder /app/build/libs/*-all.jar app.jar
|
|
465
|
+
USER app
|
|
466
|
+
EXPOSE 8080
|
|
467
|
+
ENTRYPOINT ["java", "-jar", "app.jar"]
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### GraalVM Native Image
|
|
471
|
+
|
|
472
|
+
```dockerfile
|
|
473
|
+
FROM ghcr.io/graalvm/native-image-community:21 AS builder
|
|
474
|
+
WORKDIR /app
|
|
475
|
+
COPY . .
|
|
476
|
+
RUN ./gradlew nativeCompile
|
|
477
|
+
|
|
478
|
+
FROM gcr.io/distroless/base-debian12
|
|
479
|
+
COPY --from=builder /app/build/native/nativeCompile/app /app
|
|
480
|
+
ENTRYPOINT ["/app"]
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### JVM Tuning for Containers
|
|
484
|
+
|
|
485
|
+
```yaml
|
|
486
|
+
containers:
|
|
487
|
+
- name: kotlin-app
|
|
488
|
+
image: myapp:latest
|
|
489
|
+
resources:
|
|
490
|
+
requests:
|
|
491
|
+
memory: "256Mi"
|
|
492
|
+
cpu: "250m"
|
|
493
|
+
limits:
|
|
494
|
+
memory: "512Mi"
|
|
495
|
+
cpu: "500m"
|
|
496
|
+
env:
|
|
497
|
+
- name: JAVA_OPTS
|
|
498
|
+
value: >-
|
|
499
|
+
-XX:+UseContainerSupport
|
|
500
|
+
-XX:MaxRAMPercentage=75.0
|
|
501
|
+
-XX:+UseG1GC
|
|
502
|
+
-XX:+UseStringDeduplication
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## Migration Guides
|
|
508
|
+
|
|
509
|
+
### Kotlin 1.9 to 2.0
|
|
510
|
+
|
|
511
|
+
Enable K2 Compiler:
|
|
512
|
+
```properties
|
|
513
|
+
# gradle.properties
|
|
514
|
+
kotlin.experimental.tryK2=true
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
Key Changes:
|
|
518
|
+
- Improved smart casts in complex conditions
|
|
519
|
+
- Better type inference for builders
|
|
520
|
+
- Enhanced SAM conversion
|
|
521
|
+
- New K2 compiler diagnostics
|
|
522
|
+
|
|
523
|
+
### Java to Kotlin
|
|
524
|
+
|
|
525
|
+
Data Classes:
|
|
526
|
+
```kotlin
|
|
527
|
+
// Java
|
|
528
|
+
public class User {
|
|
529
|
+
private final String name;
|
|
530
|
+
private final String email;
|
|
531
|
+
// constructor, getters, equals, hashCode, toString...
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
// Kotlin
|
|
535
|
+
data class User(val name: String, val email: String)
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
Null Safety:
|
|
539
|
+
```kotlin
|
|
540
|
+
// Java nullable parameter
|
|
541
|
+
fun process(value: String?) {
|
|
542
|
+
value?.let { println(it) } ?: println("null value")
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// Platform types from Java
|
|
546
|
+
val javaResult: String! = javaMethod() // Platform type
|
|
547
|
+
val safeResult: String = javaResult ?: "default" // Make safe
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
Extension Functions:
|
|
551
|
+
```kotlin
|
|
552
|
+
// Replace utility classes
|
|
553
|
+
fun String.toTitleCase(): String =
|
|
554
|
+
split(" ").joinToString(" ") { it.capitalize() }
|
|
555
|
+
|
|
556
|
+
fun <T> List<T>.secondOrNull(): T? = getOrNull(1)
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
Last Updated: 2025-12-07
|
|
562
|
+
Version: 1.0.0
|