@agentikos/omega-os 0.2.0 → 0.19.5
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/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/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/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/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
|
@@ -45,6 +45,17 @@ from omega_engine.educators import (
|
|
|
45
45
|
from omega_engine.bus import EventBus
|
|
46
46
|
from omega_engine.events import Event, EventType
|
|
47
47
|
from omega_engine.executor import Executor, MissionResult
|
|
48
|
+
from omega_engine.integrations import (
|
|
49
|
+
GraphifyError,
|
|
50
|
+
GraphifyGraphMissing,
|
|
51
|
+
GraphifyNotInstalled,
|
|
52
|
+
GraphifyReport,
|
|
53
|
+
graphify_install_skill,
|
|
54
|
+
graphify_into_rag,
|
|
55
|
+
graphify_load_graph,
|
|
56
|
+
graphify_version,
|
|
57
|
+
is_graphify_installed,
|
|
58
|
+
)
|
|
48
59
|
from omega_engine.progress import MissionProgress, ProgressTracker
|
|
49
60
|
from omega_engine.provider import (
|
|
50
61
|
AgentProvider,
|
|
@@ -70,7 +81,65 @@ from omega_engine.rag import (
|
|
|
70
81
|
from omega_engine.reducer import IllegalTransition, reduce, reduce_task
|
|
71
82
|
from omega_engine.router import ModelRouter
|
|
72
83
|
from omega_engine.store import EventStore, SQLiteStore
|
|
84
|
+
from omega_engine.cadence import (
|
|
85
|
+
CadenceCharter,
|
|
86
|
+
disable_cadence,
|
|
87
|
+
list_cadences,
|
|
88
|
+
remove_cadence,
|
|
89
|
+
schedule_cadence,
|
|
90
|
+
)
|
|
91
|
+
from omega_engine.pursue import PursueResult, pursue
|
|
92
|
+
from omega_engine.webhooks import (
|
|
93
|
+
WebhookRegistry,
|
|
94
|
+
WebhookSpec,
|
|
95
|
+
generate_test_signature,
|
|
96
|
+
handle_webhook,
|
|
97
|
+
load_registry as load_webhook_registry,
|
|
98
|
+
signature_header_for,
|
|
99
|
+
verify_signature,
|
|
100
|
+
)
|
|
101
|
+
from omega_engine.skill_discovery import (
|
|
102
|
+
DiscoveredSkill,
|
|
103
|
+
Marketplace,
|
|
104
|
+
SkillAuditIssue,
|
|
105
|
+
SkillAuditVerdict,
|
|
106
|
+
SkillInstallResult,
|
|
107
|
+
audit_skill_file,
|
|
108
|
+
audit_skill_text,
|
|
109
|
+
discover_skills,
|
|
110
|
+
install_skill_from_github,
|
|
111
|
+
list_curated,
|
|
112
|
+
load_marketplaces,
|
|
113
|
+
)
|
|
73
114
|
from omega_engine.sync import ClaudeCodeAdapter, SyncEngine
|
|
115
|
+
from omega_engine.done_signal import (
|
|
116
|
+
DoneSignal,
|
|
117
|
+
DoneSignalError,
|
|
118
|
+
attach_audit_to_done,
|
|
119
|
+
done_path,
|
|
120
|
+
read_done,
|
|
121
|
+
session_dir,
|
|
122
|
+
write_done,
|
|
123
|
+
)
|
|
124
|
+
from omega_engine.envelope import (
|
|
125
|
+
DISPATCHER_ROLES,
|
|
126
|
+
EXECUTOR_ROLES,
|
|
127
|
+
EnvelopeContext,
|
|
128
|
+
VERIFIER_ROLES,
|
|
129
|
+
build_envelope,
|
|
130
|
+
)
|
|
131
|
+
from omega_engine.prompts import (
|
|
132
|
+
find_agent_file,
|
|
133
|
+
list_available_agents,
|
|
134
|
+
load_agent_prompt,
|
|
135
|
+
)
|
|
136
|
+
from omega_engine.vault import (
|
|
137
|
+
list_project_vaults,
|
|
138
|
+
vault_init,
|
|
139
|
+
vault_read,
|
|
140
|
+
vault_status,
|
|
141
|
+
vault_write,
|
|
142
|
+
)
|
|
74
143
|
from omega_engine.task import (
|
|
75
144
|
TERMINAL,
|
|
76
145
|
Budget,
|
|
@@ -81,8 +150,45 @@ from omega_engine.task import (
|
|
|
81
150
|
Trigger,
|
|
82
151
|
)
|
|
83
152
|
from omega_engine.tools import Tool, ToolRegistry, install_from_catalog
|
|
153
|
+
from omega_engine.worker import (
|
|
154
|
+
WorkerBrief,
|
|
155
|
+
default_model_for_role,
|
|
156
|
+
list_workers,
|
|
157
|
+
read_brief,
|
|
158
|
+
run_brief,
|
|
159
|
+
spawn_worker,
|
|
160
|
+
wait_for_done,
|
|
161
|
+
worker_status,
|
|
162
|
+
write_brief,
|
|
163
|
+
)
|
|
164
|
+
from omega_engine.cleanup import (
|
|
165
|
+
TierResult,
|
|
166
|
+
cleanup as run_cleanup,
|
|
167
|
+
format_summary as cleanup_summary,
|
|
168
|
+
)
|
|
169
|
+
from omega_engine.skill_routing import (
|
|
170
|
+
POWER_SKILLS,
|
|
171
|
+
catalog_for_home as skill_catalog_for_home,
|
|
172
|
+
format_skill_block,
|
|
173
|
+
recommend as recommend_skills,
|
|
174
|
+
skills_for,
|
|
175
|
+
)
|
|
176
|
+
from omega_engine.genesis import (
|
|
177
|
+
GenesisOrchestrator,
|
|
178
|
+
GenesisState,
|
|
179
|
+
PhaseResult,
|
|
180
|
+
Stack,
|
|
181
|
+
StackConfig,
|
|
182
|
+
StackQuestion,
|
|
183
|
+
init_project as genesis_init_project,
|
|
184
|
+
load_state as genesis_load_state,
|
|
185
|
+
pick_stack,
|
|
186
|
+
project_root as genesis_project_root,
|
|
187
|
+
stack_questions,
|
|
188
|
+
)
|
|
189
|
+
from omega_engine import plan as plan_v7
|
|
84
190
|
|
|
85
|
-
__version__ = "0.
|
|
191
|
+
__version__ = "0.19.5"
|
|
86
192
|
|
|
87
193
|
__all__ = [
|
|
88
194
|
"__version__",
|
|
@@ -119,4 +225,44 @@ __all__ = [
|
|
|
119
225
|
# tool registry + SSOT → provider sync engine
|
|
120
226
|
"Tool", "ToolRegistry", "install_from_catalog",
|
|
121
227
|
"SyncEngine", "ClaudeCodeAdapter",
|
|
228
|
+
# graphify integration — Claude Code skill + graph consumer
|
|
229
|
+
"GraphifyError", "GraphifyGraphMissing", "GraphifyNotInstalled",
|
|
230
|
+
"GraphifyReport",
|
|
231
|
+
"graphify_install_skill", "graphify_into_rag", "graphify_load_graph",
|
|
232
|
+
"graphify_version", "is_graphify_installed",
|
|
233
|
+
# encrypted secrets vault (age if available, chmod 600 fallback)
|
|
234
|
+
"vault_init", "vault_write", "vault_read", "vault_status",
|
|
235
|
+
"list_project_vaults",
|
|
236
|
+
# agent prompt loader (AISB suite + others) + mission envelope
|
|
237
|
+
"load_agent_prompt", "find_agent_file", "list_available_agents",
|
|
238
|
+
"EnvelopeContext", "build_envelope",
|
|
239
|
+
"DISPATCHER_ROLES", "EXECUTOR_ROLES", "VERIFIER_ROLES",
|
|
240
|
+
# worker .done.json — the structured completion signal
|
|
241
|
+
"DoneSignal", "DoneSignalError",
|
|
242
|
+
"write_done", "read_done", "attach_audit_to_done",
|
|
243
|
+
"session_dir", "done_path",
|
|
244
|
+
# Agentik OS native primitives (replace Claude Code /goal and /loop on Max)
|
|
245
|
+
"pursue", "PursueResult",
|
|
246
|
+
"schedule_cadence", "list_cadences", "disable_cadence", "remove_cadence",
|
|
247
|
+
"CadenceCharter",
|
|
248
|
+
# skill discovery + safety audit
|
|
249
|
+
"Marketplace", "load_marketplaces",
|
|
250
|
+
"SkillAuditIssue", "SkillAuditVerdict",
|
|
251
|
+
"audit_skill_file", "audit_skill_text",
|
|
252
|
+
"DiscoveredSkill", "discover_skills", "list_curated",
|
|
253
|
+
"SkillInstallResult", "install_skill_from_github",
|
|
254
|
+
# inbound webhooks — HMAC-signed POSTs that wake autonomous charters
|
|
255
|
+
"WebhookSpec", "WebhookRegistry",
|
|
256
|
+
"load_webhook_registry", "signature_header_for",
|
|
257
|
+
"verify_signature", "handle_webhook", "generate_test_signature",
|
|
258
|
+
# persistent-tmux workers (smart model per role: opus 1M for coding,
|
|
259
|
+
# sonnet for planning, haiku for triage)
|
|
260
|
+
"WorkerBrief", "default_model_for_role",
|
|
261
|
+
"spawn_worker", "run_brief", "worker_status", "wait_for_done",
|
|
262
|
+
"list_workers", "read_brief", "write_brief",
|
|
263
|
+
# OmegaOS-adapted disk cleanup
|
|
264
|
+
"TierResult", "run_cleanup", "cleanup_summary",
|
|
265
|
+
# Role → skills routing (worker brief skill palette)
|
|
266
|
+
"POWER_SKILLS", "skill_catalog_for_home", "format_skill_block",
|
|
267
|
+
"recommend_skills", "skills_for",
|
|
122
268
|
]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -282,16 +282,30 @@ def vault_path(omega_home: str | Path, secret_ref: str) -> Path:
|
|
|
282
282
|
|
|
283
283
|
|
|
284
284
|
def read_token(omega_home: str | Path, secret_ref: str) -> str:
|
|
285
|
-
"""Read the OAuth token from the vault
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
"""Read the OAuth token from the vault.
|
|
286
|
+
|
|
287
|
+
Resolution order, first match wins:
|
|
288
|
+
1. ``vault_read(<secret_ref>_TOKEN)`` — the canonical key the new
|
|
289
|
+
``write_token`` uses. If age is the active backend the read is
|
|
290
|
+
transparently decrypted.
|
|
291
|
+
2. Legacy dotenv file at ``Agentik_Extra/etc/secrets/<secret_ref>.env``
|
|
292
|
+
with a ``CLAUDE_OAUTH_TOKEN=...`` line. Kept for backward compat
|
|
293
|
+
with installs that pre-date the encrypted vault.
|
|
291
294
|
"""
|
|
295
|
+
# Local import to avoid an import cycle at module load time.
|
|
296
|
+
from omega_engine.vault import vault_read
|
|
297
|
+
|
|
298
|
+
canon = f"{secret_ref}_TOKEN"
|
|
299
|
+
try:
|
|
300
|
+
token = vault_read(omega_home, canon)
|
|
301
|
+
except ValueError:
|
|
302
|
+
token = None
|
|
303
|
+
if token:
|
|
304
|
+
return token.strip()
|
|
305
|
+
|
|
292
306
|
path = vault_path(omega_home, secret_ref)
|
|
293
307
|
if not path.exists():
|
|
294
|
-
raise FileNotFoundError(f"vault
|
|
308
|
+
raise FileNotFoundError(f"vault entry not found for ref {secret_ref!r}")
|
|
295
309
|
keys = ("CLAUDE_OAUTH_TOKEN", secret_ref.upper())
|
|
296
310
|
for line in path.read_text().splitlines():
|
|
297
311
|
s = line.strip()
|
|
@@ -309,34 +323,17 @@ def read_token(omega_home: str | Path, secret_ref: str) -> str:
|
|
|
309
323
|
|
|
310
324
|
|
|
311
325
|
def write_token(omega_home: str | Path, secret_ref: str, token: str) -> Path:
|
|
312
|
-
"""Write the OAuth token
|
|
326
|
+
"""Write the OAuth token through the vault layer.
|
|
313
327
|
|
|
314
|
-
|
|
315
|
-
|
|
328
|
+
Uses ``omega_engine.vault.vault_write``: age-encrypted if the system has
|
|
329
|
+
``age`` + ``age-keygen``, else mode-600 plaintext. Either way, the file
|
|
330
|
+
is owner-only on disk. Overwrites silently — rotating a token is the
|
|
331
|
+
expected use case. Returns the actual on-disk path written.
|
|
316
332
|
"""
|
|
317
333
|
if not token or not token.strip():
|
|
318
334
|
raise ValueError("token must be a non-empty string")
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
# is born with 0o600 (no race window during which 0o644 would be visible).
|
|
322
|
-
fd = os.open(str(path), os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600)
|
|
323
|
-
try:
|
|
324
|
-
with os.fdopen(fd, "w") as fh:
|
|
325
|
-
fh.write(f"# Omega OS — Claude Max OAuth token for {secret_ref}\n")
|
|
326
|
-
fh.write(f"# Written: {time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime())}\n")
|
|
327
|
-
fh.write(f"CLAUDE_OAUTH_TOKEN={token.strip()}\n")
|
|
328
|
-
finally:
|
|
329
|
-
# If fdopen succeeded, fd is closed by the context manager; if it
|
|
330
|
-
# raised, the fd is leaked — guard that by attempting a close.
|
|
331
|
-
try:
|
|
332
|
-
os.close(fd)
|
|
333
|
-
except OSError:
|
|
334
|
-
pass
|
|
335
|
-
# Belt-and-braces: re-assert mode in case some umask oddity sneaked in.
|
|
336
|
-
try:
|
|
337
|
-
os.chmod(path, stat.S_IRUSR | stat.S_IWUSR) # 0o600
|
|
338
|
-
except OSError:
|
|
339
|
-
pass
|
|
335
|
+
from omega_engine.vault import vault_write
|
|
336
|
+
return vault_write(omega_home, f"{secret_ref}_TOKEN", token.strip())
|
|
340
337
|
return path
|
|
341
338
|
|
|
342
339
|
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"""Worker ↔ Oracle messaging — the missing back-channel.
|
|
2
|
+
|
|
3
|
+
Today a worker writes a single ``.done.json`` and that's it. If it's
|
|
4
|
+
stuck mid-task and needs the oracle's input, it has no way to ask. Then
|
|
5
|
+
either it guesses wrong (and the audit catches it later — wasted work)
|
|
6
|
+
or it gives up early (status=pending — wasted dispatch).
|
|
7
|
+
|
|
8
|
+
This primitive is a small JSON-lines file per task at
|
|
9
|
+
``Agentik_Runtime/sessions/<task_id>/messages.jsonl``. The worker
|
|
10
|
+
appends a question, the oracle reads, appends an answer, the worker
|
|
11
|
+
polls and continues.
|
|
12
|
+
|
|
13
|
+
The protocol is intentionally minimal — one JSON object per line:
|
|
14
|
+
|
|
15
|
+
``{from, to, ts, type, text}``
|
|
16
|
+
|
|
17
|
+
``type`` is one of:
|
|
18
|
+
|
|
19
|
+
* ``question`` — worker asks the oracle
|
|
20
|
+
* ``answer`` — oracle's reply
|
|
21
|
+
* ``proposal`` — worker proposes a course change
|
|
22
|
+
* ``decision`` — oracle says yes/no/pivot
|
|
23
|
+
|
|
24
|
+
Polling is the operator's choice — the worker can ``read_messages``
|
|
25
|
+
between Bash/Edit iterations. For long-running missions the oracle's
|
|
26
|
+
session can sit in ``omega message wait <task_id>`` to surface
|
|
27
|
+
questions as they arrive.
|
|
28
|
+
"""
|
|
29
|
+
from __future__ import annotations
|
|
30
|
+
|
|
31
|
+
import json
|
|
32
|
+
import os
|
|
33
|
+
import time
|
|
34
|
+
from dataclasses import dataclass, field
|
|
35
|
+
from pathlib import Path
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
VALID_TYPES = {"question", "answer", "proposal", "decision"}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@dataclass
|
|
42
|
+
class Message:
|
|
43
|
+
from_: str
|
|
44
|
+
to: str
|
|
45
|
+
type: str
|
|
46
|
+
text: str
|
|
47
|
+
ts: int = field(default_factory=lambda: int(time.time()))
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _msg_path(omega_home: str | Path, task_id: str) -> Path:
|
|
51
|
+
home = Path(omega_home)
|
|
52
|
+
p = home / "Agentik_Runtime" / "sessions" / task_id / "messages.jsonl"
|
|
53
|
+
p.parent.mkdir(parents=True, exist_ok=True)
|
|
54
|
+
return p
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def send(
|
|
58
|
+
omega_home: str | Path,
|
|
59
|
+
task_id: str,
|
|
60
|
+
*,
|
|
61
|
+
from_: str,
|
|
62
|
+
to: str,
|
|
63
|
+
type: str,
|
|
64
|
+
text: str,
|
|
65
|
+
) -> Message:
|
|
66
|
+
"""Append one message to the per-task JSONL. Returns the persisted Message."""
|
|
67
|
+
if type not in VALID_TYPES:
|
|
68
|
+
raise ValueError(f"type must be one of {VALID_TYPES}, got {type!r}")
|
|
69
|
+
msg = Message(from_=from_, to=to, type=type, text=text)
|
|
70
|
+
p = _msg_path(omega_home, task_id)
|
|
71
|
+
with p.open("a") as fh:
|
|
72
|
+
fh.write(json.dumps({
|
|
73
|
+
"from": msg.from_, "to": msg.to,
|
|
74
|
+
"type": msg.type, "text": msg.text,
|
|
75
|
+
"ts": msg.ts,
|
|
76
|
+
}) + "\n")
|
|
77
|
+
return msg
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def read(
|
|
81
|
+
omega_home: str | Path, task_id: str,
|
|
82
|
+
*,
|
|
83
|
+
since_ts: int = 0,
|
|
84
|
+
for_recipient: str | None = None,
|
|
85
|
+
) -> list[Message]:
|
|
86
|
+
"""Read messages for a task. Returns oldest-first."""
|
|
87
|
+
p = _msg_path(omega_home, task_id)
|
|
88
|
+
if not p.exists():
|
|
89
|
+
return []
|
|
90
|
+
out: list[Message] = []
|
|
91
|
+
for line in p.read_text().splitlines():
|
|
92
|
+
if not line.strip():
|
|
93
|
+
continue
|
|
94
|
+
try:
|
|
95
|
+
data = json.loads(line)
|
|
96
|
+
except json.JSONDecodeError:
|
|
97
|
+
continue
|
|
98
|
+
if int(data.get("ts", 0)) < since_ts:
|
|
99
|
+
continue
|
|
100
|
+
if for_recipient and data.get("to") != for_recipient:
|
|
101
|
+
continue
|
|
102
|
+
out.append(Message(
|
|
103
|
+
from_=str(data.get("from", "?")),
|
|
104
|
+
to=str(data.get("to", "?")),
|
|
105
|
+
type=str(data.get("type", "question")),
|
|
106
|
+
text=str(data.get("text", "")),
|
|
107
|
+
ts=int(data.get("ts", 0)),
|
|
108
|
+
))
|
|
109
|
+
return out
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def wait_for_reply(
|
|
113
|
+
omega_home: str | Path,
|
|
114
|
+
task_id: str,
|
|
115
|
+
*,
|
|
116
|
+
for_recipient: str,
|
|
117
|
+
since_ts: int | None = None,
|
|
118
|
+
timeout_s: int = 600,
|
|
119
|
+
poll_interval_s: int = 5,
|
|
120
|
+
) -> Message | None:
|
|
121
|
+
"""Block until a message addressed to ``for_recipient`` arrives or timeout.
|
|
122
|
+
|
|
123
|
+
Use case: the worker asks a question, then waits for the oracle's
|
|
124
|
+
answer before continuing. Returns the new message, or None on
|
|
125
|
+
timeout.
|
|
126
|
+
"""
|
|
127
|
+
since_ts = since_ts if since_ts is not None else int(time.time())
|
|
128
|
+
end = time.time() + timeout_s
|
|
129
|
+
while time.time() < end:
|
|
130
|
+
msgs = read(omega_home, task_id, since_ts=since_ts,
|
|
131
|
+
for_recipient=for_recipient)
|
|
132
|
+
if msgs:
|
|
133
|
+
return msgs[0]
|
|
134
|
+
time.sleep(poll_interval_s)
|
|
135
|
+
return None
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def list_open_questions(
|
|
139
|
+
omega_home: str | Path,
|
|
140
|
+
) -> list[tuple[str, Message]]:
|
|
141
|
+
"""Scan every per-task messages.jsonl for unanswered questions.
|
|
142
|
+
|
|
143
|
+
A "question" is unanswered when no later message of type=answer
|
|
144
|
+
addresses the same conversation. Returns (task_id, question_msg)
|
|
145
|
+
pairs sorted oldest first.
|
|
146
|
+
"""
|
|
147
|
+
home = Path(omega_home)
|
|
148
|
+
sess = home / "Agentik_Runtime" / "sessions"
|
|
149
|
+
if not sess.is_dir():
|
|
150
|
+
return []
|
|
151
|
+
open_qs: list[tuple[str, Message]] = []
|
|
152
|
+
for child in sess.iterdir():
|
|
153
|
+
if not child.is_dir():
|
|
154
|
+
continue
|
|
155
|
+
p = child / "messages.jsonl"
|
|
156
|
+
if not p.exists():
|
|
157
|
+
continue
|
|
158
|
+
msgs = read(home, child.name)
|
|
159
|
+
# Questions whose ts is later than the latest answer in the same file
|
|
160
|
+
latest_answer = max(
|
|
161
|
+
(m.ts for m in msgs if m.type == "answer"), default=0,
|
|
162
|
+
)
|
|
163
|
+
for m in msgs:
|
|
164
|
+
if m.type == "question" and m.ts > latest_answer:
|
|
165
|
+
open_qs.append((child.name, m))
|
|
166
|
+
open_qs.sort(key=lambda pair: pair[1].ts)
|
|
167
|
+
return open_qs
|