moai-adk 0.15.1__py3-none-any.whl → 0.32.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +2 -6
- moai_adk/__main__.py +136 -21
- moai_adk/cli/__init__.py +6 -2
- moai_adk/cli/commands/__init__.py +1 -4
- moai_adk/cli/commands/analyze.py +116 -0
- moai_adk/cli/commands/doctor.py +17 -5
- moai_adk/cli/commands/init.py +105 -47
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +8 -13
- moai_adk/cli/commands/update.py +1734 -65
- moai_adk/cli/main.py +3 -2
- moai_adk/cli/prompts/init_prompts.py +144 -91
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +672 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +490 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +128 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/__init__.py +0 -1
- 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 +6 -0
- moai_adk/core/config/auto_spec_config.py +340 -0
- moai_adk/core/config/migration.py +147 -16
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +273 -0
- moai_adk/core/diagnostics/slash_commands.py +0 -1
- 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 +8 -1
- moai_adk/core/git/branch.py +0 -1
- moai_adk/core/git/branch_manager.py +2 -10
- moai_adk/core/git/checkpoint.py +1 -7
- moai_adk/core/git/commit.py +0 -1
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/event_detector.py +3 -5
- moai_adk/core/git/manager.py +91 -2
- 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 +20 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_config_resolver.py +485 -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 +481 -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 +0 -1
- moai_adk/core/project/backup_utils.py +2 -7
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +17 -39
- moai_adk/core/project/initializer.py +170 -33
- moai_adk/core/project/phase_executor.py +398 -68
- moai_adk/core/project/validator.py +7 -32
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +37 -101
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- 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 +0 -1
- moai_adk/core/template/backup.py +82 -17
- moai_adk/core/template/config.py +112 -40
- moai_adk/core/template/languages.py +0 -1
- moai_adk/core/template/merger.py +75 -26
- moai_adk/core/template/processor.py +750 -72
- moai_adk/core/template_engine.py +90 -48
- 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 +373 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +264 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +383 -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 +549 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/{alfred/shared/core → moai/lib}/checkpoint.py +9 -36
- 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/{alfred/shared/core → moai/lib}/project.py +63 -44
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/{alfred/core → moai/lib}/timeout.py +40 -16
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
- moai_adk/templates/.claude/settings.json +78 -50
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +312 -283
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +291 -94
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +469 -101
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +128 -0
- moai_adk/templates/.git-hooks/pre-push +220 -13
- 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 +0 -1
- moai_adk/templates/.gitignore +197 -13
- moai_adk/templates/.mcp.json +20 -0
- moai_adk/templates/.moai/cache/personalization.json +10 -0
- moai_adk/templates/.moai/config/config.yaml +344 -0
- moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
- moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
- moai_adk/templates/.moai/config/presets/team.yaml +33 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
- moai_adk/templates/.moai/config/sections/system.yaml +14 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +310 -1050
- moai_adk/utils/__init__.py +24 -2
- moai_adk/utils/banner.py +7 -11
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +241 -0
- moai_adk/utils/logger.py +4 -9
- moai_adk/utils/safe_file_reader.py +206 -0
- moai_adk/{templates/.claude/hooks/alfred/utils → utils}/timeout.py +8 -9
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.32.8.dist-info/METADATA +2478 -0
- moai_adk-0.32.8.dist-info/RECORD +396 -0
- {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -80
- moai_adk/core/tags/__init__.py +0 -86
- moai_adk/core/tags/ci_validator.py +0 -463
- moai_adk/core/tags/cli.py +0 -283
- moai_adk/core/tags/generator.py +0 -109
- moai_adk/core/tags/inserter.py +0 -99
- moai_adk/core/tags/mapper.py +0 -126
- moai_adk/core/tags/parser.py +0 -76
- moai_adk/core/tags/pre_commit_validator.py +0 -393
- moai_adk/core/tags/reporter.py +0 -956
- moai_adk/core/tags/tags.py +0 -149
- moai_adk/core/tags/validator.py +0 -897
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -426
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1854
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -880
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -793
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1084
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
- moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
- moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -419
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
- moai_adk/templates/.github/workflows/release.yml +0 -118
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/tag-report.yml +0 -269
- moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
- moai_adk/templates/.moai/config.json +0 -115
- moai_adk/templates/workflows/go-tag-validation.yml +0 -30
- moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
- moai_adk/templates/workflows/python-tag-validation.yml +0 -42
- moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
- moai_adk-0.15.1.dist-info/METADATA +0 -3094
- moai_adk-0.15.1.dist-info/RECORD +0 -365
- {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Security and Authentication
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Comprehensive security framework for MCP integrations covering multi-provider authentication, API key management, OAuth flows, and secure credential handling.
|
|
5
|
+
|
|
6
|
+
## Quick Implementation
|
|
7
|
+
|
|
8
|
+
### Multi-Provider Authentication
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
class AuthManager:
|
|
12
|
+
def __init__(self):
|
|
13
|
+
self.providers = {
|
|
14
|
+
'figma': FigmaAuthProvider(),
|
|
15
|
+
'notion': NotionAuthProvider(),
|
|
16
|
+
'nano_banana': NanoBananaAuthProvider()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async def authenticate_service(self, service: str, credentials: dict) -> bool:
|
|
20
|
+
"""Authenticate with specific service provider."""
|
|
21
|
+
if service not in self.providers:
|
|
22
|
+
raise ValueError(f"Unknown service: {service}")
|
|
23
|
+
|
|
24
|
+
provider = self.providers[service]
|
|
25
|
+
return await provider.authenticate(credentials)
|
|
26
|
+
|
|
27
|
+
async def get_auth_url(self, service: str, redirect_uri: str) -> str:
|
|
28
|
+
"""Get OAuth URL for service authentication."""
|
|
29
|
+
provider = self.providers[service]
|
|
30
|
+
return provider.get_auth_url(redirect_uri)
|
|
31
|
+
|
|
32
|
+
async def exchange_code_for_token(self, service: str, code: str, redirect_uri: str) -> dict:
|
|
33
|
+
"""Exchange OAuth code for access token."""
|
|
34
|
+
provider = self.providers[service]
|
|
35
|
+
return await provider.exchange_code_for_token(code, redirect_uri)
|
|
36
|
+
|
|
37
|
+
class FigmaAuthProvider:
|
|
38
|
+
def __init__(self):
|
|
39
|
+
self.client_id = os.getenv('FIGMA_CLIENT_ID')
|
|
40
|
+
self.client_secret = os.getenv('FIGMA_CLIENT_SECRET')
|
|
41
|
+
self.redirect_uri = os.getenv('FIGMA_REDIRECT_URI')
|
|
42
|
+
|
|
43
|
+
async def authenticate(self, credentials: dict) -> bool:
|
|
44
|
+
"""Validate Figma API credentials."""
|
|
45
|
+
try:
|
|
46
|
+
client = FigmaClient(credentials['access_token'])
|
|
47
|
+
# Test with a simple API call
|
|
48
|
+
await client.get_user_info()
|
|
49
|
+
return True
|
|
50
|
+
except Exception:
|
|
51
|
+
return False
|
|
52
|
+
|
|
53
|
+
def get_auth_url(self, redirect_uri: str) -> str:
|
|
54
|
+
"""Generate Figma OAuth URL."""
|
|
55
|
+
params = {
|
|
56
|
+
'client_id': self.client_id,
|
|
57
|
+
'redirect_uri': redirect_uri,
|
|
58
|
+
'scope': 'file_read',
|
|
59
|
+
'response_type': 'code',
|
|
60
|
+
'state': self.generate_state()
|
|
61
|
+
}
|
|
62
|
+
return f"https://www.figma.com/oauth?{urlencode(params)}"
|
|
63
|
+
|
|
64
|
+
async def exchange_code_for_token(self, code: str, redirect_uri: str) -> dict:
|
|
65
|
+
"""Exchange OAuth code for access token."""
|
|
66
|
+
# Implementation for token exchange
|
|
67
|
+
pass
|
|
68
|
+
|
|
69
|
+
class NotionAuthProvider:
|
|
70
|
+
def __init__(self):
|
|
71
|
+
self.client_id = os.getenv('NOTION_CLIENT_ID')
|
|
72
|
+
self.client_secret = os.getenv('NOTION_CLIENT_SECRET')
|
|
73
|
+
self.redirect_uri = os.getenv('NOTION_REDIRECT_URI')
|
|
74
|
+
|
|
75
|
+
async def authenticate(self, credentials: dict) -> bool:
|
|
76
|
+
"""Validate Notion API credentials."""
|
|
77
|
+
try:
|
|
78
|
+
client = Client(auth=credentials['access_token'])
|
|
79
|
+
# Test with a simple API call
|
|
80
|
+
await self.search_pages("", client)
|
|
81
|
+
return True
|
|
82
|
+
except Exception:
|
|
83
|
+
return False
|
|
84
|
+
|
|
85
|
+
def get_auth_url(self, redirect_uri: str) -> str:
|
|
86
|
+
"""Generate Notion OAuth URL."""
|
|
87
|
+
params = {
|
|
88
|
+
'client_id': self.client_id,
|
|
89
|
+
'redirect_uri': redirect_uri,
|
|
90
|
+
'response_type': 'code',
|
|
91
|
+
'owner': 'user',
|
|
92
|
+
'state': self.generate_state()
|
|
93
|
+
}
|
|
94
|
+
return f"https://api.notion.com/v1/oauth/authorize?{urlencode(params)}"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Secure Credential Storage
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
class CredentialManager:
|
|
101
|
+
def __init__(self, storage_backend='encrypted_file'):
|
|
102
|
+
self.storage = self._init_storage(storage_backend)
|
|
103
|
+
self.encryption_key = self._get_encryption_key()
|
|
104
|
+
|
|
105
|
+
def _init_storage(self, backend):
|
|
106
|
+
"""Initialize secure storage backend."""
|
|
107
|
+
if backend == 'encrypted_file':
|
|
108
|
+
return EncryptedFileStorage()
|
|
109
|
+
elif backend == 'vault':
|
|
110
|
+
return VaultStorage()
|
|
111
|
+
else:
|
|
112
|
+
raise ValueError(f"Unknown storage backend: {backend}")
|
|
113
|
+
|
|
114
|
+
async def store_credentials(self, service: str, credentials: dict) -> str:
|
|
115
|
+
"""Securely store encrypted credentials."""
|
|
116
|
+
credential_id = str(uuid.uuid4())
|
|
117
|
+
encrypted_data = self._encrypt_credentials(credentials)
|
|
118
|
+
|
|
119
|
+
await self.storage.store(
|
|
120
|
+
key=f"{service}:{credential_id}",
|
|
121
|
+
data=encrypted_data
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
return credential_id
|
|
125
|
+
|
|
126
|
+
async def retrieve_credentials(self, service: str, credential_id: str) -> dict:
|
|
127
|
+
"""Retrieve and decrypt credentials."""
|
|
128
|
+
encrypted_data = await self.storage.retrieve(f"{service}:{credential_id}")
|
|
129
|
+
return self._decrypt_credentials(encrypted_data)
|
|
130
|
+
|
|
131
|
+
def _encrypt_credentials(self, credentials: dict) -> bytes:
|
|
132
|
+
"""Encrypt credentials using Fernet symmetric encryption."""
|
|
133
|
+
from cryptography.fernet import Fernet
|
|
134
|
+
fernet = Fernet(self.encryption_key)
|
|
135
|
+
return fernet.encrypt(json.dumps(credentials).encode())
|
|
136
|
+
|
|
137
|
+
def _decrypt_credentials(self, encrypted_data: bytes) -> dict:
|
|
138
|
+
"""Decrypt credentials."""
|
|
139
|
+
from cryptography.fernet import Fernet
|
|
140
|
+
fernet = Fernet(self.encryption_key)
|
|
141
|
+
decrypted = fernet.decrypt(encrypted_data)
|
|
142
|
+
return json.loads(decrypted.decode())
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Key Features
|
|
146
|
+
|
|
147
|
+
### 1. OAuth 2.0 Support
|
|
148
|
+
- Authorization code flow
|
|
149
|
+
- Client credentials flow
|
|
150
|
+
- PKCE support
|
|
151
|
+
- Token refresh handling
|
|
152
|
+
|
|
153
|
+
### 2. Security Best Practices
|
|
154
|
+
- Encrypted credential storage
|
|
155
|
+
- Secure token management
|
|
156
|
+
- Rate limiting protection
|
|
157
|
+
- Request signing
|
|
158
|
+
|
|
159
|
+
### 3. Multi-Provider Support
|
|
160
|
+
- Standardized authentication interface
|
|
161
|
+
- Provider-specific configurations
|
|
162
|
+
- Token synchronization
|
|
163
|
+
- Session management
|
|
164
|
+
|
|
165
|
+
### 4. Audit and Monitoring
|
|
166
|
+
- Authentication logging
|
|
167
|
+
- Access tracking
|
|
168
|
+
- Security event monitoring
|
|
169
|
+
- Compliance reporting
|
|
170
|
+
|
|
171
|
+
## Security Patterns
|
|
172
|
+
|
|
173
|
+
### 1. OAuth Flow Security
|
|
174
|
+
```python
|
|
175
|
+
class OAuthFlowManager:
|
|
176
|
+
async def secure_oauth_flow(self, service: str, redirect_uri: str):
|
|
177
|
+
# Generate cryptographically secure state
|
|
178
|
+
state = secrets.token_urlsafe(32)
|
|
179
|
+
|
|
180
|
+
# Store state securely with expiration
|
|
181
|
+
await self.store_state(state, expires_in=300) # 5 minutes
|
|
182
|
+
|
|
183
|
+
# Get auth URL with security parameters
|
|
184
|
+
auth_url = await self.auth_manager.get_auth_url(
|
|
185
|
+
service=service,
|
|
186
|
+
redirect_uri=redirect_uri,
|
|
187
|
+
state=state
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
return auth_url
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 2. Token Validation
|
|
194
|
+
```python
|
|
195
|
+
class TokenValidator:
|
|
196
|
+
async def validate_token(self, service: str, token: str) -> bool:
|
|
197
|
+
"""Validate token format and expiration."""
|
|
198
|
+
try:
|
|
199
|
+
# Check token format
|
|
200
|
+
if not self.validate_token_format(token):
|
|
201
|
+
return False
|
|
202
|
+
|
|
203
|
+
# Check token expiration
|
|
204
|
+
if self.is_token_expired(token):
|
|
205
|
+
return False
|
|
206
|
+
|
|
207
|
+
# Validate with service provider
|
|
208
|
+
return await self.validate_with_provider(service, token)
|
|
209
|
+
|
|
210
|
+
except Exception:
|
|
211
|
+
return False
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 3. Access Control
|
|
215
|
+
```python
|
|
216
|
+
class AccessControlManager:
|
|
217
|
+
async def check_permissions(self, user_id: str, service: str, action: str) -> bool:
|
|
218
|
+
"""Check if user has permission for specific action."""
|
|
219
|
+
permissions = await self.get_user_permissions(user_id)
|
|
220
|
+
required_permission = f"{service}:{action}"
|
|
221
|
+
|
|
222
|
+
return required_permission in permissions
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Best Practices
|
|
226
|
+
|
|
227
|
+
### 1. Credential Management
|
|
228
|
+
- Never store credentials in plain text
|
|
229
|
+
- Use environment variables for sensitive data
|
|
230
|
+
- Implement secure credential rotation
|
|
231
|
+
- Monitor for credential compromise
|
|
232
|
+
|
|
233
|
+
### 2. Token Security
|
|
234
|
+
- Use short-lived access tokens
|
|
235
|
+
- Implement secure token refresh
|
|
236
|
+
- Store tokens securely
|
|
237
|
+
- Validate tokens on each use
|
|
238
|
+
|
|
239
|
+
### 3. API Security
|
|
240
|
+
- Implement rate limiting
|
|
241
|
+
- Use HTTPS for all communications
|
|
242
|
+
- Validate all inputs
|
|
243
|
+
- Implement request signing
|
|
244
|
+
|
|
245
|
+
### 4. Monitoring and Logging
|
|
246
|
+
- Log authentication events
|
|
247
|
+
- Monitor for suspicious activity
|
|
248
|
+
- Implement security alerts
|
|
249
|
+
- Regular security audits
|
|
250
|
+
|
|
251
|
+
## Integration Points
|
|
252
|
+
- OAuth 2.0 providers
|
|
253
|
+
- Encryption libraries (cryptography)
|
|
254
|
+
- Secret management systems
|
|
255
|
+
- Security monitoring tools
|
|
256
|
+
- Compliance frameworks
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# Universal MCP Server Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Comprehensive MCP server architecture supporting multiple connectors including Figma, Notion, Nano-Banana, and custom integrations with modular tool registration and unified API management.
|
|
5
|
+
|
|
6
|
+
## Quick Implementation
|
|
7
|
+
|
|
8
|
+
### Base MCP Server with Multiple Connectors
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
from fastmcp import FastMCP
|
|
12
|
+
from typing import Dict, List, Optional
|
|
13
|
+
import asyncio
|
|
14
|
+
|
|
15
|
+
class UniversalMCPServer:
|
|
16
|
+
def __init__(self, server_name: str):
|
|
17
|
+
self.server = FastMCP(server_name)
|
|
18
|
+
self.connectors = {}
|
|
19
|
+
self.setup_connectors()
|
|
20
|
+
self.register_tools()
|
|
21
|
+
|
|
22
|
+
def setup_connectors(self):
|
|
23
|
+
"""Initialize all available connectors."""
|
|
24
|
+
self.connectors = {
|
|
25
|
+
'figma': FigmaConnector(),
|
|
26
|
+
'notion': NotionConnector(),
|
|
27
|
+
'nano_banana': NanoBananaConnector(),
|
|
28
|
+
'custom': CustomConnector()
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
def register_tools(self):
|
|
32
|
+
"""Register all tools from connectors."""
|
|
33
|
+
for connector_name, connector in self.connectors.items():
|
|
34
|
+
connector.register_tools(self.server)
|
|
35
|
+
|
|
36
|
+
# Figma Connector
|
|
37
|
+
class FigmaConnector:
|
|
38
|
+
def __init__(self, api_key: str = None):
|
|
39
|
+
self.api_key = api_key
|
|
40
|
+
self.figma_client = None
|
|
41
|
+
|
|
42
|
+
async def initialize(self):
|
|
43
|
+
if self.api_key:
|
|
44
|
+
self.figma_client = FigmaClient(self.api_key)
|
|
45
|
+
|
|
46
|
+
def register_tools(self, server):
|
|
47
|
+
@server.tool()
|
|
48
|
+
async def extract_figma_components(
|
|
49
|
+
file_id: str,
|
|
50
|
+
component_names: Optional[List[str]] = None
|
|
51
|
+
) -> dict:
|
|
52
|
+
"""Extract React components from Figma design."""
|
|
53
|
+
if not self.figma_client:
|
|
54
|
+
raise ValueError("Figma API key not configured")
|
|
55
|
+
|
|
56
|
+
file_data = await self.figma_client.get_file(file_id)
|
|
57
|
+
components = self.parse_components(file_data, component_names)
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
"components": components,
|
|
61
|
+
"design_tokens": self.extract_design_tokens(file_data),
|
|
62
|
+
"metadata": self.extract_metadata(file_data)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@server.tool()
|
|
66
|
+
async def sync_figma_tokens(
|
|
67
|
+
file_id: str,
|
|
68
|
+
output_path: str = "src/styles/tokens.json"
|
|
69
|
+
) -> dict:
|
|
70
|
+
"""Sync design tokens from Figma to code."""
|
|
71
|
+
file_data = await self.figma_client.get_file(file_id)
|
|
72
|
+
tokens = self.extract_design_tokens(file_data)
|
|
73
|
+
|
|
74
|
+
# Convert to W3C DTCG 2.0 format
|
|
75
|
+
formatted_tokens = self.format_design_tokens(tokens)
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
"tokens": formatted_tokens,
|
|
79
|
+
"file_path": output_path,
|
|
80
|
+
"sync_status": "success"
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Notion Connector
|
|
84
|
+
class NotionConnector:
|
|
85
|
+
def __init__(self, api_key: str = None):
|
|
86
|
+
self.api_key = api_key
|
|
87
|
+
self.notion_client = None
|
|
88
|
+
|
|
89
|
+
async def initialize(self):
|
|
90
|
+
if self.api_key:
|
|
91
|
+
self.notion_client = NotionClient(auth=self.api_key)
|
|
92
|
+
|
|
93
|
+
def register_tools(self, server):
|
|
94
|
+
@server.tool()
|
|
95
|
+
async def query_notion_database(
|
|
96
|
+
database_id: str,
|
|
97
|
+
query: Optional[Dict] = None
|
|
98
|
+
) -> dict:
|
|
99
|
+
"""Query Notion database with filtering."""
|
|
100
|
+
if not self.notion_client:
|
|
101
|
+
raise ValueError("Notion API key not configured")
|
|
102
|
+
|
|
103
|
+
database = self.notion_client.databases.retrieve(database_id)
|
|
104
|
+
results = self.notion_client.databases.query(
|
|
105
|
+
database_id=database_id,
|
|
106
|
+
query=query or {}
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
"results": results.get("results", []),
|
|
111
|
+
"database_info": database,
|
|
112
|
+
"total_count": len(results.get("results", []))
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@server.tool()
|
|
116
|
+
async def create_notion_page(
|
|
117
|
+
database_id: str,
|
|
118
|
+
properties: Dict,
|
|
119
|
+
content: Optional[List[Dict]] = None
|
|
120
|
+
) -> dict:
|
|
121
|
+
"""Create new page in Notion database."""
|
|
122
|
+
page_data = {
|
|
123
|
+
"parent": {"database_id": database_id},
|
|
124
|
+
"properties": properties
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if content:
|
|
128
|
+
page_data["children"] = content
|
|
129
|
+
|
|
130
|
+
new_page = self.notion_client.pages.create(page_data)
|
|
131
|
+
return {"page": new_page, "status": "created"}
|
|
132
|
+
|
|
133
|
+
# Nano-Banana Connector
|
|
134
|
+
class NanoBananaConnector:
|
|
135
|
+
def __init__(self, api_key: str = None):
|
|
136
|
+
self.api_key = api_key
|
|
137
|
+
self.nb_client = None
|
|
138
|
+
|
|
139
|
+
async def initialize(self):
|
|
140
|
+
if self.api_key:
|
|
141
|
+
self.nb_client = NanoBananaClient(api_key=self.api_key)
|
|
142
|
+
|
|
143
|
+
def register_tools(self, server):
|
|
144
|
+
@server.tool()
|
|
145
|
+
async def generate_ai_content(
|
|
146
|
+
prompt: str,
|
|
147
|
+
model: str = "claude-3-5-sonnet-20241022",
|
|
148
|
+
max_tokens: int = 4000
|
|
149
|
+
) -> dict:
|
|
150
|
+
"""Generate content using Nano-Banana AI models."""
|
|
151
|
+
if not self.nb_client:
|
|
152
|
+
raise ValueError("Nano-Banana API key not configured")
|
|
153
|
+
|
|
154
|
+
response = await self.nb_client.chat.completions.create(
|
|
155
|
+
model=model,
|
|
156
|
+
messages=[{"role": "user", "content": prompt}],
|
|
157
|
+
max_tokens=max_tokens
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
"content": response.choices[0].message.content,
|
|
162
|
+
"model": model,
|
|
163
|
+
"usage": response.usage
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@server.tool()
|
|
167
|
+
async def analyze_with_ai(
|
|
168
|
+
content: str,
|
|
169
|
+
analysis_type: str = "summary"
|
|
170
|
+
) -> dict:
|
|
171
|
+
"""Analyze content using AI models."""
|
|
172
|
+
analysis_prompts = {
|
|
173
|
+
"summary": "Please provide a comprehensive summary of the following content:",
|
|
174
|
+
"sentiment": "Analyze the sentiment and emotional tone of this content:",
|
|
175
|
+
"key_points": "Extract the key points and main ideas from this content:",
|
|
176
|
+
"action_items": "Identify action items and next steps from this content:"
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
prompt = f"{analysis_prompts.get(analysis_type, analysis_prompts['summary'])}\n\n{content}"
|
|
180
|
+
|
|
181
|
+
response = await self.nb_client.chat.completions.create(
|
|
182
|
+
model="claude-3-5-sonnet-20241022",
|
|
183
|
+
messages=[{"role": "user", "content": prompt}],
|
|
184
|
+
max_tokens=2000
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
return {
|
|
188
|
+
"analysis": response.choices[0].message.content,
|
|
189
|
+
"type": analysis_type,
|
|
190
|
+
"content_length": len(content)
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Key Features
|
|
195
|
+
|
|
196
|
+
### 1. Multi-Connector Architecture
|
|
197
|
+
- Unified server interface
|
|
198
|
+
- Modular connector registration
|
|
199
|
+
- Dynamic tool discovery
|
|
200
|
+
- Configuration management
|
|
201
|
+
|
|
202
|
+
### 2. Service Integration
|
|
203
|
+
- Figma design system integration
|
|
204
|
+
- Notion knowledge base management
|
|
205
|
+
- Nano-Banana AI content generation
|
|
206
|
+
- Custom connector framework
|
|
207
|
+
|
|
208
|
+
### 3. Tool Registration
|
|
209
|
+
- Automatic tool discovery
|
|
210
|
+
- Parameter validation
|
|
211
|
+
- Error handling
|
|
212
|
+
- Response standardization
|
|
213
|
+
|
|
214
|
+
### 4. Configuration Management
|
|
215
|
+
- Secure API key storage
|
|
216
|
+
- Environment variable support
|
|
217
|
+
- Runtime configuration
|
|
218
|
+
- Service health checks
|
|
219
|
+
|
|
220
|
+
## Connector Patterns
|
|
221
|
+
|
|
222
|
+
### Standard Interface
|
|
223
|
+
```python
|
|
224
|
+
class BaseConnector:
|
|
225
|
+
def __init__(self, api_key: str = None):
|
|
226
|
+
self.api_key = api_key
|
|
227
|
+
self.client = None
|
|
228
|
+
|
|
229
|
+
async def initialize(self):
|
|
230
|
+
"""Initialize connector with API client."""
|
|
231
|
+
pass
|
|
232
|
+
|
|
233
|
+
def register_tools(self, server):
|
|
234
|
+
"""Register connector tools with MCP server."""
|
|
235
|
+
pass
|
|
236
|
+
|
|
237
|
+
async def health_check(self):
|
|
238
|
+
"""Check connector health and connectivity."""
|
|
239
|
+
pass
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Tool Registration
|
|
243
|
+
- Decorator-based registration
|
|
244
|
+
- Automatic parameter validation
|
|
245
|
+
- Standardized response format
|
|
246
|
+
- Error handling and retry logic
|
|
247
|
+
|
|
248
|
+
## Integration Points
|
|
249
|
+
- FastMCP server framework
|
|
250
|
+
- External API clients
|
|
251
|
+
- Authentication systems
|
|
252
|
+
- Configuration management
|
|
253
|
+
- Monitoring and logging
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# moai-lang-unified
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This unified programming language skill consolidates 25+ individual `moai-lang-*` skills into a single, comprehensive skill that maintains all the expertise and functionality while providing cross-language capabilities.
|
|
6
|
+
|
|
7
|
+
## Replaced Skills
|
|
8
|
+
|
|
9
|
+
This unified skill replaces the following 25 individual language skills:
|
|
10
|
+
|
|
11
|
+
### Scripting & Dynamic Languages
|
|
12
|
+
- `moai-lang-python` - Python 3.13 with FastAPI, Django, async patterns
|
|
13
|
+
- `moai-lang-javascript` - JavaScript ES2025 with Node.js, Express
|
|
14
|
+
- `moai-lang-typescript` - TypeScript 5.9 with React, Next.js, type safety
|
|
15
|
+
- `moai-lang-php` - PHP 8.4 with Laravel, Symfony
|
|
16
|
+
- `moai-lang-ruby` - Ruby 3.3 with Rails, Sinatra
|
|
17
|
+
- `moai-lang-shell` - Shell/Bash scripting and DevOps
|
|
18
|
+
|
|
19
|
+
### Systems & Performance Languages
|
|
20
|
+
- `moai-lang-go` - Go 1.23 with concurrency, Fiber
|
|
21
|
+
- `moai-lang-rust` - Rust 1.91 with memory safety, Tokio
|
|
22
|
+
- `moai-lang-cpp` - C++23 with performance optimization
|
|
23
|
+
- `moai-lang-c` - C17 with low-level programming
|
|
24
|
+
|
|
25
|
+
### Enterprise & JVM Languages
|
|
26
|
+
- `moai-lang-java` - Java 21 LTS with Spring Boot
|
|
27
|
+
- `moai-lang-kotlin` - Kotlin 2.0 with coroutines
|
|
28
|
+
- `moai-lang-scala` - Scala 3.4 with functional programming
|
|
29
|
+
- `moai-lang-jvm` - JVM ecosystem patterns
|
|
30
|
+
|
|
31
|
+
### Mobile & Platform Languages
|
|
32
|
+
- `moai-lang-swift` - Swift 6.0 for iOS and server-side
|
|
33
|
+
- `moai-lang-csharp` - C# 12 with .NET 8
|
|
34
|
+
- `moai-lang-dart` - Dart 3.5 with Flutter
|
|
35
|
+
|
|
36
|
+
### Data & Domain Languages
|
|
37
|
+
- `moai-lang-r` - R 4.4 for statistical computing
|
|
38
|
+
- `moai-lang-sql` - SQL:2023 across all RDBMS
|
|
39
|
+
- `moai-lang-elixir` - Elixir 1.17 with Phoenix
|
|
40
|
+
|
|
41
|
+
### Specialized Languages
|
|
42
|
+
- `moai-lang-html-css` - HTML5 and CSS3 for web development
|
|
43
|
+
- `moai-lang-mobile` - Cross-platform mobile development
|
|
44
|
+
- `moai-lang-systems` - Systems programming patterns
|
|
45
|
+
|
|
46
|
+
## Key Advantages
|
|
47
|
+
|
|
48
|
+
### 1. Unified Experience
|
|
49
|
+
- Single skill for all programming language expertise
|
|
50
|
+
- Consistent documentation and examples across languages
|
|
51
|
+
- Cross-language comparisons and migration guides
|
|
52
|
+
|
|
53
|
+
### 2. Enhanced Functionality
|
|
54
|
+
- Cross-language integration patterns
|
|
55
|
+
- Polyglot system design guidance
|
|
56
|
+
- Language selection recommendations
|
|
57
|
+
|
|
58
|
+
### 3. Improved Performance
|
|
59
|
+
- Automatic language detection and context switching
|
|
60
|
+
- Reduced skill loading overhead
|
|
61
|
+
- Optimized Context7 integration
|
|
62
|
+
|
|
63
|
+
### 4. Maintenance Efficiency
|
|
64
|
+
- Single point of maintenance for language expertise
|
|
65
|
+
- Consistent updates across all languages
|
|
66
|
+
- Simplified dependency management
|
|
67
|
+
|
|
68
|
+
## Usage
|
|
69
|
+
|
|
70
|
+
### Automatic Detection
|
|
71
|
+
The skill automatically detects the programming language context based on:
|
|
72
|
+
- File extensions (`.py`, `.ts`, `.go`, `.rs`, `.java`, etc.)
|
|
73
|
+
- Language-specific keywords and patterns
|
|
74
|
+
- Framework and library mentions
|
|
75
|
+
|
|
76
|
+
### Manual Invocation
|
|
77
|
+
```bash
|
|
78
|
+
# Get Python expertise
|
|
79
|
+
Skill("moai-lang-unified") # with .py files
|
|
80
|
+
|
|
81
|
+
# Get Go expertise
|
|
82
|
+
Skill("moai-lang-unified") # with .go files
|
|
83
|
+
|
|
84
|
+
# Cross-language comparison
|
|
85
|
+
Skill("moai-lang-unified") # with multiple languages
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Progressive Disclosure
|
|
89
|
+
- Quick Reference: Immediate language patterns and examples
|
|
90
|
+
- Implementation Guide: In-depth language-specific guidance
|
|
91
|
+
- Cross-Language: Comparisons, integration, and migration patterns
|
|
92
|
+
|
|
93
|
+
## File Structure
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
moai-lang-unified/
|
|
97
|
+
SKILL.md # Main skill file (242 lines, under 500 limit)
|
|
98
|
+
reference.md # Comprehensive language reference and mappings
|
|
99
|
+
examples.md # Multi-language code examples and patterns
|
|
100
|
+
README.md # This file
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Migration Guide
|
|
104
|
+
|
|
105
|
+
### For Users
|
|
106
|
+
1. Replace `Skill("moai-lang-python")` with `Skill("moai-lang-unified")`
|
|
107
|
+
2. The unified skill will automatically detect the language context
|
|
108
|
+
3. All previous functionality is preserved and enhanced
|
|
109
|
+
|
|
110
|
+
### For Developers
|
|
111
|
+
- Individual language skills can be safely removed
|
|
112
|
+
- This unified skill provides equivalent or superior functionality
|
|
113
|
+
- Context7 integration is enhanced with comprehensive library mappings
|
|
114
|
+
|
|
115
|
+
## Validation
|
|
116
|
+
|
|
117
|
+
- SKILL.md complies with 500-line limit (242 lines)
|
|
118
|
+
- All 25+ languages covered with latest versions
|
|
119
|
+
- Context7 integration with comprehensive library mappings
|
|
120
|
+
- Cross-language patterns and comparisons
|
|
121
|
+
- Production-ready code examples
|
|
122
|
+
- Progressive disclosure architecture
|
|
123
|
+
- Official Claude Code standards compliance
|
|
124
|
+
|
|
125
|
+
## Future Updates
|
|
126
|
+
|
|
127
|
+
This unified skill will be maintained as the single source of truth for programming language expertise in the MoAI-ADK ecosystem. All language updates and new language support will be added here rather than creating separate skills.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
Last Updated: 2025-11-25
|
|
132
|
+
Status: Production Ready (Enterprise v1.0.0)
|
|
133
|
+
Maintainer: MoAI-ADK Team
|