@trac3er/oh-my-god 2.2.3 → 2.2.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 (1047) 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 +14 -1
  7. package/CLI-ADAPTER-MAP.md +3 -3
  8. package/OMG-setup.sh +7 -6
  9. package/OMG_COMPAT_CONTRACT.md +1 -1
  10. package/README.md +4 -2
  11. package/artifacts/public/dist/public/manifest.json +2 -2
  12. package/commands/OMG:validate.md +1 -1
  13. package/dist/enterprise/manifest.json +2 -2
  14. package/dist/public/manifest.json +2 -2
  15. package/docs/install/github-app.md +8 -7
  16. package/hooks/_common.py +20 -6
  17. package/hooks/secret-guard.py +3 -2
  18. package/hooks/stop_dispatcher.py +20 -2
  19. package/hooks/terms-guard.py +96 -0
  20. package/hooks/test-validator.py +36 -4
  21. package/hud/omg-hud.mjs +1 -1
  22. package/package.json +1 -1
  23. package/plugins/advanced/plugin.json +1 -1
  24. package/plugins/core/plugin.json +1 -1
  25. package/pyproject.toml +1 -1
  26. package/registry/bundles/algorithms.yaml +1 -1
  27. package/registry/bundles/api-twin.yaml +1 -1
  28. package/registry/bundles/ast-pack.yaml +1 -1
  29. package/registry/bundles/claim-judge.yaml +1 -1
  30. package/registry/bundles/control-plane.yaml +1 -1
  31. package/registry/bundles/data-lineage.yaml +1 -1
  32. package/registry/bundles/delta-classifier.yaml +1 -1
  33. package/registry/bundles/eval-gate.yaml +1 -1
  34. package/registry/bundles/hash-edit.yaml +1 -1
  35. package/registry/bundles/health.yaml +1 -1
  36. package/registry/bundles/hook-governor.yaml +1 -1
  37. package/registry/bundles/incident-replay.yaml +1 -1
  38. package/registry/bundles/lsp-pack.yaml +1 -1
  39. package/registry/bundles/mcp-fabric.yaml +1 -1
  40. package/registry/bundles/plan-council.yaml +1 -1
  41. package/registry/bundles/preflight.yaml +1 -1
  42. package/registry/bundles/proof-gate.yaml +1 -1
  43. package/registry/bundles/remote-supervisor.yaml +1 -1
  44. package/registry/bundles/robotics.yaml +1 -1
  45. package/registry/bundles/secure-worktree-pipeline.yaml +1 -1
  46. package/registry/bundles/security-check.yaml +1 -1
  47. package/registry/bundles/terminal-lane.yaml +1 -1
  48. package/registry/bundles/test-intent-lock.yaml +1 -1
  49. package/registry/bundles/tracebank.yaml +1 -1
  50. package/registry/bundles/vision.yaml +1 -1
  51. package/registry/omg-capability.schema.json +1 -1
  52. package/runtime/adoption.py +3 -2
  53. package/runtime/compliance_governor.py +28 -2
  54. package/runtime/context_compiler.py +131 -0
  55. package/runtime/contract_compiler.py +120 -25
  56. package/runtime/delta_classifier.py +68 -0
  57. package/runtime/github_review_bot.py +2 -2
  58. package/runtime/github_review_formatter.py +14 -0
  59. package/runtime/mutation_gate.py +38 -9
  60. package/runtime/omg_compat_contract_snapshot.json +1 -1
  61. package/runtime/provider_parity_eval.py +109 -0
  62. package/runtime/test_intent_lock.py +24 -2
  63. package/scripts/omg.py +63 -6
  64. package/settings.json +13 -3
  65. package/artifacts/release/.agents/skills/omg/AGENTS.fragment.md +0 -75
  66. package/artifacts/release/.agents/skills/omg/algorithms/SKILL.md +0 -11
  67. package/artifacts/release/.agents/skills/omg/algorithms/openai.yaml +0 -11
  68. package/artifacts/release/.agents/skills/omg/api-twin/SKILL.md +0 -11
  69. package/artifacts/release/.agents/skills/omg/api-twin/openai.yaml +0 -12
  70. package/artifacts/release/.agents/skills/omg/ast-pack/SKILL.md +0 -11
  71. package/artifacts/release/.agents/skills/omg/ast-pack/openai.yaml +0 -12
  72. package/artifacts/release/.agents/skills/omg/claim-judge/SKILL.md +0 -11
  73. package/artifacts/release/.agents/skills/omg/claim-judge/openai.yaml +0 -13
  74. package/artifacts/release/.agents/skills/omg/codex-mcp.toml +0 -4
  75. package/artifacts/release/.agents/skills/omg/codex-rules.md +0 -38
  76. package/artifacts/release/.agents/skills/omg/control-plane/SKILL.md +0 -11
  77. package/artifacts/release/.agents/skills/omg/control-plane/openai.yaml +0 -14
  78. package/artifacts/release/.agents/skills/omg/data-lineage/SKILL.md +0 -11
  79. package/artifacts/release/.agents/skills/omg/data-lineage/openai.yaml +0 -12
  80. package/artifacts/release/.agents/skills/omg/delta-classifier/SKILL.md +0 -11
  81. package/artifacts/release/.agents/skills/omg/delta-classifier/openai.yaml +0 -12
  82. package/artifacts/release/.agents/skills/omg/eval-gate/SKILL.md +0 -11
  83. package/artifacts/release/.agents/skills/omg/eval-gate/openai.yaml +0 -12
  84. package/artifacts/release/.agents/skills/omg/hash-edit/SKILL.md +0 -11
  85. package/artifacts/release/.agents/skills/omg/hash-edit/openai.yaml +0 -11
  86. package/artifacts/release/.agents/skills/omg/health/SKILL.md +0 -11
  87. package/artifacts/release/.agents/skills/omg/health/openai.yaml +0 -11
  88. package/artifacts/release/.agents/skills/omg/hook-governor/SKILL.md +0 -11
  89. package/artifacts/release/.agents/skills/omg/hook-governor/openai.yaml +0 -11
  90. package/artifacts/release/.agents/skills/omg/incident-replay/SKILL.md +0 -11
  91. package/artifacts/release/.agents/skills/omg/incident-replay/openai.yaml +0 -12
  92. package/artifacts/release/.agents/skills/omg/lsp-pack/SKILL.md +0 -11
  93. package/artifacts/release/.agents/skills/omg/lsp-pack/openai.yaml +0 -12
  94. package/artifacts/release/.agents/skills/omg/mcp-fabric/SKILL.md +0 -11
  95. package/artifacts/release/.agents/skills/omg/mcp-fabric/openai.yaml +0 -13
  96. package/artifacts/release/.agents/skills/omg/plan-council/SKILL.md +0 -11
  97. package/artifacts/release/.agents/skills/omg/plan-council/openai.yaml +0 -12
  98. package/artifacts/release/.agents/skills/omg/preflight/SKILL.md +0 -11
  99. package/artifacts/release/.agents/skills/omg/preflight/openai.yaml +0 -12
  100. package/artifacts/release/.agents/skills/omg/proof-gate/SKILL.md +0 -11
  101. package/artifacts/release/.agents/skills/omg/proof-gate/openai.yaml +0 -13
  102. package/artifacts/release/.agents/skills/omg/remote-supervisor/SKILL.md +0 -11
  103. package/artifacts/release/.agents/skills/omg/remote-supervisor/openai.yaml +0 -12
  104. package/artifacts/release/.agents/skills/omg/robotics/SKILL.md +0 -11
  105. package/artifacts/release/.agents/skills/omg/robotics/openai.yaml +0 -11
  106. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +0 -11
  107. package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +0 -12
  108. package/artifacts/release/.agents/skills/omg/security-check/SKILL.md +0 -11
  109. package/artifacts/release/.agents/skills/omg/security-check/openai.yaml +0 -13
  110. package/artifacts/release/.agents/skills/omg/terminal-lane/SKILL.md +0 -11
  111. package/artifacts/release/.agents/skills/omg/terminal-lane/openai.yaml +0 -11
  112. package/artifacts/release/.agents/skills/omg/test-intent-lock/SKILL.md +0 -11
  113. package/artifacts/release/.agents/skills/omg/test-intent-lock/openai.yaml +0 -13
  114. package/artifacts/release/.agents/skills/omg/tracebank/SKILL.md +0 -11
  115. package/artifacts/release/.agents/skills/omg/tracebank/openai.yaml +0 -12
  116. package/artifacts/release/.agents/skills/omg/vision/SKILL.md +0 -11
  117. package/artifacts/release/.agents/skills/omg/vision/openai.yaml +0 -11
  118. package/artifacts/release/.claude-plugin/marketplace.json +0 -36
  119. package/artifacts/release/.claude-plugin/mcp.json +0 -11
  120. package/artifacts/release/.claude-plugin/plugin.json +0 -23
  121. package/artifacts/release/.gemini/settings.json +0 -72
  122. package/artifacts/release/.kimi/mcp.json +0 -72
  123. package/artifacts/release/.mcp.json +0 -18
  124. package/artifacts/release/OMG_COMPAT_CONTRACT.md +0 -111
  125. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.minisig +0 -4
  126. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.statement.json +0 -35
  127. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.minisig +0 -4
  128. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.statement.json +0 -35
  129. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.minisig +0 -4
  130. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.statement.json +0 -35
  131. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.minisig +0 -4
  132. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.statement.json +0 -35
  133. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.minisig +0 -4
  134. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.statement.json +0 -35
  135. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.minisig +0 -4
  136. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.statement.json +0 -35
  137. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.minisig +0 -4
  138. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.statement.json +0 -35
  139. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.minisig +0 -4
  140. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.statement.json +0 -35
  141. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.minisig +0 -4
  142. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.statement.json +0 -35
  143. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-mcp.toml.minisig +0 -4
  144. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-mcp.toml.statement.json +0 -35
  145. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-rules.md.minisig +0 -4
  146. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/codex-rules.md.statement.json +0 -35
  147. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.minisig +0 -4
  148. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.statement.json +0 -35
  149. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.minisig +0 -4
  150. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.statement.json +0 -35
  151. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.minisig +0 -4
  152. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.statement.json +0 -35
  153. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.minisig +0 -4
  154. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.statement.json +0 -35
  155. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.minisig +0 -4
  156. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.statement.json +0 -35
  157. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.minisig +0 -4
  158. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.statement.json +0 -35
  159. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.minisig +0 -4
  160. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.statement.json +0 -35
  161. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.minisig +0 -4
  162. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.statement.json +0 -35
  163. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.minisig +0 -4
  164. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.statement.json +0 -35
  165. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.minisig +0 -4
  166. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.statement.json +0 -35
  167. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/health/SKILL.md.minisig +0 -4
  168. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/health/SKILL.md.statement.json +0 -35
  169. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/health/openai.yaml.minisig +0 -4
  170. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/health/openai.yaml.statement.json +0 -35
  171. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.minisig +0 -4
  172. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.statement.json +0 -35
  173. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.minisig +0 -4
  174. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.statement.json +0 -35
  175. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.minisig +0 -4
  176. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.statement.json +0 -35
  177. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.minisig +0 -4
  178. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.statement.json +0 -35
  179. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.minisig +0 -4
  180. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.statement.json +0 -35
  181. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.minisig +0 -4
  182. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.statement.json +0 -35
  183. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.minisig +0 -4
  184. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.statement.json +0 -35
  185. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.minisig +0 -4
  186. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.statement.json +0 -35
  187. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.minisig +0 -4
  188. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.statement.json +0 -35
  189. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.minisig +0 -4
  190. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.statement.json +0 -35
  191. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.minisig +0 -4
  192. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.statement.json +0 -35
  193. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.minisig +0 -4
  194. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.statement.json +0 -35
  195. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.minisig +0 -4
  196. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.statement.json +0 -35
  197. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.minisig +0 -4
  198. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.statement.json +0 -35
  199. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.minisig +0 -4
  200. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.statement.json +0 -35
  201. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.minisig +0 -4
  202. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.statement.json +0 -35
  203. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.minisig +0 -4
  204. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.statement.json +0 -35
  205. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.minisig +0 -4
  206. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.statement.json +0 -35
  207. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.minisig +0 -4
  208. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.statement.json +0 -35
  209. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.minisig +0 -4
  210. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.statement.json +0 -35
  211. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.minisig +0 -4
  212. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.statement.json +0 -35
  213. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.minisig +0 -4
  214. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.statement.json +0 -35
  215. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.minisig +0 -4
  216. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.statement.json +0 -35
  217. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.minisig +0 -4
  218. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.statement.json +0 -35
  219. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.minisig +0 -4
  220. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.statement.json +0 -35
  221. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.minisig +0 -4
  222. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.statement.json +0 -35
  223. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.minisig +0 -4
  224. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.statement.json +0 -35
  225. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.minisig +0 -4
  226. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.statement.json +0 -35
  227. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/SKILL.md.minisig +0 -4
  228. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/SKILL.md.statement.json +0 -35
  229. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/openai.yaml.minisig +0 -4
  230. package/artifacts/release/dist/enterprise/attestations/bundle/.agents/skills/omg/vision/openai.yaml.statement.json +0 -35
  231. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/marketplace.json.minisig +0 -4
  232. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/marketplace.json.statement.json +0 -35
  233. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/mcp.json.minisig +0 -4
  234. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/mcp.json.statement.json +0 -35
  235. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/plugin.json.minisig +0 -4
  236. package/artifacts/release/dist/enterprise/attestations/bundle/.claude-plugin/plugin.json.statement.json +0 -35
  237. package/artifacts/release/dist/enterprise/attestations/bundle/.gemini/settings.json.minisig +0 -4
  238. package/artifacts/release/dist/enterprise/attestations/bundle/.gemini/settings.json.statement.json +0 -35
  239. package/artifacts/release/dist/enterprise/attestations/bundle/.kimi/mcp.json.minisig +0 -4
  240. package/artifacts/release/dist/enterprise/attestations/bundle/.kimi/mcp.json.statement.json +0 -35
  241. package/artifacts/release/dist/enterprise/attestations/bundle/.mcp.json.minisig +0 -4
  242. package/artifacts/release/dist/enterprise/attestations/bundle/.mcp.json.statement.json +0 -35
  243. package/artifacts/release/dist/enterprise/attestations/bundle/OMG_COMPAT_CONTRACT.md.minisig +0 -4
  244. package/artifacts/release/dist/enterprise/attestations/bundle/OMG_COMPAT_CONTRACT.md.statement.json +0 -35
  245. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:code-review.md.minisig +0 -4
  246. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:code-review.md.statement.json +0 -35
  247. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:deep-plan.md.minisig +0 -4
  248. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:deep-plan.md.statement.json +0 -35
  249. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:handoff.md.minisig +0 -4
  250. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:handoff.md.statement.json +0 -35
  251. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:learn.md.minisig +0 -4
  252. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:learn.md.statement.json +0 -35
  253. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:maintainer.md.minisig +0 -4
  254. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:maintainer.md.statement.json +0 -35
  255. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ralph-start.md.minisig +0 -4
  256. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ralph-start.md.statement.json +0 -35
  257. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ralph-stop.md.minisig +0 -4
  258. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ralph-stop.md.statement.json +0 -35
  259. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:security-review.md.minisig +0 -4
  260. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:security-review.md.statement.json +0 -35
  261. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:sequential-thinking.md.minisig +0 -4
  262. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:sequential-thinking.md.statement.json +0 -35
  263. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ship.md.minisig +0 -4
  264. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/commands/OMG:ship.md.statement.json +0 -35
  265. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/plugin.json.minisig +0 -4
  266. package/artifacts/release/dist/enterprise/attestations/bundle/plugins/advanced/plugin.json.statement.json +0 -35
  267. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/algorithms.yaml.minisig +0 -4
  268. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/algorithms.yaml.statement.json +0 -35
  269. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/api-twin.yaml.minisig +0 -4
  270. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/api-twin.yaml.statement.json +0 -35
  271. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/ast-pack.yaml.minisig +0 -4
  272. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/ast-pack.yaml.statement.json +0 -35
  273. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/claim-judge.yaml.minisig +0 -4
  274. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/claim-judge.yaml.statement.json +0 -35
  275. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/control-plane.yaml.minisig +0 -4
  276. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/control-plane.yaml.statement.json +0 -35
  277. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/data-lineage.yaml.minisig +0 -4
  278. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/data-lineage.yaml.statement.json +0 -35
  279. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/delta-classifier.yaml.minisig +0 -4
  280. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/delta-classifier.yaml.statement.json +0 -35
  281. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/eval-gate.yaml.minisig +0 -4
  282. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/eval-gate.yaml.statement.json +0 -35
  283. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/hash-edit.yaml.minisig +0 -4
  284. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/hash-edit.yaml.statement.json +0 -35
  285. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/health.yaml.minisig +0 -4
  286. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/health.yaml.statement.json +0 -35
  287. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/hook-governor.yaml.minisig +0 -4
  288. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/hook-governor.yaml.statement.json +0 -35
  289. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/incident-replay.yaml.minisig +0 -4
  290. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/incident-replay.yaml.statement.json +0 -35
  291. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/lsp-pack.yaml.minisig +0 -4
  292. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/lsp-pack.yaml.statement.json +0 -35
  293. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/mcp-fabric.yaml.minisig +0 -4
  294. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/mcp-fabric.yaml.statement.json +0 -35
  295. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/plan-council.yaml.minisig +0 -4
  296. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/plan-council.yaml.statement.json +0 -35
  297. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/preflight.yaml.minisig +0 -4
  298. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/preflight.yaml.statement.json +0 -35
  299. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/proof-gate.yaml.minisig +0 -4
  300. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/proof-gate.yaml.statement.json +0 -35
  301. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/remote-supervisor.yaml.minisig +0 -4
  302. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/remote-supervisor.yaml.statement.json +0 -35
  303. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/robotics.yaml.minisig +0 -4
  304. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/robotics.yaml.statement.json +0 -35
  305. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.minisig +0 -4
  306. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.statement.json +0 -35
  307. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/security-check.yaml.minisig +0 -4
  308. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/security-check.yaml.statement.json +0 -35
  309. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/terminal-lane.yaml.minisig +0 -4
  310. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/terminal-lane.yaml.statement.json +0 -35
  311. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/test-intent-lock.yaml.minisig +0 -4
  312. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/test-intent-lock.yaml.statement.json +0 -35
  313. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/tracebank.yaml.minisig +0 -4
  314. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/tracebank.yaml.statement.json +0 -35
  315. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/vision.yaml.minisig +0 -4
  316. package/artifacts/release/dist/enterprise/attestations/bundle/registry/bundles/vision.yaml.statement.json +0 -35
  317. package/artifacts/release/dist/enterprise/attestations/bundle/registry/omg-capability.schema.json.minisig +0 -4
  318. package/artifacts/release/dist/enterprise/attestations/bundle/registry/omg-capability.schema.json.statement.json +0 -35
  319. package/artifacts/release/dist/enterprise/attestations/bundle/settings.json.minisig +0 -4
  320. package/artifacts/release/dist/enterprise/attestations/bundle/settings.json.statement.json +0 -35
  321. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +0 -75
  322. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +0 -11
  323. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +0 -11
  324. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +0 -11
  325. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +0 -12
  326. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/ast-pack/SKILL.md +0 -11
  327. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/ast-pack/openai.yaml +0 -12
  328. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/claim-judge/SKILL.md +0 -11
  329. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/claim-judge/openai.yaml +0 -13
  330. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-mcp.toml +0 -4
  331. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +0 -38
  332. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/SKILL.md +0 -11
  333. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/openai.yaml +0 -14
  334. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +0 -11
  335. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +0 -12
  336. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +0 -11
  337. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +0 -12
  338. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +0 -11
  339. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +0 -12
  340. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hash-edit/SKILL.md +0 -11
  341. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hash-edit/openai.yaml +0 -11
  342. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +0 -11
  343. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +0 -11
  344. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/SKILL.md +0 -11
  345. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/openai.yaml +0 -11
  346. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +0 -11
  347. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +0 -12
  348. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/SKILL.md +0 -11
  349. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/openai.yaml +0 -12
  350. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +0 -11
  351. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +0 -13
  352. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/plan-council/SKILL.md +0 -11
  353. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/plan-council/openai.yaml +0 -12
  354. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +0 -11
  355. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +0 -12
  356. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/proof-gate/SKILL.md +0 -11
  357. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/proof-gate/openai.yaml +0 -13
  358. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +0 -11
  359. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +0 -12
  360. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +0 -11
  361. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +0 -11
  362. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +0 -11
  363. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +0 -12
  364. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +0 -11
  365. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +0 -13
  366. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/terminal-lane/SKILL.md +0 -11
  367. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/terminal-lane/openai.yaml +0 -11
  368. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/test-intent-lock/SKILL.md +0 -11
  369. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/test-intent-lock/openai.yaml +0 -13
  370. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +0 -11
  371. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +0 -12
  372. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +0 -11
  373. package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +0 -11
  374. package/artifacts/release/dist/enterprise/bundle/.claude-plugin/marketplace.json +0 -36
  375. package/artifacts/release/dist/enterprise/bundle/.claude-plugin/mcp.json +0 -11
  376. package/artifacts/release/dist/enterprise/bundle/.claude-plugin/plugin.json +0 -23
  377. package/artifacts/release/dist/enterprise/bundle/.gemini/settings.json +0 -72
  378. package/artifacts/release/dist/enterprise/bundle/.kimi/mcp.json +0 -72
  379. package/artifacts/release/dist/enterprise/bundle/.mcp.json +0 -18
  380. package/artifacts/release/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +0 -111
  381. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:code-review.md +0 -114
  382. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:deep-plan.md +0 -266
  383. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:handoff.md +0 -115
  384. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:learn.md +0 -110
  385. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:maintainer.md +0 -31
  386. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-start.md +0 -43
  387. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-stop.md +0 -23
  388. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:security-review.md +0 -16
  389. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +0 -20
  390. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/commands/OMG:ship.md +0 -46
  391. package/artifacts/release/dist/enterprise/bundle/plugins/advanced/plugin.json +0 -104
  392. package/artifacts/release/dist/enterprise/bundle/registry/bundles/algorithms.yaml +0 -45
  393. package/artifacts/release/dist/enterprise/bundle/registry/bundles/api-twin.yaml +0 -48
  394. package/artifacts/release/dist/enterprise/bundle/registry/bundles/ast-pack.yaml +0 -80
  395. package/artifacts/release/dist/enterprise/bundle/registry/bundles/claim-judge.yaml +0 -49
  396. package/artifacts/release/dist/enterprise/bundle/registry/bundles/control-plane.yaml +0 -192
  397. package/artifacts/release/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +0 -47
  398. package/artifacts/release/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +0 -47
  399. package/artifacts/release/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +0 -47
  400. package/artifacts/release/dist/enterprise/bundle/registry/bundles/hash-edit.yaml +0 -73
  401. package/artifacts/release/dist/enterprise/bundle/registry/bundles/health.yaml +0 -45
  402. package/artifacts/release/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +0 -101
  403. package/artifacts/release/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +0 -47
  404. package/artifacts/release/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +0 -80
  405. package/artifacts/release/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +0 -53
  406. package/artifacts/release/dist/enterprise/bundle/registry/bundles/plan-council.yaml +0 -56
  407. package/artifacts/release/dist/enterprise/bundle/registry/bundles/preflight.yaml +0 -48
  408. package/artifacts/release/dist/enterprise/bundle/registry/bundles/proof-gate.yaml +0 -49
  409. package/artifacts/release/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +0 -49
  410. package/artifacts/release/dist/enterprise/bundle/registry/bundles/robotics.yaml +0 -45
  411. package/artifacts/release/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +0 -69
  412. package/artifacts/release/dist/enterprise/bundle/registry/bundles/security-check.yaml +0 -50
  413. package/artifacts/release/dist/enterprise/bundle/registry/bundles/terminal-lane.yaml +0 -61
  414. package/artifacts/release/dist/enterprise/bundle/registry/bundles/test-intent-lock.yaml +0 -49
  415. package/artifacts/release/dist/enterprise/bundle/registry/bundles/tracebank.yaml +0 -47
  416. package/artifacts/release/dist/enterprise/bundle/registry/bundles/vision.yaml +0 -45
  417. package/artifacts/release/dist/enterprise/bundle/registry/omg-capability.schema.json +0 -378
  418. package/artifacts/release/dist/enterprise/bundle/settings.json +0 -694
  419. package/artifacts/release/dist/enterprise/manifest.json +0 -1093
  420. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.minisig +0 -4
  421. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/AGENTS.fragment.md.statement.json +0 -35
  422. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.minisig +0 -4
  423. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/algorithms/SKILL.md.statement.json +0 -35
  424. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.minisig +0 -4
  425. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/algorithms/openai.yaml.statement.json +0 -35
  426. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.minisig +0 -4
  427. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/api-twin/SKILL.md.statement.json +0 -35
  428. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.minisig +0 -4
  429. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/api-twin/openai.yaml.statement.json +0 -35
  430. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.minisig +0 -4
  431. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/SKILL.md.statement.json +0 -35
  432. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.minisig +0 -4
  433. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/ast-pack/openai.yaml.statement.json +0 -35
  434. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.minisig +0 -4
  435. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/SKILL.md.statement.json +0 -35
  436. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.minisig +0 -4
  437. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/claim-judge/openai.yaml.statement.json +0 -35
  438. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/codex-mcp.toml.minisig +0 -4
  439. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/codex-mcp.toml.statement.json +0 -35
  440. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/codex-rules.md.minisig +0 -4
  441. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/codex-rules.md.statement.json +0 -35
  442. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.minisig +0 -4
  443. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/control-plane/SKILL.md.statement.json +0 -35
  444. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.minisig +0 -4
  445. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/control-plane/openai.yaml.statement.json +0 -35
  446. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.minisig +0 -4
  447. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/SKILL.md.statement.json +0 -35
  448. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.minisig +0 -4
  449. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/data-lineage/openai.yaml.statement.json +0 -35
  450. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.minisig +0 -4
  451. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/SKILL.md.statement.json +0 -35
  452. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.minisig +0 -4
  453. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/delta-classifier/openai.yaml.statement.json +0 -35
  454. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.minisig +0 -4
  455. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/SKILL.md.statement.json +0 -35
  456. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.minisig +0 -4
  457. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/eval-gate/openai.yaml.statement.json +0 -35
  458. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.minisig +0 -4
  459. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/SKILL.md.statement.json +0 -35
  460. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.minisig +0 -4
  461. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hash-edit/openai.yaml.statement.json +0 -35
  462. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/health/SKILL.md.minisig +0 -4
  463. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/health/SKILL.md.statement.json +0 -35
  464. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/health/openai.yaml.minisig +0 -4
  465. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/health/openai.yaml.statement.json +0 -35
  466. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.minisig +0 -4
  467. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/SKILL.md.statement.json +0 -35
  468. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.minisig +0 -4
  469. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/hook-governor/openai.yaml.statement.json +0 -35
  470. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.minisig +0 -4
  471. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/SKILL.md.statement.json +0 -35
  472. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.minisig +0 -4
  473. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/incident-replay/openai.yaml.statement.json +0 -35
  474. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.minisig +0 -4
  475. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/SKILL.md.statement.json +0 -35
  476. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.minisig +0 -4
  477. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/lsp-pack/openai.yaml.statement.json +0 -35
  478. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.minisig +0 -4
  479. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/SKILL.md.statement.json +0 -35
  480. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.minisig +0 -4
  481. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/mcp-fabric/openai.yaml.statement.json +0 -35
  482. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.minisig +0 -4
  483. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/plan-council/SKILL.md.statement.json +0 -35
  484. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.minisig +0 -4
  485. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/plan-council/openai.yaml.statement.json +0 -35
  486. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.minisig +0 -4
  487. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/preflight/SKILL.md.statement.json +0 -35
  488. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.minisig +0 -4
  489. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/preflight/openai.yaml.statement.json +0 -35
  490. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.minisig +0 -4
  491. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/SKILL.md.statement.json +0 -35
  492. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.minisig +0 -4
  493. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/proof-gate/openai.yaml.statement.json +0 -35
  494. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.minisig +0 -4
  495. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/SKILL.md.statement.json +0 -35
  496. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.minisig +0 -4
  497. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/remote-supervisor/openai.yaml.statement.json +0 -35
  498. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.minisig +0 -4
  499. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/robotics/SKILL.md.statement.json +0 -35
  500. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.minisig +0 -4
  501. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/robotics/openai.yaml.statement.json +0 -35
  502. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.minisig +0 -4
  503. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md.statement.json +0 -35
  504. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.minisig +0 -4
  505. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml.statement.json +0 -35
  506. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.minisig +0 -4
  507. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/security-check/SKILL.md.statement.json +0 -35
  508. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.minisig +0 -4
  509. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/security-check/openai.yaml.statement.json +0 -35
  510. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.minisig +0 -4
  511. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/SKILL.md.statement.json +0 -35
  512. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.minisig +0 -4
  513. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/terminal-lane/openai.yaml.statement.json +0 -35
  514. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.minisig +0 -4
  515. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/SKILL.md.statement.json +0 -35
  516. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.minisig +0 -4
  517. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/test-intent-lock/openai.yaml.statement.json +0 -35
  518. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.minisig +0 -4
  519. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/tracebank/SKILL.md.statement.json +0 -35
  520. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.minisig +0 -4
  521. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/tracebank/openai.yaml.statement.json +0 -35
  522. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/vision/SKILL.md.minisig +0 -4
  523. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/vision/SKILL.md.statement.json +0 -35
  524. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/vision/openai.yaml.minisig +0 -4
  525. package/artifacts/release/dist/public/attestations/bundle/.agents/skills/omg/vision/openai.yaml.statement.json +0 -35
  526. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/marketplace.json.minisig +0 -4
  527. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/marketplace.json.statement.json +0 -35
  528. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/mcp.json.minisig +0 -4
  529. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/mcp.json.statement.json +0 -35
  530. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/plugin.json.minisig +0 -4
  531. package/artifacts/release/dist/public/attestations/bundle/.claude-plugin/plugin.json.statement.json +0 -35
  532. package/artifacts/release/dist/public/attestations/bundle/.gemini/settings.json.minisig +0 -4
  533. package/artifacts/release/dist/public/attestations/bundle/.gemini/settings.json.statement.json +0 -35
  534. package/artifacts/release/dist/public/attestations/bundle/.kimi/mcp.json.minisig +0 -4
  535. package/artifacts/release/dist/public/attestations/bundle/.kimi/mcp.json.statement.json +0 -35
  536. package/artifacts/release/dist/public/attestations/bundle/.mcp.json.minisig +0 -4
  537. package/artifacts/release/dist/public/attestations/bundle/.mcp.json.statement.json +0 -35
  538. package/artifacts/release/dist/public/attestations/bundle/OMG_COMPAT_CONTRACT.md.minisig +0 -4
  539. package/artifacts/release/dist/public/attestations/bundle/OMG_COMPAT_CONTRACT.md.statement.json +0 -35
  540. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:code-review.md.minisig +0 -4
  541. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:code-review.md.statement.json +0 -35
  542. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:deep-plan.md.minisig +0 -4
  543. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:deep-plan.md.statement.json +0 -35
  544. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:handoff.md.minisig +0 -4
  545. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:handoff.md.statement.json +0 -35
  546. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:learn.md.minisig +0 -4
  547. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:learn.md.statement.json +0 -35
  548. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:maintainer.md.minisig +0 -4
  549. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:maintainer.md.statement.json +0 -35
  550. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ralph-start.md.minisig +0 -4
  551. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ralph-start.md.statement.json +0 -35
  552. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ralph-stop.md.minisig +0 -4
  553. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ralph-stop.md.statement.json +0 -35
  554. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:security-review.md.minisig +0 -4
  555. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:security-review.md.statement.json +0 -35
  556. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:sequential-thinking.md.minisig +0 -4
  557. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:sequential-thinking.md.statement.json +0 -35
  558. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ship.md.minisig +0 -4
  559. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/commands/OMG:ship.md.statement.json +0 -35
  560. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/plugin.json.minisig +0 -4
  561. package/artifacts/release/dist/public/attestations/bundle/plugins/advanced/plugin.json.statement.json +0 -35
  562. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/algorithms.yaml.minisig +0 -4
  563. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/algorithms.yaml.statement.json +0 -35
  564. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/api-twin.yaml.minisig +0 -4
  565. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/api-twin.yaml.statement.json +0 -35
  566. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/ast-pack.yaml.minisig +0 -4
  567. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/ast-pack.yaml.statement.json +0 -35
  568. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/claim-judge.yaml.minisig +0 -4
  569. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/claim-judge.yaml.statement.json +0 -35
  570. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/control-plane.yaml.minisig +0 -4
  571. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/control-plane.yaml.statement.json +0 -35
  572. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/data-lineage.yaml.minisig +0 -4
  573. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/data-lineage.yaml.statement.json +0 -35
  574. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/delta-classifier.yaml.minisig +0 -4
  575. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/delta-classifier.yaml.statement.json +0 -35
  576. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/eval-gate.yaml.minisig +0 -4
  577. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/eval-gate.yaml.statement.json +0 -35
  578. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/hash-edit.yaml.minisig +0 -4
  579. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/hash-edit.yaml.statement.json +0 -35
  580. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/health.yaml.minisig +0 -4
  581. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/health.yaml.statement.json +0 -35
  582. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/hook-governor.yaml.minisig +0 -4
  583. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/hook-governor.yaml.statement.json +0 -35
  584. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/incident-replay.yaml.minisig +0 -4
  585. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/incident-replay.yaml.statement.json +0 -35
  586. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/lsp-pack.yaml.minisig +0 -4
  587. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/lsp-pack.yaml.statement.json +0 -35
  588. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/mcp-fabric.yaml.minisig +0 -4
  589. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/mcp-fabric.yaml.statement.json +0 -35
  590. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/plan-council.yaml.minisig +0 -4
  591. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/plan-council.yaml.statement.json +0 -35
  592. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/preflight.yaml.minisig +0 -4
  593. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/preflight.yaml.statement.json +0 -35
  594. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/proof-gate.yaml.minisig +0 -4
  595. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/proof-gate.yaml.statement.json +0 -35
  596. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/remote-supervisor.yaml.minisig +0 -4
  597. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/remote-supervisor.yaml.statement.json +0 -35
  598. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/robotics.yaml.minisig +0 -4
  599. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/robotics.yaml.statement.json +0 -35
  600. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.minisig +0 -4
  601. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/secure-worktree-pipeline.yaml.statement.json +0 -35
  602. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/security-check.yaml.minisig +0 -4
  603. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/security-check.yaml.statement.json +0 -35
  604. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/terminal-lane.yaml.minisig +0 -4
  605. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/terminal-lane.yaml.statement.json +0 -35
  606. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/test-intent-lock.yaml.minisig +0 -4
  607. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/test-intent-lock.yaml.statement.json +0 -35
  608. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/tracebank.yaml.minisig +0 -4
  609. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/tracebank.yaml.statement.json +0 -35
  610. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/vision.yaml.minisig +0 -4
  611. package/artifacts/release/dist/public/attestations/bundle/registry/bundles/vision.yaml.statement.json +0 -35
  612. package/artifacts/release/dist/public/attestations/bundle/registry/omg-capability.schema.json.minisig +0 -4
  613. package/artifacts/release/dist/public/attestations/bundle/registry/omg-capability.schema.json.statement.json +0 -35
  614. package/artifacts/release/dist/public/attestations/bundle/settings.json.minisig +0 -4
  615. package/artifacts/release/dist/public/attestations/bundle/settings.json.statement.json +0 -35
  616. package/artifacts/release/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +0 -75
  617. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +0 -11
  618. package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +0 -11
  619. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +0 -11
  620. package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +0 -12
  621. package/artifacts/release/dist/public/bundle/.agents/skills/omg/ast-pack/SKILL.md +0 -11
  622. package/artifacts/release/dist/public/bundle/.agents/skills/omg/ast-pack/openai.yaml +0 -12
  623. package/artifacts/release/dist/public/bundle/.agents/skills/omg/claim-judge/SKILL.md +0 -11
  624. package/artifacts/release/dist/public/bundle/.agents/skills/omg/claim-judge/openai.yaml +0 -13
  625. package/artifacts/release/dist/public/bundle/.agents/skills/omg/codex-mcp.toml +0 -4
  626. package/artifacts/release/dist/public/bundle/.agents/skills/omg/codex-rules.md +0 -38
  627. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/SKILL.md +0 -11
  628. package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/openai.yaml +0 -14
  629. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +0 -11
  630. package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +0 -12
  631. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +0 -11
  632. package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +0 -12
  633. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +0 -11
  634. package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +0 -12
  635. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hash-edit/SKILL.md +0 -11
  636. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hash-edit/openai.yaml +0 -11
  637. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/SKILL.md +0 -11
  638. package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/openai.yaml +0 -11
  639. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/SKILL.md +0 -11
  640. package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/openai.yaml +0 -11
  641. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +0 -11
  642. package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +0 -12
  643. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/SKILL.md +0 -11
  644. package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/openai.yaml +0 -12
  645. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +0 -11
  646. package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +0 -13
  647. package/artifacts/release/dist/public/bundle/.agents/skills/omg/plan-council/SKILL.md +0 -11
  648. package/artifacts/release/dist/public/bundle/.agents/skills/omg/plan-council/openai.yaml +0 -12
  649. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +0 -11
  650. package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +0 -12
  651. package/artifacts/release/dist/public/bundle/.agents/skills/omg/proof-gate/SKILL.md +0 -11
  652. package/artifacts/release/dist/public/bundle/.agents/skills/omg/proof-gate/openai.yaml +0 -13
  653. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +0 -11
  654. package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +0 -12
  655. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +0 -11
  656. package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +0 -11
  657. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +0 -11
  658. package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +0 -12
  659. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +0 -11
  660. package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +0 -13
  661. package/artifacts/release/dist/public/bundle/.agents/skills/omg/terminal-lane/SKILL.md +0 -11
  662. package/artifacts/release/dist/public/bundle/.agents/skills/omg/terminal-lane/openai.yaml +0 -11
  663. package/artifacts/release/dist/public/bundle/.agents/skills/omg/test-intent-lock/SKILL.md +0 -11
  664. package/artifacts/release/dist/public/bundle/.agents/skills/omg/test-intent-lock/openai.yaml +0 -13
  665. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +0 -11
  666. package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +0 -12
  667. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +0 -11
  668. package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +0 -11
  669. package/artifacts/release/dist/public/bundle/.claude-plugin/marketplace.json +0 -36
  670. package/artifacts/release/dist/public/bundle/.claude-plugin/mcp.json +0 -11
  671. package/artifacts/release/dist/public/bundle/.claude-plugin/plugin.json +0 -23
  672. package/artifacts/release/dist/public/bundle/.gemini/settings.json +0 -72
  673. package/artifacts/release/dist/public/bundle/.kimi/mcp.json +0 -72
  674. package/artifacts/release/dist/public/bundle/.mcp.json +0 -18
  675. package/artifacts/release/dist/public/bundle/OMG_COMPAT_CONTRACT.md +0 -111
  676. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:code-review.md +0 -114
  677. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:deep-plan.md +0 -266
  678. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:handoff.md +0 -115
  679. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:learn.md +0 -110
  680. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:maintainer.md +0 -31
  681. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:ralph-start.md +0 -43
  682. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:ralph-stop.md +0 -23
  683. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:security-review.md +0 -16
  684. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +0 -20
  685. package/artifacts/release/dist/public/bundle/plugins/advanced/commands/OMG:ship.md +0 -46
  686. package/artifacts/release/dist/public/bundle/plugins/advanced/plugin.json +0 -104
  687. package/artifacts/release/dist/public/bundle/registry/bundles/algorithms.yaml +0 -45
  688. package/artifacts/release/dist/public/bundle/registry/bundles/api-twin.yaml +0 -48
  689. package/artifacts/release/dist/public/bundle/registry/bundles/ast-pack.yaml +0 -80
  690. package/artifacts/release/dist/public/bundle/registry/bundles/claim-judge.yaml +0 -49
  691. package/artifacts/release/dist/public/bundle/registry/bundles/control-plane.yaml +0 -192
  692. package/artifacts/release/dist/public/bundle/registry/bundles/data-lineage.yaml +0 -47
  693. package/artifacts/release/dist/public/bundle/registry/bundles/delta-classifier.yaml +0 -47
  694. package/artifacts/release/dist/public/bundle/registry/bundles/eval-gate.yaml +0 -47
  695. package/artifacts/release/dist/public/bundle/registry/bundles/hash-edit.yaml +0 -73
  696. package/artifacts/release/dist/public/bundle/registry/bundles/health.yaml +0 -45
  697. package/artifacts/release/dist/public/bundle/registry/bundles/hook-governor.yaml +0 -101
  698. package/artifacts/release/dist/public/bundle/registry/bundles/incident-replay.yaml +0 -47
  699. package/artifacts/release/dist/public/bundle/registry/bundles/lsp-pack.yaml +0 -80
  700. package/artifacts/release/dist/public/bundle/registry/bundles/mcp-fabric.yaml +0 -53
  701. package/artifacts/release/dist/public/bundle/registry/bundles/plan-council.yaml +0 -56
  702. package/artifacts/release/dist/public/bundle/registry/bundles/preflight.yaml +0 -48
  703. package/artifacts/release/dist/public/bundle/registry/bundles/proof-gate.yaml +0 -49
  704. package/artifacts/release/dist/public/bundle/registry/bundles/remote-supervisor.yaml +0 -49
  705. package/artifacts/release/dist/public/bundle/registry/bundles/robotics.yaml +0 -45
  706. package/artifacts/release/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +0 -69
  707. package/artifacts/release/dist/public/bundle/registry/bundles/security-check.yaml +0 -50
  708. package/artifacts/release/dist/public/bundle/registry/bundles/terminal-lane.yaml +0 -61
  709. package/artifacts/release/dist/public/bundle/registry/bundles/test-intent-lock.yaml +0 -49
  710. package/artifacts/release/dist/public/bundle/registry/bundles/tracebank.yaml +0 -47
  711. package/artifacts/release/dist/public/bundle/registry/bundles/vision.yaml +0 -45
  712. package/artifacts/release/dist/public/bundle/registry/omg-capability.schema.json +0 -378
  713. package/artifacts/release/dist/public/bundle/settings.json +0 -694
  714. package/artifacts/release/dist/public/manifest.json +0 -1093
  715. package/artifacts/release/evidence/music-omr-run-1.json +0 -16
  716. package/artifacts/release/plugins/advanced/commands/OMG:code-review.md +0 -114
  717. package/artifacts/release/plugins/advanced/commands/OMG:deep-plan.md +0 -266
  718. package/artifacts/release/plugins/advanced/commands/OMG:handoff.md +0 -115
  719. package/artifacts/release/plugins/advanced/commands/OMG:learn.md +0 -110
  720. package/artifacts/release/plugins/advanced/commands/OMG:maintainer.md +0 -31
  721. package/artifacts/release/plugins/advanced/commands/OMG:ralph-start.md +0 -43
  722. package/artifacts/release/plugins/advanced/commands/OMG:ralph-stop.md +0 -23
  723. package/artifacts/release/plugins/advanced/commands/OMG:security-review.md +0 -16
  724. package/artifacts/release/plugins/advanced/commands/OMG:sequential-thinking.md +0 -20
  725. package/artifacts/release/plugins/advanced/commands/OMG:ship.md +0 -46
  726. package/artifacts/release/plugins/advanced/plugin.json +0 -104
  727. package/artifacts/release/registry/bundles/algorithms.yaml +0 -45
  728. package/artifacts/release/registry/bundles/api-twin.yaml +0 -48
  729. package/artifacts/release/registry/bundles/ast-pack.yaml +0 -80
  730. package/artifacts/release/registry/bundles/claim-judge.yaml +0 -49
  731. package/artifacts/release/registry/bundles/control-plane.yaml +0 -192
  732. package/artifacts/release/registry/bundles/data-lineage.yaml +0 -47
  733. package/artifacts/release/registry/bundles/delta-classifier.yaml +0 -47
  734. package/artifacts/release/registry/bundles/eval-gate.yaml +0 -47
  735. package/artifacts/release/registry/bundles/hash-edit.yaml +0 -73
  736. package/artifacts/release/registry/bundles/health.yaml +0 -45
  737. package/artifacts/release/registry/bundles/hook-governor.yaml +0 -101
  738. package/artifacts/release/registry/bundles/incident-replay.yaml +0 -47
  739. package/artifacts/release/registry/bundles/lsp-pack.yaml +0 -80
  740. package/artifacts/release/registry/bundles/mcp-fabric.yaml +0 -53
  741. package/artifacts/release/registry/bundles/plan-council.yaml +0 -56
  742. package/artifacts/release/registry/bundles/preflight.yaml +0 -48
  743. package/artifacts/release/registry/bundles/proof-gate.yaml +0 -49
  744. package/artifacts/release/registry/bundles/remote-supervisor.yaml +0 -49
  745. package/artifacts/release/registry/bundles/robotics.yaml +0 -45
  746. package/artifacts/release/registry/bundles/secure-worktree-pipeline.yaml +0 -69
  747. package/artifacts/release/registry/bundles/security-check.yaml +0 -50
  748. package/artifacts/release/registry/bundles/terminal-lane.yaml +0 -61
  749. package/artifacts/release/registry/bundles/test-intent-lock.yaml +0 -49
  750. package/artifacts/release/registry/bundles/tracebank.yaml +0 -47
  751. package/artifacts/release/registry/bundles/vision.yaml +0 -45
  752. package/artifacts/release/registry/omg-capability.schema.json +0 -378
  753. package/artifacts/release/settings.json +0 -694
  754. package/build/lib/agents/__init__.py +0 -1
  755. package/build/lib/agents/designer.md +0 -67
  756. package/build/lib/agents/explore.md +0 -60
  757. package/build/lib/agents/model_roles.py +0 -196
  758. package/build/lib/agents/omg-api-builder.md +0 -23
  759. package/build/lib/agents/omg-architect-mode.md +0 -41
  760. package/build/lib/agents/omg-architect.md +0 -13
  761. package/build/lib/agents/omg-backend-engineer.md +0 -41
  762. package/build/lib/agents/omg-critic.md +0 -16
  763. package/build/lib/agents/omg-database-engineer.md +0 -41
  764. package/build/lib/agents/omg-escalation-router.md +0 -17
  765. package/build/lib/agents/omg-executor.md +0 -12
  766. package/build/lib/agents/omg-frontend-designer.md +0 -41
  767. package/build/lib/agents/omg-implement-mode.md +0 -49
  768. package/build/lib/agents/omg-infra-engineer.md +0 -41
  769. package/build/lib/agents/omg-qa-tester.md +0 -16
  770. package/build/lib/agents/omg-research-mode.md +0 -41
  771. package/build/lib/agents/omg-security-auditor.md +0 -41
  772. package/build/lib/agents/omg-testing-engineer.md +0 -41
  773. package/build/lib/agents/plan.md +0 -80
  774. package/build/lib/agents/quick_task.md +0 -64
  775. package/build/lib/agents/reviewer.md +0 -83
  776. package/build/lib/agents/task.md +0 -71
  777. package/build/lib/commands/OMG:ai-commit.md +0 -113
  778. package/build/lib/commands/OMG:api-twin.md +0 -22
  779. package/build/lib/commands/OMG:arch.md +0 -313
  780. package/build/lib/commands/OMG:browser.md +0 -29
  781. package/build/lib/commands/OMG:ccg.md +0 -22
  782. package/build/lib/commands/OMG:compat.md +0 -57
  783. package/build/lib/commands/OMG:cost.md +0 -181
  784. package/build/lib/commands/OMG:crazy.md +0 -125
  785. package/build/lib/commands/OMG:create-agent.md +0 -183
  786. package/build/lib/commands/OMG:deep-plan.md +0 -18
  787. package/build/lib/commands/OMG:deps.md +0 -248
  788. package/build/lib/commands/OMG:diagnose-plugins.md +0 -33
  789. package/build/lib/commands/OMG:doctor.md +0 -37
  790. package/build/lib/commands/OMG:domain-init.md +0 -11
  791. package/build/lib/commands/OMG:escalate.md +0 -52
  792. package/build/lib/commands/OMG:forge.md +0 -103
  793. package/build/lib/commands/OMG:health-check.md +0 -48
  794. package/build/lib/commands/OMG:init.md +0 -134
  795. package/build/lib/commands/OMG:issue.md +0 -56
  796. package/build/lib/commands/OMG:mode.md +0 -44
  797. package/build/lib/commands/OMG:playwright.md +0 -17
  798. package/build/lib/commands/OMG:preflight.md +0 -26
  799. package/build/lib/commands/OMG:preset.md +0 -49
  800. package/build/lib/commands/OMG:profile-review.md +0 -58
  801. package/build/lib/commands/OMG:project-init.md +0 -11
  802. package/build/lib/commands/OMG:ralph-start.md +0 -43
  803. package/build/lib/commands/OMG:ralph-stop.md +0 -23
  804. package/build/lib/commands/OMG:security-check.md +0 -28
  805. package/build/lib/commands/OMG:session-branch.md +0 -101
  806. package/build/lib/commands/OMG:session-fork.md +0 -57
  807. package/build/lib/commands/OMG:session-merge.md +0 -138
  808. package/build/lib/commands/OMG:setup.md +0 -82
  809. package/build/lib/commands/OMG:stats.md +0 -225
  810. package/build/lib/commands/OMG:teams.md +0 -54
  811. package/build/lib/commands/OMG:theme.md +0 -44
  812. package/build/lib/commands/OMG:validate.md +0 -59
  813. package/build/lib/commands/__init__.py +0 -1
  814. package/build/lib/control_plane/__init__.py +0 -2
  815. package/build/lib/control_plane/openapi.yaml +0 -277
  816. package/build/lib/control_plane/server.py +0 -155
  817. package/build/lib/control_plane/service.py +0 -456
  818. package/build/lib/hooks/__init__.py +0 -0
  819. package/build/lib/hooks/_agent_registry.py +0 -479
  820. package/build/lib/hooks/_analytics.py +0 -291
  821. package/build/lib/hooks/_budget.py +0 -31
  822. package/build/lib/hooks/_common.py +0 -647
  823. package/build/lib/hooks/_compression_optimizer.py +0 -119
  824. package/build/lib/hooks/_cost_ledger.py +0 -176
  825. package/build/lib/hooks/_learnings.py +0 -126
  826. package/build/lib/hooks/_memory.py +0 -103
  827. package/build/lib/hooks/_protected_context.py +0 -150
  828. package/build/lib/hooks/_token_counter.py +0 -221
  829. package/build/lib/hooks/branch_manager.py +0 -253
  830. package/build/lib/hooks/budget_governor.py +0 -257
  831. package/build/lib/hooks/circuit-breaker.py +0 -270
  832. package/build/lib/hooks/compression_feedback.py +0 -254
  833. package/build/lib/hooks/config-guard.py +0 -216
  834. package/build/lib/hooks/context_pressure.py +0 -119
  835. package/build/lib/hooks/credential_store.py +0 -970
  836. package/build/lib/hooks/fetch-rate-limits.py +0 -212
  837. package/build/lib/hooks/firewall.py +0 -301
  838. package/build/lib/hooks/hashline-formatter-bridge.py +0 -224
  839. package/build/lib/hooks/hashline-injector.py +0 -273
  840. package/build/lib/hooks/hashline-validator.py +0 -216
  841. package/build/lib/hooks/idle-detector.py +0 -95
  842. package/build/lib/hooks/instructions-loaded.py +0 -26
  843. package/build/lib/hooks/intentgate-keyword-detector.py +0 -200
  844. package/build/lib/hooks/magic-keyword-router.py +0 -195
  845. package/build/lib/hooks/policy_engine.py +0 -718
  846. package/build/lib/hooks/post-tool-failure.py +0 -19
  847. package/build/lib/hooks/post-write.py +0 -219
  848. package/build/lib/hooks/post_write.py +0 -46
  849. package/build/lib/hooks/pre-compact.py +0 -470
  850. package/build/lib/hooks/pre-tool-inject.py +0 -98
  851. package/build/lib/hooks/prompt-enhancer.py +0 -877
  852. package/build/lib/hooks/quality-runner.py +0 -191
  853. package/build/lib/hooks/query.py +0 -512
  854. package/build/lib/hooks/secret-guard.py +0 -99
  855. package/build/lib/hooks/secret_audit.py +0 -144
  856. package/build/lib/hooks/security_validators.py +0 -75
  857. package/build/lib/hooks/session-end-capture.py +0 -505
  858. package/build/lib/hooks/session-start.py +0 -259
  859. package/build/lib/hooks/setup_wizard.py +0 -1132
  860. package/build/lib/hooks/shadow_manager.py +0 -476
  861. package/build/lib/hooks/state_migration.py +0 -228
  862. package/build/lib/hooks/stop-gate.py +0 -7
  863. package/build/lib/hooks/stop_dispatcher.py +0 -1130
  864. package/build/lib/hooks/tdd-gate.py +0 -10
  865. package/build/lib/hooks/test-validator.py +0 -430
  866. package/build/lib/hooks/test_generator_hook.py +0 -123
  867. package/build/lib/hooks/todo-state-tracker.py +0 -114
  868. package/build/lib/hooks/tool-ledger.py +0 -165
  869. package/build/lib/hooks/trust_review.py +0 -585
  870. package/build/lib/hooks/user-prompt-submit.py +0 -12
  871. package/build/lib/plugins/README.md +0 -64
  872. package/build/lib/plugins/__init__.py +0 -1
  873. package/build/lib/plugins/advanced/commands/OMG:code-review.md +0 -114
  874. package/build/lib/plugins/advanced/commands/OMG:deep-plan.md +0 -266
  875. package/build/lib/plugins/advanced/commands/OMG:handoff.md +0 -115
  876. package/build/lib/plugins/advanced/commands/OMG:learn.md +0 -110
  877. package/build/lib/plugins/advanced/commands/OMG:maintainer.md +0 -31
  878. package/build/lib/plugins/advanced/commands/OMG:ralph-start.md +0 -43
  879. package/build/lib/plugins/advanced/commands/OMG:ralph-stop.md +0 -23
  880. package/build/lib/plugins/advanced/commands/OMG:security-review.md +0 -16
  881. package/build/lib/plugins/advanced/commands/OMG:sequential-thinking.md +0 -20
  882. package/build/lib/plugins/advanced/commands/OMG:ship.md +0 -46
  883. package/build/lib/plugins/advanced/plugin.json +0 -104
  884. package/build/lib/plugins/core/plugin.json +0 -199
  885. package/build/lib/plugins/dephealth/__init__.py +0 -0
  886. package/build/lib/plugins/dephealth/cve_scanner.py +0 -279
  887. package/build/lib/plugins/dephealth/license_checker.py +0 -135
  888. package/build/lib/plugins/dephealth/manifest_detector.py +0 -423
  889. package/build/lib/plugins/dephealth/vuln_analyzer.py +0 -176
  890. package/build/lib/plugins/testgen/__init__.py +0 -0
  891. package/build/lib/plugins/testgen/codamosa_engine.py +0 -402
  892. package/build/lib/plugins/testgen/edge_case_synthesizer.py +0 -184
  893. package/build/lib/plugins/testgen/framework_detector.py +0 -271
  894. package/build/lib/plugins/testgen/skeleton_generator.py +0 -219
  895. package/build/lib/plugins/viz/__init__.py +0 -0
  896. package/build/lib/plugins/viz/ast_parser.py +0 -139
  897. package/build/lib/plugins/viz/diagram_generator.py +0 -192
  898. package/build/lib/plugins/viz/graph_builder.py +0 -444
  899. package/build/lib/plugins/viz/native_parsers.py +0 -259
  900. package/build/lib/plugins/viz/regex_parser.py +0 -112
  901. package/build/lib/registry/__init__.py +0 -1
  902. package/build/lib/registry/approval_artifact.py +0 -236
  903. package/build/lib/registry/bundles/algorithms.yaml +0 -45
  904. package/build/lib/registry/bundles/api-twin.yaml +0 -48
  905. package/build/lib/registry/bundles/ast-pack.yaml +0 -80
  906. package/build/lib/registry/bundles/claim-judge.yaml +0 -49
  907. package/build/lib/registry/bundles/control-plane.yaml +0 -192
  908. package/build/lib/registry/bundles/data-lineage.yaml +0 -47
  909. package/build/lib/registry/bundles/delta-classifier.yaml +0 -47
  910. package/build/lib/registry/bundles/eval-gate.yaml +0 -47
  911. package/build/lib/registry/bundles/hash-edit.yaml +0 -73
  912. package/build/lib/registry/bundles/health.yaml +0 -45
  913. package/build/lib/registry/bundles/hook-governor.yaml +0 -101
  914. package/build/lib/registry/bundles/incident-replay.yaml +0 -47
  915. package/build/lib/registry/bundles/lsp-pack.yaml +0 -80
  916. package/build/lib/registry/bundles/mcp-fabric.yaml +0 -53
  917. package/build/lib/registry/bundles/plan-council.yaml +0 -56
  918. package/build/lib/registry/bundles/preflight.yaml +0 -48
  919. package/build/lib/registry/bundles/proof-gate.yaml +0 -49
  920. package/build/lib/registry/bundles/remote-supervisor.yaml +0 -49
  921. package/build/lib/registry/bundles/robotics.yaml +0 -45
  922. package/build/lib/registry/bundles/secure-worktree-pipeline.yaml +0 -69
  923. package/build/lib/registry/bundles/security-check.yaml +0 -50
  924. package/build/lib/registry/bundles/terminal-lane.yaml +0 -61
  925. package/build/lib/registry/bundles/test-intent-lock.yaml +0 -49
  926. package/build/lib/registry/bundles/tracebank.yaml +0 -47
  927. package/build/lib/registry/bundles/vision.yaml +0 -45
  928. package/build/lib/registry/omg-capability.schema.json +0 -378
  929. package/build/lib/registry/trusted_signers.json +0 -19
  930. package/build/lib/registry/verify_artifact.py +0 -493
  931. package/build/lib/runtime/__init__.py +0 -36
  932. package/build/lib/runtime/adapters/__init__.py +0 -13
  933. package/build/lib/runtime/adapters/claude.py +0 -63
  934. package/build/lib/runtime/adapters/gpt.py +0 -56
  935. package/build/lib/runtime/adapters/local.py +0 -56
  936. package/build/lib/runtime/adoption.py +0 -276
  937. package/build/lib/runtime/api_twin.py +0 -450
  938. package/build/lib/runtime/architecture_signal.py +0 -226
  939. package/build/lib/runtime/artifact_parsers.py +0 -161
  940. package/build/lib/runtime/asset_loader.py +0 -62
  941. package/build/lib/runtime/background_verification.py +0 -178
  942. package/build/lib/runtime/budget_envelopes.py +0 -358
  943. package/build/lib/runtime/business_workflow.py +0 -234
  944. package/build/lib/runtime/canonical_surface.py +0 -53
  945. package/build/lib/runtime/claim_judge.py +0 -648
  946. package/build/lib/runtime/cli_provider.py +0 -105
  947. package/build/lib/runtime/compat.py +0 -1515
  948. package/build/lib/runtime/complexity_scorer.py +0 -148
  949. package/build/lib/runtime/compliance_governor.py +0 -479
  950. package/build/lib/runtime/context_engine.py +0 -708
  951. package/build/lib/runtime/context_limits.py +0 -363
  952. package/build/lib/runtime/contract_compiler.py +0 -3202
  953. package/build/lib/runtime/custom_agent_loader.py +0 -366
  954. package/build/lib/runtime/data_lineage.py +0 -244
  955. package/build/lib/runtime/defense_state.py +0 -261
  956. package/build/lib/runtime/delta_classifier.py +0 -163
  957. package/build/lib/runtime/dispatcher.py +0 -47
  958. package/build/lib/runtime/domain_packs.py +0 -75
  959. package/build/lib/runtime/ecosystem.py +0 -371
  960. package/build/lib/runtime/equalizer.py +0 -265
  961. package/build/lib/runtime/eval_gate.py +0 -96
  962. package/build/lib/runtime/evidence_query.py +0 -303
  963. package/build/lib/runtime/evidence_registry.py +0 -16
  964. package/build/lib/runtime/evidence_requirements.py +0 -157
  965. package/build/lib/runtime/exec_kernel.py +0 -267
  966. package/build/lib/runtime/feature_registry.py +0 -109
  967. package/build/lib/runtime/forge_agents.py +0 -915
  968. package/build/lib/runtime/forge_contracts.py +0 -519
  969. package/build/lib/runtime/forge_domains.py +0 -68
  970. package/build/lib/runtime/forge_run_id.py +0 -86
  971. package/build/lib/runtime/github_integration.py +0 -255
  972. package/build/lib/runtime/github_review_bot.py +0 -290
  973. package/build/lib/runtime/github_review_contract.py +0 -65
  974. package/build/lib/runtime/github_review_formatter.py +0 -165
  975. package/build/lib/runtime/guide_assert.py +0 -135
  976. package/build/lib/runtime/hook_governor.py +0 -156
  977. package/build/lib/runtime/host_parity.py +0 -373
  978. package/build/lib/runtime/incident_replay.py +0 -310
  979. package/build/lib/runtime/interaction_journal.py +0 -503
  980. package/build/lib/runtime/issue_surface.py +0 -362
  981. package/build/lib/runtime/legacy_compat.py +0 -7
  982. package/build/lib/runtime/mcp_config_writers.py +0 -233
  983. package/build/lib/runtime/mcp_lifecycle.py +0 -175
  984. package/build/lib/runtime/mcp_memory_server.py +0 -220
  985. package/build/lib/runtime/memory_parsers/__init__.py +0 -0
  986. package/build/lib/runtime/memory_parsers/chatgpt_parser.py +0 -257
  987. package/build/lib/runtime/memory_parsers/claude_import.py +0 -107
  988. package/build/lib/runtime/memory_parsers/export.py +0 -97
  989. package/build/lib/runtime/memory_parsers/gemini_import.py +0 -91
  990. package/build/lib/runtime/memory_parsers/kimi_import.py +0 -91
  991. package/build/lib/runtime/memory_store.py +0 -1182
  992. package/build/lib/runtime/merge_writer.py +0 -408
  993. package/build/lib/runtime/music_omr_testbed.py +0 -333
  994. package/build/lib/runtime/mutation_gate.py +0 -258
  995. package/build/lib/runtime/omc_compat.py +0 -7
  996. package/build/lib/runtime/omg_browser_cli.py +0 -95
  997. package/build/lib/runtime/omg_compat_contract_snapshot.json +0 -916
  998. package/build/lib/runtime/omg_contract_snapshot.json +0 -916
  999. package/build/lib/runtime/omg_mcp_server.py +0 -304
  1000. package/build/lib/runtime/playwright_adapter.py +0 -39
  1001. package/build/lib/runtime/playwright_pack.py +0 -253
  1002. package/build/lib/runtime/plugin_diagnostics.py +0 -248
  1003. package/build/lib/runtime/plugin_interop.py +0 -1035
  1004. package/build/lib/runtime/preflight.py +0 -135
  1005. package/build/lib/runtime/profile_io.py +0 -328
  1006. package/build/lib/runtime/proof_chain.py +0 -472
  1007. package/build/lib/runtime/proof_gate.py +0 -442
  1008. package/build/lib/runtime/providers/__init__.py +0 -0
  1009. package/build/lib/runtime/providers/codex_provider.py +0 -127
  1010. package/build/lib/runtime/providers/gemini_provider.py +0 -141
  1011. package/build/lib/runtime/providers/kimi_provider.py +0 -166
  1012. package/build/lib/runtime/providers/opencode_provider.py +0 -99
  1013. package/build/lib/runtime/release_run_coordinator.py +0 -547
  1014. package/build/lib/runtime/release_surfaces.py +0 -313
  1015. package/build/lib/runtime/remote_supervisor.py +0 -79
  1016. package/build/lib/runtime/repro_pack.py +0 -398
  1017. package/build/lib/runtime/rollback_manifest.py +0 -136
  1018. package/build/lib/runtime/router_critics.py +0 -229
  1019. package/build/lib/runtime/router_executor.py +0 -142
  1020. package/build/lib/runtime/router_selector.py +0 -99
  1021. package/build/lib/runtime/runtime_contracts.py +0 -292
  1022. package/build/lib/runtime/runtime_profile.py +0 -133
  1023. package/build/lib/runtime/security_check.py +0 -1064
  1024. package/build/lib/runtime/session_health.py +0 -524
  1025. package/build/lib/runtime/skill_evolution.py +0 -221
  1026. package/build/lib/runtime/skill_registry.py +0 -53
  1027. package/build/lib/runtime/subagent_dispatcher.py +0 -604
  1028. package/build/lib/runtime/team_router.py +0 -1374
  1029. package/build/lib/runtime/test_intent_lock.py +0 -521
  1030. package/build/lib/runtime/tmux_session_manager.py +0 -172
  1031. package/build/lib/runtime/tool_fabric.py +0 -570
  1032. package/build/lib/runtime/tool_plan_gate.py +0 -452
  1033. package/build/lib/runtime/tracebank.py +0 -125
  1034. package/build/lib/runtime/untrusted_content.py +0 -307
  1035. package/build/lib/runtime/validate.py +0 -293
  1036. package/build/lib/runtime/verification_controller.py +0 -235
  1037. package/build/lib/runtime/verification_loop.py +0 -73
  1038. package/build/lib/runtime/vision_artifacts.py +0 -31
  1039. package/build/lib/runtime/vision_cache.py +0 -38
  1040. package/build/lib/runtime/vision_jobs.py +0 -89
  1041. package/build/lib/runtime/worker_watchdog.py +0 -482
  1042. package/dist/oh_my_god-2.1.4-py3-none-any.whl +0 -0
  1043. package/dist/oh_my_god-2.1.4.tar.gz +0 -0
  1044. package/dist/oh_my_god-2.1.7-py3-none-any.whl +0 -0
  1045. package/dist/oh_my_god-2.1.8-py3-none-any.whl +0 -0
  1046. package/dist/oh_my_god-2.1.9-py3-none-any.whl +0 -0
  1047. package/dist/oh_my_god-2.2.2-py3-none-any.whl +0 -0
