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.
Files changed (524) hide show
  1. moai_adk/__main__.py +136 -5
  2. moai_adk/astgrep/__init__.py +37 -0
  3. moai_adk/astgrep/analyzer.py +522 -0
  4. moai_adk/astgrep/models.py +124 -0
  5. moai_adk/astgrep/rules.py +179 -0
  6. moai_adk/cli/commands/analyze.py +11 -2
  7. moai_adk/cli/commands/doctor.py +7 -1
  8. moai_adk/cli/commands/init.py +321 -11
  9. moai_adk/cli/commands/language.py +7 -1
  10. moai_adk/cli/commands/rank.py +449 -0
  11. moai_adk/cli/commands/status.py +7 -1
  12. moai_adk/cli/commands/switch.py +325 -0
  13. moai_adk/cli/commands/update.py +296 -23
  14. moai_adk/cli/prompts/init_prompts.py +362 -66
  15. moai_adk/cli/prompts/translations/__init__.py +573 -0
  16. moai_adk/cli/ui/prompts.py +61 -2
  17. moai_adk/cli/worktree/cli.py +106 -1
  18. moai_adk/cli/worktree/manager.py +155 -0
  19. moai_adk/core/config/unified.py +244 -63
  20. moai_adk/core/credentials.py +264 -0
  21. moai_adk/core/error_recovery_system.py +22 -4
  22. moai_adk/core/git/conflict_detector.py +10 -1
  23. moai_adk/core/git/event_detector.py +16 -5
  24. moai_adk/core/integration/engine.py +2 -2
  25. moai_adk/core/integration/integration_tester.py +5 -5
  26. moai_adk/core/language_config_resolver.py +9 -3
  27. moai_adk/core/merge/analyzer.py +509 -324
  28. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  29. moai_adk/core/migration/backup_manager.py +54 -4
  30. moai_adk/core/migration/file_migrator.py +174 -2
  31. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  32. moai_adk/core/migration/version_detector.py +123 -19
  33. moai_adk/core/migration/version_migrator.py +44 -9
  34. moai_adk/core/model_allocator.py +241 -0
  35. moai_adk/core/project/backup_utils.py +12 -2
  36. moai_adk/core/project/initializer.py +44 -87
  37. moai_adk/core/project/phase_executor.py +95 -33
  38. moai_adk/core/project/validator.py +16 -1
  39. moai_adk/core/quality/trust_checker.py +30 -10
  40. moai_adk/core/rollback_manager.py +60 -25
  41. moai_adk/core/template/backup.py +88 -6
  42. moai_adk/core/template/config.py +33 -9
  43. moai_adk/core/template/merger.py +34 -8
  44. moai_adk/core/template/processor.py +334 -11
  45. moai_adk/core/template_engine.py +10 -1
  46. moai_adk/core/template_variable_synchronizer.py +16 -2
  47. moai_adk/core/version_sync.py +54 -6
  48. moai_adk/foundation/__init__.py +1 -20
  49. moai_adk/foundation/testing.py +1 -1
  50. moai_adk/loop/__init__.py +54 -0
  51. moai_adk/loop/controller.py +305 -0
  52. moai_adk/loop/feedback.py +230 -0
  53. moai_adk/loop/state.py +209 -0
  54. moai_adk/loop/storage.py +220 -0
  55. moai_adk/lsp/__init__.py +70 -0
  56. moai_adk/lsp/client.py +320 -0
  57. moai_adk/lsp/models.py +261 -0
  58. moai_adk/lsp/protocol.py +404 -0
  59. moai_adk/lsp/server_manager.py +248 -0
  60. moai_adk/project/configuration.py +8 -1
  61. moai_adk/py.typed +0 -0
  62. moai_adk/ralph/__init__.py +37 -0
  63. moai_adk/ralph/engine.py +307 -0
  64. moai_adk/rank/__init__.py +21 -0
  65. moai_adk/rank/auth.py +425 -0
  66. moai_adk/rank/client.py +557 -0
  67. moai_adk/rank/config.py +147 -0
  68. moai_adk/rank/hook.py +1503 -0
  69. moai_adk/rank/py.typed +0 -0
  70. moai_adk/statusline/__init__.py +3 -0
  71. moai_adk/statusline/enhanced_output_style_detector.py +5 -5
  72. moai_adk/statusline/main.py +20 -1
  73. moai_adk/statusline/memory_collector.py +268 -0
  74. moai_adk/statusline/renderer.py +54 -38
  75. moai_adk/tag_system/__init__.py +48 -0
  76. moai_adk/tag_system/atomic_ops.py +117 -0
  77. moai_adk/tag_system/linkage.py +335 -0
  78. moai_adk/tag_system/parser.py +176 -0
  79. moai_adk/tag_system/validator.py +200 -0
  80. moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
  81. moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
  82. moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
  83. moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
  84. moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
  85. moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
  86. moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
  87. moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
  88. moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
  89. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
  90. moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
  91. moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
  92. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
  93. moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
  94. moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
  95. moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
  96. moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
  97. moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
  98. moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
  99. moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
  100. moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
  101. moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
  102. moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
  103. moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
  104. moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
  105. moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
  106. moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
  107. moai_adk/templates/.claude/commands/moai/fix.md +264 -0
  108. moai_adk/templates/.claude/commands/moai/loop.md +363 -0
  109. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  110. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
  111. moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
  112. moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
  113. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  114. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  115. moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
  116. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
  117. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
  118. moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
  119. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  120. moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
  121. moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
  122. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
  123. moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
  124. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
  125. moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
  126. moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
  127. moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
  128. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  129. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  130. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  131. moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
  132. moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
  133. moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
  134. moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
  135. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
  136. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
  137. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
  138. moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
  139. moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
  140. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
  141. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
  142. moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
  143. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
  144. moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
  145. moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
  146. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
  147. moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
  148. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
  149. moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
  150. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
  151. moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
  152. moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
  153. moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
  154. moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
  155. moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
  156. moai_adk/templates/.claude/settings.json +154 -77
  157. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
  158. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
  159. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  160. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  161. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  162. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  163. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  164. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
  165. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
  166. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
  167. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
  168. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  169. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  170. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  171. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  172. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  173. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  174. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
  175. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
  176. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  177. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
  178. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  179. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  180. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
  181. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  182. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  183. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  184. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  185. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  186. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
  187. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  188. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  189. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  190. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  191. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
  192. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
  193. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  196. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  199. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  201. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
  204. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
  205. moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
  206. moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
  207. moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
  208. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
  209. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
  210. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  211. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
  212. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
  213. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  214. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  215. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  216. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  217. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  218. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  219. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  220. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
  221. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
  222. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  223. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
  224. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
  225. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
  226. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
  227. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
  228. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  229. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  230. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
  231. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
  232. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
  233. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  234. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
  235. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
  236. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
  237. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
  238. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  239. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
  240. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
  241. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
  242. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  243. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  244. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
  245. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
  246. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
  247. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  248. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  249. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  250. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  251. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  252. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
  253. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  254. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  255. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  256. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  257. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
  258. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
  259. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
  260. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  261. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  262. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  277. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  278. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  279. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  280. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  281. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  282. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  283. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  284. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  285. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  286. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  287. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  288. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  289. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  290. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  291. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  292. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  293. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  294. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  295. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  296. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  297. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
  298. moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
  299. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  300. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  301. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
  302. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  303. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  304. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  305. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  306. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  307. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  308. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
  309. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  310. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  311. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  312. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  313. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  314. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
  315. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  316. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  317. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  318. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  319. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  320. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  321. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
  322. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  323. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  324. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  325. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  326. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  327. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  328. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
  329. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  330. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  331. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  332. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  333. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  334. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  335. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
  336. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  337. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  338. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  339. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  340. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  341. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  342. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  343. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  344. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  345. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
  346. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  347. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  348. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  349. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  351. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  352. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  353. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
  354. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  355. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  357. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  358. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  359. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  360. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  361. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  362. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  363. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  364. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  365. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  366. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  367. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  368. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
  370. moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
  374. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
  375. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
  376. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
  378. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
  379. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  380. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  381. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  391. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  429. moai_adk/templates/.git-hooks/pre-push +162 -59
  430. moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
  431. moai_adk/templates/.gitignore +65 -107
  432. moai_adk/templates/.lsp.json +152 -0
  433. moai_adk/templates/.mcp.json +2 -20
  434. moai_adk/templates/.moai/announcements/en.json +18 -0
  435. moai_adk/templates/.moai/announcements/ja.json +18 -0
  436. moai_adk/templates/.moai/announcements/ko.json +18 -0
  437. moai_adk/templates/.moai/announcements/zh.json +18 -0
  438. moai_adk/templates/.moai/config/config.yaml +8 -2
  439. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +2 -2
  441. moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
  442. moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
  443. moai_adk/templates/.moai/config/sections/project.yaml +2 -2
  444. moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
  445. moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
  446. moai_adk/templates/.moai/config/sections/system.yaml +46 -1
  447. moai_adk/templates/.moai/config/sections/user.yaml +1 -1
  448. moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
  449. moai_adk/templates/.moai/llm-configs/glm.json +22 -0
  450. moai_adk/templates/CLAUDE.ja.md +343 -0
  451. moai_adk/templates/CLAUDE.ko.md +343 -0
  452. moai_adk/templates/CLAUDE.md +200 -499
  453. moai_adk/templates/CLAUDE.zh.md +343 -0
  454. moai_adk/utils/common.py +37 -0
  455. moai_adk/version.py +1 -1
  456. moai_adk-1.1.0.dist-info/METADATA +2443 -0
  457. moai_adk-1.1.0.dist-info/RECORD +701 -0
  458. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
  459. moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
  460. moai_adk/core/config/auto_spec_config.py +0 -340
  461. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  462. moai_adk/core/spec/confidence_scoring.py +0 -680
  463. moai_adk/core/spec/ears_template_engine.py +0 -1247
  464. moai_adk/core/spec/quality_validator.py +0 -687
  465. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
  466. moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
  467. moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
  468. moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
  469. moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
  470. moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
  471. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
  472. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
  473. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
  474. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
  475. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  476. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  477. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
  478. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
  479. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
  480. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
  481. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  482. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  483. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  484. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  485. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  486. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
  487. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  488. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  489. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  490. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  491. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  492. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  493. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  494. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  495. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  496. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  497. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  498. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
  499. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  500. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  501. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  502. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  503. moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
  504. moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
  505. moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
  506. moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
  507. moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
  508. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
  509. moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
  510. moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
  511. moai_adk-0.34.0.dist-info/METADATA +0 -2999
  512. moai_adk-0.34.0.dist-info/RECORD +0 -463
  513. moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
  514. /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
  515. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  516. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  517. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  518. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  519. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  520. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  521. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  522. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  523. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  524. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
