@trac3er/oh-my-god 2.1.1 → 2.1.4

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 (351) hide show
  1. package/.agents/skills/omg/AGENTS.fragment.md +2 -2
  2. package/.agents/skills/omg/algorithms/SKILL.md +1 -1
  3. package/.agents/skills/omg/algorithms/openai.yaml +1 -1
  4. package/.agents/skills/omg/api-twin/SKILL.md +1 -1
  5. package/.agents/skills/omg/api-twin/openai.yaml +1 -1
  6. package/.agents/skills/omg/claim-judge/SKILL.md +1 -1
  7. package/.agents/skills/omg/claim-judge/openai.yaml +1 -1
  8. package/.agents/skills/omg/codex-rules.md +1 -1
  9. package/.agents/skills/omg/control-plane/SKILL.md +1 -1
  10. package/.agents/skills/omg/control-plane/openai.yaml +1 -1
  11. package/.agents/skills/omg/data-lineage/SKILL.md +1 -1
  12. package/.agents/skills/omg/data-lineage/openai.yaml +1 -1
  13. package/.agents/skills/omg/delta-classifier/SKILL.md +1 -1
  14. package/.agents/skills/omg/delta-classifier/openai.yaml +1 -1
  15. package/.agents/skills/omg/eval-gate/SKILL.md +1 -1
  16. package/.agents/skills/omg/eval-gate/openai.yaml +1 -1
  17. package/.agents/skills/omg/health/SKILL.md +1 -1
  18. package/.agents/skills/omg/health/openai.yaml +1 -1
  19. package/.agents/skills/omg/hook-governor/SKILL.md +1 -1
  20. package/.agents/skills/omg/hook-governor/openai.yaml +1 -1
  21. package/.agents/skills/omg/incident-replay/SKILL.md +1 -1
  22. package/.agents/skills/omg/incident-replay/openai.yaml +1 -1
  23. package/.agents/skills/omg/lsp-pack/SKILL.md +1 -1
  24. package/.agents/skills/omg/lsp-pack/openai.yaml +1 -1
  25. package/.agents/skills/omg/mcp-fabric/SKILL.md +1 -1
  26. package/.agents/skills/omg/mcp-fabric/openai.yaml +1 -1
  27. package/.agents/skills/omg/plan-council/SKILL.md +1 -1
  28. package/.agents/skills/omg/plan-council/openai.yaml +1 -1
  29. package/.agents/skills/omg/preflight/SKILL.md +1 -1
  30. package/.agents/skills/omg/preflight/openai.yaml +1 -1
  31. package/.agents/skills/omg/proof-gate/SKILL.md +1 -1
  32. package/.agents/skills/omg/proof-gate/openai.yaml +1 -1
  33. package/.agents/skills/omg/remote-supervisor/SKILL.md +1 -1
  34. package/.agents/skills/omg/remote-supervisor/openai.yaml +1 -1
  35. package/.agents/skills/omg/robotics/SKILL.md +1 -1
  36. package/.agents/skills/omg/robotics/openai.yaml +1 -1
  37. package/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +1 -1
  38. package/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +1 -1
  39. package/.agents/skills/omg/security-check/SKILL.md +1 -1
  40. package/.agents/skills/omg/security-check/openai.yaml +1 -1
  41. package/.agents/skills/omg/test-intent-lock/SKILL.md +1 -1
  42. package/.agents/skills/omg/test-intent-lock/openai.yaml +1 -1
  43. package/.agents/skills/omg/tracebank/SKILL.md +1 -1
  44. package/.agents/skills/omg/tracebank/openai.yaml +1 -1
  45. package/.agents/skills/omg/vision/SKILL.md +1 -1
  46. package/.agents/skills/omg/vision/openai.yaml +1 -1
  47. package/.claude-plugin/marketplace.json +3 -3
  48. package/.claude-plugin/plugin.json +1 -1
  49. package/CHANGELOG.md +5 -0
  50. package/CLI-ADAPTER-MAP.md +3 -3
  51. package/OMG-setup.sh +114 -1
  52. package/OMG_COMPAT_CONTRACT.md +1 -1
  53. package/README.md +2 -1
  54. package/artifacts/release/.claude-plugin/marketplace.json +3 -3
  55. package/artifacts/release/.claude-plugin/plugin.json +1 -1
  56. package/artifacts/release/OMG_COMPAT_CONTRACT.md +1 -1
  57. package/artifacts/release/dist/enterprise/bundle/.claude-plugin/marketplace.json +3 -3
  58. package/artifacts/release/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
  59. package/artifacts/release/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  60. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/plugin.json +26 -9
  61. package/artifacts/release/dist/enterprise/bundle/registry/bundles/algorithms.yaml +1 -1
  62. package/artifacts/release/dist/enterprise/bundle/registry/bundles/api-twin.yaml +1 -1
  63. package/artifacts/release/dist/enterprise/bundle/registry/bundles/claim-judge.yaml +1 -1
  64. package/artifacts/release/dist/enterprise/bundle/registry/bundles/control-plane.yaml +1 -1
  65. package/artifacts/release/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +1 -1
  66. package/artifacts/release/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +1 -1
  67. package/artifacts/release/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +1 -1
  68. package/artifacts/release/dist/enterprise/bundle/registry/bundles/health.yaml +1 -1
  69. package/artifacts/release/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +1 -1
  70. package/artifacts/release/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +1 -1
  71. package/artifacts/release/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +1 -1
  72. package/artifacts/release/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  73. package/artifacts/release/dist/enterprise/bundle/registry/bundles/plan-council.yaml +1 -1
  74. package/artifacts/release/dist/enterprise/bundle/registry/bundles/preflight.yaml +1 -1
  75. package/artifacts/release/dist/enterprise/bundle/registry/bundles/proof-gate.yaml +1 -1
  76. package/artifacts/release/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  77. package/artifacts/release/dist/enterprise/bundle/registry/bundles/robotics.yaml +1 -1
  78. package/artifacts/release/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  79. package/artifacts/release/dist/enterprise/bundle/registry/bundles/security-check.yaml +1 -1
  80. package/artifacts/release/dist/enterprise/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  81. package/artifacts/release/dist/enterprise/bundle/registry/bundles/tracebank.yaml +1 -1
  82. package/artifacts/release/dist/enterprise/bundle/registry/bundles/vision.yaml +1 -1
  83. package/artifacts/release/dist/enterprise/bundle/registry/omg-capability.schema.json +1 -1
  84. package/artifacts/release/dist/enterprise/bundle/settings.json +3 -3
  85. package/artifacts/release/dist/enterprise/manifest.json +30 -40
  86. package/artifacts/release/dist/public/bundle/.claude-plugin/marketplace.json +3 -3
  87. package/artifacts/release/dist/public/bundle/.claude-plugin/plugin.json +1 -1
  88. package/artifacts/release/dist/public/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  89. package/artifacts/release/dist/public/bundle/plugins/advanced/plugin.json +26 -9
  90. package/artifacts/release/dist/public/bundle/registry/bundles/algorithms.yaml +1 -1
  91. package/artifacts/release/dist/public/bundle/registry/bundles/api-twin.yaml +1 -1
  92. package/artifacts/release/dist/public/bundle/registry/bundles/claim-judge.yaml +1 -1
  93. package/artifacts/release/dist/public/bundle/registry/bundles/control-plane.yaml +1 -1
  94. package/artifacts/release/dist/public/bundle/registry/bundles/data-lineage.yaml +1 -1
  95. package/artifacts/release/dist/public/bundle/registry/bundles/delta-classifier.yaml +1 -1
  96. package/artifacts/release/dist/public/bundle/registry/bundles/eval-gate.yaml +1 -1
  97. package/artifacts/release/dist/public/bundle/registry/bundles/health.yaml +1 -1
  98. package/artifacts/release/dist/public/bundle/registry/bundles/hook-governor.yaml +1 -1
  99. package/artifacts/release/dist/public/bundle/registry/bundles/incident-replay.yaml +1 -1
  100. package/artifacts/release/dist/public/bundle/registry/bundles/lsp-pack.yaml +1 -1
  101. package/artifacts/release/dist/public/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  102. package/artifacts/release/dist/public/bundle/registry/bundles/plan-council.yaml +1 -1
  103. package/artifacts/release/dist/public/bundle/registry/bundles/preflight.yaml +1 -1
  104. package/artifacts/release/dist/public/bundle/registry/bundles/proof-gate.yaml +1 -1
  105. package/artifacts/release/dist/public/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  106. package/artifacts/release/dist/public/bundle/registry/bundles/robotics.yaml +1 -1
  107. package/artifacts/release/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  108. package/artifacts/release/dist/public/bundle/registry/bundles/security-check.yaml +1 -1
  109. package/artifacts/release/dist/public/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  110. package/artifacts/release/dist/public/bundle/registry/bundles/tracebank.yaml +1 -1
  111. package/artifacts/release/dist/public/bundle/registry/bundles/vision.yaml +1 -1
  112. package/artifacts/release/dist/public/bundle/registry/omg-capability.schema.json +1 -1
  113. package/artifacts/release/dist/public/bundle/settings.json +3 -3
  114. package/artifacts/release/dist/public/manifest.json +30 -40
  115. package/artifacts/release/plugins/advanced/plugin.json +26 -9
  116. package/artifacts/release/registry/bundles/algorithms.yaml +1 -1
  117. package/artifacts/release/registry/bundles/api-twin.yaml +1 -1
  118. package/artifacts/release/registry/bundles/claim-judge.yaml +1 -1
  119. package/artifacts/release/registry/bundles/control-plane.yaml +1 -1
  120. package/artifacts/release/registry/bundles/data-lineage.yaml +1 -1
  121. package/artifacts/release/registry/bundles/delta-classifier.yaml +1 -1
  122. package/artifacts/release/registry/bundles/eval-gate.yaml +1 -1
  123. package/artifacts/release/registry/bundles/health.yaml +1 -1
  124. package/artifacts/release/registry/bundles/hook-governor.yaml +1 -1
  125. package/artifacts/release/registry/bundles/incident-replay.yaml +1 -1
  126. package/artifacts/release/registry/bundles/lsp-pack.yaml +1 -1
  127. package/artifacts/release/registry/bundles/mcp-fabric.yaml +1 -1
  128. package/artifacts/release/registry/bundles/plan-council.yaml +1 -1
  129. package/artifacts/release/registry/bundles/preflight.yaml +1 -1
  130. package/artifacts/release/registry/bundles/proof-gate.yaml +1 -1
  131. package/artifacts/release/registry/bundles/remote-supervisor.yaml +1 -1
  132. package/artifacts/release/registry/bundles/robotics.yaml +1 -1
  133. package/artifacts/release/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  134. package/artifacts/release/registry/bundles/security-check.yaml +1 -1
  135. package/artifacts/release/registry/bundles/test-intent-lock.yaml +1 -1
  136. package/artifacts/release/registry/bundles/tracebank.yaml +1 -1
  137. package/artifacts/release/registry/bundles/vision.yaml +1 -1
  138. package/artifacts/release/registry/omg-capability.schema.json +1 -1
  139. package/artifacts/release/settings.json +3 -3
  140. package/build/lib/commands/OMG:profile-review.md +43 -0
  141. package/build/lib/commands/OMG:validate.md +59 -0
  142. package/build/lib/hooks/_agent_registry.py +2 -0
  143. package/build/lib/hooks/firewall.py +146 -2
  144. package/build/lib/hooks/intentgate-keyword-detector.py +15 -3
  145. package/build/lib/hooks/policy_engine.py +77 -0
  146. package/build/lib/hooks/prompt-enhancer.py +146 -0
  147. package/build/lib/hooks/session-end-capture.py +374 -6
  148. package/build/lib/hooks/session-start.py +13 -35
  149. package/build/lib/hooks/setup_wizard.py +333 -1
  150. package/build/lib/plugins/advanced/plugin.json +26 -9
  151. package/build/lib/plugins/core/plugin.json +44 -11
  152. package/build/lib/registry/bundles/algorithms.yaml +1 -1
  153. package/build/lib/registry/bundles/api-twin.yaml +1 -1
  154. package/build/lib/registry/bundles/claim-judge.yaml +1 -1
  155. package/build/lib/registry/bundles/control-plane.yaml +1 -1
  156. package/build/lib/registry/bundles/data-lineage.yaml +1 -1
  157. package/build/lib/registry/bundles/delta-classifier.yaml +1 -1
  158. package/build/lib/registry/bundles/eval-gate.yaml +1 -1
  159. package/build/lib/registry/bundles/health.yaml +1 -1
  160. package/build/lib/registry/bundles/hook-governor.yaml +1 -1
  161. package/build/lib/registry/bundles/incident-replay.yaml +1 -1
  162. package/build/lib/registry/bundles/lsp-pack.yaml +1 -1
  163. package/build/lib/registry/bundles/mcp-fabric.yaml +1 -1
  164. package/build/lib/registry/bundles/plan-council.yaml +1 -1
  165. package/build/lib/registry/bundles/preflight.yaml +1 -1
  166. package/build/lib/registry/bundles/proof-gate.yaml +1 -1
  167. package/build/lib/registry/bundles/remote-supervisor.yaml +1 -1
  168. package/build/lib/registry/bundles/robotics.yaml +1 -1
  169. package/build/lib/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  170. package/build/lib/registry/bundles/security-check.yaml +1 -1
  171. package/build/lib/registry/bundles/test-intent-lock.yaml +1 -1
  172. package/build/lib/registry/bundles/tracebank.yaml +1 -1
  173. package/build/lib/registry/bundles/vision.yaml +1 -1
  174. package/build/lib/registry/omg-capability.schema.json +1 -1
  175. package/build/lib/runtime/adoption.py +1 -1
  176. package/build/lib/runtime/background_verification.py +62 -0
  177. package/build/lib/runtime/claim_judge.py +79 -9
  178. package/build/lib/runtime/compat.py +15 -1
  179. package/build/lib/runtime/context_engine.py +242 -0
  180. package/build/lib/runtime/contract_compiler.py +133 -78
  181. package/build/lib/runtime/defense_state.py +79 -8
  182. package/build/lib/runtime/delta_classifier.py +80 -2
  183. package/build/lib/runtime/evidence_query.py +56 -4
  184. package/build/lib/runtime/evidence_registry.py +16 -0
  185. package/build/lib/runtime/evidence_requirements.py +47 -0
  186. package/build/lib/runtime/forge_agents.py +163 -25
  187. package/build/lib/runtime/forge_contracts.py +164 -2
  188. package/build/lib/runtime/memory_store.py +134 -1
  189. package/build/lib/runtime/omg_compat_contract_snapshot.json +2 -2
  190. package/build/lib/runtime/preflight.py +14 -0
  191. package/build/lib/runtime/profile_io.py +294 -0
  192. package/build/lib/runtime/proof_gate.py +43 -7
  193. package/build/lib/runtime/release_surfaces.py +243 -0
  194. package/build/lib/runtime/runtime_contracts.py +90 -0
  195. package/build/lib/runtime/security_check.py +16 -0
  196. package/build/lib/runtime/session_health.py +49 -16
  197. package/build/lib/runtime/team_router.py +65 -6
  198. package/build/lib/runtime/tool_plan_gate.py +114 -6
  199. package/build/lib/runtime/validate.py +194 -0
  200. package/build/lib/runtime/verification_controller.py +52 -2
  201. package/commands/OMG:diagnose-plugins.md +33 -0
  202. package/commands/OMG:profile-review.md +43 -0
  203. package/commands/OMG:setup.md +4 -1
  204. package/commands/OMG:validate.md +59 -0
  205. package/dist/enterprise/bundle/.claude-plugin/marketplace.json +3 -3
  206. package/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
  207. package/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  208. package/dist/enterprise/bundle/plugins/advanced/plugin.json +26 -9
  209. package/dist/enterprise/bundle/registry/bundles/algorithms.yaml +1 -1
  210. package/dist/enterprise/bundle/registry/bundles/api-twin.yaml +1 -1
  211. package/dist/enterprise/bundle/registry/bundles/claim-judge.yaml +1 -1
  212. package/dist/enterprise/bundle/registry/bundles/control-plane.yaml +1 -1
  213. package/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +1 -1
  214. package/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +1 -1
  215. package/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +1 -1
  216. package/dist/enterprise/bundle/registry/bundles/health.yaml +1 -1
  217. package/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +1 -1
  218. package/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +1 -1
  219. package/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +1 -1
  220. package/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  221. package/dist/enterprise/bundle/registry/bundles/plan-council.yaml +1 -1
  222. package/dist/enterprise/bundle/registry/bundles/preflight.yaml +1 -1
  223. package/dist/enterprise/bundle/registry/bundles/proof-gate.yaml +1 -1
  224. package/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  225. package/dist/enterprise/bundle/registry/bundles/robotics.yaml +1 -1
  226. package/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  227. package/dist/enterprise/bundle/registry/bundles/security-check.yaml +1 -1
  228. package/dist/enterprise/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  229. package/dist/enterprise/bundle/registry/bundles/tracebank.yaml +1 -1
  230. package/dist/enterprise/bundle/registry/bundles/vision.yaml +1 -1
  231. package/dist/enterprise/bundle/registry/omg-capability.schema.json +1 -1
  232. package/dist/enterprise/bundle/settings.json +3 -3
  233. package/dist/enterprise/manifest.json +30 -40
  234. package/dist/oh_my_god-2.1.4-py3-none-any.whl +0 -0
  235. package/dist/oh_my_god-2.1.4.tar.gz +0 -0
  236. package/dist/public/bundle/.claude-plugin/marketplace.json +3 -3
  237. package/dist/public/bundle/.claude-plugin/plugin.json +1 -1
  238. package/dist/public/bundle/OMG_COMPAT_CONTRACT.md +1 -1
  239. package/dist/public/bundle/plugins/advanced/plugin.json +26 -9
  240. package/dist/public/bundle/registry/bundles/algorithms.yaml +1 -1
  241. package/dist/public/bundle/registry/bundles/api-twin.yaml +1 -1
  242. package/dist/public/bundle/registry/bundles/claim-judge.yaml +1 -1
  243. package/dist/public/bundle/registry/bundles/control-plane.yaml +1 -1
  244. package/dist/public/bundle/registry/bundles/data-lineage.yaml +1 -1
  245. package/dist/public/bundle/registry/bundles/delta-classifier.yaml +1 -1
  246. package/dist/public/bundle/registry/bundles/eval-gate.yaml +1 -1
  247. package/dist/public/bundle/registry/bundles/health.yaml +1 -1
  248. package/dist/public/bundle/registry/bundles/hook-governor.yaml +1 -1
  249. package/dist/public/bundle/registry/bundles/incident-replay.yaml +1 -1
  250. package/dist/public/bundle/registry/bundles/lsp-pack.yaml +1 -1
  251. package/dist/public/bundle/registry/bundles/mcp-fabric.yaml +1 -1
  252. package/dist/public/bundle/registry/bundles/plan-council.yaml +1 -1
  253. package/dist/public/bundle/registry/bundles/preflight.yaml +1 -1
  254. package/dist/public/bundle/registry/bundles/proof-gate.yaml +1 -1
  255. package/dist/public/bundle/registry/bundles/remote-supervisor.yaml +1 -1
  256. package/dist/public/bundle/registry/bundles/robotics.yaml +1 -1
  257. package/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  258. package/dist/public/bundle/registry/bundles/security-check.yaml +1 -1
  259. package/dist/public/bundle/registry/bundles/test-intent-lock.yaml +1 -1
  260. package/dist/public/bundle/registry/bundles/tracebank.yaml +1 -1
  261. package/dist/public/bundle/registry/bundles/vision.yaml +1 -1
  262. package/dist/public/bundle/registry/omg-capability.schema.json +1 -1
  263. package/dist/public/bundle/settings.json +3 -3
  264. package/dist/public/manifest.json +30 -40
  265. package/docs/install/opencode.md +30 -0
  266. package/docs/proof.md +3 -0
  267. package/docs/release-checklist.md +6 -1
  268. package/hooks/_agent_registry.py +2 -0
  269. package/hooks/firewall.py +146 -2
  270. package/hooks/intentgate-keyword-detector.py +15 -3
  271. package/hooks/policy_engine.py +77 -0
  272. package/hooks/prompt-enhancer.py +146 -0
  273. package/hooks/session-end-capture.py +374 -6
  274. package/hooks/session-start.py +13 -35
  275. package/hooks/setup_wizard.py +342 -2
  276. package/hud/omg-hud.mjs +16 -3
  277. package/lab/pipeline.py +195 -26
  278. package/package.json +1 -1
  279. package/plugins/advanced/plugin.json +26 -9
  280. package/plugins/core/plugin.json +51 -12
  281. package/pyproject.toml +10 -2
  282. package/registry/bundles/algorithms.yaml +1 -1
  283. package/registry/bundles/api-twin.yaml +1 -1
  284. package/registry/bundles/claim-judge.yaml +1 -1
  285. package/registry/bundles/control-plane.yaml +1 -1
  286. package/registry/bundles/data-lineage.yaml +1 -1
  287. package/registry/bundles/delta-classifier.yaml +1 -1
  288. package/registry/bundles/eval-gate.yaml +1 -1
  289. package/registry/bundles/health.yaml +1 -1
  290. package/registry/bundles/hook-governor.yaml +1 -1
  291. package/registry/bundles/incident-replay.yaml +1 -1
  292. package/registry/bundles/lsp-pack.yaml +1 -1
  293. package/registry/bundles/mcp-fabric.yaml +1 -1
  294. package/registry/bundles/plan-council.yaml +1 -1
  295. package/registry/bundles/preflight.yaml +1 -1
  296. package/registry/bundles/proof-gate.yaml +1 -1
  297. package/registry/bundles/remote-supervisor.yaml +1 -1
  298. package/registry/bundles/robotics.yaml +1 -1
  299. package/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  300. package/registry/bundles/security-check.yaml +1 -1
  301. package/registry/bundles/test-intent-lock.yaml +1 -1
  302. package/registry/bundles/tracebank.yaml +1 -1
  303. package/registry/bundles/vision.yaml +1 -1
  304. package/registry/omg-capability.schema.json +1 -1
  305. package/runtime/adoption.py +7 -5
  306. package/runtime/background_verification.py +62 -0
  307. package/runtime/claim_judge.py +79 -9
  308. package/runtime/compat.py +48 -1
  309. package/runtime/context_engine.py +242 -0
  310. package/runtime/contract_compiler.py +133 -78
  311. package/runtime/defense_state.py +79 -8
  312. package/runtime/delta_classifier.py +80 -2
  313. package/runtime/evidence_query.py +56 -4
  314. package/runtime/evidence_registry.py +16 -0
  315. package/runtime/evidence_requirements.py +47 -0
  316. package/runtime/forge_agents.py +163 -25
  317. package/runtime/forge_contracts.py +164 -2
  318. package/runtime/hook_governor.py +19 -1
  319. package/runtime/memory_store.py +134 -1
  320. package/runtime/omg_compat_contract_snapshot.json +2 -2
  321. package/runtime/plugin_diagnostics.py +248 -0
  322. package/runtime/plugin_interop.py +1007 -0
  323. package/runtime/preflight.py +14 -0
  324. package/runtime/profile_io.py +294 -0
  325. package/runtime/proof_gate.py +43 -7
  326. package/runtime/providers/opencode_provider.py +94 -0
  327. package/runtime/release_surfaces.py +243 -0
  328. package/runtime/runtime_contracts.py +90 -0
  329. package/runtime/security_check.py +16 -0
  330. package/runtime/session_health.py +49 -16
  331. package/runtime/team_router.py +65 -6
  332. package/runtime/tool_plan_gate.py +82 -0
  333. package/runtime/validate.py +289 -0
  334. package/runtime/verification_controller.py +52 -2
  335. package/scripts/omg.py +262 -1
  336. package/scripts/prepare-release-proof-fixtures.py +89 -0
  337. package/scripts/print-canonical-version.py +80 -0
  338. package/scripts/sync-release-identity.py +476 -0
  339. package/scripts/validate-release-identity.py +246 -0
  340. package/scripts/verify-standalone.sh +3 -0
  341. package/settings.json +3 -3
  342. package/templates/plugins-allowlist.yaml +19 -0
  343. package/artifacts/release/dist/enterprise/bundle/.gemini/settings.json +0 -11
  344. package/artifacts/release/dist/enterprise/bundle/.kimi/mcp.json +0 -11
  345. package/artifacts/release/dist/public/bundle/.gemini/settings.json +0 -11
  346. package/artifacts/release/dist/public/bundle/.kimi/mcp.json +0 -11
  347. package/build/lib/yaml.py +0 -321
  348. package/dist/enterprise/bundle/.gemini/settings.json +0 -11
  349. package/dist/enterprise/bundle/.kimi/mcp.json +0 -11
  350. package/dist/public/bundle/.gemini/settings.json +0 -11
  351. package/dist/public/bundle/.kimi/mcp.json +0 -11
