@trac3er/oh-my-god 2.0.4 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/omg/AGENTS.fragment.md +57 -4
- package/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/.agents/skills/omg/claim-judge/SKILL.md +11 -0
- package/.agents/skills/omg/claim-judge/openai.yaml +13 -0
- package/.agents/skills/omg/codex-rules.md +33 -0
- package/.agents/skills/omg/control-plane/SKILL.md +1 -1
- package/.agents/skills/omg/control-plane/openai.yaml +1 -1
- package/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/.agents/skills/omg/health/SKILL.md +11 -0
- package/.agents/skills/omg/health/openai.yaml +11 -0
- package/.agents/skills/omg/hook-governor/SKILL.md +1 -1
- package/.agents/skills/omg/hook-governor/openai.yaml +1 -1
- package/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/.agents/skills/omg/lsp-pack/SKILL.md +1 -1
- package/.agents/skills/omg/lsp-pack/openai.yaml +1 -1
- package/.agents/skills/omg/mcp-fabric/SKILL.md +1 -1
- package/.agents/skills/omg/mcp-fabric/openai.yaml +1 -1
- package/.agents/skills/omg/plan-council/SKILL.md +11 -0
- package/.agents/skills/omg/plan-council/openai.yaml +12 -0
- package/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/.agents/skills/omg/proof-gate/SKILL.md +11 -0
- package/.agents/skills/omg/proof-gate/openai.yaml +13 -0
- package/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +1 -1
- package/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +1 -1
- package/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/.agents/skills/omg/test-intent-lock/SKILL.md +11 -0
- package/.agents/skills/omg/test-intent-lock/openai.yaml +13 -0
- package/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/.agents/skills/omg/vision/SKILL.md +11 -0
- package/.agents/skills/omg/vision/openai.yaml +11 -0
- package/.claude-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +1 -1
- package/.claude-plugin/scripts/uninstall.sh +2 -2
- package/.mcp.json +0 -22
- package/CHANGELOG.md +13 -0
- package/OMG-setup.sh +64 -14
- package/OMG_COMPAT_CONTRACT.md +1 -1
- package/README.md +8 -6
- package/agents/omg-security-auditor.md +1 -1
- package/artifacts/release/.agents/skills/omg/AGENTS.fragment.md +52 -0
- package/artifacts/release/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/artifacts/release/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/codex-mcp.toml +4 -0
- package/artifacts/release/.agents/skills/omg/codex-rules.md +29 -0
- package/artifacts/release/.agents/skills/omg/control-plane/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/control-plane/openai.yaml +14 -0
- package/artifacts/release/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/health/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/health/openai.yaml +11 -0
- package/artifacts/release/.agents/skills/omg/hook-governor/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/hook-governor/openai.yaml +11 -0
- package/artifacts/release/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
- package/artifacts/release/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
- package/artifacts/release/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/artifacts/release/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/artifacts/release/.agents/skills/omg/vision/SKILL.md +11 -0
- package/artifacts/release/.agents/skills/omg/vision/openai.yaml +11 -0
- package/artifacts/release/.claude-plugin/marketplace.json +36 -0
- package/artifacts/release/.claude-plugin/plugin.json +23 -0
- package/artifacts/release/.mcp.json +40 -0
- package/artifacts/release/OMG_COMPAT_CONTRACT.md +92 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +52 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
- package/artifacts/release/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
- package/artifacts/release/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +92 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/algorithms.yaml +45 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/api-twin.yaml +48 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/control-plane.yaml +151 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +47 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +47 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +47 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/health.yaml +45 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +97 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +47 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +48 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +53 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/preflight.yaml +48 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +49 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/robotics.yaml +45 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/security-check.yaml +50 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/tracebank.yaml +47 -0
- package/artifacts/release/dist/enterprise/bundle/registry/bundles/vision.yaml +45 -0
- package/artifacts/release/dist/enterprise/bundle/registry/omg-capability.schema.json +296 -0
- package/artifacts/release/dist/enterprise/manifest.json +243 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +7 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/codex-mcp.toml +4 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/control-plane/openai.yaml +14 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/health/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/hook-governor/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/lsp-pack/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/mcp-fabric/openai.yaml +13 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/secure-worktree-pipeline/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
- package/artifacts/release/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
- package/artifacts/release/dist/public/bundle/.claude-plugin/marketplace.json +36 -0
- package/artifacts/release/dist/public/bundle/.claude-plugin/plugin.json +23 -0
- package/artifacts/release/dist/public/bundle/.mcp.json +40 -0
- package/artifacts/release/dist/public/bundle/OMG_COMPAT_CONTRACT.md +92 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/algorithms.yaml +45 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/api-twin.yaml +48 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/control-plane.yaml +151 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/data-lineage.yaml +47 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/delta-classifier.yaml +47 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/eval-gate.yaml +47 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/health.yaml +45 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/hook-governor.yaml +97 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/incident-replay.yaml +47 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/lsp-pack.yaml +48 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/mcp-fabric.yaml +53 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/preflight.yaml +48 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/remote-supervisor.yaml +49 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/robotics.yaml +45 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/security-check.yaml +50 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/tracebank.yaml +47 -0
- package/artifacts/release/dist/public/bundle/registry/bundles/vision.yaml +45 -0
- package/artifacts/release/dist/public/bundle/registry/omg-capability.schema.json +296 -0
- package/artifacts/release/dist/public/bundle/settings.json +526 -0
- package/artifacts/release/dist/public/manifest.json +255 -0
- package/artifacts/release/registry/bundles/algorithms.yaml +45 -0
- package/artifacts/release/registry/bundles/api-twin.yaml +48 -0
- package/artifacts/release/registry/bundles/control-plane.yaml +151 -0
- package/artifacts/release/registry/bundles/data-lineage.yaml +47 -0
- package/artifacts/release/registry/bundles/delta-classifier.yaml +47 -0
- package/artifacts/release/registry/bundles/eval-gate.yaml +47 -0
- package/artifacts/release/registry/bundles/health.yaml +45 -0
- package/artifacts/release/registry/bundles/hook-governor.yaml +97 -0
- package/artifacts/release/registry/bundles/incident-replay.yaml +47 -0
- package/artifacts/release/registry/bundles/lsp-pack.yaml +48 -0
- package/artifacts/release/registry/bundles/mcp-fabric.yaml +53 -0
- package/artifacts/release/registry/bundles/preflight.yaml +48 -0
- package/artifacts/release/registry/bundles/remote-supervisor.yaml +49 -0
- package/artifacts/release/registry/bundles/robotics.yaml +45 -0
- package/artifacts/release/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/artifacts/release/registry/bundles/security-check.yaml +50 -0
- package/artifacts/release/registry/bundles/tracebank.yaml +47 -0
- package/artifacts/release/registry/bundles/vision.yaml +45 -0
- package/artifacts/release/registry/omg-capability.schema.json +296 -0
- package/artifacts/release/settings.json +594 -0
- package/build/lib/agents/__init__.py +1 -0
- package/build/lib/agents/designer.md +67 -0
- package/build/lib/agents/explore.md +60 -0
- package/build/lib/agents/model_roles.py +196 -0
- package/build/lib/agents/omg-api-builder.md +23 -0
- package/build/lib/agents/omg-architect-mode.md +41 -0
- package/build/lib/agents/omg-architect.md +13 -0
- package/build/lib/agents/omg-backend-engineer.md +41 -0
- package/build/lib/agents/omg-critic.md +16 -0
- package/build/lib/agents/omg-database-engineer.md +41 -0
- package/build/lib/agents/omg-escalation-router.md +17 -0
- package/build/lib/agents/omg-executor.md +12 -0
- package/build/lib/agents/omg-frontend-designer.md +41 -0
- package/build/lib/agents/omg-implement-mode.md +49 -0
- package/build/lib/agents/omg-infra-engineer.md +41 -0
- package/build/lib/agents/omg-qa-tester.md +16 -0
- package/build/lib/agents/omg-research-mode.md +41 -0
- package/build/lib/agents/omg-security-auditor.md +41 -0
- package/build/lib/agents/omg-testing-engineer.md +41 -0
- package/build/lib/agents/plan.md +80 -0
- package/build/lib/agents/quick_task.md +64 -0
- package/build/lib/agents/reviewer.md +83 -0
- package/build/lib/agents/task.md +71 -0
- package/build/lib/commands/OMG:ai-commit.md +113 -0
- package/build/lib/commands/OMG:api-twin.md +22 -0
- package/build/lib/commands/OMG:arch.md +313 -0
- package/build/lib/commands/OMG:ccg.md +22 -0
- package/build/lib/commands/OMG:compat.md +57 -0
- package/build/lib/commands/OMG:cost.md +181 -0
- package/build/lib/commands/OMG:crazy.md +125 -0
- package/build/lib/commands/OMG:create-agent.md +183 -0
- package/build/lib/commands/OMG:deps.md +248 -0
- package/build/lib/commands/OMG:doctor.md +37 -0
- package/build/lib/commands/OMG:domain-init.md +11 -0
- package/build/lib/commands/OMG:escalate.md +52 -0
- package/build/lib/commands/OMG:health-check.md +45 -0
- package/build/lib/commands/OMG:init.md +134 -0
- package/build/lib/commands/OMG:mode.md +44 -0
- package/build/lib/commands/OMG:preflight.md +26 -0
- package/build/lib/commands/OMG:project-init.md +11 -0
- package/build/lib/commands/OMG:ralph-start.md +43 -0
- package/build/lib/commands/OMG:ralph-stop.md +23 -0
- package/build/lib/commands/OMG:security-check.md +28 -0
- package/build/lib/commands/OMG:session-branch.md +85 -0
- package/build/lib/commands/OMG:session-fork.md +53 -0
- package/build/lib/commands/OMG:session-merge.md +134 -0
- package/build/lib/commands/OMG:setup.md +78 -0
- package/build/lib/commands/OMG:stats.md +225 -0
- package/build/lib/commands/OMG:teams.md +39 -0
- package/build/lib/commands/OMG:theme.md +44 -0
- package/build/lib/commands/__init__.py +1 -0
- package/build/lib/control_plane/__init__.py +2 -0
- package/build/lib/control_plane/openapi.yaml +260 -0
- package/build/lib/control_plane/server.py +147 -0
- package/build/lib/control_plane/service.py +222 -0
- package/build/lib/hooks/__init__.py +0 -0
- package/build/lib/hooks/_agent_registry.py +423 -0
- package/build/lib/hooks/_analytics.py +291 -0
- package/build/lib/hooks/_budget.py +31 -0
- package/build/lib/hooks/_common.py +569 -0
- package/build/lib/hooks/_compression_optimizer.py +119 -0
- package/build/lib/hooks/_cost_ledger.py +176 -0
- package/build/lib/hooks/_learnings.py +126 -0
- package/build/lib/hooks/_memory.py +103 -0
- package/build/lib/hooks/_protected_context.py +150 -0
- package/build/lib/hooks/_token_counter.py +221 -0
- package/build/lib/hooks/branch_manager.py +236 -0
- package/build/lib/hooks/budget_governor.py +232 -0
- package/build/lib/hooks/circuit-breaker.py +270 -0
- package/build/lib/hooks/compression_feedback.py +254 -0
- package/build/lib/hooks/config-guard.py +216 -0
- package/build/lib/hooks/context_pressure.py +53 -0
- package/build/lib/hooks/credential_store.py +1020 -0
- package/build/lib/hooks/fetch-rate-limits.py +212 -0
- package/build/lib/hooks/firewall.py +48 -0
- package/build/lib/hooks/hashline-formatter-bridge.py +224 -0
- package/build/lib/hooks/hashline-injector.py +273 -0
- package/build/lib/hooks/hashline-validator.py +216 -0
- package/build/lib/hooks/idle-detector.py +95 -0
- package/build/lib/hooks/intentgate-keyword-detector.py +188 -0
- package/build/lib/hooks/magic-keyword-router.py +195 -0
- package/build/lib/hooks/policy_engine.py +641 -0
- package/build/lib/hooks/post-tool-failure.py +19 -0
- package/build/lib/hooks/post-write.py +219 -0
- package/build/lib/hooks/post_write.py +46 -0
- package/build/lib/hooks/pre-compact.py +398 -0
- package/build/lib/hooks/pre-tool-inject.py +98 -0
- package/build/lib/hooks/prompt-enhancer.py +672 -0
- package/build/lib/hooks/quality-runner.py +191 -0
- package/build/lib/hooks/query.py +512 -0
- package/build/lib/hooks/secret-guard.py +61 -0
- package/build/lib/hooks/secret_audit.py +144 -0
- package/build/lib/hooks/security_validators.py +75 -0
- package/build/lib/hooks/session-end-capture.py +137 -0
- package/build/lib/hooks/session-start.py +277 -0
- package/build/lib/hooks/setup_wizard.py +646 -0
- package/build/lib/hooks/shadow_manager.py +344 -0
- package/build/lib/hooks/state_migration.py +225 -0
- package/build/lib/hooks/stop-gate.py +7 -0
- package/build/lib/hooks/stop_dispatcher.py +945 -0
- package/build/lib/hooks/test-validator.py +361 -0
- package/build/lib/hooks/test_generator_hook.py +123 -0
- package/build/lib/hooks/todo-state-tracker.py +114 -0
- package/build/lib/hooks/tool-ledger.py +149 -0
- package/build/lib/hooks/trust_review.py +585 -0
- package/build/lib/plugins/README.md +60 -0
- package/build/lib/plugins/__init__.py +1 -0
- package/build/lib/plugins/advanced/commands/OMG:code-review.md +114 -0
- package/build/lib/plugins/advanced/commands/OMG:deep-plan.md +265 -0
- package/build/lib/plugins/advanced/commands/OMG:handoff.md +115 -0
- package/build/lib/plugins/advanced/commands/OMG:learn.md +110 -0
- package/build/lib/plugins/advanced/commands/OMG:maintainer.md +31 -0
- package/build/lib/plugins/advanced/commands/OMG:ralph-start.md +43 -0
- package/build/lib/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
- package/build/lib/plugins/advanced/commands/OMG:security-review.md +16 -0
- package/build/lib/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
- package/build/lib/plugins/advanced/commands/OMG:ship.md +46 -0
- package/build/lib/plugins/advanced/plugin.json +87 -0
- package/build/lib/plugins/core/plugin.json +145 -0
- package/build/lib/plugins/dephealth/__init__.py +0 -0
- package/build/lib/plugins/dephealth/cve_scanner.py +188 -0
- package/build/lib/plugins/dephealth/license_checker.py +135 -0
- package/build/lib/plugins/dephealth/manifest_detector.py +423 -0
- package/build/lib/plugins/dephealth/vuln_analyzer.py +169 -0
- package/build/lib/plugins/testgen/__init__.py +0 -0
- package/build/lib/plugins/testgen/codamosa_engine.py +402 -0
- package/build/lib/plugins/testgen/edge_case_synthesizer.py +184 -0
- package/build/lib/plugins/testgen/framework_detector.py +271 -0
- package/build/lib/plugins/testgen/skeleton_generator.py +219 -0
- package/build/lib/plugins/viz/__init__.py +0 -0
- package/build/lib/plugins/viz/ast_parser.py +139 -0
- package/build/lib/plugins/viz/diagram_generator.py +192 -0
- package/build/lib/plugins/viz/graph_builder.py +444 -0
- package/build/lib/plugins/viz/native_parsers.py +259 -0
- package/build/lib/plugins/viz/regex_parser.py +112 -0
- package/build/lib/registry/__init__.py +1 -0
- package/build/lib/registry/bundles/algorithms.yaml +45 -0
- package/build/lib/registry/bundles/api-twin.yaml +48 -0
- package/build/lib/registry/bundles/claim-judge.yaml +49 -0
- package/build/lib/registry/bundles/control-plane.yaml +151 -0
- package/build/lib/registry/bundles/data-lineage.yaml +47 -0
- package/build/lib/registry/bundles/delta-classifier.yaml +47 -0
- package/build/lib/registry/bundles/eval-gate.yaml +47 -0
- package/build/lib/registry/bundles/health.yaml +45 -0
- package/build/lib/registry/bundles/hook-governor.yaml +97 -0
- package/build/lib/registry/bundles/incident-replay.yaml +47 -0
- package/build/lib/registry/bundles/lsp-pack.yaml +48 -0
- package/build/lib/registry/bundles/mcp-fabric.yaml +53 -0
- package/build/lib/registry/bundles/plan-council.yaml +51 -0
- package/build/lib/registry/bundles/preflight.yaml +48 -0
- package/build/lib/registry/bundles/proof-gate.yaml +49 -0
- package/build/lib/registry/bundles/remote-supervisor.yaml +49 -0
- package/build/lib/registry/bundles/robotics.yaml +45 -0
- package/build/lib/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/build/lib/registry/bundles/security-check.yaml +50 -0
- package/build/lib/registry/bundles/test-intent-lock.yaml +49 -0
- package/build/lib/registry/bundles/tracebank.yaml +47 -0
- package/build/lib/registry/bundles/vision.yaml +45 -0
- package/build/lib/registry/omg-capability.schema.json +296 -0
- package/build/lib/registry/verify_artifact.py +90 -0
- package/build/lib/runtime/__init__.py +32 -0
- package/build/lib/runtime/adapters/__init__.py +13 -0
- package/build/lib/runtime/adapters/claude.py +63 -0
- package/build/lib/runtime/adapters/gpt.py +56 -0
- package/build/lib/runtime/adapters/local.py +56 -0
- package/build/lib/runtime/adoption.py +212 -0
- package/build/lib/runtime/api_twin.py +450 -0
- package/build/lib/runtime/asset_loader.py +62 -0
- package/build/lib/runtime/business_workflow.py +234 -0
- package/build/lib/runtime/claim_judge.py +95 -0
- package/build/lib/runtime/cli_provider.py +85 -0
- package/build/lib/runtime/compat.py +1459 -0
- package/build/lib/runtime/contract_compiler.py +1918 -0
- package/build/lib/runtime/custom_agent_loader.py +366 -0
- package/build/lib/runtime/data_lineage.py +73 -0
- package/build/lib/runtime/delta_classifier.py +81 -0
- package/build/lib/runtime/dispatcher.py +47 -0
- package/build/lib/runtime/domain_packs.py +46 -0
- package/build/lib/runtime/ecosystem.py +371 -0
- package/build/lib/runtime/eval_gate.py +96 -0
- package/build/lib/runtime/guide_assert.py +45 -0
- package/build/lib/runtime/incident_replay.py +47 -0
- package/build/lib/runtime/legacy_compat.py +7 -0
- package/build/lib/runtime/mcp_config_writers.py +233 -0
- package/build/lib/runtime/mcp_lifecycle.py +175 -0
- package/build/lib/runtime/mcp_memory_server.py +135 -0
- package/build/lib/runtime/memory_parsers/__init__.py +0 -0
- package/build/lib/runtime/memory_parsers/chatgpt_parser.py +257 -0
- package/build/lib/runtime/memory_parsers/claude_import.py +107 -0
- package/build/lib/runtime/memory_parsers/export.py +97 -0
- package/build/lib/runtime/memory_parsers/gemini_import.py +91 -0
- package/build/lib/runtime/memory_parsers/kimi_import.py +91 -0
- package/build/lib/runtime/memory_store.py +215 -0
- package/build/lib/runtime/omc_compat.py +7 -0
- package/build/lib/runtime/omg_compat_contract_snapshot.json +916 -0
- package/build/lib/runtime/omg_contract_snapshot.json +916 -0
- package/build/lib/runtime/omg_mcp_server.py +212 -0
- package/build/lib/runtime/playwright_pack.py +169 -0
- package/build/lib/runtime/preflight.py +117 -0
- package/build/lib/runtime/proof_chain.py +228 -0
- package/build/lib/runtime/proof_gate.py +163 -0
- package/build/lib/runtime/providers/__init__.py +0 -0
- package/build/lib/runtime/providers/codex_provider.py +102 -0
- package/build/lib/runtime/providers/gemini_provider.py +109 -0
- package/build/lib/runtime/providers/kimi_provider.py +132 -0
- package/build/lib/runtime/remote_supervisor.py +64 -0
- package/build/lib/runtime/runtime_profile.py +61 -0
- package/build/lib/runtime/security_check.py +965 -0
- package/build/lib/runtime/subagent_dispatcher.py +469 -0
- package/build/lib/runtime/team_router.py +1167 -0
- package/build/lib/runtime/test_intent_lock.py +91 -0
- package/build/lib/runtime/tmux_session_manager.py +169 -0
- package/build/lib/runtime/tracebank.py +95 -0
- package/build/lib/runtime/untrusted_content.py +269 -0
- package/commands/OMG:doctor.md +37 -0
- package/commands/OMG:preflight.md +1 -1
- package/commands/__init__.py +1 -0
- package/control_plane/__init__.py +2 -0
- package/control_plane/openapi.yaml +260 -0
- package/control_plane/server.py +147 -0
- package/control_plane/service.py +222 -0
- package/dist/enterprise/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
- package/dist/enterprise/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/codex-rules.md +29 -0
- package/dist/enterprise/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/health/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/health/openai.yaml +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/dist/enterprise/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/dist/enterprise/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
- package/dist/enterprise/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
- package/dist/enterprise/bundle/.claude-plugin/marketplace.json +5 -5
- package/dist/enterprise/bundle/.claude-plugin/plugin.json +1 -1
- package/dist/enterprise/bundle/OMG_COMPAT_CONTRACT.md +1 -1
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
- package/dist/enterprise/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
- package/dist/enterprise/bundle/plugins/advanced/plugin.json +87 -0
- package/dist/enterprise/bundle/registry/bundles/algorithms.yaml +45 -0
- package/dist/enterprise/bundle/registry/bundles/api-twin.yaml +48 -0
- package/dist/enterprise/bundle/registry/bundles/control-plane.yaml +151 -0
- package/dist/enterprise/bundle/registry/bundles/data-lineage.yaml +47 -0
- package/dist/enterprise/bundle/registry/bundles/delta-classifier.yaml +47 -0
- package/dist/enterprise/bundle/registry/bundles/eval-gate.yaml +47 -0
- package/dist/enterprise/bundle/registry/bundles/health.yaml +45 -0
- package/dist/enterprise/bundle/registry/bundles/hook-governor.yaml +97 -0
- package/dist/enterprise/bundle/registry/bundles/incident-replay.yaml +47 -0
- package/dist/enterprise/bundle/registry/bundles/lsp-pack.yaml +48 -0
- package/dist/enterprise/bundle/registry/bundles/mcp-fabric.yaml +53 -0
- package/dist/enterprise/bundle/registry/bundles/preflight.yaml +48 -0
- package/dist/enterprise/bundle/registry/bundles/remote-supervisor.yaml +49 -0
- package/dist/enterprise/bundle/registry/bundles/robotics.yaml +45 -0
- package/dist/enterprise/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/dist/enterprise/bundle/registry/bundles/security-check.yaml +50 -0
- package/dist/enterprise/bundle/registry/bundles/tracebank.yaml +47 -0
- package/dist/enterprise/bundle/registry/bundles/vision.yaml +45 -0
- package/dist/enterprise/bundle/registry/omg-capability.schema.json +296 -0
- package/dist/enterprise/bundle/settings.json +233 -5
- package/dist/enterprise/manifest.json +216 -12
- package/dist/public/bundle/.agents/skills/omg/AGENTS.fragment.md +50 -3
- package/dist/public/bundle/.agents/skills/omg/algorithms/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/algorithms/openai.yaml +11 -0
- package/dist/public/bundle/.agents/skills/omg/api-twin/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/api-twin/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/codex-rules.md +29 -0
- package/dist/public/bundle/.agents/skills/omg/data-lineage/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/data-lineage/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/delta-classifier/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/delta-classifier/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/eval-gate/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/eval-gate/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/health/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/health/openai.yaml +11 -0
- package/dist/public/bundle/.agents/skills/omg/incident-replay/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/incident-replay/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/preflight/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/preflight/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/remote-supervisor/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/remote-supervisor/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/robotics/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/robotics/openai.yaml +11 -0
- package/dist/public/bundle/.agents/skills/omg/security-check/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/security-check/openai.yaml +13 -0
- package/dist/public/bundle/.agents/skills/omg/tracebank/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/tracebank/openai.yaml +12 -0
- package/dist/public/bundle/.agents/skills/omg/vision/SKILL.md +11 -0
- package/dist/public/bundle/.agents/skills/omg/vision/openai.yaml +11 -0
- package/dist/public/bundle/.claude-plugin/marketplace.json +5 -5
- package/dist/public/bundle/.claude-plugin/plugin.json +1 -1
- package/dist/public/bundle/OMG_COMPAT_CONTRACT.md +1 -1
- package/dist/public/bundle/plugins/advanced/commands/OMG:code-review.md +114 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:deep-plan.md +221 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:handoff.md +115 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:learn.md +110 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:maintainer.md +31 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-start.md +43 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:security-review.md +16 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
- package/dist/public/bundle/plugins/advanced/commands/OMG:ship.md +46 -0
- package/dist/public/bundle/plugins/advanced/plugin.json +87 -0
- package/dist/public/bundle/registry/bundles/algorithms.yaml +45 -0
- package/dist/public/bundle/registry/bundles/api-twin.yaml +48 -0
- package/dist/public/bundle/registry/bundles/control-plane.yaml +151 -0
- package/dist/public/bundle/registry/bundles/data-lineage.yaml +47 -0
- package/dist/public/bundle/registry/bundles/delta-classifier.yaml +47 -0
- package/dist/public/bundle/registry/bundles/eval-gate.yaml +47 -0
- package/dist/public/bundle/registry/bundles/health.yaml +45 -0
- package/dist/public/bundle/registry/bundles/hook-governor.yaml +97 -0
- package/dist/public/bundle/registry/bundles/incident-replay.yaml +47 -0
- package/dist/public/bundle/registry/bundles/lsp-pack.yaml +48 -0
- package/dist/public/bundle/registry/bundles/mcp-fabric.yaml +53 -0
- package/dist/public/bundle/registry/bundles/preflight.yaml +48 -0
- package/dist/public/bundle/registry/bundles/remote-supervisor.yaml +49 -0
- package/dist/public/bundle/registry/bundles/robotics.yaml +45 -0
- package/dist/public/bundle/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/dist/public/bundle/registry/bundles/security-check.yaml +50 -0
- package/dist/public/bundle/registry/bundles/tracebank.yaml +47 -0
- package/dist/public/bundle/registry/bundles/vision.yaml +45 -0
- package/dist/public/bundle/registry/omg-capability.schema.json +296 -0
- package/dist/public/bundle/settings.json +232 -4
- package/dist/public/manifest.json +216 -12
- package/docs/assets/omg-hud.svg +32 -0
- package/docs/install/claude-code.md +31 -0
- package/docs/install/codex.md +29 -0
- package/docs/migration/native-adoption.md +57 -0
- package/docs/proof.md +65 -0
- package/docs/release-checklist.md +40 -0
- package/docs/transcripts/crazy.md +17 -0
- package/docs/transcripts/setup.md +25 -0
- package/hooks/policy_engine.py +122 -17
- package/hooks/setup_wizard.py +52 -12
- package/hooks/shadow_manager.py +27 -0
- package/package.json +2 -2
- package/plugins/README.md +5 -1
- package/plugins/__init__.py +1 -0
- package/plugins/advanced/commands/OMG:deep-plan.md +50 -6
- package/plugins/advanced/commands/OMG:ship.md +1 -1
- package/plugins/advanced/plugin.json +1 -10
- package/plugins/core/plugin.json +7 -1
- package/pyproject.toml +39 -3
- package/registry/__init__.py +1 -0
- package/registry/bundles/algorithms.yaml +45 -0
- package/registry/bundles/api-twin.yaml +48 -0
- package/registry/bundles/claim-judge.yaml +49 -0
- package/registry/bundles/control-plane.yaml +151 -0
- package/registry/bundles/data-lineage.yaml +47 -0
- package/registry/bundles/delta-classifier.yaml +47 -0
- package/registry/bundles/eval-gate.yaml +47 -0
- package/registry/bundles/health.yaml +45 -0
- package/registry/bundles/hook-governor.yaml +97 -0
- package/registry/bundles/incident-replay.yaml +47 -0
- package/registry/bundles/lsp-pack.yaml +48 -0
- package/registry/bundles/mcp-fabric.yaml +53 -0
- package/registry/bundles/plan-council.yaml +51 -0
- package/registry/bundles/preflight.yaml +48 -0
- package/registry/bundles/proof-gate.yaml +49 -0
- package/registry/bundles/remote-supervisor.yaml +49 -0
- package/registry/bundles/robotics.yaml +45 -0
- package/registry/bundles/secure-worktree-pipeline.yaml +54 -0
- package/registry/bundles/security-check.yaml +50 -0
- package/registry/bundles/test-intent-lock.yaml +49 -0
- package/registry/bundles/tracebank.yaml +47 -0
- package/registry/bundles/vision.yaml +45 -0
- package/registry/omg-capability.schema.json +296 -0
- package/registry/verify_artifact.py +90 -0
- package/runtime/adapters/claude.py +3 -0
- package/runtime/adapters/gpt.py +3 -0
- package/runtime/adapters/local.py +3 -0
- package/runtime/adoption.py +1 -1
- package/runtime/api_twin.py +334 -14
- package/runtime/asset_loader.py +62 -0
- package/runtime/business_workflow.py +14 -0
- package/runtime/claim_judge.py +95 -0
- package/runtime/compat.py +142 -2
- package/runtime/contract_compiler.py +1270 -50
- package/runtime/data_lineage.py +73 -0
- package/runtime/delta_classifier.py +81 -0
- package/runtime/domain_packs.py +12 -0
- package/runtime/ecosystem.py +1 -1
- package/runtime/eval_gate.py +96 -0
- package/runtime/incident_replay.py +47 -0
- package/runtime/mcp_config_writers.py +12 -0
- package/runtime/mcp_lifecycle.py +31 -9
- package/runtime/mcp_memory_server.py +1 -1
- package/runtime/omg_compat_contract_snapshot.json +1 -1
- package/runtime/omg_contract_snapshot.json +1 -1
- package/runtime/omg_mcp_server.py +16 -9
- package/runtime/playwright_pack.py +169 -0
- package/runtime/preflight.py +66 -1
- package/runtime/proof_chain.py +228 -0
- package/runtime/proof_gate.py +163 -0
- package/runtime/remote_supervisor.py +64 -0
- package/runtime/security_check.py +626 -8
- package/runtime/team_router.py +6 -6
- package/runtime/test_intent_lock.py +91 -0
- package/runtime/tracebank.py +95 -0
- package/runtime/untrusted_content.py +172 -5
- package/scripts/check-omg-public-ready.py +77 -0
- package/scripts/omg.py +207 -3
- package/scripts/verify-standalone.sh +7 -0
- package/settings.json +233 -5
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Stop Ralph autonomous loop — deactivates the state file."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ralph-stop — Stop Ralph Autonomous Loop
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
Stops an active Ralph loop by deactivating the state file.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
```
|
|
14
|
+
/OMG:ralph-stop
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## How it Works
|
|
18
|
+
1. Read `.omg/state/ralph-loop.json`
|
|
19
|
+
2. Set `active: false` in the state file (preserve iteration count for review)
|
|
20
|
+
3. Report: "Ralph loop stopped after N iterations. Gomg was: [original_prompt]"
|
|
21
|
+
|
|
22
|
+
## If No Active Loop
|
|
23
|
+
Report: "No active Ralph loop found. Nothing to stop."
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deprecated alias to OMG's canonical security-check pipeline.
|
|
3
|
+
allowed-tools: Read, Grep, Glob, Bash(python3:*), Bash(rg:*)
|
|
4
|
+
argument-hint: "[path or '.' for the current project]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:security-review — Deprecated Alias
|
|
8
|
+
|
|
9
|
+
`/OMG:security-review` remains available only for compatibility.
|
|
10
|
+
|
|
11
|
+
Use `/OMG:security-check` instead. The canonical pipeline now owns:
|
|
12
|
+
|
|
13
|
+
- normalized security findings
|
|
14
|
+
- dependency and AST enrichment
|
|
15
|
+
- evidence-ready provenance and trust scores
|
|
16
|
+
- reuse across CLI, compat routing, control plane, MCP, and ship flows
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Structured multi-step reasoning using sequential-thinking tool for complex debugging and planning.
|
|
3
|
+
allowed-tools: sequential-thinking_sequentialthinking, Read, Grep, Glob
|
|
4
|
+
argument-hint: "[problem statement to reason through]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:sequential-thinking
|
|
8
|
+
|
|
9
|
+
Use the sequential-thinking tool when the task needs explicit step-by-step reasoning,
|
|
10
|
+
branching, and hypothesis verification.
|
|
11
|
+
|
|
12
|
+
Execution contract:
|
|
13
|
+
- Start with an initial thought budget
|
|
14
|
+
- Revise or branch when new evidence appears
|
|
15
|
+
- End only when a verified conclusion is reached
|
|
16
|
+
|
|
17
|
+
Output contract:
|
|
18
|
+
- Return final conclusion
|
|
19
|
+
- Return key assumptions
|
|
20
|
+
- Return verification steps used
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ship pipeline — Idea -> Plan -> Execute -> Evidence -> PR-ready summary
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(python3:*), Bash(pytest:*), Bash(npm test:*), Bash(go test:*), Bash(cargo test:*), Bash(jest:*), Bash(vitest:*)
|
|
4
|
+
argument-hint: "[goal or optional path to .omg/idea.yml]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ship — Idea -> Evidence -> PR
|
|
8
|
+
|
|
9
|
+
## Step 1: Load idea contract
|
|
10
|
+
- Prefer `.omg/idea.yml`.
|
|
11
|
+
- If missing, scaffold from `~/.claude/templates/omg/idea.yml` and ask user for minimum fields:
|
|
12
|
+
- `goal`, `constraints`, `acceptance`, `risk`, `evidence_required`.
|
|
13
|
+
|
|
14
|
+
## Step 2: Convert idea to execution plan
|
|
15
|
+
- Consume plan artifacts generated by `/OMG:deep-plan`.
|
|
16
|
+
- Require `.omg/plans/deep-plan.md` and `.omg/plans/deep-plan.json` to already encode the business workflow contract.
|
|
17
|
+
- If missing, invoke `/OMG:deep-plan` first and return after those artifacts are created.
|
|
18
|
+
- Use the deep-plan workflow path and task metadata as the execution source of truth.
|
|
19
|
+
|
|
20
|
+
## Step 3: Execute with Shadow + Evidence discipline
|
|
21
|
+
- Implement changes.
|
|
22
|
+
- Run verification commands.
|
|
23
|
+
- Build an evidence pack at `.omg/evidence/<run-id>.json` containing:
|
|
24
|
+
- `tests[]`, `security_scans[]`, `diff_summary`, `reproducibility`, `unresolved_risks[]`.
|
|
25
|
+
|
|
26
|
+
## Step 4: Security and trust checks
|
|
27
|
+
- Run `/OMG:security-check` for auth/payment/database/sensitive changes.
|
|
28
|
+
- If config/hook/MCP changes are involved, ensure trust manifest is updated at `.omg/trust/manifest.lock.json`.
|
|
29
|
+
|
|
30
|
+
## Step 5: PR-ready output
|
|
31
|
+
Return:
|
|
32
|
+
1. Goal and scope delivered
|
|
33
|
+
2. Files changed
|
|
34
|
+
3. Verification evidence (command + exit code)
|
|
35
|
+
4. Risks/unknowns
|
|
36
|
+
5. Suggested PR title + body
|
|
37
|
+
|
|
38
|
+
## Full-power sub-agent protocol
|
|
39
|
+
- Prefer parallel background sub-agent launches for independent workstreams.
|
|
40
|
+
- Do not finalize until every launched track is collected via `background_output`.
|
|
41
|
+
- Use `sequential-thinking` to reconcile conflicts and enforce execution order.
|
|
42
|
+
|
|
43
|
+
## Anti-patterns
|
|
44
|
+
- Do not claim done without evidence.
|
|
45
|
+
- Do not edit tests to hide product bugs.
|
|
46
|
+
- Do not skip trust review for `.claude/.omg` or MCP changes.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "omg-advanced",
|
|
3
|
+
"version": "2.0.7",
|
|
4
|
+
"description": "Advanced OMG commands - deep planning, learning, code review, and specialized workflows",
|
|
5
|
+
"type": "omg-plugin",
|
|
6
|
+
"commands": {
|
|
7
|
+
"deep-plan": {
|
|
8
|
+
"path": "commands/OMG:deep-plan.md",
|
|
9
|
+
"description": "Deep strategic planning with domain awareness",
|
|
10
|
+
"category": "planning"
|
|
11
|
+
},
|
|
12
|
+
"learn": {
|
|
13
|
+
"path": "commands/OMG:learn.md",
|
|
14
|
+
"description": "Create reusable skills from patterns",
|
|
15
|
+
"category": "knowledge"
|
|
16
|
+
},
|
|
17
|
+
"code-review": {
|
|
18
|
+
"path": "commands/OMG:code-review.md",
|
|
19
|
+
"description": "Deep code review with line-by-line analysis",
|
|
20
|
+
"category": "quality"
|
|
21
|
+
},
|
|
22
|
+
"ship": {
|
|
23
|
+
"path": "commands/OMG:ship.md",
|
|
24
|
+
"description": "Ship pipeline - idea to PR-ready summary",
|
|
25
|
+
"category": "delivery"
|
|
26
|
+
},
|
|
27
|
+
"handoff": {
|
|
28
|
+
"path": "commands/OMG:handoff.md",
|
|
29
|
+
"description": "Intelligent session transfer",
|
|
30
|
+
"category": "collaboration"
|
|
31
|
+
},
|
|
32
|
+
"maintainer": {
|
|
33
|
+
"path": "commands/OMG:maintainer.md",
|
|
34
|
+
"description": "Open-source maintainer workflows",
|
|
35
|
+
"category": "oss"
|
|
36
|
+
},
|
|
37
|
+
"sequential-thinking": {
|
|
38
|
+
"path": "commands/OMG:sequential-thinking.md",
|
|
39
|
+
"description": "Structured multi-step reasoning",
|
|
40
|
+
"category": "thinking"
|
|
41
|
+
},
|
|
42
|
+
"ralph-start": {
|
|
43
|
+
"path": "commands/OMG:ralph-start.md",
|
|
44
|
+
"description": "Start Ralph autonomous loop",
|
|
45
|
+
"category": "automation"
|
|
46
|
+
},
|
|
47
|
+
"ralph-stop": {
|
|
48
|
+
"path": "commands/OMG:ralph-stop.md",
|
|
49
|
+
"description": "Stop Ralph autonomous loop",
|
|
50
|
+
"category": "automation"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"categories": {
|
|
54
|
+
"planning": {
|
|
55
|
+
"description": "Strategic planning and architecture",
|
|
56
|
+
"commands": ["deep-plan"]
|
|
57
|
+
},
|
|
58
|
+
"quality": {
|
|
59
|
+
"description": "Code quality and review",
|
|
60
|
+
"commands": ["code-review"]
|
|
61
|
+
},
|
|
62
|
+
"knowledge": {
|
|
63
|
+
"description": "Learning and skill creation",
|
|
64
|
+
"commands": ["learn"]
|
|
65
|
+
},
|
|
66
|
+
"delivery": {
|
|
67
|
+
"description": "Shipping and release workflows",
|
|
68
|
+
"commands": ["ship"]
|
|
69
|
+
},
|
|
70
|
+
"collaboration": {
|
|
71
|
+
"description": "Team collaboration and handoff",
|
|
72
|
+
"commands": ["handoff"]
|
|
73
|
+
},
|
|
74
|
+
"automation": {
|
|
75
|
+
"description": "Autonomous execution modes",
|
|
76
|
+
"commands": ["ralph-start", "ralph-stop"]
|
|
77
|
+
},
|
|
78
|
+
"thinking": {
|
|
79
|
+
"description": "Structured thinking tools",
|
|
80
|
+
"commands": ["sequential-thinking"]
|
|
81
|
+
},
|
|
82
|
+
"oss": {
|
|
83
|
+
"description": "Open source maintainer tools",
|
|
84
|
+
"commands": ["maintainer"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "omg-core",
|
|
3
|
+
"version": "2.0.7",
|
|
4
|
+
"description": "Core OMG commands - native setup, routing, orchestration, and verification surfaces",
|
|
5
|
+
"type": "omg-plugin",
|
|
6
|
+
"commands": {
|
|
7
|
+
"setup": {
|
|
8
|
+
"path": "commands/OMG:setup.md",
|
|
9
|
+
"description": "Native OMG setup and adoption flow for supported hosts",
|
|
10
|
+
"category": "setup"
|
|
11
|
+
},
|
|
12
|
+
"init": {
|
|
13
|
+
"path": "commands/OMG:init.md",
|
|
14
|
+
"description": "Unified initializer for project setup and domain scaffolding",
|
|
15
|
+
"category": "setup"
|
|
16
|
+
},
|
|
17
|
+
"escalate": {
|
|
18
|
+
"path": "commands/OMG:escalate.md",
|
|
19
|
+
"description": "Auto-route to Codex or Gemini",
|
|
20
|
+
"category": "routing"
|
|
21
|
+
},
|
|
22
|
+
"teams": {
|
|
23
|
+
"path": "commands/OMG:teams.md",
|
|
24
|
+
"description": "Internal team routing for standalone operation",
|
|
25
|
+
"category": "routing"
|
|
26
|
+
},
|
|
27
|
+
"ccg": {
|
|
28
|
+
"path": "commands/OMG:ccg.md",
|
|
29
|
+
"description": "CCG mode - tri-track synthesis (Claude+Codex+Gemini)",
|
|
30
|
+
"category": "routing"
|
|
31
|
+
},
|
|
32
|
+
"crazy": {
|
|
33
|
+
"path": "commands/OMG:crazy.md",
|
|
34
|
+
"description": "CRAZY mode - parallel multi-agent orchestration",
|
|
35
|
+
"category": "orchestration"
|
|
36
|
+
},
|
|
37
|
+
"compat": {
|
|
38
|
+
"path": "commands/OMG:compat.md",
|
|
39
|
+
"description": "Legacy skill compatibility dispatcher",
|
|
40
|
+
"category": "compatibility"
|
|
41
|
+
},
|
|
42
|
+
"security-check": {
|
|
43
|
+
"path": "commands/OMG:security-check.md",
|
|
44
|
+
"description": "Canonical security pipeline with normalized findings and evidence",
|
|
45
|
+
"category": "security"
|
|
46
|
+
},
|
|
47
|
+
"api-twin": {
|
|
48
|
+
"path": "commands/OMG:api-twin.md",
|
|
49
|
+
"description": "Contract replay and fixture-based API simulation",
|
|
50
|
+
"category": "contracts"
|
|
51
|
+
},
|
|
52
|
+
"preflight": {
|
|
53
|
+
"path": "commands/OMG:preflight.md",
|
|
54
|
+
"description": "Structured routing and evidence planning before execution",
|
|
55
|
+
"category": "routing"
|
|
56
|
+
},
|
|
57
|
+
"health-check": {
|
|
58
|
+
"path": "commands/OMG:health-check.md",
|
|
59
|
+
"description": "Verify project setup and tool integration",
|
|
60
|
+
"category": "setup"
|
|
61
|
+
},
|
|
62
|
+
"mode": {
|
|
63
|
+
"path": "commands/OMG:mode.md",
|
|
64
|
+
"description": "Set cognitive mode for the session",
|
|
65
|
+
"category": "config"
|
|
66
|
+
},
|
|
67
|
+
"domain-init": {
|
|
68
|
+
"path": "commands/OMG:domain-init.md",
|
|
69
|
+
"description": "Alias for domain scaffolding (use init instead)",
|
|
70
|
+
"category": "setup",
|
|
71
|
+
"deprecated": true
|
|
72
|
+
},
|
|
73
|
+
"project-init": {
|
|
74
|
+
"path": "commands/OMG:project-init.md",
|
|
75
|
+
"description": "Alias for project setup (use init instead)",
|
|
76
|
+
"category": "setup",
|
|
77
|
+
"deprecated": true
|
|
78
|
+
},
|
|
79
|
+
"cost": {
|
|
80
|
+
"path": "commands/OMG:cost.md",
|
|
81
|
+
"description": "Display session cost tracking, budget status, and usage history",
|
|
82
|
+
"category": "observability"
|
|
83
|
+
},
|
|
84
|
+
"stats": {
|
|
85
|
+
"path": "commands/OMG:stats.md",
|
|
86
|
+
"description": "Display session analytics, tool usage trends, file heatmaps, and failure patterns",
|
|
87
|
+
"category": "observability"
|
|
88
|
+
},
|
|
89
|
+
"deps": {
|
|
90
|
+
"path": "commands/OMG:deps.md",
|
|
91
|
+
"description": "Scan project dependencies for CVEs, license issues, and outdated packages",
|
|
92
|
+
"category": "observability"
|
|
93
|
+
},
|
|
94
|
+
"arch": {
|
|
95
|
+
"path": "commands/OMG:arch.md",
|
|
96
|
+
"description": "Codebase visualization — dependency graphs and architecture diagrams",
|
|
97
|
+
"category": "visualization",
|
|
98
|
+
"feature_flag": "CODEBASE_VIZ"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"categories": {
|
|
102
|
+
"setup": {
|
|
103
|
+
"description": "Project initialization and setup",
|
|
104
|
+
"commands": ["setup", "init", "health-check"]
|
|
105
|
+
},
|
|
106
|
+
"routing": {
|
|
107
|
+
"description": "Model routing and escalation",
|
|
108
|
+
"commands": ["escalate", "teams", "ccg", "preflight"]
|
|
109
|
+
},
|
|
110
|
+
"orchestration": {
|
|
111
|
+
"description": "Multi-agent orchestration modes",
|
|
112
|
+
"commands": ["crazy"]
|
|
113
|
+
},
|
|
114
|
+
"compatibility": {
|
|
115
|
+
"description": "Legacy compatibility",
|
|
116
|
+
"commands": ["compat"]
|
|
117
|
+
},
|
|
118
|
+
"config": {
|
|
119
|
+
"description": "Configuration and settings",
|
|
120
|
+
"commands": ["mode"]
|
|
121
|
+
},
|
|
122
|
+
"observability": {
|
|
123
|
+
"description": "Cost tracking and session observability",
|
|
124
|
+
"commands": ["cost", "stats", "deps"]
|
|
125
|
+
},
|
|
126
|
+
"security": {
|
|
127
|
+
"description": "Canonical security and trust checks",
|
|
128
|
+
"commands": ["security-check"]
|
|
129
|
+
},
|
|
130
|
+
"contracts": {
|
|
131
|
+
"description": "Contract replay and API simulation",
|
|
132
|
+
"commands": ["api-twin"]
|
|
133
|
+
},
|
|
134
|
+
"visualization": {
|
|
135
|
+
"description": "Codebase visualization and architecture diagrams",
|
|
136
|
+
"commands": ["arch"]
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"roles": {
|
|
140
|
+
"plan-council": {
|
|
141
|
+
"description": "Canonical council-style planning role",
|
|
142
|
+
"bundle": "plan-council"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import os
|
|
5
|
+
from datetime import datetime, timedelta, timezone
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Any
|
|
8
|
+
import urllib.error
|
|
9
|
+
import urllib.request
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
OSV_BATCH_URL = "https://api.osv.dev/v1/querybatch"
|
|
13
|
+
CACHE_REL_PATH = Path(".omg") / "state" / "cve-cache.json"
|
|
14
|
+
CACHE_TTL_HOURS = 24
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _dep_health_enabled() -> bool:
|
|
18
|
+
env_val = os.environ.get("OMG_DEP_HEALTH_ENABLED", "").lower()
|
|
19
|
+
if env_val in ("1", "true", "yes"):
|
|
20
|
+
return True
|
|
21
|
+
if env_val in ("0", "false", "no"):
|
|
22
|
+
return False
|
|
23
|
+
try:
|
|
24
|
+
import sys
|
|
25
|
+
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
26
|
+
from hooks._common import get_feature_flag
|
|
27
|
+
return get_feature_flag("DEP_HEALTH", default=False)
|
|
28
|
+
except Exception:
|
|
29
|
+
return False
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def scan_for_cves(dependency_list: list[dict[str, str]], project_dir: str = ".") -> dict[str, Any]:
|
|
33
|
+
if not _dep_health_enabled():
|
|
34
|
+
return {"results": {}, "cached": False, "scan_ts": datetime.now(timezone.utc).isoformat()}
|
|
35
|
+
|
|
36
|
+
now = datetime.now(timezone.utc)
|
|
37
|
+
cache_path = Path(project_dir) / CACHE_REL_PATH
|
|
38
|
+
cached_payload = _load_cache(cache_path)
|
|
39
|
+
|
|
40
|
+
if not dependency_list:
|
|
41
|
+
return {
|
|
42
|
+
"results": {},
|
|
43
|
+
"cached": False,
|
|
44
|
+
"scan_ts": now.isoformat(),
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if cached_payload and _is_cache_fresh(cached_payload.get("scan_ts")):
|
|
48
|
+
return {
|
|
49
|
+
"results": cached_payload.get("results", {}),
|
|
50
|
+
"cached": True,
|
|
51
|
+
"scan_ts": cached_payload.get("scan_ts", now.isoformat()),
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
try:
|
|
55
|
+
osv_response = _query_osv_batch(dependency_list)
|
|
56
|
+
except urllib.error.URLError:
|
|
57
|
+
if cached_payload:
|
|
58
|
+
return {
|
|
59
|
+
"results": cached_payload.get("results", {}),
|
|
60
|
+
"cached": True,
|
|
61
|
+
"scan_ts": cached_payload.get("scan_ts", now.isoformat()),
|
|
62
|
+
}
|
|
63
|
+
return {"status": "offline", "results": {}, "cached": False}
|
|
64
|
+
|
|
65
|
+
structured_results = _normalize_results(dependency_list, osv_response)
|
|
66
|
+
scan_result = {
|
|
67
|
+
"results": structured_results,
|
|
68
|
+
"cached": False,
|
|
69
|
+
"scan_ts": now.isoformat(),
|
|
70
|
+
}
|
|
71
|
+
_save_cache(cache_path, scan_result)
|
|
72
|
+
return scan_result
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def _query_osv_batch(dependency_list: list[dict[str, str]]) -> dict[str, Any]:
|
|
76
|
+
payload = {
|
|
77
|
+
"queries": [
|
|
78
|
+
{
|
|
79
|
+
"package": {
|
|
80
|
+
"name": dependency["name"],
|
|
81
|
+
"ecosystem": dependency["ecosystem"],
|
|
82
|
+
},
|
|
83
|
+
"version": dependency["version"],
|
|
84
|
+
}
|
|
85
|
+
for dependency in dependency_list
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
request = urllib.request.Request(
|
|
90
|
+
OSV_BATCH_URL,
|
|
91
|
+
data=json.dumps(payload).encode("utf-8"),
|
|
92
|
+
headers={"Content-Type": "application/json"},
|
|
93
|
+
method="POST",
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
with urllib.request.urlopen(request) as response:
|
|
97
|
+
body = response.read().decode("utf-8")
|
|
98
|
+
return json.loads(body)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def _normalize_results(
|
|
102
|
+
dependency_list: list[dict[str, str]], osv_response: dict[str, Any]
|
|
103
|
+
) -> dict[str, list[dict[str, Any]]]:
|
|
104
|
+
output: dict[str, list[dict[str, Any]]] = {}
|
|
105
|
+
response_results = osv_response.get("results", [])
|
|
106
|
+
|
|
107
|
+
for index, dependency in enumerate(dependency_list):
|
|
108
|
+
pkg_name = dependency.get("name", "")
|
|
109
|
+
query_result = response_results[index] if index < len(response_results) else {}
|
|
110
|
+
vulns = query_result.get("vulns", [])
|
|
111
|
+
|
|
112
|
+
normalized_vulns: list[dict[str, Any]] = []
|
|
113
|
+
for vuln in vulns:
|
|
114
|
+
affected_versions, fixed_version = _extract_affected(vuln)
|
|
115
|
+
normalized_vulns.append(
|
|
116
|
+
{
|
|
117
|
+
"id": vuln.get("id", ""),
|
|
118
|
+
"severity": _extract_severity(vuln),
|
|
119
|
+
"summary": vuln.get("summary", ""),
|
|
120
|
+
"affected_versions": affected_versions,
|
|
121
|
+
"fixed_version": fixed_version,
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
output[pkg_name] = normalized_vulns
|
|
126
|
+
|
|
127
|
+
return output
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _extract_severity(vuln: dict[str, Any]) -> str:
|
|
131
|
+
severities = vuln.get("severity") or []
|
|
132
|
+
if severities and isinstance(severities[0], dict):
|
|
133
|
+
score = severities[0].get("score")
|
|
134
|
+
if score:
|
|
135
|
+
return str(score)
|
|
136
|
+
return "UNKNOWN"
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def _extract_affected(vuln: dict[str, Any]) -> tuple[list[str], str]:
|
|
140
|
+
affected_versions: list[str] = []
|
|
141
|
+
fixed_version = ""
|
|
142
|
+
|
|
143
|
+
for affected in vuln.get("affected", []) or []:
|
|
144
|
+
for version in affected.get("versions", []) or []:
|
|
145
|
+
affected_versions.append(str(version))
|
|
146
|
+
|
|
147
|
+
for version_range in affected.get("ranges", []) or []:
|
|
148
|
+
for event in version_range.get("events", []) or []:
|
|
149
|
+
introduced = event.get("introduced")
|
|
150
|
+
fixed = event.get("fixed")
|
|
151
|
+
if introduced:
|
|
152
|
+
affected_versions.append(str(introduced))
|
|
153
|
+
if fixed and not fixed_version:
|
|
154
|
+
fixed_version = str(fixed)
|
|
155
|
+
|
|
156
|
+
deduped_versions = list(dict.fromkeys(affected_versions))
|
|
157
|
+
return deduped_versions, fixed_version
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def _load_cache(cache_path: Path) -> dict[str, Any] | None:
|
|
161
|
+
if not cache_path.exists():
|
|
162
|
+
return None
|
|
163
|
+
try:
|
|
164
|
+
return json.loads(cache_path.read_text(encoding="utf-8"))
|
|
165
|
+
except (OSError, json.JSONDecodeError):
|
|
166
|
+
return None
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def _save_cache(cache_path: Path, payload: dict[str, Any]) -> None:
|
|
170
|
+
try:
|
|
171
|
+
cache_path.parent.mkdir(parents=True, exist_ok=True)
|
|
172
|
+
cache_path.write_text(json.dumps(payload, separators=(",", ":")), encoding="utf-8")
|
|
173
|
+
except OSError:
|
|
174
|
+
return
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def _is_cache_fresh(scan_ts: str | None) -> bool:
|
|
178
|
+
if not scan_ts:
|
|
179
|
+
return False
|
|
180
|
+
try:
|
|
181
|
+
scanned_at = datetime.fromisoformat(scan_ts)
|
|
182
|
+
except ValueError:
|
|
183
|
+
return False
|
|
184
|
+
|
|
185
|
+
if scanned_at.tzinfo is None:
|
|
186
|
+
scanned_at = scanned_at.replace(tzinfo=timezone.utc)
|
|
187
|
+
|
|
188
|
+
return datetime.now(timezone.utc) - scanned_at < timedelta(hours=CACHE_TTL_HOURS)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""License compatibility checker for dependency health analysis.
|
|
2
|
+
|
|
3
|
+
Checks whether project dependencies have licenses compatible with
|
|
4
|
+
the project's own license using a static compatibility matrix.
|
|
5
|
+
No network access required.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
import os
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
# License categories (restrictiveness increases top to bottom)
|
|
13
|
+
_PERMISSIVE = frozenset({
|
|
14
|
+
"MIT", "BSD-2-Clause", "BSD-3-Clause", "ISC", "Unlicense", "CC0-1.0",
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
_WEAK_COPYLEFT = frozenset({
|
|
18
|
+
"Apache-2.0", "LGPL-2.1", "LGPL-3.0", "MPL-2.0",
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
_STRONG_COPYLEFT = frozenset({
|
|
22
|
+
"GPL-2.0", "GPL-3.0",
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
_NETWORK_COPYLEFT = frozenset({
|
|
26
|
+
"AGPL-3.0",
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
_ALL_KNOWN = _PERMISSIVE | _WEAK_COPYLEFT | _STRONG_COPYLEFT | _NETWORK_COPYLEFT
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _dep_health_enabled() -> bool:
|
|
33
|
+
env_val = os.environ.get("OMG_DEP_HEALTH_ENABLED", "").lower()
|
|
34
|
+
if env_val in ("1", "true", "yes"):
|
|
35
|
+
return True
|
|
36
|
+
if env_val in ("0", "false", "no"):
|
|
37
|
+
return False
|
|
38
|
+
try:
|
|
39
|
+
import sys
|
|
40
|
+
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
41
|
+
from hooks._common import get_feature_flag
|
|
42
|
+
return get_feature_flag("DEP_HEALTH", default=False)
|
|
43
|
+
except Exception:
|
|
44
|
+
return False
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _license_tier(license_id: str) -> int:
|
|
48
|
+
"""Return restrictiveness tier: 0=permissive, 1=weak, 2=strong, 3=network."""
|
|
49
|
+
if license_id in _PERMISSIVE:
|
|
50
|
+
return 0
|
|
51
|
+
if license_id in _WEAK_COPYLEFT:
|
|
52
|
+
return 1
|
|
53
|
+
if license_id in _STRONG_COPYLEFT:
|
|
54
|
+
return 2
|
|
55
|
+
if license_id in _NETWORK_COPYLEFT:
|
|
56
|
+
return 3
|
|
57
|
+
return -1 # unknown
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def check_license_compatibility(
|
|
61
|
+
project_license: str,
|
|
62
|
+
dependencies: list[dict[str, Any]],
|
|
63
|
+
) -> dict[str, list[dict[str, str]]]:
|
|
64
|
+
"""Check license compatibility between project and its dependencies.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
project_license: SPDX identifier for the project license (e.g. "MIT").
|
|
68
|
+
dependencies: List of dicts with "name" and "license" keys.
|
|
69
|
+
License may be None or "UNKNOWN".
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
Dict with three lists:
|
|
73
|
+
compatible: [{"pkg": str, "license": str}]
|
|
74
|
+
incompatible: [{"pkg": str, "license": str, "reason": str}]
|
|
75
|
+
unknown: [{"pkg": str}]
|
|
76
|
+
"""
|
|
77
|
+
if not _dep_health_enabled():
|
|
78
|
+
return {"compatible": [], "incompatible": [], "unknown": []}
|
|
79
|
+
|
|
80
|
+
compatible: list[dict[str, str]] = []
|
|
81
|
+
incompatible: list[dict[str, str]] = []
|
|
82
|
+
unknown: list[dict[str, str]] = []
|
|
83
|
+
|
|
84
|
+
project_tier = _license_tier(project_license)
|
|
85
|
+
|
|
86
|
+
for dep in dependencies:
|
|
87
|
+
name = dep.get("name", "")
|
|
88
|
+
dep_license = dep.get("license")
|
|
89
|
+
|
|
90
|
+
# Unknown / missing license
|
|
91
|
+
if not dep_license or dep_license == "UNKNOWN":
|
|
92
|
+
unknown.append({"pkg": name})
|
|
93
|
+
continue
|
|
94
|
+
|
|
95
|
+
dep_tier = _license_tier(dep_license)
|
|
96
|
+
|
|
97
|
+
# Unrecognized license string
|
|
98
|
+
if dep_tier == -1:
|
|
99
|
+
unknown.append({"pkg": name})
|
|
100
|
+
continue
|
|
101
|
+
|
|
102
|
+
# AGPL dep in non-AGPL project is always incompatible
|
|
103
|
+
if dep_tier == 3 and project_tier != 3:
|
|
104
|
+
incompatible.append({
|
|
105
|
+
"pkg": name,
|
|
106
|
+
"license": dep_license,
|
|
107
|
+
"reason": (
|
|
108
|
+
f"AGPL-3.0 dependency in {project_license} project: "
|
|
109
|
+
f"network copyleft requires entire project to be AGPL-3.0"
|
|
110
|
+
),
|
|
111
|
+
})
|
|
112
|
+
continue
|
|
113
|
+
|
|
114
|
+
# Strong copyleft dep in permissive/weak-copyleft project
|
|
115
|
+
if dep_tier == 2 and project_tier < 2:
|
|
116
|
+
incompatible.append({
|
|
117
|
+
"pkg": name,
|
|
118
|
+
"license": dep_license,
|
|
119
|
+
"reason": (
|
|
120
|
+
f"{dep_license} dependency in {project_license} project: "
|
|
121
|
+
f"copyleft contamination requires project to adopt {dep_license}"
|
|
122
|
+
),
|
|
123
|
+
})
|
|
124
|
+
continue
|
|
125
|
+
|
|
126
|
+
# Everything else: permissive deps are always OK,
|
|
127
|
+
# weak copyleft in permissive is OK (dynamic linking),
|
|
128
|
+
# same-tier or higher-tier project can use lower-tier deps
|
|
129
|
+
compatible.append({"pkg": name, "license": dep_license})
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
"compatible": compatible,
|
|
133
|
+
"incompatible": incompatible,
|
|
134
|
+
"unknown": unknown,
|
|
135
|
+
}
|