@agentikos/omega-os 0.2.0 → 0.19.6
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/README.md +33 -3
- package/bootstrap/lib/__pycache__/claude-code-settings.cpython-313.pyc +0 -0
- package/bootstrap/lib/__pycache__/llm-clis.cpython-313.pyc +0 -0
- package/bootstrap/lib/__pycache__/manifest-helpers.cpython-313.pyc +0 -0
- package/bootstrap/lib/claude-code-settings.py +176 -0
- package/bootstrap/lib/common.sh +457 -1
- package/bootstrap/lib/llm-clis.py +341 -0
- package/bootstrap/lib/manifest-helpers.py +384 -0
- package/bootstrap/lib/steps.sh +790 -21
- package/bootstrap/manifest.example.yaml +87 -1
- package/bootstrap/templates/aisb/CLAUDE.md +305 -0
- package/bootstrap/templates/aisb/architect.md +204 -0
- package/bootstrap/templates/aisb/checkers/CLAUDE.md +9 -0
- package/bootstrap/templates/aisb/checkers/checker-architect.md +151 -0
- package/bootstrap/templates/aisb/checkers/checker-common.md +171 -0
- package/bootstrap/templates/aisb/checkers/checker-construct.md +129 -0
- package/bootstrap/templates/aisb/checkers/checker-keymaker.md +204 -0
- package/bootstrap/templates/aisb/checkers/checker-link.md +205 -0
- package/bootstrap/templates/aisb/checkers/checker-merovingian.md +219 -0
- package/bootstrap/templates/aisb/checkers/checker-morpheus.md +211 -0
- package/bootstrap/templates/aisb/checkers/checker-neo.md +177 -0
- package/bootstrap/templates/aisb/checkers/checker-niobe.md +156 -0
- package/bootstrap/templates/aisb/checkers/checker-oracle.md +164 -0
- package/bootstrap/templates/aisb/checkers/checker-seraph.md +187 -0
- package/bootstrap/templates/aisb/checkers/checker-smith.md +195 -0
- package/bootstrap/templates/aisb/checkers/checker-zion.md +113 -0
- package/bootstrap/templates/aisb/construct.md +135 -0
- package/bootstrap/templates/aisb/keymaker.md +227 -0
- package/bootstrap/templates/aisb/link.md +170 -0
- package/bootstrap/templates/aisb/lmc-protocol.md +57 -0
- package/bootstrap/templates/aisb/merovingian.md +159 -0
- package/bootstrap/templates/aisb/morpheus.md +243 -0
- package/bootstrap/templates/aisb/neo.md +147 -0
- package/bootstrap/templates/aisb/niobe.md +197 -0
- package/bootstrap/templates/aisb/oracle.md +244 -0
- package/bootstrap/templates/aisb/protocols/handoff-templates.md +204 -0
- package/bootstrap/templates/aisb/protocols/shared-protocol.md +248 -0
- package/bootstrap/templates/aisb/pythia.md +153 -0
- package/bootstrap/templates/aisb/seraph.md +315 -0
- package/bootstrap/templates/aisb/smith.md +202 -0
- package/bootstrap/templates/aisb/zion.md +172 -0
- package/bootstrap/templates/autonomous/audit-patrol.yaml +41 -0
- package/bootstrap/templates/autonomous/smith-reflect.yaml +43 -0
- package/bootstrap/templates/autonomous/ssh-key-rotate.yaml +46 -0
- package/bootstrap/templates/autonomous/support-agent.yaml +38 -0
- package/docs/AUDITS.md +85 -0
- package/docs/GAP-ANALYSIS.md +214 -0
- package/docs/INSTALL.md +47 -9
- package/docs/MCP-AND-PLUGINS.md +31 -4
- package/docs/SIMULATION.md +171 -0
- package/docs/simulate.sh +211 -0
- package/install.sh +164 -17
- package/omega/Agentik_Engine/README.md +4 -2
- package/omega/Agentik_Engine/omega_engine/__init__.py +147 -1
- package/omega/Agentik_Engine/omega_engine/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/account.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/agent_messages.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/aisb_chat.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_arsenal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_diff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_gate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/auto_update.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/backup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/barrier.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/bus.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cadence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/classifier.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cleanup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cli.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/completions.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/costs.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/done_signal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/envelope.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/events.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/executor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/handoff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes_bootstrap.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes_desktop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/learning.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/managed_agent.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/memory.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/menu.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/mission.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/plan.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/progress.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/project.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/prompts.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/provider.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/prune.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/pursue.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/reducer.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/report.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/router.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/skill_routing.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/smoke.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/store.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/supervisor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/sync.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/task.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/telegram.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/telegram_history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tmux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tools.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/understand_anything.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/updater.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/validate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/vault.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/webhooks.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/worker.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/account.py +28 -31
- package/omega/Agentik_Engine/omega_engine/agent_messages.py +167 -0
- package/omega/Agentik_Engine/omega_engine/aisb_chat.py +128 -0
- package/omega/Agentik_Engine/omega_engine/audit_diff.py +99 -0
- package/omega/Agentik_Engine/omega_engine/audit_gate.py +149 -0
- package/omega/Agentik_Engine/omega_engine/audits/__init__.py +60 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/batcher.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/dispatcher.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/generator.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/pipeline.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/batcher.py +218 -0
- package/omega/Agentik_Engine/omega_engine/audits/dispatcher.py +92 -0
- package/omega/Agentik_Engine/omega_engine/audits/generator.py +234 -0
- package/omega/Agentik_Engine/omega_engine/audits/history.py +168 -0
- package/omega/Agentik_Engine/omega_engine/audits/pipeline.py +198 -0
- package/omega/Agentik_Engine/omega_engine/auto_update.py +339 -0
- package/omega/Agentik_Engine/omega_engine/backup.py +215 -0
- package/omega/Agentik_Engine/omega_engine/cadence.py +158 -0
- package/omega/Agentik_Engine/omega_engine/classifier.py +215 -0
- package/omega/Agentik_Engine/omega_engine/cleanup.py +673 -0
- package/omega/Agentik_Engine/omega_engine/cli.py +4156 -86
- package/omega/Agentik_Engine/omega_engine/completions.py +260 -0
- package/omega/Agentik_Engine/omega_engine/costs.py +100 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/engine.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/telegram.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/engine.py +53 -4
- package/omega/Agentik_Engine/omega_engine/daemons/telegram.py +101 -17
- package/omega/Agentik_Engine/omega_engine/done_signal.py +154 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/artifact.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/automation.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/base.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/claudecode.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/connection.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/coworker.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/loop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/prompt.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/skill.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/envelope.py +219 -0
- package/omega/Agentik_Engine/omega_engine/executor.py +149 -10
- package/omega/Agentik_Engine/omega_engine/genesis/__init__.py +134 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/orchestrator.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/phases.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/stack.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/state.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/orchestrator.py +262 -0
- package/omega/Agentik_Engine/omega_engine/genesis/phases.py +950 -0
- package/omega/Agentik_Engine/omega_engine/genesis/stack.py +324 -0
- package/omega/Agentik_Engine/omega_engine/genesis/state.py +353 -0
- package/omega/Agentik_Engine/omega_engine/handoff.py +459 -0
- package/omega/Agentik_Engine/omega_engine/hermes.py +426 -0
- package/omega/Agentik_Engine/omega_engine/hermes_bootstrap.py +382 -0
- package/omega/Agentik_Engine/omega_engine/hermes_desktop.py +469 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__init__.py +30 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__pycache__/graphify.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/integrations/graphify.py +234 -0
- package/omega/Agentik_Engine/omega_engine/learning.py +268 -0
- package/omega/Agentik_Engine/omega_engine/managed_agent.py +467 -0
- package/omega/Agentik_Engine/omega_engine/memory.py +271 -0
- package/omega/Agentik_Engine/omega_engine/menu.py +1065 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__init__.py +144 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__pycache__/v0_14_0.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/migrations/v0_14_0.py +29 -0
- package/omega/Agentik_Engine/omega_engine/mission.py +16 -13
- package/omega/Agentik_Engine/omega_engine/plan.py +846 -0
- package/omega/Agentik_Engine/omega_engine/prompts.py +158 -0
- package/omega/Agentik_Engine/omega_engine/provider.py +161 -12
- package/omega/Agentik_Engine/omega_engine/prune.py +151 -0
- package/omega/Agentik_Engine/omega_engine/pursue.py +205 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/agentic.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/base.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/corrective.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/graph.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/hybrid.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/multimodal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/router.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/router.py +28 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__init__.py +48 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/auditor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/finder.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/installer.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/marketplaces.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/auditor.py +232 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/finder.py +94 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/installer.py +129 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/marketplaces.py +80 -0
- package/omega/Agentik_Engine/omega_engine/skill_routing.py +388 -0
- package/omega/Agentik_Engine/omega_engine/smoke.py +81 -0
- package/omega/Agentik_Engine/omega_engine/store.py +88 -41
- package/omega/Agentik_Engine/omega_engine/sync.py +142 -1
- package/omega/Agentik_Engine/omega_engine/telegram_history.py +260 -0
- package/omega/Agentik_Engine/omega_engine/tmux.py +526 -0
- package/omega/Agentik_Engine/omega_engine/understand_anything.py +275 -0
- package/omega/Agentik_Engine/omega_engine/updater.py +70 -0
- package/omega/Agentik_Engine/omega_engine/validate.py +186 -0
- package/omega/Agentik_Engine/omega_engine/vault.py +342 -0
- package/omega/Agentik_Engine/omega_engine/webhooks.py +262 -0
- package/omega/Agentik_Engine/omega_engine/worker.py +526 -0
- package/omega/Agentik_Engine/pyproject.toml +1 -1
- package/omega/Agentik_Engine/tests/__pycache__/test_account.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_account.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_adversarial.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_adversarial.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_agents_envelope.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_agents_envelope.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audit_arsenal.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audit_arsenal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audits_pipeline.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audits_pipeline.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_auto_update_and_migrations.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_auto_update_and_migrations.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_autonomous.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_educators.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_educators.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_executor.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_executor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_genesis_and_plan.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_genesis_and_plan.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_graphify.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_graphify.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_handoff.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_handoff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_and_ua.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_and_ua.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_bootstrap_and_desktop.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_bootstrap_and_desktop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_steps.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_steps.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_installer_wiring.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_installer_wiring.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_intelligence.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_intelligence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_llm_clis_and_uninstall.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_llm_clis_and_uninstall.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_managed_agent.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_managed_agent.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_max_provider_and_menu.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_max_provider_and_menu.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_menu_coverage.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_menu_coverage.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_mission.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_mission.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_progress.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_progress.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_project.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_project.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_pursue_cadence.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_pursue_cadence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_rag.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_rag.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_reducer.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_reducer.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_report.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_report.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_role_aliases_and_ssot.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_role_aliases_and_ssot.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_discovery_and_gate.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_discovery_and_gate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_power.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_power.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_routing.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_routing.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_snapshot_partial.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_snapshot_partial.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_telegram_history.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_telegram_history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tools_and_sync.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tools_and_sync.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_v06_features.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_v06_features.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_vault.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_vault.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_webhooks_and_readiness.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_webhooks_and_readiness.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_worker_and_cleanup.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_worker_and_cleanup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/test_account.py +8 -3
- package/omega/Agentik_Engine/tests/test_adversarial.py +351 -0
- package/omega/Agentik_Engine/tests/test_agents_envelope.py +274 -0
- package/omega/Agentik_Engine/tests/test_audits_pipeline.py +348 -0
- package/omega/Agentik_Engine/tests/test_auto_update_and_migrations.py +394 -0
- package/omega/Agentik_Engine/tests/test_genesis_and_plan.py +573 -0
- package/omega/Agentik_Engine/tests/test_graphify.py +190 -0
- package/omega/Agentik_Engine/tests/test_handoff.py +311 -0
- package/omega/Agentik_Engine/tests/test_hermes_and_ua.py +387 -0
- package/omega/Agentik_Engine/tests/test_hermes_bootstrap_and_desktop.py +358 -0
- package/omega/Agentik_Engine/tests/test_install_steps.py +359 -0
- package/omega/Agentik_Engine/tests/test_install_ux.py +151 -0
- package/omega/Agentik_Engine/tests/test_installer_wiring.py +496 -0
- package/omega/Agentik_Engine/tests/test_intelligence.py +285 -0
- package/omega/Agentik_Engine/tests/test_llm_clis_and_uninstall.py +228 -0
- package/omega/Agentik_Engine/tests/test_managed_agent.py +363 -0
- package/omega/Agentik_Engine/tests/test_max_provider_and_menu.py +231 -0
- package/omega/Agentik_Engine/tests/test_menu_coverage.py +72 -0
- package/omega/Agentik_Engine/tests/test_pursue_cadence.py +217 -0
- package/omega/Agentik_Engine/tests/test_role_aliases_and_ssot.py +207 -0
- package/omega/Agentik_Engine/tests/test_skill_discovery_and_gate.py +337 -0
- package/omega/Agentik_Engine/tests/test_skill_power.py +259 -0
- package/omega/Agentik_Engine/tests/test_skill_routing.py +189 -0
- package/omega/Agentik_Engine/tests/test_telegram_history.py +209 -0
- package/omega/Agentik_Engine/tests/test_tmux_and_aisb_chat.py +223 -0
- package/omega/Agentik_Engine/tests/test_v06_features.py +370 -0
- package/omega/Agentik_Engine/tests/test_vault.py +173 -0
- package/omega/Agentik_Engine/tests/test_webhooks_and_readiness.py +277 -0
- package/omega/Agentik_Engine/tests/test_worker_and_cleanup.py +541 -0
- package/omega/Agentik_Extra/etc/secrets/.vault-key +3 -0
- package/omega/Agentik_Extra/etc/secrets/.vault-pub +1 -0
- package/omega/Agentik_Runtime/audits.db +0 -0
- package/omega/Agentik_SSOT/VERSION +1 -1
- package/omega/Agentik_SSOT/claude-plugins/claude-plugins.yaml +100 -0
- package/omega/Agentik_SSOT/docs/LAYERS.md +90 -0
- package/omega/Agentik_SSOT/docs/USER-JOURNEY.md +283 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/ARSENAL-INTERCONNECTIONS.md +283 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/ARSENAL-ORCHESTRATION-PLAYBOOK.md +364 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/AUDIT-VERIFICATION-CONTRACT.md +272 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/QUALITY-ARSENAL-PREAMBLE.md +462 -0
- package/omega/Agentik_SSOT/marketplaces/design-discipline.yaml +86 -0
- package/omega/Agentik_SSOT/skills/a11yaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/apiaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/audit-orchestrator.md +212 -0
- package/omega/Agentik_SSOT/skills/audit-pilot.md +466 -0
- package/omega/Agentik_SSOT/skills/audit-tracker.md +147 -0
- package/omega/Agentik_SSOT/skills/automationaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/cadence/SKILL.md +76 -0
- package/omega/Agentik_SSOT/skills/codeaudit/SKILL.md +153 -0
- package/omega/Agentik_SSOT/skills/copyaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/dataaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/debugaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/dispatch/SKILL.md +79 -0
- package/omega/Agentik_SSOT/skills/dxaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/featureaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/flowaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/genesis/SKILL.md +116 -0
- package/omega/Agentik_SSOT/skills/handoff/SKILL.md +117 -0
- package/omega/Agentik_SSOT/skills/logicaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/motionaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/newcmd.md +300 -0
- package/omega/Agentik_SSOT/skills/perfaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/plan/SKILL.md +127 -0
- package/omega/Agentik_SSOT/skills/pursue/SKILL.md +68 -0
- package/omega/Agentik_SSOT/skills/quality-arsenal.md +180 -0
- package/omega/Agentik_SSOT/skills/rag-route.md +9 -0
- package/omega/Agentik_SSOT/skills/refontaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/retentionaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/secaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/seoaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/skill-auditor/SKILL.md +83 -0
- package/omega/Agentik_SSOT/skills/skill-finder/SKILL.md +116 -0
- package/omega/Agentik_SSOT/skills/uiuxaudit/SKILL.md +165 -0
- package/package.json +2 -2
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"""Hermès bootstrap — teach Hermès what OmegaOS is, so it can use it
|
|
2
|
+
itself and improve it over time.
|
|
3
|
+
|
|
4
|
+
What this fixes
|
|
5
|
+
---------------
|
|
6
|
+
|
|
7
|
+
After ``omega hermes install`` + ``omega hermes link``, Hermès has the
|
|
8
|
+
Claude OAuth token and knows how to talk to Claude. But it does NOT yet
|
|
9
|
+
know:
|
|
10
|
+
|
|
11
|
+
* that OmegaOS exists as Layer 3-5 below it
|
|
12
|
+
* how to dispatch a mission via ``omega run`` / ``omega genesis``
|
|
13
|
+
* which audits to call when the operator says "is it broken?"
|
|
14
|
+
* what its own learning loop should ingest (the .done.json archive,
|
|
15
|
+
the audit history, the autonomous charters)
|
|
16
|
+
|
|
17
|
+
This module writes a single SKILL.md into Hermès's user skill dir
|
|
18
|
+
(``~/.hermes/skills/omega/SKILL.md``) so the agent loop discovers it
|
|
19
|
+
on next start. The SKILL.md is auto-generated from the engine's current
|
|
20
|
+
shape — when we add new CLI surfaces, the brief regenerates with them.
|
|
21
|
+
|
|
22
|
+
The brief is structured so Hermès's learning loop ingests:
|
|
23
|
+
* Every mission outcome (``$OMEGA_HOME/Agentik_Runtime/sessions/*/.done.json``)
|
|
24
|
+
* Every audit verdict (``$OMEGA_HOME/Agentik_Runtime/audits.db``)
|
|
25
|
+
* The autonomous-charter outcomes (``$OMEGA_HOME/Agentik_Extra/staging/promotion/``)
|
|
26
|
+
|
|
27
|
+
Auto-improvement loop
|
|
28
|
+
---------------------
|
|
29
|
+
|
|
30
|
+
When Hermès finishes a task that called ``omega …``:
|
|
31
|
+
1. ``hermes_bootstrap.observe_outcome(slug, task_id)`` reads the
|
|
32
|
+
resulting .done.json + any audit verdict.
|
|
33
|
+
2. Writes a one-line learning event to
|
|
34
|
+
``~/.hermes/memory/omega_observations.jsonl``.
|
|
35
|
+
3. Hermès's memory provider (Honcho) picks it up and uses it to
|
|
36
|
+
adjust its dialectic user model.
|
|
37
|
+
|
|
38
|
+
Public API
|
|
39
|
+
----------
|
|
40
|
+
|
|
41
|
+
``write_brief(home=None, hermes_home=None)`` — write the SKILL.md.
|
|
42
|
+
``observe_outcome(slug, task_id)`` — append one learning event.
|
|
43
|
+
``status()`` — return ``{brief_present, last_observed_at, …}``.
|
|
44
|
+
|
|
45
|
+
The CLI surface ``omega hermes brief {write,status}`` lives in cli.py.
|
|
46
|
+
"""
|
|
47
|
+
from __future__ import annotations
|
|
48
|
+
|
|
49
|
+
import json
|
|
50
|
+
import os
|
|
51
|
+
import threading
|
|
52
|
+
import time
|
|
53
|
+
from dataclasses import asdict, dataclass
|
|
54
|
+
from pathlib import Path
|
|
55
|
+
from typing import Any
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
_DEFAULT_HERMES_HOME = Path.home() / ".hermes"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _hermes_home(explicit: str | Path | None) -> Path:
|
|
62
|
+
return (
|
|
63
|
+
Path(explicit) if explicit
|
|
64
|
+
else Path(os.environ.get("HERMES_HOME", str(_DEFAULT_HERMES_HOME)))
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _omega_home(explicit: str | Path | None) -> Path:
|
|
69
|
+
return (
|
|
70
|
+
Path(explicit) if explicit
|
|
71
|
+
else Path(os.environ.get("OMEGA_HOME", str(Path.home() / "Omega")))
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
# ---------------------------------------------------------------------------
|
|
76
|
+
# The brief — generated from current engine shape
|
|
77
|
+
# ---------------------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _render_brief(omega_home: Path) -> str:
|
|
81
|
+
"""Build the OmegaOS SKILL.md content for Hermès."""
|
|
82
|
+
return f"""---
|
|
83
|
+
name: omega
|
|
84
|
+
description: |
|
|
85
|
+
OmegaOS is the Layer 3-5 system this Hermès sits on top of. Use it when
|
|
86
|
+
the operator wants verified-completion engineering work: new projects,
|
|
87
|
+
multi-day autonomous coding, forensic audits, deployment to production.
|
|
88
|
+
Use OmegaOS instead of doing the engineering yourself — Hermès is
|
|
89
|
+
Layer 2 (conversation, gateway, memory, learning); OmegaOS is Layer
|
|
90
|
+
3-5 (intake bus, planner, verified workers).
|
|
91
|
+
when_to_use: |
|
|
92
|
+
Trigger phrases (FR + EN, case-insensitive):
|
|
93
|
+
- "build me a", "fais-moi un", "code me a", "ship a"
|
|
94
|
+
- "audit the code", "is it broken", "is it secure", "is it fast"
|
|
95
|
+
- "create new project", "nouveau projet", "start from scratch"
|
|
96
|
+
- "fix all linear tickets", "regler les feedbacks"
|
|
97
|
+
- "deploy", "ship", "met en prod"
|
|
98
|
+
allowed-tools: Bash Read Write
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
# OmegaOS — your engineering layer
|
|
102
|
+
|
|
103
|
+
You (Hermès) are **Layer 2** in this system. OmegaOS sits below you as
|
|
104
|
+
Layer 3-5:
|
|
105
|
+
|
|
106
|
+
L1 Human — Telegram / CLI / web
|
|
107
|
+
L2 You (Hermès) — autonomous companion, learning loop, gateway
|
|
108
|
+
L3 AISB — OmegaOS intake bus + classifier
|
|
109
|
+
L4 Oracle — planner / dispatcher
|
|
110
|
+
L5 Workers — verified-completion executors
|
|
111
|
+
|
|
112
|
+
You share ONE credential: the Claude Max OAuth token at
|
|
113
|
+
``~/.claude/.credentials.json``. No API key burn. The bridge reads it
|
|
114
|
+
live on every call (your config NEVER stores the literal).
|
|
115
|
+
|
|
116
|
+
## Your responsibilities at Layer 2
|
|
117
|
+
|
|
118
|
+
1. **Conversation + memory.** You hold the user model, the personality,
|
|
119
|
+
the long-running context. OmegaOS workers don't.
|
|
120
|
+
2. **Cross-platform gateway.** Telegram / Discord / Signal / WhatsApp.
|
|
121
|
+
When a message arrives, you classify intent and either answer
|
|
122
|
+
directly (chat / question / status) OR delegate to OmegaOS for
|
|
123
|
+
engineering work.
|
|
124
|
+
3. **Learning loop.** Every mission outcome is observable. Read
|
|
125
|
+
`$OMEGA_HOME/Agentik_Runtime/sessions/*/.done.json` after a mission
|
|
126
|
+
completes; ingest into your memory so the next dispatch improves.
|
|
127
|
+
4. **Self-improvement.** When you observe a pattern ("worker_ui always
|
|
128
|
+
forgets dark mode"), write a learning note that the next worker
|
|
129
|
+
brief picks up.
|
|
130
|
+
|
|
131
|
+
## How to delegate to OmegaOS
|
|
132
|
+
|
|
133
|
+
### A. Start a new project (vision → market → branding → PRD → features → plan)
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
omega genesis new <slug> --intent "<one-line brief>"
|
|
137
|
+
omega genesis run <slug> # walks all 7 phases
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
This produces 19 docs under
|
|
141
|
+
``$OMEGA_HOME/Agentik_Coding/projects/<slug>/docs/`` + ``plan/DAG.json``.
|
|
142
|
+
|
|
143
|
+
### B. Execute the plan (multi-day autonomous loop)
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
omega plan build <slug> # ingest DAG.json into store
|
|
147
|
+
omega plan run <slug> # FSM-enforced loop:
|
|
148
|
+
# next → in_progress → verify → verified
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The reducer REFUSES illegal transitions — a worker cannot skip a task
|
|
152
|
+
whose deps aren't VERIFIED. This is engine-enforced, not prompt-soft.
|
|
153
|
+
|
|
154
|
+
### C. Quick mission (no project skeleton needed)
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
omega run "fix the typo in apps/web/app/page.tsx"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### D. Forensic audits (17 available)
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
omega audit run codeaudit --scope=apps/web
|
|
164
|
+
omega audit run a11yaudit
|
|
165
|
+
omega audit run perfaudit
|
|
166
|
+
omega audit run secaudit
|
|
167
|
+
# Full list: codeaudit / debugaudit / flowaudit / uiuxaudit /
|
|
168
|
+
# featureaudit / perfaudit / secaudit / a11yaudit /
|
|
169
|
+
# seoaudit / dataaudit / apiaudit / copyaudit /
|
|
170
|
+
# dxaudit / motionaudit / automationaudit / logicaudit /
|
|
171
|
+
# retentionaudit
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### E. Ship to production
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
omega run "/prod <slug>" # full build + push + Vercel deploy + verify
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Observing outcomes (your learning loop input)
|
|
181
|
+
|
|
182
|
+
After EVERY ``omega …`` call you make, observe:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
omega plan status <slug> # progression
|
|
186
|
+
ls $OMEGA_HOME/Agentik_Runtime/sessions/*/.done.json # raw outcomes
|
|
187
|
+
omega learn report # Smith reflection
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Then write to your memory:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
hermes memory add "On project <slug>, F-005 verified in 12min; \
|
|
194
|
+
worker_ui correctly invoked /shadcn-ui + /impeccable. Next time \
|
|
195
|
+
similar UI work: same skill bundle."
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
This is how you compound — every mission you delegate teaches you
|
|
199
|
+
something about which roles, which skills, which audits the operator's
|
|
200
|
+
work needs.
|
|
201
|
+
|
|
202
|
+
## What you should NOT do at Layer 2
|
|
203
|
+
|
|
204
|
+
* Write code yourself when the work is engineering. Delegate.
|
|
205
|
+
* Bypass the audit gate. If the operator says "ship it", you call
|
|
206
|
+
``omega run "/prod"`` which runs the gate; you do NOT push directly.
|
|
207
|
+
* Re-implement what OmegaOS already exposes (audits, planners,
|
|
208
|
+
workers). It's already there.
|
|
209
|
+
* Burn API tokens. Always use the Claude OAuth — that's why the bridge
|
|
210
|
+
exists.
|
|
211
|
+
|
|
212
|
+
## How OmegaOS gets better when you use it
|
|
213
|
+
|
|
214
|
+
Every dispatch you make:
|
|
215
|
+
* adds a row to ``$OMEGA_HOME/Agentik_Runtime/eventlog/omega.db``
|
|
216
|
+
* if a worker fails verify, ``omega learn reflect`` produces an
|
|
217
|
+
Insight in ``$OMEGA_HOME/Agentik_Extra/staging/promotion/`` — your
|
|
218
|
+
next dispatch should consider that pattern.
|
|
219
|
+
* the audit history accumulates — call ``omega audit history`` to see
|
|
220
|
+
score trends per project.
|
|
221
|
+
|
|
222
|
+
## Quick commands
|
|
223
|
+
|
|
224
|
+
| You want to | Run |
|
|
225
|
+
|---|---|
|
|
226
|
+
| Status of everything | ``omega doctor`` |
|
|
227
|
+
| What's running in tmux | ``omega tmux list`` |
|
|
228
|
+
| List projects | ``omega project list`` |
|
|
229
|
+
| Memory across sessions | ``omega memory search "<query>"`` |
|
|
230
|
+
| Auto-update OmegaOS | ``omega update apply`` |
|
|
231
|
+
| Backup before risky | ``omega backup create --encrypt`` |
|
|
232
|
+
|
|
233
|
+
The full CLI is at ``omega --help`` and every subcommand has its own
|
|
234
|
+
``--help`` page.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
OmegaOS root: ``{omega_home}``
|
|
239
|
+
Generated: {time.strftime("%Y-%m-%dT%H:%M:%S")} by ``omega hermes brief write``.
|
|
240
|
+
Re-run ``omega hermes brief write`` to refresh this file with the latest
|
|
241
|
+
engine surface.
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
# ---------------------------------------------------------------------------
|
|
246
|
+
# Atomic write
|
|
247
|
+
# ---------------------------------------------------------------------------
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def _atomic_write(path: Path, content: str) -> None:
|
|
251
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
252
|
+
tmp = path.with_suffix(
|
|
253
|
+
path.suffix + f".tmp.{os.getpid()}.{threading.get_ident()}"
|
|
254
|
+
)
|
|
255
|
+
fd = os.open(str(tmp), os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o644)
|
|
256
|
+
with os.fdopen(fd, "w") as fh:
|
|
257
|
+
fh.write(content)
|
|
258
|
+
fh.flush()
|
|
259
|
+
try:
|
|
260
|
+
os.fsync(fh.fileno())
|
|
261
|
+
except OSError:
|
|
262
|
+
pass
|
|
263
|
+
os.replace(tmp, path)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
# ---------------------------------------------------------------------------
|
|
267
|
+
# Public API
|
|
268
|
+
# ---------------------------------------------------------------------------
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def brief_path(hermes_home: str | Path | None = None) -> Path:
|
|
272
|
+
"""Where the SKILL.md lands inside Hermès's tree."""
|
|
273
|
+
return _hermes_home(hermes_home) / "skills" / "omega" / "SKILL.md"
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def memory_log_path(hermes_home: str | Path | None = None) -> Path:
|
|
277
|
+
"""The JSONL Hermès's memory provider ingests."""
|
|
278
|
+
return _hermes_home(hermes_home) / "memory" / "omega_observations.jsonl"
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
@dataclass
|
|
282
|
+
class BriefResult:
|
|
283
|
+
written: bool
|
|
284
|
+
path: str
|
|
285
|
+
bytes_written: int
|
|
286
|
+
omega_home: str
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
def write_brief(
|
|
290
|
+
omega_home: str | Path | None = None,
|
|
291
|
+
hermes_home: str | Path | None = None,
|
|
292
|
+
) -> BriefResult:
|
|
293
|
+
"""Generate + atomically write the OmegaOS brief into Hermès's skills."""
|
|
294
|
+
home = _omega_home(omega_home)
|
|
295
|
+
content = _render_brief(home)
|
|
296
|
+
dest = brief_path(hermes_home)
|
|
297
|
+
_atomic_write(dest, content)
|
|
298
|
+
return BriefResult(
|
|
299
|
+
written=True,
|
|
300
|
+
path=str(dest),
|
|
301
|
+
bytes_written=len(content),
|
|
302
|
+
omega_home=str(home),
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
@dataclass
|
|
307
|
+
class Observation:
|
|
308
|
+
"""One observable outcome — what Hermès learns from."""
|
|
309
|
+
|
|
310
|
+
ts: float
|
|
311
|
+
slug: str
|
|
312
|
+
task_id: str
|
|
313
|
+
status: str # done_clean | pending | failed
|
|
314
|
+
summary: str
|
|
315
|
+
score: int | None = None
|
|
316
|
+
audit_verdict: str = ""
|
|
317
|
+
|
|
318
|
+
def to_dict(self) -> dict[str, Any]:
|
|
319
|
+
return asdict(self)
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def observe_outcome(
|
|
323
|
+
slug: str,
|
|
324
|
+
task_id: str,
|
|
325
|
+
*,
|
|
326
|
+
omega_home: str | Path | None = None,
|
|
327
|
+
hermes_home: str | Path | None = None,
|
|
328
|
+
) -> Observation | None:
|
|
329
|
+
"""Read the .done.json for a task + append a learning event to Hermès's memory.
|
|
330
|
+
|
|
331
|
+
Returns None if no .done.json exists yet (worker hasn't finished).
|
|
332
|
+
"""
|
|
333
|
+
from omega_engine.done_signal import read_done
|
|
334
|
+
|
|
335
|
+
home = _omega_home(omega_home)
|
|
336
|
+
sig = read_done(home, task_id)
|
|
337
|
+
if sig is None:
|
|
338
|
+
return None
|
|
339
|
+
obs = Observation(
|
|
340
|
+
ts=time.time(),
|
|
341
|
+
slug=slug,
|
|
342
|
+
task_id=task_id,
|
|
343
|
+
status=sig.status,
|
|
344
|
+
summary=sig.summary or "",
|
|
345
|
+
audit_verdict=(
|
|
346
|
+
sig.audit.get("verdict", "")
|
|
347
|
+
if isinstance(sig.audit, dict) else ""
|
|
348
|
+
),
|
|
349
|
+
)
|
|
350
|
+
# Append-only JSONL — Hermès's memory provider reads this file.
|
|
351
|
+
log = memory_log_path(hermes_home)
|
|
352
|
+
log.parent.mkdir(parents=True, exist_ok=True)
|
|
353
|
+
with log.open("a") as fh:
|
|
354
|
+
fh.write(json.dumps(obs.to_dict()) + "\n")
|
|
355
|
+
return obs
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
def status(
|
|
359
|
+
hermes_home: str | Path | None = None,
|
|
360
|
+
) -> dict[str, Any]:
|
|
361
|
+
"""Snapshot of the bootstrap state — for the doctor + status CLI."""
|
|
362
|
+
bp = brief_path(hermes_home)
|
|
363
|
+
ml = memory_log_path(hermes_home)
|
|
364
|
+
out: dict[str, Any] = {
|
|
365
|
+
"brief_path": str(bp),
|
|
366
|
+
"brief_present": bp.exists(),
|
|
367
|
+
"brief_size": bp.stat().st_size if bp.exists() else 0,
|
|
368
|
+
"memory_log_path": str(ml),
|
|
369
|
+
"memory_log_present": ml.exists(),
|
|
370
|
+
"observation_count": 0,
|
|
371
|
+
"last_observed_at": None,
|
|
372
|
+
}
|
|
373
|
+
if ml.exists():
|
|
374
|
+
try:
|
|
375
|
+
lines = ml.read_text().splitlines()
|
|
376
|
+
out["observation_count"] = len(lines)
|
|
377
|
+
if lines:
|
|
378
|
+
last = json.loads(lines[-1])
|
|
379
|
+
out["last_observed_at"] = last.get("ts")
|
|
380
|
+
except (OSError, json.JSONDecodeError):
|
|
381
|
+
pass
|
|
382
|
+
return out
|