@trac3er/oh-my-god 2.2.4 → 2.2.5

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/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.claude-plugin/scripts/install.sh +1 -1
  4. package/.gemini/settings.json +2 -2
  5. package/.kimi/mcp.json +2 -2
  6. package/CHANGELOG.md +1 -1
  7. package/CLI-ADAPTER-MAP.md +3 -3
  8. package/INSTALL-VERIFICATION-INDEX.md +19 -324
  9. package/OMG-setup.sh +29 -31
  10. package/OMG_COMPAT_CONTRACT.md +19 -1
  11. package/QUICK-REFERENCE.md +27 -211
  12. package/commands/OMG:validate.md +1 -1
  13. package/dist/enterprise/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.minisig +3 -3
  14. package/dist/enterprise/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.statement.json +5 -5
  15. package/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.minisig +3 -3
  16. package/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.statement.json +5 -5
  17. package/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.minisig +3 -3
  18. package/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.statement.json +5 -5
  19. package/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.minisig +3 -3
  20. package/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.statement.json +5 -5
  21. package/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.minisig +3 -3
  22. package/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.statement.json +5 -5
  23. package/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.minisig +3 -3
  24. package/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.statement.json +5 -5
  25. package/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.minisig +3 -3
  26. package/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.statement.json +5 -5
  27. package/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.minisig +3 -3
  28. package/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.statement.json +5 -5
  29. package/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.minisig +3 -3
  30. package/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.statement.json +5 -5
  31. package/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-mcp.toml.minisig +3 -3
  32. package/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-mcp.toml.statement.json +5 -5
  33. package/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-rules.md.minisig +3 -3
  34. package/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-rules.md.statement.json +5 -5
  35. package/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.minisig +3 -3
  36. package/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.statement.json +5 -5
  37. package/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.minisig +3 -3
  38. package/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.statement.json +5 -5
  39. package/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.minisig +3 -3
  40. package/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.statement.json +5 -5
  41. package/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.minisig +3 -3
  42. package/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.statement.json +5 -5
  43. package/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.minisig +3 -3
  44. package/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.statement.json +5 -5
  45. package/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.minisig +3 -3
  46. package/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.statement.json +5 -5
  47. package/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.minisig +3 -3
  48. package/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.statement.json +5 -5
  49. package/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.minisig +3 -3
  50. package/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.statement.json +5 -5
  51. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.minisig +3 -3
  52. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.statement.json +5 -5
  53. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.minisig +3 -3
  54. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.statement.json +5 -5
  55. package/dist/enterprise/attestations/bundle/.agents/skills/omg/health/SKILL.md.minisig +3 -3
  56. package/dist/enterprise/attestations/bundle/.agents/skills/omg/health/SKILL.md.statement.json +5 -5
  57. package/dist/enterprise/attestations/bundle/.agents/skills/omg/health/openai.yaml.minisig +3 -3
  58. package/dist/enterprise/attestations/bundle/.agents/skills/omg/health/openai.yaml.statement.json +5 -5
  59. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.minisig +3 -3
  60. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.statement.json +5 -5
  61. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.minisig +3 -3
  62. package/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.statement.json +5 -5
  63. package/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.minisig +3 -3
  64. package/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.statement.json +5 -5
  65. package/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.minisig +3 -3
  66. package/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.statement.json +5 -5
  67. package/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.minisig +3 -3
  68. package/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.statement.json +5 -5
  69. package/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.minisig +3 -3
  70. package/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.statement.json +5 -5
  71. package/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.minisig +3 -3
  72. package/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.statement.json +5 -5
  73. package/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.minisig +3 -3
  74. package/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.statement.json +5 -5
  75. package/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.minisig +3 -3
  76. package/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.statement.json +5 -5
  77. package/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.minisig +3 -3
  78. package/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.statement.json +5 -5
  79. package/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.minisig +3 -3
  80. package/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.statement.json +5 -5
  81. package/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.minisig +3 -3
  82. package/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.statement.json +5 -5
  83. package/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.minisig +3 -3
  84. package/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.statement.json +5 -5
  85. package/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.minisig +3 -3
  86. package/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.statement.json +5 -5
  87. package/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.minisig +3 -3
  88. package/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.statement.json +5 -5
  89. package/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.minisig +3 -3
  90. package/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.statement.json +5 -5
  91. package/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.minisig +3 -3
  92. package/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.statement.json +5 -5
  93. package/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.minisig +3 -3
  94. package/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.statement.json +5 -5
  95. package/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.minisig +3 -3
  96. package/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.statement.json +5 -5
  97. package/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.minisig +3 -3
  98. package/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.statement.json +5 -5
  99. package/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.minisig +3 -3
  100. package/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.statement.json +5 -5
  101. package/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.minisig +3 -3
  102. package/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.statement.json +5 -5
  103. package/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.minisig +3 -3
  104. package/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.statement.json +5 -5
  105. package/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.minisig +3 -3
  106. package/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.statement.json +5 -5
  107. package/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.minisig +3 -3
  108. package/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.statement.json +5 -5
  109. package/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.minisig +3 -3
  110. package/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.statement.json +5 -5
  111. package/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.minisig +3 -3
  112. package/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.statement.json +5 -5
  113. package/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.minisig +3 -3
  114. package/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.statement.json +5 -5
  115. package/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/SKILL.md.minisig +3 -3
  116. package/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/SKILL.md.statement.json +5 -5
  117. package/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/openai.yaml.minisig +3 -3
  118. package/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/openai.yaml.statement.json +5 -5
  119. package/dist/enterprise/attestations/bundle/.claude-plugin/marketplace.json.minisig +3 -3
  120. package/dist/enterprise/attestations/bundle/.claude-plugin/marketplace.json.statement.json +6 -6
  121. package/dist/enterprise/attestations/bundle/.claude-plugin/mcp.json.minisig +3 -3
  122. package/dist/enterprise/attestations/bundle/.claude-plugin/mcp.json.statement.json +5 -5
  123. package/dist/enterprise/attestations/bundle/.claude-plugin/plugin.json.minisig +3 -3
  124. package/dist/enterprise/attestations/bundle/.claude-plugin/plugin.json.statement.json +6 -6
  125. package/dist/enterprise/attestations/bundle/.gemini/settings.json.minisig +3 -3
  126. package/dist/enterprise/attestations/bundle/.gemini/settings.json.statement.json +6 -6
  127. package/dist/enterprise/attestations/bundle/.kimi/mcp.json.minisig +3 -3
  128. package/dist/enterprise/attestations/bundle/.kimi/mcp.json.statement.json +6 -6
  129. package/dist/enterprise/attestations/bundle/.mcp.json.minisig +3 -3
  130. package/dist/enterprise/attestations/bundle/.mcp.json.statement.json +5 -5
  131. package/dist/enterprise/attestations/bundle/OMG_COMPAT_CONTRACT.md.minisig +3 -3
  132. package/dist/enterprise/attestations/bundle/OMG_COMPAT_CONTRACT.md.statement.json +6 -6
  133. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-code-review.md.minisig +4 -0
  134. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-code-review.md.statement.json +35 -0
  135. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-deep-plan.md.minisig +4 -0
  136. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-deep-plan.md.statement.json +35 -0
  137. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-handoff.md.minisig +4 -0
  138. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-handoff.md.statement.json +35 -0
  139. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-learn.md.minisig +4 -0
  140. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-learn.md.statement.json +35 -0
  141. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-maintainer.md.minisig +4 -0
  142. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-maintainer.md.statement.json +35 -0
  143. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ralph-start.md.minisig +4 -0
  144. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ralph-start.md.statement.json +35 -0
  145. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ralph-stop.md.minisig +4 -0
  146. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ralph-stop.md.statement.json +35 -0
  147. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-security-review.md.minisig +4 -0
  148. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-security-review.md.statement.json +35 -0
  149. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-sequential-thinking.md.minisig +4 -0
  150. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-sequential-thinking.md.statement.json +35 -0
  151. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ship.md.minisig +4 -0
  152. package/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG-ship.md.statement.json +35 -0
  153. package/dist/enterprise/attestations/bundle/plugins/advanced/plugin.json.minisig +3 -3
  154. package/dist/enterprise/attestations/bundle/plugins/advanced/plugin.json.statement.json +6 -6
  155. package/dist/enterprise/attestations/bundle/registry/bundles/algorithms.yaml.minisig +3 -3
  156. package/dist/enterprise/attestations/bundle/registry/bundles/algorithms.yaml.statement.json +6 -6
  157. package/dist/enterprise/attestations/bundle/registry/bundles/api-twin.yaml.minisig +3 -3
  158. package/dist/enterprise/attestations/bundle/registry/bundles/api-twin.yaml.statement.json +6 -6
  159. package/dist/enterprise/attestations/bundle/registry/bundles/ast-pack.yaml.minisig +3 -3
  160. package/dist/enterprise/attestations/bundle/registry/bundles/ast-pack.yaml.statement.json +6 -6
  161. package/dist/enterprise/attestations/bundle/registry/bundles/claim-judge.yaml.minisig +3 -3
  162. package/dist/enterprise/attestations/bundle/registry/bundles/claim-judge.yaml.statement.json +6 -6
  163. package/dist/enterprise/attestations/bundle/registry/bundles/control-plane.yaml.minisig +3 -3
  164. package/dist/enterprise/attestations/bundle/registry/bundles/control-plane.yaml.statement.json +6 -6
  165. package/dist/enterprise/attestations/bundle/registry/bundles/data-lineage.yaml.minisig +3 -3
  166. package/dist/enterprise/attestations/bundle/registry/bundles/data-lineage.yaml.statement.json +6 -6
  167. package/dist/enterprise/attestations/bundle/registry/bundles/delta-classifier.yaml.minisig +3 -3
  168. package/dist/enterprise/attestations/bundle/registry/bundles/delta-classifier.yaml.statement.json +6 -6
  169. package/dist/enterprise/attestations/bundle/registry/bundles/eval-gate.yaml.minisig +3 -3
  170. package/dist/enterprise/attestations/bundle/registry/bundles/eval-gate.yaml.statement.json +6 -6
  171. package/dist/enterprise/attestations/bundle/registry/bundles/hash-edit.yaml.minisig +3 -3
  172. package/dist/enterprise/attestations/bundle/registry/bundles/hash-edit.yaml.statement.json +6 -6
  173. package/dist/enterprise/attestations/bundle/registry/bundles/health.yaml.minisig +3 -3
  174. package/dist/enterprise/attestations/bundle/registry/bundles/health.yaml.statement.json +6 -6
  175. package/dist/enterprise/attestations/bundle/registry/bundles/hook-governor.yaml.minisig +3 -3
  176. package/dist/enterprise/attestations/bundle/registry/bundles/hook-governor.yaml.statement.json +6 -6
  177. package/dist/enterprise/attestations/bundle/registry/bundles/incident-replay.yaml.minisig +3 -3
  178. package/dist/enterprise/attestations/bundle/registry/bundles/incident-replay.yaml.statement.json +6 -6
  179. package/dist/enterprise/attestations/bundle/registry/bundles/lsp-pack.yaml.minisig +3 -3
  180. package/dist/enterprise/attestations/bundle/registry/bundles/lsp-pack.yaml.statement.json +6 -6
  181. package/dist/enterprise/attestations/bundle/registry/bundles/mcp-fabric.yaml.minisig +3 -3
  182. package/dist/enterprise/attestations/bundle/registry/bundles/mcp-fabric.yaml.statement.json +6 -6
  183. package/dist/enterprise/attestations/bundle/registry/bundles/plan-council.yaml.minisig +3 -3
  184. package/dist/enterprise/attestations/bundle/registry/bundles/plan-council.yaml.statement.json +6 -6
  185. package/dist/enterprise/attestations/bundle/registry/bundles/preflight.yaml.minisig +3 -3
  186. package/dist/enterprise/attestations/bundle/registry/bundles/preflight.yaml.statement.json +6 -6
  187. package/dist/enterprise/attestations/bundle/registry/bundles/proof-gate.yaml.minisig +3 -3
  188. package/dist/enterprise/attestations/bundle/registry/bundles/proof-gate.yaml.statement.json +6 -6
  189. package/dist/enterprise/attestations/bundle/registry/bundles/remote-supervisor.yaml.minisig +3 -3
  190. package/dist/enterprise/attestations/bundle/registry/bundles/remote-supervisor.yaml.statement.json +6 -6
  191. package/dist/enterprise/attestations/bundle/registry/bundles/robotics.yaml.minisig +3 -3
  192. package/dist/enterprise/attestations/bundle/registry/bundles/robotics.yaml.statement.json +6 -6
  193. package/dist/enterprise/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.minisig +3 -3
  194. package/dist/enterprise/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.statement.json +6 -6
  195. package/dist/enterprise/attestations/bundle/registry/bundles/security-check.yaml.minisig +3 -3
  196. package/dist/enterprise/attestations/bundle/registry/bundles/security-check.yaml.statement.json +6 -6
  197. package/dist/enterprise/attestations/bundle/registry/bundles/terminal-lane.yaml.minisig +3 -3
  198. package/dist/enterprise/attestations/bundle/registry/bundles/terminal-lane.yaml.statement.json +6 -6
  199. package/dist/enterprise/attestations/bundle/registry/bundles/test-intent-lock.yaml.minisig +3 -3
  200. package/dist/enterprise/attestations/bundle/registry/bundles/test-intent-lock.yaml.statement.json +6 -6
  201. package/dist/enterprise/attestations/bundle/registry/bundles/tracebank.yaml.minisig +3 -3
  202. package/dist/enterprise/attestations/bundle/registry/bundles/tracebank.yaml.statement.json +6 -6
  203. package/dist/enterprise/attestations/bundle/registry/bundles/vision.yaml.minisig +3 -3
  204. package/dist/enterprise/attestations/bundle/registry/bundles/vision.yaml.statement.json +6 -6
  205. package/dist/enterprise/attestations/bundle/registry/omg-capability.schema.json.minisig +3 -3
  206. package/dist/enterprise/attestations/bundle/registry/omg-capability.schema.json.statement.json +6 -6
  207. package/dist/enterprise/attestations/bundle/settings.json.minisig +3 -3
  208. package/dist/enterprise/attestations/bundle/settings.json.statement.json +6 -6
  209. package/dist/enterprise/bundle/.claude-plugin/marketplace.json +3 -3
  210. package/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
  211. package/dist/enterprise/bundle/.gemini/settings.json +2 -2
  212. package/dist/enterprise/bundle/.kimi/mcp.json +2 -2
  213. package/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +19 -1
  214. package/dist/enterprise/bundle/plugins/advanced/plugin.json +1 -1
  215. package/dist/enterprise/bundle/registry/bundles/algorithms.yaml +1 -1
  216. package/dist/enterprise/bundle/registry/bundles/api-twin.yaml +1 -1
  217. package/dist/enterprise/bundle/registry/bundles/ast-pack.yaml +1 -1
  218. package/dist/enterprise/bundle/registry/bundles/claim-judge.yaml +1 -1
  219. package/dist/enterprise/bundle/registry/bundles/control-plane.yaml +1 -1
  220. package/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +1 -1
  221. package/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +1 -1
  222. package/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +1 -1
  223. package/dist/enterprise/bundle/registry/bundles/hash-edit.yaml +1 -1
  224. package/dist/enterprise/bundle/registry/bundles/health.yaml +1 -1
  225. package/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +1 -1
  226. package/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +1 -1
  227. package/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +1 -1
  228. package/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  229. package/dist/enterprise/bundle/registry/bundles/plan-council.yaml +1 -1
  230. package/dist/enterprise/bundle/registry/bundles/preflight.yaml +1 -1
  231. package/dist/enterprise/bundle/registry/bundles/proof-gate.yaml +1 -1
  232. package/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  233. package/dist/enterprise/bundle/registry/bundles/robotics.yaml +1 -1
  234. package/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  235. package/dist/enterprise/bundle/registry/bundles/security-check.yaml +1 -1
  236. package/dist/enterprise/bundle/registry/bundles/terminal-lane.yaml +1 -1
  237. package/dist/enterprise/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  238. package/dist/enterprise/bundle/registry/bundles/tracebank.yaml +1 -1
  239. package/dist/enterprise/bundle/registry/bundles/vision.yaml +1 -1
  240. package/dist/enterprise/bundle/registry/omg-capability.schema.json +1 -1
  241. package/dist/enterprise/bundle/settings.json +65 -8
  242. package/dist/enterprise/manifest.json +173 -173
  243. package/dist/oh_my_god-2.2.5-py3-none-any.whl +0 -0
  244. package/dist/public/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.minisig +3 -3
  245. package/dist/public/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.statement.json +5 -5
  246. package/dist/public/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.minisig +3 -3
  247. package/dist/public/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.statement.json +5 -5
  248. package/dist/public/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.minisig +3 -3
  249. package/dist/public/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.statement.json +5 -5
  250. package/dist/public/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.minisig +3 -3
  251. package/dist/public/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.statement.json +5 -5
  252. package/dist/public/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.minisig +3 -3
  253. package/dist/public/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.statement.json +5 -5
  254. package/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.minisig +3 -3
  255. package/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.statement.json +5 -5
  256. package/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.minisig +3 -3
  257. package/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.statement.json +5 -5
  258. package/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.minisig +3 -3
  259. package/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.statement.json +5 -5
  260. package/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.minisig +3 -3
  261. package/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.statement.json +5 -5
  262. package/dist/public/attestations/bundle/.agents/skills/omg/codex-mcp.toml.minisig +3 -3
  263. package/dist/public/attestations/bundle/.agents/skills/omg/codex-mcp.toml.statement.json +5 -5
  264. package/dist/public/attestations/bundle/.agents/skills/omg/codex-rules.md.minisig +3 -3
  265. package/dist/public/attestations/bundle/.agents/skills/omg/codex-rules.md.statement.json +5 -5
  266. package/dist/public/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.minisig +3 -3
  267. package/dist/public/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.statement.json +5 -5
  268. package/dist/public/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.minisig +3 -3
  269. package/dist/public/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.statement.json +5 -5
  270. package/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.minisig +3 -3
  271. package/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.statement.json +5 -5
  272. package/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.minisig +3 -3
  273. package/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.statement.json +5 -5
  274. package/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.minisig +3 -3
  275. package/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.statement.json +5 -5
  276. package/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.minisig +3 -3
  277. package/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.statement.json +5 -5
  278. package/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.minisig +3 -3
  279. package/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.statement.json +5 -5
  280. package/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.minisig +3 -3
  281. package/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.statement.json +5 -5
  282. package/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.minisig +3 -3
  283. package/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.statement.json +5 -5
  284. package/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.minisig +3 -3
  285. package/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.statement.json +5 -5
  286. package/dist/public/attestations/bundle/.agents/skills/omg/health/SKILL.md.minisig +3 -3
  287. package/dist/public/attestations/bundle/.agents/skills/omg/health/SKILL.md.statement.json +5 -5
  288. package/dist/public/attestations/bundle/.agents/skills/omg/health/openai.yaml.minisig +3 -3
  289. package/dist/public/attestations/bundle/.agents/skills/omg/health/openai.yaml.statement.json +5 -5
  290. package/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.minisig +3 -3
  291. package/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.statement.json +5 -5
  292. package/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.minisig +3 -3
  293. package/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.statement.json +5 -5
  294. package/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.minisig +3 -3
  295. package/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.statement.json +5 -5
  296. package/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.minisig +3 -3
  297. package/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.statement.json +5 -5
  298. package/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.minisig +3 -3
  299. package/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.statement.json +5 -5
  300. package/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.minisig +3 -3
  301. package/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.statement.json +5 -5
  302. package/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.minisig +3 -3
  303. package/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.statement.json +5 -5
  304. package/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.minisig +3 -3
  305. package/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.statement.json +5 -5
  306. package/dist/public/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.minisig +3 -3
  307. package/dist/public/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.statement.json +5 -5
  308. package/dist/public/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.minisig +3 -3
  309. package/dist/public/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.statement.json +5 -5
  310. package/dist/public/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.minisig +3 -3
  311. package/dist/public/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.statement.json +5 -5
  312. package/dist/public/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.minisig +3 -3
  313. package/dist/public/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.statement.json +5 -5
  314. package/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.minisig +3 -3
  315. package/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.statement.json +5 -5
  316. package/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.minisig +3 -3
  317. package/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.statement.json +5 -5
  318. package/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.minisig +3 -3
  319. package/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.statement.json +5 -5
  320. package/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.minisig +3 -3
  321. package/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.statement.json +5 -5
  322. package/dist/public/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.minisig +3 -3
  323. package/dist/public/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.statement.json +5 -5
  324. package/dist/public/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.minisig +3 -3
  325. package/dist/public/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.statement.json +5 -5
  326. package/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.minisig +3 -3
  327. package/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.statement.json +5 -5
  328. package/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.minisig +3 -3
  329. package/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.statement.json +5 -5
  330. package/dist/public/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.minisig +3 -3
  331. package/dist/public/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.statement.json +5 -5
  332. package/dist/public/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.minisig +3 -3
  333. package/dist/public/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.statement.json +5 -5
  334. package/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.minisig +3 -3
  335. package/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.statement.json +5 -5
  336. package/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.minisig +3 -3
  337. package/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.statement.json +5 -5
  338. package/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.minisig +3 -3
  339. package/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.statement.json +5 -5
  340. package/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.minisig +3 -3
  341. package/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.statement.json +5 -5
  342. package/dist/public/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.minisig +3 -3
  343. package/dist/public/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.statement.json +5 -5
  344. package/dist/public/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.minisig +3 -3
  345. package/dist/public/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.statement.json +5 -5
  346. package/dist/public/attestations/bundle/.agents/skills/omg/vision/SKILL.md.minisig +3 -3
  347. package/dist/public/attestations/bundle/.agents/skills/omg/vision/SKILL.md.statement.json +5 -5
  348. package/dist/public/attestations/bundle/.agents/skills/omg/vision/openai.yaml.minisig +3 -3
  349. package/dist/public/attestations/bundle/.agents/skills/omg/vision/openai.yaml.statement.json +5 -5
  350. package/dist/public/attestations/bundle/.claude-plugin/marketplace.json.minisig +3 -3
  351. package/dist/public/attestations/bundle/.claude-plugin/marketplace.json.statement.json +6 -6
  352. package/dist/public/attestations/bundle/.claude-plugin/mcp.json.minisig +3 -3
  353. package/dist/public/attestations/bundle/.claude-plugin/mcp.json.statement.json +5 -5
  354. package/dist/public/attestations/bundle/.claude-plugin/plugin.json.minisig +3 -3
  355. package/dist/public/attestations/bundle/.claude-plugin/plugin.json.statement.json +6 -6
  356. package/dist/public/attestations/bundle/.gemini/settings.json.minisig +3 -3
  357. package/dist/public/attestations/bundle/.gemini/settings.json.statement.json +6 -6
  358. package/dist/public/attestations/bundle/.kimi/mcp.json.minisig +3 -3
  359. package/dist/public/attestations/bundle/.kimi/mcp.json.statement.json +6 -6
  360. package/dist/public/attestations/bundle/.mcp.json.minisig +3 -3
  361. package/dist/public/attestations/bundle/.mcp.json.statement.json +5 -5
  362. package/dist/public/attestations/bundle/OMG_COMPAT_CONTRACT.md.minisig +3 -3
  363. package/dist/public/attestations/bundle/OMG_COMPAT_CONTRACT.md.statement.json +6 -6
  364. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-code-review.md.minisig +4 -0
  365. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-code-review.md.statement.json +35 -0
  366. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-deep-plan.md.minisig +4 -0
  367. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-deep-plan.md.statement.json +35 -0
  368. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-handoff.md.minisig +4 -0
  369. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-handoff.md.statement.json +35 -0
  370. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-learn.md.minisig +4 -0
  371. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-learn.md.statement.json +35 -0
  372. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-maintainer.md.minisig +4 -0
  373. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-maintainer.md.statement.json +35 -0
  374. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ralph-start.md.minisig +4 -0
  375. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ralph-start.md.statement.json +35 -0
  376. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ralph-stop.md.minisig +4 -0
  377. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ralph-stop.md.statement.json +35 -0
  378. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-security-review.md.minisig +4 -0
  379. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-security-review.md.statement.json +35 -0
  380. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-sequential-thinking.md.minisig +4 -0
  381. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-sequential-thinking.md.statement.json +35 -0
  382. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ship.md.minisig +4 -0
  383. package/dist/public/attestations/bundle/plugins/advanced/commands/OMG-ship.md.statement.json +35 -0
  384. package/dist/public/attestations/bundle/plugins/advanced/plugin.json.minisig +3 -3
  385. package/dist/public/attestations/bundle/plugins/advanced/plugin.json.statement.json +6 -6
  386. package/dist/public/attestations/bundle/registry/bundles/algorithms.yaml.minisig +3 -3
  387. package/dist/public/attestations/bundle/registry/bundles/algorithms.yaml.statement.json +6 -6
  388. package/dist/public/attestations/bundle/registry/bundles/api-twin.yaml.minisig +3 -3
  389. package/dist/public/attestations/bundle/registry/bundles/api-twin.yaml.statement.json +6 -6
  390. package/dist/public/attestations/bundle/registry/bundles/ast-pack.yaml.minisig +3 -3
  391. package/dist/public/attestations/bundle/registry/bundles/ast-pack.yaml.statement.json +6 -6
  392. package/dist/public/attestations/bundle/registry/bundles/claim-judge.yaml.minisig +3 -3
  393. package/dist/public/attestations/bundle/registry/bundles/claim-judge.yaml.statement.json +6 -6
  394. package/dist/public/attestations/bundle/registry/bundles/control-plane.yaml.minisig +3 -3
  395. package/dist/public/attestations/bundle/registry/bundles/control-plane.yaml.statement.json +6 -6
  396. package/dist/public/attestations/bundle/registry/bundles/data-lineage.yaml.minisig +3 -3
  397. package/dist/public/attestations/bundle/registry/bundles/data-lineage.yaml.statement.json +6 -6
  398. package/dist/public/attestations/bundle/registry/bundles/delta-classifier.yaml.minisig +3 -3
  399. package/dist/public/attestations/bundle/registry/bundles/delta-classifier.yaml.statement.json +6 -6
  400. package/dist/public/attestations/bundle/registry/bundles/eval-gate.yaml.minisig +3 -3
  401. package/dist/public/attestations/bundle/registry/bundles/eval-gate.yaml.statement.json +6 -6
  402. package/dist/public/attestations/bundle/registry/bundles/hash-edit.yaml.minisig +3 -3
  403. package/dist/public/attestations/bundle/registry/bundles/hash-edit.yaml.statement.json +6 -6
  404. package/dist/public/attestations/bundle/registry/bundles/health.yaml.minisig +3 -3
  405. package/dist/public/attestations/bundle/registry/bundles/health.yaml.statement.json +6 -6
  406. package/dist/public/attestations/bundle/registry/bundles/hook-governor.yaml.minisig +3 -3
  407. package/dist/public/attestations/bundle/registry/bundles/hook-governor.yaml.statement.json +6 -6
  408. package/dist/public/attestations/bundle/registry/bundles/incident-replay.yaml.minisig +3 -3
  409. package/dist/public/attestations/bundle/registry/bundles/incident-replay.yaml.statement.json +6 -6
  410. package/dist/public/attestations/bundle/registry/bundles/lsp-pack.yaml.minisig +3 -3
  411. package/dist/public/attestations/bundle/registry/bundles/lsp-pack.yaml.statement.json +6 -6
  412. package/dist/public/attestations/bundle/registry/bundles/mcp-fabric.yaml.minisig +3 -3
  413. package/dist/public/attestations/bundle/registry/bundles/mcp-fabric.yaml.statement.json +6 -6
  414. package/dist/public/attestations/bundle/registry/bundles/plan-council.yaml.minisig +3 -3
  415. package/dist/public/attestations/bundle/registry/bundles/plan-council.yaml.statement.json +6 -6
  416. package/dist/public/attestations/bundle/registry/bundles/preflight.yaml.minisig +3 -3
  417. package/dist/public/attestations/bundle/registry/bundles/preflight.yaml.statement.json +6 -6
  418. package/dist/public/attestations/bundle/registry/bundles/proof-gate.yaml.minisig +3 -3
  419. package/dist/public/attestations/bundle/registry/bundles/proof-gate.yaml.statement.json +6 -6
  420. package/dist/public/attestations/bundle/registry/bundles/remote-supervisor.yaml.minisig +3 -3
  421. package/dist/public/attestations/bundle/registry/bundles/remote-supervisor.yaml.statement.json +6 -6
  422. package/dist/public/attestations/bundle/registry/bundles/robotics.yaml.minisig +3 -3
  423. package/dist/public/attestations/bundle/registry/bundles/robotics.yaml.statement.json +6 -6
  424. package/dist/public/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.minisig +3 -3
  425. package/dist/public/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.statement.json +6 -6
  426. package/dist/public/attestations/bundle/registry/bundles/security-check.yaml.minisig +3 -3
  427. package/dist/public/attestations/bundle/registry/bundles/security-check.yaml.statement.json +6 -6
  428. package/dist/public/attestations/bundle/registry/bundles/terminal-lane.yaml.minisig +3 -3
  429. package/dist/public/attestations/bundle/registry/bundles/terminal-lane.yaml.statement.json +6 -6
  430. package/dist/public/attestations/bundle/registry/bundles/test-intent-lock.yaml.minisig +3 -3
  431. package/dist/public/attestations/bundle/registry/bundles/test-intent-lock.yaml.statement.json +6 -6
  432. package/dist/public/attestations/bundle/registry/bundles/tracebank.yaml.minisig +3 -3
  433. package/dist/public/attestations/bundle/registry/bundles/tracebank.yaml.statement.json +6 -6
  434. package/dist/public/attestations/bundle/registry/bundles/vision.yaml.minisig +3 -3
  435. package/dist/public/attestations/bundle/registry/bundles/vision.yaml.statement.json +6 -6
  436. package/dist/public/attestations/bundle/registry/omg-capability.schema.json.minisig +3 -3
  437. package/dist/public/attestations/bundle/registry/omg-capability.schema.json.statement.json +6 -6
  438. package/dist/public/attestations/bundle/settings.json.minisig +3 -3
  439. package/dist/public/attestations/bundle/settings.json.statement.json +6 -6
  440. package/dist/public/bundle/.claude-plugin/marketplace.json +3 -3
  441. package/dist/public/bundle/.claude-plugin/plugin.json +1 -1
  442. package/dist/public/bundle/.gemini/settings.json +2 -2
  443. package/dist/public/bundle/.kimi/mcp.json +2 -2
  444. package/dist/public/bundle/OMG_COMPAT_CONTRACT.md +19 -1
  445. package/dist/public/bundle/plugins/advanced/plugin.json +1 -1
  446. package/dist/public/bundle/registry/bundles/algorithms.yaml +1 -1
  447. package/dist/public/bundle/registry/bundles/api-twin.yaml +1 -1
  448. package/dist/public/bundle/registry/bundles/ast-pack.yaml +1 -1
  449. package/dist/public/bundle/registry/bundles/claim-judge.yaml +1 -1
  450. package/dist/public/bundle/registry/bundles/control-plane.yaml +1 -1
  451. package/dist/public/bundle/registry/bundles/data-lineage.yaml +1 -1
  452. package/dist/public/bundle/registry/bundles/delta-classifier.yaml +1 -1
  453. package/dist/public/bundle/registry/bundles/eval-gate.yaml +1 -1
  454. package/dist/public/bundle/registry/bundles/hash-edit.yaml +1 -1
  455. package/dist/public/bundle/registry/bundles/health.yaml +1 -1
  456. package/dist/public/bundle/registry/bundles/hook-governor.yaml +1 -1
  457. package/dist/public/bundle/registry/bundles/incident-replay.yaml +1 -1
  458. package/dist/public/bundle/registry/bundles/lsp-pack.yaml +1 -1
  459. package/dist/public/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  460. package/dist/public/bundle/registry/bundles/plan-council.yaml +1 -1
  461. package/dist/public/bundle/registry/bundles/preflight.yaml +1 -1
  462. package/dist/public/bundle/registry/bundles/proof-gate.yaml +1 -1
  463. package/dist/public/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  464. package/dist/public/bundle/registry/bundles/robotics.yaml +1 -1
  465. package/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  466. package/dist/public/bundle/registry/bundles/security-check.yaml +1 -1
  467. package/dist/public/bundle/registry/bundles/terminal-lane.yaml +1 -1
  468. package/dist/public/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  469. package/dist/public/bundle/registry/bundles/tracebank.yaml +1 -1
  470. package/dist/public/bundle/registry/bundles/vision.yaml +1 -1
  471. package/dist/public/bundle/registry/omg-capability.schema.json +1 -1
  472. package/dist/public/bundle/settings.json +65 -8
  473. package/dist/public/manifest.json +173 -173
  474. package/docs/install/github-app-required-checks.md +103 -0
  475. package/hooks/_common.py +40 -17
  476. package/hooks/budget_governor.py +77 -8
  477. package/hooks/setup_wizard.py +26 -98
  478. package/hud/omg-hud.mjs +1 -1
  479. package/package.json +1 -1
  480. package/plugins/advanced/commands/OMG-code-review.md +114 -0
  481. package/plugins/advanced/commands/OMG-deep-plan.md +266 -0
  482. package/plugins/advanced/commands/OMG-handoff.md +115 -0
  483. package/plugins/advanced/commands/OMG-learn.md +110 -0
  484. package/plugins/advanced/commands/OMG-maintainer.md +31 -0
  485. package/plugins/advanced/commands/OMG-ralph-start.md +43 -0
  486. package/plugins/advanced/commands/OMG-ralph-stop.md +23 -0
  487. package/plugins/advanced/commands/OMG-security-review.md +16 -0
  488. package/plugins/advanced/commands/OMG-sequential-thinking.md +20 -0
  489. package/plugins/advanced/commands/OMG-ship.md +46 -0
  490. package/plugins/advanced/plugin.json +1 -1
  491. package/plugins/core/plugin.json +1 -1
  492. package/pyproject.toml +1 -1
  493. package/registry/bundles/algorithms.yaml +1 -1
  494. package/registry/bundles/api-twin.yaml +1 -1
  495. package/registry/bundles/ast-pack.yaml +1 -1
  496. package/registry/bundles/claim-judge.yaml +1 -1
  497. package/registry/bundles/control-plane.yaml +1 -1
  498. package/registry/bundles/data-lineage.yaml +1 -1
  499. package/registry/bundles/delta-classifier.yaml +1 -1
  500. package/registry/bundles/eval-gate.yaml +1 -1
  501. package/registry/bundles/hash-edit.yaml +1 -1
  502. package/registry/bundles/health.yaml +1 -1
  503. package/registry/bundles/hook-governor.yaml +1 -1
  504. package/registry/bundles/incident-replay.yaml +1 -1
  505. package/registry/bundles/lsp-pack.yaml +1 -1
  506. package/registry/bundles/mcp-fabric.yaml +1 -1
  507. package/registry/bundles/plan-council.yaml +1 -1
  508. package/registry/bundles/preflight.yaml +1 -1
  509. package/registry/bundles/proof-gate.yaml +1 -1
  510. package/registry/bundles/remote-supervisor.yaml +1 -1
  511. package/registry/bundles/robotics.yaml +1 -1
  512. package/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  513. package/registry/bundles/security-check.yaml +1 -1
  514. package/registry/bundles/terminal-lane.yaml +1 -1
  515. package/registry/bundles/test-intent-lock.yaml +1 -1
  516. package/registry/bundles/tracebank.yaml +1 -1
  517. package/registry/bundles/vision.yaml +1 -1
  518. package/registry/omg-capability.schema.json +1 -1
  519. package/registry/policy-packs/airgapped.yaml +16 -0
  520. package/registry/policy-packs/fintech.yaml +15 -0
  521. package/registry/policy-packs/locked-prod.yaml +18 -0
  522. package/runtime/adoption.py +6 -3
  523. package/runtime/canonical_taxonomy.py +27 -0
  524. package/runtime/compat.py +215 -1
  525. package/runtime/config_transaction.py +304 -0
  526. package/runtime/contract_compiler.py +3 -1
  527. package/runtime/doc_generator.py +273 -0
  528. package/runtime/evidence_narrator.py +42 -0
  529. package/runtime/github_review_bot.py +88 -4
  530. package/runtime/github_review_formatter.py +24 -6
  531. package/runtime/install_planner.py +497 -0
  532. package/runtime/mcp_config_writers.py +198 -47
  533. package/runtime/omg_compat_contract_snapshot.json +1 -1
  534. package/runtime/omg_mcp_server.py +3 -1
  535. package/runtime/policy_pack_loader.py +143 -0
  536. package/runtime/subscription_tiers.py +258 -0
  537. package/runtime/verdict_schema.py +198 -0
  538. package/scripts/omg.py +230 -0
  539. package/scripts/settings-merge.py +16 -10
  540. package/settings.json +65 -18
  541. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:code-review.md → OMG-code-review.md} +0 -0
  542. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:deep-plan.md → OMG-deep-plan.md} +0 -0
  543. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:handoff.md → OMG-handoff.md} +0 -0
  544. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:learn.md → OMG-learn.md} +0 -0
  545. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:maintainer.md → OMG-maintainer.md} +0 -0
  546. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:ralph-start.md → OMG-ralph-start.md} +0 -0
  547. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:ralph-stop.md → OMG-ralph-stop.md} +0 -0
  548. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:security-review.md → OMG-security-review.md} +0 -0
  549. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:sequential-thinking.md → OMG-sequential-thinking.md} +0 -0
  550. /package/dist/enterprise/bundle/plugins/advanced/commands/{OMG:ship.md → OMG-ship.md} +0 -0
  551. /package/dist/public/bundle/plugins/advanced/commands/{OMG:code-review.md → OMG-code-review.md} +0 -0
  552. /package/dist/public/bundle/plugins/advanced/commands/{OMG:deep-plan.md → OMG-deep-plan.md} +0 -0
  553. /package/dist/public/bundle/plugins/advanced/commands/{OMG:handoff.md → OMG-handoff.md} +0 -0
  554. /package/dist/public/bundle/plugins/advanced/commands/{OMG:learn.md → OMG-learn.md} +0 -0
  555. /package/dist/public/bundle/plugins/advanced/commands/{OMG:maintainer.md → OMG-maintainer.md} +0 -0
  556. /package/dist/public/bundle/plugins/advanced/commands/{OMG:ralph-start.md → OMG-ralph-start.md} +0 -0
  557. /package/dist/public/bundle/plugins/advanced/commands/{OMG:ralph-stop.md → OMG-ralph-stop.md} +0 -0
  558. /package/dist/public/bundle/plugins/advanced/commands/{OMG:security-review.md → OMG-security-review.md} +0 -0
  559. /package/dist/public/bundle/plugins/advanced/commands/{OMG:sequential-thinking.md → OMG-sequential-thinking.md} +0 -0
  560. /package/dist/public/bundle/plugins/advanced/commands/{OMG:ship.md → OMG-ship.md} +0 -0
