@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,646 @@
|
|
|
1
|
+
"""OMG Setup Wizard — interactive CLI detection, auth verification, and MCP configuration.
|
|
2
|
+
|
|
3
|
+
Feature-gated: requires OMG_SETUP_ENABLED=1 (default off).
|
|
4
|
+
"""
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import json
|
|
8
|
+
import logging
|
|
9
|
+
import os
|
|
10
|
+
import sys
|
|
11
|
+
from typing import Any, cast
|
|
12
|
+
|
|
13
|
+
import yaml
|
|
14
|
+
|
|
15
|
+
from _common import get_feature_flag
|
|
16
|
+
|
|
17
|
+
# Ensure project root is on sys.path for runtime imports
|
|
18
|
+
_PROJECT_ROOT = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
|
|
19
|
+
if _PROJECT_ROOT not in sys.path:
|
|
20
|
+
sys.path.insert(0, _PROJECT_ROOT)
|
|
21
|
+
|
|
22
|
+
from runtime.cli_provider import get_provider, list_available_providers # noqa: E402
|
|
23
|
+
from runtime.mcp_config_writers import ( # noqa: E402
|
|
24
|
+
write_claude_mcp_config,
|
|
25
|
+
write_claude_mcp_stdio_config,
|
|
26
|
+
write_codex_mcp_config,
|
|
27
|
+
write_codex_mcp_stdio_config,
|
|
28
|
+
write_gemini_mcp_config,
|
|
29
|
+
write_gemini_mcp_stdio_config,
|
|
30
|
+
write_kimi_mcp_config,
|
|
31
|
+
write_kimi_mcp_stdio_config,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Trigger provider auto-registration on import
|
|
35
|
+
import runtime.providers.codex_provider # noqa: E402, F401
|
|
36
|
+
import runtime.providers.gemini_provider # noqa: E402, F401
|
|
37
|
+
import runtime.providers.kimi_provider # noqa: E402, F401
|
|
38
|
+
from runtime.adoption import ( # noqa: E402
|
|
39
|
+
CANONICAL_VERSION,
|
|
40
|
+
build_adoption_report,
|
|
41
|
+
get_preset_features,
|
|
42
|
+
resolve_preset,
|
|
43
|
+
write_adoption_report,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
_logger = logging.getLogger(__name__)
|
|
47
|
+
|
|
48
|
+
OMG_CONTROL_COMMAND = "python3"
|
|
49
|
+
OMG_CONTROL_ARGS = ["-m", "runtime.omg_mcp_server"]
|
|
50
|
+
OMG_CONTROL_SERVER_NAME = "omg-control"
|
|
51
|
+
|
|
52
|
+
_INSTALL_HINTS: dict[str, str] = {
|
|
53
|
+
"codex": "npm install -g @openai/codex",
|
|
54
|
+
"gemini": "npm install -g @google/gemini-cli",
|
|
55
|
+
"kimi": "uv tool install --python 3.13 kimi-cli",
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
BYPASS_ALL_WARNING = (
|
|
59
|
+
"⚠️ BYPASS-ALL / FULL VIBE-CODE MODE WARNING ⚠️\n\n"
|
|
60
|
+
"Enabling bypass-all grants Claude Code unrestricted write access to your filesystem "
|
|
61
|
+
"without asking for confirmation on individual file edits.\n\n"
|
|
62
|
+
"IMPORTANT DISCLAIMER: The author takes NO responsibility for any data loss, "
|
|
63
|
+
"unintended file modifications, or system changes that occur while bypass-all is enabled. "
|
|
64
|
+
"Use at your own risk.\n\n"
|
|
65
|
+
"Note: Some safety measures remain active even in bypass-all mode:\n"
|
|
66
|
+
" • Firewall deny rules still block dangerous commands (rm -rf, sudo, etc.)\n"
|
|
67
|
+
" • Secret-guard still protects credentials and API keys\n"
|
|
68
|
+
" • You can disable bypass-all at any time via settings.json\n\n"
|
|
69
|
+
"Do you want to enable bypass-all mode? (y/N): "
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
PRESET_ORDER: tuple[str, ...] = ("safe", "balanced", "interop", "labs")
|
|
73
|
+
_PRESET_LEVEL: dict[str, int] = {p: i for i, p in enumerate(PRESET_ORDER)}
|
|
74
|
+
|
|
75
|
+
MCP_CATALOG: list[dict[str, Any]] = [
|
|
76
|
+
{
|
|
77
|
+
"id": "context7",
|
|
78
|
+
"name": "Context7",
|
|
79
|
+
"description": "Upstash Context7 MCP server for context management",
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["@upstash/context7-mcp@2.1.3"],
|
|
82
|
+
"default": False,
|
|
83
|
+
"min_preset": "balanced",
|
|
84
|
+
"category": "productivity",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "filesystem",
|
|
88
|
+
"name": "Filesystem",
|
|
89
|
+
"description": "ModelContextProtocol filesystem server for file operations",
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["@modelcontextprotocol/server-filesystem@2026.1.14", "."],
|
|
92
|
+
"default": True,
|
|
93
|
+
"min_preset": "safe",
|
|
94
|
+
"category": "system",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "websearch",
|
|
98
|
+
"name": "Web Search",
|
|
99
|
+
"description": "Web search MCP server for internet queries",
|
|
100
|
+
"command": "npx",
|
|
101
|
+
"args": ["@zhafron/mcp-web-search@1.2.2"],
|
|
102
|
+
"default": False,
|
|
103
|
+
"min_preset": "interop",
|
|
104
|
+
"category": "search",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "chrome-devtools",
|
|
108
|
+
"name": "Chrome DevTools",
|
|
109
|
+
"description": "Chrome DevTools MCP server for browser automation",
|
|
110
|
+
"command": "npx",
|
|
111
|
+
"args": ["chrome-devtools-mcp@0.19.0"],
|
|
112
|
+
"default": False,
|
|
113
|
+
"min_preset": "labs",
|
|
114
|
+
"category": "browser",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "omg-memory",
|
|
118
|
+
"name": "OMG Memory",
|
|
119
|
+
"description": "OMG shared memory server via HTTP",
|
|
120
|
+
"command": None,
|
|
121
|
+
"args": [],
|
|
122
|
+
"type": "http",
|
|
123
|
+
"url": "http://127.0.0.1:8765/mcp",
|
|
124
|
+
"default": False,
|
|
125
|
+
"min_preset": "interop",
|
|
126
|
+
"category": "memory",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": OMG_CONTROL_SERVER_NAME,
|
|
130
|
+
"name": "OMG Control",
|
|
131
|
+
"description": "OMG control plane MCP server via stdio",
|
|
132
|
+
"command": OMG_CONTROL_COMMAND,
|
|
133
|
+
"args": OMG_CONTROL_ARGS,
|
|
134
|
+
"default": True,
|
|
135
|
+
"min_preset": "safe",
|
|
136
|
+
"category": "control",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "github",
|
|
140
|
+
"name": "GitHub",
|
|
141
|
+
"description": "ModelContextProtocol GitHub server for repository operations",
|
|
142
|
+
"command": "npx",
|
|
143
|
+
"args": ["@modelcontextprotocol/server-github"],
|
|
144
|
+
"default": False,
|
|
145
|
+
"category": "vcs",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "puppeteer",
|
|
149
|
+
"name": "Puppeteer",
|
|
150
|
+
"description": "ModelContextProtocol Puppeteer server for browser automation",
|
|
151
|
+
"command": "npx",
|
|
152
|
+
"args": ["@modelcontextprotocol/server-puppeteer"],
|
|
153
|
+
"default": False,
|
|
154
|
+
"category": "browser",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "brave-search",
|
|
158
|
+
"name": "Brave Search",
|
|
159
|
+
"description": "ModelContextProtocol Brave Search server",
|
|
160
|
+
"command": "npx",
|
|
161
|
+
"args": ["@modelcontextprotocol/server-brave-search"],
|
|
162
|
+
"default": False,
|
|
163
|
+
"category": "search",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "sequential-thinking",
|
|
167
|
+
"name": "Sequential Thinking",
|
|
168
|
+
"description": "ModelContextProtocol Sequential Thinking server for reasoning",
|
|
169
|
+
"command": "npx",
|
|
170
|
+
"args": ["@modelcontextprotocol/server-sequential-thinking"],
|
|
171
|
+
"default": False,
|
|
172
|
+
"category": "reasoning",
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "grep-app",
|
|
176
|
+
"name": "Grep App",
|
|
177
|
+
"description": "Grep App MCP server for code search",
|
|
178
|
+
"command": "npx",
|
|
179
|
+
"args": ["grep-app-mcp"],
|
|
180
|
+
"default": False,
|
|
181
|
+
"category": "search",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "memory-graph",
|
|
185
|
+
"name": "Memory Graph",
|
|
186
|
+
"description": "ModelContextProtocol Memory server for knowledge graphs",
|
|
187
|
+
"command": "npx",
|
|
188
|
+
"args": ["@modelcontextprotocol/server-memory"],
|
|
189
|
+
"default": False,
|
|
190
|
+
"category": "memory",
|
|
191
|
+
},
|
|
192
|
+
]
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def get_mcp_catalog() -> list[dict[str, Any]]:
|
|
196
|
+
"""Return the MCP catalog.
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
List of MCP server definitions with id, name, description, command, args, default, and category.
|
|
200
|
+
"""
|
|
201
|
+
return MCP_CATALOG
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def get_default_mcps_for_preset(preset: str) -> list[str]:
|
|
205
|
+
"""Return the list of MCP server IDs enabled by default for *preset*.
|
|
206
|
+
|
|
207
|
+
Each catalog entry carries a ``min_preset`` field that specifies the
|
|
208
|
+
lowest preset tier at which the MCP is included. The preset order is
|
|
209
|
+
``safe < balanced < interop < labs``.
|
|
210
|
+
|
|
211
|
+
Returns:
|
|
212
|
+
Sorted list of MCP server IDs whose ``min_preset`` is at or below
|
|
213
|
+
the requested *preset* level.
|
|
214
|
+
"""
|
|
215
|
+
level = _PRESET_LEVEL.get(preset, 0)
|
|
216
|
+
return [
|
|
217
|
+
m["id"]
|
|
218
|
+
for m in MCP_CATALOG
|
|
219
|
+
if _PRESET_LEVEL.get(m.get("min_preset", ""), -1) <= level
|
|
220
|
+
and m.get("min_preset") is not None
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def build_mcp_config(selected_ids: list[str]) -> dict[str, Any]:
|
|
225
|
+
"""Build .mcp.json configuration from selected MCP server IDs.
|
|
226
|
+
|
|
227
|
+
Args:
|
|
228
|
+
selected_ids: List of MCP server IDs to include in the config.
|
|
229
|
+
|
|
230
|
+
Returns:
|
|
231
|
+
Dict with 'mcpServers' key containing the MCP server configurations.
|
|
232
|
+
"""
|
|
233
|
+
mcp_servers: dict[str, Any] = {}
|
|
234
|
+
|
|
235
|
+
for mcp in MCP_CATALOG:
|
|
236
|
+
if mcp["id"] not in selected_ids:
|
|
237
|
+
continue
|
|
238
|
+
|
|
239
|
+
mcp_id = mcp["id"]
|
|
240
|
+
|
|
241
|
+
# HTTP-type MCPs (like omg-memory)
|
|
242
|
+
if mcp.get("type") == "http":
|
|
243
|
+
mcp_servers[mcp_id] = {
|
|
244
|
+
"type": "http",
|
|
245
|
+
"url": mcp["url"],
|
|
246
|
+
}
|
|
247
|
+
# NPX-type MCPs
|
|
248
|
+
else:
|
|
249
|
+
mcp_servers[mcp_id] = {
|
|
250
|
+
"command": mcp["command"],
|
|
251
|
+
"args": mcp["args"],
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return {"mcpServers": mcp_servers}
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
def configure_plan_type(plan_type: str) -> dict[str, Any]:
|
|
258
|
+
"""Configure Claude plan type and model routing.
|
|
259
|
+
|
|
260
|
+
Args:
|
|
261
|
+
plan_type: "max" or "pro"
|
|
262
|
+
|
|
263
|
+
Returns:
|
|
264
|
+
dict with plan_type and optionally model_routing
|
|
265
|
+
"""
|
|
266
|
+
result: dict[str, Any] = {"plan_type": plan_type}
|
|
267
|
+
if plan_type == "pro":
|
|
268
|
+
result["model_routing"] = {
|
|
269
|
+
"planning": "claude-opus-4-5",
|
|
270
|
+
"coding": "claude-sonnet-4-5",
|
|
271
|
+
"review": "claude-opus-4-5",
|
|
272
|
+
"commit": "claude-haiku-4-5",
|
|
273
|
+
}
|
|
274
|
+
return result
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
def select_mcps(selected_ids: list[str] | None = None, preset: str = "safe") -> dict[str, Any]:
|
|
278
|
+
"""Build MCP config from selected IDs.
|
|
279
|
+
|
|
280
|
+
Args:
|
|
281
|
+
selected_ids: List of MCP IDs to include. If None, uses preset defaults.
|
|
282
|
+
preset: Preset tier that controls which MCPs are included by default.
|
|
283
|
+
|
|
284
|
+
Returns:
|
|
285
|
+
dict with mcpServers key (ready to write as .mcp.json)
|
|
286
|
+
"""
|
|
287
|
+
if selected_ids is None:
|
|
288
|
+
selected_ids = get_default_mcps_for_preset(preset)
|
|
289
|
+
return build_mcp_config(selected_ids)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
def configure_bypass_all(enabled: bool) -> dict[str, Any]:
|
|
293
|
+
"""Configure bypass_all mode.
|
|
294
|
+
|
|
295
|
+
Args:
|
|
296
|
+
enabled: True to enable bypass-all, False to disable
|
|
297
|
+
|
|
298
|
+
Returns:
|
|
299
|
+
dict with enabled status and warning_shown flag
|
|
300
|
+
"""
|
|
301
|
+
result: dict[str, Any] = {"enabled": enabled}
|
|
302
|
+
if enabled:
|
|
303
|
+
result["warning_shown"] = True
|
|
304
|
+
return result
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
def is_setup_enabled() -> bool:
|
|
308
|
+
"""Check if the setup wizard feature is enabled.
|
|
309
|
+
|
|
310
|
+
Uses get_feature_flag("SETUP", default=False) — disabled by default.
|
|
311
|
+
Enable via OMG_SETUP_ENABLED=1 env var or settings.json._omg.features.SETUP: true.
|
|
312
|
+
"""
|
|
313
|
+
return get_feature_flag("SETUP", default=False)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def detect_clis() -> dict[str, Any]:
|
|
317
|
+
"""Detect installed CLI tools using the provider registry.
|
|
318
|
+
|
|
319
|
+
Iterates over all registered providers, calling ``detect()`` and
|
|
320
|
+
``check_auth()`` on each. Returns a dict keyed by provider name::
|
|
321
|
+
|
|
322
|
+
{
|
|
323
|
+
"codex": {"detected": True, "auth_ok": True, "message": "..."},
|
|
324
|
+
"gemini": {"detected": False, "auth_ok": None,
|
|
325
|
+
"message": "Not found. Install: npm install -g @google/gemini-cli"},
|
|
326
|
+
...
|
|
327
|
+
}
|
|
328
|
+
"""
|
|
329
|
+
results: dict[str, Any] = {}
|
|
330
|
+
|
|
331
|
+
for name in list_available_providers():
|
|
332
|
+
provider = get_provider(name)
|
|
333
|
+
if provider is None:
|
|
334
|
+
continue
|
|
335
|
+
|
|
336
|
+
try:
|
|
337
|
+
detected = provider.detect()
|
|
338
|
+
except Exception as exc:
|
|
339
|
+
_logger.warning("detect() failed for %s: %s", name, exc)
|
|
340
|
+
detected = False
|
|
341
|
+
|
|
342
|
+
auth_ok: bool | None = None
|
|
343
|
+
message = ""
|
|
344
|
+
|
|
345
|
+
if detected:
|
|
346
|
+
try:
|
|
347
|
+
auth_ok, message = provider.check_auth()
|
|
348
|
+
except Exception as exc:
|
|
349
|
+
_logger.warning("check_auth() failed for %s: %s", name, exc)
|
|
350
|
+
auth_ok = None
|
|
351
|
+
message = f"Auth check error: {exc}"
|
|
352
|
+
else:
|
|
353
|
+
hint = _INSTALL_HINTS.get(name, f"Install the '{name}' CLI")
|
|
354
|
+
message = f"Not found. Install: {hint}"
|
|
355
|
+
|
|
356
|
+
results[name] = {
|
|
357
|
+
"detected": detected,
|
|
358
|
+
"auth_ok": auth_ok,
|
|
359
|
+
"message": message,
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
return results
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
def get_cli_auth_instructions(provider: str) -> dict[str, str]:
|
|
366
|
+
"""Return install, auth, and verify instructions for a CLI provider.
|
|
367
|
+
|
|
368
|
+
This function returns command strings only — it does NOT execute anything
|
|
369
|
+
or store credentials.
|
|
370
|
+
|
|
371
|
+
Args:
|
|
372
|
+
provider: CLI provider name (e.g. "codex", "gemini", or "kimi").
|
|
373
|
+
|
|
374
|
+
Returns:
|
|
375
|
+
Dict with keys: install, auth, verify, subscription.
|
|
376
|
+
Unknown providers return placeholder strings.
|
|
377
|
+
"""
|
|
378
|
+
instructions: dict[str, dict[str, str]] = {
|
|
379
|
+
"codex": {
|
|
380
|
+
"install": "npm install -g @openai/codex",
|
|
381
|
+
"auth": "codex login",
|
|
382
|
+
"verify": "codex --version",
|
|
383
|
+
"subscription": "Requires ChatGPT Plus, Team, or Enterprise subscription (or OpenAI API key)",
|
|
384
|
+
},
|
|
385
|
+
"gemini": {
|
|
386
|
+
"install": "npm install -g @google/gemini-cli",
|
|
387
|
+
"auth": "gemini auth login",
|
|
388
|
+
"verify": "gemini --version",
|
|
389
|
+
"subscription": "Requires Google account with Gemini API access (free tier available)",
|
|
390
|
+
},
|
|
391
|
+
"kimi": {
|
|
392
|
+
"install": "uv tool install --python 3.13 kimi-cli",
|
|
393
|
+
"auth": "Add token to ~/.kimi/config.toml",
|
|
394
|
+
"verify": "kimi --version",
|
|
395
|
+
"subscription": "Requires Kimi API key from platform.moonshot.cn",
|
|
396
|
+
},
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return instructions.get(provider, {
|
|
400
|
+
"install": "Unknown provider",
|
|
401
|
+
"auth": "Unknown provider",
|
|
402
|
+
"verify": "Unknown provider",
|
|
403
|
+
"subscription": "Unknown",
|
|
404
|
+
})
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
def check_auth() -> dict[str, Any]:
|
|
408
|
+
"""Verify authentication for detected CLI tools.
|
|
409
|
+
|
|
410
|
+
Stub — returns pending status. T16 will implement real auth checks
|
|
411
|
+
using each provider's check_auth() method.
|
|
412
|
+
"""
|
|
413
|
+
return {"status": "pending", "results": {}}
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
_HTTP_MEMORY_MIN_LEVEL: int = _PRESET_LEVEL["interop"]
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
def configure_mcp(
|
|
420
|
+
project_dir: str,
|
|
421
|
+
detected_clis: dict[str, Any],
|
|
422
|
+
server_url: str = "http://127.0.0.1:8765/mcp",
|
|
423
|
+
server_name: str = "omg-memory",
|
|
424
|
+
control_command: str = OMG_CONTROL_COMMAND,
|
|
425
|
+
control_args: list[str] | None = None,
|
|
426
|
+
control_server_name: str = OMG_CONTROL_SERVER_NAME,
|
|
427
|
+
preset: str = "safe",
|
|
428
|
+
) -> dict[str, Any]:
|
|
429
|
+
"""Configure OMG MCP servers for authenticated CLIs.
|
|
430
|
+
|
|
431
|
+
For each CLI in detected_clis where detected_clis[cli]["detected"] == True,
|
|
432
|
+
calls the appropriate writer from runtime.mcp_config_writers.
|
|
433
|
+
|
|
434
|
+
HTTP memory surfaces are only written when the *preset* is at or above
|
|
435
|
+
``interop`` level. ``safe`` and ``balanced`` presets write only the
|
|
436
|
+
stdio ``omg-control`` surface.
|
|
437
|
+
|
|
438
|
+
Args:
|
|
439
|
+
project_dir: Path to the project directory.
|
|
440
|
+
detected_clis: Dict of CLI detection results from detect_clis().
|
|
441
|
+
server_url: MCP server URL (default: http://127.0.0.1:8765/mcp).
|
|
442
|
+
server_name: MCP server name (default: omg-memory).
|
|
443
|
+
control_command: stdio command for the OMG control MCP server.
|
|
444
|
+
control_args: stdio args for the OMG control MCP server.
|
|
445
|
+
control_server_name: MCP server name for the OMG control surface.
|
|
446
|
+
preset: Active preset tier (safe, balanced, interop, labs).
|
|
447
|
+
|
|
448
|
+
Returns:
|
|
449
|
+
Dict with keys:
|
|
450
|
+
- status: "ok" on success
|
|
451
|
+
- configured: List of CLI names that were successfully configured
|
|
452
|
+
- errors: Dict of CLI name → error message for failures
|
|
453
|
+
"""
|
|
454
|
+
configured: list[str] = []
|
|
455
|
+
errors: dict[str, str] = {}
|
|
456
|
+
resolved_control_args = list(control_args or OMG_CONTROL_ARGS)
|
|
457
|
+
http_memory_allowed = _PRESET_LEVEL.get(preset, 0) >= _HTTP_MEMORY_MIN_LEVEL
|
|
458
|
+
|
|
459
|
+
try:
|
|
460
|
+
if http_memory_allowed:
|
|
461
|
+
write_claude_mcp_config(project_dir, server_url, server_name)
|
|
462
|
+
write_claude_mcp_stdio_config(
|
|
463
|
+
project_dir,
|
|
464
|
+
command=control_command,
|
|
465
|
+
args=resolved_control_args,
|
|
466
|
+
server_name=control_server_name,
|
|
467
|
+
)
|
|
468
|
+
except Exception as exc:
|
|
469
|
+
_logger.warning("Failed to write Claude MCP config: %s", exc)
|
|
470
|
+
errors["claude"] = str(exc)
|
|
471
|
+
|
|
472
|
+
cli_writers = {
|
|
473
|
+
"codex": (write_codex_mcp_config, write_codex_mcp_stdio_config),
|
|
474
|
+
"gemini": (write_gemini_mcp_config, write_gemini_mcp_stdio_config),
|
|
475
|
+
"kimi": (write_kimi_mcp_config, write_kimi_mcp_stdio_config),
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
for cli_name, (http_writer, stdio_writer) in cli_writers.items():
|
|
479
|
+
cli_info = detected_clis.get(cli_name, {})
|
|
480
|
+
if not cli_info.get("detected", False):
|
|
481
|
+
continue
|
|
482
|
+
|
|
483
|
+
try:
|
|
484
|
+
if http_memory_allowed:
|
|
485
|
+
http_writer(server_url, server_name)
|
|
486
|
+
stdio_writer(
|
|
487
|
+
command=control_command,
|
|
488
|
+
args=resolved_control_args,
|
|
489
|
+
server_name=control_server_name,
|
|
490
|
+
)
|
|
491
|
+
configured.append(cli_name)
|
|
492
|
+
except Exception as exc:
|
|
493
|
+
_logger.warning("Failed to write %s MCP config: %s", cli_name, exc)
|
|
494
|
+
errors[cli_name] = str(exc)
|
|
495
|
+
|
|
496
|
+
return {
|
|
497
|
+
"status": "ok",
|
|
498
|
+
"configured": configured,
|
|
499
|
+
"errors": errors,
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
def set_preferences(project_dir: str, preferences: dict[str, Any]) -> dict[str, Any]:
|
|
504
|
+
"""Set user preferences for CLI routing and save to .omg/state/cli-config.yaml.
|
|
505
|
+
|
|
506
|
+
Args:
|
|
507
|
+
project_dir: Path to the project directory.
|
|
508
|
+
preferences: Dict with optional 'cli_configs' key. If empty, uses defaults.
|
|
509
|
+
Expected structure:
|
|
510
|
+
{
|
|
511
|
+
"cli_configs": {
|
|
512
|
+
"codex": {"subscription": "free", "max_parallel_agents": 1},
|
|
513
|
+
"gemini": {"subscription": "free", "max_parallel_agents": 1},
|
|
514
|
+
...
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
Returns:
|
|
519
|
+
Dict with keys:
|
|
520
|
+
- status: "ok" on success
|
|
521
|
+
- path: Full path to saved config file
|
|
522
|
+
- config: The saved config dict (version + cli_configs)
|
|
523
|
+
"""
|
|
524
|
+
# Default config structure
|
|
525
|
+
default_cli_configs: dict[str, Any] = {
|
|
526
|
+
"codex": {"subscription": "free", "max_parallel_agents": 1},
|
|
527
|
+
"gemini": {"subscription": "free", "max_parallel_agents": 1},
|
|
528
|
+
"kimi": {"subscription": "free", "max_parallel_agents": 1},
|
|
529
|
+
}
|
|
530
|
+
preset = resolve_preset(cast(str | None, preferences.get("preset")))
|
|
531
|
+
default_config: dict[str, Any] = {
|
|
532
|
+
"version": CANONICAL_VERSION,
|
|
533
|
+
"preset": preset,
|
|
534
|
+
"resolved_features": get_preset_features(preset),
|
|
535
|
+
"cli_configs": default_cli_configs,
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
# Merge custom preferences if provided
|
|
539
|
+
if preferences and isinstance(preferences, dict):
|
|
540
|
+
cli_configs = preferences.get("cli_configs")
|
|
541
|
+
if isinstance(cli_configs, dict):
|
|
542
|
+
default_cli_configs.update(cast(dict[str, Any], cli_configs))
|
|
543
|
+
|
|
544
|
+
_write_project_settings_preset(project_dir, preset)
|
|
545
|
+
|
|
546
|
+
# Create .omg/state directory if needed
|
|
547
|
+
state_dir = os.path.join(project_dir, ".omg", "state")
|
|
548
|
+
os.makedirs(state_dir, exist_ok=True)
|
|
549
|
+
|
|
550
|
+
# Write config to YAML file
|
|
551
|
+
config_path = os.path.join(state_dir, "cli-config.yaml")
|
|
552
|
+
with open(config_path, "w") as f:
|
|
553
|
+
yaml.dump(default_config, f, default_flow_style=False, sort_keys=False)
|
|
554
|
+
|
|
555
|
+
_logger.info("Saved CLI config to %s", config_path)
|
|
556
|
+
|
|
557
|
+
return {
|
|
558
|
+
"status": "ok",
|
|
559
|
+
"path": config_path,
|
|
560
|
+
"config": default_config,
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
def _write_project_settings_preset(project_dir: str, preset: str) -> None:
|
|
565
|
+
"""Persist preset metadata into project settings when settings.json exists."""
|
|
566
|
+
settings_path = os.path.join(project_dir, "settings.json")
|
|
567
|
+
if not os.path.exists(settings_path):
|
|
568
|
+
return
|
|
569
|
+
|
|
570
|
+
try:
|
|
571
|
+
with open(settings_path, "r", encoding="utf-8") as f:
|
|
572
|
+
settings = json.load(f)
|
|
573
|
+
except Exception:
|
|
574
|
+
return
|
|
575
|
+
|
|
576
|
+
if not isinstance(settings, dict):
|
|
577
|
+
return
|
|
578
|
+
|
|
579
|
+
omg = settings.get("_omg")
|
|
580
|
+
if not isinstance(omg, dict):
|
|
581
|
+
omg = {}
|
|
582
|
+
features = omg.get("features")
|
|
583
|
+
if not isinstance(features, dict):
|
|
584
|
+
features = {}
|
|
585
|
+
|
|
586
|
+
features.update(get_preset_features(preset))
|
|
587
|
+
omg["features"] = features
|
|
588
|
+
omg["preset"] = preset
|
|
589
|
+
omg["_version"] = CANONICAL_VERSION
|
|
590
|
+
settings["_omg"] = omg
|
|
591
|
+
|
|
592
|
+
with open(settings_path, "w", encoding="utf-8") as f:
|
|
593
|
+
json.dump(settings, f, indent=2, ensure_ascii=True)
|
|
594
|
+
f.write("\n")
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
def run_setup_wizard(
|
|
598
|
+
project_dir: str,
|
|
599
|
+
non_interactive: bool = False,
|
|
600
|
+
*,
|
|
601
|
+
mode: str | None = None,
|
|
602
|
+
adopt: str = "auto",
|
|
603
|
+
preset: str | None = None,
|
|
604
|
+
) -> dict[str, Any]:
|
|
605
|
+
"""Run the OMG setup wizard.
|
|
606
|
+
|
|
607
|
+
Args:
|
|
608
|
+
project_dir: Path to the project directory.
|
|
609
|
+
non_interactive: If True, skip prompts and use defaults (for CI).
|
|
610
|
+
mode: Optional adoption mode override (`omg-only` or `coexist`).
|
|
611
|
+
adopt: Adoption detection mode (currently only `auto` is meaningful).
|
|
612
|
+
preset: Optional preset override.
|
|
613
|
+
|
|
614
|
+
Returns:
|
|
615
|
+
Dict with wizard results including status and step outcomes.
|
|
616
|
+
If feature is disabled, returns {"status": "disabled", "message": "..."}.
|
|
617
|
+
"""
|
|
618
|
+
if not is_setup_enabled():
|
|
619
|
+
return {
|
|
620
|
+
"status": "disabled",
|
|
621
|
+
"message": "Setup wizard disabled. Set OMG_SETUP_ENABLED=1 to enable.",
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
selected_preset = resolve_preset(preset or ("balanced" if non_interactive else "safe"))
|
|
625
|
+
adoption = build_adoption_report(
|
|
626
|
+
project_dir,
|
|
627
|
+
requested_mode=mode,
|
|
628
|
+
preset=selected_preset,
|
|
629
|
+
adopt=adopt,
|
|
630
|
+
)
|
|
631
|
+
|
|
632
|
+
clis = detect_clis()
|
|
633
|
+
auth = check_auth()
|
|
634
|
+
mcp = configure_mcp(project_dir, clis, preset=selected_preset)
|
|
635
|
+
prefs = set_preferences(project_dir, {"preset": selected_preset})
|
|
636
|
+
report_path = write_adoption_report(project_dir, adoption)
|
|
637
|
+
adoption["report_path"] = report_path
|
|
638
|
+
|
|
639
|
+
return {
|
|
640
|
+
"status": "complete",
|
|
641
|
+
"clis_detected": clis,
|
|
642
|
+
"auth_status": auth,
|
|
643
|
+
"mcp_configured": mcp,
|
|
644
|
+
"preferences": prefs,
|
|
645
|
+
"adoption": adoption,
|
|
646
|
+
}
|