@trac3er/oh-my-god 2.0.5 → 2.0.7

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 (560) hide show
  1. package/.agents/skills/omg/AGENTS.fragment.md +57 -4
  2. package/.agents/skills/omg/claim-judge/SKILL.md +11 -0
  3. package/.agents/skills/omg/claim-judge/openai.yaml +13 -0
  4. package/.agents/skills/omg/codex-rules.md +33 -0
  5. package/.agents/skills/omg/plan-council/SKILL.md +11 -0
  6. package/.agents/skills/omg/plan-council/openai.yaml +12 -0
  7. package/.agents/skills/omg/proof-gate/SKILL.md +11 -0
  8. package/.agents/skills/omg/proof-gate/openai.yaml +13 -0
  9. package/.agents/skills/omg/test-intent-lock/SKILL.md +11 -0
  10. package/.agents/skills/omg/test-intent-lock/openai.yaml +13 -0
  11. package/.claude-plugin/marketplace.json +5 -5
  12. package/.claude-plugin/plugin.json +1 -1
  13. package/.claude-plugin/scripts/uninstall.sh +1 -1
  14. package/.mcp.json +0 -22
  15. package/CHANGELOG.md +13 -0
  16. package/OMG-setup.sh +64 -14
  17. package/OMG_COMPAT_CONTRACT.md +1 -1
  18. package/README.md +8 -6
  19. package/agents/omg-security-auditor.md +1 -1
  20. package/artifacts/release/.agents/skills/omg/AGENTS.fragment.md +52 -0
  21. package/artifacts/release/.agents/skills/omg/algorithms/SKILL.md +11 -0
  22. package/artifacts/release/.agents/skills/omg/algorithms/openai.yaml +11 -0
  23. package/artifacts/release/.agents/skills/omg/api-twin/SKILL.md +11 -0
  24. package/artifacts/release/.agents/skills/omg/api-twin/openai.yaml +12 -0
  25. package/artifacts/release/.agents/skills/omg/codex-mcp.toml +4 -0
  26. package/artifacts/release/.agents/skills/omg/codex-rules.md +29 -0
  27. package/artifacts/release/.agents/skills/omg/control-plane/SKILL.md +11 -0
  28. package/artifacts/release/.agents/skills/omg/control-plane/openai.yaml +14 -0
  29. package/artifacts/release/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  30. package/artifacts/release/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  31. package/artifacts/release/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  32. package/artifacts/release/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  33. package/artifacts/release/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  34. package/artifacts/release/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  35. package/artifacts/release/.agents/skills/omg/health/SKILL.md +11 -0
  36. package/artifacts/release/.agents/skills/omg/health/openai.yaml +11 -0
  37. package/artifacts/release/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  38. package/artifacts/release/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  39. package/artifacts/release/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  40. package/artifacts/release/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  41. package/artifacts/release/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  42. package/artifacts/release/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  43. package/artifacts/release/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  44. package/artifacts/release/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  45. package/artifacts/release/.agents/skills/omg/preflight/SKILL.md +11 -0
  46. package/artifacts/release/.agents/skills/omg/preflight/openai.yaml +12 -0
  47. package/artifacts/release/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  48. package/artifacts/release/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  49. package/artifacts/release/.agents/skills/omg/robotics/SKILL.md +11 -0
  50. package/artifacts/release/.agents/skills/omg/robotics/openai.yaml +11 -0
  51. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  52. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  53. package/artifacts/release/.agents/skills/omg/security-check/SKILL.md +11 -0
  54. package/artifacts/release/.agents/skills/omg/security-check/openai.yaml +13 -0
  55. package/artifacts/release/.agents/skills/omg/tracebank/SKILL.md +11 -0
  56. package/artifacts/release/.agents/skills/omg/tracebank/openai.yaml +12 -0
  57. package/artifacts/release/.agents/skills/omg/vision/SKILL.md +11 -0
  58. package/artifacts/release/.agents/skills/omg/vision/openai.yaml +11 -0
  59. package/artifacts/release/.claude-plugin/marketplace.json +36 -0
  60. package/artifacts/release/.claude-plugin/plugin.json +23 -0
  61. package/artifacts/release/.mcp.json +40 -0
  62. package/artifacts/release/OMG_COMPAT_CONTRACT.md +92 -0
  63. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +52 -0
  64. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  65. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  66. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  67. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  68. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
  69. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
  70. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
  71. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
  72. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  73. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  74. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  75. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  76. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  77. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  78. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  79. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  80. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  81. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  82. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  83. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  84. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  85. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  86. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  87. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  88. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  89. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  90. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  91. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  92. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  93. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  94. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  95. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  96. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  97. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  98. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  99. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  100. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  101. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  102. package/artifacts/release/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +92 -0
  103. package/artifacts/release/dist/enterprise/bundle/registry/bundles/algorithms.yaml +45 -0
  104. package/artifacts/release/dist/enterprise/bundle/registry/bundles/api-twin.yaml +48 -0
  105. package/artifacts/release/dist/enterprise/bundle/registry/bundles/control-plane.yaml +151 -0
  106. package/artifacts/release/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +47 -0
  107. package/artifacts/release/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +47 -0
  108. package/artifacts/release/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +47 -0
  109. package/artifacts/release/dist/enterprise/bundle/registry/bundles/health.yaml +45 -0
  110. package/artifacts/release/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +97 -0
  111. package/artifacts/release/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +47 -0
  112. package/artifacts/release/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +48 -0
  113. package/artifacts/release/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  114. package/artifacts/release/dist/enterprise/bundle/registry/bundles/preflight.yaml +48 -0
  115. package/artifacts/release/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  116. package/artifacts/release/dist/enterprise/bundle/registry/bundles/robotics.yaml +45 -0
  117. package/artifacts/release/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  118. package/artifacts/release/dist/enterprise/bundle/registry/bundles/security-check.yaml +50 -0
  119. package/artifacts/release/dist/enterprise/bundle/registry/bundles/tracebank.yaml +47 -0
  120. package/artifacts/release/dist/enterprise/bundle/registry/bundles/vision.yaml +45 -0
  121. package/artifacts/release/dist/enterprise/bundle/registry/omg-capability.schema.json +296 -0
  122. package/artifacts/release/dist/enterprise/manifest.json +243 -0
  123. package/artifacts/release/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +7 -0
  124. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  125. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  126. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  127. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  128. package/artifacts/release/dist/public/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
  129. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
  130. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
  131. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  132. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  133. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  134. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  135. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  136. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  137. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  138. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  139. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  140. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  141. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  142. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  143. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  144. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  145. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  146. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  147. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  148. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  149. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  150. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  151. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  152. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  153. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  154. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  155. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  156. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  157. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  158. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  159. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  160. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  161. package/artifacts/release/dist/public/bundle/.claude-plugin/marketplace.json +36 -0
  162. package/artifacts/release/dist/public/bundle/.claude-plugin/plugin.json +23 -0
  163. package/artifacts/release/dist/public/bundle/.mcp.json +40 -0
  164. package/artifacts/release/dist/public/bundle/OMG_COMPAT_CONTRACT.md +92 -0
  165. package/artifacts/release/dist/public/bundle/registry/bundles/algorithms.yaml +45 -0
  166. package/artifacts/release/dist/public/bundle/registry/bundles/api-twin.yaml +48 -0
  167. package/artifacts/release/dist/public/bundle/registry/bundles/control-plane.yaml +151 -0
  168. package/artifacts/release/dist/public/bundle/registry/bundles/data-lineage.yaml +47 -0
  169. package/artifacts/release/dist/public/bundle/registry/bundles/delta-classifier.yaml +47 -0
  170. package/artifacts/release/dist/public/bundle/registry/bundles/eval-gate.yaml +47 -0
  171. package/artifacts/release/dist/public/bundle/registry/bundles/health.yaml +45 -0
  172. package/artifacts/release/dist/public/bundle/registry/bundles/hook-governor.yaml +97 -0
  173. package/artifacts/release/dist/public/bundle/registry/bundles/incident-replay.yaml +47 -0
  174. package/artifacts/release/dist/public/bundle/registry/bundles/lsp-pack.yaml +48 -0
  175. package/artifacts/release/dist/public/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  176. package/artifacts/release/dist/public/bundle/registry/bundles/preflight.yaml +48 -0
  177. package/artifacts/release/dist/public/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  178. package/artifacts/release/dist/public/bundle/registry/bundles/robotics.yaml +45 -0
  179. package/artifacts/release/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  180. package/artifacts/release/dist/public/bundle/registry/bundles/security-check.yaml +50 -0
  181. package/artifacts/release/dist/public/bundle/registry/bundles/tracebank.yaml +47 -0
  182. package/artifacts/release/dist/public/bundle/registry/bundles/vision.yaml +45 -0
  183. package/artifacts/release/dist/public/bundle/registry/omg-capability.schema.json +296 -0
  184. package/artifacts/release/dist/public/bundle/settings.json +526 -0
  185. package/artifacts/release/dist/public/manifest.json +255 -0
  186. package/artifacts/release/registry/bundles/algorithms.yaml +45 -0
  187. package/artifacts/release/registry/bundles/api-twin.yaml +48 -0
  188. package/artifacts/release/registry/bundles/control-plane.yaml +151 -0
  189. package/artifacts/release/registry/bundles/data-lineage.yaml +47 -0
  190. package/artifacts/release/registry/bundles/delta-classifier.yaml +47 -0
  191. package/artifacts/release/registry/bundles/eval-gate.yaml +47 -0
  192. package/artifacts/release/registry/bundles/health.yaml +45 -0
  193. package/artifacts/release/registry/bundles/hook-governor.yaml +97 -0
  194. package/artifacts/release/registry/bundles/incident-replay.yaml +47 -0
  195. package/artifacts/release/registry/bundles/lsp-pack.yaml +48 -0
  196. package/artifacts/release/registry/bundles/mcp-fabric.yaml +53 -0
  197. package/artifacts/release/registry/bundles/preflight.yaml +48 -0
  198. package/artifacts/release/registry/bundles/remote-supervisor.yaml +49 -0
  199. package/artifacts/release/registry/bundles/robotics.yaml +45 -0
  200. package/artifacts/release/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  201. package/artifacts/release/registry/bundles/security-check.yaml +50 -0
  202. package/artifacts/release/registry/bundles/tracebank.yaml +47 -0
  203. package/artifacts/release/registry/bundles/vision.yaml +45 -0
  204. package/artifacts/release/registry/omg-capability.schema.json +296 -0
  205. package/artifacts/release/settings.json +594 -0
  206. package/build/lib/agents/__init__.py +1 -0
  207. package/build/lib/agents/designer.md +67 -0
  208. package/build/lib/agents/explore.md +60 -0
  209. package/build/lib/agents/model_roles.py +196 -0
  210. package/build/lib/agents/omg-api-builder.md +23 -0
  211. package/build/lib/agents/omg-architect-mode.md +41 -0
  212. package/build/lib/agents/omg-architect.md +13 -0
  213. package/build/lib/agents/omg-backend-engineer.md +41 -0
  214. package/build/lib/agents/omg-critic.md +16 -0
  215. package/build/lib/agents/omg-database-engineer.md +41 -0
  216. package/build/lib/agents/omg-escalation-router.md +17 -0
  217. package/build/lib/agents/omg-executor.md +12 -0
  218. package/build/lib/agents/omg-frontend-designer.md +41 -0
  219. package/build/lib/agents/omg-implement-mode.md +49 -0
  220. package/build/lib/agents/omg-infra-engineer.md +41 -0
  221. package/build/lib/agents/omg-qa-tester.md +16 -0
  222. package/build/lib/agents/omg-research-mode.md +41 -0
  223. package/build/lib/agents/omg-security-auditor.md +41 -0
  224. package/build/lib/agents/omg-testing-engineer.md +41 -0
  225. package/build/lib/agents/plan.md +80 -0
  226. package/build/lib/agents/quick_task.md +64 -0
  227. package/build/lib/agents/reviewer.md +83 -0
  228. package/build/lib/agents/task.md +71 -0
  229. package/build/lib/commands/OMG:ai-commit.md +113 -0
  230. package/build/lib/commands/OMG:api-twin.md +22 -0
  231. package/build/lib/commands/OMG:arch.md +313 -0
  232. package/build/lib/commands/OMG:ccg.md +22 -0
  233. package/build/lib/commands/OMG:compat.md +57 -0
  234. package/build/lib/commands/OMG:cost.md +181 -0
  235. package/build/lib/commands/OMG:crazy.md +125 -0
  236. package/build/lib/commands/OMG:create-agent.md +183 -0
  237. package/build/lib/commands/OMG:deps.md +248 -0
  238. package/build/lib/commands/OMG:doctor.md +37 -0
  239. package/build/lib/commands/OMG:domain-init.md +11 -0
  240. package/build/lib/commands/OMG:escalate.md +52 -0
  241. package/build/lib/commands/OMG:health-check.md +45 -0
  242. package/build/lib/commands/OMG:init.md +134 -0
  243. package/build/lib/commands/OMG:mode.md +44 -0
  244. package/build/lib/commands/OMG:preflight.md +26 -0
  245. package/build/lib/commands/OMG:project-init.md +11 -0
  246. package/build/lib/commands/OMG:ralph-start.md +43 -0
  247. package/build/lib/commands/OMG:ralph-stop.md +23 -0
  248. package/build/lib/commands/OMG:security-check.md +28 -0
  249. package/build/lib/commands/OMG:session-branch.md +85 -0
  250. package/build/lib/commands/OMG:session-fork.md +53 -0
  251. package/build/lib/commands/OMG:session-merge.md +134 -0
  252. package/build/lib/commands/OMG:setup.md +78 -0
  253. package/build/lib/commands/OMG:stats.md +225 -0
  254. package/build/lib/commands/OMG:teams.md +39 -0
  255. package/build/lib/commands/OMG:theme.md +44 -0
  256. package/build/lib/commands/__init__.py +1 -0
  257. package/build/lib/control_plane/__init__.py +2 -0
  258. package/build/lib/control_plane/openapi.yaml +260 -0
  259. package/build/lib/control_plane/server.py +147 -0
  260. package/build/lib/control_plane/service.py +222 -0
  261. package/build/lib/hooks/__init__.py +0 -0
  262. package/build/lib/hooks/_agent_registry.py +423 -0
  263. package/build/lib/hooks/_analytics.py +291 -0
  264. package/build/lib/hooks/_budget.py +31 -0
  265. package/build/lib/hooks/_common.py +569 -0
  266. package/build/lib/hooks/_compression_optimizer.py +119 -0
  267. package/build/lib/hooks/_cost_ledger.py +176 -0
  268. package/build/lib/hooks/_learnings.py +126 -0
  269. package/build/lib/hooks/_memory.py +103 -0
  270. package/build/lib/hooks/_protected_context.py +150 -0
  271. package/build/lib/hooks/_token_counter.py +221 -0
  272. package/build/lib/hooks/branch_manager.py +236 -0
  273. package/build/lib/hooks/budget_governor.py +232 -0
  274. package/build/lib/hooks/circuit-breaker.py +270 -0
  275. package/build/lib/hooks/compression_feedback.py +254 -0
  276. package/build/lib/hooks/config-guard.py +216 -0
  277. package/build/lib/hooks/context_pressure.py +53 -0
  278. package/build/lib/hooks/credential_store.py +1020 -0
  279. package/build/lib/hooks/fetch-rate-limits.py +212 -0
  280. package/build/lib/hooks/firewall.py +48 -0
  281. package/build/lib/hooks/hashline-formatter-bridge.py +224 -0
  282. package/build/lib/hooks/hashline-injector.py +273 -0
  283. package/build/lib/hooks/hashline-validator.py +216 -0
  284. package/build/lib/hooks/idle-detector.py +95 -0
  285. package/build/lib/hooks/intentgate-keyword-detector.py +188 -0
  286. package/build/lib/hooks/magic-keyword-router.py +195 -0
  287. package/build/lib/hooks/policy_engine.py +641 -0
  288. package/build/lib/hooks/post-tool-failure.py +19 -0
  289. package/build/lib/hooks/post-write.py +219 -0
  290. package/build/lib/hooks/post_write.py +46 -0
  291. package/build/lib/hooks/pre-compact.py +398 -0
  292. package/build/lib/hooks/pre-tool-inject.py +98 -0
  293. package/build/lib/hooks/prompt-enhancer.py +672 -0
  294. package/build/lib/hooks/quality-runner.py +191 -0
  295. package/build/lib/hooks/query.py +512 -0
  296. package/build/lib/hooks/secret-guard.py +61 -0
  297. package/build/lib/hooks/secret_audit.py +144 -0
  298. package/build/lib/hooks/security_validators.py +75 -0
  299. package/build/lib/hooks/session-end-capture.py +137 -0
  300. package/build/lib/hooks/session-start.py +277 -0
  301. package/build/lib/hooks/setup_wizard.py +646 -0
  302. package/build/lib/hooks/shadow_manager.py +344 -0
  303. package/build/lib/hooks/state_migration.py +225 -0
  304. package/build/lib/hooks/stop-gate.py +7 -0
  305. package/build/lib/hooks/stop_dispatcher.py +945 -0
  306. package/build/lib/hooks/test-validator.py +361 -0
  307. package/build/lib/hooks/test_generator_hook.py +123 -0
  308. package/build/lib/hooks/todo-state-tracker.py +114 -0
  309. package/build/lib/hooks/tool-ledger.py +149 -0
  310. package/build/lib/hooks/trust_review.py +585 -0
  311. package/build/lib/plugins/README.md +60 -0
  312. package/build/lib/plugins/__init__.py +1 -0
  313. package/build/lib/plugins/advanced/commands/OMG:code-review.md +114 -0
  314. package/build/lib/plugins/advanced/commands/OMG:deep-plan.md +265 -0
  315. package/build/lib/plugins/advanced/commands/OMG:handoff.md +115 -0
  316. package/build/lib/plugins/advanced/commands/OMG:learn.md +110 -0
  317. package/build/lib/plugins/advanced/commands/OMG:maintainer.md +31 -0
  318. package/build/lib/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  319. package/build/lib/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  320. package/build/lib/plugins/advanced/commands/OMG:security-review.md +16 -0
  321. package/build/lib/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  322. package/build/lib/plugins/advanced/commands/OMG:ship.md +46 -0
  323. package/build/lib/plugins/advanced/plugin.json +87 -0
  324. package/build/lib/plugins/core/plugin.json +145 -0
  325. package/build/lib/plugins/dephealth/__init__.py +0 -0
  326. package/build/lib/plugins/dephealth/cve_scanner.py +188 -0
  327. package/build/lib/plugins/dephealth/license_checker.py +135 -0
  328. package/build/lib/plugins/dephealth/manifest_detector.py +423 -0
  329. package/build/lib/plugins/dephealth/vuln_analyzer.py +169 -0
  330. package/build/lib/plugins/testgen/__init__.py +0 -0
  331. package/build/lib/plugins/testgen/codamosa_engine.py +402 -0
  332. package/build/lib/plugins/testgen/edge_case_synthesizer.py +184 -0
  333. package/build/lib/plugins/testgen/framework_detector.py +271 -0
  334. package/build/lib/plugins/testgen/skeleton_generator.py +219 -0
  335. package/build/lib/plugins/viz/__init__.py +0 -0
  336. package/build/lib/plugins/viz/ast_parser.py +139 -0
  337. package/build/lib/plugins/viz/diagram_generator.py +192 -0
  338. package/build/lib/plugins/viz/graph_builder.py +444 -0
  339. package/build/lib/plugins/viz/native_parsers.py +259 -0
  340. package/build/lib/plugins/viz/regex_parser.py +112 -0
  341. package/build/lib/registry/__init__.py +1 -0
  342. package/build/lib/registry/bundles/algorithms.yaml +45 -0
  343. package/build/lib/registry/bundles/api-twin.yaml +48 -0
  344. package/build/lib/registry/bundles/claim-judge.yaml +49 -0
  345. package/build/lib/registry/bundles/control-plane.yaml +151 -0
  346. package/build/lib/registry/bundles/data-lineage.yaml +47 -0
  347. package/build/lib/registry/bundles/delta-classifier.yaml +47 -0
  348. package/build/lib/registry/bundles/eval-gate.yaml +47 -0
  349. package/build/lib/registry/bundles/health.yaml +45 -0
  350. package/build/lib/registry/bundles/hook-governor.yaml +97 -0
  351. package/build/lib/registry/bundles/incident-replay.yaml +47 -0
  352. package/build/lib/registry/bundles/lsp-pack.yaml +48 -0
  353. package/build/lib/registry/bundles/mcp-fabric.yaml +53 -0
  354. package/build/lib/registry/bundles/plan-council.yaml +51 -0
  355. package/build/lib/registry/bundles/preflight.yaml +48 -0
  356. package/build/lib/registry/bundles/proof-gate.yaml +49 -0
  357. package/build/lib/registry/bundles/remote-supervisor.yaml +49 -0
  358. package/build/lib/registry/bundles/robotics.yaml +45 -0
  359. package/build/lib/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  360. package/build/lib/registry/bundles/security-check.yaml +50 -0
  361. package/build/lib/registry/bundles/test-intent-lock.yaml +49 -0
  362. package/build/lib/registry/bundles/tracebank.yaml +47 -0
  363. package/build/lib/registry/bundles/vision.yaml +45 -0
  364. package/build/lib/registry/omg-capability.schema.json +296 -0
  365. package/build/lib/registry/verify_artifact.py +90 -0
  366. package/build/lib/runtime/__init__.py +32 -0
  367. package/build/lib/runtime/adapters/__init__.py +13 -0
  368. package/build/lib/runtime/adapters/claude.py +63 -0
  369. package/build/lib/runtime/adapters/gpt.py +56 -0
  370. package/build/lib/runtime/adapters/local.py +56 -0
  371. package/build/lib/runtime/adoption.py +212 -0
  372. package/build/lib/runtime/api_twin.py +450 -0
  373. package/build/lib/runtime/asset_loader.py +62 -0
  374. package/build/lib/runtime/business_workflow.py +234 -0
  375. package/build/lib/runtime/claim_judge.py +95 -0
  376. package/build/lib/runtime/cli_provider.py +85 -0
  377. package/build/lib/runtime/compat.py +1459 -0
  378. package/build/lib/runtime/contract_compiler.py +1918 -0
  379. package/build/lib/runtime/custom_agent_loader.py +366 -0
  380. package/build/lib/runtime/data_lineage.py +73 -0
  381. package/build/lib/runtime/delta_classifier.py +81 -0
  382. package/build/lib/runtime/dispatcher.py +47 -0
  383. package/build/lib/runtime/domain_packs.py +46 -0
  384. package/build/lib/runtime/ecosystem.py +371 -0
  385. package/build/lib/runtime/eval_gate.py +96 -0
  386. package/build/lib/runtime/guide_assert.py +45 -0
  387. package/build/lib/runtime/incident_replay.py +47 -0
  388. package/build/lib/runtime/legacy_compat.py +7 -0
  389. package/build/lib/runtime/mcp_config_writers.py +233 -0
  390. package/build/lib/runtime/mcp_lifecycle.py +175 -0
  391. package/build/lib/runtime/mcp_memory_server.py +135 -0
  392. package/build/lib/runtime/memory_parsers/__init__.py +0 -0
  393. package/build/lib/runtime/memory_parsers/chatgpt_parser.py +257 -0
  394. package/build/lib/runtime/memory_parsers/claude_import.py +107 -0
  395. package/build/lib/runtime/memory_parsers/export.py +97 -0
  396. package/build/lib/runtime/memory_parsers/gemini_import.py +91 -0
  397. package/build/lib/runtime/memory_parsers/kimi_import.py +91 -0
  398. package/build/lib/runtime/memory_store.py +215 -0
  399. package/build/lib/runtime/omc_compat.py +7 -0
  400. package/build/lib/runtime/omg_compat_contract_snapshot.json +916 -0
  401. package/build/lib/runtime/omg_contract_snapshot.json +916 -0
  402. package/build/lib/runtime/omg_mcp_server.py +212 -0
  403. package/build/lib/runtime/playwright_pack.py +169 -0
  404. package/build/lib/runtime/preflight.py +117 -0
  405. package/build/lib/runtime/proof_chain.py +228 -0
  406. package/build/lib/runtime/proof_gate.py +163 -0
  407. package/build/lib/runtime/providers/__init__.py +0 -0
  408. package/build/lib/runtime/providers/codex_provider.py +102 -0
  409. package/build/lib/runtime/providers/gemini_provider.py +109 -0
  410. package/build/lib/runtime/providers/kimi_provider.py +132 -0
  411. package/build/lib/runtime/remote_supervisor.py +64 -0
  412. package/build/lib/runtime/runtime_profile.py +61 -0
  413. package/build/lib/runtime/security_check.py +965 -0
  414. package/build/lib/runtime/subagent_dispatcher.py +469 -0
  415. package/build/lib/runtime/team_router.py +1167 -0
  416. package/build/lib/runtime/test_intent_lock.py +91 -0
  417. package/build/lib/runtime/tmux_session_manager.py +169 -0
  418. package/build/lib/runtime/tracebank.py +95 -0
  419. package/build/lib/runtime/untrusted_content.py +269 -0
  420. package/commands/OMG:doctor.md +37 -0
  421. package/commands/OMG:preflight.md +1 -1
  422. package/control_plane/openapi.yaml +33 -1
  423. package/control_plane/server.py +26 -2
  424. package/control_plane/service.py +37 -0
  425. package/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
  426. package/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
  427. package/dist/enterprise/bundle/.claude-plugin/marketplace.json +5 -5
  428. package/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
  429. package/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  430. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
  431. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
  432. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
  433. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
  434. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
  435. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  436. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  437. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
  438. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  439. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
  440. package/dist/enterprise/bundle/plugins/advanced/plugin.json +87 -0
  441. package/dist/enterprise/bundle/registry/bundles/algorithms.yaml +1 -1
  442. package/dist/enterprise/bundle/registry/bundles/api-twin.yaml +1 -1
  443. package/dist/enterprise/bundle/registry/bundles/control-plane.yaml +91 -1
  444. package/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +1 -1
  445. package/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +1 -1
  446. package/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +1 -1
  447. package/dist/enterprise/bundle/registry/bundles/health.yaml +1 -1
  448. package/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +1 -1
  449. package/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +1 -1
  450. package/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +1 -1
  451. package/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  452. package/dist/enterprise/bundle/registry/bundles/preflight.yaml +1 -1
  453. package/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  454. package/dist/enterprise/bundle/registry/bundles/robotics.yaml +1 -1
  455. package/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  456. package/dist/enterprise/bundle/registry/bundles/security-check.yaml +1 -1
  457. package/dist/enterprise/bundle/registry/bundles/tracebank.yaml +1 -1
  458. package/dist/enterprise/bundle/registry/bundles/vision.yaml +1 -1
  459. package/dist/enterprise/bundle/registry/omg-capability.schema.json +217 -1
  460. package/dist/enterprise/bundle/settings.json +219 -6
  461. package/dist/enterprise/manifest.json +73 -25
  462. package/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
  463. package/dist/public/bundle/.agents/skills/omg/codex-rules.md +29 -0
  464. package/dist/public/bundle/.claude-plugin/marketplace.json +5 -5
  465. package/dist/public/bundle/.claude-plugin/plugin.json +1 -1
  466. package/dist/public/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  467. package/dist/public/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
  468. package/dist/public/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
  469. package/dist/public/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
  470. package/dist/public/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
  471. package/dist/public/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
  472. package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  473. package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  474. package/dist/public/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
  475. package/dist/public/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  476. package/dist/public/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
  477. package/dist/public/bundle/plugins/advanced/plugin.json +87 -0
  478. package/dist/public/bundle/registry/bundles/algorithms.yaml +1 -1
  479. package/dist/public/bundle/registry/bundles/api-twin.yaml +1 -1
  480. package/dist/public/bundle/registry/bundles/control-plane.yaml +91 -1
  481. package/dist/public/bundle/registry/bundles/data-lineage.yaml +1 -1
  482. package/dist/public/bundle/registry/bundles/delta-classifier.yaml +1 -1
  483. package/dist/public/bundle/registry/bundles/eval-gate.yaml +1 -1
  484. package/dist/public/bundle/registry/bundles/health.yaml +1 -1
  485. package/dist/public/bundle/registry/bundles/hook-governor.yaml +1 -1
  486. package/dist/public/bundle/registry/bundles/incident-replay.yaml +1 -1
  487. package/dist/public/bundle/registry/bundles/lsp-pack.yaml +1 -1
  488. package/dist/public/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  489. package/dist/public/bundle/registry/bundles/preflight.yaml +1 -1
  490. package/dist/public/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  491. package/dist/public/bundle/registry/bundles/robotics.yaml +1 -1
  492. package/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  493. package/dist/public/bundle/registry/bundles/security-check.yaml +1 -1
  494. package/dist/public/bundle/registry/bundles/tracebank.yaml +1 -1
  495. package/dist/public/bundle/registry/bundles/vision.yaml +1 -1
  496. package/dist/public/bundle/registry/omg-capability.schema.json +217 -1
  497. package/dist/public/bundle/settings.json +218 -3
  498. package/dist/public/manifest.json +73 -25
  499. package/docs/proof.md +16 -6
  500. package/docs/release-checklist.md +2 -0
  501. package/hooks/policy_engine.py +122 -17
  502. package/hooks/setup_wizard.py +52 -12
  503. package/hooks/shadow_manager.py +21 -0
  504. package/package.json +2 -2
  505. package/plugins/README.md +5 -1
  506. package/plugins/advanced/commands/OMG:deep-plan.md +50 -6
  507. package/plugins/advanced/commands/OMG:ship.md +1 -1
  508. package/plugins/advanced/plugin.json +1 -10
  509. package/plugins/core/plugin.json +7 -1
  510. package/pyproject.toml +2 -2
  511. package/registry/bundles/algorithms.yaml +1 -1
  512. package/registry/bundles/api-twin.yaml +1 -1
  513. package/registry/bundles/claim-judge.yaml +49 -0
  514. package/registry/bundles/control-plane.yaml +91 -1
  515. package/registry/bundles/data-lineage.yaml +1 -1
  516. package/registry/bundles/delta-classifier.yaml +1 -1
  517. package/registry/bundles/eval-gate.yaml +1 -1
  518. package/registry/bundles/health.yaml +1 -1
  519. package/registry/bundles/hook-governor.yaml +1 -1
  520. package/registry/bundles/incident-replay.yaml +1 -1
  521. package/registry/bundles/lsp-pack.yaml +1 -1
  522. package/registry/bundles/mcp-fabric.yaml +1 -1
  523. package/registry/bundles/plan-council.yaml +51 -0
  524. package/registry/bundles/preflight.yaml +1 -1
  525. package/registry/bundles/proof-gate.yaml +49 -0
  526. package/registry/bundles/remote-supervisor.yaml +1 -1
  527. package/registry/bundles/robotics.yaml +1 -1
  528. package/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  529. package/registry/bundles/security-check.yaml +1 -1
  530. package/registry/bundles/test-intent-lock.yaml +49 -0
  531. package/registry/bundles/tracebank.yaml +1 -1
  532. package/registry/bundles/vision.yaml +1 -1
  533. package/registry/omg-capability.schema.json +217 -1
  534. package/runtime/adoption.py +1 -1
  535. package/runtime/api_twin.py +279 -8
  536. package/runtime/business_workflow.py +14 -0
  537. package/runtime/claim_judge.py +95 -0
  538. package/runtime/compat.py +139 -0
  539. package/runtime/contract_compiler.py +1099 -28
  540. package/runtime/ecosystem.py +1 -1
  541. package/runtime/eval_gate.py +48 -2
  542. package/runtime/mcp_config_writers.py +12 -0
  543. package/runtime/mcp_lifecycle.py +31 -9
  544. package/runtime/mcp_memory_server.py +1 -1
  545. package/runtime/omg_compat_contract_snapshot.json +1 -1
  546. package/runtime/omg_contract_snapshot.json +1 -1
  547. package/runtime/omg_mcp_server.py +13 -8
  548. package/runtime/playwright_pack.py +169 -0
  549. package/runtime/preflight.py +45 -1
  550. package/runtime/proof_chain.py +228 -0
  551. package/runtime/proof_gate.py +163 -0
  552. package/runtime/security_check.py +523 -22
  553. package/runtime/team_router.py +6 -6
  554. package/runtime/test_intent_lock.py +91 -0
  555. package/runtime/tracebank.py +43 -1
  556. package/runtime/untrusted_content.py +172 -5
  557. package/scripts/check-omg-public-ready.py +77 -0
  558. package/scripts/omg.py +28 -9
  559. package/scripts/verify-standalone.sh +7 -0
  560. package/settings.json +219 -6
