@trac3er/oh-my-god 2.0.4 → 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 (668) hide show
  1. package/.agents/skills/omg/AGENTS.fragment.md +57 -4
  2. package/.agents/skills/omg/algorithms/SKILL.md +11 -0
  3. package/.agents/skills/omg/algorithms/openai.yaml +11 -0
  4. package/.agents/skills/omg/api-twin/SKILL.md +11 -0
  5. package/.agents/skills/omg/api-twin/openai.yaml +12 -0
  6. package/.agents/skills/omg/claim-judge/SKILL.md +11 -0
  7. package/.agents/skills/omg/claim-judge/openai.yaml +13 -0
  8. package/.agents/skills/omg/codex-rules.md +33 -0
  9. package/.agents/skills/omg/control-plane/SKILL.md +1 -1
  10. package/.agents/skills/omg/control-plane/openai.yaml +1 -1
  11. package/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  12. package/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  13. package/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  14. package/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  15. package/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  16. package/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  17. package/.agents/skills/omg/health/SKILL.md +11 -0
  18. package/.agents/skills/omg/health/openai.yaml +11 -0
  19. package/.agents/skills/omg/hook-governor/SKILL.md +1 -1
  20. package/.agents/skills/omg/hook-governor/openai.yaml +1 -1
  21. package/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  22. package/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  23. package/.agents/skills/omg/lsp-pack/SKILL.md +1 -1
  24. package/.agents/skills/omg/lsp-pack/openai.yaml +1 -1
  25. package/.agents/skills/omg/mcp-fabric/SKILL.md +1 -1
  26. package/.agents/skills/omg/mcp-fabric/openai.yaml +1 -1
  27. package/.agents/skills/omg/plan-council/SKILL.md +11 -0
  28. package/.agents/skills/omg/plan-council/openai.yaml +12 -0
  29. package/.agents/skills/omg/preflight/SKILL.md +11 -0
  30. package/.agents/skills/omg/preflight/openai.yaml +12 -0
  31. package/.agents/skills/omg/proof-gate/SKILL.md +11 -0
  32. package/.agents/skills/omg/proof-gate/openai.yaml +13 -0
  33. package/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  34. package/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  35. package/.agents/skills/omg/robotics/SKILL.md +11 -0
  36. package/.agents/skills/omg/robotics/openai.yaml +11 -0
  37. package/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +1 -1
  38. package/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +1 -1
  39. package/.agents/skills/omg/security-check/SKILL.md +11 -0
  40. package/.agents/skills/omg/security-check/openai.yaml +13 -0
  41. package/.agents/skills/omg/test-intent-lock/SKILL.md +11 -0
  42. package/.agents/skills/omg/test-intent-lock/openai.yaml +13 -0
  43. package/.agents/skills/omg/tracebank/SKILL.md +11 -0
  44. package/.agents/skills/omg/tracebank/openai.yaml +12 -0
  45. package/.agents/skills/omg/vision/SKILL.md +11 -0
  46. package/.agents/skills/omg/vision/openai.yaml +11 -0
  47. package/.claude-plugin/marketplace.json +5 -5
  48. package/.claude-plugin/plugin.json +1 -1
  49. package/.claude-plugin/scripts/uninstall.sh +2 -2
  50. package/.mcp.json +0 -22
  51. package/CHANGELOG.md +13 -0
  52. package/OMG-setup.sh +64 -14
  53. package/OMG_COMPAT_CONTRACT.md +1 -1
  54. package/README.md +8 -6
  55. package/agents/omg-security-auditor.md +1 -1
  56. package/artifacts/release/.agents/skills/omg/AGENTS.fragment.md +52 -0
  57. package/artifacts/release/.agents/skills/omg/algorithms/SKILL.md +11 -0
  58. package/artifacts/release/.agents/skills/omg/algorithms/openai.yaml +11 -0
  59. package/artifacts/release/.agents/skills/omg/api-twin/SKILL.md +11 -0
  60. package/artifacts/release/.agents/skills/omg/api-twin/openai.yaml +12 -0
  61. package/artifacts/release/.agents/skills/omg/codex-mcp.toml +4 -0
  62. package/artifacts/release/.agents/skills/omg/codex-rules.md +29 -0
  63. package/artifacts/release/.agents/skills/omg/control-plane/SKILL.md +11 -0
  64. package/artifacts/release/.agents/skills/omg/control-plane/openai.yaml +14 -0
  65. package/artifacts/release/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  66. package/artifacts/release/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  67. package/artifacts/release/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  68. package/artifacts/release/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  69. package/artifacts/release/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  70. package/artifacts/release/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  71. package/artifacts/release/.agents/skills/omg/health/SKILL.md +11 -0
  72. package/artifacts/release/.agents/skills/omg/health/openai.yaml +11 -0
  73. package/artifacts/release/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  74. package/artifacts/release/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  75. package/artifacts/release/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  76. package/artifacts/release/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  77. package/artifacts/release/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  78. package/artifacts/release/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  79. package/artifacts/release/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  80. package/artifacts/release/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  81. package/artifacts/release/.agents/skills/omg/preflight/SKILL.md +11 -0
  82. package/artifacts/release/.agents/skills/omg/preflight/openai.yaml +12 -0
  83. package/artifacts/release/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  84. package/artifacts/release/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  85. package/artifacts/release/.agents/skills/omg/robotics/SKILL.md +11 -0
  86. package/artifacts/release/.agents/skills/omg/robotics/openai.yaml +11 -0
  87. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  88. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  89. package/artifacts/release/.agents/skills/omg/security-check/SKILL.md +11 -0
  90. package/artifacts/release/.agents/skills/omg/security-check/openai.yaml +13 -0
  91. package/artifacts/release/.agents/skills/omg/tracebank/SKILL.md +11 -0
  92. package/artifacts/release/.agents/skills/omg/tracebank/openai.yaml +12 -0
  93. package/artifacts/release/.agents/skills/omg/vision/SKILL.md +11 -0
  94. package/artifacts/release/.agents/skills/omg/vision/openai.yaml +11 -0
  95. package/artifacts/release/.claude-plugin/marketplace.json +36 -0
  96. package/artifacts/release/.claude-plugin/plugin.json +23 -0
  97. package/artifacts/release/.mcp.json +40 -0
  98. package/artifacts/release/OMG_COMPAT_CONTRACT.md +92 -0
  99. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +52 -0
  100. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  101. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  102. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  103. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  104. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
  105. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
  106. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
  107. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
  108. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  109. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  110. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  111. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  112. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  113. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  114. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  115. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  116. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  117. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  118. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  119. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  120. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  121. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  122. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  123. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  124. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  125. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  126. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  127. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  128. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  129. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  130. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  131. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  132. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  133. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  134. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  135. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  136. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  137. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  138. package/artifacts/release/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +92 -0
  139. package/artifacts/release/dist/enterprise/bundle/registry/bundles/algorithms.yaml +45 -0
  140. package/artifacts/release/dist/enterprise/bundle/registry/bundles/api-twin.yaml +48 -0
  141. package/artifacts/release/dist/enterprise/bundle/registry/bundles/control-plane.yaml +151 -0
  142. package/artifacts/release/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +47 -0
  143. package/artifacts/release/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +47 -0
  144. package/artifacts/release/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +47 -0
  145. package/artifacts/release/dist/enterprise/bundle/registry/bundles/health.yaml +45 -0
  146. package/artifacts/release/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +97 -0
  147. package/artifacts/release/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +47 -0
  148. package/artifacts/release/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +48 -0
  149. package/artifacts/release/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  150. package/artifacts/release/dist/enterprise/bundle/registry/bundles/preflight.yaml +48 -0
  151. package/artifacts/release/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  152. package/artifacts/release/dist/enterprise/bundle/registry/bundles/robotics.yaml +45 -0
  153. package/artifacts/release/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  154. package/artifacts/release/dist/enterprise/bundle/registry/bundles/security-check.yaml +50 -0
  155. package/artifacts/release/dist/enterprise/bundle/registry/bundles/tracebank.yaml +47 -0
  156. package/artifacts/release/dist/enterprise/bundle/registry/bundles/vision.yaml +45 -0
  157. package/artifacts/release/dist/enterprise/bundle/registry/omg-capability.schema.json +296 -0
  158. package/artifacts/release/dist/enterprise/manifest.json +243 -0
  159. package/artifacts/release/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +7 -0
  160. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  161. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  162. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  163. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  164. package/artifacts/release/dist/public/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
  165. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
  166. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
  167. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  168. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  169. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  170. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  171. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  172. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  173. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  174. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  175. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
  176. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
  177. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  178. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  179. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
  180. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
  181. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
  182. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
  183. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  184. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  185. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  186. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  187. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  188. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  189. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
  190. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
  191. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  192. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  193. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  194. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  195. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  196. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  197. package/artifacts/release/dist/public/bundle/.claude-plugin/marketplace.json +36 -0
  198. package/artifacts/release/dist/public/bundle/.claude-plugin/plugin.json +23 -0
  199. package/artifacts/release/dist/public/bundle/.mcp.json +40 -0
  200. package/artifacts/release/dist/public/bundle/OMG_COMPAT_CONTRACT.md +92 -0
  201. package/artifacts/release/dist/public/bundle/registry/bundles/algorithms.yaml +45 -0
  202. package/artifacts/release/dist/public/bundle/registry/bundles/api-twin.yaml +48 -0
  203. package/artifacts/release/dist/public/bundle/registry/bundles/control-plane.yaml +151 -0
  204. package/artifacts/release/dist/public/bundle/registry/bundles/data-lineage.yaml +47 -0
  205. package/artifacts/release/dist/public/bundle/registry/bundles/delta-classifier.yaml +47 -0
  206. package/artifacts/release/dist/public/bundle/registry/bundles/eval-gate.yaml +47 -0
  207. package/artifacts/release/dist/public/bundle/registry/bundles/health.yaml +45 -0
  208. package/artifacts/release/dist/public/bundle/registry/bundles/hook-governor.yaml +97 -0
  209. package/artifacts/release/dist/public/bundle/registry/bundles/incident-replay.yaml +47 -0
  210. package/artifacts/release/dist/public/bundle/registry/bundles/lsp-pack.yaml +48 -0
  211. package/artifacts/release/dist/public/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  212. package/artifacts/release/dist/public/bundle/registry/bundles/preflight.yaml +48 -0
  213. package/artifacts/release/dist/public/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  214. package/artifacts/release/dist/public/bundle/registry/bundles/robotics.yaml +45 -0
  215. package/artifacts/release/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  216. package/artifacts/release/dist/public/bundle/registry/bundles/security-check.yaml +50 -0
  217. package/artifacts/release/dist/public/bundle/registry/bundles/tracebank.yaml +47 -0
  218. package/artifacts/release/dist/public/bundle/registry/bundles/vision.yaml +45 -0
  219. package/artifacts/release/dist/public/bundle/registry/omg-capability.schema.json +296 -0
  220. package/artifacts/release/dist/public/bundle/settings.json +526 -0
  221. package/artifacts/release/dist/public/manifest.json +255 -0
  222. package/artifacts/release/registry/bundles/algorithms.yaml +45 -0
  223. package/artifacts/release/registry/bundles/api-twin.yaml +48 -0
  224. package/artifacts/release/registry/bundles/control-plane.yaml +151 -0
  225. package/artifacts/release/registry/bundles/data-lineage.yaml +47 -0
  226. package/artifacts/release/registry/bundles/delta-classifier.yaml +47 -0
  227. package/artifacts/release/registry/bundles/eval-gate.yaml +47 -0
  228. package/artifacts/release/registry/bundles/health.yaml +45 -0
  229. package/artifacts/release/registry/bundles/hook-governor.yaml +97 -0
  230. package/artifacts/release/registry/bundles/incident-replay.yaml +47 -0
  231. package/artifacts/release/registry/bundles/lsp-pack.yaml +48 -0
  232. package/artifacts/release/registry/bundles/mcp-fabric.yaml +53 -0
  233. package/artifacts/release/registry/bundles/preflight.yaml +48 -0
  234. package/artifacts/release/registry/bundles/remote-supervisor.yaml +49 -0
  235. package/artifacts/release/registry/bundles/robotics.yaml +45 -0
  236. package/artifacts/release/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  237. package/artifacts/release/registry/bundles/security-check.yaml +50 -0
  238. package/artifacts/release/registry/bundles/tracebank.yaml +47 -0
  239. package/artifacts/release/registry/bundles/vision.yaml +45 -0
  240. package/artifacts/release/registry/omg-capability.schema.json +296 -0
  241. package/artifacts/release/settings.json +594 -0
  242. package/build/lib/agents/__init__.py +1 -0
  243. package/build/lib/agents/designer.md +67 -0
  244. package/build/lib/agents/explore.md +60 -0
  245. package/build/lib/agents/model_roles.py +196 -0
  246. package/build/lib/agents/omg-api-builder.md +23 -0
  247. package/build/lib/agents/omg-architect-mode.md +41 -0
  248. package/build/lib/agents/omg-architect.md +13 -0
  249. package/build/lib/agents/omg-backend-engineer.md +41 -0
  250. package/build/lib/agents/omg-critic.md +16 -0
  251. package/build/lib/agents/omg-database-engineer.md +41 -0
  252. package/build/lib/agents/omg-escalation-router.md +17 -0
  253. package/build/lib/agents/omg-executor.md +12 -0
  254. package/build/lib/agents/omg-frontend-designer.md +41 -0
  255. package/build/lib/agents/omg-implement-mode.md +49 -0
  256. package/build/lib/agents/omg-infra-engineer.md +41 -0
  257. package/build/lib/agents/omg-qa-tester.md +16 -0
  258. package/build/lib/agents/omg-research-mode.md +41 -0
  259. package/build/lib/agents/omg-security-auditor.md +41 -0
  260. package/build/lib/agents/omg-testing-engineer.md +41 -0
  261. package/build/lib/agents/plan.md +80 -0
  262. package/build/lib/agents/quick_task.md +64 -0
  263. package/build/lib/agents/reviewer.md +83 -0
  264. package/build/lib/agents/task.md +71 -0
  265. package/build/lib/commands/OMG:ai-commit.md +113 -0
  266. package/build/lib/commands/OMG:api-twin.md +22 -0
  267. package/build/lib/commands/OMG:arch.md +313 -0
  268. package/build/lib/commands/OMG:ccg.md +22 -0
  269. package/build/lib/commands/OMG:compat.md +57 -0
  270. package/build/lib/commands/OMG:cost.md +181 -0
  271. package/build/lib/commands/OMG:crazy.md +125 -0
  272. package/build/lib/commands/OMG:create-agent.md +183 -0
  273. package/build/lib/commands/OMG:deps.md +248 -0
  274. package/build/lib/commands/OMG:doctor.md +37 -0
  275. package/build/lib/commands/OMG:domain-init.md +11 -0
  276. package/build/lib/commands/OMG:escalate.md +52 -0
  277. package/build/lib/commands/OMG:health-check.md +45 -0
  278. package/build/lib/commands/OMG:init.md +134 -0
  279. package/build/lib/commands/OMG:mode.md +44 -0
  280. package/build/lib/commands/OMG:preflight.md +26 -0
  281. package/build/lib/commands/OMG:project-init.md +11 -0
  282. package/build/lib/commands/OMG:ralph-start.md +43 -0
  283. package/build/lib/commands/OMG:ralph-stop.md +23 -0
  284. package/build/lib/commands/OMG:security-check.md +28 -0
  285. package/build/lib/commands/OMG:session-branch.md +85 -0
  286. package/build/lib/commands/OMG:session-fork.md +53 -0
  287. package/build/lib/commands/OMG:session-merge.md +134 -0
  288. package/build/lib/commands/OMG:setup.md +78 -0
  289. package/build/lib/commands/OMG:stats.md +225 -0
  290. package/build/lib/commands/OMG:teams.md +39 -0
  291. package/build/lib/commands/OMG:theme.md +44 -0
  292. package/build/lib/commands/__init__.py +1 -0
  293. package/build/lib/control_plane/__init__.py +2 -0
  294. package/build/lib/control_plane/openapi.yaml +260 -0
  295. package/build/lib/control_plane/server.py +147 -0
  296. package/build/lib/control_plane/service.py +222 -0
  297. package/build/lib/hooks/__init__.py +0 -0
  298. package/build/lib/hooks/_agent_registry.py +423 -0
  299. package/build/lib/hooks/_analytics.py +291 -0
  300. package/build/lib/hooks/_budget.py +31 -0
  301. package/build/lib/hooks/_common.py +569 -0
  302. package/build/lib/hooks/_compression_optimizer.py +119 -0
  303. package/build/lib/hooks/_cost_ledger.py +176 -0
  304. package/build/lib/hooks/_learnings.py +126 -0
  305. package/build/lib/hooks/_memory.py +103 -0
  306. package/build/lib/hooks/_protected_context.py +150 -0
  307. package/build/lib/hooks/_token_counter.py +221 -0
  308. package/build/lib/hooks/branch_manager.py +236 -0
  309. package/build/lib/hooks/budget_governor.py +232 -0
  310. package/build/lib/hooks/circuit-breaker.py +270 -0
  311. package/build/lib/hooks/compression_feedback.py +254 -0
  312. package/build/lib/hooks/config-guard.py +216 -0
  313. package/build/lib/hooks/context_pressure.py +53 -0
  314. package/build/lib/hooks/credential_store.py +1020 -0
  315. package/build/lib/hooks/fetch-rate-limits.py +212 -0
  316. package/build/lib/hooks/firewall.py +48 -0
  317. package/build/lib/hooks/hashline-formatter-bridge.py +224 -0
  318. package/build/lib/hooks/hashline-injector.py +273 -0
  319. package/build/lib/hooks/hashline-validator.py +216 -0
  320. package/build/lib/hooks/idle-detector.py +95 -0
  321. package/build/lib/hooks/intentgate-keyword-detector.py +188 -0
  322. package/build/lib/hooks/magic-keyword-router.py +195 -0
  323. package/build/lib/hooks/policy_engine.py +641 -0
  324. package/build/lib/hooks/post-tool-failure.py +19 -0
  325. package/build/lib/hooks/post-write.py +219 -0
  326. package/build/lib/hooks/post_write.py +46 -0
  327. package/build/lib/hooks/pre-compact.py +398 -0
  328. package/build/lib/hooks/pre-tool-inject.py +98 -0
  329. package/build/lib/hooks/prompt-enhancer.py +672 -0
  330. package/build/lib/hooks/quality-runner.py +191 -0
  331. package/build/lib/hooks/query.py +512 -0
  332. package/build/lib/hooks/secret-guard.py +61 -0
  333. package/build/lib/hooks/secret_audit.py +144 -0
  334. package/build/lib/hooks/security_validators.py +75 -0
  335. package/build/lib/hooks/session-end-capture.py +137 -0
  336. package/build/lib/hooks/session-start.py +277 -0
  337. package/build/lib/hooks/setup_wizard.py +646 -0
  338. package/build/lib/hooks/shadow_manager.py +344 -0
  339. package/build/lib/hooks/state_migration.py +225 -0
  340. package/build/lib/hooks/stop-gate.py +7 -0
  341. package/build/lib/hooks/stop_dispatcher.py +945 -0
  342. package/build/lib/hooks/test-validator.py +361 -0
  343. package/build/lib/hooks/test_generator_hook.py +123 -0
  344. package/build/lib/hooks/todo-state-tracker.py +114 -0
  345. package/build/lib/hooks/tool-ledger.py +149 -0
  346. package/build/lib/hooks/trust_review.py +585 -0
  347. package/build/lib/plugins/README.md +60 -0
  348. package/build/lib/plugins/__init__.py +1 -0
  349. package/build/lib/plugins/advanced/commands/OMG:code-review.md +114 -0
  350. package/build/lib/plugins/advanced/commands/OMG:deep-plan.md +265 -0
  351. package/build/lib/plugins/advanced/commands/OMG:handoff.md +115 -0
  352. package/build/lib/plugins/advanced/commands/OMG:learn.md +110 -0
  353. package/build/lib/plugins/advanced/commands/OMG:maintainer.md +31 -0
  354. package/build/lib/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  355. package/build/lib/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  356. package/build/lib/plugins/advanced/commands/OMG:security-review.md +16 -0
  357. package/build/lib/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  358. package/build/lib/plugins/advanced/commands/OMG:ship.md +46 -0
  359. package/build/lib/plugins/advanced/plugin.json +87 -0
  360. package/build/lib/plugins/core/plugin.json +145 -0
  361. package/build/lib/plugins/dephealth/__init__.py +0 -0
  362. package/build/lib/plugins/dephealth/cve_scanner.py +188 -0
  363. package/build/lib/plugins/dephealth/license_checker.py +135 -0
  364. package/build/lib/plugins/dephealth/manifest_detector.py +423 -0
  365. package/build/lib/plugins/dephealth/vuln_analyzer.py +169 -0
  366. package/build/lib/plugins/testgen/__init__.py +0 -0
  367. package/build/lib/plugins/testgen/codamosa_engine.py +402 -0
  368. package/build/lib/plugins/testgen/edge_case_synthesizer.py +184 -0
  369. package/build/lib/plugins/testgen/framework_detector.py +271 -0
  370. package/build/lib/plugins/testgen/skeleton_generator.py +219 -0
  371. package/build/lib/plugins/viz/__init__.py +0 -0
  372. package/build/lib/plugins/viz/ast_parser.py +139 -0
  373. package/build/lib/plugins/viz/diagram_generator.py +192 -0
  374. package/build/lib/plugins/viz/graph_builder.py +444 -0
  375. package/build/lib/plugins/viz/native_parsers.py +259 -0
  376. package/build/lib/plugins/viz/regex_parser.py +112 -0
  377. package/build/lib/registry/__init__.py +1 -0
  378. package/build/lib/registry/bundles/algorithms.yaml +45 -0
  379. package/build/lib/registry/bundles/api-twin.yaml +48 -0
  380. package/build/lib/registry/bundles/claim-judge.yaml +49 -0
  381. package/build/lib/registry/bundles/control-plane.yaml +151 -0
  382. package/build/lib/registry/bundles/data-lineage.yaml +47 -0
  383. package/build/lib/registry/bundles/delta-classifier.yaml +47 -0
  384. package/build/lib/registry/bundles/eval-gate.yaml +47 -0
  385. package/build/lib/registry/bundles/health.yaml +45 -0
  386. package/build/lib/registry/bundles/hook-governor.yaml +97 -0
  387. package/build/lib/registry/bundles/incident-replay.yaml +47 -0
  388. package/build/lib/registry/bundles/lsp-pack.yaml +48 -0
  389. package/build/lib/registry/bundles/mcp-fabric.yaml +53 -0
  390. package/build/lib/registry/bundles/plan-council.yaml +51 -0
  391. package/build/lib/registry/bundles/preflight.yaml +48 -0
  392. package/build/lib/registry/bundles/proof-gate.yaml +49 -0
  393. package/build/lib/registry/bundles/remote-supervisor.yaml +49 -0
  394. package/build/lib/registry/bundles/robotics.yaml +45 -0
  395. package/build/lib/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  396. package/build/lib/registry/bundles/security-check.yaml +50 -0
  397. package/build/lib/registry/bundles/test-intent-lock.yaml +49 -0
  398. package/build/lib/registry/bundles/tracebank.yaml +47 -0
  399. package/build/lib/registry/bundles/vision.yaml +45 -0
  400. package/build/lib/registry/omg-capability.schema.json +296 -0
  401. package/build/lib/registry/verify_artifact.py +90 -0
  402. package/build/lib/runtime/__init__.py +32 -0
  403. package/build/lib/runtime/adapters/__init__.py +13 -0
  404. package/build/lib/runtime/adapters/claude.py +63 -0
  405. package/build/lib/runtime/adapters/gpt.py +56 -0
  406. package/build/lib/runtime/adapters/local.py +56 -0
  407. package/build/lib/runtime/adoption.py +212 -0
  408. package/build/lib/runtime/api_twin.py +450 -0
  409. package/build/lib/runtime/asset_loader.py +62 -0
  410. package/build/lib/runtime/business_workflow.py +234 -0
  411. package/build/lib/runtime/claim_judge.py +95 -0
  412. package/build/lib/runtime/cli_provider.py +85 -0
  413. package/build/lib/runtime/compat.py +1459 -0
  414. package/build/lib/runtime/contract_compiler.py +1918 -0
  415. package/build/lib/runtime/custom_agent_loader.py +366 -0
  416. package/build/lib/runtime/data_lineage.py +73 -0
  417. package/build/lib/runtime/delta_classifier.py +81 -0
  418. package/build/lib/runtime/dispatcher.py +47 -0
  419. package/build/lib/runtime/domain_packs.py +46 -0
  420. package/build/lib/runtime/ecosystem.py +371 -0
  421. package/build/lib/runtime/eval_gate.py +96 -0
  422. package/build/lib/runtime/guide_assert.py +45 -0
  423. package/build/lib/runtime/incident_replay.py +47 -0
  424. package/build/lib/runtime/legacy_compat.py +7 -0
  425. package/build/lib/runtime/mcp_config_writers.py +233 -0
  426. package/build/lib/runtime/mcp_lifecycle.py +175 -0
  427. package/build/lib/runtime/mcp_memory_server.py +135 -0
  428. package/build/lib/runtime/memory_parsers/__init__.py +0 -0
  429. package/build/lib/runtime/memory_parsers/chatgpt_parser.py +257 -0
  430. package/build/lib/runtime/memory_parsers/claude_import.py +107 -0
  431. package/build/lib/runtime/memory_parsers/export.py +97 -0
  432. package/build/lib/runtime/memory_parsers/gemini_import.py +91 -0
  433. package/build/lib/runtime/memory_parsers/kimi_import.py +91 -0
  434. package/build/lib/runtime/memory_store.py +215 -0
  435. package/build/lib/runtime/omc_compat.py +7 -0
  436. package/build/lib/runtime/omg_compat_contract_snapshot.json +916 -0
  437. package/build/lib/runtime/omg_contract_snapshot.json +916 -0
  438. package/build/lib/runtime/omg_mcp_server.py +212 -0
  439. package/build/lib/runtime/playwright_pack.py +169 -0
  440. package/build/lib/runtime/preflight.py +117 -0
  441. package/build/lib/runtime/proof_chain.py +228 -0
  442. package/build/lib/runtime/proof_gate.py +163 -0
  443. package/build/lib/runtime/providers/__init__.py +0 -0
  444. package/build/lib/runtime/providers/codex_provider.py +102 -0
  445. package/build/lib/runtime/providers/gemini_provider.py +109 -0
  446. package/build/lib/runtime/providers/kimi_provider.py +132 -0
  447. package/build/lib/runtime/remote_supervisor.py +64 -0
  448. package/build/lib/runtime/runtime_profile.py +61 -0
  449. package/build/lib/runtime/security_check.py +965 -0
  450. package/build/lib/runtime/subagent_dispatcher.py +469 -0
  451. package/build/lib/runtime/team_router.py +1167 -0
  452. package/build/lib/runtime/test_intent_lock.py +91 -0
  453. package/build/lib/runtime/tmux_session_manager.py +169 -0
  454. package/build/lib/runtime/tracebank.py +95 -0
  455. package/build/lib/runtime/untrusted_content.py +269 -0
  456. package/commands/OMG:doctor.md +37 -0
  457. package/commands/OMG:preflight.md +1 -1
  458. package/commands/__init__.py +1 -0
  459. package/control_plane/__init__.py +2 -0
  460. package/control_plane/openapi.yaml +260 -0
  461. package/control_plane/server.py +147 -0
  462. package/control_plane/service.py +222 -0
  463. package/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
  464. package/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  465. package/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  466. package/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  467. package/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  468. package/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
  469. package/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  470. package/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  471. package/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  472. package/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  473. package/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  474. package/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  475. package/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  476. package/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  477. package/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  478. package/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  479. package/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  480. package/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  481. package/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  482. package/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  483. package/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  484. package/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  485. package/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  486. package/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  487. package/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  488. package/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  489. package/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  490. package/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  491. package/dist/enterprise/bundle/.claude-plugin/marketplace.json +5 -5
  492. package/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
  493. package/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  494. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
  495. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
  496. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
  497. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
  498. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
  499. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  500. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  501. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
  502. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  503. package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
  504. package/dist/enterprise/bundle/plugins/advanced/plugin.json +87 -0
  505. package/dist/enterprise/bundle/registry/bundles/algorithms.yaml +45 -0
  506. package/dist/enterprise/bundle/registry/bundles/api-twin.yaml +48 -0
  507. package/dist/enterprise/bundle/registry/bundles/control-plane.yaml +151 -0
  508. package/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +47 -0
  509. package/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +47 -0
  510. package/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +47 -0
  511. package/dist/enterprise/bundle/registry/bundles/health.yaml +45 -0
  512. package/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +97 -0
  513. package/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +47 -0
  514. package/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +48 -0
  515. package/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  516. package/dist/enterprise/bundle/registry/bundles/preflight.yaml +48 -0
  517. package/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  518. package/dist/enterprise/bundle/registry/bundles/robotics.yaml +45 -0
  519. package/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  520. package/dist/enterprise/bundle/registry/bundles/security-check.yaml +50 -0
  521. package/dist/enterprise/bundle/registry/bundles/tracebank.yaml +47 -0
  522. package/dist/enterprise/bundle/registry/bundles/vision.yaml +45 -0
  523. package/dist/enterprise/bundle/registry/omg-capability.schema.json +296 -0
  524. package/dist/enterprise/bundle/settings.json +233 -5
  525. package/dist/enterprise/manifest.json +216 -12
  526. package/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
  527. package/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
  528. package/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
  529. package/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
  530. package/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
  531. package/dist/public/bundle/.agents/skills/omg/codex-rules.md +29 -0
  532. package/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
  533. package/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
  534. package/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
  535. package/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
  536. package/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
  537. package/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
  538. package/dist/public/bundle/.agents/skills/omg/health/SKILL.md +11 -0
  539. package/dist/public/bundle/.agents/skills/omg/health/openai.yaml +11 -0
  540. package/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
  541. package/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
  542. package/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
  543. package/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
  544. package/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
  545. package/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
  546. package/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
  547. package/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
  548. package/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
  549. package/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
  550. package/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
  551. package/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
  552. package/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
  553. package/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
  554. package/dist/public/bundle/.claude-plugin/marketplace.json +5 -5
  555. package/dist/public/bundle/.claude-plugin/plugin.json +1 -1
  556. package/dist/public/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  557. package/dist/public/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
  558. package/dist/public/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
  559. package/dist/public/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
  560. package/dist/public/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
  561. package/dist/public/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
  562. package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  563. package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  564. package/dist/public/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
  565. package/dist/public/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  566. package/dist/public/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
  567. package/dist/public/bundle/plugins/advanced/plugin.json +87 -0
  568. package/dist/public/bundle/registry/bundles/algorithms.yaml +45 -0
  569. package/dist/public/bundle/registry/bundles/api-twin.yaml +48 -0
  570. package/dist/public/bundle/registry/bundles/control-plane.yaml +151 -0
  571. package/dist/public/bundle/registry/bundles/data-lineage.yaml +47 -0
  572. package/dist/public/bundle/registry/bundles/delta-classifier.yaml +47 -0
  573. package/dist/public/bundle/registry/bundles/eval-gate.yaml +47 -0
  574. package/dist/public/bundle/registry/bundles/health.yaml +45 -0
  575. package/dist/public/bundle/registry/bundles/hook-governor.yaml +97 -0
  576. package/dist/public/bundle/registry/bundles/incident-replay.yaml +47 -0
  577. package/dist/public/bundle/registry/bundles/lsp-pack.yaml +48 -0
  578. package/dist/public/bundle/registry/bundles/mcp-fabric.yaml +53 -0
  579. package/dist/public/bundle/registry/bundles/preflight.yaml +48 -0
  580. package/dist/public/bundle/registry/bundles/remote-supervisor.yaml +49 -0
  581. package/dist/public/bundle/registry/bundles/robotics.yaml +45 -0
  582. package/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  583. package/dist/public/bundle/registry/bundles/security-check.yaml +50 -0
  584. package/dist/public/bundle/registry/bundles/tracebank.yaml +47 -0
  585. package/dist/public/bundle/registry/bundles/vision.yaml +45 -0
  586. package/dist/public/bundle/registry/omg-capability.schema.json +296 -0
  587. package/dist/public/bundle/settings.json +232 -4
  588. package/dist/public/manifest.json +216 -12
  589. package/docs/assets/omg-hud.svg +32 -0
  590. package/docs/install/claude-code.md +31 -0
  591. package/docs/install/codex.md +29 -0
  592. package/docs/migration/native-adoption.md +57 -0
  593. package/docs/proof.md +65 -0
  594. package/docs/release-checklist.md +40 -0
  595. package/docs/transcripts/crazy.md +17 -0
  596. package/docs/transcripts/setup.md +25 -0
  597. package/hooks/policy_engine.py +122 -17
  598. package/hooks/setup_wizard.py +52 -12
  599. package/hooks/shadow_manager.py +27 -0
  600. package/package.json +2 -2
  601. package/plugins/README.md +5 -1
  602. package/plugins/__init__.py +1 -0
  603. package/plugins/advanced/commands/OMG:deep-plan.md +50 -6
  604. package/plugins/advanced/commands/OMG:ship.md +1 -1
  605. package/plugins/advanced/plugin.json +1 -10
  606. package/plugins/core/plugin.json +7 -1
  607. package/pyproject.toml +39 -3
  608. package/registry/__init__.py +1 -0
  609. package/registry/bundles/algorithms.yaml +45 -0
  610. package/registry/bundles/api-twin.yaml +48 -0
  611. package/registry/bundles/claim-judge.yaml +49 -0
  612. package/registry/bundles/control-plane.yaml +151 -0
  613. package/registry/bundles/data-lineage.yaml +47 -0
  614. package/registry/bundles/delta-classifier.yaml +47 -0
  615. package/registry/bundles/eval-gate.yaml +47 -0
  616. package/registry/bundles/health.yaml +45 -0
  617. package/registry/bundles/hook-governor.yaml +97 -0
  618. package/registry/bundles/incident-replay.yaml +47 -0
  619. package/registry/bundles/lsp-pack.yaml +48 -0
  620. package/registry/bundles/mcp-fabric.yaml +53 -0
  621. package/registry/bundles/plan-council.yaml +51 -0
  622. package/registry/bundles/preflight.yaml +48 -0
  623. package/registry/bundles/proof-gate.yaml +49 -0
  624. package/registry/bundles/remote-supervisor.yaml +49 -0
  625. package/registry/bundles/robotics.yaml +45 -0
  626. package/registry/bundles/secure-worktree-pipeline.yaml +54 -0
  627. package/registry/bundles/security-check.yaml +50 -0
  628. package/registry/bundles/test-intent-lock.yaml +49 -0
  629. package/registry/bundles/tracebank.yaml +47 -0
  630. package/registry/bundles/vision.yaml +45 -0
  631. package/registry/omg-capability.schema.json +296 -0
  632. package/registry/verify_artifact.py +90 -0
  633. package/runtime/adapters/claude.py +3 -0
  634. package/runtime/adapters/gpt.py +3 -0
  635. package/runtime/adapters/local.py +3 -0
  636. package/runtime/adoption.py +1 -1
  637. package/runtime/api_twin.py +334 -14
  638. package/runtime/asset_loader.py +62 -0
  639. package/runtime/business_workflow.py +14 -0
  640. package/runtime/claim_judge.py +95 -0
  641. package/runtime/compat.py +142 -2
  642. package/runtime/contract_compiler.py +1270 -50
  643. package/runtime/data_lineage.py +73 -0
  644. package/runtime/delta_classifier.py +81 -0
  645. package/runtime/domain_packs.py +12 -0
  646. package/runtime/ecosystem.py +1 -1
  647. package/runtime/eval_gate.py +96 -0
  648. package/runtime/incident_replay.py +47 -0
  649. package/runtime/mcp_config_writers.py +12 -0
  650. package/runtime/mcp_lifecycle.py +31 -9
  651. package/runtime/mcp_memory_server.py +1 -1
  652. package/runtime/omg_compat_contract_snapshot.json +1 -1
  653. package/runtime/omg_contract_snapshot.json +1 -1
  654. package/runtime/omg_mcp_server.py +16 -9
  655. package/runtime/playwright_pack.py +169 -0
  656. package/runtime/preflight.py +66 -1
  657. package/runtime/proof_chain.py +228 -0
  658. package/runtime/proof_gate.py +163 -0
  659. package/runtime/remote_supervisor.py +64 -0
  660. package/runtime/security_check.py +626 -8
  661. package/runtime/team_router.py +6 -6
  662. package/runtime/test_intent_lock.py +91 -0
  663. package/runtime/tracebank.py +95 -0
  664. package/runtime/untrusted_content.py +172 -5
  665. package/scripts/check-omg-public-ready.py +77 -0
  666. package/scripts/omg.py +207 -3
  667. package/scripts/verify-standalone.sh +7 -0
  668. package/settings.json +233 -5
