moai-adk 0.34.0__py3-none-any.whl → 1.1.0__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.
- moai_adk/__main__.py +136 -5
- moai_adk/astgrep/__init__.py +37 -0
- moai_adk/astgrep/analyzer.py +522 -0
- moai_adk/astgrep/models.py +124 -0
- moai_adk/astgrep/rules.py +179 -0
- moai_adk/cli/commands/analyze.py +11 -2
- moai_adk/cli/commands/doctor.py +7 -1
- moai_adk/cli/commands/init.py +321 -11
- moai_adk/cli/commands/language.py +7 -1
- moai_adk/cli/commands/rank.py +449 -0
- moai_adk/cli/commands/status.py +7 -1
- moai_adk/cli/commands/switch.py +325 -0
- moai_adk/cli/commands/update.py +296 -23
- moai_adk/cli/prompts/init_prompts.py +362 -66
- moai_adk/cli/prompts/translations/__init__.py +573 -0
- moai_adk/cli/ui/prompts.py +61 -2
- moai_adk/cli/worktree/cli.py +106 -1
- moai_adk/cli/worktree/manager.py +155 -0
- moai_adk/core/config/unified.py +244 -63
- moai_adk/core/credentials.py +264 -0
- 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/integration/engine.py +2 -2
- moai_adk/core/integration/integration_tester.py +5 -5
- moai_adk/core/language_config_resolver.py +9 -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/model_allocator.py +241 -0
- moai_adk/core/project/backup_utils.py +12 -2
- moai_adk/core/project/initializer.py +44 -87
- moai_adk/core/project/phase_executor.py +95 -33
- moai_adk/core/project/validator.py +16 -1
- moai_adk/core/quality/trust_checker.py +30 -10
- moai_adk/core/rollback_manager.py +60 -25
- moai_adk/core/template/backup.py +88 -6
- moai_adk/core/template/config.py +33 -9
- moai_adk/core/template/merger.py +34 -8
- moai_adk/core/template/processor.py +334 -11
- 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/foundation/__init__.py +1 -20
- moai_adk/foundation/testing.py +1 -1
- moai_adk/loop/__init__.py +54 -0
- moai_adk/loop/controller.py +305 -0
- moai_adk/loop/feedback.py +230 -0
- moai_adk/loop/state.py +209 -0
- moai_adk/loop/storage.py +220 -0
- moai_adk/lsp/__init__.py +70 -0
- moai_adk/lsp/client.py +320 -0
- moai_adk/lsp/models.py +261 -0
- moai_adk/lsp/protocol.py +404 -0
- moai_adk/lsp/server_manager.py +248 -0
- moai_adk/project/configuration.py +8 -1
- moai_adk/py.typed +0 -0
- moai_adk/ralph/__init__.py +37 -0
- moai_adk/ralph/engine.py +307 -0
- moai_adk/rank/__init__.py +21 -0
- moai_adk/rank/auth.py +425 -0
- moai_adk/rank/client.py +557 -0
- moai_adk/rank/config.py +147 -0
- moai_adk/rank/hook.py +1503 -0
- moai_adk/rank/py.typed +0 -0
- moai_adk/statusline/__init__.py +3 -0
- moai_adk/statusline/enhanced_output_style_detector.py +5 -5
- moai_adk/statusline/main.py +20 -1
- moai_adk/statusline/memory_collector.py +268 -0
- moai_adk/statusline/renderer.py +54 -38
- moai_adk/tag_system/__init__.py +48 -0
- moai_adk/tag_system/atomic_ops.py +117 -0
- moai_adk/tag_system/linkage.py +335 -0
- moai_adk/tag_system/parser.py +176 -0
- moai_adk/tag_system/validator.py +200 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
- moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
- moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
- moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
- moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
- moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
- moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
- moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
- moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
- moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
- moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
- moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
- moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
- moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
- moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
- moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
- moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
- moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
- moai_adk/templates/.claude/commands/moai/fix.md +264 -0
- moai_adk/templates/.claude/commands/moai/loop.md +363 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
- moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
- moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -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.py +376 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
- moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
- moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
- moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
- moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
- moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
- 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/renderer.py +359 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
- moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
- moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
- moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
- moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
- moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
- moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
- moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
- moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
- moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
- moai_adk/templates/.claude/settings.json +154 -77
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
- 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 +226 -320
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
- 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-uiux/SKILL.md +118 -339
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
- 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-custom-slash-commands-official.md +32 -22
- 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-plugin-marketplaces-official.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -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-context/SKILL.md +96 -316
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
- 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-philosopher/SKILL.md +14 -18
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
- moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -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 +1136 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
- 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 +65 -542
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -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 +889 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -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 +42 -279
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -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 +1323 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -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 +1087 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -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 +1024 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
- 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-swift/SKILL.md +88 -457
- 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-typescript/SKILL.md +75 -283
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
- 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-shadcn/SKILL.md +90 -287
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
- 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 +75 -330
- moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -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 +100 -340
- 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 +113 -326
- 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 +71 -302
- 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 +101 -412
- 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 +96 -327
- 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 +103 -428
- 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 +96 -446
- 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-tool-ast-grep/SKILL.md +193 -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-workflow-jit-docs/SKILL.md +225 -423
- moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
- 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-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 +162 -59
- moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
- moai_adk/templates/.gitignore +65 -107
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +2 -20
- moai_adk/templates/.moai/announcements/en.json +18 -0
- moai_adk/templates/.moai/announcements/ja.json +18 -0
- moai_adk/templates/.moai/announcements/ko.json +18 -0
- moai_adk/templates/.moai/announcements/zh.json +18 -0
- moai_adk/templates/.moai/config/config.yaml +8 -2
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/sections/language.yaml +2 -2
- moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
- moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
- moai_adk/templates/.moai/config/sections/project.yaml +2 -2
- moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
- moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
- moai_adk/templates/.moai/config/sections/system.yaml +46 -1
- moai_adk/templates/.moai/config/sections/user.yaml +1 -1
- moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
- moai_adk/templates/.moai/llm-configs/glm.json +22 -0
- moai_adk/templates/CLAUDE.ja.md +343 -0
- moai_adk/templates/CLAUDE.ko.md +343 -0
- moai_adk/templates/CLAUDE.md +200 -499
- moai_adk/templates/CLAUDE.zh.md +343 -0
- moai_adk/utils/common.py +37 -0
- moai_adk/version.py +1 -1
- moai_adk-1.1.0.dist-info/METADATA +2443 -0
- moai_adk-1.1.0.dist-info/RECORD +701 -0
- {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
- moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -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/agents/moai/ai-nano-banana.md +0 -670
- moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
- 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 -175
- 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 -411
- 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/config/questions/_schema.yaml +0 -151
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
- moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
- moai_adk-0.34.0.dist-info/METADATA +0 -2999
- moai_adk-0.34.0.dist-info/RECORD +0 -463
- moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
- /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
- /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.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
|
@@ -1,428 +1,108 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: moai-platform-neon
|
|
3
|
-
description: Neon serverless PostgreSQL specialist covering auto-scaling, database branching, PITR, and connection pooling. Use when building serverless apps needing PostgreSQL.
|
|
4
|
-
version: 1.0
|
|
5
|
-
category: platform
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
name: "moai-platform-neon"
|
|
3
|
+
description: "Neon serverless PostgreSQL specialist covering auto-scaling, database branching, PITR, and connection pooling. Use when building serverless apps needing PostgreSQL, implementing preview environments, or optimizing database costs."
|
|
4
|
+
version: 2.1.0
|
|
5
|
+
category: "platform"
|
|
6
|
+
modularized: true
|
|
7
|
+
user-invocable: false
|
|
8
|
+
tags: ['neon', 'postgresql', 'serverless', 'branching', 'auto-scaling']
|
|
9
|
+
context7-libraries: ['/neondatabase/neon']
|
|
10
|
+
related-skills: ['moai-platform-supabase', 'moai-lang-typescript', 'moai-domain-database']
|
|
11
|
+
updated: 2026-01-11
|
|
12
|
+
status: "active"
|
|
13
|
+
allowed-tools:
|
|
14
|
+
- Read
|
|
15
|
+
- Write
|
|
16
|
+
- Bash
|
|
17
|
+
- Grep
|
|
18
|
+
- Glob
|
|
19
|
+
- mcp__context7__resolve-library-id
|
|
20
|
+
- mcp__context7__get-library-docs
|
|
10
21
|
---
|
|
11
22
|
|
|
12
23
|
# moai-platform-neon: Neon Serverless PostgreSQL Specialist
|
|
13
24
|
|
|
14
|
-
## Quick Reference
|
|
25
|
+
## Quick Reference
|
|
15
26
|
|
|
16
27
|
Neon Serverless PostgreSQL Expertise: Specialized knowledge for Neon serverless PostgreSQL covering auto-scaling, scale-to-zero compute, database branching, Point-in-Time Recovery, and modern ORM integration.
|
|
17
28
|
|
|
18
29
|
### Core Capabilities
|
|
19
30
|
|
|
20
|
-
Serverless Compute
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
Serverless Compute provides auto-scaling PostgreSQL with scale-to-zero for cost optimization.
|
|
32
|
+
|
|
33
|
+
Database Branching enables instant copy-on-write branches for dev, staging, and preview environments.
|
|
34
|
+
|
|
35
|
+
Point-in-Time Recovery offers 30-day PITR with instant restore to any timestamp.
|
|
36
|
+
|
|
37
|
+
Connection Pooling provides built-in connection pooler for serverless and edge compatibility.
|
|
38
|
+
|
|
39
|
+
PostgreSQL 16 ensures full PostgreSQL 16 compatibility with extensions support.
|
|
25
40
|
|
|
26
41
|
### Quick Decision Guide
|
|
27
42
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
43
|
+
Need serverless PostgreSQL with auto-scaling: Use Neon.
|
|
44
|
+
|
|
45
|
+
Need database branching for CI/CD: Use Neon branching.
|
|
46
|
+
|
|
47
|
+
Need edge-compatible database: Use Neon with connection pooling.
|
|
48
|
+
|
|
49
|
+
Need instant preview environments: Use Neon branch per PR.
|
|
50
|
+
|
|
51
|
+
Need vector search: Consider Supabase with pgvector instead.
|
|
52
|
+
|
|
53
|
+
### Context7 Documentation Access
|
|
54
|
+
|
|
55
|
+
To fetch the latest Neon documentation:
|
|
32
56
|
|
|
33
|
-
|
|
57
|
+
Step 1: Resolve the library ID using mcp__context7__resolve-library-id with library name "neondatabase/neon".
|
|
34
58
|
|
|
35
|
-
|
|
59
|
+
Step 2: Fetch documentation using mcp__context7__get-library-docs with the resolved Context7 ID, specifying topics like "branching", "connection pooling", or "auto-scaling".
|
|
36
60
|
|
|
37
61
|
---
|
|
38
62
|
|
|
39
|
-
##
|
|
63
|
+
## Module Index
|
|
40
64
|
|
|
41
|
-
|
|
65
|
+
This skill is organized into focused modules for progressive disclosure:
|
|
66
|
+
|
|
67
|
+
### Core Modules
|
|
68
|
+
|
|
69
|
+
Database Branching at modules/branching-workflows.md covers copy-on-write branches for development, preview environments, and CI/CD integration with GitHub Actions.
|
|
70
|
+
|
|
71
|
+
Auto-Scaling and Compute at modules/auto-scaling.md covers compute unit configuration, scale-to-zero settings, and cost optimization strategies.
|
|
42
72
|
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npm install @neondatabase/serverless
|
|
46
|
-
npm install drizzle-orm # Optional: Drizzle ORM
|
|
47
|
-
npm install @prisma/client prisma # Optional: Prisma ORM
|
|
48
|
-
```
|
|
73
|
+
Connection Pooling at modules/connection-pooling.md covers serverless connection pooling for edge runtimes, WebSocket configuration, and pool sizing.
|
|
49
74
|
|
|
50
|
-
|
|
51
|
-
```env
|
|
52
|
-
# Direct connection (for migrations)
|
|
53
|
-
DATABASE_URL=postgresql://user:pass@ep-xxx.region.neon.tech/dbname?sslmode=require
|
|
75
|
+
PITR and Backups at modules/pitr-backups.md covers point-in-time recovery, branch restoration, and backup strategies.
|
|
54
76
|
|
|
55
|
-
|
|
56
|
-
DATABASE_URL_POOLED=postgresql://user:pass@ep-xxx-pooler.region.neon.tech/dbname?sslmode=require
|
|
77
|
+
### Supporting Files
|
|
57
78
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
79
|
+
Reference Guide at reference.md provides API reference, environment configuration, and provider comparison.
|
|
80
|
+
|
|
81
|
+
Code Examples at examples.md provides complete working examples for common integration patterns.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Implementation Guide
|
|
86
|
+
|
|
87
|
+
### Setup and Configuration
|
|
88
|
+
|
|
89
|
+
Package Installation requires @neondatabase/serverless from npm. Optionally install drizzle-orm for Drizzle ORM integration or @prisma/client and prisma for Prisma ORM integration.
|
|
90
|
+
|
|
91
|
+
Environment Configuration requires DATABASE_URL for direct connection used for migrations, formatted as postgresql://user:pass@ep-xxx.region.neon.tech/dbname?sslmode=require. DATABASE_URL_POOLED provides pooled connection for serverless and edge, formatted as postgresql://user:pass@ep-xxx-pooler.region.neon.tech/dbname?sslmode=require. NEON_API_KEY provides the Neon API key for branching operations. NEON_PROJECT_ID provides the project identifier.
|
|
62
92
|
|
|
63
93
|
### Serverless Driver Usage
|
|
64
94
|
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import { neon } from '@neondatabase/serverless'
|
|
68
|
-
|
|
69
|
-
const sql = neon(process.env.DATABASE_URL!)
|
|
70
|
-
|
|
71
|
-
// Simple query
|
|
72
|
-
const users = await sql`SELECT * FROM users WHERE active = true`
|
|
73
|
-
|
|
74
|
-
// Parameterized query (SQL injection safe)
|
|
75
|
-
const userId = 'user-123'
|
|
76
|
-
const user = await sql`SELECT * FROM users WHERE id = ${userId}`
|
|
77
|
-
|
|
78
|
-
// Transaction support
|
|
79
|
-
const result = await sql.transaction([
|
|
80
|
-
sql`UPDATE accounts SET balance = balance - 100 WHERE id = ${fromId}`,
|
|
81
|
-
sql`UPDATE accounts SET balance = balance + 100 WHERE id = ${toId}`
|
|
82
|
-
])
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
WebSocket Connection for Session Persistence:
|
|
86
|
-
```typescript
|
|
87
|
-
import { Pool, neonConfig } from '@neondatabase/serverless'
|
|
88
|
-
import ws from 'ws'
|
|
89
|
-
|
|
90
|
-
// Required for Node.js environments
|
|
91
|
-
neonConfig.webSocketConstructor = ws
|
|
92
|
-
|
|
93
|
-
const pool = new Pool({ connectionString: process.env.DATABASE_URL })
|
|
94
|
-
|
|
95
|
-
// Use pool for session-based operations
|
|
96
|
-
const client = await pool.connect()
|
|
97
|
-
try {
|
|
98
|
-
await client.query('BEGIN')
|
|
99
|
-
await client.query('INSERT INTO logs (message) VALUES ($1)', ['Action'])
|
|
100
|
-
await client.query('COMMIT')
|
|
101
|
-
} finally {
|
|
102
|
-
client.release()
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Database Branching
|
|
107
|
-
|
|
108
|
-
Branch Management API:
|
|
109
|
-
```typescript
|
|
110
|
-
class NeonBranchManager {
|
|
111
|
-
private apiKey: string
|
|
112
|
-
private projectId: string
|
|
113
|
-
private baseUrl = 'https://console.neon.tech/api/v2'
|
|
114
|
-
|
|
115
|
-
constructor(apiKey: string, projectId: string) {
|
|
116
|
-
this.apiKey = apiKey
|
|
117
|
-
this.projectId = projectId
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
private async request(path: string, options: RequestInit = {}) {
|
|
121
|
-
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
122
|
-
...options,
|
|
123
|
-
headers: {
|
|
124
|
-
'Authorization': `Bearer ${this.apiKey}`,
|
|
125
|
-
'Content-Type': 'application/json',
|
|
126
|
-
...options.headers
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
if (!response.ok) throw new Error(`Neon API error: ${response.statusText}`)
|
|
130
|
-
return response.json()
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
async createBranch(name: string, parentId: string = 'main') {
|
|
134
|
-
return this.request(`/projects/${this.projectId}/branches`, {
|
|
135
|
-
method: 'POST',
|
|
136
|
-
body: JSON.stringify({
|
|
137
|
-
branch: { name, parent_id: parentId }
|
|
138
|
-
})
|
|
139
|
-
})
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
async deleteBranch(branchId: string) {
|
|
143
|
-
return this.request(`/projects/${this.projectId}/branches/${branchId}`, {
|
|
144
|
-
method: 'DELETE'
|
|
145
|
-
})
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
async listBranches() {
|
|
149
|
-
return this.request(`/projects/${this.projectId}/branches`)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
async getBranchConnectionString(branchId: string) {
|
|
153
|
-
const endpoints = await this.request(
|
|
154
|
-
`/projects/${this.projectId}/branches/${branchId}/endpoints`
|
|
155
|
-
)
|
|
156
|
-
return endpoints.endpoints[0]?.connection_uri
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Preview Branch for Pull Requests:
|
|
162
|
-
```typescript
|
|
163
|
-
async function createPreviewEnvironment(prNumber: number) {
|
|
164
|
-
const branchManager = new NeonBranchManager(
|
|
165
|
-
process.env.NEON_API_KEY!,
|
|
166
|
-
process.env.NEON_PROJECT_ID!
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
// Create branch from main
|
|
170
|
-
const branch = await branchManager.createBranch(`pr-${prNumber}`, 'main')
|
|
171
|
-
|
|
172
|
-
// Get connection string
|
|
173
|
-
const connectionString = await branchManager.getBranchConnectionString(branch.branch.id)
|
|
174
|
-
|
|
175
|
-
return {
|
|
176
|
-
branchId: branch.branch.id,
|
|
177
|
-
branchName: branch.branch.name,
|
|
178
|
-
connectionString
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
async function cleanupPreviewEnvironment(branchId: string) {
|
|
183
|
-
const branchManager = new NeonBranchManager(
|
|
184
|
-
process.env.NEON_API_KEY!,
|
|
185
|
-
process.env.NEON_PROJECT_ID!
|
|
186
|
-
)
|
|
187
|
-
await branchManager.deleteBranch(branchId)
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Point-in-Time Recovery
|
|
192
|
-
|
|
193
|
-
Restore to Specific Timestamp:
|
|
194
|
-
```typescript
|
|
195
|
-
async function restoreToPoint(timestamp: Date) {
|
|
196
|
-
const branchManager = new NeonBranchManager(
|
|
197
|
-
process.env.NEON_API_KEY!,
|
|
198
|
-
process.env.NEON_PROJECT_ID!
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
const response = await fetch(
|
|
202
|
-
`https://console.neon.tech/api/v2/projects/${process.env.NEON_PROJECT_ID}/branches`,
|
|
203
|
-
{
|
|
204
|
-
method: 'POST',
|
|
205
|
-
headers: {
|
|
206
|
-
'Authorization': `Bearer ${process.env.NEON_API_KEY}`,
|
|
207
|
-
'Content-Type': 'application/json'
|
|
208
|
-
},
|
|
209
|
-
body: JSON.stringify({
|
|
210
|
-
branch: {
|
|
211
|
-
name: `restore-${timestamp.toISOString().replace(/[:.]/g, '-')}`,
|
|
212
|
-
parent_id: 'main',
|
|
213
|
-
parent_timestamp: timestamp.toISOString()
|
|
214
|
-
}
|
|
215
|
-
})
|
|
216
|
-
}
|
|
217
|
-
)
|
|
218
|
-
|
|
219
|
-
return response.json()
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// Usage: Restore to 1 hour ago
|
|
223
|
-
const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000)
|
|
224
|
-
const restoredBranch = await restoreToPoint(oneHourAgo)
|
|
225
|
-
```
|
|
95
|
+
For basic query execution, import neon from @neondatabase/serverless. Create the sql function by calling neon with the DATABASE_URL environment variable. Execute simple queries using tagged template literals with the sql function. For parameterized queries that are SQL injection safe, include variables inside the template literal. The driver supports transaction operations using sql.transaction with an array of SQL statements.
|
|
226
96
|
|
|
227
97
|
### Drizzle ORM Integration
|
|
228
98
|
|
|
229
|
-
|
|
230
|
-
```typescript
|
|
231
|
-
// schema.ts
|
|
232
|
-
import { pgTable, uuid, text, timestamp, boolean, jsonb } from 'drizzle-orm/pg-core'
|
|
233
|
-
|
|
234
|
-
export const users = pgTable('users', {
|
|
235
|
-
id: uuid('id').primaryKey().defaultRandom(),
|
|
236
|
-
email: text('email').notNull().unique(),
|
|
237
|
-
name: text('name'),
|
|
238
|
-
createdAt: timestamp('created_at').defaultNow(),
|
|
239
|
-
metadata: jsonb('metadata')
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
export const projects = pgTable('projects', {
|
|
243
|
-
id: uuid('id').primaryKey().defaultRandom(),
|
|
244
|
-
name: text('name').notNull(),
|
|
245
|
-
ownerId: uuid('owner_id').references(() => users.id),
|
|
246
|
-
isPublic: boolean('is_public').default(false),
|
|
247
|
-
createdAt: timestamp('created_at').defaultNow()
|
|
248
|
-
})
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
Drizzle Client Setup:
|
|
252
|
-
```typescript
|
|
253
|
-
// db.ts
|
|
254
|
-
import { neon } from '@neondatabase/serverless'
|
|
255
|
-
import { drizzle } from 'drizzle-orm/neon-http'
|
|
256
|
-
import * as schema from './schema'
|
|
257
|
-
|
|
258
|
-
const sql = neon(process.env.DATABASE_URL!)
|
|
259
|
-
export const db = drizzle(sql, { schema })
|
|
260
|
-
|
|
261
|
-
// Query examples
|
|
262
|
-
const allUsers = await db.select().from(schema.users)
|
|
263
|
-
|
|
264
|
-
const userProjects = await db
|
|
265
|
-
.select()
|
|
266
|
-
.from(schema.projects)
|
|
267
|
-
.where(eq(schema.projects.ownerId, userId))
|
|
268
|
-
.orderBy(desc(schema.projects.createdAt))
|
|
269
|
-
```
|
|
99
|
+
For schema definition, import table and column types from drizzle-orm/pg-core. Define tables using pgTable with column definitions. Use uuid for UUIDs with primaryKey and defaultRandom, text for strings with notNull and unique modifiers, timestamp for dates with defaultNow, and jsonb for JSON columns.
|
|
270
100
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
Prisma Schema:
|
|
274
|
-
```prisma
|
|
275
|
-
// schema.prisma
|
|
276
|
-
generator client {
|
|
277
|
-
provider = "prisma-client-js"
|
|
278
|
-
previewFeatures = ["driverAdapters"]
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
datasource db {
|
|
282
|
-
provider = "postgresql"
|
|
283
|
-
url = env("DATABASE_URL")
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
model User {
|
|
287
|
-
id String @id @default(uuid())
|
|
288
|
-
email String @unique
|
|
289
|
-
name String?
|
|
290
|
-
projects Project[]
|
|
291
|
-
createdAt DateTime @default(now())
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
model Project {
|
|
295
|
-
id String @id @default(uuid())
|
|
296
|
-
name String
|
|
297
|
-
owner User @relation(fields: [ownerId], references: [id])
|
|
298
|
-
ownerId String
|
|
299
|
-
isPublic Boolean @default(false)
|
|
300
|
-
createdAt DateTime @default(now())
|
|
301
|
-
}
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
Prisma with Neon Serverless Driver:
|
|
305
|
-
```typescript
|
|
306
|
-
// db.ts
|
|
307
|
-
import { Pool, neonConfig } from '@neondatabase/serverless'
|
|
308
|
-
import { PrismaNeon } from '@prisma/adapter-neon'
|
|
309
|
-
import { PrismaClient } from '@prisma/client'
|
|
310
|
-
|
|
311
|
-
neonConfig.webSocketConstructor = require('ws')
|
|
312
|
-
|
|
313
|
-
const pool = new Pool({ connectionString: process.env.DATABASE_URL })
|
|
314
|
-
const adapter = new PrismaNeon(pool)
|
|
315
|
-
export const prisma = new PrismaClient({ adapter })
|
|
316
|
-
|
|
317
|
-
// Query examples
|
|
318
|
-
const users = await prisma.user.findMany({
|
|
319
|
-
include: { projects: true }
|
|
320
|
-
})
|
|
321
|
-
```
|
|
101
|
+
For Drizzle client setup, import neon from @neondatabase/serverless, drizzle from drizzle-orm/neon-http, and the schema module. Create the sql function with neon and the DATABASE_URL. Export the db instance created with drizzle passing sql and the schema. Execute queries using db.select().from(schema.tableName).
|
|
322
102
|
|
|
323
|
-
|
|
103
|
+
### Prisma ORM Integration
|
|
324
104
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
### Connection Pooling for Edge
|
|
328
|
-
|
|
329
|
-
Edge Function Configuration:
|
|
330
|
-
```typescript
|
|
331
|
-
import { neon } from '@neondatabase/serverless'
|
|
332
|
-
|
|
333
|
-
// Use pooled connection for edge environments
|
|
334
|
-
const sql = neon(process.env.DATABASE_URL_POOLED!)
|
|
335
|
-
|
|
336
|
-
export const config = {
|
|
337
|
-
runtime: 'edge'
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
export default async function handler(request: Request) {
|
|
341
|
-
const users = await sql`SELECT id, name FROM users LIMIT 10`
|
|
342
|
-
return Response.json(users)
|
|
343
|
-
}
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
### CI/CD Branch Automation
|
|
347
|
-
|
|
348
|
-
GitHub Actions Integration:
|
|
349
|
-
```yaml
|
|
350
|
-
name: Preview Environment
|
|
351
|
-
|
|
352
|
-
on:
|
|
353
|
-
pull_request:
|
|
354
|
-
types: [opened, synchronize, closed]
|
|
355
|
-
|
|
356
|
-
jobs:
|
|
357
|
-
create-preview:
|
|
358
|
-
if: github.event.action != 'closed'
|
|
359
|
-
runs-on: ubuntu-latest
|
|
360
|
-
steps:
|
|
361
|
-
- name: Create Neon Branch
|
|
362
|
-
id: create-branch
|
|
363
|
-
run: |
|
|
364
|
-
BRANCH=$(curl -s -X POST \
|
|
365
|
-
-H "Authorization: Bearer ${{ secrets.NEON_API_KEY }}" \
|
|
366
|
-
-H "Content-Type: application/json" \
|
|
367
|
-
-d '{"branch":{"name":"pr-${{ github.event.number }}"}}' \
|
|
368
|
-
"https://console.neon.tech/api/v2/projects/${{ secrets.NEON_PROJECT_ID }}/branches")
|
|
369
|
-
echo "branch_id=$(echo $BRANCH | jq -r '.branch.id')" >> $GITHUB_OUTPUT
|
|
370
|
-
|
|
371
|
-
cleanup-preview:
|
|
372
|
-
if: github.event.action == 'closed'
|
|
373
|
-
runs-on: ubuntu-latest
|
|
374
|
-
steps:
|
|
375
|
-
- name: Delete Neon Branch
|
|
376
|
-
run: |
|
|
377
|
-
curl -X DELETE \
|
|
378
|
-
-H "Authorization: Bearer ${{ secrets.NEON_API_KEY }}" \
|
|
379
|
-
"https://console.neon.tech/api/v2/projects/${{ secrets.NEON_PROJECT_ID }}/branches/pr-${{ github.event.number }}"
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
### Auto-Scaling Configuration
|
|
383
|
-
|
|
384
|
-
Compute Settings via API:
|
|
385
|
-
```typescript
|
|
386
|
-
async function configureAutoScaling(endpointId: string) {
|
|
387
|
-
const response = await fetch(
|
|
388
|
-
`https://console.neon.tech/api/v2/projects/${process.env.NEON_PROJECT_ID}/endpoints/${endpointId}`,
|
|
389
|
-
{
|
|
390
|
-
method: 'PATCH',
|
|
391
|
-
headers: {
|
|
392
|
-
'Authorization': `Bearer ${process.env.NEON_API_KEY}`,
|
|
393
|
-
'Content-Type': 'application/json'
|
|
394
|
-
},
|
|
395
|
-
body: JSON.stringify({
|
|
396
|
-
endpoint: {
|
|
397
|
-
autoscaling_limit_min_cu: 0.25, // Scale to zero
|
|
398
|
-
autoscaling_limit_max_cu: 4, // Max 4 compute units
|
|
399
|
-
suspend_timeout_seconds: 300 // Suspend after 5 min idle
|
|
400
|
-
}
|
|
401
|
-
})
|
|
402
|
-
}
|
|
403
|
-
)
|
|
404
|
-
return response.json()
|
|
405
|
-
}
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
### Migration Workflow
|
|
409
|
-
|
|
410
|
-
Development to Production:
|
|
411
|
-
```typescript
|
|
412
|
-
// Run migrations on direct connection (not pooled)
|
|
413
|
-
import { migrate } from 'drizzle-orm/neon-http/migrator'
|
|
414
|
-
import { neon } from '@neondatabase/serverless'
|
|
415
|
-
import { drizzle } from 'drizzle-orm/neon-http'
|
|
416
|
-
|
|
417
|
-
async function runMigrations() {
|
|
418
|
-
// Use direct connection for migrations
|
|
419
|
-
const sql = neon(process.env.DATABASE_URL!)
|
|
420
|
-
const db = drizzle(sql)
|
|
421
|
-
|
|
422
|
-
await migrate(db, { migrationsFolder: './drizzle' })
|
|
423
|
-
console.log('Migrations completed')
|
|
424
|
-
}
|
|
425
|
-
```
|
|
105
|
+
For Prisma with Neon Serverless Driver, import Pool and neonConfig from @neondatabase/serverless, PrismaNeon from @prisma/adapter-neon, and PrismaClient from @prisma/client. Set neonConfig.webSocketConstructor to the ws module. Create a Pool with the DATABASE_URL connection string. Create an adapter with PrismaNeon passing the pool. Export the prisma instance created with PrismaClient passing the adapter.
|
|
426
106
|
|
|
427
107
|
---
|
|
428
108
|
|
|
@@ -430,38 +110,47 @@ async function runMigrations() {
|
|
|
430
110
|
|
|
431
111
|
### When to Use Neon
|
|
432
112
|
|
|
433
|
-
Serverless Applications
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
113
|
+
Serverless Applications benefit from auto-scaling and scale-to-zero that reduce costs significantly.
|
|
114
|
+
|
|
115
|
+
Preview Environments benefit from instant branching that enables per-PR databases with production data.
|
|
116
|
+
|
|
117
|
+
Edge Deployment benefits from connection pooling that provides edge runtime compatibility.
|
|
118
|
+
|
|
119
|
+
Development Workflow benefits from branching from production for realistic development data.
|
|
120
|
+
|
|
121
|
+
Cost Optimization benefits from paying only for active compute time with scale-to-zero.
|
|
438
122
|
|
|
439
123
|
### When to Consider Alternatives
|
|
440
124
|
|
|
441
|
-
Need Vector Search: Consider Supabase with pgvector
|
|
442
|
-
|
|
443
|
-
Need
|
|
444
|
-
|
|
125
|
+
Need Vector Search: Consider Supabase with pgvector or dedicated vector database.
|
|
126
|
+
|
|
127
|
+
Need Real-time Subscriptions: Consider Supabase or Convex for real-time features.
|
|
128
|
+
|
|
129
|
+
Need NoSQL Flexibility: Consider Firestore or Convex for document storage.
|
|
130
|
+
|
|
131
|
+
Need Built-in Auth: Consider Supabase for integrated authentication.
|
|
132
|
+
|
|
133
|
+
### Pricing Reference
|
|
134
|
+
|
|
135
|
+
Free Tier provides 3GB storage and 100 compute hours per month.
|
|
445
136
|
|
|
446
|
-
|
|
137
|
+
Pro Tier provides usage-based pricing with additional storage and compute.
|
|
447
138
|
|
|
448
|
-
|
|
449
|
-
Pro Tier: Usage-based pricing, additional storage and compute
|
|
450
|
-
Scale-to-Zero: No charges during idle periods
|
|
139
|
+
Scale-to-Zero incurs no charges during idle periods.
|
|
451
140
|
|
|
452
141
|
---
|
|
453
142
|
|
|
454
143
|
## Works Well With
|
|
455
144
|
|
|
456
|
-
- moai-platform-supabase
|
|
457
|
-
- moai-lang-typescript
|
|
458
|
-
- moai-domain-backend
|
|
459
|
-
- moai-
|
|
460
|
-
- moai-context7-integration - Latest Neon documentation access
|
|
145
|
+
- moai-platform-supabase for alternative when RLS or pgvector needed
|
|
146
|
+
- moai-lang-typescript for TypeScript patterns for Drizzle and Prisma
|
|
147
|
+
- moai-domain-backend for backend architecture with database integration
|
|
148
|
+
- moai-domain-database for general database patterns and optimization
|
|
461
149
|
|
|
462
150
|
---
|
|
463
151
|
|
|
464
152
|
Status: Production Ready
|
|
153
|
+
Version: 2.1.0
|
|
465
154
|
Generated with: MoAI-ADK Skill Factory v2.0
|
|
466
|
-
Last Updated:
|
|
155
|
+
Last Updated: 2026-01-11
|
|
467
156
|
Technology: Neon Serverless PostgreSQL
|