moai-adk 0.35.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (502) hide show
  1. moai_adk/__init__.py +10 -0
  2. moai_adk/__main__.py +199 -0
  3. moai_adk/cli/__init__.py +6 -0
  4. moai_adk/cli/commands/__init__.py +17 -0
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +272 -0
  7. moai_adk/cli/commands/init.py +372 -0
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +104 -0
  10. moai_adk/cli/commands/update.py +2686 -0
  11. moai_adk/cli/main.py +13 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +219 -0
  14. moai_adk/cli/spec_status.py +263 -0
  15. moai_adk/cli/ui/__init__.py +44 -0
  16. moai_adk/cli/ui/progress.py +422 -0
  17. moai_adk/cli/ui/prompts.py +389 -0
  18. moai_adk/cli/ui/theme.py +129 -0
  19. moai_adk/cli/worktree/__init__.py +27 -0
  20. moai_adk/cli/worktree/__main__.py +31 -0
  21. moai_adk/cli/worktree/cli.py +683 -0
  22. moai_adk/cli/worktree/exceptions.py +89 -0
  23. moai_adk/cli/worktree/manager.py +493 -0
  24. moai_adk/cli/worktree/models.py +65 -0
  25. moai_adk/cli/worktree/registry.py +422 -0
  26. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  27. moai_adk/core/__init__.py +1 -0
  28. moai_adk/core/analysis/__init__.py +9 -0
  29. moai_adk/core/analysis/session_analyzer.py +400 -0
  30. moai_adk/core/claude_integration.py +393 -0
  31. moai_adk/core/command_helpers.py +270 -0
  32. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  33. moai_adk/core/config/__init__.py +19 -0
  34. moai_adk/core/config/auto_spec_config.py +340 -0
  35. moai_adk/core/config/migration.py +244 -0
  36. moai_adk/core/config/unified.py +436 -0
  37. moai_adk/core/context_manager.py +273 -0
  38. moai_adk/core/diagnostics/__init__.py +19 -0
  39. moai_adk/core/diagnostics/slash_commands.py +159 -0
  40. moai_adk/core/enterprise_features.py +1404 -0
  41. moai_adk/core/error_recovery_system.py +1902 -0
  42. moai_adk/core/event_driven_hook_system.py +1371 -0
  43. moai_adk/core/git/__init__.py +31 -0
  44. moai_adk/core/git/branch.py +25 -0
  45. moai_adk/core/git/branch_manager.py +129 -0
  46. moai_adk/core/git/checkpoint.py +134 -0
  47. moai_adk/core/git/commit.py +67 -0
  48. moai_adk/core/git/conflict_detector.py +413 -0
  49. moai_adk/core/git/event_detector.py +79 -0
  50. moai_adk/core/git/manager.py +216 -0
  51. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  52. moai_adk/core/input_validation_middleware.py +1006 -0
  53. moai_adk/core/integration/__init__.py +22 -0
  54. moai_adk/core/integration/engine.py +157 -0
  55. moai_adk/core/integration/integration_tester.py +226 -0
  56. moai_adk/core/integration/models.py +88 -0
  57. moai_adk/core/integration/utils.py +211 -0
  58. moai_adk/core/issue_creator.py +305 -0
  59. moai_adk/core/jit_context_loader.py +956 -0
  60. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  61. moai_adk/core/language_config.py +202 -0
  62. moai_adk/core/language_config_resolver.py +572 -0
  63. moai_adk/core/language_validator.py +543 -0
  64. moai_adk/core/mcp/setup.py +116 -0
  65. moai_adk/core/merge/__init__.py +9 -0
  66. moai_adk/core/merge/analyzer.py +605 -0
  67. moai_adk/core/migration/__init__.py +18 -0
  68. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  69. moai_adk/core/migration/backup_manager.py +277 -0
  70. moai_adk/core/migration/custom_element_scanner.py +358 -0
  71. moai_adk/core/migration/file_migrator.py +209 -0
  72. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  73. moai_adk/core/migration/selective_restorer.py +470 -0
  74. moai_adk/core/migration/template_utils.py +74 -0
  75. moai_adk/core/migration/user_selection_ui.py +338 -0
  76. moai_adk/core/migration/version_detector.py +139 -0
  77. moai_adk/core/migration/version_migrator.py +228 -0
  78. moai_adk/core/performance/__init__.py +6 -0
  79. moai_adk/core/performance/cache_system.py +316 -0
  80. moai_adk/core/performance/parallel_processor.py +116 -0
  81. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  82. moai_adk/core/project/__init__.py +1 -0
  83. moai_adk/core/project/backup_utils.py +70 -0
  84. moai_adk/core/project/checker.py +300 -0
  85. moai_adk/core/project/detector.py +293 -0
  86. moai_adk/core/project/initializer.py +387 -0
  87. moai_adk/core/project/phase_executor.py +716 -0
  88. moai_adk/core/project/validator.py +139 -0
  89. moai_adk/core/quality/__init__.py +6 -0
  90. moai_adk/core/quality/trust_checker.py +377 -0
  91. moai_adk/core/quality/validators/__init__.py +6 -0
  92. moai_adk/core/quality/validators/base_validator.py +19 -0
  93. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  94. moai_adk/core/robust_json_parser.py +611 -0
  95. moai_adk/core/rollback_manager.py +918 -0
  96. moai_adk/core/session_manager.py +651 -0
  97. moai_adk/core/skill_loading_system.py +579 -0
  98. moai_adk/core/spec/confidence_scoring.py +680 -0
  99. moai_adk/core/spec/ears_template_engine.py +1247 -0
  100. moai_adk/core/spec/quality_validator.py +687 -0
  101. moai_adk/core/spec_status_manager.py +478 -0
  102. moai_adk/core/template/__init__.py +7 -0
  103. moai_adk/core/template/backup.py +174 -0
  104. moai_adk/core/template/config.py +191 -0
  105. moai_adk/core/template/languages.py +43 -0
  106. moai_adk/core/template/merger.py +233 -0
  107. moai_adk/core/template/processor.py +1200 -0
  108. moai_adk/core/template_engine.py +310 -0
  109. moai_adk/core/template_variable_synchronizer.py +417 -0
  110. moai_adk/core/unified_permission_manager.py +745 -0
  111. moai_adk/core/user_behavior_analytics.py +851 -0
  112. moai_adk/core/version_sync.py +429 -0
  113. moai_adk/foundation/__init__.py +56 -0
  114. moai_adk/foundation/backend.py +1027 -0
  115. moai_adk/foundation/database.py +1115 -0
  116. moai_adk/foundation/devops.py +1585 -0
  117. moai_adk/foundation/ears.py +431 -0
  118. moai_adk/foundation/frontend.py +870 -0
  119. moai_adk/foundation/git/commit_templates.py +557 -0
  120. moai_adk/foundation/git.py +376 -0
  121. moai_adk/foundation/langs.py +484 -0
  122. moai_adk/foundation/ml_ops.py +1162 -0
  123. moai_adk/foundation/testing.py +1524 -0
  124. moai_adk/foundation/trust/trust_principles.py +676 -0
  125. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  126. moai_adk/project/__init__.py +0 -0
  127. moai_adk/project/configuration.py +1084 -0
  128. moai_adk/project/documentation.py +566 -0
  129. moai_adk/project/schema.py +447 -0
  130. moai_adk/statusline/__init__.py +38 -0
  131. moai_adk/statusline/alfred_detector.py +105 -0
  132. moai_adk/statusline/config.py +376 -0
  133. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  134. moai_adk/statusline/git_collector.py +190 -0
  135. moai_adk/statusline/main.py +322 -0
  136. moai_adk/statusline/metrics_tracker.py +78 -0
  137. moai_adk/statusline/renderer.py +343 -0
  138. moai_adk/statusline/update_checker.py +129 -0
  139. moai_adk/statusline/version_reader.py +741 -0
  140. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
  141. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  142. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  143. moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
  144. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  145. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  146. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  147. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  148. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  149. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  150. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  151. moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
  152. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  153. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  154. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  155. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  156. moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
  157. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  158. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  159. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  160. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  161. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  164. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  165. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  166. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  167. moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
  168. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  169. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  170. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  171. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  172. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  173. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  185. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  186. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  187. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  188. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  189. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
  190. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  191. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  192. moai_adk/templates/.claude/settings.json +172 -0
  193. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
  194. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  195. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  196. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  200. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  201. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  202. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  203. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  204. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  205. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
  206. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  207. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  210. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  211. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  212. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  213. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  214. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  215. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
  216. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  217. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  221. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  222. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  223. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  224. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  230. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  231. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  232. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  284. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
  285. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
  286. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  287. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  288. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  289. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  290. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
  291. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  292. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  293. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
  294. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  295. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
  297. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  298. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
  304. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
  305. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
  306. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  307. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  308. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
  309. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  310. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  311. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
  312. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  313. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  314. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
  315. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  316. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  318. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  319. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  320. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  321. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  331. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  332. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  333. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  334. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  338. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  339. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  340. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  341. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  342. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  343. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  344. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  345. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  346. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
  347. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  348. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  349. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  350. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  351. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  352. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  353. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  354. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  355. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  356. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  357. moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
  358. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
  359. moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
  360. moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
  361. moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
  362. moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
  363. moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
  364. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
  365. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
  366. moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
  367. moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
  368. moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
  369. moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
  370. moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
  371. moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
  372. moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
  373. moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
  374. moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
  375. moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
  376. moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
  377. moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
  378. moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
  379. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
  380. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
  381. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
  382. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
  383. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
  384. moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
  385. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
  386. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
  387. moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
  388. moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
  389. moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
  390. moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
  391. moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  433. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  458. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  459. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  460. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  461. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  462. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  463. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  464. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  465. moai_adk/templates/.git-hooks/pre-commit +128 -0
  466. moai_adk/templates/.git-hooks/pre-push +365 -0
  467. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  468. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  469. moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
  470. moai_adk/templates/.gitignore +222 -0
  471. moai_adk/templates/.mcp.json +13 -0
  472. moai_adk/templates/.moai/config/config.yaml +58 -0
  473. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  474. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  475. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  476. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  477. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  478. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
  479. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  480. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  481. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  482. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  483. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  484. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  485. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  486. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  487. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  488. moai_adk/templates/CLAUDE.md +642 -0
  489. moai_adk/utils/__init__.py +30 -0
  490. moai_adk/utils/banner.py +38 -0
  491. moai_adk/utils/common.py +294 -0
  492. moai_adk/utils/link_validator.py +241 -0
  493. moai_adk/utils/logger.py +147 -0
  494. moai_adk/utils/safe_file_reader.py +206 -0
  495. moai_adk/utils/timeout.py +160 -0
  496. moai_adk/utils/toon_utils.py +256 -0
  497. moai_adk/version.py +22 -0
  498. moai_adk-0.35.1.dist-info/METADATA +3018 -0
  499. moai_adk-0.35.1.dist-info/RECORD +502 -0
  500. moai_adk-0.35.1.dist-info/WHEEL +4 -0
  501. moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
  502. moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,362 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Nano Banana Pro - Single Image Generation Script