@@ -0,0 +1,23 @@
1
+ ---
2
+ description: "Stop Ralph autonomous loop — deactivates the state file."
3
+ allowed-tools: Read, Write, Edit, Bash
4
+ argument-hint: ""
5
+ ---
6
+
7
+ # /OMG:ralph-stop — Stop Ralph Autonomous Loop
8
+
9
+ ## Purpose
10
+ Stops an active Ralph loop by deactivating the state file.
11
+
12
+ ## Usage
13
+ ```
14
+ /OMG:ralph-stop
15
+ ```
16
+
17
+ ## How it Works
18
+ 1. Read `.omg/state/ralph-loop.json`
19
+ 2. Set `active: false` in the state file (preserve iteration count for review)
20
+ 3. Report: "Ralph loop stopped after N iterations. Gomg was: [original_prompt]"
21
+
22
+ ## If No Active Loop
23
+ Report: "No active Ralph loop found. Nothing to stop."
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Deprecated alias to OMG's canonical security-check pipeline.
3
+ allowed-tools: Read, Grep, Glob, Bash(python3:*), Bash(rg:*)
4
+ argument-hint: "[path or '.' for the current project]"
5
+ ---
6
+
7
+ # /OMG:security-review — Deprecated Alias
8
+
9
+ `/OMG:security-review` remains available only for compatibility.
10
+
11
+ Use `/OMG:security-check` instead. The canonical pipeline now owns:
12
+
13
+ - normalized security findings
14
+ - dependency and AST enrichment
15
+ - evidence-ready provenance and trust scores
16
+ - reuse across CLI, compat routing, control plane, MCP, and ship flows
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: Structured multi-step reasoning using sequential-thinking tool for complex debugging and planning.
3
+ allowed-tools: sequential-thinking_sequentialthinking, Read, Grep, Glob
4
+ argument-hint: "[problem statement to reason through]"
5
+ ---
6
+
7
+ # /OMG:sequential-thinking
8
+
9
+ Use the sequential-thinking tool when the task needs explicit step-by-step reasoning,
10
+ branching, and hypothesis verification.
11
+
12
+ Execution contract:
13
+ - Start with an initial thought budget
14
+ - Revise or branch when new evidence appears
15
+ - End only when a verified conclusion is reached
16
+
17
+ Output contract:
18
+ - Return final conclusion
19
+ - Return key assumptions
20
+ - Return verification steps used
@@ -0,0 +1,46 @@
1
+ ---
2
+ description: Ship pipeline — Idea -> Plan -> Execute -> Evidence -> PR-ready summary
3
+ allowed-tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(python3:*), Bash(pytest:*), Bash(npm test:*), Bash(go test:*), Bash(cargo test:*), Bash(jest:*), Bash(vitest:*)
4
+ argument-hint: "[goal or optional path to .omg/idea.yml]"
5
+ ---
6
+
7
+ # /OMG:ship — Idea -> Evidence -> PR
8
+
9
+ ## Step 1: Load idea contract
10
+ - Prefer `.omg/idea.yml`.
11
+ - If missing, scaffold from `~/.claude/templates/omg/idea.yml` and ask user for minimum fields:
12
+ - `goal`, `constraints`, `acceptance`, `risk`, `evidence_required`.
13
+
14
+ ## Step 2: Convert idea to execution plan
15
+ - Consume plan artifacts generated by `/OMG:deep-plan`.
16
+ - Require `.omg/plans/deep-plan.md` and `.omg/plans/deep-plan.json` to already encode the business workflow contract.
17
+ - If missing, invoke `/OMG:deep-plan` first and return after those artifacts are created.
18
+ - Use the deep-plan workflow path and task metadata as the execution source of truth.
19
+
20
+ ## Step 3: Execute with Shadow + Evidence discipline
21
+ - Implement changes.
22
+ - Run verification commands.
23
+ - Build an evidence pack at `.omg/evidence/<run-id>.json` containing:
24
+ - `tests[]`, `security_scans[]`, `diff_summary`, `reproducibility`, `unresolved_risks[]`.
25
+
26
+ ## Step 4: Security and trust checks
27
+ - Run `/OMG:security-check` for auth/payment/database/sensitive changes.
28
+ - If config/hook/MCP changes are involved, ensure trust manifest is updated at `.omg/trust/manifest.lock.json`.
29
+
30
+ ## Step 5: PR-ready output
31
+ Return:
32
+ 1. Goal and scope delivered
33
+ 2. Files changed
34
+ 3. Verification evidence (command + exit code)
35
+ 4. Risks/unknowns
36
+ 5. Suggested PR title + body
37
+
38
+ ## Full-power sub-agent protocol
39
+ - Prefer parallel background sub-agent launches for independent workstreams.
40
+ - Do not finalize until every launched track is collected via `background_output`.
41
+ - Use `sequential-thinking` to reconcile conflicts and enforce execution order.
42
+
43
+ ## Anti-patterns
44
+ - Do not claim done without evidence.
45
+ - Do not edit tests to hide product bugs.
46
+ - Do not skip trust review for `.claude/.omg` or MCP changes.
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "omg-advanced",
3
+ "version": "2.0.7",
4
+ "description": "Advanced OMG commands - deep planning, learning, code review, and specialized workflows",
5
+ "type": "omg-plugin",
6
+ "commands": {
7
+ "deep-plan": {
8
+ "path": "commands/OMG:deep-plan.md",
9
+ "description": "Deep strategic planning with domain awareness",
10
+ "category": "planning"
11
+ },
12
+ "learn": {
13
+ "path": "commands/OMG:learn.md",
14
+ "description": "Create reusable skills from patterns",
15
+ "category": "knowledge"
16
+ },
17
+ "code-review": {
18
+ "path": "commands/OMG:code-review.md",
19
+ "description": "Deep code review with line-by-line analysis",
20
+ "category": "quality"
21
+ },
22
+ "ship": {
23
+ "path": "commands/OMG:ship.md",
24
+ "description": "Ship pipeline - idea to PR-ready summary",
25
+ "category": "delivery"
26
+ },
27
+ "handoff": {
28
+ "path": "commands/OMG:handoff.md",
29
+ "description": "Intelligent session transfer",
30
+ "category": "collaboration"
31
+ },
32
+ "maintainer": {
33
+ "path": "commands/OMG:maintainer.md",
34
+ "description": "Open-source maintainer workflows",
35
+ "category": "oss"
36
+ },
37
+ "sequential-thinking": {
38
+ "path": "commands/OMG:sequential-thinking.md",
39
+ "description": "Structured multi-step reasoning",
40
+ "category": "thinking"
41
+ },
42
+ "ralph-start": {
43
+ "path": "commands/OMG:ralph-start.md",
44
+ "description": "Start Ralph autonomous loop",
45
+ "category": "automation"
46
+ },
47
+ "ralph-stop": {
48
+ "path": "commands/OMG:ralph-stop.md",
49
+ "description": "Stop Ralph autonomous loop",
50
+ "category": "automation"
51
+ }
52
+ },
53
+ "categories": {
54
+ "planning": {
55
+ "description": "Strategic planning and architecture",
56
+ "commands": ["deep-plan"]
57
+ },
58
+ "quality": {
59
+ "description": "Code quality and review",
60
+ "commands": ["code-review"]
61
+ },
62
+ "knowledge": {
63
+ "description": "Learning and skill creation",
64
+ "commands": ["learn"]
65
+ },
66
+ "delivery": {
67
+ "description": "Shipping and release workflows",
68
+ "commands": ["ship"]
69
+ },
70
+ "collaboration": {
71
+ "description": "Team collaboration and handoff",
72
+ "commands": ["handoff"]
73
+ },
74
+ "automation": {
75
+ "description": "Autonomous execution modes",
76
+ "commands": ["ralph-start", "ralph-stop"]
77
+ },
78
+ "thinking": {
79
+ "description": "Structured thinking tools",
80
+ "commands": ["sequential-thinking"]
81
+ },
82
+ "oss": {
83
+ "description": "Open source maintainer tools",
84
+ "commands": ["maintainer"]
85
+ }
86
+ }
87
+ }
@@ -0,0 +1,145 @@
1
+ {
2
+ "name": "omg-core",
3
+ "version": "2.0.7",
4
+ "description": "Core OMG commands - native setup, routing, orchestration, and verification surfaces",
5
+ "type": "omg-plugin",
6
+ "commands": {
7
+ "setup": {
8
+ "path": "commands/OMG:setup.md",
9
+ "description": "Native OMG setup and adoption flow for supported hosts",
10
+ "category": "setup"
11
+ },
12
+ "init": {
13
+ "path": "commands/OMG:init.md",
14
+ "description": "Unified initializer for project setup and domain scaffolding",
15
+ "category": "setup"
16
+ },
17
+ "escalate": {
18
+ "path": "commands/OMG:escalate.md",
19
+ "description": "Auto-route to Codex or Gemini",
20
+ "category": "routing"
21
+ },
22
+ "teams": {
23
+ "path": "commands/OMG:teams.md",
24
+ "description": "Internal team routing for standalone operation",
25
+ "category": "routing"
26
+ },
27
+ "ccg": {
28
+ "path": "commands/OMG:ccg.md",
29
+ "description": "CCG mode - tri-track synthesis (Claude+Codex+Gemini)",
30
+ "category": "routing"
31
+ },
32
+ "crazy": {
33
+ "path": "commands/OMG:crazy.md",
34
+ "description": "CRAZY mode - parallel multi-agent orchestration",
35
+ "category": "orchestration"
36
+ },
37
+ "compat": {
38
+ "path": "commands/OMG:compat.md",
39
+ "description": "Legacy skill compatibility dispatcher",
40
+ "category": "compatibility"
41
+ },
42
+ "security-check": {
43
+ "path": "commands/OMG:security-check.md",
44
+ "description": "Canonical security pipeline with normalized findings and evidence",
45
+ "category": "security"
46
+ },
47
+ "api-twin": {
48
+ "path": "commands/OMG:api-twin.md",
49
+ "description": "Contract replay and fixture-based API simulation",
50
+ "category": "contracts"
51
+ },
52
+ "preflight": {
53
+ "path": "commands/OMG:preflight.md",
54
+ "description": "Structured routing and evidence planning before execution",
55
+ "category": "routing"
56
+ },
57
+ "health-check": {
58
+ "path": "commands/OMG:health-check.md",
59
+ "description": "Verify project setup and tool integration",
60
+ "category": "setup"
61
+ },
62
+ "mode": {
63
+ "path": "commands/OMG:mode.md",
64
+ "description": "Set cognitive mode for the session",
65
+ "category": "config"
66
+ },
67
+ "domain-init": {
68
+ "path": "commands/OMG:domain-init.md",
69
+ "description": "Alias for domain scaffolding (use init instead)",
70
+ "category": "setup",
71
+ "deprecated": true
72
+ },
73
+ "project-init": {
74
+ "path": "commands/OMG:project-init.md",
75
+ "description": "Alias for project setup (use init instead)",
76
+ "category": "setup",
77
+ "deprecated": true
78
+ },
79
+ "cost": {
80
+ "path": "commands/OMG:cost.md",
81
+ "description": "Display session cost tracking, budget status, and usage history",
82
+ "category": "observability"
83
+ },
84
+ "stats": {
85
+ "path": "commands/OMG:stats.md",
86
+ "description": "Display session analytics, tool usage trends, file heatmaps, and failure patterns",
87
+ "category": "observability"
88
+ },
89
+ "deps": {
90
+ "path": "commands/OMG:deps.md",
91
+ "description": "Scan project dependencies for CVEs, license issues, and outdated packages",
92
+ "category": "observability"
93
+ },
94
+ "arch": {
95
+ "path": "commands/OMG:arch.md",
96
+ "description": "Codebase visualization — dependency graphs and architecture diagrams",
97
+ "category": "visualization",
98
+ "feature_flag": "CODEBASE_VIZ"
99
+ }
100
+ },
101
+ "categories": {
102
+ "setup": {
103
+ "description": "Project initialization and setup",
104
+ "commands": ["setup", "init", "health-check"]
105
+ },
106
+ "routing": {
107
+ "description": "Model routing and escalation",
108
+ "commands": ["escalate", "teams", "ccg", "preflight"]
109
+ },
110
+ "orchestration": {
111
+ "description": "Multi-agent orchestration modes",
112
+ "commands": ["crazy"]
113
+ },
114
+ "compatibility": {
115
+ "description": "Legacy compatibility",
116
+ "commands": ["compat"]
117
+ },
118
+ "config": {
119
+ "description": "Configuration and settings",
120
+ "commands": ["mode"]
121
+ },
122
+ "observability": {
123
+ "description": "Cost tracking and session observability",
124
+ "commands": ["cost", "stats", "deps"]
125
+ },
126
+ "security": {
127
+ "description": "Canonical security and trust checks",
128
+ "commands": ["security-check"]
129
+ },
130
+ "contracts": {
131
+ "description": "Contract replay and API simulation",
132
+ "commands": ["api-twin"]
133
+ },
134
+ "visualization": {
135
+ "description": "Codebase visualization and architecture diagrams",
136
+ "commands": ["arch"]
137
+ }
138
+ },
139
+ "roles": {
140
+ "plan-council": {
141
+ "description": "Canonical council-style planning role",
142
+ "bundle": "plan-council"
143
+ }
144
+ }
145
+ }
File without changes
@@ -0,0 +1,188 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ import os
5
+ from datetime import datetime, timedelta, timezone
6
+ from pathlib import Path
7
+ from typing import Any
8
+ import urllib.error
9
+ import urllib.request
10
+
11
+
12
+ OSV_BATCH_URL = "https://api.osv.dev/v1/querybatch"
13
+ CACHE_REL_PATH = Path(".omg") / "state" / "cve-cache.json"
14
+ CACHE_TTL_HOURS = 24
15
+
16
+
17
+ def _dep_health_enabled() -> bool:
18
+ env_val = os.environ.get("OMG_DEP_HEALTH_ENABLED", "").lower()
19
+ if env_val in ("1", "true", "yes"):
20
+ return True
21
+ if env_val in ("0", "false", "no"):
22
+ return False
23
+ try:
24
+ import sys
25
+ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
26
+ from hooks._common import get_feature_flag
27
+ return get_feature_flag("DEP_HEALTH", default=False)
28
+ except Exception:
29
+ return False
30
+
31
+
32
+ def scan_for_cves(dependency_list: list[dict[str, str]], project_dir: str = ".") -> dict[str, Any]:
33
+ if not _dep_health_enabled():
34
+ return {"results": {}, "cached": False, "scan_ts": datetime.now(timezone.utc).isoformat()}
35
+
36
+ now = datetime.now(timezone.utc)
37
+ cache_path = Path(project_dir) / CACHE_REL_PATH
38
+ cached_payload = _load_cache(cache_path)
39
+
40
+ if not dependency_list:
41
+ return {
42
+ "results": {},
43
+ "cached": False,
44
+ "scan_ts": now.isoformat(),
45
+ }
46
+
47
+ if cached_payload and _is_cache_fresh(cached_payload.get("scan_ts")):
48
+ return {
49
+ "results": cached_payload.get("results", {}),
50
+ "cached": True,
51
+ "scan_ts": cached_payload.get("scan_ts", now.isoformat()),
52
+ }
53
+
54
+ try:
55
+ osv_response = _query_osv_batch(dependency_list)
56
+ except urllib.error.URLError:
57
+ if cached_payload:
58
+ return {
59
+ "results": cached_payload.get("results", {}),
60
+ "cached": True,
61
+ "scan_ts": cached_payload.get("scan_ts", now.isoformat()),
62
+ }
63
+ return {"status": "offline", "results": {}, "cached": False}
64
+
65
+ structured_results = _normalize_results(dependency_list, osv_response)
66
+ scan_result = {
67
+ "results": structured_results,
68
+ "cached": False,
69
+ "scan_ts": now.isoformat(),
70
+ }
71
+ _save_cache(cache_path, scan_result)
72
+ return scan_result
73
+
74
+
75
+ def _query_osv_batch(dependency_list: list[dict[str, str]]) -> dict[str, Any]:
76
+ payload = {
77
+ "queries": [
78
+ {
79
+ "package": {
80
+ "name": dependency["name"],
81
+ "ecosystem": dependency["ecosystem"],
82
+ },
83
+ "version": dependency["version"],
84
+ }
85
+ for dependency in dependency_list
86
+ ]
87
+ }
88
+
89
+ request = urllib.request.Request(
90
+ OSV_BATCH_URL,
91
+ data=json.dumps(payload).encode("utf-8"),
92
+ headers={"Content-Type": "application/json"},
93
+ method="POST",
94
+ )
95
+
96
+ with urllib.request.urlopen(request) as response:
97
+ body = response.read().decode("utf-8")
98
+ return json.loads(body)
99
+
100
+
101
+ def _normalize_results(
102
+ dependency_list: list[dict[str, str]], osv_response: dict[str, Any]
103
+ ) -> dict[str, list[dict[str, Any]]]:
104
+ output: dict[str, list[dict[str, Any]]] = {}
105
+ response_results = osv_response.get("results", [])
106
+
107
+ for index, dependency in enumerate(dependency_list):
108
+ pkg_name = dependency.get("name", "")
109
+ query_result = response_results[index] if index < len(response_results) else {}
110
+ vulns = query_result.get("vulns", [])
111
+
112
+ normalized_vulns: list[dict[str, Any]] = []
113
+ for vuln in vulns:
114
+ affected_versions, fixed_version = _extract_affected(vuln)
115
+ normalized_vulns.append(
116
+ {
117
+ "id": vuln.get("id", ""),
118
+ "severity": _extract_severity(vuln),
119
+ "summary": vuln.get("summary", ""),
120
+ "affected_versions": affected_versions,
121
+ "fixed_version": fixed_version,
122
+ }
123
+ )
124
+
125
+ output[pkg_name] = normalized_vulns
126
+
127
+ return output
128
+
129
+
130
+ def _extract_severity(vuln: dict[str, Any]) -> str:
131
+ severities = vuln.get("severity") or []
132
+ if severities and isinstance(severities[0], dict):
133
+ score = severities[0].get("score")
134
+ if score:
135
+ return str(score)
136
+ return "UNKNOWN"
137
+
138
+
139
+ def _extract_affected(vuln: dict[str, Any]) -> tuple[list[str], str]:
140
+ affected_versions: list[str] = []
141
+ fixed_version = ""
142
+
143
+ for affected in vuln.get("affected", []) or []:
144
+ for version in affected.get("versions", []) or []:
145
+ affected_versions.append(str(version))
146
+
147
+ for version_range in affected.get("ranges", []) or []:
148
+ for event in version_range.get("events", []) or []:
149
+ introduced = event.get("introduced")
150
+ fixed = event.get("fixed")
151
+ if introduced:
152
+ affected_versions.append(str(introduced))
153
+ if fixed and not fixed_version:
154
+ fixed_version = str(fixed)
155
+
156
+ deduped_versions = list(dict.fromkeys(affected_versions))
157
+ return deduped_versions, fixed_version
158
+
159
+
160
+ def _load_cache(cache_path: Path) -> dict[str, Any] | None:
161
+ if not cache_path.exists():
162
+ return None
163
+ try:
164
+ return json.loads(cache_path.read_text(encoding="utf-8"))
165
+ except (OSError, json.JSONDecodeError):
166
+ return None
167
+
168
+
169
+ def _save_cache(cache_path: Path, payload: dict[str, Any]) -> None:
170
+ try:
171
+ cache_path.parent.mkdir(parents=True, exist_ok=True)
172
+ cache_path.write_text(json.dumps(payload, separators=(",", ":")), encoding="utf-8")
173
+ except OSError:
174
+ return
175
+
176
+
177
+ def _is_cache_fresh(scan_ts: str | None) -> bool:
178
+ if not scan_ts:
179
+ return False
180
+ try:
181
+ scanned_at = datetime.fromisoformat(scan_ts)
182
+ except ValueError:
183
+ return False
184
+
185
+ if scanned_at.tzinfo is None:
186
+ scanned_at = scanned_at.replace(tzinfo=timezone.utc)
187
+
188
+ return datetime.now(timezone.utc) - scanned_at < timedelta(hours=CACHE_TTL_HOURS)
@@ -0,0 +1,135 @@
1
+ """License compatibility checker for dependency health analysis.
2
+
3
+ Checks whether project dependencies have licenses compatible with
4
+ the project's own license using a static compatibility matrix.
5
+ No network access required.
6
+ """
7
+
8
+ from __future__ import annotations
9
+ import os
10
+ from typing import Any
11
+
12
+ # License categories (restrictiveness increases top to bottom)
13
+ _PERMISSIVE = frozenset({
14
+ "MIT", "BSD-2-Clause", "BSD-3-Clause", "ISC", "Unlicense", "CC0-1.0",
15
+ })
16
+
17
+ _WEAK_COPYLEFT = frozenset({
18
+ "Apache-2.0", "LGPL-2.1", "LGPL-3.0", "MPL-2.0",
19
+ })
20
+
21
+ _STRONG_COPYLEFT = frozenset({
22
+ "GPL-2.0", "GPL-3.0",
23
+ })
24
+
25
+ _NETWORK_COPYLEFT = frozenset({
26
+ "AGPL-3.0",
27
+ })
28
+
29
+ _ALL_KNOWN = _PERMISSIVE | _WEAK_COPYLEFT | _STRONG_COPYLEFT | _NETWORK_COPYLEFT
30
+
31
+
32
+ def _dep_health_enabled() -> bool:
33
+ env_val = os.environ.get("OMG_DEP_HEALTH_ENABLED", "").lower()
34
+ if env_val in ("1", "true", "yes"):
35
+ return True
36
+ if env_val in ("0", "false", "no"):
37
+ return False
38
+ try:
39
+ import sys
40
+ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
41
+ from hooks._common import get_feature_flag
42
+ return get_feature_flag("DEP_HEALTH", default=False)
43
+ except Exception:
44
+ return False
45
+
46
+
47
+ def _license_tier(license_id: str) -> int:
48
+ """Return restrictiveness tier: 0=permissive, 1=weak, 2=strong, 3=network."""
49
+ if license_id in _PERMISSIVE:
50
+ return 0
51
+ if license_id in _WEAK_COPYLEFT:
52
+ return 1
53
+ if license_id in _STRONG_COPYLEFT:
54
+ return 2
55
+ if license_id in _NETWORK_COPYLEFT:
56
+ return 3
57
+ return -1 # unknown
58
+
59
+
60
+ def check_license_compatibility(
61
+ project_license: str,
62
+ dependencies: list[dict[str, Any]],
63
+ ) -> dict[str, list[dict[str, str]]]:
64
+ """Check license compatibility between project and its dependencies.
65
+
66
+ Args:
67
+ project_license: SPDX identifier for the project license (e.g. "MIT").
68
+ dependencies: List of dicts with "name" and "license" keys.
69
+ License may be None or "UNKNOWN".
70
+
71
+ Returns:
72
+ Dict with three lists:
73
+ compatible: [{"pkg": str, "license": str}]
74
+ incompatible: [{"pkg": str, "license": str, "reason": str}]
75
+ unknown: [{"pkg": str}]
76
+ """
77
+ if not _dep_health_enabled():
78
+ return {"compatible": [], "incompatible": [], "unknown": []}
79
+
80
+ compatible: list[dict[str, str]] = []
81
+ incompatible: list[dict[str, str]] = []
82
+ unknown: list[dict[str, str]] = []
83
+
84
+ project_tier = _license_tier(project_license)
85
+
86
+ for dep in dependencies:
87
+ name = dep.get("name", "")
88
+ dep_license = dep.get("license")
89
+
90
+ # Unknown / missing license
91
+ if not dep_license or dep_license == "UNKNOWN":
92
+ unknown.append({"pkg": name})
93
+ continue
94
+
95
+ dep_tier = _license_tier(dep_license)
96
+
97
+ # Unrecognized license string
98
+ if dep_tier == -1:
99
+ unknown.append({"pkg": name})
100
+ continue
101
+
102
+ # AGPL dep in non-AGPL project is always incompatible
103
+ if dep_tier == 3 and project_tier != 3:
104
+ incompatible.append({
105
+ "pkg": name,
106
+ "license": dep_license,
107
+ "reason": (
108
+ f"AGPL-3.0 dependency in {project_license} project: "
109
+ f"network copyleft requires entire project to be AGPL-3.0"
110
+ ),
111
+ })
112
+ continue
113
+
114
+ # Strong copyleft dep in permissive/weak-copyleft project
115
+ if dep_tier == 2 and project_tier < 2:
116
+ incompatible.append({
117
+ "pkg": name,
118
+ "license": dep_license,
119
+ "reason": (
120
+ f"{dep_license} dependency in {project_license} project: "
121
+ f"copyleft contamination requires project to adopt {dep_license}"
122
+ ),
123
+ })
124
+ continue
125
+
126
+ # Everything else: permissive deps are always OK,
127
+ # weak copyleft in permissive is OK (dynamic linking),
128
+ # same-tier or higher-tier project can use lower-tier deps
129
+ compatible.append({"pkg": name, "license": dep_license})
130
+
131
+ return {
132
+ "compatible": compatible,
133
+ "incompatible": incompatible,
134
+ "unknown": unknown,
135
+ }