@@ -1,6 +1,6 @@
1
1
  id: proof-gate
2
2
  kind: proof
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Proof Gate
5
5
  description: Structured release proof gate that binds claims to required evidence artifacts and trace links.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: remote-supervisor
2
2
  kind: orchestration
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Remote Supervisor
5
5
  description: Local-only authenticated supervisor sessions for worker orchestration.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: robotics
2
2
  kind: domain-pack
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Robotics Pack
5
5
  description: Robotics safety policy, replay, and evaluation attachments.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: secure-worktree-pipeline
2
2
  kind: runtime
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Secure Worktree Pipeline
5
5
  description: Ephemeral worktree execution and supervisor-safe worker dispatch for production jobs.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: security-check
2
2
  kind: security
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Security Check
5
5
  description: Canonical security audit bundle with provenance, trust scoring, and deterministic evidence.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: test-intent-lock
2
2
  kind: proof
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Test Intent Lock
5
5
  description: Structured test-delta guard that blocks weakened tests unless explicit override evidence is present.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: tracebank
2
2
  kind: evidence
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Tracebank
5
5
  description: Structured plan-to-patch-to-verify trace capture for OMG routes.
6
6
  hosts:
@@ -1,6 +1,6 @@
1
1
  id: vision
2
2
  kind: domain-pack
