@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
@@ -0,0 +1,497 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+ import hashlib
5
+ import json
6
+ from pathlib import Path
7
+ from typing import Any, Literal, TypedDict, cast
8
+
9
+ from runtime.adoption import PRESET_LEVEL
10
+ from runtime.config_transaction import ConfigTransactionError
11
+ from runtime.mcp_config_writers import transactional
12
+
13
+
14
+ InstallActionKind = Literal["write_mcp_config", "write_settings", "write_cli_config"]
15
+
16
+ _MCP_ID_ALIASES: dict[str, str] = {
17
+ "file-system": "filesystem",
18
+ "file_system": "filesystem",
19
+ "grep": "grep-app",
20
+ "grep_app": "grep-app",
21
+ }
22
+
23
+ _DEFAULT_MCP_SPECS: dict[str, dict[str, Any]] = {
24
+ "context7": {"command": "npx", "args": ["@upstash/context7-mcp@2.1.3"]},
25
+ "filesystem": {
26
+ "command": "npx",
27
+ "args": ["@modelcontextprotocol/server-filesystem@2026.1.14", "."],
28
+ },
29
+ "websearch": {"command": "npx", "args": ["@zhafron/mcp-web-search@1.2.2"]},
30
+ "chrome-devtools": {"command": "npx", "args": ["chrome-devtools-mcp@0.19.0"]},
31
+ "omg-memory": {"type": "http", "url": "http://127.0.0.1:8765/mcp"},
32
+ "omg-control": {"command": "python3", "args": ["-m", "runtime.omg_mcp_server"]},
33
+ "grep-app": {"command": "npx", "args": ["grep-app-mcp"]},
34
+ }
35
+
36
+ _MCP_MIN_PRESET: dict[str, str] = {
37
+ "filesystem": "safe",
38
+ "omg-control": "safe",
39
+ "context7": "balanced",
40
+ "websearch": "interop",
41
+ "omg-memory": "interop",
42
+ "chrome-devtools": "labs",
43
+ }
44
+
45
+
46
+ @dataclass
47
+ class InstallAction:
48
+ host: str
49
+ target_path: str
50
+ description: str
51
+ kind: InstallActionKind
52
+ content: str
53
+ mode: int = 0o600
54
+
55
+
56
+ @dataclass
57
+ class InstallPlan:
58
+ actions: list[InstallAction]
59
+ pre_checks: list[str]
60
+ post_checks: list[str]
61
+ source_root: str
62
+
63
+
64
+ class InstallResult(TypedDict):
65
+ executed: bool
66
+ actions_completed: list[str]
67
+ actions_skipped: list[str]
68
+ receipt: Any
69
+ errors: list[str]
70
+
71
+
72
+ def _normalize_selected_ids(selected_ids: list[str] | None) -> list[str]:
73
+ if selected_ids is None:
74
+ return []
75
+ normalized: list[str] = []
76
+ seen: set[str] = set()
77
+ for item in selected_ids:
78
+ candidate = _MCP_ID_ALIASES.get(item, item)
79
+ if candidate in seen:
80
+ continue
81
+ seen.add(candidate)
82
+ normalized.append(candidate)
83
+ return normalized
84
+
85
+
86
+ def _default_selected_ids_for_preset(preset: str) -> list[str]:
87
+ level = PRESET_LEVEL.get(preset, 0)
88
+ return [
89
+ server_id
90
+ for server_id, min_preset in _MCP_MIN_PRESET.items()
91
+ if PRESET_LEVEL.get(min_preset, -1) <= level
92
+ ]
93
+
94
+
95
+ def _resolve_selected_servers(
96
+ *,
97
+ selected_ids: list[str] | None,
98
+ preset: str,
99
+ selected_servers: dict[str, dict[str, Any]] | None,
100
+ ) -> dict[str, dict[str, Any]]:
101
+ if selected_servers is not None:
102
+ return selected_servers
103
+ normalized_ids = _normalize_selected_ids(selected_ids)
104
+ if not normalized_ids:
105
+ normalized_ids = _default_selected_ids_for_preset(preset)
106
+ return {
107
+ server_id: cast(dict[str, Any], _DEFAULT_MCP_SPECS[server_id])
108
+ for server_id in normalized_ids
109
+ if server_id in _DEFAULT_MCP_SPECS
110
+ }
111
+
112
+
113
+ def _load_json_path(path: Path) -> dict[str, Any]:
114
+ if not path.exists():
115
+ return {}
116
+ try:
117
+ parsed = cast(object, json.loads(path.read_text(encoding="utf-8")))
118
+ except Exception:
119
+ return {}
120
+ if not isinstance(parsed, dict):
121
+ return {}
122
+ return cast(dict[str, Any], parsed)
123
+
124
+
125
+ def _codex_header_candidates(server_name: str) -> set[str]:
126
+ return {
127
+ f"[mcp_servers.{server_name}]",
128
+ f"[mcp_servers.\"{server_name}\"]",
129
+ }
130
+
131
+
132
+ def _replace_codex_block(existing: str, block: list[str], server_name: str) -> str:
133
+ lines = existing.splitlines(keepends=True)
134
+ headers = _codex_header_candidates(server_name)
135
+ start_idx: int | None = None
136
+ for idx, line in enumerate(lines):
137
+ if line.strip() in headers:
138
+ start_idx = idx
139
+ break
140
+
141
+ if start_idx is None:
142
+ if existing and not existing.endswith("\n"):
143
+ existing += "\n"
144
+ return existing + "".join(block)
145
+
146
+ end_idx = len(lines)
147
+ for idx in range(start_idx + 1, len(lines)):
148
+ stripped = lines[idx].strip()
149
+ if stripped.startswith("[") and stripped.endswith("]"):
150
+ end_idx = idx
151
+ break
152
+
153
+ return "".join(lines[:start_idx] + block + lines[end_idx:])
154
+
155
+
156
+ def _toml_quote(value: str) -> str:
157
+ escaped = value.replace("\\", "\\\\")
158
+ escaped = escaped.replace('"', '\\"')
159
+ return escaped
160
+
161
+
162
+ def _apply_codex_http(existing: str, server_url: str, server_name: str) -> str:
163
+ block = [
164
+ f"[mcp_servers.{server_name}]\n",
165
+ 'type = "http"\n',
166
+ f'url = "{_toml_quote(server_url)}"\n',
167
+ "\n",
168
+ ]
169
+ return _replace_codex_block(existing, block, server_name)
170
+
171
+
172
+ def _apply_codex_stdio(existing: str, command: str, args: list[str], server_name: str) -> str:
173
+ args_text = ", ".join(f'"{_toml_quote(arg)}"' for arg in args)
174
+ block = [
175
+ f"[mcp_servers.{server_name}]\n",
176
+ f'command = "{_toml_quote(command)}"\n',
177
+ f"args = [{args_text}]\n",
178
+ "\n",
179
+ ]
180
+ return _replace_codex_block(existing, block, server_name)
181
+
182
+
183
+ def _compute_claude_content(
184
+ *,
185
+ project_dir: Path,
186
+ selected_servers: dict[str, dict[str, Any]],
187
+ managed_server_ids: set[str],
188
+ http_memory_allowed: bool,
189
+ server_url: str,
190
+ server_name: str,
191
+ control_command: str,
192
+ control_args: list[str],
193
+ control_server_name: str,
194
+ ) -> str:
195
+ config_path = project_dir / ".mcp.json"
196
+ claude_config = _load_json_path(config_path)
197
+ existing_servers = claude_config.get("mcpServers")
198
+ if not isinstance(existing_servers, dict):
199
+ existing_servers = {}
200
+
201
+ for managed_server_id in managed_server_ids:
202
+ existing_servers.pop(managed_server_id, None)
203
+ existing_servers.pop(server_name, None)
204
+ existing_servers.pop(control_server_name, None)
205
+
206
+ for selected_server_name, payload in selected_servers.items():
207
+ if selected_server_name == "omg-memory":
208
+ if not http_memory_allowed:
209
+ continue
210
+ target_name = server_name
211
+ target_payload: dict[str, Any] = {"type": "http", "url": server_url}
212
+ elif selected_server_name == "omg-control":
213
+ target_name = control_server_name
214
+ target_payload = {"command": control_command, "args": control_args}
215
+ else:
216
+ target_name = selected_server_name
217
+ target_payload = payload
218
+ existing_servers[target_name] = target_payload
219
+
220
+ claude_config["mcpServers"] = existing_servers
221
+ return json.dumps(claude_config, indent=2, ensure_ascii=True) + "\n"
222
+
223
+
224
+ def _compute_json_host_content(
225
+ *,
226
+ host: str,
227
+ target_path: Path,
228
+ selected_servers: dict[str, dict[str, Any]],
229
+ http_memory_allowed: bool,
230
+ server_url: str,
231
+ server_name: str,
232
+ control_command: str,
233
+ control_args: list[str],
234
+ control_server_name: str,
235
+ ) -> str:
236
+ data = _load_json_path(target_path)
237
+ mcp_servers = data.get("mcpServers")
238
+ if not isinstance(mcp_servers, dict):
239
+ mcp_servers = {}
240
+
241
+ for selected_server_name, payload in selected_servers.items():
242
+ if selected_server_name == "omg-memory":
243
+ if not http_memory_allowed:
244
+ continue
245
+ if host == "gemini":
246
+ mcp_servers[server_name] = {"httpUrl": server_url}
247
+ else:
248
+ mcp_servers[server_name] = {"type": "http", "url": server_url}
249
+ continue
250
+
251
+ if selected_server_name == "omg-control":
252
+ mcp_servers[control_server_name] = {
253
+ "command": control_command,
254
+ "args": control_args,
255
+ }
256
+ continue
257
+
258
+ if payload.get("type") == "http":
259
+ url = str(payload.get("url", ""))
260
+ if host == "gemini":
261
+ mcp_servers[selected_server_name] = {"httpUrl": url}
262
+ else:
263
+ mcp_servers[selected_server_name] = {"type": "http", "url": url}
264
+ continue
265
+
266
+ mcp_servers[selected_server_name] = {
267
+ "command": str(payload.get("command", "")),
268
+ "args": [str(arg) for arg in cast(list[Any], payload.get("args", []))],
269
+ }
270
+
271
+ data["mcpServers"] = mcp_servers
272
+ return json.dumps(data, indent=2, ensure_ascii=True) + "\n"
273
+
274
+
275
+ def _compute_codex_content(
276
+ *,
277
+ target_path: Path,
278
+ selected_servers: dict[str, dict[str, Any]],
279
+ http_memory_allowed: bool,
280
+ server_url: str,
281
+ server_name: str,
282
+ control_command: str,
283
+ control_args: list[str],
284
+ control_server_name: str,
285
+ ) -> str:
286
+ existing = target_path.read_text(encoding="utf-8") if target_path.exists() else ""
287
+ content = existing
288
+ for selected_server_name, payload in selected_servers.items():
289
+ if selected_server_name == "omg-memory":
290
+ if not http_memory_allowed:
291
+ continue
292
+ content = _apply_codex_http(content, server_url, server_name)
293
+ continue
294
+
295
+ if selected_server_name == "omg-control":
296
+ content = _apply_codex_stdio(content, control_command, control_args, control_server_name)
297
+ continue
298
+
299
+ if payload.get("type") == "http":
300
+ content = _apply_codex_http(content, str(payload.get("url", "")), selected_server_name)
301
+ continue
302
+
303
+ content = _apply_codex_stdio(
304
+ content,
305
+ str(payload.get("command", "")),
306
+ [str(arg) for arg in cast(list[Any], payload.get("args", []))],
307
+ selected_server_name,
308
+ )
309
+ return content
310
+
311
+
312
+ def compute_install_plan(
313
+ project_dir: str,
314
+ detected_clis: dict[str, Any],
315
+ preset: str,
316
+ mode: str,
317
+ selected_ids: list[str] | None,
318
+ *,
319
+ server_url: str = "http://127.0.0.1:8765/mcp",
320
+ server_name: str = "omg-memory",
321
+ control_command: str = "python3",
322
+ control_args: list[str] | None = None,
323
+ control_server_name: str = "omg-control",
324
+ selected_servers: dict[str, dict[str, Any]] | None = None,
325
+ source_root: str | Path | None = None,
326
+ include_claude_action: bool = True,
327
+ ) -> InstallPlan:
328
+ del mode
329
+
330
+ project_path = Path(project_dir)
331
+ resolved_control_args = list(control_args or ["-m", "runtime.omg_mcp_server"])
332
+ selected = _resolve_selected_servers(
333
+ selected_ids=selected_ids,
334
+ preset=preset,
335
+ selected_servers=selected_servers,
336
+ )
337
+ source = Path(source_root) if source_root is not None else Path(__file__).resolve().parent.parent
338
+ http_memory_allowed = PRESET_LEVEL.get(preset, 0) >= PRESET_LEVEL.get("interop", 2)
339
+ managed_server_ids = set(_DEFAULT_MCP_SPECS)
340
+
341
+ actions: list[InstallAction] = []
342
+
343
+ if include_claude_action:
344
+ claude_target = project_path / ".mcp.json"
345
+ claude_content = _compute_claude_content(
346
+ project_dir=project_path,
347
+ selected_servers=selected,
348
+ managed_server_ids=managed_server_ids,
349
+ http_memory_allowed=http_memory_allowed,
350
+ server_url=server_url,
351
+ server_name=server_name,
352
+ control_command=control_command,
353
+ control_args=resolved_control_args,
354
+ control_server_name=control_server_name,
355
+ )
356
+ actions.append(
357
+ InstallAction(
358
+ host="claude",
359
+ target_path=str(claude_target),
360
+ description="Write project MCP server config",
361
+ kind="write_mcp_config",
362
+ content=claude_content,
363
+ )
364
+ )
365
+
366
+ home = Path.home()
367
+ host_targets: dict[str, Path] = {
368
+ "codex": home / ".codex" / "config.toml",
369
+ "gemini": home / ".gemini" / "settings.json",
370
+ "kimi": home / ".kimi" / "mcp.json",
371
+ }
372
+
373
+ for host, target_path in host_targets.items():
374
+ cli_info = detected_clis.get(host)
375
+ if not isinstance(cli_info, dict) or not bool(cli_info.get("detected", False)):
376
+ continue
377
+
378
+ if host == "codex":
379
+ content = _compute_codex_content(
380
+ target_path=target_path,
381
+ selected_servers=selected,
382
+ http_memory_allowed=http_memory_allowed,
383
+ server_url=server_url,
384
+ server_name=server_name,
385
+ control_command=control_command,
386
+ control_args=resolved_control_args,
387
+ control_server_name=control_server_name,
388
+ )
389
+ else:
390
+ content = _compute_json_host_content(
391
+ host=host,
392
+ target_path=target_path,
393
+ selected_servers=selected,
394
+ http_memory_allowed=http_memory_allowed,
395
+ server_url=server_url,
396
+ server_name=server_name,
397
+ control_command=control_command,
398
+ control_args=resolved_control_args,
399
+ control_server_name=control_server_name,
400
+ )
401
+
402
+ actions.append(
403
+ InstallAction(
404
+ host=host,
405
+ target_path=str(target_path),
406
+ description=f"Write {host} MCP config",
407
+ kind="write_cli_config",
408
+ content=content,
409
+ )
410
+ )
411
+
412
+ return InstallPlan(
413
+ actions=actions,
414
+ pre_checks=["verify_install_integrity"],
415
+ post_checks=["post_install_validation"],
416
+ source_root=str(source),
417
+ )
418
+
419
+
420
+ def _verify_install_integrity(source_root: Path) -> list[str]:
421
+ manifest = source_root / "INSTALL_INTEGRITY.sha256"
422
+ if not manifest.exists():
423
+ return []
424
+
425
+ errors: list[str] = []
426
+ for raw_line in manifest.read_text(encoding="utf-8").splitlines():
427
+ line = raw_line.strip()
428
+ if not line or line.startswith("#"):
429
+ continue
430
+ parts = line.split(maxsplit=1)
431
+ if len(parts) != 2:
432
+ continue
433
+ expected_hash, rel_path = parts
434
+ target = source_root / rel_path
435
+ if not target.exists() or not target.is_file():
436
+ errors.append(f"integrity failure: {rel_path} not found")
437
+ continue
438
+ actual_hash = hashlib.sha256(target.read_bytes()).hexdigest()
439
+ if actual_hash != expected_hash:
440
+ errors.append(
441
+ f"integrity failure: {rel_path} hash mismatch (expected {expected_hash}, got {actual_hash})"
442
+ )
443
+ return errors
444
+
445
+
446
+ def execute_plan(plan: InstallPlan, *, dry_run: bool = False) -> InstallResult:
447
+ errors: list[str] = []
448
+ completed: list[str] = []
449
+ skipped: list[str] = []
450
+ receipt: Any = None
451
+
452
+ if "verify_install_integrity" in plan.pre_checks:
453
+ errors.extend(_verify_install_integrity(Path(plan.source_root)))
454
+
455
+ if errors:
456
+ skipped = [action.target_path for action in plan.actions]
457
+ return {
458
+ "executed": False,
459
+ "actions_completed": completed,
460
+ "actions_skipped": skipped,
461
+ "receipt": receipt,
462
+ "errors": errors,
463
+ }
464
+
465
+ with transactional() as tx:
466
+ for action in plan.actions:
467
+ if not dry_run:
468
+ Path(action.target_path).parent.mkdir(parents=True, exist_ok=True)
469
+ tx.plan(Path(action.target_path), action.content, mode=action.mode)
470
+ completed.append(action.target_path)
471
+
472
+ try:
473
+ if dry_run:
474
+ receipt = cast(Any, tx.dry_run())
475
+ else:
476
+ receipt = cast(Any, tx.execute())
477
+ except ConfigTransactionError as exc:
478
+ if exc.receipt is not None:
479
+ receipt = cast(Any, exc.receipt)
480
+ errors.append(str(exc))
481
+
482
+ if errors:
483
+ return {
484
+ "executed": False,
485
+ "actions_completed": [],
486
+ "actions_skipped": [action.target_path for action in plan.actions],
487
+ "receipt": receipt,
488
+ "errors": errors,
489
+ }
490
+
491
+ return {
492
+ "executed": not dry_run,
493
+ "actions_completed": completed,
494
+ "actions_skipped": skipped,
495
+ "receipt": receipt,
496
+ "errors": errors,
497
+ }