@@ -1,1182 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import json
4
- import os
5
- import re
6
- import sqlite3
7
- import uuid
8
- import base64
9
- import hashlib
10
- import socket
11
- from datetime import datetime, timedelta, timezone
12
- from pathlib import Path
13
- from typing import Any
14
-
15
- from runtime.profile_io import classify_preference_section, is_destructive_preference
16
-
17
- try:
18
- from cryptography.fernet import Fernet, InvalidToken
19
-
20
- _has_fernet = True
21
- except ModuleNotFoundError:
22
- Fernet = None # type: ignore[assignment]
23
- InvalidToken = Exception # type: ignore[assignment]
24
- _has_fernet = False
25
-
26
-
27
- class MemoryStoreFullError(Exception):
28
- pass
29
-
30
-
31
- _MAX_ITEMS = 10_000
32
- _PREFERENCE_SIGNAL_LIMIT = 12
33
- _PREFERENCE_VALUE_MAX = 160
34
- _PREFERENCE_ALLOWED_FIELDS = (
35
- "preferences.architecture_requests",
36
- "preferences.constraints.",
37
- "user_vector.tags",
38
- )
39
- _INLINE_METADATA_MAX = 512
40
- _DEFAULT_NAMESPACE = "default"
41
- _DEFAULT_MEMORY_HOST = "127.0.0.1"
42
- _ENCRYPTED_PREFIX = "enc:v1:"
43
- _JSON_ENVELOPE_FORMAT = "omg.memory.json.v1"
44
- _PII_PATTERNS: tuple[tuple[re.Pattern[str], str], ...] = (
45
- (re.compile(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"), "[REDACTED:EMAIL]"),
46
- (re.compile(r"\b(?:\+?1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)\d{3}[-.\s]?\d{4}\b"), "[REDACTED:PHONE]"),
47
- (re.compile(r"\b\d{3}-\d{2}-\d{4}\b"), "[REDACTED:SSN]"),
48
- )
49
- _Item = dict[str, Any] # pyright: ignore[reportExplicitAny]
50
-
51
-
52
- class MemoryStore:
53
- def __init__(self, store_path: str | None = None) -> None:
54
- if store_path is None:
55
- store_path = str(Path.home() / ".omg" / "shared-memory" / "store.sqlite3")
56
- self._memory_host = (os.environ.get("OMG_MEMORY_HOST", _DEFAULT_MEMORY_HOST).strip() or _DEFAULT_MEMORY_HOST)
57
- self._conn: sqlite3.Connection | None = None
58
- self._fts_enabled = False
59
- self._items: list[_Item] = []
60
- self._store_path = ""
61
- self._backend = "json"
62
-
63
- self.store_path = store_path
64
-
65
- @property
66
- def store_path(self) -> str:
67
- return self._store_path
68
-
69
- @store_path.setter
70
- def store_path(self, store_path: str) -> None:
71
- normalized_path = str(store_path)
72
- if normalized_path == self._store_path:
73
- return
74
-
75
- self.close()
76
- self._store_path = normalized_path
77
- self._backend = "json" if Path(normalized_path).suffix.lower() == ".json" else "sqlite"
78
- self._items = []
79
- self._fts_enabled = False
80
-
81
- if self._backend == "json":
82
- self._items = self._load_json_items()
83
- else:
84
- self._init_sqlite()
85
-
86
- def close(self) -> None:
87
- if self._conn is not None:
88
- self._conn.close()
89
- self._conn = None
90
-
91
- def __del__(self) -> None:
92
- try:
93
- self.close()
94
- except Exception:
95
- return
96
-
97
- def add(
98
- self,
99
- key: str,
100
- content: str,
101
- source_cli: str,
102
- tags: list[str] | None = None,
103
- *,
104
- run_id: str = "",
105
- profile_id: str = "",
106
- namespace: str = _DEFAULT_NAMESPACE,
107
- retention_days: int | None = None,
108
- ) -> _Item:
109
- if self.count() >= _MAX_ITEMS:
110
- raise MemoryStoreFullError(
111
- f"Memory store is full ({_MAX_ITEMS} items). "
112
- "Delete items before adding new ones."
113
- )
114
-
115
- now = _utc_now_iso()
116
- canonical_namespace = _qualify_namespace(namespace)
117
- canonical_retention_days = _normalize_retention_days(retention_days)
118
- expires_at = _compute_expires_at(now, canonical_retention_days)
119
- redacted_content = _redact_pii(content)
120
- item: _Item = {
121
- "id": str(uuid.uuid4()),
122
- "key": key,
123
- "content": redacted_content,
124
- "source_cli": source_cli,
125
- "tags": tags if tags is not None else [],
126
- "run_id": run_id,
127
- "profile_id": profile_id,
128
- "namespace": canonical_namespace,
129
- "retention_days": canonical_retention_days,
130
- "expires_at": expires_at,
131
- "created_at": now,
132
- "updated_at": now,
133
- "quarantined": False,
134
- }
135
- if self._backend == "json":
136
- self._items.append(item)
137
- self._save_json_items()
138
- return item
139
-
140
- conn = self._sqlite_conn()
141
- conn.execute(
142
- """
143
- INSERT INTO memories(
144
- id, key, content, source_cli, tags_json, run_id, profile_id,
145
- namespace, retention_days, expires_at, created_at, updated_at
146
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
147
- """,
148
- (
149
- item["id"],
150
- item["key"],
151
- self._encrypt_text(item["content"], purpose="sqlite-content"),
152
- item["source_cli"],
153
- json.dumps(item["tags"], ensure_ascii=True),
154
- run_id,
155
- profile_id,
156
- canonical_namespace,
157
- canonical_retention_days,
158
- expires_at,
159
- now,
160
- now,
161
- ),
162
- )
163
- self._upsert_fts(item)
164
- conn.commit()
165
- return item
166
-
167
- def get(self, item_id: str) -> _Item | None:
168
- if self._backend == "json":
169
- for item in self._items:
170
- if item["id"] == item_id:
171
- return item
172
- return None
173
-
174
- row = self._sqlite_conn().execute(
175
- "SELECT * FROM memories WHERE id = ?",
176
- (item_id,),
177
- ).fetchone()
178
- return self._row_to_item(row) if row is not None else None
179
-
180
- def update(
181
- self,
182
- item_id: str,
183
- content: str | None = None,
184
- tags: list[str] | None = None,
185
- ) -> _Item | None:
186
- if self._backend == "json":
187
- item = self.get(item_id)
188
- if item is None:
189
- return None
190
-
191
- if content is not None:
192
- item["content"] = content
193
- if tags is not None:
194
- item["tags"] = tags
195
- item["updated_at"] = _utc_now_iso()
196
- self._save_json_items()
197
- return item
198
-
199
- item = self.get(item_id)
200
- if item is None:
201
- return None
202
- new_content = content if content is not None else str(item.get("content", ""))
203
- new_tags = tags if tags is not None else item.get("tags", [])
204
- updated_at = _utc_now_iso()
205
- self._sqlite_conn().execute(
206
- "UPDATE memories SET content = ?, tags_json = ?, updated_at = ? WHERE id = ?",
207
- (self._encrypt_text(new_content, purpose="sqlite-content"), json.dumps(new_tags, ensure_ascii=True), updated_at, item_id),
208
- )
209
- updated = {
210
- **item,
211
- "content": new_content,
212
- "tags": new_tags,
213
- "updated_at": updated_at,
214
- }
215
- self._upsert_fts(updated)
216
- self._sqlite_conn().commit()
217
- return updated
218
-
219
- def delete(self, item_id: str) -> bool:
220
- if self._backend == "json":
221
- for idx, item in enumerate(self._items):
222
- if item["id"] == item_id:
223
- del self._items[idx]
224
- self._save_json_items()
225
- return True
226
- return False
227
-
228
- cur = self._sqlite_conn().execute("DELETE FROM memories WHERE id = ?", (item_id,))
229
- self._delete_fts(item_id)
230
- self._sqlite_conn().commit()
231
- return cur.rowcount > 0
232
-
233
- def search(
234
- self,
235
- query: str,
236
- source_cli: str | None = None,
237
- *,
238
- namespace: str | None = None,
239
- include_quarantined: bool = False,
240
- ) -> list[_Item]:
241
- if self._backend == "json":
242
- q = query.lower()
243
- results: list[_Item] = []
244
- canonical_namespace = _qualify_namespace(namespace) if namespace is not None else None
245
- for item in self._items:
246
- normalized_item = _normalize_item(item)
247
- if _is_expired(normalized_item):
248
- continue
249
- if source_cli is not None and item["source_cli"] != source_cli:
250
- continue
251
- if canonical_namespace is not None and normalized_item.get("namespace") != canonical_namespace:
252
- continue
253
- if not include_quarantined and bool(normalized_item.get("quarantined", False)):
254
- continue
255
- key_str = str(item.get("key", "")).lower()
256
- content_str = str(item.get("content", "")).lower()
257
- tags_raw = item.get("tags", [])
258
- tags_str = " ".join(str(t).lower() for t in tags_raw) if isinstance(tags_raw, list) else ""
259
- if q in key_str or q in content_str or q in tags_str:
260
- results.append(normalized_item)
261
- return results
262
-
263
- rows = self.list_all(
264
- source_cli=source_cli,
265
- namespace=namespace,
266
- include_quarantined=include_quarantined,
267
- )
268
- q = query.lower()
269
- matches: list[_Item] = []
270
- for item in rows:
271
- key_str = str(item.get("key", "")).lower()
272
- content_str = str(item.get("content", "")).lower()
273
- tags_raw = item.get("tags", [])
274
- tags_str = " ".join(str(t).lower() for t in tags_raw) if isinstance(tags_raw, list) else ""
275
- if q in key_str or q in content_str or q in tags_str:
276
- matches.append(item)
277
- return matches
278
-
279
- def list_all(
280
- self,
281
- source_cli: str | None = None,
282
- *,
283
- run_id: str | None = None,
284
- profile_id: str | None = None,
285
- namespace: str | None = None,
286
- include_quarantined: bool = False,
287
- ) -> list[_Item]:
288
- if self._backend == "json":
289
- out = [_normalize_item(item) for item in self._items if not _is_expired(item)]
290
- if source_cli is not None:
291
- out = [i for i in out if i.get("source_cli") == source_cli]
292
- if run_id is not None:
293
- out = [i for i in out if str(i.get("run_id", "")) == run_id]
294
- if profile_id is not None:
295
- out = [i for i in out if str(i.get("profile_id", "")) == profile_id]
296
- if namespace is not None:
297
- canonical_namespace = _qualify_namespace(namespace)
298
- out = [i for i in out if str(i.get("namespace", "")) == canonical_namespace]
299
- if not include_quarantined:
300
- out = [i for i in out if not bool(i.get("quarantined", False))]
301
- return out
302
-
303
- where: list[str] = []
304
- params: list[Any] = []
305
- if source_cli is not None:
306
- where.append("source_cli = ?")
307
- params.append(source_cli)
308
- if run_id is not None:
309
- where.append("run_id = ?")
310
- params.append(run_id)
311
- if profile_id is not None:
312
- where.append("profile_id = ?")
313
- params.append(profile_id)
314
- if namespace is not None:
315
- where.append("namespace = ?")
316
- params.append(_qualify_namespace(namespace))
317
- if not include_quarantined:
318
- where.append("quarantined = 0")
319
- where.append("(expires_at IS NULL OR expires_at = '' OR expires_at > ?)")
320
- params.append(_utc_now_iso())
321
-
322
- sql = "SELECT * FROM memories"
323
- if where:
324
- sql += " WHERE " + " AND ".join(where)
325
- sql += " ORDER BY updated_at DESC"
326
- rows = self._sqlite_conn().execute(sql, tuple(params)).fetchall()
327
- return [self._row_to_item(row) for row in rows]
328
-
329
- def export_all(self, *, include_quarantined: bool = False) -> list[_Item]:
330
- return self.list_all(include_quarantined=include_quarantined)
331
-
332
- def import_items(self, items: list[_Item], *, quarantined: bool = False) -> int:
333
- if self._backend == "json":
334
- existing_ids = {str(i["id"]) for i in self._items}
335
- added = 0
336
- for item in items:
337
- item_id = str(item.get("id", ""))
338
- if item_id and item_id not in existing_ids:
339
- normalized = _normalize_item(item)
340
- normalized["quarantined"] = bool(quarantined)
341
- self._items.append(normalized)
342
- existing_ids.add(item_id)
343
- added += 1
344
- if added:
345
- self._save_json_items()
346
- return added
347
-
348
- conn = self._sqlite_conn()
349
- added = 0
350
- for item in items:
351
- item_id = str(item.get("id", "")).strip()
352
- if not item_id:
353
- continue
354
- existing = conn.execute("SELECT 1 FROM memories WHERE id = ?", (item_id,)).fetchone()
355
- if existing is not None:
356
- continue
357
- key = str(item.get("key", ""))
358
- content = str(item.get("content", ""))
359
- source_cli = str(item.get("source_cli", ""))
360
- tags = item.get("tags") if isinstance(item.get("tags"), list) else []
361
- created_at = str(item.get("created_at", "")) or _utc_now_iso()
362
- updated_at = str(item.get("updated_at", "")) or created_at
363
- namespace = _qualify_namespace(item.get("namespace", _DEFAULT_NAMESPACE))
364
- retention_days = _normalize_retention_days(item.get("retention_days"))
365
- expires_at = str(item.get("expires_at", "")).strip() or _compute_expires_at(created_at, retention_days)
366
- redacted_content = _redact_pii(content)
367
- run_id = str(item.get("run_id", ""))
368
- profile_id = str(item.get("profile_id", ""))
369
- quarantined_flag = bool(quarantined)
370
- conn.execute(
371
- """
372
- INSERT INTO memories(
373
- id, key, content, source_cli, tags_json, run_id, profile_id,
374
- namespace, retention_days, expires_at, created_at, updated_at, quarantined
375
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
376
- """,
377
- (
378
- item_id,
379
- key,
380
- self._encrypt_text(redacted_content, purpose="sqlite-content"),
381
- source_cli,
382
- json.dumps(tags, ensure_ascii=True),
383
- run_id,
384
- profile_id,
385
- namespace,
386
- retention_days,
387
- expires_at,
388
- created_at,
389
- updated_at,
390
- 1 if quarantined_flag else 0,
391
- ),
392
- )
393
- self._upsert_fts(
394
- {
395
- "id": item_id,
396
- "key": key,
397
- "content": redacted_content,
398
- "tags": tags,
399
- }
400
- )
401
- added += 1
402
- if added:
403
- conn.commit()
404
- return added
405
-
406
- def count(self) -> int:
407
- if self._backend == "json":
408
- return len(self._items)
409
- row = self._sqlite_conn().execute("SELECT COUNT(*) AS n FROM memories").fetchone()
410
- if row is None:
411
- return 0
412
- return int(row["n"])
413
-
414
- def clear(self) -> int:
415
- n = self.count()
416
- if self._backend == "json":
417
- self._items.clear()
418
- self._save_json_items()
419
- return n
420
-
421
- conn = self._sqlite_conn()
422
- conn.execute("DELETE FROM memories")
423
- conn.execute("DELETE FROM artifacts")
424
- conn.execute("DELETE FROM lineage_edges")
425
- if self._fts_enabled:
426
- conn.execute("DELETE FROM memories_fts")
427
- conn.commit()
428
- return n
429
-
430
- def promote_item(self, item_id: str) -> bool:
431
- if self._backend == "json":
432
- item = self.get(item_id)
433
- if item is None:
434
- return False
435
- if bool(item.get("quarantined", False)):
436
- item["quarantined"] = False
437
- item["updated_at"] = _utc_now_iso()
438
- self._save_json_items()
439
- return True
440
-
441
- cur = self._sqlite_conn().execute(
442
- "UPDATE memories SET quarantined = 0, updated_at = ? WHERE id = ?",
443
- (_utc_now_iso(), item_id),
444
- )
445
- self._sqlite_conn().commit()
446
- return cur.rowcount > 0
447
-
448
- def query_scoped(
449
- self,
450
- query: str,
451
- *,
452
- run_id: str,
453
- profile_id: str,
454
- limit: int = 20,
455
- ) -> list[_Item]:
456
- bounded_limit = max(1, min(int(limit), 200))
457
- if self._backend == "json":
458
- rows = self.search(query)
459
- scoped = [
460
- row
461
- for row in rows
462
- if str(row.get("run_id", "")) == run_id
463
- and str(row.get("profile_id", "")) == profile_id
464
- ]
465
- return scoped[:bounded_limit]
466
-
467
- q = f"%{query.lower()}%"
468
- rows = self._sqlite_conn().execute(
469
- """
470
- SELECT * FROM memories
471
- WHERE run_id = ?
472
- AND profile_id = ?
473
- AND quarantined = 0
474
- AND (lower(key) LIKE ? OR lower(content) LIKE ? OR lower(tags_json) LIKE ?)
475
- ORDER BY updated_at DESC
476
- LIMIT ?
477
- """,
478
- (run_id, profile_id, q, q, q, bounded_limit),
479
- ).fetchall()
480
- return [self._row_to_item(row) for row in rows]
481
-
482
- def hybrid_retrieve(
483
- self,
484
- query: str,
485
- *,
486
- run_id: str,
487
- profile_id: str,
488
- limit: int = 10,
489
- ) -> list[dict[str, Any]]:
490
- bounded_limit = max(1, min(int(limit), 100))
491
- if self._backend == "json":
492
- rows = self.query_scoped(query, run_id=run_id, profile_id=profile_id, limit=bounded_limit)
493
- return [
494
- {
495
- **row,
496
- "score": float(_token_overlap_score(query, row)),
497
- }
498
- for row in rows
499
- ]
500
-
501
- candidates: list[tuple[_Item, float]] = []
502
- conn = self._sqlite_conn()
503
- if self._fts_enabled:
504
- rows = conn.execute(
505
- """
506
- SELECT m.*, bm25(memories_fts) AS rank
507
- FROM memories_fts
508
- JOIN memories AS m ON m.id = memories_fts.id
509
- WHERE memories_fts MATCH ?
510
- AND m.run_id = ?
511
- AND m.profile_id = ?
512
- ORDER BY rank ASC
513
- LIMIT ?
514
- """,
515
- (_fts_query(query), run_id, profile_id, bounded_limit),
516
- ).fetchall()
517
- for row in rows:
518
- item = self._row_to_item(row)
519
- rank = row["rank"] if isinstance(row["rank"], (int, float)) else 0.0
520
- keyword_score = 1.0 / (1.0 + max(float(rank), 0.0))
521
- semantic_score = _token_overlap_score(query, item)
522
- candidates.append((item, (0.7 * keyword_score) + (0.3 * semantic_score)))
523
-
524
- if not candidates:
525
- for item in self.query_scoped(query, run_id=run_id, profile_id=profile_id, limit=bounded_limit):
526
- candidates.append((item, _token_overlap_score(query, item)))
527
-
528
- candidates.sort(key=lambda pair: pair[1], reverse=True)
529
- return [{**item, "score": round(score, 6)} for item, score in candidates[:bounded_limit]]
530
-
531
- def index_artifact(
532
- self,
533
- *,
534
- run_id: str,
535
- profile_id: str,
536
- kind: str,
537
- path: str,
538
- summary: str,
539
- size_bytes: int = 0,
540
- metadata: dict[str, Any] | None = None,
541
- ) -> dict[str, Any]:
542
- now = _utc_now_iso()
543
- artifact_id = f"artifact-{uuid.uuid4().hex}"
544
- clean_metadata = _sanitize_metadata(metadata or {})
545
- handle = {
546
- "artifact_id": artifact_id,
547
- "run_id": run_id,
548
- "profile_id": profile_id,
549
- "kind": kind,
550
- "path": path,
551
- "summary": summary,
552
- "size_bytes": int(size_bytes),
553
- "metadata": clean_metadata,
554
- "created_at": now,
555
- }
556
-
557
- if self._backend == "json":
558
- payload = {
559
- "field": "artifact.handle",
560
- "value": json.dumps(handle, ensure_ascii=True),
561
- "source": "artifact_index",
562
- "project_scope": "",
563
- "run_id": run_id,
564
- "profile_id": profile_id,
565
- "updated_at": now,
566
- }
567
- self.add(
568
- key=f"artifact:{artifact_id}",
569
- content=json.dumps(payload, ensure_ascii=True),
570
- source_cli="runtime",
571
- tags=[f"artifact_kind:{kind}"],
572
- run_id=run_id,
573
- profile_id=profile_id,
574
- )
575
- return handle
576
-
577
- self._sqlite_conn().execute(
578
- """
579
- INSERT INTO artifacts(
580
- artifact_id, run_id, profile_id, kind, path, summary, size_bytes, metadata_json, created_at
581
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
582
- """,
583
- (
584
- artifact_id,
585
- run_id,
586
- profile_id,
587
- kind,
588
- path,
589
- summary,
590
- int(size_bytes),
591
- json.dumps(clean_metadata, ensure_ascii=True),
592
- now,
593
- ),
594
- )
595
- self._sqlite_conn().commit()
596
- return handle
597
-
598
- def query_artifacts(
599
- self,
600
- *,
601
- run_id: str,
602
- profile_id: str | None = None,
603
- kind: str | None = None,
604
- limit: int = 50,
605
- ) -> list[dict[str, Any]]:
606
- bounded_limit = max(1, min(int(limit), 200))
607
- if self._backend == "json":
608
- handles: list[dict[str, Any]] = []
609
- for item in self.list_all(run_id=run_id, profile_id=profile_id):
610
- key = str(item.get("key", ""))
611
- if not key.startswith("artifact:"):
612
- continue
613
- try:
614
- payload = json.loads(str(item.get("content", "")))
615
- except (TypeError, ValueError, json.JSONDecodeError):
616
- continue
617
- value_raw = payload.get("value")
618
- if not isinstance(value_raw, str):
619
- continue
620
- try:
621
- handle = json.loads(value_raw)
622
- except (TypeError, ValueError, json.JSONDecodeError):
623
- continue
624
- if not isinstance(handle, dict):
625
- continue
626
- if profile_id is not None and str(handle.get("profile_id", "")) != profile_id:
627
- continue
628
- if kind is not None and str(handle.get("kind", "")) != kind:
629
- continue
630
- handles.append(_sanitize_artifact_handle(handle))
631
- return handles[:bounded_limit]
632
-
633
- where = ["run_id = ?"]
634
- params: list[Any] = [run_id]
635
- if profile_id is not None:
636
- where.append("profile_id = ?")
637
- params.append(profile_id)
638
- if kind is not None:
639
- where.append("kind = ?")
640
- params.append(kind)
641
- params.append(bounded_limit)
642
- rows = self._sqlite_conn().execute(
643
- f"""
644
- SELECT artifact_id, run_id, profile_id, kind, path, summary, size_bytes, metadata_json, created_at
645
- FROM artifacts
646
- WHERE {' AND '.join(where)}
647
- ORDER BY created_at DESC
648
- LIMIT ?
649
- """,
650
- tuple(params),
651
- ).fetchall()
652
- handles: list[dict[str, Any]] = []
653
- for row in rows:
654
- metadata = _parse_json_object(row["metadata_json"])
655
- handles.append(
656
- {
657
- "artifact_id": row["artifact_id"],
658
- "run_id": row["run_id"],
659
- "profile_id": row["profile_id"],
660
- "kind": row["kind"],
661
- "path": row["path"],
662
- "summary": row["summary"],
663
- "size_bytes": int(row["size_bytes"]),
664
- "metadata": _sanitize_metadata(metadata),
665
- "created_at": row["created_at"],
666
- }
667
- )
668
- return handles
669
-
670
- def _load_json_items(self) -> list[_Item]:
671
- path = Path(self.store_path)
672
- if not path.exists():
673
- return []
674
- try:
675
- raw = json.loads(path.read_text())
676
- if isinstance(raw, list):
677
- return raw # type: ignore[return-value]
678
- if isinstance(raw, dict) and str(raw.get("format", "")) == _JSON_ENVELOPE_FORMAT:
679
- encrypted_payload = str(raw.get("payload", ""))
680
- integrity = raw.get("integrity", {})
681
- expected_sha = ""
682
- if isinstance(integrity, dict):
683
- expected_sha = str(integrity.get("sha256", ""))
684
- if not encrypted_payload or hashlib.sha256(encrypted_payload.encode("utf-8")).hexdigest() != expected_sha:
685
- return []
686
- decrypted = self._decrypt_text(encrypted_payload, purpose="json-at-rest")
687
- if not decrypted:
688
- return []
689
- payload = json.loads(decrypted)
690
- if isinstance(payload, list):
691
- return payload # type: ignore[return-value]
692
- return []
693
- except (json.JSONDecodeError, ValueError):
694
- return []
695
-
696
- def _save_json_items(self) -> None:
697
- path = Path(self.store_path)
698
- path.parent.mkdir(parents=True, exist_ok=True)
699
- tmp_path = path.with_name(f"{path.name}.tmp")
700
- _ = tmp_path.write_text(json.dumps(self._items, indent=2, ensure_ascii=True) + "\n")
701
- _ = os.replace(tmp_path, path)
702
-
703
- def _sqlite_conn(self) -> sqlite3.Connection:
704
- if self._conn is None:
705
- raise RuntimeError("SQLite backend is not initialized")
706
- return self._conn
707
-
708
- def _init_sqlite(self) -> None:
709
- path = Path(self.store_path)
710
- path.parent.mkdir(parents=True, exist_ok=True)
711
- conn = sqlite3.connect(path)
712
- conn.row_factory = sqlite3.Row
713
- conn.execute("PRAGMA journal_mode=WAL")
714
- conn.execute("PRAGMA foreign_keys=ON")
715
- conn.execute(
716
- """
717
- CREATE TABLE IF NOT EXISTS memories (
718
- id TEXT PRIMARY KEY,
719
- key TEXT NOT NULL,
720
- content TEXT NOT NULL,
721
- source_cli TEXT NOT NULL,
722
- tags_json TEXT NOT NULL,
723
- run_id TEXT NOT NULL DEFAULT '',
724
- profile_id TEXT NOT NULL DEFAULT '',
725
- namespace TEXT NOT NULL DEFAULT '127.0.0.1:default',
726
- retention_days INTEGER,
727
- expires_at TEXT,
728
- created_at TEXT NOT NULL,
729
- updated_at TEXT NOT NULL,
730
- quarantined INTEGER NOT NULL DEFAULT 0
731
- )
732
- """
733
- )
734
- _ensure_memory_columns(conn)
735
- conn.execute("CREATE INDEX IF NOT EXISTS idx_memories_scope ON memories(run_id, profile_id, updated_at)")
736
- conn.execute(
737
- """
738
- CREATE TABLE IF NOT EXISTS artifacts (
739
- artifact_id TEXT PRIMARY KEY,
740
- run_id TEXT NOT NULL,
741
- profile_id TEXT NOT NULL,
742
- kind TEXT NOT NULL,
743
- path TEXT NOT NULL,
744
- summary TEXT NOT NULL,
745
- size_bytes INTEGER NOT NULL DEFAULT 0,
746
- metadata_json TEXT NOT NULL DEFAULT '{}',
747
- created_at TEXT NOT NULL
748
- )
749
- """
750
- )
751
- conn.execute("CREATE INDEX IF NOT EXISTS idx_artifacts_scope ON artifacts(run_id, profile_id, created_at)")
752
- conn.execute(
753
- """
754
- CREATE TABLE IF NOT EXISTS lineage_edges (
755
- edge_id INTEGER PRIMARY KEY AUTOINCREMENT,
756
- parent_node TEXT NOT NULL,
757
- child_node TEXT NOT NULL,
758
- edge_type TEXT NOT NULL,
759
- run_id TEXT NOT NULL,
760
- profile_id TEXT NOT NULL,
761
- metadata_json TEXT NOT NULL DEFAULT '{}',
762
- created_at TEXT NOT NULL
763
- )
764
- """
765
- )
766
- conn.execute(
767
- """
768
- CREATE INDEX IF NOT EXISTS idx_lineage_scope
769
- ON lineage_edges(run_id, profile_id, parent_node, child_node)
770
- """
771
- )
772
-
773
- try:
774
- conn.execute(
775
- """
776
- CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts
777
- USING fts5(id UNINDEXED, key, content, tags)
778
- """
779
- )
780
- self._fts_enabled = True
781
- except sqlite3.OperationalError:
782
- self._fts_enabled = False
783
-
784
- self._conn = conn
785
- self._rebuild_fts_if_available()
786
- conn.commit()
787
-
788
- def _rebuild_fts_if_available(self) -> None:
789
- if not self._fts_enabled:
790
- return
791
- conn = self._sqlite_conn()
792
- conn.execute("DELETE FROM memories_fts")
793
- rows = conn.execute("SELECT id, key, content, tags_json FROM memories").fetchall()
794
- for row in rows:
795
- tags = _parse_json_array(row["tags_json"])
796
- conn.execute(
797
- "INSERT INTO memories_fts(id, key, content, tags) VALUES (?, ?, ?, ?)",
798
- (row["id"], row["key"], row["content"], " ".join(str(t) for t in tags)),
799
- )
800
-
801
- def _upsert_fts(self, item: _Item) -> None:
802
- if not self._fts_enabled:
803
- return
804
- conn = self._sqlite_conn()
805
- conn.execute("DELETE FROM memories_fts WHERE id = ?", (item["id"],))
806
- tags = item.get("tags", [])
807
- tags_text = " ".join(str(tag) for tag in tags) if isinstance(tags, list) else ""
808
- conn.execute(
809
- "INSERT INTO memories_fts(id, key, content, tags) VALUES (?, ?, ?, ?)",
810
- (item["id"], str(item.get("key", "")), str(item.get("content", "")), tags_text),
811
- )
812
-
813
- def _delete_fts(self, item_id: str) -> None:
814
- if not self._fts_enabled:
815
- return
816
- self._sqlite_conn().execute("DELETE FROM memories_fts WHERE id = ?", (item_id,))
817
-
818
- def _row_to_item(self, row: sqlite3.Row) -> _Item:
819
- raw_expires_at = row["expires_at"] if "expires_at" in row.keys() else None
820
- expires_at = _normalize_expires_at(raw_expires_at)
821
- return {
822
- "id": row["id"],
823
- "key": row["key"],
824
- "content": self._decrypt_text(str(row["content"]), purpose="sqlite-content"),
825
- "source_cli": row["source_cli"],
826
- "tags": _parse_json_array(row["tags_json"]),
827
- "run_id": row["run_id"],
828
- "profile_id": row["profile_id"],
829
- "namespace": _qualify_namespace(row["namespace"] if "namespace" in row.keys() else _DEFAULT_NAMESPACE),
830
- "retention_days": _normalize_retention_days(row["retention_days"] if "retention_days" in row.keys() else None),
831
- "expires_at": expires_at,
832
- "created_at": row["created_at"],
833
- "updated_at": row["updated_at"],
834
- "quarantined": bool(row["quarantined"] if "quarantined" in row.keys() else 0),
835
- }
836
-
837
- def _derive_key_bytes(self, *, purpose: str) -> bytes:
838
- secret_seed = os.environ.get("OMG_MEMORY_SECRET", "").strip()
839
- if not secret_seed:
840
- secret_seed = f"{os.path.expanduser('~')}|{self._memory_host}|{socket.gethostname()}"
841
- material = f"{secret_seed}|{self._memory_host}|{purpose}".encode("utf-8")
842
- return hashlib.sha256(material).digest()
843
-
844
- def _encrypt_text(self, text: str, *, purpose: str) -> str:
845
- if text.startswith(_ENCRYPTED_PREFIX):
846
- return text
847
- key_bytes = self._derive_key_bytes(purpose=purpose)
848
- if _has_fernet and Fernet is not None:
849
- fernet_key = base64.urlsafe_b64encode(key_bytes)
850
- token = Fernet(fernet_key).encrypt(text.encode("utf-8")).decode("utf-8")
851
- return f"{_ENCRYPTED_PREFIX}{token}"
852
- encoded = text.encode("utf-8")
853
- cipher = bytes(byte ^ key_bytes[idx % len(key_bytes)] for idx, byte in enumerate(encoded))
854
- return f"{_ENCRYPTED_PREFIX}{base64.urlsafe_b64encode(cipher).decode('ascii')}"
855
-
856
- def _decrypt_text(self, text: str, *, purpose: str) -> str:
857
- if not text.startswith(_ENCRYPTED_PREFIX):
858
- return text
859
- payload = text[len(_ENCRYPTED_PREFIX) :]
860
- key_bytes = self._derive_key_bytes(purpose=purpose)
861
- if _has_fernet and Fernet is not None:
862
- try:
863
- fernet_key = base64.urlsafe_b64encode(key_bytes)
864
- return Fernet(fernet_key).decrypt(payload.encode("utf-8")).decode("utf-8")
865
- except InvalidToken:
866
- return ""
867
- try:
868
- cipher = base64.urlsafe_b64decode(payload.encode("ascii"))
869
- except ValueError:
870
- return ""
871
- plain = bytes(byte ^ key_bytes[idx % len(key_bytes)] for idx, byte in enumerate(cipher))
872
- try:
873
- return plain.decode("utf-8")
874
- except UnicodeDecodeError:
875
- return ""
876
-
877
-
878
- def project_preference_signals(
879
- project_dir: str,
880
- *,
881
- store_path: str | None = None,
882
- max_signals: int = _PREFERENCE_SIGNAL_LIMIT,
883
- ) -> list[dict[str, Any]]:
884
- canonical_project = os.path.realpath(project_dir)
885
- if not canonical_project:
886
- return []
887
-
888
- limit = max(1, min(int(max_signals), _PREFERENCE_SIGNAL_LIMIT))
889
- resolved_store_path = store_path
890
- if resolved_store_path is None:
891
- legacy_json_path = Path.home() / ".omg" / "shared-memory" / "store.json"
892
- if legacy_json_path.exists():
893
- resolved_store_path = str(legacy_json_path)
894
-
895
- store = MemoryStore(store_path=resolved_store_path)
896
- items = list(reversed(store.list_all()))
897
- results: list[dict[str, Any]] = []
898
- seen: set[tuple[str, str, str, str]] = set()
899
-
900
- for item in items:
901
- signal = _extract_project_signal(item, canonical_project)
902
- if signal is None:
903
- continue
904
-
905
- signature = (
906
- str(signal.get("field", "")),
907
- str(signal.get("value", "")),
908
- str(signal.get("source", "")),
909
- str(signal.get("run_id", "")),
910
- )
911
- if signature in seen:
912
- continue
913
- seen.add(signature)
914
- results.append(signal)
915
- if len(results) >= limit:
916
- break
917
-
918
- return results
919
-
920
-
921
- def _extract_project_signal(item: _Item, canonical_project: str) -> dict[str, Any] | None:
922
- raw_content = item.get("content")
923
- if not isinstance(raw_content, str):
924
- return None
925
-
926
- try:
927
- payload = json.loads(raw_content)
928
- except (TypeError, ValueError, json.JSONDecodeError):
929
- return None
930
- if not isinstance(payload, dict):
931
- return None
932
-
933
- scope = _extract_scope(payload, item)
934
- if os.path.realpath(scope) != canonical_project:
935
- return None
936
-
937
- field = str(payload.get("field", "")).strip()
938
- if not _is_allowed_field(field):
939
- return None
940
-
941
- value = _normalize_value(payload.get("value"))
942
- if not value:
943
- return None
944
-
945
- source = str(payload.get("source", "inferred_observation")).strip().lower() or "inferred_observation"
946
- confidence = _clamp_confidence(payload.get("confidence"))
947
- contradicted = bool(payload.get("contradicted") is True)
948
-
949
- section = classify_preference_section(field, value)
950
- destructive = is_destructive_preference(field, value)
951
-
952
- signal: dict[str, Any] = {
953
- "field": field,
954
- "value": value,
955
- "source": source,
956
- "confidence": confidence,
957
- "project_scope": canonical_project,
958
- "run_id": str(payload.get("run_id", "")).strip(),
959
- "updated_at": str(payload.get("updated_at", item.get("updated_at", ""))).strip(),
960
- "contradicted": contradicted,
961
- "section": section,
962
- "destructive": destructive,
963
- }
964
- return signal
965
-
966
-
967
- def _extract_scope(payload: dict[str, Any], item: _Item) -> str:
968
- scope = str(payload.get("project_scope", "")).strip()
969
- if scope:
970
- return scope
971
- tags = item.get("tags", [])
972
- if isinstance(tags, list):
973
- for tag in tags:
974
- text = str(tag)
975
- if text.startswith("project_scope:"):
976
- return text.split(":", 1)[1].strip()
977
- return ""
978
-
979
-
980
- def _is_allowed_field(field: str) -> bool:
981
- if field == "preferences.architecture_requests":
982
- return True
983
- if field == "user_vector.tags":
984
- return True
985
- return field.startswith("preferences.constraints.")
986
-
987
-
988
- def _normalize_value(raw: Any) -> str:
989
- text = " ".join(str(raw).strip().split())
990
- if not text:
991
- return ""
992
- return text[:_PREFERENCE_VALUE_MAX]
993
-
994
-
995
- def _clamp_confidence(raw: Any) -> float:
996
- try:
997
- score = float(raw)
998
- except (TypeError, ValueError):
999
- score = 0.0
1000
- if score < 0.0:
1001
- return 0.0
1002
- if score > 1.0:
1003
- return 1.0
1004
- return round(score, 3)
1005
-
1006
-
1007
- def _token_overlap_score(query: str, item: dict[str, Any]) -> float:
1008
- query_tokens = {token for token in query.lower().split() if token}
1009
- if not query_tokens:
1010
- return 0.0
1011
- tags_value = item.get("tags", [])
1012
- tags_text = " ".join(str(tag) for tag in tags_value) if isinstance(tags_value, list) else ""
1013
- corpus = " ".join([str(item.get("key", "")), str(item.get("content", "")), tags_text]).lower()
1014
- corpus_tokens = {token for token in corpus.split() if token}
1015
- if not corpus_tokens:
1016
- return 0.0
1017
- overlap = len(query_tokens.intersection(corpus_tokens))
1018
- return float(overlap) / float(len(query_tokens))
1019
-
1020
-
1021
- def _fts_query(query: str) -> str:
1022
- tokens = [token for token in query.replace('"', " ").split() if token]
1023
- if not tokens:
1024
- return ""
1025
- return " AND ".join(tokens)
1026
-
1027
-
1028
- def _parse_json_array(raw: object) -> list[Any]:
1029
- if isinstance(raw, list):
1030
- return raw
1031
- if not isinstance(raw, str):
1032
- return []
1033
- try:
1034
- payload = json.loads(raw)
1035
- except (TypeError, ValueError, json.JSONDecodeError):
1036
- return []
1037
- return payload if isinstance(payload, list) else []
1038
-
1039
-
1040
- def _parse_json_object(raw: object) -> dict[str, Any]:
1041
- if isinstance(raw, dict):
1042
- return raw
1043
- if not isinstance(raw, str):
1044
- return {}
1045
- try:
1046
- payload = json.loads(raw)
1047
- except (TypeError, ValueError, json.JSONDecodeError):
1048
- return {}
1049
- return payload if isinstance(payload, dict) else {}
1050
-
1051
-
1052
- def _sanitize_metadata(metadata: dict[str, Any]) -> dict[str, Any]:
1053
- clean: dict[str, Any] = {}
1054
- omitted_payload = False
1055
- for key, value in metadata.items():
1056
- key_text = str(key)
1057
- if key_text == "payload":
1058
- omitted_payload = True
1059
- continue
1060
- if isinstance(value, str) and len(value) > _INLINE_METADATA_MAX:
1061
- clean[key_text] = value[:_INLINE_METADATA_MAX] + "..."
1062
- continue
1063
- clean[key_text] = value
1064
- if omitted_payload:
1065
- clean["omitted_payload"] = True
1066
- return clean
1067
-
1068
-
1069
- def _sanitize_artifact_handle(handle: dict[str, Any]) -> dict[str, Any]:
1070
- sanitized = dict(handle)
1071
- metadata_raw = sanitized.get("metadata")
1072
- metadata = metadata_raw if isinstance(metadata_raw, dict) else {}
1073
- sanitized["metadata"] = _sanitize_metadata(metadata)
1074
- sanitized.pop("payload", None)
1075
- return sanitized
1076
-
1077
-
1078
- def _normalize_item(item: _Item) -> _Item:
1079
- normalized = dict(item)
1080
- normalized["content"] = _redact_pii(str(item.get("content", "")))
1081
- normalized["namespace"] = _qualify_namespace(item.get("namespace", _DEFAULT_NAMESPACE))
1082
- normalized["retention_days"] = _normalize_retention_days(item.get("retention_days"))
1083
- created_at = str(item.get("created_at", "")).strip() or _utc_now_iso()
1084
- normalized_expires_at = _normalize_expires_at(item.get("expires_at"))
1085
- normalized["expires_at"] = normalized_expires_at or _compute_expires_at(created_at, normalized["retention_days"])
1086
- normalized["quarantined"] = bool(item.get("quarantined", False))
1087
- return normalized
1088
-
1089
-
1090
- def _redact_pii(content: str) -> str:
1091
- redacted = content
1092
- for pattern, token in _PII_PATTERNS:
1093
- redacted = pattern.sub(token, redacted)
1094
- return redacted
1095
-
1096
-
1097
- def _qualify_namespace(namespace: object) -> str:
1098
- text = str(namespace or "").strip()
1099
- if not text:
1100
- text = _DEFAULT_NAMESPACE
1101
- if ":" in text:
1102
- host, local = text.split(":", 1)
1103
- if host.strip() and local.strip():
1104
- return f"{host.strip()}:{local.strip()}"
1105
- host = os.environ.get("OMG_MEMORY_HOST", _DEFAULT_MEMORY_HOST).strip() or _DEFAULT_MEMORY_HOST
1106
- return f"{host}:{text}"
1107
-
1108
-
1109
- def _normalize_retention_days(raw: object) -> int | None:
1110
- if raw is None or raw == "":
1111
- return None
1112
- value = int(str(raw).strip())
1113
- if value < 0:
1114
- raise ValueError("retention_days must be >= 0")
1115
- return value
1116
-
1117
-
1118
- def _compute_expires_at(created_at: str, retention_days: int | None) -> str | None:
1119
- if retention_days is None:
1120
- return None
1121
- try:
1122
- created_dt = datetime.fromisoformat(created_at)
1123
- except ValueError:
1124
- created_dt = datetime.now(timezone.utc)
1125
- if created_dt.tzinfo is None:
1126
- created_dt = created_dt.replace(tzinfo=timezone.utc)
1127
- return (created_dt + timedelta(days=retention_days)).isoformat()
1128
-
1129
-
1130
- def _is_expired(item: _Item) -> bool:
1131
- expires_at = _normalize_expires_at(item.get("expires_at")) or ""
1132
- if not expires_at:
1133
- return False
1134
- try:
1135
- expires_dt = datetime.fromisoformat(expires_at)
1136
- except ValueError:
1137
- return False
1138
- if expires_dt.tzinfo is None:
1139
- expires_dt = expires_dt.replace(tzinfo=timezone.utc)
1140
- return expires_dt <= datetime.now(timezone.utc)
1141
-
1142
-
1143
- def _normalize_expires_at(raw: object) -> str | None:
1144
- if raw is None:
1145
- return None
1146
- text = str(raw).strip()
1147
- if not text or text.lower() == "none":
1148
- return None
1149
- return text
1150
-
1151
-
1152
- def _ensure_memory_columns(conn: sqlite3.Connection) -> None:
1153
- columns = {
1154
- str(row["name"]): str(row["name"])
1155
- for row in conn.execute("PRAGMA table_info(memories)").fetchall()
1156
- }
1157
- if "namespace" not in columns:
1158
- _safe_add_memory_column(
1159
- conn,
1160
- "ALTER TABLE memories ADD COLUMN namespace TEXT NOT NULL DEFAULT '127.0.0.1:default'",
1161
- )
1162
- if "retention_days" not in columns:
1163
- _safe_add_memory_column(conn, "ALTER TABLE memories ADD COLUMN retention_days INTEGER")
1164
- if "expires_at" not in columns:
1165
- _safe_add_memory_column(conn, "ALTER TABLE memories ADD COLUMN expires_at TEXT")
1166
- if "quarantined" not in columns:
1167
- _safe_add_memory_column(conn, "ALTER TABLE memories ADD COLUMN quarantined INTEGER NOT NULL DEFAULT 0")
1168
-
1169
-
1170
- def _safe_add_memory_column(conn: sqlite3.Connection, ddl: str) -> None:
1171
- try:
1172
- conn.execute(ddl)
1173
- except sqlite3.OperationalError as exc:
1174
- if "duplicate column name" not in str(exc).lower():
1175
- raise
1176
-
1177
-
1178
- def _utc_now_iso() -> str:
1179
- return datetime.now(timezone.utc).isoformat()
1180
-
1181
-
1182
- __all__ = ["MemoryStore", "MemoryStoreFullError", "project_preference_signals"]