4
+
5
+ Generates images using the gemini-3-pro-image-preview model (Nano Banana Pro).
6
+ This script is the canonical implementation for single image generation tasks.
7
+
8
+ Features:
9
+ - 1K, 2K, 4K resolution support
10
+ - 10 aspect ratios (1:1, 16:9, etc.)
11
+ - Style prefix support for consistent aesthetics
12
+ - Exponential backoff retry for API quota errors
13
+ - Google Search grounding integration
14
+
15
+ Usage:
16
+ python generate_image.py -p "A futuristic cityscape" -o city.png
17
+ python generate_image.py -p "Dashboard UI" -o ui.png -r 4K -a 16:9
18
+ python generate_image.py -p "Logo design" -o logo.png --style "minimalist, vector"
19
+
20
+ Environment Variables Required:
21
+ GOOGLE_API_KEY - Your Google AI Studio API key
22
+
23
+ Model: gemini-3-pro-image-preview (hardcoded)
24
+ """
25
+
26
+ import argparse
27
+ import os
28
+ import random
29
+ import sys
30
+ import time
31
+ from datetime import datetime
32
+ from pathlib import Path
33
+ from typing import Optional
34
+
35
+ try:
36
+ from google import genai
37
+ from google.genai import types
38
+ except ImportError:
39
+ print("Error: google-genai package not installed.")
40
+ print("Install with: pip install google-genai")
41
+ sys.exit(1)
42
+
43
+ try:
44
+ from dotenv import load_dotenv
45
+
46
+ load_dotenv()
47
+ except ImportError:
48
+ pass # dotenv is optional
49
+
50
+
51
+ # Fixed model - Nano Banana Pro
52
+ MODEL_NAME = "gemini-3-pro-image-preview"
53
+
54
+ # Supported configurations
55
+ SUPPORTED_ASPECT_RATIOS = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"]
56
+ SUPPORTED_RESOLUTIONS = ["1K", "2K", "4K"] # Must be uppercase
57
+
58
+ # Retry configuration
59
+ MAX_RETRIES = 5
60
+ BASE_DELAY = 2.0
61
+ MAX_DELAY = 60.0
62
+
63
+
64
+ def get_api_key() -> str:
65
+ """Get API key from environment variable."""
66
+ api_key = os.getenv("GOOGLE_API_KEY")
67
+ if not api_key:
68
+ print("Error: GOOGLE_API_KEY environment variable not set.")
69
+ print("Set up your API key:")
70
+ print(" 1. Get your key from https://aistudio.google.com/apikey")
71
+ print(" 2. Create .env file with: GOOGLE_API_KEY=your_key_here")
72
+ print(" 3. Or set environment variable: export GOOGLE_API_KEY=your_key_here")
73
+ sys.exit(1)
74
+ return api_key
75
+
76
+
77
+ def validate_aspect_ratio(ratio: str) -> str:
78
+ """Validate and normalize aspect ratio."""
79
+ if ratio not in SUPPORTED_ASPECT_RATIOS:
80
+ print(f"Warning: '{ratio}' is not a standard aspect ratio.")
81
+ print(f"Supported ratios: {', '.join(SUPPORTED_ASPECT_RATIOS)}")
82
+ print("Using default: 16:9")
83
+ return "16:9"
84
+ return ratio
85
+
86
+
87
+ def validate_resolution(resolution: str) -> str:
88
+ """Validate and normalize resolution (must be uppercase K)."""
89
+ normalized = resolution.upper()
90
+ if normalized not in SUPPORTED_RESOLUTIONS:
91
+ print(f"Warning: '{resolution}' is not a valid resolution.")
92
+ print(f"Supported resolutions: {', '.join(SUPPORTED_RESOLUTIONS)}")
93
+ print("Using default: 2K")
94
+ return "2K"
95
+ return normalized
96
+
97
+
98
+ def build_prompt_with_style(prompt: str, style: Optional[str] = None) -> str:
99
+ """Build final prompt with optional style prefix."""
100
+ if style:
101
+ return f"{style}: {prompt}"
102
+ return prompt
103
+
104
+
105
+ def calculate_backoff_delay(attempt: int, jitter: bool = True) -> float:
106
+ """Calculate exponential backoff delay with optional jitter."""
107
+ delay = min(BASE_DELAY * (2**attempt), MAX_DELAY)
108
+ if jitter:
109
+ delay = delay * (0.5 + random.random())
110
+ return delay
111
+
112
+
113
+ def generate_image(
114
+ prompt: str,
115
+ output_path: str,
116
+ aspect_ratio: str = "16:9",
117
+ resolution: str = "2K",
118
+ style: Optional[str] = None,
119
+ enable_grounding: bool = False,
120
+ max_retries: int = MAX_RETRIES,
121
+ verbose: bool = False,
122
+ ) -> dict:
123
+ """
124
+ Generate an image using Nano Banana Pro (gemini-3-pro-image-preview).
125
+
126
+ Args:
127
+ prompt: The image generation prompt
128
+ output_path: Path to save the generated image
129
+ aspect_ratio: Image aspect ratio (default: 16:9)
130
+ resolution: Image resolution - 1K, 2K, or 4K (default: 2K)
131
+ style: Optional style prefix (e.g., "photorealistic", "minimalist")
132
+ enable_grounding: Enable Google Search grounding (default: False)
133
+ max_retries: Maximum retry attempts for transient errors (default: 5)
134
+ verbose: Print detailed progress information
135
+
136
+ Returns:
137
+ dict with generation metadata including success status, file path, and timing
138
+ """
139
+ # Validate inputs
140
+ aspect_ratio = validate_aspect_ratio(aspect_ratio)
141
+ resolution = validate_resolution(resolution)
142
+ final_prompt = build_prompt_with_style(prompt, style)
143
+
144
+ # Get API key
145
+ api_key = get_api_key()
146
+
147
+ if verbose:
148
+ print(f" Model: {MODEL_NAME}")
149
+ print(f" Final Prompt: {final_prompt[:100]}{'...' if len(final_prompt) > 100 else ''}")
150
+ print(f" Style: {style or 'None'}")
151
+ print("-" * 50)
152
+
153
+ # Initialize client
154
+ client = genai.Client(api_key=api_key)
155
+
156
+ # Build configuration
157
+ config_params = {
158
+ "response_modalities": ["TEXT", "IMAGE"],
159
+ "image_config": types.ImageConfig(aspect_ratio=aspect_ratio, image_size=resolution),
160
+ }
161
+
162
+ # Optionally enable Google Search grounding
163
+ if enable_grounding:
164
+ config_params["tools"] = [{"google_search": {}}]
165
+
166
+ config = types.GenerateContentConfig(**config_params)
167
+
168
+ # Retry logic with exponential backoff
169
+ last_error = None
170
+ for attempt in range(max_retries):
171
+ try:
172
+ if verbose:
173
+ print(f" Attempt {attempt + 1}/{max_retries}...")
174
+
175
+ start_time = time.time()
176
+
177
+ # Generate image
178
+ response = client.models.generate_content(model=MODEL_NAME, contents=final_prompt, config=config)
179
+
180
+ generation_time = time.time() - start_time
181
+
182
+ # Ensure output directory exists
183
+ output_dir = Path(output_path).parent
184
+ if output_dir and str(output_dir) != "." and not output_dir.exists():
185
+ output_dir.mkdir(parents=True, exist_ok=True)
186
+
187
+ # Save image
188
+ image_saved = False
189
+ text_response = ""
190
+
191
+ for part in response.candidates[0].content.parts:
192
+ if part.inline_data is not None:
193
+ with open(output_path, "wb") as f:
194
+ f.write(part.inline_data.data)
195
+ image_saved = True
196
+ elif hasattr(part, "text") and part.text:
197
+ text_response = part.text
198
+
199
+ if not image_saved:
200
+ raise RuntimeError("No image data in response. The model may have returned text-only response.")
201
+
202
+ # Return success metadata
203
+ return {
204
+ "success": True,
205
+ "model": MODEL_NAME,
206
+ "prompt": prompt,
207
+ "final_prompt": final_prompt,
208
+ "style": style,
209
+ "output_path": str(Path(output_path).absolute()),
210
+ "aspect_ratio": aspect_ratio,
211
+ "resolution": resolution,
212
+ "generation_time_seconds": round(generation_time, 2),
213
+ "timestamp": datetime.now().isoformat(),
214
+ "text_response": text_response if text_response else None,
215
+ "grounding_enabled": enable_grounding,
216
+ "attempts": attempt + 1,
217
+ }
218
+
219
+ except Exception as e:
220
+ last_error = e
221
+ error_str = str(e).lower()
222
+
223
+ # Check for non-retryable errors
224
+ if "permission" in error_str or "api_key" in error_str or "invalid_api_key" in error_str:
225
+ print(f"Error: API key issue - {e}")
226
+ print("Check your GOOGLE_API_KEY in .env file or environment variable.")
227
+ break
228
+
229
+ if "invalid" in error_str and "argument" in error_str:
230
+ print(f"Error: Invalid argument - {e}")
231
+ print(f"Check aspect_ratio ({aspect_ratio}) and resolution ({resolution}).")
232
+ break
233
+
234
+ # Check for quota/rate limit errors - apply exponential backoff
235
+ is_quota_error = any(kw in error_str for kw in ["quota", "rate", "429", "resource_exhausted", "too_many"])
236
+
237
+ if attempt < max_retries - 1:
238
+ delay = calculate_backoff_delay(attempt, jitter=is_quota_error)
239
+ if is_quota_error:
240
+ print(f" Rate limit hit (attempt {attempt + 1}). Waiting {delay:.1f}s...")
241
+ else:
242
+ print(f" Attempt {attempt + 1} failed: {e}")
243
+ print(f" Retrying in {delay:.1f}s...")
244
+ time.sleep(delay)
245
+ else:
246
+ print(f" All {max_retries} attempts failed.")
247
+
248
+ # Return failure metadata
249
+ return {
250
+ "success": False,
251
+ "model": MODEL_NAME,
252
+ "prompt": prompt,
253
+ "final_prompt": final_prompt,
254
+ "style": style,
255
+ "error": str(last_error),
256
+ "timestamp": datetime.now().isoformat(),
257
+ "attempts": max_retries,
258
+ }
259
+
260
+
261
+ def main():
262
+ """Main entry point for CLI usage."""
263
+ parser = argparse.ArgumentParser(
264
+ description="Generate images using Nano Banana Pro (gemini-3-pro-image-preview)",
265
+ formatter_class=argparse.RawDescriptionHelpFormatter,
266
+ epilog="""
267
+ Examples:
268
+ # Basic usage
269
+ python generate_image.py -p "A fluffy cat eating a banana" -o cat.png
270
+
271
+ # High resolution with specific aspect ratio
272
+ python generate_image.py -p "Modern dashboard UI" -o dashboard.png -a 16:9 -r 4K
273
+
274
+ # With style prefix
275
+ python generate_image.py -p "Mountain landscape" -o landscape.png \\
276
+ --style "photorealistic, dramatic lighting"
277
+
278
+ # With Google Search grounding for factual content
279
+ python generate_image.py -p "Mount Fuji at sunset" -o fuji.png -g
280
+
281
+ # Verbose mode with all options
282
+ python generate_image.py -p "Tech company logo" -o logo.png \\
283
+ -r 4K -a 1:1 --style "minimalist, vector art" -v
284
+
285
+ Style Prefix Examples:
286
+ - "photorealistic, 8K, detailed"
287
+ - "minimalist, vector art, clean"
288
+ - "watercolor painting, soft colors"
289
+ - "3D render, cinematic lighting"
290
+ - "anime style, vibrant colors"
291
+
292
+ Environment:
293
+ GOOGLE_API_KEY - Required. Get from https://aistudio.google.com/apikey
294
+ """,
295
+ )
296
+
297
+ parser.add_argument("-p", "--prompt", required=True, help="Image generation prompt (descriptive text)")
298
+
299
+ parser.add_argument("-o", "--output", required=True, help="Output file path for the generated image (PNG format)")
300
+
301
+ parser.add_argument(
302
+ "-a", "--aspect-ratio", default="16:9", choices=SUPPORTED_ASPECT_RATIOS, help="Aspect ratio (default: 16:9)"
303
+ )
304
+
305
+ parser.add_argument(
306
+ "-r",
307
+ "--resolution",
308
+ default="2K",
309
+ choices=SUPPORTED_RESOLUTIONS,
310
+ help="Resolution: 1K, 2K, or 4K (default: 2K)",
311
+ )
312
+
313
+ parser.add_argument("--style", help="Style prefix to prepend to prompt (e.g., 'photorealistic', 'minimalist')")
314
+
315
+ parser.add_argument(
316
+ "-g", "--enable-grounding", action="store_true", help="Enable Google Search grounding for factual content"
317
+ )
318
+
319
+ parser.add_argument(
320
+ "--max-retries",
321
+ type=int,
322
+ default=MAX_RETRIES,
323
+ help=f"Maximum retry attempts for transient errors (default: {MAX_RETRIES})",
324
+ )
325
+
326
+ parser.add_argument("-v", "--verbose", action="store_true", help="Print detailed progress information")
327
+
328
+ args = parser.parse_args()
329
+
330
+ print(f"Generating image with {MODEL_NAME}...")
331
+ print(f" Prompt: {args.prompt[:80]}{'...' if len(args.prompt) > 80 else ''}")
332
+ if args.style:
333
+ print(f" Style: {args.style}")
334
+ print(f" Aspect Ratio: {args.aspect_ratio}")
335
+ print(f" Resolution: {args.resolution}")
336
+ print(f" Output: {args.output}")
337
+
338
+ result = generate_image(
339
+ prompt=args.prompt,
340
+ output_path=args.output,
341
+ aspect_ratio=args.aspect_ratio,
342
+ resolution=args.resolution,
343
+ style=args.style,
344
+ enable_grounding=args.enable_grounding,
345
+ max_retries=args.max_retries,
346
+ verbose=args.verbose,
347
+ )
348
+
349
+ if result["success"]:
350
+ print("\nSuccess!")
351
+ print(f" File: {result['output_path']}")
352
+ print(f" Time: {result['generation_time_seconds']}s")
353
+ print(f" Attempts: {result['attempts']}")
354
+ if result.get("text_response"):
355
+ print(f" Model Note: {result['text_response'][:200]}")
356
+ else:
357
+ print(f"\nFailed: {result['error']}")
358
+ sys.exit(1)
359
+
360
+
361
+ if __name__ == "__main__":
362
+ main()
@@ -0,0 +1,249 @@
1
+ ---
2
+ name: moai-docs-generation
3
+ description: Automated documentation generation specialist for technical specs, API docs, user guides, and knowledge bases with multi-format output
4
+ version: 1.0.0
5
+ category: workflow
6
+ allowed-tools: Read, Write, Edit, Grep, Glob
7
+ tags:
8
+ - documentation
9
+ - generation
10
+ - automation
11
+ - markdown
12
+ - html
13
+ - api-docs
14
+ updated: 2025-12-06
15
+ status: active
16
+ author: MoAI-ADK Team
17
+ ---
18
+
19
+ # Documentation Generation Specialist
20
+
21
+ ## Quick Reference (30 seconds)
22
+
23
+ Automated Documentation Generation - Comprehensive documentation automation covering technical specs, API documentation, user guides, and knowledge base creation with multi-format output capabilities.
24
+
25
+ Core Capabilities:
26
+ - Technical Documentation: API docs, architecture specs, code documentation
27
+ - User Guides: Tutorials, getting started guides, best practices
28
+ - API Documentation: OpenAPI/Swagger generation, endpoint documentation
29
+ - Multi-Format Output: Markdown, HTML, PDF, static sites
30
+ - AI-Powered Generation: Context-aware content creation and enhancement
31
+ - Continuous Updates: Auto-sync documentation with code changes
32
+
33
+ When to Use:
34
+ - Generating API documentation from code
35
+ - Creating technical specifications and architecture docs
36
+ - Building user guides and tutorials
37
+ - Automating knowledge base creation
38
+ - Maintaining up-to-date project documentation
39
+
40
+ ---
41
+
42
+ ## Implementation Guide (5 minutes)
43
+
44
+ ### Quick Start Workflow
45
+
46
+ Basic Documentation Generation:
47
+ ```python
48
+ from moai_docs_generation import DocumentationGenerator
49
+
50
+ # Initialize generator
51
+ doc_gen = DocumentationGenerator()
52
+
53
+ # Generate API documentation
54
+ api_docs = doc_gen.generate_api_docs("path/to/your/app.py")
55
+
56
+ # Create user guide
57
+ user_guide = doc_gen.generate_user_guide(project_info)
58
+
59
+ # Export to multiple formats
60
+ doc_gen.export_to_formats(api_docs, formats=["html", "pdf", "markdown"])
61
+ ```
62
+
63
+ Single Command Documentation:
64
+ ```bash
65
+ # Generate complete documentation
66
+ moai generate-docs --source ./src --output ./docs --formats html,pdf
67
+
68
+ # Update API docs from code
69
+ moai update-api-docs --app-file app.py --format openapi
70
+
71
+ # Create tutorial from feature
72
+ moai create-tutorial --feature authentication --output docs/tutorials/
73
+ ```
74
+
75
+ ### Core Components
76
+
77
+ 1. API Documentation (`modules/api-documentation.md`)
78
+ - OpenAPI/Swagger specification generation
79
+ - Interactive HTML documentation
80
+ - Code example generation
81
+ - Request/response documentation
82
+
83
+ 2. Code Documentation (`modules/code-documentation.md`)
84
+ - AST-based code analysis
85
+ - AI-powered docstring enhancement
86
+ - Automatic documentation structure extraction
87
+ - Multi-format documentation generation
88
+
89
+ 3. User Guides (`modules/user-guides.md`)
90
+ - Getting started guides
91
+ - Feature tutorials
92
+ - Cookbook generation
93
+ - Step-by-step instructions
94
+
95
+ 4. Multi-Format Output (`modules/multi-format-output.md`)
96
+ - HTML site generation
97
+ - PDF documentation
98
+ - Static site export
99
+ - Responsive design templates
100
+
101
+ ---
102
+
103
+ ## Advanced Patterns (10+ minutes)
104
+
105
+ ### Continuous Documentation Integration
106
+
107
+ Git Hooks for Auto-Documentation:
108
+ ```python
109
+ # .git/hooks/pre-commit
110
+ #!/bin/bash
111
+ # Auto-update documentation before commits
112
+
113
+ python -c "
114
+ from moai_docs_generation import DocumentationGenerator
115
+ doc_gen = DocumentationGenerator()
116
+ doc_gen.update_documentation_for_changed_files()
117
+ "
118
+ ```
119
+
120
+ CI/CD Pipeline Integration:
121
+ ```yaml
122
+ # .github/workflows/docs.yml
123
+ name: Generate Documentation
124
+ on:
125
+ push:
126
+ branches: [main]
127
+
128
+ jobs:
129
+ docs:
130
+ runs-on: ubuntu-latest
131
+ steps:
132
+ - uses: actions/checkout@v2
133
+ - name: Generate Documentation
134
+ run: |
135
+ moai generate-docs --source ./src --output ./docs
136
+ moai deploy-docs --platform github-pages
137
+ ```
138
+
139
+ ### AI-Enhanced Documentation
140
+
141
+ Smart Content Generation:
142
+ ```python
143
+ # AI-powered example generation
144
+ ai_enhanced_docs = doc_gen.generate_with_ai(
145
+ source_code="path/to/code",
146
+ enhancement_level="comprehensive",
147
+ include_examples=True,
148
+ include_troubleshooting=True
149
+ )
150
+ ```
151
+
152
+ ### Documentation Quality Automation
153
+
154
+ Automated Quality Checks:
155
+ ```python
156
+ # Validate documentation quality
157
+ quality_report = doc_gen.validate_documentation(
158
+ completeness_threshold=0.9,
159
+ include_example_validation=True,
160
+ check_link_integrity=True
161
+ )
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Works Well With
167
+
168
+ Complementary Skills:
169
+ - `moai-foundation-core` - SPEC-first documentation approach
170
+ - `moai-workflow-project` - Project documentation integration
171
+ - `moai-lang-python` - Python code documentation patterns
172
+ - `moai-lang-typescript` - TypeScript code documentation patterns
173
+ - `moai-mcp-notion` - Notion documentation sync and knowledge management
174
+
175
+ Technology Integration:
176
+ - FastAPI/Flask applications
177
+ - Sphinx/MkDocs documentation
178
+ - GitHub/GitLab wikis
179
+ - Confluence knowledge bases
180
+ - Static site generators (Hugo, Jekyll)
181
+
182
+ ---
183
+
184
+ ## Usage Examples
185
+
186
+ ### Command Line Interface
187
+ ```bash
188
+ # Complete documentation suite
189
+ moai docs:generate --project ./my-project --output ./docs
190
+
191
+ # API documentation only
192
+ moai docs:api --source ./app.py --format openapi,html
193
+
194
+ # User guide creation
195
+ moai docs:guide --features auth,user-management --template getting-started
196
+
197
+ # Documentation updates
198
+ moai docs:update --sync-with-code --validate-links
199
+ ```
200
+
201
+ ### Python API
202
+ ```python
203
+ from moai_docs_generation import DocumentationGenerator
204
+
205
+ # Complete workflow
206
+ generator = DocumentationGenerator()
207
+ docs = generator.generate_comprehensive_docs(
208
+ source_directory="./src",
209
+ include_api_docs=True,
210
+ include_user_guides=True,
211
+ output_formats=["html", "pdf", "markdown"]
212
+ )
213
+
214
+ # Individual components
215
+ api_gen = API Documentation Generation()
216
+ api_spec = api_gen.generate_openapi_spec(fastapi_app)
217
+
218
+ code_gen = Code Documentation Enhancement()
219
+ enhanced_docs = code_gen.analyze_and_enhance("./src/")
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Technology Stack
225
+
226
+ Core Technologies:
227
+ - Python 3.8+ (main implementation)
228
+ - FastAPI/Flask (API documentation)
229
+ - Jinja2 (HTML templating)
230
+ - Markdown (content formatting)
231
+ - WeasyPrint (PDF generation)
232
+
233
+ Optional Integrations:
234
+ - AI services (content enhancement)
235
+ - Git hooks (auto-updates)
236
+ - CI/CD platforms (continuous deployment)
237
+ - Static site generators (hosting)
238
+ - Documentation platforms (confluence)
239
+
240
+ Output Formats:
241
+ - HTML (responsive sites)
242
+ - PDF (print-ready documents)
243
+ - Markdown (version control friendly)
244
+ - OpenAPI/Swagger (API specifications)
245
+ - Static sites (hosting platforms)
246
+
247
+ ---
248
+
249
+ *For detailed implementation patterns and advanced configurations, see the `modules/` directory.*