dos-kernel 0.25.0__tar.gz → 0.27.0__tar.gz
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.
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/PKG-INFO +224 -147
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/README.md +221 -146
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/pyproject.toml +40 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/__init__.py +16 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_tree.py +23 -11
- dos_kernel-0.27.0/src/dos/apply_gate.py +396 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/arbiter.py +31 -0
- dos_kernel-0.27.0/src/dos/child_refusals.py +196 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/cli.py +2998 -107
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/commit_audit.py +233 -36
- dos_kernel-0.27.0/src/dos/concurrency_class.py +368 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/config.py +77 -3
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/config_lint.py +50 -2
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/decisions.py +412 -3
- dos_kernel-0.27.0/src/dos/deprecation.py +68 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/dispatch_top.py +517 -1
- dos_kernel-0.27.0/src/dos/dispatch_top_tui.py +255 -0
- dos_kernel-0.27.0/src/dos/drivers/_effect_gate.py +376 -0
- dos_kernel-0.27.0/src/dos/drivers/account_switcher.py +887 -0
- dos_kernel-0.27.0/src/dos/drivers/content_diff.py +506 -0
- dos_kernel-0.27.0/src/dos/drivers/crewai_guardrail.py +85 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_otlp.py +34 -3
- dos_kernel-0.27.0/src/dos/drivers/memory_mem0.py +158 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/memory_recall.py +662 -35
- dos_kernel-0.27.0/src/dos/drivers/merge_gate.py +170 -0
- dos_kernel-0.27.0/src/dos/drivers/model_reroute.py +251 -0
- dos_kernel-0.27.0/src/dos/drivers/nemo_action.py +102 -0
- dos_kernel-0.27.0/src/dos/drivers/openai_agents_guardrail.py +112 -0
- dos_kernel-0.27.0/src/dos/drivers/pre_commit.py +67 -0
- dos_kernel-0.27.0/src/dos/drivers/provider_ledger.py +655 -0
- dos_kernel-0.27.0/src/dos/drivers/witnessed_leak_test.py +890 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/efficiency.py +57 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/efficiency_trend.py +57 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/event_severity.py +35 -2
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/help_summary.py +330 -54
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/home.py +2 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_dialect.py +7 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_install.py +181 -0
- dos_kernel-0.27.0/src/dos/hook_observation.py +690 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/improve.py +57 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intent_ledger.py +16 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_journal.py +186 -6
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_lease.py +21 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/liveness.py +9 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/loop_decide.py +101 -2
- dos_kernel-0.27.0/src/dos/memory_stores.py +185 -0
- dos_kernel-0.27.0/src/dos/mergegate.py +348 -0
- dos_kernel-0.27.0/src/dos/model_call.py +493 -0
- dos_kernel-0.27.0/src/dos/model_health.py +559 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/notify.py +58 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/oracle.py +234 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/override_facts.py +81 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/phase_shipped.py +104 -3
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pickable.py +54 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_board.py +26 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pretool_sensor.py +511 -4
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/productivity.py +57 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/provider_limit.py +168 -3
- dos_kernel-0.27.0/src/dos/pulse.py +240 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reasons.py +29 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/result_state.py +64 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/resume.py +188 -0
- dos_kernel-0.27.0/src/dos/retire.py +385 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/run_id.py +33 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scout.py +57 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/self_modify.py +13 -11
- dos_kernel-0.27.0/src/dos/session_digest.py +209 -0
- dos_kernel-0.27.0/src/dos/skill_grade.py +473 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/EXAMPLES.md +28 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch/SKILL.md +1 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +43 -3
- dos_kernel-0.27.0/src/dos/skills/dos-goal-fleet/SKILL.md +329 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-goal-gate/SKILL.md +28 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-next-up/SKILL.md +6 -2
- dos_kernel-0.27.0/src/dos/skills/dos-plan-price/SKILL.md +195 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan-loop/SKILL.md +14 -0
- dos_kernel-0.27.0/src/dos/skills/dos-skillify/SKILL.md +183 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-supervise-loop/SKILL.md +41 -5
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/stamp.py +24 -7
- dos_kernel-0.27.0/src/dos/testing/__init__.py +71 -0
- dos_kernel-0.27.0/src/dos/testing/doubles.py +222 -0
- dos_kernel-0.27.0/src/dos/testing/suite.py +392 -0
- dos_kernel-0.27.0/src/dos/testing/tester.py +122 -0
- dos_kernel-0.27.0/src/dos/verdict_census.py +381 -0
- dos_kernel-0.27.0/src/dos/verified.py +134 -0
- dos_kernel-0.27.0/src/dos/work_account.py +263 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/PKG-INFO +224 -147
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/SOURCES.txt +123 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/entry_points.txt +5 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/requires.txt +3 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/server.py +28 -0
- dos_kernel-0.27.0/tests/test_account_switcher.py +678 -0
- dos_kernel-0.27.0/tests/test_aeo_tracker.py +238 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agent_surface.py +57 -10
- dos_kernel-0.27.0/tests/test_answers.py +122 -0
- dos_kernel-0.27.0/tests/test_apply_cli.py +178 -0
- dos_kernel-0.27.0/tests/test_apply_gate.py +213 -0
- dos_kernel-0.27.0/tests/test_apply_gate_fence.py +336 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_arbiter.py +243 -0
- dos_kernel-0.27.0/tests/test_backlog_triage.py +353 -0
- dos_kernel-0.27.0/tests/test_braintrust_scorer_example.py +107 -0
- dos_kernel-0.27.0/tests/test_build_skill_dos_page.py +121 -0
- dos_kernel-0.27.0/tests/test_burn_in_farm_playbook.py +173 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_canonical_example_lockstep.py +1 -0
- dos_kernel-0.27.0/tests/test_caught_lie_cast.py +96 -0
- dos_kernel-0.27.0/tests/test_child_refusals.py +241 -0
- dos_kernel-0.27.0/tests/test_cleanup_sweep.py +218 -0
- dos_kernel-0.27.0/tests/test_cli_completion_verb.py +216 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_ergonomics.py +98 -2
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_pickable_enumerate.py +29 -0
- dos_kernel-0.27.0/tests/test_clobber_demo_contract.py +134 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_commit_audit.py +268 -14
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_concurrency_class.py +93 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_config_lint.py +33 -0
- dos_kernel-0.27.0/tests/test_conformance_plugin_examples.py +85 -0
- dos_kernel-0.27.0/tests/test_conformance_suite.py +193 -0
- dos_kernel-0.27.0/tests/test_content_diff.py +380 -0
- dos_kernel-0.27.0/tests/test_crewai_guardrail.py +115 -0
- dos_kernel-0.27.0/tests/test_cross_host_continuity.py +192 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_decisions.py +311 -0
- dos_kernel-0.27.0/tests/test_deprecation.py +109 -0
- dos_kernel-0.27.0/tests/test_dev_runner.py +70 -0
- dos_kernel-0.27.0/tests/test_discoverability_inventory.py +182 -0
- dos_kernel-0.27.0/tests/test_dispatch_top.py +1068 -0
- dos_kernel-0.27.0/tests/test_docs_links.py +96 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_docs_version_drift.py +3 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_doctor_json.py +39 -0
- dos_kernel-0.27.0/tests/test_dogfood_goal_gate.py +74 -0
- dos_kernel-0.27.0/tests/test_drift_scoreboard.py +295 -0
- dos_kernel-0.27.0/tests/test_drivers_merge_gate.py +207 -0
- dos_kernel-0.27.0/tests/test_duplicate_plan_numbers.py +277 -0
- dos_kernel-0.27.0/tests/test_effect_gate.py +243 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend_cli.py +39 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_event_severity.py +66 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_otlp.py +50 -0
- dos_kernel-0.27.0/tests/test_fault_injection_journal.py +376 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_fleet_framework_examples.py +57 -1
- dos_kernel-0.27.0/tests/test_forge_arena_bench.py +117 -0
- dos_kernel-0.27.0/tests/test_forge_page.py +85 -0
- dos_kernel-0.27.0/tests/test_gemini_extension.py +137 -0
- dos_kernel-0.27.0/tests/test_git_cleanup.py +279 -0
- dos_kernel-0.27.0/tests/test_gitlab_ci_template.py +55 -0
- dos_kernel-0.27.0/tests/test_gitlab_component.py +85 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_help_summary.py +302 -16
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_dialect.py +21 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_observation.py +228 -2
- dos_kernel-0.27.0/tests/test_hook_pretool.py +957 -0
- dos_kernel-0.27.0/tests/test_hosts_verb.py +198 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_skills.py +4 -1
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_install_drift.py +1 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_install_levels.py +4 -0
- dos_kernel-0.27.0/tests/test_kernel_keep_gate_example.py +243 -0
- dos_kernel-0.27.0/tests/test_kernel_keep_gate_real_kernelbench.py +103 -0
- dos_kernel-0.27.0/tests/test_legalcite_live.py +210 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_liveness.py +67 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llm_judge_vendor_seam.py +4 -0
- dos_kernel-0.27.0/tests/test_loop_economics_toml.py +305 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_mcp_server.py +72 -0
- dos_kernel-0.27.0/tests/test_memory_admit.py +316 -0
- dos_kernel-0.27.0/tests/test_memory_fossils.py +297 -0
- dos_kernel-0.27.0/tests/test_memory_integrity_bench.py +76 -0
- dos_kernel-0.27.0/tests/test_memory_mem0.py +157 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_memory_recall.py +77 -0
- dos_kernel-0.27.0/tests/test_memory_stores.py +229 -0
- dos_kernel-0.27.0/tests/test_mergegate.py +227 -0
- dos_kernel-0.27.0/tests/test_model_call.py +298 -0
- dos_kernel-0.27.0/tests/test_model_health.py +361 -0
- dos_kernel-0.27.0/tests/test_model_reroute.py +177 -0
- dos_kernel-0.27.0/tests/test_nemo_action.py +130 -0
- dos_kernel-0.27.0/tests/test_openai_agents_guardrail.py +177 -0
- dos_kernel-0.27.0/tests/test_oracle.py +337 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_and_loop.py +135 -0
- dos_kernel-0.27.0/tests/test_os_acceptance.py +194 -0
- dos_kernel-0.27.0/tests/test_override_window.py +560 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_pickable.py +19 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plugin_manifest.py +11 -5
- dos_kernel-0.27.0/tests/test_poisoned_pool_bench.py +194 -0
- dos_kernel-0.27.0/tests/test_poisoned_pool_lineage.py +190 -0
- dos_kernel-0.27.0/tests/test_poisoned_pool_p2.py +225 -0
- dos_kernel-0.27.0/tests/test_poisoned_pool_policies.py +134 -0
- dos_kernel-0.27.0/tests/test_pre_commit_hook.py +233 -0
- dos_kernel-0.27.0/tests/test_prop_arbiter_wal.py +361 -0
- dos_kernel-0.27.0/tests/test_provider_ledger.py +478 -0
- dos_kernel-0.27.0/tests/test_provider_limit.py +271 -0
- dos_kernel-0.27.0/tests/test_pulse.py +204 -0
- dos_kernel-0.27.0/tests/test_readme_test_count_band.py +99 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_refusal_and_tokens.py +30 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_release_bump.py +72 -10
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_result_state.py +47 -0
- dos_kernel-0.27.0/tests/test_resume.py +282 -0
- dos_kernel-0.27.0/tests/test_retire.py +251 -0
- dos_kernel-0.27.0/tests/test_root_index_lane.py +72 -0
- dos_kernel-0.27.0/tests/test_scoreboard_copy.py +96 -0
- dos_kernel-0.27.0/tests/test_scoreboard_rollup.py +163 -0
- dos_kernel-0.27.0/tests/test_scoreboard_surfaces.py +245 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scout.py +75 -0
- dos_kernel-0.27.0/tests/test_seed_scoreboard_index.py +331 -0
- dos_kernel-0.27.0/tests/test_session_digest.py +223 -0
- dos_kernel-0.27.0/tests/test_si_cov_cycle1.py +421 -0
- dos_kernel-0.27.0/tests/test_si_cov_cycle2.py +223 -0
- dos_kernel-0.27.0/tests/test_si_cov_cycle3.py +238 -0
- dos_kernel-0.27.0/tests/test_skill_grade.py +212 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_litmus.py +13 -0
- dos_kernel-0.27.0/tests/test_smartphone_tier_bench.py +229 -0
- dos_kernel-0.27.0/tests/test_smithery_yaml.py +119 -0
- dos_kernel-0.27.0/tests/test_social_card.py +75 -0
- dos_kernel-0.27.0/tests/test_sota_scan.py +349 -0
- dos_kernel-0.27.0/tests/test_stability_policy.py +96 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_trailer.py +47 -0
- dos_kernel-0.27.0/tests/test_tree_question_mark_soundness.py +77 -0
- dos_kernel-0.27.0/tests/test_troubleshooting_doc.py +62 -0
- dos_kernel-0.27.0/tests/test_two_hosts_one_gate_playbook.py +176 -0
- dos_kernel-0.27.0/tests/test_verdict_census.py +181 -0
- dos_kernel-0.27.0/tests/test_verified.py +206 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_no_plan.py +34 -0
- dos_kernel-0.27.0/tests/test_wiring_drift.py +146 -0
- dos_kernel-0.27.0/tests/test_witnessed_leak_test.py +375 -0
- dos_kernel-0.27.0/tests/test_work_account.py +307 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_workspace_config.py +37 -3
- dos_kernel-0.27.0/tests/test_worktree_lifecycle_spike.py +131 -0
- dos_kernel-0.25.0/src/dos/concurrency_class.py +0 -154
- dos_kernel-0.25.0/src/dos/dispatch_top_tui.py +0 -116
- dos_kernel-0.25.0/src/dos/hook_observation.py +0 -338
- dos_kernel-0.25.0/tests/test_dispatch_top.py +0 -500
- dos_kernel-0.25.0/tests/test_hook_pretool.py +0 -510
- dos_kernel-0.25.0/tests/test_override_window.py +0 -273
- dos_kernel-0.25.0/tests/test_provider_limit.py +0 -141
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/LICENSE +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/setup.cfg +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_demo_story.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_filelock.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_job_policy.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/admission.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/answer_shape.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/archive_lock.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/arg_provenance.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/attest.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/breaker.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/churn.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/claim_extract.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/claim_ttl.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/completion.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/cooldown.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/coverage.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/dangling_intent.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/data_class.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/decisions_tui.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/__init__.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/agt_backend.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/ci_status.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/citation_resolve.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/decision_stop.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/design_doc_plan.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_file.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_statsd.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/hook_dialects.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/job.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/llm_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_slack.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_webhook.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/operator_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/os_acceptance.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/paste_log.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/plan_scope.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/self_improve.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/similarity_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/state_diff.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/supervisor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/watchdog.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/workshop.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/durable_schema.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/effect_witness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/enforce.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/enumerate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/env_print.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/exec_capability.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/export_cursor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/exporter.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/firing_label.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/fleet_roll.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/gate_classify.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/gh4_coverage.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/git_delta.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/guard.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_binary.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_exit.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/id_alloc.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/interpret.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intervention.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intervention_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/journal_delta.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/judge_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/judges.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_infer.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_overlap.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lease_health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lifecycle.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lock_modes.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/log_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/marker_gate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/marker_sensor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/noop_streak.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/observe.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/overlap_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/overlap_policy.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/packet_sidecar.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pick_priority.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/picker_oracle.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_board_tui.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/posttool_sensor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/precursor_gate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/precursor_gate_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/preflight.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/proc_delta.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/py.typed +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reason_morphology.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reconcile.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/recurring_wedge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/render.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/resume_evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/retention.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reward.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind_evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind_tokens.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scope.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scope_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/sibling_scan.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-self-improve/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/spend.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/state_health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/status.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/stop_policy.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/supervise.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/testwitness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/timeline.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tokens.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tool_stream.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tool_stream_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/trace.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_journal.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_rollup.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdicts.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/wedge_reason.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/__init__.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/py.typed +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_admission.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agenthallu_replay.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agentprocessbench_replay.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agt_backend.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_answer_shape.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_archive_lock.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_arg_provenance.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_attest.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_backflow_ledger.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_bench_layering.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_breaker.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_build_wheels_binary_format.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_central_index.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_churn.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_ci_status.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_citation_resolve.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claim_extract.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claim_ttl.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claims_lint.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_loop.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cmd_status.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_completion.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cooldown.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_coverage.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dangling_intent.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_data_class.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_design_doc_plan_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dispatch_loop_substrate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dos_react_terminal_error.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_self_improve.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_supervisor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_watchdog.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_workshop.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_durable_schema.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_effect_witness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enforce.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_ensure_home.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enterpriseops_harness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enumerate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_env_print.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_exec_capability.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_cursor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_statsd.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_exporter.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_feasibility_split.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_filelock.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_filepath_backstop_batch.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_firing_label.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_fleet_roll.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gate_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gh4_coverage.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_git_hygiene.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gitignore_hygiene.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_go_hook_parity.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_guard.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hermes_integration_example.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_home_layering.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_home_no_temp_pollution.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_binaries_bundled.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_binary_locator.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_exit.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_stop.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_id_alloc.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_improve.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks_auto.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks_crossvendor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intent_ledger.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_interpret_parity.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_journal_delta.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judge_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judges.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_adopt.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_halt.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_infer.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_journal.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease_expiry.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease_mutex.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_overlap.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_leak_scan.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lease_health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lifecycle.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llms_full.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llms_txt.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lock_modes.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_log_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_marker_gate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_marker_sensor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_noop_streak.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_slack.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_webhook.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_observe.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_operator_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_forgeability_provenance.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_grep_in_process.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_overlap_policy.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_packet_sidecar.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_phase_labels.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_pick_priority.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plan_board.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plan_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_posttool_sensor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_precursor_gate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_precursor_gate_eval.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_preflight_sidecar.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_proc_delta.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_productivity.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_breaker.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_cooldown.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_efficiency.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_install_wrappers.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_overlap_soundness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_productivity.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_reconcile.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_reward_nonforgeability.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_tree.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_readme_assembly.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reconcile.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_recurring_wedge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reindex.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_render.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_replan_skip.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_reachability.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_retention.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reward.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_rewind.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_rewind_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_gate.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_gate_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_source.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_selfmodify_hook_probe.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_server_json_version.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_serverless_rl_example.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_sibling_scan.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_similarity_judge.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_dispatch.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_generic.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_operator_tier.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_replan.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend_evidence.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stall_sim.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_convention.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_doctor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_filepath_rung.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_diff.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_health.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_health_doctor.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_home.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_status_digest.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stop_policy.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_supervise.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_testwitness.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_timeline_timing.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_tool_stream.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_tool_stream_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_live_adapter.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_replay.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_trace.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_trajectory_audit.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_vendor_agnostic_kernel.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_cli.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_contract.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_journal.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_rollup.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdicts.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_color.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_demo_contract.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_non_git_rung.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_plugin_install.py +0 -0
- {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_workflow_yaml_parses.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dos-kernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.0
|
|
4
4
|
Summary: Dispatch Operating System — the domain-free trust substrate for fleets of autonomous agents (verdict spine, ship oracle, structured refusal, lane arbiter, correlation spine).
|
|
5
5
|
Author: Anthony Chaudhary
|
|
6
6
|
License: MIT
|
|
@@ -46,6 +46,8 @@ Requires-Dist: slack-helpers>=0.2; extra == "notify-slack"
|
|
|
46
46
|
Provides-Extra: export-otlp
|
|
47
47
|
Requires-Dist: opentelemetry-sdk>=1.20; extra == "export-otlp"
|
|
48
48
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.20; extra == "export-otlp"
|
|
49
|
+
Provides-Extra: memory-mem0
|
|
50
|
+
Requires-Dist: mem0ai>=0.1; extra == "memory-mem0"
|
|
49
51
|
Provides-Extra: paper
|
|
50
52
|
Requires-Dist: arxiv-latex-cleaner>=1.0; extra == "paper"
|
|
51
53
|
Dynamic: license-file
|
|
@@ -64,8 +66,24 @@ Dynamic: license-file
|
|
|
64
66
|
[](https://pypi.org/project/dos-kernel/)
|
|
65
67
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml)
|
|
66
68
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml)
|
|
69
|
+
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/scoreboard/methodology.md)
|
|
67
70
|
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE)
|
|
68
71
|
|
|
72
|
+
> 📊 **See it run on real repos:** the **[scoreboard](https://anthony-chaudhary.github.io/dos-kernel/scoreboard/)**
|
|
73
|
+
> takes this same check public — for 15 popular AI-built repos (roborev,
|
|
74
|
+
> open-interpreter, crewAI, autogen, …) it shows how much of each was written by
|
|
75
|
+
> agents, which agents, and whether every commit's claim is backed by its own
|
|
76
|
+
> diff. One command scores yours: `dos commit-audit --sweep --workspace . BASE..HEAD`.
|
|
77
|
+
|
|
78
|
+
<p align="center">
|
|
79
|
+
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/caught-lie-cast.svg" alt="A terminal recording of the caught lie. The agent reports: Done! Shipped the login endpoint (AUTH1) and the password reset (AUTH2). git log shows one commit — AUTH1: ship the login endpoint. dos verify AUTH AUTH1 answers SHIPPED (exit 0); dos verify AUTH AUTH2 answers NOT_SHIPPED via none (exit 1) — caught. The exit code is the verdict: gate the agent's done on it and a false claim cannot land." width="100%">
|
|
80
|
+
<br>
|
|
81
|
+
<em>The whole pitch in one recording: the agent claims two features shipped; git backs one.
|
|
82
|
+
<code>dos verify</code> answers from the commits, the lie exits <code>1</code>, and a gate on that
|
|
83
|
+
exit code refuses the false "done". Every line is the real CLI's verbatim output —
|
|
84
|
+
<a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/scripts/build_caught_lie_cast.py"><code>scripts/build_caught_lie_cast.py</code></a> re-records it whenever the output changes.</em>
|
|
85
|
+
</p>
|
|
86
|
+
|
|
69
87
|
<p align="center">
|
|
70
88
|
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/loop-hero.svg" alt="Two agent fleets side by side. Left, no referee: agents all report 'done!', every report is believed, and silent corruption (lies, collisions, spin) piles up into a codebase that 'sorta works' and can't be changed. Right, DOS adjudicates: dos verify reads git and the run branches to SHIPPED (exit 0, land it) or NOT_SHIPPED (exit 1, re-dispatch — caught), and that verdict steers the next step." width="100%">
|
|
71
89
|
<br>
|
|
@@ -74,7 +92,7 @@ Dynamic: license-file
|
|
|
74
92
|
</p>
|
|
75
93
|
|
|
76
94
|
An AI agent will tell you it finished. DOS checks the real world instead of
|
|
77
|
-
taking its word
|
|
95
|
+
taking its word. The nearest piece of the real world is your git history.
|
|
78
96
|
|
|
79
97
|
An agent says it shipped the login endpoint. Did it? Run one command,
|
|
80
98
|
`dos verify`, and it answers from the artifacts the work actually left behind,
|
|
@@ -115,7 +133,7 @@ zero config, and the only thing you ever install is one small Python package.
|
|
|
115
133
|
> entries there undoes it. (No runtime detected? It says so and lists the
|
|
116
134
|
> names to pick from — it never guesses.)
|
|
117
135
|
|
|
118
|
-
<sub>**v0.
|
|
136
|
+
<sub>**v0.27.0** · 5,600+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
|
|
119
137
|
smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
|
|
120
138
|
|
|
121
139
|
> 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
|
|
@@ -148,6 +166,7 @@ your job title, and every section hands off to the one above it.
|
|
|
148
166
|
|
|
149
167
|
| You're asking… | Start at | Then |
|
|
150
168
|
|---|---|---|
|
|
169
|
+
| *"I vibe-code with an AI — did it actually do what it said?"* | ["Did my AI actually do it?" in 30 seconds](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/00b_did-my-ai-do-it.md) — one command on your own repo | the [plain-words version](#the-plain-words-version) of why it works |
|
|
151
170
|
| *"What is this, in plain words, and why should my team care?"* | [the plain-words version](#the-plain-words-version), just below — no code | hand the [60-second demo](#try-it-in-60-seconds) to whoever runs your agents |
|
|
152
171
|
| *"Show me it working, fast."* | [Try it in 60 seconds](#try-it-in-60-seconds) | [what goes wrong in a fleet](#what-goes-wrong-in-a-fleet) without it |
|
|
153
172
|
| *"I already run agents — how do I wire the verdict into **my** stack?"* | [How you plug it in](#how-you-plug-it-in) | [the MCP lie detector](#give-your-agent-a-lie-detector-mcp) · [Install](#install) |
|
|
@@ -162,12 +181,15 @@ its own front door: **[AGENTS.md](https://github.com/anthony-chaudhary/dos-kerne
|
|
|
162
181
|
|
|
163
182
|
A coding agent does some work, then tells you how it went. Usually the story is
|
|
164
183
|
true. Sometimes it isn't — the cheerful *"all work completed!"* from a worker
|
|
165
|
-
that actually shipped nothing is the
|
|
166
|
-
fleets. With one agent you catch that yourself, because you read its work
|
|
167
|
-
before trusting it
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
184
|
+
that actually shipped nothing is one of the most common, and most expensive,
|
|
185
|
+
failures in agent fleets. With one agent you catch that yourself, because you read its work
|
|
186
|
+
before trusting it — which is a real cost you're already paying, you just
|
|
187
|
+
haven't called it one: re-reading the output is the tax for taking the report
|
|
188
|
+
on faith.
|
|
189
|
+
|
|
190
|
+
Run twenty agents at once and that tax stops being payable — nobody reads
|
|
191
|
+
everything. Each worker grades its own homework, you believe the reports
|
|
192
|
+
because what else is there to go on, and
|
|
171
193
|
the unchecked problems pile up quietly — a false "done" here, two agents
|
|
172
194
|
overwriting the same file there, one worker spinning in circles burning money.
|
|
173
195
|
None of it is loud. The codebase ends up *sorta* working, and nobody can safely
|
|
@@ -231,6 +253,7 @@ dos init . # writes one dos.toml
|
|
|
231
253
|
git init -q
|
|
232
254
|
git config user.email you@example.com # skip if you have a global git identity
|
|
233
255
|
git config user.name "You"
|
|
256
|
+
git config commit.gpgsign false # this throwaway repo has no signing key
|
|
234
257
|
echo 'def login(): ...' > login.py
|
|
235
258
|
git add -A
|
|
236
259
|
git commit -m "AUTH1: ship the login endpoint" # stamp AUTH1 shipped: <PHASE-ID>: <message>
|
|
@@ -363,7 +386,7 @@ reachable through every row here, lowest-friction first:
|
|
|
363
386
|
|---|---|---|
|
|
364
387
|
| **MCP server** | you drive an agent through an MCP host (Claude Desktop, Cursor, Cline, an Agent-SDK app) | add one line to the host config (`{ "command": "dos-mcp" }`) and ask the agent to `dos_verify` its own last claim — **zero code**. The *advisory* path (the agent asks). See [Give your agent a lie detector](#give-your-agent-a-lie-detector-mcp). |
|
|
365
388
|
| **Runtime hooks** | you run an agent loop (Claude Code, Cursor, Codex CLI, Gemini CLI) and want the verdict to *act*, not just be available | `dos init --hooks <runtime>` wires the verdict into that host's own hook config — a refused call is **denied before it runs**, a false "done" is **refused**. The *enforcement* path (the host denies). One command, no hand-edited YAML. See [QUICKSTART](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md) + [docs/221](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/221_the-cross-vendor-hook-installer.md). |
|
|
366
|
-
| **CLI exit-code** | you have
|
|
389
|
+
| **CLI exit-code** | you have *any* command-running environment — a CI step, a `pre-push` hook, or an agentic CLI like **aider** whose lint/test-cmd trusts a "done" | branch on a `dos` verb's exit code (`dos verify`: `0` shipped / `1` not; `dos commit-audit`: `0` clean / `1` over-claim) — **the verdict *is* the exit code**, no hook adapter and no MCP client. The honest tier for hook-less hosts (Windsurf, Warp, Zed). The [exit-code tier cookbook](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-exit-code-tier.md). |
|
|
367
390
|
| **Python API** | your dispatcher/orchestrator is already Python | `import dos` and call the pure syscalls (`dos.oracle.is_shipped`, `dos.arbiter.arbitrate`, …) — state-in / verdict-out, no subprocess. The [Python cookbook](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-python-api.md). |
|
|
368
391
|
| **Fleet framework** | your fleet already runs on LangGraph, CrewAI, AutoGen, or the OpenAI/Claude Agents SDK | bolt the referee onto the framework's own seam — a referee node, a termination condition only git can satisfy, an output guardrail with a git tripwire. One function, no rewrite; every seam executed against the real framework. The [fleet-framework cookbook](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-fleet-frameworks.md). |
|
|
369
392
|
| **Swarm runtime** | your agents run on **Hermes, OpenClaw**, or a SwarmClaw-style autonomous swarm — privileged tools, shared memory docs / task boards, and **no lock manager** for either | drop a two-function adapter into the tool-execution loop: `guard_action` refuses an arbitrary-exec command **before it runs**, and `acquire_lease` / `release_lease` bracket each shared-state write so the lost update never lands. No `import dos` — it shells the CLI; Hermes' `pre_tool_call` hook also speaks DOS natively (`dos hook pretool --dialect hermes`). The runnable, A/B-measured [Hermes / OpenClaw worked example](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/hermes_integration) + [docs/278](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/278_integrating-dos-with-hermes-and-openclaw-the-missing-lock-manager-for-agent-swarms.md). |
|
|
@@ -418,6 +441,40 @@ truth) — covered in [Three live projections](#three-live-projections-read-only
|
|
|
418
441
|
below and walked end-to-end in
|
|
419
442
|
**[Debug a stuck fleet](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/06_debug-a-stuck-fleet.md)**.
|
|
420
443
|
|
|
444
|
+
### "I could write this in 20 lines of bash"
|
|
445
|
+
|
|
446
|
+
You could — and that instinct is correct. The core of `dos verify` really is
|
|
447
|
+
"grep git history for a stamp." DOS is that script taken seriously across the
|
|
448
|
+
six places the 20-line version quietly breaks:
|
|
449
|
+
|
|
450
|
+
1. **The stamp grammar is forgeable** unless it's a *closed, declared*
|
|
451
|
+
vocabulary the agent can't widen on the fly — a bare grep believes any
|
|
452
|
+
string the agent learns to print.
|
|
453
|
+
2. **Concurrent agents need a crash-safe lease journal**, not a grep: deciding
|
|
454
|
+
whether two workers may touch the same tree is arbitration, and it has to
|
|
455
|
+
survive a kill mid-write.
|
|
456
|
+
3. **"Spinning vs. stalled" is a failure detector with FLP edges**, not a
|
|
457
|
+
timeout — a wedged run and a slow-but-live one look identical to `sleep`.
|
|
458
|
+
4. **One verdict shape has to render byte-identically across hosts** to be a
|
|
459
|
+
standard a fleet can depend on, instead of a different ad-hoc check per tool.
|
|
460
|
+
5. **A skeptic-checkable signed receipt** (`dos attest`) is something a bash
|
|
461
|
+
script the agent's own host runs simply cannot mint.
|
|
462
|
+
6. **`commit-audit` (claim-vs-diff) isn't greppable** — it reads what the diff
|
|
463
|
+
*did* against what the subject *said*.
|
|
464
|
+
|
|
465
|
+
The load-bearing point under all six: a script your agent's own host runs can't
|
|
466
|
+
credibly be *the part that doesn't believe the agent*. The whole value is being
|
|
467
|
+
the layer that is structurally not talked past — and that's exactly the thing a
|
|
468
|
+
home-grown check, run inside the loop it's auditing, can't be.
|
|
469
|
+
|
|
470
|
+
This also answers the most sophisticated objection — **"doesn't durable
|
|
471
|
+
execution (Temporal) already do this?"** Durable execution guarantees the step
|
|
472
|
+
*ran* and durably records what it *returned*; if an agent step returns
|
|
473
|
+
`"deployed successfully"`, the history correctly records that the step *said
|
|
474
|
+
so*. DOS adjudicates exactly that residue: the claim against the world. They're
|
|
475
|
+
orthogonal layers. (The full comparison — evals, guardrails, in-toto, CI — is
|
|
476
|
+
in **[docs/ALTERNATIVES.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/ALTERNATIVES.md)**.)
|
|
477
|
+
|
|
421
478
|
The referee grows along two axes: deterministic *verdicts* that read artifacts
|
|
422
479
|
(`verify`, `liveness`, `scope`), and provider-backed *judges* — a model, a
|
|
423
480
|
debate — that rule on what no deterministic check can, kept outside the kernel
|
|
@@ -496,13 +553,13 @@ run (every number, hash, and ID is a verbatim read-off — never a hand-typed
|
|
|
496
553
|
dramatization):
|
|
497
554
|
|
|
498
555
|
<p align="center">
|
|
499
|
-
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/benchmark/agentprocessbench/writeadmit/gate-moment.svg" alt="The DOS write-admission gate catching a real over-claim
|
|
556
|
+
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/benchmark/agentprocessbench/writeadmit/gate-moment.svg" alt="The DOS write-admission gate catching a real over-claim: a live agent reports a booking it never made, the environment DB-hash (gold vs. actual) shows the booking is not in the database, and the gate BLOCKS the confident-but-false write before it reaches the next agent. The numbers are in the bullets and caption." width="100%">
|
|
500
557
|
<br>
|
|
501
558
|
<sub><em><strong>It catches the lie and blocks it.</strong> A confident booking, refuted by the DB-hash the agent couldn't author, blocked before a downstream agent inherits the phantom. <a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/benchmark/agentprocessbench/writeadmit/gate_visual.html">Step through it locally</a> (an HTML walkthrough — clone and open in a browser; GitHub shows its source).</em></sub>
|
|
502
559
|
</p>
|
|
503
560
|
|
|
504
561
|
<p align="center">
|
|
505
|
-
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/benchmark/agentprocessbench/writeadmit/f2-moment.svg" alt="The DOS coordination payoff:
|
|
562
|
+
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/benchmark/agentprocessbench/writeadmit/f2-moment.svg" alt="The DOS coordination payoff: two live agents act on one shared reservation, neither aware of the other. Under naive replay the second agent's stale write silently overwrites the first's cancellation — a real lost update. Under the arbiter, the region is leased to the first agent, the second's overlapping lease is refused, it re-plans against the true post-cancellation state, and no update is lost. The numbers are in the bullets and caption." width="100%">
|
|
506
563
|
<br>
|
|
507
564
|
<sub><em><strong>It prevents the collision.</strong> A stale add-bag clobbers a cancellation under naive replay; the arbiter serializes the two agents on the same region so neither overwrites the other. <a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/benchmark/agentprocessbench/writeadmit/f2_visual.html">Step through it locally</a> (an HTML walkthrough — clone and open in a browser).</em></sub>
|
|
508
565
|
</p>
|
|
@@ -519,8 +576,10 @@ prevented at a 32-agent fleet) projects these real per-run rates onto fleet
|
|
|
519
576
|
math — it's geometry on top of measured numbers, not a measured fleet run.
|
|
520
577
|
|
|
521
578
|
**🎲 A bet — stated as one.** Where this goes if the floor holds: a frozen,
|
|
522
|
-
cross-vendor trust standard (the "deny" message
|
|
523
|
-
across
|
|
579
|
+
cross-vendor trust standard (the "deny" message already renders from one
|
|
580
|
+
verdict across every wired host, and is byte-identical on the ones that share
|
|
581
|
+
Claude Code's envelope — Codex and Claude Cowork, pinned in
|
|
582
|
+
`tests/test_hook_dialect.py` — a de-facto standard waiting to be named),
|
|
524
583
|
a shared arbiter for real-world effects, the claim-vs-reality corpus only a
|
|
525
584
|
neutral party can hold, and a notary that proves what an agent did *to a
|
|
526
585
|
skeptic who wasn't in the room* (the mechanism already ships — `dos attest`
|
|
@@ -587,6 +646,38 @@ thinks to. The per-host wiring for Cursor / Codex / Gemini is in
|
|
|
587
646
|
**[the MCP README](https://github.com/anthony-chaudhary/dos-kernel/blob/master/src/dos_mcp/README.md)** — all four are MCP clients, so this
|
|
588
647
|
works on every one of them with zero code.
|
|
589
648
|
|
|
649
|
+
**Building a legal agent?** `dos_citation_resolve` is the same lie-detector
|
|
650
|
+
aimed at the failure class that gets lawyers sanctioned: a fabricated case
|
|
651
|
+
citation (the *Mata v. Avianca* class). Wired in as an MCP tool, it checks each
|
|
652
|
+
cite the agent emits *before* the brief is written — a pre-effect gate, not a
|
|
653
|
+
post-hoc document scan — by resolving it against a third-party reporter the
|
|
654
|
+
model didn't author (CourtListener), and abstains rather than guess when it has
|
|
655
|
+
no corpus access. It witnesses existence and quote-fidelity, never whether the
|
|
656
|
+
case supports your argument. The sourced walkthroughs:
|
|
657
|
+
[catch fabricated citations inside your agent](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/answers/catch-fabricated-legal-citations-in-my-ai-agent.md),
|
|
658
|
+
[avoid an AI-citation sanction](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/answers/largest-ai-hallucination-sanction-how-to-avoid.md),
|
|
659
|
+
and [the ABA Opinion 512 duty](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/answers/aba-512-verify-ai-citations-duty.md).
|
|
660
|
+
|
|
661
|
+
**Gemini CLI users get a one-liner.** DOS ships a `gemini-extension.json`
|
|
662
|
+
manifest at the repo root, so the whole referee — the MCP server plus a context
|
|
663
|
+
file that tells the model to gate its own done-claims — installs as one Gemini
|
|
664
|
+
extension, no clone and no config edit:
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
pip install 'dos-kernel[mcp]' # the server the extension launches
|
|
668
|
+
gemini extensions install https://github.com/anthony-chaudhary/dos-kernel
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
The same manifest is what Google's auto-indexed
|
|
672
|
+
[extensions gallery](https://geminicli.com/extensions/) crawls, so the listing
|
|
673
|
+
is automatic.
|
|
674
|
+
|
|
675
|
+
**Browsing an MCP registry?** A repo-root `smithery.yaml` lists DOS on
|
|
676
|
+
[Smithery](https://smithery.ai), the de-facto MCP-server registry. It declares a
|
|
677
|
+
**local stdio** launch (`uvx --from 'dos-kernel[mcp]' dos-mcp`) on purpose: DOS
|
|
678
|
+
adjudicates *your* git repo, so it runs next to it rather than in a hosted
|
|
679
|
+
sandbox that couldn't see your history. No API key — DOS is deterministic.
|
|
680
|
+
|
|
590
681
|
### …then make the verdict *act* (hooks)
|
|
591
682
|
|
|
592
683
|
To go from "the agent can ask" to "the host won't let a bad call through", wire
|
|
@@ -604,6 +695,15 @@ dos init --hooks antigravity . # .agents/hooks.json
|
|
|
604
695
|
dos init --hooks claude-cowork . # the SAME .claude/settings.json Claude Code reads
|
|
605
696
|
```
|
|
606
697
|
|
|
698
|
+
The list above is illustrative, not authoritative — the live matrix is a verb:
|
|
699
|
+
`dos hosts` prints every host DOS can wire, sourced from the registries themselves
|
|
700
|
+
(`dos hosts --json` for tooling), so the table never rots out of sync with what
|
|
701
|
+
`dos init --hooks` actually installs. Each row carries the host's tier, the events
|
|
702
|
+
it binds, its dialect, its config path, the exact wiring command, and the host's
|
|
703
|
+
own caveat (Codex's partial tool coverage, Cowork's not-yet-firing hooks). A host
|
|
704
|
+
with **no** row is itself the signal: it has no hook seam, so its DOS surface is
|
|
705
|
+
the advisory one (MCP + skills).
|
|
706
|
+
|
|
607
707
|
That binds three shipped hooks: `pretool` denies a structurally-refused call
|
|
608
708
|
before it runs, `stop` refuses a stop on an unverified "done," `posttool`
|
|
609
709
|
re-surfaces a stalled stream. This is the **enforcement** path (the *host*
|
|
@@ -626,45 +726,53 @@ honest caveat, carried on the install note itself: the Cowork app doesn't
|
|
|
626
726
|
*fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
|
|
627
727
|
Cowork's working DOS surface is the advisory one above.)
|
|
628
728
|
|
|
629
|
-
Under the installer sits a pluggable dialect seam
|
|
630
|
-
once, then rendered into whatever JSON shape
|
|
631
|
-
(
|
|
632
|
-
|
|
633
|
-
dialect
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
729
|
+
Under the installer sits a pluggable **dialect seam**: the verdict is decided
|
|
730
|
+
once, then rendered into whatever JSON shape each host parses — so a host the
|
|
731
|
+
installer doesn't cover yet (a seventh dialect speaks **Hermes**) is a driver,
|
|
732
|
+
never a kernel edit. Its honest flip side: a host with *no* hook seam gets *no*
|
|
733
|
+
dialect. ByteDance's **Trae** ships no user-scriptable hook system, so DOS binds
|
|
734
|
+
it **advisory-only** (MCP + a verify-before-"done" rule + the skills) and
|
|
735
|
+
`dos init --hooks trae` fails loud rather than writing an invented envelope Trae
|
|
736
|
+
would never read — fake enforcement is the exact failure the seam prevents.
|
|
737
|
+
([docs/217](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/217_the-cross-vendor-hook-dialect-seam.md) ·
|
|
738
|
+
[docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md))
|
|
739
|
+
|
|
740
|
+
Because these hooks run on *every* tool call, the hot-path predicates are
|
|
741
|
+
reimplemented in a native Go `dos-hook` binary — byte-identical to the Python
|
|
742
|
+
kernel on the gated decision (the docs/124 parity contract) but ~16–43× faster
|
|
743
|
+
(~10 ms vs. interpreter cold-start), bundled in the per-platform wheels with a
|
|
744
|
+
clean fall-back to the always-available pure-Python path on any platform without
|
|
745
|
+
it ([docs/124](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/124_the-go-core-build-plan-and-the-parity-contract.md),
|
|
746
|
+
[docs/125](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/125_go-hook-fastpath-build-plan.md),
|
|
747
|
+
[docs/270](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/270_go-hook-fastpath-benchmarks.md),
|
|
748
|
+
[docs/286](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/286_shipping-the-go-binary-through-pypi-per-platform-wheels.md)).
|
|
749
|
+
|
|
750
|
+
### …and when your host has neither (the exit-code tier)
|
|
751
|
+
|
|
752
|
+
MCP is the **advisory** tier (the agent *asks*); hooks are the **enforcement**
|
|
753
|
+
tier (the host *blocks*). Both ask DOS to speak the host's language — an MCP
|
|
754
|
+
client, or a per-host hook dialect. The third tier asks nothing: **any
|
|
755
|
+
environment that runs a command** reads a `dos` verb's exit code, because every
|
|
756
|
+
verb already follows the universal Unix convention (`0` = ok, non-zero = a
|
|
757
|
+
verdict). The verdict *is* the exit code.
|
|
758
|
+
|
|
759
|
+
That tier is what reaches the long tail no dialect will ever cover, and it is
|
|
760
|
+
the **honest** surface for a hook-less host (Windsurf, Warp, Zed today): rather
|
|
761
|
+
than invent a fake enforcement envelope a host would never read, DOS rides the
|
|
762
|
+
one contract every runner already has.
|
|
763
|
+
|
|
764
|
+
```bash
|
|
765
|
+
# aider runs --test-cmd after every edit and feeds a non-zero exit back to the
|
|
766
|
+
# model's auto-fix loop — so a kernel verdict drops into a top-tier CLI agent
|
|
767
|
+
# with NO hook machinery and NO MCP client, in one flag:
|
|
768
|
+
aider --test-cmd 'dos commit-audit --workspace . HEAD' --auto-test
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
The same one line is a `pre-push` gate, a Jenkins/Buildkite stage, a `Makefile`
|
|
772
|
+
target, or a `package.json` script. The full set of runnable recipes — aider, a
|
|
773
|
+
git `pre-push` hook, and a generic command step, plus `dos hook-exit` for
|
|
774
|
+
wrapping a *non-DOS* script onto the intervention ladder — is
|
|
775
|
+
**[the exit-code tier cookbook](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-exit-code-tier.md)**.
|
|
668
776
|
|
|
669
777
|
*Next level up — what to watch once a fleet runs through these hooks: [Operating a fleet](#operating-a-fleet).*
|
|
670
778
|
|
|
@@ -729,8 +837,8 @@ contract, the JUDGE-rung seam. The full map is in **[CLAUDE.md](https://github.c
|
|
|
729
837
|
|
|
730
838
|
## Install
|
|
731
839
|
|
|
732
|
-
Pick the row that matches how you work — the full
|
|
733
|
-
channel, upgrade/uninstall, WSL, troubleshooting) is in
|
|
840
|
+
Requires **Python 3.11+**. Pick the row that matches how you work — the full
|
|
841
|
+
matrix (every OS, every channel, upgrade/uninstall, WSL, troubleshooting) is in
|
|
734
842
|
**[docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)**:
|
|
735
843
|
|
|
736
844
|
```bash
|
|
@@ -769,29 +877,21 @@ its own install location, so the ground truth stays legible as the codebase
|
|
|
769
877
|
grows. (The full separation contract — mechanism in the package, policy in the
|
|
770
878
|
workspace's `dos.toml` — is in **[CLAUDE.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/CLAUDE.md)**.)
|
|
771
879
|
|
|
772
|
-
For most repos that one `dos.toml` is the whole policy surface
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
imported by the kernel. Copy [`dos/drivers/workshop.py`](https://github.com/anthony-chaudhary/dos-kernel/blob/master/src/dos/drivers/workshop.py)
|
|
778
|
-
as the template; the full driver/plugin map is in **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)**.
|
|
880
|
+
For most repos that one `dos.toml` is the whole policy surface. When your lanes
|
|
881
|
+
must be *computed* rather than listed, or you add a provider-backed JUDGE, you
|
|
882
|
+
write a small **driver** instead — loaded by name, never imported by the kernel;
|
|
883
|
+
the driver/plugin map and a copy-me template are in
|
|
884
|
+
**[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)**.
|
|
779
885
|
|
|
780
886
|
### Claude Code plugin — hooks + MCP + skills in one install
|
|
781
887
|
|
|
782
888
|
If you drive a fleet with Claude Code, the lowest-friction way to bind the
|
|
783
889
|
verdict to the runtime is the bundled plugin under
|
|
784
|
-
[`claude-plugin/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/claude-plugin) — it packages all three runtime surfaces
|
|
785
|
-
once:
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
claim) — all fail-safe (they emit nothing and exit 0 on any error, so they never
|
|
790
|
-
break a turn);
|
|
791
|
-
- the **MCP server** (`dos_verify` / `dos_arbitrate` / `dos_commit_audit` /
|
|
792
|
-
`dos_refuse_reasons` … as tools the model calls directly);
|
|
793
|
-
- the **generic skill pack** (the domain-free dispatch screenplays), namespaced as
|
|
794
|
-
`/dos-kernel:dos-next-up`, `/dos-kernel:dos-dispatch`, …
|
|
890
|
+
[`claude-plugin/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/claude-plugin) — it packages all three runtime surfaces
|
|
891
|
+
at once: the **hooks** (`PreToolUse` deny · `PostToolUse` sensor · `Stop` verify,
|
|
892
|
+
all fail-safe), the **MCP server** (`dos_verify` / `dos_arbitrate` / … as tools
|
|
893
|
+
the model calls), and the **generic skill pack** (the domain-free dispatch
|
|
894
|
+
screenplays, namespaced `/dos-kernel:dos-next-up`, …):
|
|
795
895
|
|
|
796
896
|
```bash
|
|
797
897
|
# 1. The plugin ships JSON + markdown; the brains ship as the pip package, so
|
|
@@ -813,90 +913,39 @@ with the source are in **[claude-plugin/README.md](https://github.com/anthony-ch
|
|
|
813
913
|
|
|
814
914
|
## CLI
|
|
815
915
|
|
|
816
|
-
One `dos` entrypoint over the syscalls
|
|
817
|
-
|
|
916
|
+
One `dos` entrypoint over the syscalls. Here are the dozen verbs you reach for
|
|
917
|
+
first (see [QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md) for
|
|
918
|
+
a runnable tour) — the **full reference, every verb grouped, is
|
|
919
|
+
[docs/CLI-REFERENCE.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/CLI-REFERENCE.md)**:
|
|
818
920
|
|
|
819
921
|
```bash
|
|
820
|
-
# --- the
|
|
922
|
+
# --- the core verdicts ---
|
|
821
923
|
dos verify PLAN PHASE # truth: did (plan,phase) ship? (works with no plan)
|
|
822
924
|
dos commit-audit [REF] [--sweep] # truth: does a commit's SUBJECT match its own diff? (--sweep = drift rate over a range)
|
|
823
|
-
dos verify-result --transcript T # fold-site witness: did a subagent's terminal record DIE (harness 429/quota)? (exit 3 = DEAD)
|
|
824
|
-
dos coverage --declared N # fan-out coverage: how many of N declared workers REALLY returned a result vs died?
|
|
825
925
|
dos liveness --run-id R --start-sha S # temporal: ADVANCING / SPINNING / STALLED?
|
|
826
|
-
dos
|
|
827
|
-
dos
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
dos
|
|
831
|
-
dos
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
dos lease-lane {acquire,release,heartbeat,live} # durable lane lease over the pure arbiter (write-back to the WAL)
|
|
835
|
-
dos run-id mint PROCESS # mint a correlation run-id
|
|
836
|
-
dos id-alloc {allocate,peek} SCOPE # atomically allocate a never-reused, monotonic id for a scope
|
|
837
|
-
dos journal {tail,replay,seq,compact} # the lane write-ahead log
|
|
838
|
-
dos halt --handle H # the reap verb: emit the stop-plan for a live run/lease
|
|
839
|
-
dos pickable / enumerate / cooldown / reconcile # picker substrate: anything pickable? why-not? tried recently? did the claim hold?
|
|
840
|
-
|
|
841
|
-
# --- workspace & inspection ---
|
|
926
|
+
dos status --run-id R # one fail-closed digest of a run (liveness + verified progress + lease)
|
|
927
|
+
dos resume --run-id R # replay a run's intent ledger, re-verify against git, PROPOSE the continuation
|
|
928
|
+
|
|
929
|
+
# --- admission (let a lane in, or refuse the collision) ---
|
|
930
|
+
dos arbitrate --lane L --kind K --leases '[…]' # may a lane start without collision? (decision only)
|
|
931
|
+
dos scope-gate --lane L [--staged] # binding pre-effect scope gate: may this PROPOSED write land? (ALLOW/REFUSE)
|
|
932
|
+
|
|
933
|
+
# --- workspace & live projections ---
|
|
842
934
|
dos init [DIR] # scaffold a dos.toml workspace config
|
|
843
935
|
dos doctor [--json] [--check] # report the active workspace + taxonomy + predicates
|
|
844
|
-
dos lint [--strict] [--json] # dead policy in this workspace's own dos.toml? (unreachable lanes, dangling refs)
|
|
845
|
-
dos man {wedge,lane} [ID] # the self-describing manual over the registries
|
|
846
|
-
dos exit-codes [VERB] # print the verdict-IS-the-exit-code table (all verbs or one)
|
|
847
|
-
dos gate PACKET # typed empty-packet verdict (LIVE/DRAIN/STALE-STAMP/…)
|
|
848
|
-
dos judge wedge RUN_TS # adjudicate a no-pick verdict (deterministic)
|
|
849
|
-
dos judge-eval --judge N --cases C # score a JUDGE-rung adjudicator against labelled claims
|
|
850
|
-
dos overlap-eval --policy P --cases C # score an overlap scorer by false-admit rate (the disjointness backtest)
|
|
851
|
-
dos intervention-eval --cases C # score an intervention policy by NET task delta (not verdict accuracy)
|
|
852
|
-
dos tool-stream-eval --cases C # score a stall-reader policy by NET recovery (not detection accuracy)
|
|
853
|
-
dos precursor-gate-eval --cases C # score a precursor grammar by recall vs false-refute waste
|
|
854
|
-
dos memory {recall,verify} # re-verify recalled agent-memory at read time (RECALL_FRESH/STALE/UNVERIFIABLE)
|
|
855
|
-
dos health --lane L # pre-dispatch lane-health gate (overlap + recurring-blocker → route)
|
|
856
|
-
dos scout # pre-dispatch chooser: pick the next activity before leasing a lane
|
|
857
|
-
dos trace RUN_ID # walk one run across spine + intent ledger + WAL + git, joined by run_id
|
|
858
|
-
|
|
859
|
-
# --- agent-host binding (Claude Code / MCP) ---
|
|
860
|
-
dos guard [--verify-on-stop] -- CMD… # wrap a headless agent launch: inject the DOS MCP server (+ optional verify-on-stop Stop hook)
|
|
861
|
-
dos hook {pretool,posttool,stop} # the live agent-host hook surface (PreToolUse deny / PostToolUse sensor / Stop verify)
|
|
862
|
-
|
|
863
|
-
# --- live projections (read-only TUIs) ---
|
|
864
936
|
dos top [--once] [--json] # live fleet watchdog: lanes, leases, verdicts, commits
|
|
865
|
-
dos decisions [N] # the operator-decision queue (
|
|
866
|
-
dos plan [--once] [--json] #
|
|
867
|
-
dos watch --track R [--budget-ms M] # the watchdog driver: poll liveness for tracked runs + propose halts on spin/hang
|
|
868
|
-
dos loop --target N [--watch] [--json] # supervisor (init/PID-1): keep N dispatch-loops alive — emits a spawn/reap/flag plan
|
|
869
|
-
|
|
870
|
-
# --- loop-economics & reliability verdicts (pure; exit code is the verdict) ---
|
|
871
|
-
dos productivity --deltas 5,3,1,0 # is the run still doing work? PRODUCTIVE / DIMINISHING / STALLED
|
|
872
|
-
dos efficiency --work W --tokens N # did the tokens buy work? EFFICIENT / COSTLY / WASTEFUL
|
|
873
|
-
dos breaker --consecutive N --max-consecutive M # has this failure class tripped? CLOSED / OPEN (+ escalation rung)
|
|
874
|
-
dos hook-exit --code N # map a shell hook's exit code → PASS / BLOCK / WARN
|
|
875
|
-
dos exec-capability --command "…" # does this command grant arbitrary exec? BOUNDED / GRANTS_ARBITRARY_EXEC
|
|
876
|
-
dos improve --suite-passed --truth-clean --work W --baseline-work B # self-improving loop: KEEP / REVERT / ESCALATE
|
|
877
|
-
dos reward --claim --witness {confirm,refute,none} # may a fine-tune TRAIN on this trajectory? ACCEPT / REJECT_POISON
|
|
878
|
-
|
|
879
|
-
# --- observability: the verdict journal → your dashboards ---
|
|
880
|
-
dos observe [--run R] [--json] # project the verdict journal: every kernel adjudication, folded by run/syscall/verdict
|
|
881
|
-
dos helped [--since TS] [--json] # the operator rollup: how many things DOS productively caught for you
|
|
882
|
-
dos export [--to file|statsd|otlp] [--since SEQ] # drain the journal outward (Datadog / Honeycomb / Grafana); null = report only
|
|
883
|
-
dos notify {decisions,top} [--notifier slack|webhook --channel NAME] # push what-needs-a-human / what's-running to where the operator is; null = render only
|
|
884
|
-
|
|
885
|
-
# --- portable proof (third-party verifiable, no loop access) ---
|
|
886
|
-
dos attest --claim KEY {--accept-cmd CMD | --before P --after P} # mint an HMAC-signed receipt over an effect-witness verdict
|
|
887
|
-
dos verify-receipt --receipt R # the skeptic's side: check the signature with the shared key alone (fails LOUD on tamper)
|
|
888
|
-
|
|
889
|
-
# --- cross-project (machine-local index) ---
|
|
890
|
-
dos projects # the projects DOS has served
|
|
891
|
-
dos learn AXIS # aggregates over resolved decisions
|
|
892
|
-
dos reindex # rebuild the central store from the .dos/ dirs
|
|
937
|
+
dos decisions [N] # the operator-decision queue (what's waiting on you)
|
|
938
|
+
dos plan [--once] [--json] # every phase: the plan's claim vs the oracle's verdict
|
|
893
939
|
```
|
|
894
940
|
|
|
895
941
|
Most verbs take `--workspace .` (or honor `$DISPATCH_WORKSPACE` / cwd) and
|
|
896
942
|
`--json` for machine-readable output. For verdict-bearing commands (`verify` /
|
|
897
|
-
`liveness` / `gate`) **the exit code is the verdict
|
|
898
|
-
|
|
899
|
-
|
|
943
|
+
`liveness` / `gate`) **the exit code is the verdict** (`dos exit-codes` prints
|
|
944
|
+
the table). The other ~55 verbs — the picker substrate, loop-economics
|
|
945
|
+
verdicts, observability exporters, portable-proof attestation, the eval
|
|
946
|
+
harnesses — and the pluggable `--output <name>` renderer
|
|
947
|
+
([HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)) are all in
|
|
948
|
+
**[docs/CLI-REFERENCE.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/CLI-REFERENCE.md)**.
|
|
900
949
|
|
|
901
950
|
### Three live projections (read-only TUIs)
|
|
902
951
|
|
|
@@ -1029,11 +1078,32 @@ for a copy-me skeleton.
|
|
|
1029
1078
|
- **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
|
|
1030
1079
|
verify an agent's claim?", "does it need an LLM?"), each answered in one
|
|
1031
1080
|
self-contained block.
|
|
1081
|
+
- **[docs/answers/](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/answers/README.md)** — the answer corpus: one
|
|
1082
|
+
sourced, self-contained page per high-intent question ("how to verify an AI
|
|
1083
|
+
agent actually did the work", "how to stop two AI agents overwriting each
|
|
1084
|
+
other"), each carrying an evidence table where every number links to the file
|
|
1085
|
+
that proves it.
|
|
1086
|
+
- **[docs/ALTERNATIVES.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/ALTERNATIVES.md)** — DOS and the
|
|
1087
|
+
alternatives: evals, framework guardrails, Temporal, in-toto, plain CI —
|
|
1088
|
+
what each does well, what DOS adds, and when NOT to use DOS.
|
|
1032
1089
|
- **[docs/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/README.md)** — the docs index (guides vs. design notes
|
|
1033
1090
|
vs. the dated build-journal; the numbers are chronology, not a reading order).
|
|
1034
1091
|
- **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)** — extend DOS without forking it.
|
|
1092
|
+
- **[docs/DOT_DOS.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/DOT_DOS.md)** — the `.dos`
|
|
1093
|
+
surface: what that directory is, why it's safe to delete, and the
|
|
1094
|
+
repo-resident state contract (policy in `dos.toml`, fossils under `.dos/`,
|
|
1095
|
+
verdicts in git) that keeps every host adapter thin.
|
|
1096
|
+
- **[docs/STABILITY.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/STABILITY.md)** — the compatibility
|
|
1097
|
+
promise: what you may depend on, what SemVer means here, how deprecations
|
|
1098
|
+
are announced (`DosDeprecationWarning`, a two-minor-release window), and
|
|
1099
|
+
what will never break.
|
|
1035
1100
|
- **[CLAUDE.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/CLAUDE.md)** / **[CONTRIBUTING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/CONTRIBUTING.md)** — the
|
|
1036
1101
|
architecture contract and how to send a change.
|
|
1102
|
+
- **[verify-action/](https://github.com/anthony-chaudhary/dos-kernel/blob/master/verify-action/README.md)** — the CI gate: a
|
|
1103
|
+
composite Action and a reusable workflow that run `dos commit-audit` on every
|
|
1104
|
+
PR and merge-queue group and post the verdict as the named **dos-verify**
|
|
1105
|
+
status check; make it required and GitHub enforces what the kernel decides
|
|
1106
|
+
(the *verified by DOS* badge above is this gate on the kernel's own repo).
|
|
1037
1107
|
- **[docs/releases/](https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases)** — per-version release notes (the changelog).
|
|
1038
1108
|
- **[The website](https://anthony-chaudhary.github.io/dos-kernel/)** — this page,
|
|
1039
1109
|
condensed to one screen (good for sending to someone).
|
|
@@ -1052,12 +1122,19 @@ back verbatim:
|
|
|
1052
1122
|
(liveness), an [infra monorepo](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/05_infra-monorepo.md) (refusals).
|
|
1053
1123
|
- [**Debug a stuck fleet** + FAQ](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/06_debug-a-stuck-fleet.md) —
|
|
1054
1124
|
symptom → the one command that diagnoses it.
|
|
1055
|
-
-
|
|
1056
|
-
[CI / MCP integration](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-ci-integration.md),
|
|
1125
|
+
- Four cookbooks: [from Python](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-python-api.md),
|
|
1126
|
+
[CI / MCP integration](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-ci-integration.md),
|
|
1127
|
+
[the exit-code tier](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-exit-code-tier.md) — *any* command-running
|
|
1128
|
+
environment (aider, a git `pre-push`, a generic runner) reads a `dos` verb's
|
|
1129
|
+
exit code, no hook adapter or MCP client needed — and
|
|
1057
1130
|
[fleet frameworks](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-fleet-frameworks.md) — LangGraph,
|
|
1058
1131
|
CrewAI, AutoGen, the OpenAI/Claude Agents SDK — with every framework recipe also
|
|
1059
1132
|
shipped as a runnable, suite-pinned file under
|
|
1060
1133
|
[`examples/fleet_frameworks/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/fleet_frameworks).
|
|
1134
|
+
Two seats ship as drivers in the package itself ([docs/305](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/305_guardrail-seat-pair-openai-agents-and-crewai-plan.md)):
|
|
1135
|
+
an OpenAI Agents SDK output guardrail that trips on a deliverable git can't
|
|
1136
|
+
see, and a CrewAI task guardrail that turns the retry loop into a
|
|
1137
|
+
do-the-work loop — one import line each.
|
|
1061
1138
|
- [**Wire DOS into a Hermes / OpenClaw swarm**](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/hermes_integration) —
|
|
1062
1139
|
the offline, A/B-measured swarm-runtime example: the `exec-capability` gate
|
|
1063
1140
|
refuses a prompt-injected command before it runs (real at a single agent), and
|