moai-adk 0.32.8__py3-none-any.whl → 0.41.2__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/cli/commands/init.py +4 -1
- moai_adk/cli/commands/update.py +31 -26
- moai_adk/cli/worktree/cli.py +54 -43
- moai_adk/cli/worktree/manager.py +17 -14
- moai_adk/cli/worktree/registry.py +313 -19
- moai_adk/core/config/unified.py +237 -63
- moai_adk/core/error_recovery_system.py +22 -4
- moai_adk/core/git/conflict_detector.py +10 -1
- moai_adk/core/git/event_detector.py +16 -5
- moai_adk/core/language_config_resolver.py +96 -3
- moai_adk/core/merge/analyzer.py +509 -324
- moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
- moai_adk/core/migration/backup_manager.py +54 -4
- moai_adk/core/migration/file_migrator.py +174 -2
- moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
- moai_adk/core/migration/version_detector.py +123 -19
- moai_adk/core/migration/version_migrator.py +44 -9
- moai_adk/core/project/backup_utils.py +9 -1
- moai_adk/core/project/initializer.py +33 -96
- moai_adk/core/project/phase_executor.py +79 -33
- moai_adk/core/quality/trust_checker.py +30 -10
- moai_adk/core/realtime_monitoring_dashboard.py +3 -3
- moai_adk/core/rollback_manager.py +46 -19
- moai_adk/core/template/backup.py +4 -3
- moai_adk/core/template/config.py +33 -9
- moai_adk/core/template/merger.py +34 -8
- moai_adk/core/template/processor.py +144 -9
- moai_adk/core/template_engine.py +10 -1
- moai_adk/core/template_variable_synchronizer.py +16 -2
- moai_adk/core/version_sync.py +54 -6
- moai_adk/project/configuration.py +1 -1
- moai_adk/statusline/config.py +5 -2
- moai_adk/statusline/main.py +58 -0
- moai_adk/statusline/renderer.py +56 -84
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +218 -51
- moai_adk/templates/.claude/agents/moai/builder-agent.md +46 -11
- moai_adk/templates/.claude/agents/moai/builder-command.md +88 -26
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +753 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +79 -8
- moai_adk/templates/.claude/agents/moai/expert-backend.md +100 -28
- moai_adk/templates/.claude/agents/moai/expert-database.md +20 -12
- moai_adk/templates/.claude/agents/moai/expert-debug.md +19 -8
- moai_adk/templates/.claude/agents/moai/expert-devops.md +36 -25
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +99 -38
- moai_adk/templates/.claude/agents/moai/expert-performance.md +661 -0
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +218 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +55 -4
- moai_adk/templates/.claude/agents/moai/expert-testing.md +737 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +20 -11
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +13 -4
- moai_adk/templates/.claude/agents/moai/manager-docs.md +15 -7
- moai_adk/templates/.claude/agents/moai/manager-git.md +192 -37
- moai_adk/templates/.claude/agents/moai/manager-project.md +13 -7
- moai_adk/templates/.claude/agents/moai/manager-quality.md +48 -6
- moai_adk/templates/.claude/agents/moai/manager-spec.md +110 -8
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +203 -17
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +217 -23
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +102 -7
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +107 -86
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +50 -4
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +52 -4
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +49 -5
- moai_adk/templates/.claude/commands/moai/0-project.md +503 -307
- moai_adk/templates/.claude/commands/moai/1-plan.md +255 -323
- moai_adk/templates/.claude/commands/moai/2-run.md +257 -315
- moai_adk/templates/.claude/commands/moai/3-sync.md +421 -56
- moai_adk/templates/.claude/commands/moai/9-feedback.md +40 -34
- moai_adk/templates/.claude/hooks/moai/__init__.py +0 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +19 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
- moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +12 -14
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +1 -1
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +104 -14
- moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
- moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
- moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +804 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +14 -2
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +256 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +253 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +307 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +231 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +40 -24
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +248 -32
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +265 -2
- moai_adk/templates/.claude/output-styles/moai/yoda.md +23 -2
- moai_adk/templates/.claude/settings.json +44 -6
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +303 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/reference.md +139 -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 +252 -196
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +252 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +234 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +19 -13
- 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 +21 -14
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +124 -425
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +17 -15
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +105 -315
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +6 -6
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +197 -154
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +2 -2
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +12 -1
- 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 +33 -134
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +31 -18
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +30 -30
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +311 -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 +17 -16
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +431 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +194 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +395 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +473 -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 +378 -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 +387 -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-javascript/SKILL.md +419 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +384 -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 +505 -0
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +490 -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 +390 -0
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +433 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +378 -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 +212 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +192 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +365 -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 +94 -227
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +26 -6
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
- moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +17 -13
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +1 -1
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +284 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +426 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +229 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +250 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +231 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +206 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +207 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +210 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -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/modules/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/modules/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/SKILL.md +215 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/examples.md +697 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/index.md +96 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/acp.md +115 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/agents.md +241 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/commands.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/custom-tools.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/formatters.md +164 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/keybinds.md +150 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/lsp-servers.md +156 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/mcp-servers.md +214 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/models.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/permissions.md +162 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/rules.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/skills.md +192 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/themes.md +200 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/tools.md +169 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/config.md +211 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/enterprise.md +68 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/intro.md +127 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/migration-1.0.md +82 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/network.md +72 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/providers.md +310 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/troubleshooting.md +124 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/ecosystem.md +75 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/plugins.md +218 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/sdk.md +266 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/server.md +207 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/cli.md +159 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/github.md +181 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/gitlab.md +122 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/ide.md +74 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/share.md +106 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/tui.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/zen.md +118 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/reference.md +790 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +190 -424
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +188 -314
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +284 -212
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +2 -2
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +1 -1
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +22 -1
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +337 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +13 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +222 -367
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
- moai_adk/templates/.git-hooks/pre-push +168 -50
- moai_adk/templates/.gitignore +0 -3
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +5 -12
- moai_adk/templates/.moai/config/config.yaml +20 -306
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +105 -10
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +259 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +4 -5
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +12 -55
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +111 -21
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +34 -18
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +19 -75
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +83 -7
- moai_adk/templates/.moai/config/sections/language.yaml +7 -7
- moai_adk/templates/.moai/config/sections/project.yaml +1 -1
- moai_adk/templates/.moai/config/sections/quality.yaml +7 -4
- moai_adk/templates/.moai/config/sections/system.yaml +11 -1
- moai_adk/templates/.moai/config/statusline-config.yaml +19 -13
- moai_adk/templates/.moai/scripts/setup-glm.py +4 -4
- moai_adk/templates/CLAUDE.md +578 -154
- moai_adk/utils/common.py +33 -0
- moai_adk/version.py +1 -1
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/METADATA +905 -109
- moai_adk-0.41.2.dist-info/RECORD +683 -0
- moai_adk/core/config/auto_spec_config.py +0 -340
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
- moai_adk/core/spec/confidence_scoring.py +0 -680
- moai_adk/core/spec/ears_template_engine.py +0 -1247
- moai_adk/core/spec/quality_validator.py +0 -687
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +0 -352
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +0 -52
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +0 -334
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +0 -310
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +0 -256
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +0 -253
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +0 -296
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +0 -1269
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +0 -331
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +0 -186
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +0 -1225
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +0 -567
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +0 -323
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +0 -204
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -135
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -410
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
- moai_adk/templates/.moai/cache/personalization.json +0 -10
- moai_adk/templates/.moai/config/presets/manual.yaml +0 -28
- moai_adk/templates/.moai/config/presets/personal.yaml +0 -30
- moai_adk/templates/.moai/config/presets/team.yaml +0 -33
- moai_adk-0.32.8.dist-info/RECORD +0 -396
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/WHEEL +0 -0
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/licenses/LICENSE +0 -0
moai_adk/core/version_sync.py
CHANGED
|
@@ -5,11 +5,15 @@ Ensures version consistency across multiple configuration files and provides
|
|
|
5
5
|
automatic synchronization capabilities.
|
|
6
6
|
|
|
7
7
|
Key Features:
|
|
8
|
-
- Version consistency validation across pyproject.toml, __init__.py, and config
|
|
8
|
+
- Version consistency validation across pyproject.toml, __init__.py, and config
|
|
9
9
|
- Automatic synchronization when inconsistencies detected
|
|
10
10
|
- Cache invalidation for statusline version readers
|
|
11
11
|
- Version change detection and notification system
|
|
12
12
|
- Fallback strategies for version resolution
|
|
13
|
+
|
|
14
|
+
Configuration sources (in priority order):
|
|
15
|
+
1. Section YAML: .moai/config/sections/system.yaml (moai.version)
|
|
16
|
+
2. Legacy: .moai/config/config.json (moai.version)
|
|
13
17
|
"""
|
|
14
18
|
|
|
15
19
|
import json
|
|
@@ -28,7 +32,8 @@ class VersionSource(Enum):
|
|
|
28
32
|
"""Enum for version source tracking"""
|
|
29
33
|
|
|
30
34
|
PYPROJECT_TOML = "pyproject_toml"
|
|
31
|
-
|
|
35
|
+
SECTION_YAML = "section_yaml" # New: system.yaml
|
|
36
|
+
CONFIG_JSON = "config_json" # Legacy fallback
|
|
32
37
|
PACKAGE_METADATA = "package_metadata"
|
|
33
38
|
FALLBACK = "fallback"
|
|
34
39
|
|
|
@@ -74,14 +79,17 @@ class VersionSynchronizer:
|
|
|
74
79
|
|
|
75
80
|
self.working_dir = working_dir
|
|
76
81
|
self.pyproject_path = working_dir / "pyproject.toml"
|
|
82
|
+
self.system_yaml_path = working_dir / ".moai" / "config" / "sections" / "system.yaml"
|
|
77
83
|
self.config_path = working_dir / ".moai" / "config" / "config.json"
|
|
78
84
|
self.init_path = working_dir / "src" / "moai_adk" / "__init__.py"
|
|
79
85
|
|
|
80
86
|
# Version file paths in order of priority
|
|
81
87
|
# Note: __init__.py reads version dynamically, so we don't synchronize it
|
|
88
|
+
# Priority: pyproject.toml > system.yaml (new) > config.json (legacy)
|
|
82
89
|
self.version_files = [
|
|
83
90
|
(self.pyproject_path, VersionSource.PYPROJECT_TOML),
|
|
84
|
-
(self.
|
|
91
|
+
(self.system_yaml_path, VersionSource.SECTION_YAML), # New: section YAML
|
|
92
|
+
(self.config_path, VersionSource.CONFIG_JSON), # Legacy fallback
|
|
85
93
|
]
|
|
86
94
|
|
|
87
95
|
# Statusline cache directories to invalidate
|
|
@@ -200,6 +208,8 @@ class VersionSynchronizer:
|
|
|
200
208
|
|
|
201
209
|
if source == VersionSource.PYPROJECT_TOML:
|
|
202
210
|
version = self._extract_from_pyproject(content)
|
|
211
|
+
elif source == VersionSource.SECTION_YAML:
|
|
212
|
+
version = self._extract_from_section_yaml(content)
|
|
203
213
|
elif source == VersionSource.CONFIG_JSON:
|
|
204
214
|
version = self._extract_from_config(content)
|
|
205
215
|
elif source == VersionSource.PACKAGE_METADATA:
|
|
@@ -226,8 +236,23 @@ class VersionSynchronizer:
|
|
|
226
236
|
match = re.search(pattern, content, re.MULTILINE)
|
|
227
237
|
return match.group(1) if match else None
|
|
228
238
|
|
|
239
|
+
def _extract_from_section_yaml(self, content: str) -> Optional[str]:
|
|
240
|
+
"""Extract version from .moai/config/sections/system.yaml"""
|
|
241
|
+
try:
|
|
242
|
+
import yaml
|
|
243
|
+
|
|
244
|
+
yaml_data = yaml.safe_load(content)
|
|
245
|
+
moai_config = yaml_data.get("moai", {})
|
|
246
|
+
return moai_config.get("version")
|
|
247
|
+
except ImportError:
|
|
248
|
+
logger.warning("PyYAML not available for section YAML parsing")
|
|
249
|
+
return None
|
|
250
|
+
except Exception as e:
|
|
251
|
+
logger.error(f"Invalid YAML in system.yaml: {e}")
|
|
252
|
+
return None
|
|
253
|
+
|
|
229
254
|
def _extract_from_config(self, content: str) -> Optional[str]:
|
|
230
|
-
"""Extract version from .moai/config/config.json"""
|
|
255
|
+
"""Extract version from .moai/config/config.json (legacy)"""
|
|
231
256
|
try:
|
|
232
257
|
config_data = json.loads(content)
|
|
233
258
|
moai_config = config_data.get("moai", {})
|
|
@@ -270,8 +295,31 @@ class VersionSynchronizer:
|
|
|
270
295
|
|
|
271
296
|
def _update_version_in_content(self, content: str, source: VersionSource, target_version: str) -> str:
|
|
272
297
|
"""Update version in content based on source type"""
|
|
273
|
-
if source == VersionSource.
|
|
274
|
-
# Update moai.version in
|
|
298
|
+
if source == VersionSource.SECTION_YAML:
|
|
299
|
+
# Update moai.version in section YAML
|
|
300
|
+
try:
|
|
301
|
+
import yaml
|
|
302
|
+
|
|
303
|
+
yaml_data = yaml.safe_load(content) or {}
|
|
304
|
+
if "moai" not in yaml_data:
|
|
305
|
+
yaml_data["moai"] = {}
|
|
306
|
+
yaml_data["moai"]["version"] = target_version
|
|
307
|
+
return yaml.safe_dump(
|
|
308
|
+
yaml_data,
|
|
309
|
+
default_flow_style=False,
|
|
310
|
+
allow_unicode=True,
|
|
311
|
+
sort_keys=False,
|
|
312
|
+
)
|
|
313
|
+
except ImportError:
|
|
314
|
+
logger.warning("PyYAML not available for section YAML update")
|
|
315
|
+
return content
|
|
316
|
+
except Exception:
|
|
317
|
+
# Fallback: regex replacement for version line
|
|
318
|
+
pattern = r'(version:\s*["\']?)[\d.]+(["\']?)'
|
|
319
|
+
return re.sub(pattern, f"\\g<1>{target_version}\\g<2>", content)
|
|
320
|
+
|
|
321
|
+
elif source == VersionSource.CONFIG_JSON:
|
|
322
|
+
# Update moai.version in JSON (legacy)
|
|
275
323
|
try:
|
|
276
324
|
config_data = json.loads(content)
|
|
277
325
|
if "moai" not in config_data:
|
|
@@ -222,7 +222,7 @@ class SmartDefaultsEngine:
|
|
|
222
222
|
"git_strategy.personal.push_to_remote": False,
|
|
223
223
|
"git_strategy.team.auto_pr": False,
|
|
224
224
|
"git_strategy.team.draft_pr": False,
|
|
225
|
-
"constitution.test_coverage_target":
|
|
225
|
+
"constitution.test_coverage_target": 85,
|
|
226
226
|
"constitution.enforce_tdd": True,
|
|
227
227
|
"language.agent_prompt_language": "en",
|
|
228
228
|
"project.description": "",
|
moai_adk/statusline/config.py
CHANGED
|
@@ -345,11 +345,14 @@ class StatuslineConfig:
|
|
|
345
345
|
display_data = self.get("statusline.display", {})
|
|
346
346
|
return DisplayConfig(
|
|
347
347
|
model=display_data.get("model", True),
|
|
348
|
-
duration=display_data.get("duration", True),
|
|
349
|
-
directory=display_data.get("directory", True),
|
|
350
348
|
version=display_data.get("version", True),
|
|
349
|
+
output_style=display_data.get("output_style", True),
|
|
350
|
+
memory_usage=display_data.get("memory_usage", True),
|
|
351
|
+
todo_count=display_data.get("todo_count", True),
|
|
351
352
|
branch=display_data.get("branch", True),
|
|
352
353
|
git_status=display_data.get("git_status", True),
|
|
354
|
+
duration=display_data.get("duration", True),
|
|
355
|
+
directory=display_data.get("directory", True),
|
|
353
356
|
active_task=display_data.get("active_task", True),
|
|
354
357
|
update_indicator=display_data.get("update_indicator", True),
|
|
355
358
|
)
|
moai_adk/statusline/main.py
CHANGED
|
@@ -145,6 +145,59 @@ def safe_check_update(current_version: str) -> tuple[bool, Optional[str]]:
|
|
|
145
145
|
return False, None
|
|
146
146
|
|
|
147
147
|
|
|
148
|
+
def format_token_count(tokens: int) -> str:
|
|
149
|
+
"""
|
|
150
|
+
Format token count for display (e.g., 15234 -> "15K").
|
|
151
|
+
|
|
152
|
+
Args:
|
|
153
|
+
tokens: Number of tokens
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
Formatted string
|
|
157
|
+
"""
|
|
158
|
+
if tokens >= 1000:
|
|
159
|
+
return f"{tokens // 1000}K"
|
|
160
|
+
return str(tokens)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def extract_context_window(session_context: dict) -> str:
|
|
164
|
+
"""
|
|
165
|
+
Extract and format context window usage from session context.
|
|
166
|
+
|
|
167
|
+
Args:
|
|
168
|
+
session_context: Context passed from Claude Code via stdin
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
Formatted context window string (e.g., "15K/200K")
|
|
172
|
+
"""
|
|
173
|
+
context_info = session_context.get("context_window", {})
|
|
174
|
+
|
|
175
|
+
if not context_info:
|
|
176
|
+
return ""
|
|
177
|
+
|
|
178
|
+
# Get context window size
|
|
179
|
+
context_size = context_info.get("context_window_size", 0)
|
|
180
|
+
if not context_size:
|
|
181
|
+
return ""
|
|
182
|
+
|
|
183
|
+
# Get current usage
|
|
184
|
+
current_usage = context_info.get("current_usage", {})
|
|
185
|
+
if current_usage:
|
|
186
|
+
# Calculate total current tokens
|
|
187
|
+
input_tokens = current_usage.get("input_tokens", 0)
|
|
188
|
+
cache_creation = current_usage.get("cache_creation_input_tokens", 0)
|
|
189
|
+
cache_read = current_usage.get("cache_read_input_tokens", 0)
|
|
190
|
+
current_tokens = input_tokens + cache_creation + cache_read
|
|
191
|
+
else:
|
|
192
|
+
# Fallback to total tokens
|
|
193
|
+
current_tokens = context_info.get("total_input_tokens", 0)
|
|
194
|
+
|
|
195
|
+
if current_tokens > 0:
|
|
196
|
+
return f"{format_token_count(current_tokens)}/{format_token_count(context_size)}"
|
|
197
|
+
|
|
198
|
+
return ""
|
|
199
|
+
|
|
200
|
+
|
|
148
201
|
def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
|
|
149
202
|
"""
|
|
150
203
|
Build complete statusline string from all data sources.
|
|
@@ -157,6 +210,7 @@ def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
|
|
|
157
210
|
- MoAI-ADK version
|
|
158
211
|
- Update checker
|
|
159
212
|
- Output style
|
|
213
|
+
- Context window usage
|
|
160
214
|
|
|
161
215
|
Args:
|
|
162
216
|
session_context: Context passed from Claude Code via stdin
|
|
@@ -184,6 +238,9 @@ def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
|
|
|
184
238
|
# Extract output style from session context
|
|
185
239
|
output_style = session_context.get("output_style", {}).get("name", "")
|
|
186
240
|
|
|
241
|
+
# Extract context window usage
|
|
242
|
+
context_window = extract_context_window(session_context)
|
|
243
|
+
|
|
187
244
|
# Collect all information from local sources
|
|
188
245
|
branch, git_status = safe_collect_git_info()
|
|
189
246
|
duration = safe_collect_duration()
|
|
@@ -205,6 +262,7 @@ def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
|
|
|
205
262
|
output_style=output_style,
|
|
206
263
|
update_available=update_available,
|
|
207
264
|
latest_version=latest_version,
|
|
265
|
+
context_window=context_window,
|
|
208
266
|
)
|
|
209
267
|
|
|
210
268
|
# Render statusline with labeled sections
|
moai_adk/statusline/renderer.py
CHANGED
|
@@ -27,6 +27,7 @@ class StatuslineData:
|
|
|
27
27
|
output_style: str = "" # Output style name (e.g., "R2-D2", "Yoda")
|
|
28
28
|
update_available: bool = False
|
|
29
29
|
latest_version: str = ""
|
|
30
|
+
context_window: str = "" # Context window usage (e.g., "15K/200K")
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class StatuslineRenderer:
|
|
@@ -66,7 +67,7 @@ class StatuslineRenderer:
|
|
|
66
67
|
|
|
67
68
|
def _render_compact(self, data: StatuslineData) -> str:
|
|
68
69
|
"""
|
|
69
|
-
Render compact mode:
|
|
70
|
+
Render compact mode: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
|
|
70
71
|
Constraint: <= 80 characters
|
|
71
72
|
|
|
72
73
|
Args:
|
|
@@ -77,6 +78,8 @@ class StatuslineRenderer:
|
|
|
77
78
|
"""
|
|
78
79
|
max_length = self._MODE_CONSTRAINTS["compact"]
|
|
79
80
|
parts = self._build_compact_parts(data)
|
|
81
|
+
|
|
82
|
+
# Join all parts with separator (no brackets)
|
|
80
83
|
result = self._format_config.separator.join(parts)
|
|
81
84
|
|
|
82
85
|
# Adjust if too long
|
|
@@ -88,7 +91,7 @@ class StatuslineRenderer:
|
|
|
88
91
|
def _build_compact_parts(self, data: StatuslineData) -> List[str]:
|
|
89
92
|
"""
|
|
90
93
|
Build parts list for compact mode with labeled sections
|
|
91
|
-
|
|
94
|
+
Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
|
|
92
95
|
|
|
93
96
|
Args:
|
|
94
97
|
data: StatuslineData instance
|
|
@@ -102,16 +105,14 @@ class StatuslineRenderer:
|
|
|
102
105
|
if self._display_config.model:
|
|
103
106
|
parts.append(f"🤖 {data.model}")
|
|
104
107
|
|
|
105
|
-
# Add Claude Code version if available
|
|
106
|
-
if data.claude_version:
|
|
108
|
+
# Add Claude Code version if available and display enabled (Issue #248 fix)
|
|
109
|
+
if self._display_config.version and data.claude_version:
|
|
107
110
|
claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
108
111
|
parts.append(f"🔅 {claude_ver_str}")
|
|
109
112
|
|
|
110
|
-
# Add
|
|
111
|
-
if
|
|
112
|
-
|
|
113
|
-
version_str = data.version if data.version.startswith("v") else f"v{data.version}"
|
|
114
|
-
parts.append(f"🗿 {version_str}")
|
|
113
|
+
# Add context window usage if available (💰 icon)
|
|
114
|
+
if data.context_window:
|
|
115
|
+
parts.append(f"💰 {data.context_window}")
|
|
115
116
|
|
|
116
117
|
# Add output style if not empty
|
|
117
118
|
if data.output_style:
|
|
@@ -125,6 +126,10 @@ class StatuslineRenderer:
|
|
|
125
126
|
if self._display_config.branch:
|
|
126
127
|
parts.append(f"🔀 {data.branch}")
|
|
127
128
|
|
|
129
|
+
# Add directory if display enabled and not empty (Issue #248 fix)
|
|
130
|
+
if self._display_config.directory and data.directory:
|
|
131
|
+
parts.append(f"📁 {data.directory}")
|
|
132
|
+
|
|
128
133
|
# Add active_task if display enabled and not empty
|
|
129
134
|
if self._display_config.active_task and data.active_task.strip():
|
|
130
135
|
parts.append(data.active_task)
|
|
@@ -134,7 +139,7 @@ class StatuslineRenderer:
|
|
|
134
139
|
def _fit_to_constraint(self, data: StatuslineData, max_length: int) -> str:
|
|
135
140
|
"""
|
|
136
141
|
Fit statusline to character constraint by truncating
|
|
137
|
-
|
|
142
|
+
Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
|
|
138
143
|
|
|
139
144
|
Args:
|
|
140
145
|
data: StatuslineData instance
|
|
@@ -143,31 +148,27 @@ class StatuslineRenderer:
|
|
|
143
148
|
Returns:
|
|
144
149
|
Truncated statusline string
|
|
145
150
|
"""
|
|
146
|
-
# Try with truncated branch first
|
|
147
151
|
truncated_branch = self._truncate_branch(data.branch, max_length=30)
|
|
148
|
-
version_str = data.version if data.version.startswith("v") else f"v{data.version}"
|
|
149
152
|
|
|
153
|
+
# Build parts list
|
|
150
154
|
parts = [f"🤖 {data.model}"]
|
|
151
155
|
|
|
152
|
-
#
|
|
153
|
-
if data.claude_version:
|
|
156
|
+
# Issue #248 fix: Check display_config.version before rendering
|
|
157
|
+
if self._display_config.version and data.claude_version:
|
|
154
158
|
claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
155
159
|
parts.append(f"🔅 {claude_ver_str}")
|
|
156
160
|
|
|
157
|
-
|
|
161
|
+
if data.context_window:
|
|
162
|
+
parts.append(f"💰 {data.context_window}")
|
|
158
163
|
|
|
159
|
-
# Add output style if not empty
|
|
160
164
|
if data.output_style:
|
|
161
165
|
parts.append(f"💬 {data.output_style}")
|
|
162
166
|
|
|
163
|
-
# Add git status if display enabled and status not empty
|
|
164
167
|
if self._display_config.git_status and data.git_status:
|
|
165
168
|
parts.append(f"📊 {data.git_status}")
|
|
166
169
|
|
|
167
|
-
# Add Git info
|
|
168
170
|
parts.append(f"🔀 {truncated_branch}")
|
|
169
171
|
|
|
170
|
-
# Only add active_task if it's not empty
|
|
171
172
|
if data.active_task.strip():
|
|
172
173
|
parts.append(data.active_task)
|
|
173
174
|
|
|
@@ -178,35 +179,26 @@ class StatuslineRenderer:
|
|
|
178
179
|
truncated_branch = self._truncate_branch(data.branch, max_length=12)
|
|
179
180
|
parts = [f"🤖 {data.model}"]
|
|
180
181
|
|
|
181
|
-
|
|
182
|
+
# Issue #248 fix: Check display_config.version before rendering
|
|
183
|
+
if self._display_config.version and data.claude_version:
|
|
182
184
|
claude_ver_str = (
|
|
183
185
|
data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
184
186
|
)
|
|
185
187
|
parts.append(f"🔅 {claude_ver_str}")
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if data.git_status:
|
|
190
|
-
parts.append(f"📊 {data.git_status}")
|
|
188
|
+
if data.context_window:
|
|
189
|
+
parts.append(f"💰 {data.context_window}")
|
|
191
190
|
if data.output_style:
|
|
192
191
|
parts.append(f"💬 {data.output_style}")
|
|
192
|
+
if data.git_status:
|
|
193
|
+
parts.append(f"📊 {data.git_status}")
|
|
193
194
|
parts.append(f"🔀 {truncated_branch}")
|
|
194
|
-
if data.active_task.strip():
|
|
195
|
-
parts.append(data.active_task)
|
|
196
195
|
result = self._format_config.separator.join(parts)
|
|
197
196
|
|
|
198
|
-
# If still too long, remove output_style
|
|
197
|
+
# If still too long, remove output_style
|
|
199
198
|
if len(result) > max_length:
|
|
200
199
|
parts = [f"🤖 {data.model}"]
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
claude_ver_str = (
|
|
204
|
-
data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
205
|
-
)
|
|
206
|
-
parts.append(f"🔅 {claude_ver_str}")
|
|
207
|
-
|
|
208
|
-
parts.append(f"🗿 {version_str}")
|
|
209
|
-
|
|
200
|
+
if data.context_window:
|
|
201
|
+
parts.append(f"💰 {data.context_window}")
|
|
210
202
|
if data.git_status:
|
|
211
203
|
parts.append(f"📊 {data.git_status}")
|
|
212
204
|
parts.append(f"🔀 {truncated_branch}")
|
|
@@ -222,7 +214,7 @@ class StatuslineRenderer:
|
|
|
222
214
|
"""
|
|
223
215
|
Render extended mode: Full path and detailed info with labels
|
|
224
216
|
Constraint: <= 120 characters
|
|
225
|
-
|
|
217
|
+
Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
|
|
226
218
|
|
|
227
219
|
Args:
|
|
228
220
|
data: StatuslineData instance
|
|
@@ -231,66 +223,58 @@ class StatuslineRenderer:
|
|
|
231
223
|
Formatted statusline string (max 120 chars)
|
|
232
224
|
"""
|
|
233
225
|
branch = self._truncate_branch(data.branch, max_length=30)
|
|
234
|
-
version_str = data.version if data.version.startswith("v") else f"v{data.version}"
|
|
235
226
|
|
|
227
|
+
# Build parts list
|
|
236
228
|
parts = []
|
|
237
229
|
|
|
238
|
-
# Add model if display enabled
|
|
239
230
|
if self._display_config.model:
|
|
240
231
|
parts.append(f"🤖 {data.model}")
|
|
241
232
|
|
|
242
|
-
#
|
|
243
|
-
if data.claude_version:
|
|
233
|
+
# Issue #248 fix: Check display_config.version before rendering
|
|
234
|
+
if self._display_config.version and data.claude_version:
|
|
244
235
|
claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
245
236
|
parts.append(f"🔅 {claude_ver_str}")
|
|
246
237
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
parts.append(f"🗿 {version_str}")
|
|
238
|
+
if data.context_window:
|
|
239
|
+
parts.append(f"💰 {data.context_window}")
|
|
250
240
|
|
|
251
|
-
# Add output style if not empty
|
|
252
241
|
if data.output_style:
|
|
253
242
|
parts.append(f"💬 {data.output_style}")
|
|
254
243
|
|
|
255
|
-
# Add git status if display enabled and status not empty
|
|
256
244
|
if self._display_config.git_status and data.git_status:
|
|
257
245
|
parts.append(f"📊 {data.git_status}")
|
|
258
246
|
|
|
259
|
-
# Add Git info (development context)
|
|
260
247
|
if self._display_config.branch:
|
|
261
248
|
parts.append(f"🔀 {branch}")
|
|
262
249
|
|
|
263
|
-
#
|
|
250
|
+
# Issue #248 fix: Add directory rendering
|
|
251
|
+
if self._display_config.directory and data.directory:
|
|
252
|
+
parts.append(f"📁 {data.directory}")
|
|
253
|
+
|
|
264
254
|
if self._display_config.active_task and data.active_task.strip():
|
|
265
255
|
parts.append(data.active_task)
|
|
266
256
|
|
|
267
257
|
result = self._format_config.separator.join(parts)
|
|
268
258
|
|
|
269
|
-
# If exceeds limit, try truncating
|
|
259
|
+
# If exceeds limit, try truncating
|
|
270
260
|
if len(result) > 120:
|
|
271
|
-
branch = self._truncate_branch(data.branch, max_length=
|
|
272
|
-
parts = [
|
|
273
|
-
|
|
274
|
-
|
|
261
|
+
branch = self._truncate_branch(data.branch, max_length=20)
|
|
262
|
+
parts = []
|
|
263
|
+
if self._display_config.model:
|
|
264
|
+
parts.append(f"🤖 {data.model}")
|
|
265
|
+
# Issue #248 fix: Check display_config.version before rendering
|
|
266
|
+
if self._display_config.version and data.claude_version:
|
|
275
267
|
claude_ver_str = (
|
|
276
268
|
data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
|
|
277
269
|
)
|
|
278
270
|
parts.append(f"🔅 {claude_ver_str}")
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
# Add git status if display enabled and not empty
|
|
283
|
-
if self._display_config.git_status and data.git_status:
|
|
284
|
-
parts.append(f"📊 {data.git_status}")
|
|
285
|
-
|
|
286
|
-
# Add output style if not empty
|
|
271
|
+
if data.context_window:
|
|
272
|
+
parts.append(f"💰 {data.context_window}")
|
|
287
273
|
if data.output_style:
|
|
288
274
|
parts.append(f"💬 {data.output_style}")
|
|
289
|
-
|
|
275
|
+
if data.git_status:
|
|
276
|
+
parts.append(f"📊 {data.git_status}")
|
|
290
277
|
parts.append(f"🔀 {branch}")
|
|
291
|
-
|
|
292
|
-
if data.active_task.strip():
|
|
293
|
-
parts.append(data.active_task)
|
|
294
278
|
result = self._format_config.separator.join(parts)
|
|
295
279
|
|
|
296
280
|
return result
|
|
@@ -299,7 +283,7 @@ class StatuslineRenderer:
|
|
|
299
283
|
"""
|
|
300
284
|
Render minimal mode: Extreme space constraint with minimal labels
|
|
301
285
|
Constraint: <= 40 characters
|
|
302
|
-
|
|
286
|
+
Format: 🤖 Model | 💰 Context
|
|
303
287
|
|
|
304
288
|
Args:
|
|
305
289
|
data: StatuslineData instance
|
|
@@ -313,27 +297,15 @@ class StatuslineRenderer:
|
|
|
313
297
|
if self._display_config.model:
|
|
314
298
|
parts.append(f"🤖 {data.model}")
|
|
315
299
|
|
|
316
|
-
# Add
|
|
317
|
-
if data.
|
|
318
|
-
|
|
319
|
-
# For minimal mode, just show major.minor (e.g., "v2.0" from "v2.0.46")
|
|
320
|
-
if len(claude_ver_str.split(".")) > 2:
|
|
321
|
-
claude_ver_str = ".".join(claude_ver_str.split(".")[:2])
|
|
322
|
-
parts.append(f"🔅 {claude_ver_str}")
|
|
323
|
-
|
|
324
|
-
# Add MoAI version if display enabled
|
|
325
|
-
if self._display_config.version:
|
|
326
|
-
truncated_ver = self._truncate_version(data.version)
|
|
327
|
-
# Add 'v' prefix if not already present
|
|
328
|
-
version_str = truncated_ver if truncated_ver.startswith("v") else f"v{truncated_ver}"
|
|
329
|
-
parts.append(f"🗿 {version_str}")
|
|
300
|
+
# Add context window usage if available (💰 icon)
|
|
301
|
+
if data.context_window:
|
|
302
|
+
parts.append(f"💰 {data.context_window}")
|
|
330
303
|
|
|
331
304
|
result = self._format_config.separator.join(parts)
|
|
332
305
|
|
|
333
|
-
# Add git_status if it fits
|
|
334
|
-
# and if display is enabled and status not empty
|
|
306
|
+
# Add git_status if it fits
|
|
335
307
|
if self._display_config.git_status and data.git_status:
|
|
336
|
-
status_label = f"
|
|
308
|
+
status_label = f"📊 {data.git_status}"
|
|
337
309
|
if len(result) + len(status_label) + len(self._format_config.separator) <= 40:
|
|
338
310
|
result += f"{self._format_config.separator}{status_label}"
|
|
339
311
|
|