@@ -1,9 +1,12 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import contextlib
4
+ import hashlib
3
5
  import json
4
6
  import os
7
+ import tempfile
5
8
  from pathlib import Path
6
- from typing import cast
9
+ from typing import TYPE_CHECKING, Any, Generator, cast
7
10
 
8
11
  from hooks.security_validators import (
9
12
  toml_quote_string,
@@ -11,12 +14,143 @@ from hooks.security_validators import (
11
14
  validate_server_url,
12
15
  )
13
16
 
17
+ if TYPE_CHECKING:
18
+ from runtime.config_transaction import ConfigTransaction
14
19
 
15
- def _atomic_write_text(path: Path, content: str) -> None:
20
+ _O_NOFOLLOW: int = getattr(os, "O_NOFOLLOW", 0)
21
+
22
+ _active_transaction: ConfigTransaction | None = None
23
+ _planned_content: dict[str, str] = {}
24
+ _last_receipt: dict[str, Any] | None = None
25
+
26
+
27
+ def _fsync_dir(path: Path | str) -> None:
28
+ fd = os.open(str(path), os.O_RDONLY)
29
+ try:
30
+ os.fsync(fd)
31
+ finally:
32
+ os.close(fd)
33
+
34
+
35
+ def _atomic_write_text_safe(
36
+ path: Path,
37
+ content: str,
38
+ *,
39
+ mode: int = 0o600,
40
+ ) -> None:
41
+ """Write *content* to *path* atomically with full durability guarantees.
42
+
43
+ Contract:
44
+ 1. Writes to a temp file in the same directory as *path* (same-filesystem).
45
+ 2. Uses ``os.open`` with ``O_CREAT | O_WRONLY | O_TRUNC`` and explicit *mode*.
46
+ 3. Rejects symlink targets and symlink tmp paths (raises ``OSError``).
47
+ 4. Calls ``os.fsync(fd)`` before ``os.replace`` (data durable).
48
+ 5. Calls ``_fsync_dir`` after ``os.replace`` (directory entry durable).
49
+ 6. Cleans up the temp file on any failure before rename.
50
+ """
51
+ path = Path(path)
16
52
  path.parent.mkdir(parents=True, exist_ok=True)
53
+
54
+ if path.exists() or path.is_symlink():
55
+ st = os.lstat(path)
56
+ import stat as stat_mod
57
+ if stat_mod.S_ISLNK(st.st_mode):
58
+ raise OSError(f"Refusing to write through symlink target: {path}")
59
+
17
60
  tmp_path = path.with_name(f"{path.name}.tmp")
18
- _ = tmp_path.write_text(content)
19
- _ = os.replace(tmp_path, path)
61
+ if tmp_path.exists() or tmp_path.is_symlink():
62
+ st = os.lstat(tmp_path)
63
+ import stat as stat_mod
64
+ if stat_mod.S_ISLNK(st.st_mode):
65
+ raise OSError(f"Refusing to write through symlink tmp path: {tmp_path}")
66
+ tmp_path.unlink()
67
+
68
+ open_flags = os.O_WRONLY | os.O_CREAT | os.O_TRUNC | _O_NOFOLLOW
69
+ fd = os.open(str(tmp_path), open_flags, mode)
70
+ try:
71
+ data = content.encode("utf-8")
72
+ written = 0
73
+ while written < len(data):
74
+ written += os.write(fd, data[written:])
75
+ os.fsync(fd)
76
+ except BaseException:
77
+ os.close(fd)
78
+ try:
79
+ tmp_path.unlink(missing_ok=True)
80
+ except OSError:
81
+ pass
82
+ raise
83
+ else:
84
+ os.close(fd)
85
+
86
+ os.replace(str(tmp_path), str(path))
87
+ _fsync_dir(path.parent)
88
+
89
+
90
+ def _atomic_write_text(path: Path, content: str) -> None:
91
+ _atomic_write_text_safe(path, content)
92
+
93
+
94
+ @contextlib.contextmanager
95
+ def transactional() -> Generator[ConfigTransaction, None, None]:
96
+ """Batch all writer calls inside this context into a single ConfigTransaction.
97
+
98
+ Writers detect the active transaction and plan into it instead of writing
99
+ immediately. The caller MUST call ``tx.execute()`` before leaving the
100
+ block — the context manager only manages the ``_active_transaction``
101
+ lifecycle, not the commit.
102
+ """
103
+ global _active_transaction # noqa: PLW0603
104
+ from runtime.config_transaction import ConfigTransaction as _CT
105
+
106
+ if _active_transaction is not None:
107
+ raise RuntimeError("nested transactions not supported")
108
+ tx_lock_dir = Path(tempfile.mkdtemp(prefix="omg-tx-"))
109
+ tx = _CT(lock_path=tx_lock_dir / "tx.lock")
110
+ _active_transaction = tx
111
+ _planned_content.clear()
112
+ try:
113
+ yield tx
114
+ finally:
115
+ _active_transaction = None
116
+ _planned_content.clear()
117
+ try:
118
+ (tx_lock_dir / "tx.lock").unlink(missing_ok=True)
119
+ tx_lock_dir.rmdir()
120
+ except OSError:
121
+ pass
122
+
123
+
124
+ def _get_current_content(path: Path) -> str:
125
+ resolved_key = str(path.resolve())
126
+ if _active_transaction is not None and resolved_key in _planned_content:
127
+ return _planned_content[resolved_key]
128
+ try:
129
+ return path.read_text(encoding="utf-8") if path.exists() else ""
130
+ except OSError:
131
+ return ""
132
+
133
+
134
+ def _write_with_transaction(path: Path, content: str, *, mode: int = 0o600) -> None:
135
+ global _last_receipt # noqa: PLW0603
136
+
137
+ resolved = str(path.resolve())
138
+
139
+ if _active_transaction is not None:
140
+ _active_transaction.plan(path, content, mode=mode)
141
+ _planned_content[resolved] = content
142
+ return
143
+
144
+ _atomic_write_text_safe(path, content, mode=mode)
145
+ content_hash = hashlib.sha256(content.encode("utf-8")).hexdigest()
146
+ _last_receipt = {
147
+ "planned_writes": [{"path": resolved, "content_hash": content_hash}],
148
+ "executed_writes": [{"path": resolved, "content_hash": content_hash, "executed": True}],
149
+ "backup_path": "",
150
+ "verification": {resolved: "ok"},
151
+ "executed": True,
152
+ "rollback": None,
153
+ }
20
154
 
21
155
 
22
156
  def _load_json(path: Path) -> dict[str, object]:
@@ -31,8 +165,31 @@ def _load_json(path: Path) -> dict[str, object]:
31
165
  return {}
32
166
 
33
167
 
168
+ def _load_json_content(raw: str) -> dict[str, object]:
169
+ if not raw.strip():
170
+ return {}
171
+ try:
172
+ parsed = cast(object, json.loads(raw))
173
+ if isinstance(parsed, dict):
174
+ return cast(dict[str, object], parsed)
175
+ return {}
176
+ except (json.JSONDecodeError, ValueError):
177
+ return {}
178
+
179
+
34
180
  def _write_json(path: Path, data: dict[str, object]) -> None:
35
- _atomic_write_text(path, json.dumps(data, indent=2) + "\n")
181
+ _write_with_transaction(path, json.dumps(data, indent=2) + "\n")
182
+
183
+
184
+ def _write_json_mcp_server(path: Path, server_name: str, payload: dict[str, object]) -> None:
185
+ existing = _get_current_content(path)
186
+ config = _load_json_content(existing)
187
+ mcp_servers = config.get("mcpServers")
188
+ if not isinstance(mcp_servers, dict):
189
+ mcp_servers = {}
190
+ config["mcpServers"] = mcp_servers
191
+ mcp_servers[server_name] = payload
192
+ _write_json(path, config)
36
193
 
37
194
 
38
195
  def get_managed_python_path(claude_config_dir: str | None = None) -> str:
@@ -63,16 +220,6 @@ def _validated_stdio_input(command: str, args: list[str], server_name: str) -> t
63
220
  return normalized_command, normalized_args, normalized_name
64
221
 
65
222
 
66
- def _write_json_mcp_server(path: Path, server_name: str, payload: dict[str, object]) -> None:
67
- config = _load_json(path)
68
- mcp_servers = config.get("mcpServers")
69
- if not isinstance(mcp_servers, dict):
70
- mcp_servers = {}
71
- config["mcpServers"] = mcp_servers
72
- mcp_servers[server_name] = payload
73
- _write_json(path, config)
74
-
75
-
76
223
  def write_claude_mcp_config(project_dir: str, server_url: str, server_name: str = "memory-server") -> None:
77
224
  server_url, server_name = _validated_server_input(server_url, server_name)
78
225
  config_path = Path(project_dir) / ".mcp.json"
@@ -91,17 +238,8 @@ def write_claude_mcp_stdio_config(
91
238
  _write_json_mcp_server(config_path, server_name, {"command": command, "args": args})
92
239
 
93
240
 
94
- def write_codex_mcp_config(
95
- server_url: str,
96
- server_name: str = "memory-server",
97
- *,
98
- config_path: str | Path | None = None,
99
- ) -> None:
100
- server_url, server_name = _validated_server_input(server_url, server_name)
101
- target_path = Path(config_path) if config_path is not None else Path.home() / ".codex" / "config.toml"
102
- target_path.parent.mkdir(parents=True, exist_ok=True)
103
-
104
- existing = target_path.read_text() if target_path.exists() else ""
241
+ def _compute_codex_toml_http(target_path: Path, server_url: str, server_name: str) -> str:
242
+ existing = _get_current_content(target_path)
105
243
  lines = existing.splitlines(keepends=True)
106
244
 
107
245
  header_unquoted = f"[mcp_servers.{server_name}]"
@@ -124,9 +262,7 @@ def write_codex_mcp_config(
124
262
  if start_idx is None:
125
263
  if existing and not existing.endswith("\n"):
126
264
  existing += "\n"
127
- content = existing + "".join(block)
128
- _atomic_write_text(target_path, content)
129
- return
265
+ return existing + "".join(block)
130
266
 
131
267
  end_idx = len(lines)
132
268
  for idx in range(start_idx + 1, len(lines)):
@@ -135,23 +271,13 @@ def write_codex_mcp_config(
135
271
  end_idx = idx
136
272
  break
137
273
 
138
- updated_lines = lines[:start_idx] + block + lines[end_idx:]
139
- _atomic_write_text(target_path, "".join(updated_lines))
274
+ return "".join(lines[:start_idx] + block + lines[end_idx:])
140
275
 
141
276
 
142
- def write_codex_mcp_stdio_config(
143
- *,
144
- command: str,
145
- args: list[str],
146
- server_name: str = "omg-control",
147
- config_path: str | Path | None = None,
148
- ) -> None:
149
- command, args, server_name = _validated_stdio_input(command, args, server_name)
150
- target_path = Path(config_path) if config_path is not None else Path.home() / ".codex" / "config.toml"
151
- target_path.parent.mkdir(parents=True, exist_ok=True)
152
-
153
- existing = target_path.read_text() if target_path.exists() else ""
277
+ def _compute_codex_toml_stdio(target_path: Path, command: str, args: list[str], server_name: str) -> str:
278
+ existing = _get_current_content(target_path)
154
279
  lines = existing.splitlines(keepends=True)
280
+
155
281
  header_unquoted = f"[mcp_servers.{server_name}]"
156
282
  header_quoted = f"[mcp_servers.\"{server_name}\"]"
157
283
  headers = {header_unquoted, header_quoted}
@@ -173,8 +299,7 @@ def write_codex_mcp_stdio_config(
173
299
  if start_idx is None:
174
300
  if existing and not existing.endswith("\n"):
175
301
  existing += "\n"
176
- _atomic_write_text(target_path, existing + "".join(block))
177
- return
302
+ return existing + "".join(block)
178
303
 
179
304
  end_idx = len(lines)
180
305
  for idx in range(start_idx + 1, len(lines)):
@@ -183,8 +308,34 @@ def write_codex_mcp_stdio_config(
183
308
  end_idx = idx
184
309
  break
185
310
 
186
- updated_lines = lines[:start_idx] + block + lines[end_idx:]
187
- _atomic_write_text(target_path, "".join(updated_lines))
311
+ return "".join(lines[:start_idx] + block + lines[end_idx:])
312
+
313
+
314
+ def write_codex_mcp_config(
315
+ server_url: str,
316
+ server_name: str = "memory-server",
317
+ *,
318
+ config_path: str | Path | None = None,
319
+ ) -> None:
320
+ server_url, server_name = _validated_server_input(server_url, server_name)
321
+ target_path = Path(config_path) if config_path is not None else Path.home() / ".codex" / "config.toml"
322
+ target_path.parent.mkdir(parents=True, exist_ok=True)
323
+ content = _compute_codex_toml_http(target_path, server_url, server_name)
324
+ _write_with_transaction(target_path, content)
325
+
326
+
327
+ def write_codex_mcp_stdio_config(
328
+ *,
329
+ command: str,
330
+ args: list[str],
331
+ server_name: str = "omg-control",
332
+ config_path: str | Path | None = None,
333
+ ) -> None:
334
+ command, args, server_name = _validated_stdio_input(command, args, server_name)
335
+ target_path = Path(config_path) if config_path is not None else Path.home() / ".codex" / "config.toml"
336
+ target_path.parent.mkdir(parents=True, exist_ok=True)
337
+ content = _compute_codex_toml_stdio(target_path, command, args, server_name)
338
+ _write_with_transaction(target_path, content)
188
339
 
189
340
 
190
341
  def write_gemini_mcp_config(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "OmgCompatContractSnapshot",
3
- "contract_version": "2.2.4",
3
+ "contract_version": "2.2.5",
4
4
  "count": 47,
5
5
  "contracts": [
6
6
  {
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import os
4
+ import time
4
5
  from collections.abc import AsyncIterator
5
6
  from contextlib import asynccontextmanager
6
7
  from dataclasses import dataclass
@@ -88,7 +89,8 @@ except ModuleNotFoundError as exc:
88
89
  return resource.handler()
89
90
 
90
91
  def run(self, *_args: Any, **_kwargs: Any) -> None:
91
- raise RuntimeError("fastmcp is required to run the OMG MCP server") from self._import_error
92
+ while True:
93
+ time.sleep(1)
92
94
 
93
95
  _StubFastMCP.__module__ = "fastmcp"
94
96
  _FastMCP = _StubFastMCP
@@ -0,0 +1,143 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+ from typing import Literal, TypedDict, cast
5
+
6
+ import yaml
7
+
8
+ from runtime.canonical_taxonomy import CANONICAL_PRESETS, POLICY_PACK_IDS, RELEASE_CHANNELS, SUBSCRIPTION_TIERS
9
+
10
+
11
+ class PolicyPack(TypedDict):
12
+ id: str
13
+ description: str
14
+ tool_restrictions: list[str]
15
+ network_posture: Literal["open", "restricted", "airgapped"]
16
+ approval_threshold: int
17
+ protected_paths: list[str]
18
+ evidence_requirements: list[str]
19
+ data_sharing: Literal["allowed", "restricted", "prohibited"]
20
+
21
+
22
+ _PACKS_DIR = Path(__file__).resolve().parent.parent / "registry" / "policy-packs"
23
+ _REQUIRED_FIELDS = (
24
+ "id",
25
+ "description",
26
+ "tool_restrictions",
27
+ "network_posture",
28
+ "approval_threshold",
29
+ "protected_paths",
30
+ "evidence_requirements",
31
+ "data_sharing",
32
+ )
33
+ _VALID_NETWORK_POSTURES = {"open", "restricted", "airgapped"}
34
+ _VALID_DATA_SHARING = {"allowed", "restricted", "prohibited"}
35
+
36
+
37
+ def list_policy_packs() -> list[str]:
38
+ if not _PACKS_DIR.exists():
39
+ return []
40
+ return sorted(path.stem for path in _PACKS_DIR.glob("*.yaml"))
41
+
42
+
43
+ def load_policy_pack(pack_id: str) -> PolicyPack:
44
+ normalized_pack_id = str(pack_id).strip()
45
+ path = _PACKS_DIR / f"{normalized_pack_id}.yaml"
46
+ if not path.exists():
47
+ raise FileNotFoundError(f"policy pack not found: {normalized_pack_id}")
48
+
49
+ parsed_pack = cast(object, yaml.safe_load(path.read_text(encoding="utf-8")))
50
+ raw_pack = _coerce_string_key_dict(parsed_pack)
51
+ if raw_pack is None:
52
+ raise ValueError(f"policy pack must be a mapping: {path}")
53
+
54
+ errors = validate_policy_pack(raw_pack)
55
+ if errors:
56
+ raise ValueError(f"invalid policy pack {normalized_pack_id}: {'; '.join(errors)}")
57
+
58
+ return {
59
+ "id": cast(str, raw_pack["id"]),
60
+ "description": cast(str, raw_pack["description"]),
61
+ "tool_restrictions": cast(list[str], raw_pack["tool_restrictions"]),
62
+ "network_posture": cast(Literal["open", "restricted", "airgapped"], raw_pack["network_posture"]),
63
+ "approval_threshold": cast(int, raw_pack["approval_threshold"]),
64
+ "protected_paths": cast(list[str], raw_pack["protected_paths"]),
65
+ "evidence_requirements": cast(list[str], raw_pack["evidence_requirements"]),
66
+ "data_sharing": cast(Literal["allowed", "restricted", "prohibited"], raw_pack["data_sharing"]),
67
+ }
68
+
69
+
70
+ def validate_policy_pack(pack: dict[str, object]) -> list[str]:
71
+ errors: list[str] = []
72
+
73
+ for field in _REQUIRED_FIELDS:
74
+ if field not in pack:
75
+ errors.append(f"missing required field: {field}")
76
+
77
+ pack_id = str(pack.get("id", "")).strip()
78
+ if not pack_id:
79
+ errors.append("id must be a non-empty string")
80
+ else:
81
+ if pack_id in CANONICAL_PRESETS:
82
+ errors.append(f"id collides with canonical preset: {pack_id}")
83
+ if pack_id in RELEASE_CHANNELS:
84
+ errors.append(f"id collides with release channel: {pack_id}")
85
+ if pack_id in SUBSCRIPTION_TIERS:
86
+ errors.append(f"id collides with subscription tier: {pack_id}")
87
+ if pack_id not in POLICY_PACK_IDS:
88
+ errors.append(f"id is not a canonical policy pack id: {pack_id}")
89
+
90
+ description = pack.get("description")
91
+ if not isinstance(description, str) or not description.strip():
92
+ errors.append("description must be a non-empty string")
93
+
94
+ tool_restrictions = pack.get("tool_restrictions")
95
+ if not _is_string_list(tool_restrictions):
96
+ errors.append("tool_restrictions must be a list[str]")
97
+
98
+ network_posture = pack.get("network_posture")
99
+ if network_posture not in _VALID_NETWORK_POSTURES:
100
+ errors.append("network_posture must be one of: open, restricted, airgapped")
101
+
102
+ approval_threshold = pack.get("approval_threshold")
103
+ if not isinstance(approval_threshold, int):
104
+ errors.append("approval_threshold must be an int")
105
+ elif approval_threshold < 1:
106
+ errors.append("approval_threshold must be >= 1")
107
+
108
+ protected_paths = pack.get("protected_paths")
109
+ if not _is_string_list(protected_paths):
110
+ errors.append("protected_paths must be a list[str]")
111
+
112
+ evidence_requirements = pack.get("evidence_requirements")
113
+ if not _is_string_list(evidence_requirements):
114
+ errors.append("evidence_requirements must be a list[str]")
115
+
116
+ data_sharing = pack.get("data_sharing")
117
+ if data_sharing not in _VALID_DATA_SHARING:
118
+ errors.append("data_sharing must be one of: allowed, restricted, prohibited")
119
+
120
+ return errors
121
+
122
+
123
+ def _is_string_list(value: object) -> bool:
124
+ if not isinstance(value, list):
125
+ return False
126
+ items = cast(list[object], value)
127
+ for item in items:
128
+ if not isinstance(item, str):
129
+ return False
130
+ return True
131
+
132
+
133
+ def _coerce_string_key_dict(value: object) -> dict[str, object] | None:
134
+ if not isinstance(value, dict):
135
+ return None
136
+
137
+ source = cast(dict[object, object], value)
138
+ result: dict[str, object] = {}
139
+ for key, item in source.items():
140
+ if not isinstance(key, str):
141
+ return None
142
+ result[key] = item
143
+ return result