3
- version: 2.1.0
3
+ version: 2.1.4
4
4
  title: OMG Vision Pack
5
5
  description: Vision-specific lineage, drift, and replay attachments.
6
6
  hosts:
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://github.com/trac3er00/OMG/registry/omg-capability.schema.json",
4
4
  "title": "OMG Capability Bundle",
5
- "version": "2.1.0",
5
+ "version": "2.1.4",
6
6
  "type": "object",
7
7
  "required": [
8
8
  "id",
@@ -11,7 +11,7 @@ CANONICAL_REPO_URL = "https://github.com/trac3er00/OMG"
11
11
  CANONICAL_PACKAGE_NAME = "@trac3er/oh-my-god"
12
12
  CANONICAL_PLUGIN_ID = "omg"
13
13
  CANONICAL_MARKETPLACE_ID = "omg"
14
- CANONICAL_VERSION = "2.1.0"
14
+ CANONICAL_VERSION = "2.1.4"
15
15
 
16
16
  VALID_ADOPTION_MODES = ("omg-only", "coexist")
17
17
  VALID_PRESETS = ("safe", "balanced", "interop", "labs")
@@ -46,3 +46,65 @@ def read_verification_state(project_dir: str) -> dict[str, Any] | None:
46
46
  except (json.JSONDecodeError, OSError):
47
47
  pass
48
48
  return None
49
+
50
+
51
+ # --- Task 10: Smart validation skipping + timeout gates ---
52
+
53
+ # Profiles that must NEVER skip any validation stage.
54
+ _NEVER_SKIP_PROFILES: frozenset[str] = frozenset({"release", "security-audit"})
55
+
56
+
57
+ def should_skip_validation(evidence_profile: str | None, stage: str) -> bool:
58
+ """Return True if *stage* can be skipped for the given evidence profile.
59
+
60
+ Uses the central requirement registry from ``runtime.evidence_requirements``
61
+ so profile names and requirement lists are never hardcoded here.
62
+
63
+ Rules:
64
+ - ``release`` and ``security-audit`` profiles NEVER skip any stage.
65
+ - ``None``, empty, or unknown profiles fall back to FULL_REQUIREMENTS (no skip).
66
+ - For other profiles, a stage is skipped when it is NOT in that profile's
67
+ requirement list.
68
+ """
69
+ from runtime.evidence_requirements import requirements_for_profile
70
+
71
+ profile = (evidence_profile or "").strip()
72
+
73
+ # Never-skip profiles: full requirements, nothing skippable
74
+ if profile in _NEVER_SKIP_PROFILES:
75
+ return False
76
+
77
+ required = requirements_for_profile(profile if profile else None)
78
+ return stage not in required
79
+
80
+
81
+ def skipped_stages_for_profile(evidence_profile: str | None) -> list[str]:
82
+ """Return the list of stages that WOULD be skipped for a given profile.
83
+
84
+ Useful for logging and HUD state.
85
+ """
86
+ from runtime.evidence_requirements import FULL_REQUIREMENTS
87
+
88
+ return [stage for stage in FULL_REQUIREMENTS if should_skip_validation(evidence_profile, stage)]
89
+
90
+
91
+ def run_validation_with_timeout(
92
+ fn: object,
93
+ timeout_seconds: float = 60.0,
94
+ ) -> dict[str, Any]:
95
+ """Execute a validation callable with a timeout gate.
96
+
97
+ Returns a dict with ``status`` (the callable's return or ``"timeout"``)
98
+ and ``timed_out`` bool. The callable must be a zero-arg function
99
+ returning a string status.
100
+ """
101
+ import concurrent.futures
102
+
103
+ with concurrent.futures.ThreadPoolExecutor(max_workers=1) as pool:
104
+ future = pool.submit(fn) # type: ignore[arg-type]
105
+ try:
106
+ result = future.result(timeout=timeout_seconds)
107
+ return {"status": result, "timed_out": False}
108
+ except concurrent.futures.TimeoutError:
109
+ future.cancel()
110
+ return {"status": "timeout", "timed_out": True}
@@ -6,13 +6,16 @@ from pathlib import Path
6
6
  from typing import Any
7
7
 
8
8
  from runtime import artifact_parsers
9
+ from runtime.context_engine import load_profile_digest
9
10
  from runtime.evidence_query import get_evidence_pack
11
+ from runtime.evidence_requirements import FULL_REQUIREMENTS, requirements_for_profile
10
12
 
11
13
 
12
14
  def judge_claims(project_dir: str, claims: list[dict[str, Any]]) -> dict[str, Any]:
13
15
  root = Path(project_dir)
14
16
  evidence_dir = root / ".omg" / "evidence"
15
17
  evidence_dir.mkdir(parents=True, exist_ok=True)
18
+ profile_digest = load_profile_digest(project_dir)
16
19
 
17
20
  results: list[dict[str, Any]] = []
18
21
  aggregate_tokens: list[str] = []
@@ -24,12 +27,24 @@ def judge_claims(project_dir: str, claims: list[dict[str, Any]]) -> dict[str, An
24
27
  if run_id:
25
28
  evidence_pack = get_evidence_pack(project_dir, run_id)
26
29
  trace_ids: list[str] = []
30
+ context_checksum = ""
31
+ profile_version = ""
32
+ intent_gate_version = ""
33
+ evidence_profile = ""
27
34
  if isinstance(evidence_pack, dict):
28
35
  trace_ids = _as_non_empty_str_list(evidence_pack.get("trace_ids"))
36
+ context_checksum = str(evidence_pack.get("context_checksum", "")).strip()
37
+ profile_version = str(evidence_pack.get("profile_version", "")).strip()
38
+ intent_gate_version = str(evidence_pack.get("intent_gate_version", "")).strip()
39
+ evidence_profile = str(evidence_pack.get("evidence_profile", "")).strip()
29
40
  resolved_claim = {
30
41
  **claim,
31
42
  "artifacts": [f".omg/evidence/{run_id}.json"],
32
43
  "trace_ids": trace_ids,
44
+ "context_checksum": context_checksum,
45
+ "profile_version": profile_version,
46
+ "intent_gate_version": intent_gate_version,
47
+ "evidence_profile": evidence_profile,
33
48
  }
34
49
 
35
50
  result = judge_claim(resolved_claim)
@@ -39,6 +54,10 @@ def judge_claims(project_dir: str, claims: list[dict[str, Any]]) -> dict[str, An
39
54
  updated_reasons.extend(council_reasons)
40
55
  result = {**result, "reasons": updated_reasons, "verdict": "block"}
41
56
  result_with_run = {**result, "run_id": run_id}
57
+ result_with_run["context_checksum"] = str(resolved_claim.get("context_checksum", "")).strip()
58
+ result_with_run["profile_version"] = str(resolved_claim.get("profile_version", "")).strip()
59
+ result_with_run["intent_gate_version"] = str(resolved_claim.get("intent_gate_version", "")).strip()
60
+ result_with_run["advisory_context"] = {"profile_digest": profile_digest}
42
61
  results.append(result_with_run)
43
62
  aggregate_tokens.append(str(result.get("verdict", "")).strip().lower())
44
63
 
@@ -49,6 +68,10 @@ def judge_claims(project_dir: str, claims: list[dict[str, Any]]) -> dict[str, An
49
68
  "run_id": run_id,
50
69
  "claim": claim,
51
70
  "result": result,
71
+ "context_checksum": str(resolved_claim.get("context_checksum", "")).strip(),
72
+ "profile_version": str(resolved_claim.get("profile_version", "")).strip(),
73
+ "intent_gate_version": str(resolved_claim.get("intent_gate_version", "")).strip(),
74
+ "advisory_context": {"profile_digest": profile_digest},
52
75
  }
53
76
  artifact_path.write_text(json.dumps(artifact_payload, indent=2, sort_keys=True), encoding="utf-8")
54
77
 
@@ -58,7 +81,12 @@ def judge_claims(project_dir: str, claims: list[dict[str, Any]]) -> dict[str, An
58
81
  elif any(token == "block" for token in aggregate_tokens):
59
82
  verdict = "insufficient"
60
83
 
61
- return {"schema": "ClaimJudgeResults", "verdict": verdict, "results": results}
84
+ return {
85
+ "schema": "ClaimJudgeResults",
86
+ "verdict": verdict,
87
+ "results": results,
88
+ "advisory_context": {"profile_digest": profile_digest},
89
+ }
62
90
 
63
91
 
64
92
  def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
@@ -69,12 +97,15 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
69
97
  trace_ids = _as_non_empty_str_list(normalized_claim.get("trace_ids"))
70
98
  security_scans = normalized_claim.get("security_scans")
71
99
  browser_evidence = normalized_claim.get("browser_evidence")
100
+ evidence_profile = str(normalized_claim.get("evidence_profile", "")).strip()
101
+ evidence_requirements = requirements_for_profile(evidence_profile)
102
+ requirement_set = {str(item).strip() for item in evidence_requirements if str(item).strip()}
72
103
  causal_chain = _as_dict(normalized_claim.get("causal_chain"))
73
104
 
74
105
  reasons: list[dict[str, Any]] = []
75
106
  advisories: list[str] = []
76
107
 
77
- if not artifacts:
108
+ if "tests" in requirement_set and not artifacts:
78
109
  reasons.append(
79
110
  {
80
111
  "code": "missing_artifacts",
@@ -83,7 +114,7 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
83
114
  }
84
115
  )
85
116
 
86
- if not trace_ids:
117
+ if "trace_link" in requirement_set and not trace_ids:
87
118
  reasons.append(
88
119
  {
89
120
  "code": "missing_trace_ids",
@@ -92,7 +123,7 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
92
123
  }
93
124
  )
94
125
 
95
- if _has_failed_scan(security_scans):
126
+ if "security_scan" in requirement_set and _has_failed_scan(security_scans):
96
127
  reasons.append(
97
128
  {
98
129
  "code": "security_scan_failed",
@@ -101,7 +132,7 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
101
132
  }
102
133
  )
103
134
 
104
- if _has_failed_scan(browser_evidence):
135
+ if requirement_set == set(FULL_REQUIREMENTS) and _has_failed_scan(browser_evidence):
105
136
  reasons.append(
106
137
  {
107
138
  "code": "browser_evidence_failed",
@@ -126,10 +157,15 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
126
157
  }
127
158
  )
128
159
 
129
- causal_chain_errors = _validate_causal_chain(causal_chain)
160
+ strict_mode = os.environ.get("OMG_PROOF_CHAIN_STRICT", "0").strip() == "1"
161
+ strict_causal_chain = strict_mode or _claim_type_enforces_strict_causal_chain(
162
+ claim_type=claim_type,
163
+ claim=claim,
164
+ )
165
+
166
+ causal_chain_errors = _validate_causal_chain(causal_chain, require_versions=strict_causal_chain)
130
167
  if causal_chain_errors:
131
- strict_mode = os.environ.get("OMG_PROOF_CHAIN_STRICT", "0").strip() == "1"
132
- if strict_mode:
168
+ if strict_causal_chain:
133
169
  reasons.append(
134
170
  {
135
171
  "code": "missing_causal_chain",
@@ -163,6 +199,8 @@ def judge_claim(claim: dict[str, Any]) -> dict[str, Any]:
163
199
  "browser_evidence": browser_evidence if isinstance(browser_evidence, list) else [],
164
200
  "causal_chain": causal_chain,
165
201
  "advisories": advisories,
202
+ "evidence_profile": evidence_profile,
203
+ "evidence_requirements": list(evidence_requirements),
166
204
  },
167
205
  }
168
206
 
@@ -192,6 +230,9 @@ def _normalize_claim(claim: dict[str, Any]) -> dict[str, Any]:
192
230
  "verification_status": str(claim.get("verification_status", evidence.get("verification_status", ""))).strip(),
193
231
  "waiver_artifact_path": str(claim.get("waiver_artifact_path", evidence.get("waiver_artifact_path", ""))).strip(),
194
232
  "lock_verification": lock_verification,
233
+ "context_checksum": str(claim.get("context_checksum", evidence.get("context_checksum", ""))).strip(),
234
+ "profile_version": str(claim.get("profile_version", evidence.get("profile_version", ""))).strip(),
235
+ "intent_gate_version": str(claim.get("intent_gate_version", evidence.get("intent_gate_version", ""))).strip(),
195
236
  }
196
237
 
197
238
  return {
@@ -204,15 +245,19 @@ def _normalize_claim(claim: dict[str, Any]) -> dict[str, Any]:
204
245
  "security_scans": security_scans,
205
246
  "browser_evidence": browser_evidence,
206
247
  "causal_chain": causal_chain,
248
+ "evidence_profile": str(claim.get("evidence_profile", evidence.get("evidence_profile", ""))).strip(),
207
249
  }
208
250
 
209
251
 
210
- def _validate_causal_chain(causal_chain: dict[str, Any]) -> list[str]:
252
+ def _validate_causal_chain(causal_chain: dict[str, Any], *, require_versions: bool) -> list[str]:
211
253
  errors: list[str] = []
212
254
  lock_id = str(causal_chain.get("lock_id", "")).strip()
213
255
  delta_summary = causal_chain.get("delta_summary")
214
256
  verification_status = str(causal_chain.get("verification_status", "")).strip()
215
257
  waiver_artifact_path = str(causal_chain.get("waiver_artifact_path", "")).strip()
258
+ context_checksum = str(causal_chain.get("context_checksum", "")).strip()
259
+ profile_version = str(causal_chain.get("profile_version", "")).strip()
260
+ intent_gate_version = str(causal_chain.get("intent_gate_version", "")).strip()
216
261
  lock_verification = _as_dict(causal_chain.get("lock_verification"))
217
262
 
218
263
  if not lock_id:
@@ -227,9 +272,34 @@ def _validate_causal_chain(causal_chain: dict[str, Any]) -> list[str]:
227
272
  if not waiver_artifact_path and not lock_satisfied:
228
273
  errors.append("missing_waiver_or_lock_satisfied_proof")
229
274
 
275
+ if require_versions:
276
+ if not context_checksum:
277
+ errors.append("missing_context_checksum")
278
+ if not profile_version:
279
+ errors.append("missing_profile_version")
280
+ if not intent_gate_version:
281
+ errors.append("missing_intent_gate_version")
282
+
230
283
  return errors
231
284
 
232
285
 
286
+ def _claim_type_enforces_strict_causal_chain(*, claim_type: str, claim: dict[str, Any]) -> bool:
287
+ mode = str(claim.get("causal_chain_mode", "")).strip().lower()
288
+ if mode == "legacy":
289
+ return False
290
+ if mode == "strict":
291
+ return True
292
+
293
+ if isinstance(claim.get("require_causal_chain"), bool):
294
+ return bool(claim.get("require_causal_chain"))
295
+
296
+ normalized = claim_type.strip().lower()
297
+ if not normalized:
298
+ return False
299
+ tokens = {item for item in normalized.replace("-", "_").split("_") if item}
300
+ return bool(tokens & {"runtime", "council"})
301
+
302
+
233
303
  def _normalize_artifact_records(value: Any) -> list[str]:
234
304
  if not isinstance(value, list):
235
305
  return []
@@ -603,7 +603,21 @@ def _init_bootstrap(project_dir: str, reason: str) -> list[str]:
603
603
  "name: omg-project\n"
604
604
  "description: initialized by OMG standalone compat bootstrap\n"
605
605
  "language: unknown\n"
606
- "framework: unknown\n",
606
+ "framework: unknown\n"
607
+ "stack: []\n"
608
+ "conventions: {}\n"
609
+ "ai_behavior: {}\n"
610
+ "preferences:\n"
611
+ " architecture_requests: []\n"
612
+ " constraints: {}\n"
613
+ " routing:\n"
614
+ " prefer_clarification: false\n"
615
+ "user_vector:\n"
616
+ " tags: []\n"
617
+ " summary: \"\"\n"
618
+ " confidence: 0.0\n"
619
+ "profile_provenance:\n"
620
+ " recent_updates: []\n",
607
621
  )
608
622
  _write_if_missing(
609
623
  idea_path,