@@ -0,0 +1,646 @@
1
+ """OMG Setup Wizard — interactive CLI detection, auth verification, and MCP configuration.
2
+
3
+ Feature-gated: requires OMG_SETUP_ENABLED=1 (default off).
4
+ """
5
+ from __future__ import annotations
6
+
7
+ import json
8
+ import logging
9
+ import os
10
+ import sys
11
+ from typing import Any, cast
12
+
13
+ import yaml
14
+
15
+ from _common import get_feature_flag
16
+
17
+ # Ensure project root is on sys.path for runtime imports
18
+ _PROJECT_ROOT = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
19
+ if _PROJECT_ROOT not in sys.path:
20
+ sys.path.insert(0, _PROJECT_ROOT)
21
+
22
+ from runtime.cli_provider import get_provider, list_available_providers # noqa: E402
23
+ from runtime.mcp_config_writers import ( # noqa: E402
24
+ write_claude_mcp_config,
25
+ write_claude_mcp_stdio_config,
26
+ write_codex_mcp_config,
27
+ write_codex_mcp_stdio_config,
28
+ write_gemini_mcp_config,
29
+ write_gemini_mcp_stdio_config,
30
+ write_kimi_mcp_config,
31
+ write_kimi_mcp_stdio_config,
32
+ )
33
+
34
+ # Trigger provider auto-registration on import
35
+ import runtime.providers.codex_provider # noqa: E402, F401
36
+ import runtime.providers.gemini_provider # noqa: E402, F401
37
+ import runtime.providers.kimi_provider # noqa: E402, F401
38
+ from runtime.adoption import ( # noqa: E402
39
+ CANONICAL_VERSION,
40
+ build_adoption_report,
41
+ get_preset_features,
42
+ resolve_preset,
43
+ write_adoption_report,
44
+ )
45
+
46
+ _logger = logging.getLogger(__name__)
47
+
48
+ OMG_CONTROL_COMMAND = "python3"
49
+ OMG_CONTROL_ARGS = ["-m", "runtime.omg_mcp_server"]
50
+ OMG_CONTROL_SERVER_NAME = "omg-control"
51
+
52
+ _INSTALL_HINTS: dict[str, str] = {
53
+ "codex": "npm install -g @openai/codex",
54
+ "gemini": "npm install -g @google/gemini-cli",
55
+ "kimi": "uv tool install --python 3.13 kimi-cli",
56
+ }
57
+
58
+ BYPASS_ALL_WARNING = (
59
+ "⚠️ BYPASS-ALL / FULL VIBE-CODE MODE WARNING ⚠️\n\n"
60
+ "Enabling bypass-all grants Claude Code unrestricted write access to your filesystem "
61
+ "without asking for confirmation on individual file edits.\n\n"
62
+ "IMPORTANT DISCLAIMER: The author takes NO responsibility for any data loss, "
63
+ "unintended file modifications, or system changes that occur while bypass-all is enabled. "
64
+ "Use at your own risk.\n\n"
65
+ "Note: Some safety measures remain active even in bypass-all mode:\n"
66
+ " • Firewall deny rules still block dangerous commands (rm -rf, sudo, etc.)\n"
67
+ " • Secret-guard still protects credentials and API keys\n"
68
+ " • You can disable bypass-all at any time via settings.json\n\n"
69
+ "Do you want to enable bypass-all mode? (y/N): "
70
+ )
71
+
72
+ PRESET_ORDER: tuple[str, ...] = ("safe", "balanced", "interop", "labs")
73
+ _PRESET_LEVEL: dict[str, int] = {p: i for i, p in enumerate(PRESET_ORDER)}
74
+
75
+ MCP_CATALOG: list[dict[str, Any]] = [
76
+ {
77
+ "id": "context7",
78
+ "name": "Context7",
79
+ "description": "Upstash Context7 MCP server for context management",
80
+ "command": "npx",
81
+ "args": ["@upstash/context7-mcp@2.1.3"],
82
+ "default": False,
83
+ "min_preset": "balanced",
84
+ "category": "productivity",
85
+ },
86
+ {
87
+ "id": "filesystem",
88
+ "name": "Filesystem",
89
+ "description": "ModelContextProtocol filesystem server for file operations",
90
+ "command": "npx",
91
+ "args": ["@modelcontextprotocol/server-filesystem@2026.1.14", "."],
92
+ "default": True,
93
+ "min_preset": "safe",
94
+ "category": "system",
95
+ },
96
+ {
97
+ "id": "websearch",
98
+ "name": "Web Search",
99
+ "description": "Web search MCP server for internet queries",
100
+ "command": "npx",
101
+ "args": ["@zhafron/mcp-web-search@1.2.2"],
102
+ "default": False,
103
+ "min_preset": "interop",
104
+ "category": "search",
105
+ },
106
+ {
107
+ "id": "chrome-devtools",
108
+ "name": "Chrome DevTools",
109
+ "description": "Chrome DevTools MCP server for browser automation",
110
+ "command": "npx",
111
+ "args": ["chrome-devtools-mcp@0.19.0"],
112
+ "default": False,
113
+ "min_preset": "labs",
114
+ "category": "browser",
115
+ },
116
+ {
117
+ "id": "omg-memory",
118
+ "name": "OMG Memory",
119
+ "description": "OMG shared memory server via HTTP",
120
+ "command": None,
121
+ "args": [],
122
+ "type": "http",
123
+ "url": "http://127.0.0.1:8765/mcp",
124
+ "default": False,
125
+ "min_preset": "interop",
126
+ "category": "memory",
127
+ },
128
+ {
129
+ "id": OMG_CONTROL_SERVER_NAME,
130
+ "name": "OMG Control",
131
+ "description": "OMG control plane MCP server via stdio",
132
+ "command": OMG_CONTROL_COMMAND,
133
+ "args": OMG_CONTROL_ARGS,
134
+ "default": True,
135
+ "min_preset": "safe",
136
+ "category": "control",
137
+ },
138
+ {
139
+ "id": "github",
140
+ "name": "GitHub",
141
+ "description": "ModelContextProtocol GitHub server for repository operations",
142
+ "command": "npx",
143
+ "args": ["@modelcontextprotocol/server-github"],
144
+ "default": False,
145
+ "category": "vcs",
146
+ },
147
+ {
148
+ "id": "puppeteer",
149
+ "name": "Puppeteer",
150
+ "description": "ModelContextProtocol Puppeteer server for browser automation",
151
+ "command": "npx",
152
+ "args": ["@modelcontextprotocol/server-puppeteer"],
153
+ "default": False,
154
+ "category": "browser",
155
+ },
156
+ {
157
+ "id": "brave-search",
158
+ "name": "Brave Search",
159
+ "description": "ModelContextProtocol Brave Search server",
160
+ "command": "npx",
161
+ "args": ["@modelcontextprotocol/server-brave-search"],
162
+ "default": False,
163
+ "category": "search",
164
+ },
165
+ {
166
+ "id": "sequential-thinking",
167
+ "name": "Sequential Thinking",
168
+ "description": "ModelContextProtocol Sequential Thinking server for reasoning",
169
+ "command": "npx",
170
+ "args": ["@modelcontextprotocol/server-sequential-thinking"],
171
+ "default": False,
172
+ "category": "reasoning",
173
+ },
174
+ {
175
+ "id": "grep-app",
176
+ "name": "Grep App",
177
+ "description": "Grep App MCP server for code search",
178
+ "command": "npx",
179
+ "args": ["grep-app-mcp"],
180
+ "default": False,
181
+ "category": "search",
182
+ },
183
+ {
184
+ "id": "memory-graph",
185
+ "name": "Memory Graph",
186
+ "description": "ModelContextProtocol Memory server for knowledge graphs",
187
+ "command": "npx",
188
+ "args": ["@modelcontextprotocol/server-memory"],
189
+ "default": False,
190
+ "category": "memory",
191
+ },
192
+ ]
193
+
194
+
195
+ def get_mcp_catalog() -> list[dict[str, Any]]:
196
+ """Return the MCP catalog.
197
+
198
+ Returns:
199
+ List of MCP server definitions with id, name, description, command, args, default, and category.
200
+ """
201
+ return MCP_CATALOG
202
+
203
+
204
+ def get_default_mcps_for_preset(preset: str) -> list[str]:
205
+ """Return the list of MCP server IDs enabled by default for *preset*.
206
+
207
+ Each catalog entry carries a ``min_preset`` field that specifies the
208
+ lowest preset tier at which the MCP is included. The preset order is
209
+ ``safe < balanced < interop < labs``.
210
+
211
+ Returns:
212
+ Sorted list of MCP server IDs whose ``min_preset`` is at or below
213
+ the requested *preset* level.
214
+ """
215
+ level = _PRESET_LEVEL.get(preset, 0)
216
+ return [
217
+ m["id"]
218
+ for m in MCP_CATALOG
219
+ if _PRESET_LEVEL.get(m.get("min_preset", ""), -1) <= level
220
+ and m.get("min_preset") is not None
221
+ ]
222
+
223
+
224
+ def build_mcp_config(selected_ids: list[str]) -> dict[str, Any]:
225
+ """Build .mcp.json configuration from selected MCP server IDs.
226
+
227
+ Args:
228
+ selected_ids: List of MCP server IDs to include in the config.
229
+
230
+ Returns:
231
+ Dict with 'mcpServers' key containing the MCP server configurations.
232
+ """
233
+ mcp_servers: dict[str, Any] = {}
234
+
235
+ for mcp in MCP_CATALOG:
236
+ if mcp["id"] not in selected_ids:
237
+ continue
238
+
239
+ mcp_id = mcp["id"]
240
+
241
+ # HTTP-type MCPs (like omg-memory)
242
+ if mcp.get("type") == "http":
243
+ mcp_servers[mcp_id] = {
244
+ "type": "http",
245
+ "url": mcp["url"],
246
+ }
247
+ # NPX-type MCPs
248
+ else:
249
+ mcp_servers[mcp_id] = {
250
+ "command": mcp["command"],
251
+ "args": mcp["args"],
252
+ }
253
+
254
+ return {"mcpServers": mcp_servers}
255
+
256
+
257
+ def configure_plan_type(plan_type: str) -> dict[str, Any]:
258
+ """Configure Claude plan type and model routing.
259
+
260
+ Args:
261
+ plan_type: "max" or "pro"
262
+
263
+ Returns:
264
+ dict with plan_type and optionally model_routing
265
+ """
266
+ result: dict[str, Any] = {"plan_type": plan_type}
267
+ if plan_type == "pro":
268
+ result["model_routing"] = {
269
+ "planning": "claude-opus-4-5",
270
+ "coding": "claude-sonnet-4-5",
271
+ "review": "claude-opus-4-5",
272
+ "commit": "claude-haiku-4-5",
273
+ }
274
+ return result
275
+
276
+
277
+ def select_mcps(selected_ids: list[str] | None = None, preset: str = "safe") -> dict[str, Any]:
278
+ """Build MCP config from selected IDs.
279
+
280
+ Args:
281
+ selected_ids: List of MCP IDs to include. If None, uses preset defaults.
282
+ preset: Preset tier that controls which MCPs are included by default.
283
+
284
+ Returns:
285
+ dict with mcpServers key (ready to write as .mcp.json)
286
+ """
287
+ if selected_ids is None:
288
+ selected_ids = get_default_mcps_for_preset(preset)
289
+ return build_mcp_config(selected_ids)
290
+
291
+
292
+ def configure_bypass_all(enabled: bool) -> dict[str, Any]:
293
+ """Configure bypass_all mode.
294
+
295
+ Args:
296
+ enabled: True to enable bypass-all, False to disable
297
+
298
+ Returns:
299
+ dict with enabled status and warning_shown flag
300
+ """
301
+ result: dict[str, Any] = {"enabled": enabled}
302
+ if enabled:
303
+ result["warning_shown"] = True
304
+ return result
305
+
306
+
307
+ def is_setup_enabled() -> bool:
308
+ """Check if the setup wizard feature is enabled.
309
+
310
+ Uses get_feature_flag("SETUP", default=False) — disabled by default.
311
+ Enable via OMG_SETUP_ENABLED=1 env var or settings.json._omg.features.SETUP: true.
312
+ """
313
+ return get_feature_flag("SETUP", default=False)
314
+
315
+
316
+ def detect_clis() -> dict[str, Any]:
317
+ """Detect installed CLI tools using the provider registry.
318
+
319
+ Iterates over all registered providers, calling ``detect()`` and
320
+ ``check_auth()`` on each. Returns a dict keyed by provider name::
321
+
322
+ {
323
+ "codex": {"detected": True, "auth_ok": True, "message": "..."},
324
+ "gemini": {"detected": False, "auth_ok": None,
325
+ "message": "Not found. Install: npm install -g @google/gemini-cli"},
326
+ ...
327
+ }
328
+ """
329
+ results: dict[str, Any] = {}
330
+
331
+ for name in list_available_providers():
332
+ provider = get_provider(name)
333
+ if provider is None:
334
+ continue
335
+
336
+ try:
337
+ detected = provider.detect()
338
+ except Exception as exc:
339
+ _logger.warning("detect() failed for %s: %s", name, exc)
340
+ detected = False
341
+
342
+ auth_ok: bool | None = None
343
+ message = ""
344
+
345
+ if detected:
346
+ try:
347
+ auth_ok, message = provider.check_auth()
348
+ except Exception as exc:
349
+ _logger.warning("check_auth() failed for %s: %s", name, exc)
350
+ auth_ok = None
351
+ message = f"Auth check error: {exc}"
352
+ else:
353
+ hint = _INSTALL_HINTS.get(name, f"Install the '{name}' CLI")
354
+ message = f"Not found. Install: {hint}"
355
+
356
+ results[name] = {
357
+ "detected": detected,
358
+ "auth_ok": auth_ok,
359
+ "message": message,
360
+ }
361
+
362
+ return results
363
+
364
+
365
+ def get_cli_auth_instructions(provider: str) -> dict[str, str]:
366
+ """Return install, auth, and verify instructions for a CLI provider.
367
+
368
+ This function returns command strings only — it does NOT execute anything
369
+ or store credentials.
370
+
371
+ Args:
372
+ provider: CLI provider name (e.g. "codex", "gemini", or "kimi").
373
+
374
+ Returns:
375
+ Dict with keys: install, auth, verify, subscription.
376
+ Unknown providers return placeholder strings.
377
+ """
378
+ instructions: dict[str, dict[str, str]] = {
379
+ "codex": {
380
+ "install": "npm install -g @openai/codex",
381
+ "auth": "codex login",
382
+ "verify": "codex --version",
383
+ "subscription": "Requires ChatGPT Plus, Team, or Enterprise subscription (or OpenAI API key)",
384
+ },
385
+ "gemini": {
386
+ "install": "npm install -g @google/gemini-cli",
387
+ "auth": "gemini auth login",
388
+ "verify": "gemini --version",
389
+ "subscription": "Requires Google account with Gemini API access (free tier available)",
390
+ },
391
+ "kimi": {
392
+ "install": "uv tool install --python 3.13 kimi-cli",
393
+ "auth": "Add token to ~/.kimi/config.toml",
394
+ "verify": "kimi --version",
395
+ "subscription": "Requires Kimi API key from platform.moonshot.cn",
396
+ },
397
+ }
398
+
399
+ return instructions.get(provider, {
400
+ "install": "Unknown provider",
401
+ "auth": "Unknown provider",
402
+ "verify": "Unknown provider",
403
+ "subscription": "Unknown",
404
+ })
405
+
406
+
407
+ def check_auth() -> dict[str, Any]:
408
+ """Verify authentication for detected CLI tools.
409
+
410
+ Stub — returns pending status. T16 will implement real auth checks
411
+ using each provider's check_auth() method.
412
+ """
413
+ return {"status": "pending", "results": {}}
414
+
415
+
416
+ _HTTP_MEMORY_MIN_LEVEL: int = _PRESET_LEVEL["interop"]
417
+
418
+
419
+ def configure_mcp(
420
+ project_dir: str,
421
+ detected_clis: dict[str, Any],
422
+ server_url: str = "http://127.0.0.1:8765/mcp",
423
+ server_name: str = "omg-memory",
424
+ control_command: str = OMG_CONTROL_COMMAND,
425
+ control_args: list[str] | None = None,
426
+ control_server_name: str = OMG_CONTROL_SERVER_NAME,
427
+ preset: str = "safe",
428
+ ) -> dict[str, Any]:
429
+ """Configure OMG MCP servers for authenticated CLIs.
430
+
431
+ For each CLI in detected_clis where detected_clis[cli]["detected"] == True,
432
+ calls the appropriate writer from runtime.mcp_config_writers.
433
+
434
+ HTTP memory surfaces are only written when the *preset* is at or above
435
+ ``interop`` level. ``safe`` and ``balanced`` presets write only the
436
+ stdio ``omg-control`` surface.
437
+
438
+ Args:
439
+ project_dir: Path to the project directory.
440
+ detected_clis: Dict of CLI detection results from detect_clis().
441
+ server_url: MCP server URL (default: http://127.0.0.1:8765/mcp).
442
+ server_name: MCP server name (default: omg-memory).
443
+ control_command: stdio command for the OMG control MCP server.
444
+ control_args: stdio args for the OMG control MCP server.
445
+ control_server_name: MCP server name for the OMG control surface.
446
+ preset: Active preset tier (safe, balanced, interop, labs).
447
+
448
+ Returns:
449
+ Dict with keys:
450
+ - status: "ok" on success
451
+ - configured: List of CLI names that were successfully configured
452
+ - errors: Dict of CLI name → error message for failures
453
+ """
454
+ configured: list[str] = []
455
+ errors: dict[str, str] = {}
456
+ resolved_control_args = list(control_args or OMG_CONTROL_ARGS)
457
+ http_memory_allowed = _PRESET_LEVEL.get(preset, 0) >= _HTTP_MEMORY_MIN_LEVEL
458
+
459
+ try:
460
+ if http_memory_allowed:
461
+ write_claude_mcp_config(project_dir, server_url, server_name)
462
+ write_claude_mcp_stdio_config(
463
+ project_dir,
464
+ command=control_command,
465
+ args=resolved_control_args,
466
+ server_name=control_server_name,
467
+ )
468
+ except Exception as exc:
469
+ _logger.warning("Failed to write Claude MCP config: %s", exc)
470
+ errors["claude"] = str(exc)
471
+
472
+ cli_writers = {
473
+ "codex": (write_codex_mcp_config, write_codex_mcp_stdio_config),
474
+ "gemini": (write_gemini_mcp_config, write_gemini_mcp_stdio_config),
475
+ "kimi": (write_kimi_mcp_config, write_kimi_mcp_stdio_config),
476
+ }
477
+
478
+ for cli_name, (http_writer, stdio_writer) in cli_writers.items():
479
+ cli_info = detected_clis.get(cli_name, {})
480
+ if not cli_info.get("detected", False):
481
+ continue
482
+
483
+ try:
484
+ if http_memory_allowed:
485
+ http_writer(server_url, server_name)
486
+ stdio_writer(
487
+ command=control_command,
488
+ args=resolved_control_args,
489
+ server_name=control_server_name,
490
+ )
491
+ configured.append(cli_name)
492
+ except Exception as exc:
493
+ _logger.warning("Failed to write %s MCP config: %s", cli_name, exc)
494
+ errors[cli_name] = str(exc)
495
+
496
+ return {
497
+ "status": "ok",
498
+ "configured": configured,
499
+ "errors": errors,
500
+ }
501
+
502
+
503
+ def set_preferences(project_dir: str, preferences: dict[str, Any]) -> dict[str, Any]:
504
+ """Set user preferences for CLI routing and save to .omg/state/cli-config.yaml.
505
+
506
+ Args:
507
+ project_dir: Path to the project directory.
508
+ preferences: Dict with optional 'cli_configs' key. If empty, uses defaults.
509
+ Expected structure:
510
+ {
511
+ "cli_configs": {
512
+ "codex": {"subscription": "free", "max_parallel_agents": 1},
513
+ "gemini": {"subscription": "free", "max_parallel_agents": 1},
514
+ ...
515
+ }
516
+ }
517
+
518
+ Returns:
519
+ Dict with keys:
520
+ - status: "ok" on success
521
+ - path: Full path to saved config file
522
+ - config: The saved config dict (version + cli_configs)
523
+ """
524
+ # Default config structure
525
+ default_cli_configs: dict[str, Any] = {
526
+ "codex": {"subscription": "free", "max_parallel_agents": 1},
527
+ "gemini": {"subscription": "free", "max_parallel_agents": 1},
528
+ "kimi": {"subscription": "free", "max_parallel_agents": 1},
529
+ }
530
+ preset = resolve_preset(cast(str | None, preferences.get("preset")))
531
+ default_config: dict[str, Any] = {
532
+ "version": CANONICAL_VERSION,
533
+ "preset": preset,
534
+ "resolved_features": get_preset_features(preset),
535
+ "cli_configs": default_cli_configs,
536
+ }
537
+
538
+ # Merge custom preferences if provided
539
+ if preferences and isinstance(preferences, dict):
540
+ cli_configs = preferences.get("cli_configs")
541
+ if isinstance(cli_configs, dict):
542
+ default_cli_configs.update(cast(dict[str, Any], cli_configs))
543
+
544
+ _write_project_settings_preset(project_dir, preset)
545
+
546
+ # Create .omg/state directory if needed
547
+ state_dir = os.path.join(project_dir, ".omg", "state")
548
+ os.makedirs(state_dir, exist_ok=True)
549
+
550
+ # Write config to YAML file
551
+ config_path = os.path.join(state_dir, "cli-config.yaml")
552
+ with open(config_path, "w") as f:
553
+ yaml.dump(default_config, f, default_flow_style=False, sort_keys=False)
554
+
555
+ _logger.info("Saved CLI config to %s", config_path)
556
+
557
+ return {
558
+ "status": "ok",
559
+ "path": config_path,
560
+ "config": default_config,
561
+ }
562
+
563
+
564
+ def _write_project_settings_preset(project_dir: str, preset: str) -> None:
565
+ """Persist preset metadata into project settings when settings.json exists."""
566
+ settings_path = os.path.join(project_dir, "settings.json")
567
+ if not os.path.exists(settings_path):
568
+ return
569
+
570
+ try:
571
+ with open(settings_path, "r", encoding="utf-8") as f:
572
+ settings = json.load(f)
573
+ except Exception:
574
+ return
575
+
576
+ if not isinstance(settings, dict):
577
+ return
578
+
579
+ omg = settings.get("_omg")
580
+ if not isinstance(omg, dict):
581
+ omg = {}
582
+ features = omg.get("features")
583
+ if not isinstance(features, dict):
584
+ features = {}
585
+
586
+ features.update(get_preset_features(preset))
587
+ omg["features"] = features
588
+ omg["preset"] = preset
589
+ omg["_version"] = CANONICAL_VERSION
590
+ settings["_omg"] = omg
591
+
592
+ with open(settings_path, "w", encoding="utf-8") as f:
593
+ json.dump(settings, f, indent=2, ensure_ascii=True)
594
+ f.write("\n")
595
+
596
+
597
+ def run_setup_wizard(
598
+ project_dir: str,
599
+ non_interactive: bool = False,
600
+ *,
601
+ mode: str | None = None,
602
+ adopt: str = "auto",
603
+ preset: str | None = None,
604
+ ) -> dict[str, Any]:
605
+ """Run the OMG setup wizard.
606
+
607
+ Args:
608
+ project_dir: Path to the project directory.
609
+ non_interactive: If True, skip prompts and use defaults (for CI).
610
+ mode: Optional adoption mode override (`omg-only` or `coexist`).
611
+ adopt: Adoption detection mode (currently only `auto` is meaningful).
612
+ preset: Optional preset override.
613
+
614
+ Returns:
615
+ Dict with wizard results including status and step outcomes.
616
+ If feature is disabled, returns {"status": "disabled", "message": "..."}.
617
+ """
618
+ if not is_setup_enabled():
619
+ return {
620
+ "status": "disabled",
621
+ "message": "Setup wizard disabled. Set OMG_SETUP_ENABLED=1 to enable.",
622
+ }
623
+
624
+ selected_preset = resolve_preset(preset or ("balanced" if non_interactive else "safe"))
625
+ adoption = build_adoption_report(
626
+ project_dir,
627
+ requested_mode=mode,
628
+ preset=selected_preset,
629
+ adopt=adopt,
630
+ )
631
+
632
+ clis = detect_clis()
633
+ auth = check_auth()
634
+ mcp = configure_mcp(project_dir, clis, preset=selected_preset)
635
+ prefs = set_preferences(project_dir, {"preset": selected_preset})
636
+ report_path = write_adoption_report(project_dir, adoption)
637
+ adoption["report_path"] = report_path
638
+
639
+ return {
640
+ "status": "complete",
641
+ "clis_detected": clis,
642
+ "auth_status": auth,
643
+ "mcp_configured": mcp,
644
+ "preferences": prefs,
645
+ "adoption": adoption,
646
+ }