@@ -1,730 +0,0 @@
1
- """
2
- MoAI Menu Project - Language Initializer Module
3
-
4
- Comprehensive language detection, configuration, and localization system.
5
- Integrates patterns from moai-project-language-initializer skill with
6
- advanced multilingual support and locale management.
7
- """
8
-
9
- import json
10
- import locale
11
- import os
12
- from datetime import datetime
13
- from pathlib import Path
14
- from typing import Any, Dict, List, Optional
15
-
16
-
17
- class LanguageInitializer:
18
- """Comprehensive language and localization management system."""
19
-
20
- # Language configuration mappings
21
- LANGUAGE_CONFIG = {
22
- "en": {
23
- "name": "English",
24
- "native_name": "English",
25
- "code": "en",
26
- "locale": "en_US.UTF-8",
27
- "agent_prompt_language": "english",
28
- "documentation_language": "en",
29
- "rtl": False,
30
- "date_format": "%Y-%m-%d",
31
- "time_format": "%H:%M:%S",
32
- },
33
- "ko": {
34
- "name": "Korean",
35
- "native_name": "한국어",
36
- "code": "ko",
37
- "locale": "ko_KR.UTF-8",
38
- "agent_prompt_language": "localized",
39
- "documentation_language": "ko",
40
- "rtl": False,
41
- "date_format": "%Y년 %m월 %d일",
42
- "time_format": "%H:%M:%S",
43
- },
44
- "ja": {
45
- "name": "Japanese",
46
- "native_name": "日本語",
47
- "code": "ja",
48
- "locale": "ja_JP.UTF-8",
49
- "agent_prompt_language": "localized",
50
- "documentation_language": "ja",
51
- "rtl": False,
52
- "date_format": "%Y年%m月%d日",
53
- "time_format": "%H:%M:%S",
54
- },
55
- "zh": {
56
- "name": "Chinese",
57
- "native_name": "中文",
58
- "code": "zh",
59
- "locale": "zh_CN.UTF-8",
60
- "agent_prompt_language": "localized",
61
- "documentation_language": "zh",
62
- "rtl": False,
63
- "date_format": "%Y年%m月%d日",
64
- "time_format": "%H:%M:%S",
65
- },
66
- }
67
-
68
- # Domain-specific language mappings
69
- DOMAIN_LANGUAGES = {
70
- "backend": ["en", "ko"],
71
- "frontend": ["en", "ko", "ja"],
72
- "mobile": ["en", "ko", "ja", "zh"],
73
- "devops": ["en"],
74
- "data_science": ["en", "ko", "zh"],
75
- "ai_ml": ["en", "ko", "ja", "zh"],
76
- "security": ["en"],
77
- "testing": ["en", "ko"],
78
- "documentation": ["en", "ko", "ja", "zh"],
79
- }
80
-
81
- def __init__(self, project_root: str, config: Dict[str, Any]):
82
- self.project_root = Path(project_root)
83
- self.config = config
84
- self.config_path = self.project_root / ".moai/config/config.yaml"
85
- self._ensure_config_exists()
86
-
87
- def _ensure_config_exists(self):
88
- """Ensure config file exists with basic structure."""
89
- self.config_path.parent.mkdir(parents=True, exist_ok=True)
90
-
91
- if not self.config_path.exists():
92
- default_config = {
93
- "language": {
94
- "conversation_language": "en",
95
- "conversation_language_name": "English",
96
- "agent_prompt_language": "english",
97
- "documentation_language": "en",
98
- },
99
- "user": {
100
- "name": "Developer",
101
- "selected_at": datetime.now().isoformat(),
102
- },
103
- "project": {"name": "My Project", "type": "web_application"},
104
- }
105
- self.config_path.write_text(
106
- json.dumps(default_config, indent=2, ensure_ascii=False),
107
- encoding="utf-8",
108
- )
109
-
110
- def detect_project_language(self) -> str:
111
- """
112
- Auto-detect project language based on project structure and content.
113
-
114
- Returns:
115
- Detected language code (en, ko, ja, zh)
116
- """
117
-
118
- # Method 1: Check existing config
119
- if self.config_path.exists():
120
- existing_config = json.loads(self.config_path.read_text(encoding="utf-8"))
121
- existing_lang = existing_config.get("language", {}).get("conversation_language")
122
- if existing_lang:
123
- return existing_lang
124
-
125
- # Method 2: Analyze file content
126
- detected_language = self._analyze_file_content()
127
- if detected_language:
128
- return detected_language
129
-
130
- # Method 3: Check system locale
131
- system_language = self._get_system_language()
132
- if system_language in self.LANGUAGE_CONFIG:
133
- return system_language
134
-
135
- # Method 4: Default to English
136
- return "en"
137
-
138
- def _analyze_file_content(self) -> Optional[str]:
139
- """Analyze project files to detect primary language."""
140
-
141
- # Check for language indicators in common files
142
- indicators = {
143
- "ko": ["한국어", "한글", "ko_KR", ".ko."],
144
- "ja": ["日本語", "ja_JP", ".ja."],
145
- "zh": ["中文", "简体中文", "zh_CN", ".zh."],
146
- "en": ["English", "en_US", ".en."],
147
- }
148
-
149
- # Search in README files
150
- for readme_file in self.project_root.glob("README*"):
151
- if readme_file.is_file():
152
- content = readme_file.read_text(encoding="utf-8", errors="ignore")
153
- for lang_code, lang_indicators in indicators.items():
154
- for indicator in lang_indicators:
155
- if indicator in content:
156
- return lang_code
157
-
158
- # Search in package.json
159
- package_json = self.project_root / "package.json"
160
- if package_json.exists():
161
- try:
162
- package_data = json.loads(package_json.read_text(encoding="utf-8"))
163
- # Check for language-specific fields
164
- if "name" in package_data:
165
- name = package_data["name"]
166
- if any(char in name for char in "가나다라마바사"):
167
- return "ko"
168
- elif any(char in name for char in "あいうえお"):
169
- return "ja"
170
- elif any(char in name for char in "中文测试"):
171
- return "zh"
172
- except (json.JSONDecodeError, UnicodeDecodeError):
173
- pass
174
-
175
- # Search in source code comments
176
- src_dir = self.project_root / "src"
177
- if src_dir.exists():
178
- for file_path in src_dir.rglob("*"):
179
- if file_path.is_file() and file_path.suffix in [
180
- ".py",
181
- ".js",
182
- ".ts",
183
- ".java",
184
- ".cpp",
185
- ]:
186
- try:
187
- content = file_path.read_text(encoding="utf-8", errors="ignore")
188
- for lang_code, lang_indicators in indicators.items():
189
- for indicator in lang_indicators:
190
- if indicator in content:
191
- return lang_code
192
- except UnicodeDecodeError:
193
- continue
194
-
195
- return None
196
-
197
- def _get_system_language(self) -> str:
198
- """Get system default language."""
199
-
200
- try:
201
- # Try to get system locale
202
- system_locale = locale.getdefaultlocale()
203
- if system_locale and system_locale[0]:
204
- lang_code = system_locale[0].split("_")[0]
205
- if lang_code in self.LANGUAGE_CONFIG:
206
- return lang_code
207
- except (ValueError, IndexError):
208
- pass
209
-
210
- # Try environment variables
211
- env_lang = os.environ.get("LANG", "").split(".")[0].split("_")[0]
212
- if env_lang in self.LANGUAGE_CONFIG:
213
- return env_lang
214
-
215
- return "en"
216
-
217
- def initialize_language_configuration(
218
- self, language: str = None, user_name: str = None, domains: List[str] = None
219
- ) -> Dict[str, Any]:
220
- """
221
- Initialize comprehensive language configuration.
222
-
223
- Args:
224
- language: Target language code (auto-detected if not provided)
225
- user_name: User name for personalization
226
- domains: List of selected domains
227
-
228
- Returns:
229
- Configuration results and updated settings
230
- """
231
-
232
- # Auto-detect language if not provided
233
- if not language:
234
- language = self.detect_project_language()
235
-
236
- # Validate language
237
- if language not in self.LANGUAGE_CONFIG:
238
- language = "en" # Fallback
239
-
240
- lang_config = self.LANGUAGE_CONFIG[language]
241
-
242
- # Load existing config
243
- current_config = {}
244
- if self.config_path.exists():
245
- current_config = json.loads(self.config_path.read_text(encoding="utf-8"))
246
-
247
- # Update language settings
248
- current_config.setdefault("language", {}).update(
249
- {
250
- "conversation_language": language,
251
- "conversation_language_name": lang_config["native_name"],
252
- "agent_prompt_language": lang_config["agent_prompt_language"],
253
- "documentation_language": lang_config["documentation_language"],
254
- "locale": lang_config["locale"],
255
- "rtl": lang_config["rtl"],
256
- "date_format": lang_config["date_format"],
257
- "time_format": lang_config["time_format"],
258
- "initialized_at": datetime.now().isoformat(),
259
- }
260
- )
261
-
262
- # Update user settings
263
- if user_name:
264
- current_config.setdefault("user", {}).update({"name": user_name, "selected_at": datetime.now().isoformat()})
265
-
266
- # Update domain settings if provided
267
- if domains:
268
- # Validate domains for selected language
269
- valid_domains = []
270
- for domain in domains:
271
- if language in self.DOMAIN_LANGUAGES.get(domain, ["en"]):
272
- valid_domains.append(domain)
273
-
274
- current_config.setdefault("project", {}).update(
275
- {
276
- "selected_domains": valid_domains,
277
- "domain_selection_date": datetime.now().isoformat(),
278
- }
279
- )
280
-
281
- # Generate localized templates
282
- templates = self._generate_localized_templates(language)
283
-
284
- # Save updated configuration
285
- self.config_path.write_text(json.dumps(current_config, indent=2, ensure_ascii=False), encoding="utf-8")
286
-
287
- return {
288
- "language": language,
289
- "language_config": lang_config,
290
- "updated_config": current_config,
291
- "templates": templates,
292
- "domains_supported": self._get_supported_domains(language),
293
- "token_cost_impact": self._calculate_token_impact(language),
294
- }
295
-
296
- def _generate_localized_templates(self, language: str) -> Dict[str, str]:
297
- """Generate language-specific templates and prompts."""
298
-
299
- templates = {
300
- "welcome_message": "",
301
- "error_messages": {},
302
- "success_messages": {},
303
- "prompts": {},
304
- }
305
-
306
- if language == "ko":
307
- templates.update(
308
- {
309
- "welcome_message": "MoAI 프로젝트에 오신 것을 환영합니다!",
310
- "error_messages": {
311
- "config_load_error": "구성 파일을 로드할 수 없습니다.",
312
- "invalid_language": "지원되지 않는 언어입니다.",
313
- "file_not_found": "파일을 찾을 수 없습니다.",
314
- },
315
- "success_messages": {
316
- "config_saved": "구성이 성공적으로 저장되었습니다.",
317
- "project_initialized": "프로젝트가 초기화되었습니다.",
318
- "language_set": "언어가 한국어로 설정되었습니다.",
319
- },
320
- "prompts": {
321
- "select_language": "사용할 언어를 선택해주세요:",
322
- "enter_name": "사용자 이름을 입력해주세요:",
323
- "select_domains": "작업할 도메인을 선택해주세요:",
324
- },
325
- }
326
- )
327
- elif language == "ja":
328
- templates.update(
329
- {
330
- "welcome_message": "MoAIプロジェクトへようこそ!",
331
- "error_messages": {
332
- "config_load_error": "設定ファイルを読み込めませんでした。",
333
- "invalid_language": "サポートされていない言語です。",
334
- "file_not_found": "ファイルが見つかりません。",
335
- },
336
- "success_messages": {
337
- "config_saved": "設定が正常に保存されました。",
338
- "project_initialized": "プロジェクトが初期化されました。",
339
- "language_set": "言語が日本語に設定されました。",
340
- },
341
- "prompts": {
342
- "select_language": "使用する言語を選択してください:",
343
- "enter_name": "ユーザー名を入力してください:",
344
- "select_domains": "作業するドメインを選択してください:",
345
- },
346
- }
347
- )
348
- elif language == "zh":
349
- templates.update(
350
- {
351
- "welcome_message": "欢迎使用 MoAI 项目!",
352
- "error_messages": {
353
- "config_load_error": "无法加载配置文件。",
354
- "invalid_language": "不支持的语言。",
355
- "file_not_found": "找不到文件。",
356
- },
357
- "success_messages": {
358
- "config_saved": "配置已成功保存。",
359
- "project_initialized": "项目已初始化。",
360
- "language_set": "语言已设置为中文。",
361
- },
362
- "prompts": {
363
- "select_language": "请选择使用的语言:",
364
- "enter_name": "请输入用户名:",
365
- "select_domains": "请选择工作领域:",
366
- },
367
- }
368
- )
369
- else: # English (default)
370
- templates.update(
371
- {
372
- "welcome_message": "Welcome to MoAI Project!",
373
- "error_messages": {
374
- "config_load_error": "Cannot load configuration file.",
375
- "invalid_language": "Unsupported language.",
376
- "file_not_found": "File not found.",
377
- },
378
- "success_messages": {
379
- "config_saved": "Configuration saved successfully.",
380
- "project_initialized": "Project initialized successfully.",
381
- "language_set": "Language set to English.",
382
- },
383
- "prompts": {
384
- "select_language": "Please select your preferred language:",
385
- "enter_name": "Please enter your name:",
386
- "select_domains": "Please select your work domains:",
387
- },
388
- }
389
- )
390
-
391
- return templates
392
-
393
- def _get_supported_domains(self, language: str) -> List[str]:
394
- """Get list of domains supported for the given language."""
395
-
396
- supported = []
397
- for domain, langs in self.DOMAIN_LANGUAGES.items():
398
- if language in langs:
399
- supported.append(domain)
400
-
401
- return sorted(supported)
402
-
403
- def _calculate_token_impact(self, language: str) -> Dict[str, Any]:
404
- """Calculate token cost impact for the selected language."""
405
-
406
- impact = {
407
- "language": language,
408
- "conversation_overhead": 0,
409
- "agent_prompt_overhead": 0,
410
- "documentation_overhead": 0,
411
- "total_overhead_percentage": 0,
412
- "recommendations": [],
413
- }
414
-
415
- if language == "en":
416
- impact.update(
417
- {
418
- "conversation_overhead": 0,
419
- "agent_prompt_overhead": 0,
420
- "documentation_overhead": 0,
421
- "total_overhead_percentage": 0,
422
- "recommendations": [
423
- "Most token-efficient choice",
424
- "Widely supported documentation and libraries",
425
- ],
426
- }
427
- )
428
- else:
429
- # Non-English languages typically require 15-25% more tokens
430
- overhead_percentage = 20
431
-
432
- impact.update(
433
- {
434
- "conversation_overhead": overhead_percentage,
435
- "agent_prompt_overhead": (
436
- 15
437
- if self.LANGUAGE_CONFIG[language]["agent_prompt_language"] == "english"
438
- else overhead_percentage
439
- ),
440
- "documentation_overhead": overhead_percentage,
441
- "total_overhead_percentage": overhead_percentage,
442
- "recommendations": [
443
- f"Expect ~{overhead_percentage}% increase in token usage",
444
- "Consider using English for agent prompts to reduce costs",
445
- "Localized prompts provide better user experience",
446
- ],
447
- }
448
- )
449
-
450
- return impact
451
-
452
- def localize_agent_prompts(self, prompt_template: str, language: str = None) -> str:
453
- """
454
- Localize agent prompts based on language configuration.
455
-
456
- Args:
457
- prompt_template: Base prompt template
458
- language: Target language (uses config default if not provided)
459
-
460
- Returns:
461
- Localized prompt string
462
- """
463
-
464
- if not language:
465
- language = self.detect_project_language()
466
-
467
- # Load current configuration
468
- if self.config_path.exists():
469
- config = json.loads(self.config_path.read_text(encoding="utf-8"))
470
- agent_lang = config.get("language", {}).get("agent_prompt_language", "english")
471
- else:
472
- agent_lang = "english"
473
-
474
- # If agent prompts should be in English, return as-is
475
- if agent_lang == "english":
476
- return prompt_template
477
-
478
- # Apply language-specific localizations
479
- localized_prompt = prompt_template
480
-
481
- if language == "ko":
482
- # Add Korean-specific instructions
483
- korean_additions = (
484
- "\n\nIMPORTANT: Please respond in Korean (한국어) "
485
- "when interacting with the user. Use formal polite form (합니다/입니다 style)."
486
- )
487
- localized_prompt += korean_additions
488
-
489
- elif language == "ja":
490
- # Add Japanese-specific instructions
491
- japanese_additions = (
492
- "\n\nIMPORTANT: Please respond in Japanese (日本語) "
493
- "when interacting with the user. Use polite form (です/ます style)."
494
- )
495
- localized_prompt += japanese_additions
496
-
497
- elif language == "zh":
498
- # Add Chinese-specific instructions
499
- chinese_additions = (
500
- "\n\nIMPORTANT: Please respond in Chinese (中文) when interacting with the user. Use standard Mandarin."
501
- )
502
- localized_prompt += chinese_additions
503
-
504
- return localized_prompt
505
-
506
- def create_multilingual_documentation_structure(self, language: str = None) -> Dict[str, Any]:
507
- """
508
- Create documentation structure for multilingual support.
509
-
510
- Args:
511
- language: Primary language for documentation
512
-
513
- Returns:
514
- Documentation structure configuration
515
- """
516
-
517
- if not language:
518
- language = self.detect_project_language()
519
-
520
- docs_root = self.project_root / "docs"
521
-
522
- # Create language-specific directories
523
- lang_dirs = {
524
- "primary": docs_root / language,
525
- "en": docs_root / "en", # Always include English as fallback
526
- }
527
-
528
- # Create additional language directories if needed
529
- for lang_code in ["ko", "ja", "zh"]:
530
- if lang_code != language:
531
- lang_dirs[lang_code] = docs_root / lang_code
532
-
533
- # Ensure directories exist
534
- for lang_dir in lang_dirs.values():
535
- lang_dir.mkdir(parents=True, exist_ok=True)
536
-
537
- # Create language index
538
- language_index = {
539
- "primary_language": language,
540
- "supported_languages": list(lang_dirs.keys()),
541
- "directory_structure": {k: str(v) for k, v in lang_dirs.items()},
542
- "fallback_language": "en",
543
- "auto_redirect": True,
544
- }
545
-
546
- # Save language index
547
- index_path = docs_root / "languages.json"
548
- index_path.write_text(json.dumps(language_index, indent=2, ensure_ascii=False), encoding="utf-8")
549
-
550
- # Create .htaccess for language redirection (if web docs)
551
- htaccess_content = f"""
552
- # Language negotiation
553
- Options +MultiViews
554
- AddLanguage ko .ko
555
- AddLanguage ja .ja
556
- AddLanguage zh .zh
557
- AddLanguage en .en
558
-
559
- # Default language
560
- DefaultLanguage {language}
561
-
562
- # Force language for specific files
563
- <Files "README">
564
- ForceType text/html
565
- Header set Content-Language {language}
566
- </Files>
567
- """
568
-
569
- htaccess_path = docs_root / ".htaccess"
570
- htaccess_path.write_text(htaccess_content.strip(), encoding="utf-8")
571
-
572
- return {
573
- "created_directories": [str(d) for d in lang_dirs.values()],
574
- "language_index": language_index,
575
- "primary_language": language,
576
- "total_languages": len(lang_dirs),
577
- }
578
-
579
- def validate_language_configuration(self) -> Dict[str, Any]:
580
- """
581
- Validate current language configuration.
582
-
583
- Returns:
584
- Validation results with recommendations
585
- """
586
-
587
- validation_result = {
588
- "valid": True,
589
- "errors": [],
590
- "warnings": [],
591
- "recommendations": [],
592
- "current_config": {},
593
- }
594
-
595
- if not self.config_path.exists():
596
- validation_result["errors"].append("Configuration file does not exist")
597
- validation_result["valid"] = False
598
- return validation_result
599
-
600
- try:
601
- current_config = json.loads(self.config_path.read_text(encoding="utf-8"))
602
- validation_result["current_config"] = current_config
603
-
604
- # Validate language section
605
- language_config = current_config.get("language", {})
606
-
607
- # Check required fields
608
- required_fields = [
609
- "conversation_language",
610
- "conversation_language_name",
611
- "agent_prompt_language",
612
- "documentation_language",
613
- ]
614
-
615
- for field in required_fields:
616
- if field not in language_config:
617
- validation_result["errors"].append(f"Missing required field: language.{field}")
618
- validation_result["valid"] = False
619
-
620
- # Validate language codes
621
- conv_lang = language_config.get("conversation_language")
622
- if conv_lang and conv_lang not in self.LANGUAGE_CONFIG:
623
- validation_result["errors"].append(f"Invalid conversation language: {conv_lang}")
624
- validation_result["valid"] = False
625
-
626
- # Check agent prompt language consistency
627
- agent_lang = language_config.get("agent_prompt_language")
628
- if agent_lang and agent_lang not in ["english", "localized"]:
629
- validation_result["warnings"].append(f"Unusual agent prompt language: {agent_lang}")
630
-
631
- # Check for optimization opportunities
632
- if conv_lang != "en" and agent_lang == "localized":
633
- validation_result["recommendations"].append(
634
- "Consider using English for agent prompts to reduce token costs by ~15%"
635
- )
636
-
637
- # Validate user section
638
- user_config = current_config.get("user", {})
639
- if "name" not in user_config:
640
- validation_result["recommendations"].append("Set user name for personalized experience")
641
-
642
- except json.JSONDecodeError as e:
643
- validation_result["errors"].append(f"Invalid JSON in configuration: {e}")
644
- validation_result["valid"] = False
645
-
646
- return validation_result
647
-
648
- def update_language_settings(self, updates: Dict[str, Any]) -> Dict[str, Any]:
649
- """
650
- Update specific language settings.
651
-
652
- Args:
653
- updates: Dictionary of settings to update
654
-
655
- Returns:
656
- Update results
657
- """
658
-
659
- if not self.config_path.exists():
660
- return {"success": False, "error": "Configuration file does not exist"}
661
-
662
- try:
663
- # Load current config
664
- current_config = json.loads(self.config_path.read_text(encoding="utf-8"))
665
-
666
- # Apply updates
667
- for key_path, value in updates.items():
668
- keys = key_path.split(".")
669
- target = current_config
670
-
671
- for key in keys[:-1]:
672
- target = target.setdefault(key, {})
673
-
674
- target[keys[-1]] = value
675
-
676
- # Save updated config
677
- self.config_path.write_text(
678
- json.dumps(current_config, indent=2, ensure_ascii=False),
679
- encoding="utf-8",
680
- )
681
-
682
- return {
683
- "success": True,
684
- "updated_config": current_config,
685
- "updates_applied": updates,
686
- }
687
-
688
- except Exception as e:
689
- return {"success": False, "error": str(e)}
690
-
691
- def get_language_status(self) -> Dict[str, Any]:
692
- """
693
- Get comprehensive language configuration status.
694
-
695
- Returns:
696
- Language status and metrics
697
- """
698
-
699
- status = {
700
- "detected_language": self.detect_project_language(),
701
- "configured_language": None,
702
- "system_language": self._get_system_language(),
703
- "supported_languages": list(self.LANGUAGE_CONFIG.keys()),
704
- "configuration_exists": self.config_path.exists(),
705
- "token_impact": {},
706
- "domain_support": {},
707
- }
708
-
709
- # Load current configuration if exists
710
- if self.config_path.exists():
711
- try:
712
- config = json.loads(self.config_path.read_text(encoding="utf-8"))
713
- lang_config = config.get("language", {})
714
- status["configured_language"] = lang_config.get("conversation_language")
715
-
716
- # Calculate token impact
717
- if status["configured_language"]:
718
- status["token_impact"] = self._calculate_token_impact(status["configured_language"])
719
-
720
- # Get domain support
721
- if status["configured_language"]:
722
- status["domain_support"] = {
723
- domain: status["configured_language"] in langs
724
- for domain, langs in self.DOMAIN_LANGUAGES.items()
725
- }
726
-
727
- except json.JSONDecodeError:
728
- status["configuration_error"] = "Invalid JSON in configuration file"
729
-
730
- return status