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.
Files changed (547) hide show
  1. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/PKG-INFO +224 -147
  2. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/README.md +221 -146
  3. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/pyproject.toml +40 -1
  4. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/__init__.py +16 -1
  5. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_tree.py +23 -11
  6. dos_kernel-0.27.0/src/dos/apply_gate.py +396 -0
  7. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/arbiter.py +31 -0
  8. dos_kernel-0.27.0/src/dos/child_refusals.py +196 -0
  9. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/cli.py +2998 -107
  10. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/commit_audit.py +233 -36
  11. dos_kernel-0.27.0/src/dos/concurrency_class.py +368 -0
  12. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/config.py +77 -3
  13. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/config_lint.py +50 -2
  14. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/decisions.py +412 -3
  15. dos_kernel-0.27.0/src/dos/deprecation.py +68 -0
  16. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/dispatch_top.py +517 -1
  17. dos_kernel-0.27.0/src/dos/dispatch_top_tui.py +255 -0
  18. dos_kernel-0.27.0/src/dos/drivers/_effect_gate.py +376 -0
  19. dos_kernel-0.27.0/src/dos/drivers/account_switcher.py +887 -0
  20. dos_kernel-0.27.0/src/dos/drivers/content_diff.py +506 -0
  21. dos_kernel-0.27.0/src/dos/drivers/crewai_guardrail.py +85 -0
  22. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_otlp.py +34 -3
  23. dos_kernel-0.27.0/src/dos/drivers/memory_mem0.py +158 -0
  24. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/memory_recall.py +662 -35
  25. dos_kernel-0.27.0/src/dos/drivers/merge_gate.py +170 -0
  26. dos_kernel-0.27.0/src/dos/drivers/model_reroute.py +251 -0
  27. dos_kernel-0.27.0/src/dos/drivers/nemo_action.py +102 -0
  28. dos_kernel-0.27.0/src/dos/drivers/openai_agents_guardrail.py +112 -0
  29. dos_kernel-0.27.0/src/dos/drivers/pre_commit.py +67 -0
  30. dos_kernel-0.27.0/src/dos/drivers/provider_ledger.py +655 -0
  31. dos_kernel-0.27.0/src/dos/drivers/witnessed_leak_test.py +890 -0
  32. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/efficiency.py +57 -0
  33. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/efficiency_trend.py +57 -0
  34. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/event_severity.py +35 -2
  35. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/help_summary.py +330 -54
  36. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/home.py +2 -1
  37. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_dialect.py +7 -1
  38. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_install.py +181 -0
  39. dos_kernel-0.27.0/src/dos/hook_observation.py +690 -0
  40. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/improve.py +57 -0
  41. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intent_ledger.py +16 -1
  42. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_journal.py +186 -6
  43. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_lease.py +21 -0
  44. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/liveness.py +9 -0
  45. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/loop_decide.py +101 -2
  46. dos_kernel-0.27.0/src/dos/memory_stores.py +185 -0
  47. dos_kernel-0.27.0/src/dos/mergegate.py +348 -0
  48. dos_kernel-0.27.0/src/dos/model_call.py +493 -0
  49. dos_kernel-0.27.0/src/dos/model_health.py +559 -0
  50. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/notify.py +58 -0
  51. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/oracle.py +234 -0
  52. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/override_facts.py +81 -0
  53. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/phase_shipped.py +104 -3
  54. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pickable.py +54 -0
  55. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_board.py +26 -0
  56. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pretool_sensor.py +511 -4
  57. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/productivity.py +57 -0
  58. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/provider_limit.py +168 -3
  59. dos_kernel-0.27.0/src/dos/pulse.py +240 -0
  60. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reasons.py +29 -0
  61. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/result_state.py +64 -0
  62. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/resume.py +188 -0
  63. dos_kernel-0.27.0/src/dos/retire.py +385 -0
  64. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/run_id.py +33 -0
  65. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scout.py +57 -0
  66. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/self_modify.py +13 -11
  67. dos_kernel-0.27.0/src/dos/session_digest.py +209 -0
  68. dos_kernel-0.27.0/src/dos/skill_grade.py +473 -0
  69. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/EXAMPLES.md +28 -1
  70. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch/SKILL.md +1 -1
  71. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +43 -3
  72. dos_kernel-0.27.0/src/dos/skills/dos-goal-fleet/SKILL.md +329 -0
  73. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-goal-gate/SKILL.md +28 -0
  74. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-next-up/SKILL.md +6 -2
  75. dos_kernel-0.27.0/src/dos/skills/dos-plan-price/SKILL.md +195 -0
  76. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan-loop/SKILL.md +14 -0
  77. dos_kernel-0.27.0/src/dos/skills/dos-skillify/SKILL.md +183 -0
  78. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-supervise-loop/SKILL.md +41 -5
  79. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/stamp.py +24 -7
  80. dos_kernel-0.27.0/src/dos/testing/__init__.py +71 -0
  81. dos_kernel-0.27.0/src/dos/testing/doubles.py +222 -0
  82. dos_kernel-0.27.0/src/dos/testing/suite.py +392 -0
  83. dos_kernel-0.27.0/src/dos/testing/tester.py +122 -0
  84. dos_kernel-0.27.0/src/dos/verdict_census.py +381 -0
  85. dos_kernel-0.27.0/src/dos/verified.py +134 -0
  86. dos_kernel-0.27.0/src/dos/work_account.py +263 -0
  87. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/PKG-INFO +224 -147
  88. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/SOURCES.txt +123 -1
  89. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/entry_points.txt +5 -0
  90. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/requires.txt +3 -0
  91. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/server.py +28 -0
  92. dos_kernel-0.27.0/tests/test_account_switcher.py +678 -0
  93. dos_kernel-0.27.0/tests/test_aeo_tracker.py +238 -0
  94. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agent_surface.py +57 -10
  95. dos_kernel-0.27.0/tests/test_answers.py +122 -0
  96. dos_kernel-0.27.0/tests/test_apply_cli.py +178 -0
  97. dos_kernel-0.27.0/tests/test_apply_gate.py +213 -0
  98. dos_kernel-0.27.0/tests/test_apply_gate_fence.py +336 -0
  99. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_arbiter.py +243 -0
  100. dos_kernel-0.27.0/tests/test_backlog_triage.py +353 -0
  101. dos_kernel-0.27.0/tests/test_braintrust_scorer_example.py +107 -0
  102. dos_kernel-0.27.0/tests/test_build_skill_dos_page.py +121 -0
  103. dos_kernel-0.27.0/tests/test_burn_in_farm_playbook.py +173 -0
  104. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_canonical_example_lockstep.py +1 -0
  105. dos_kernel-0.27.0/tests/test_caught_lie_cast.py +96 -0
  106. dos_kernel-0.27.0/tests/test_child_refusals.py +241 -0
  107. dos_kernel-0.27.0/tests/test_cleanup_sweep.py +218 -0
  108. dos_kernel-0.27.0/tests/test_cli_completion_verb.py +216 -0
  109. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_ergonomics.py +98 -2
  110. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_pickable_enumerate.py +29 -0
  111. dos_kernel-0.27.0/tests/test_clobber_demo_contract.py +134 -0
  112. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_commit_audit.py +268 -14
  113. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_concurrency_class.py +93 -0
  114. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_config_lint.py +33 -0
  115. dos_kernel-0.27.0/tests/test_conformance_plugin_examples.py +85 -0
  116. dos_kernel-0.27.0/tests/test_conformance_suite.py +193 -0
  117. dos_kernel-0.27.0/tests/test_content_diff.py +380 -0
  118. dos_kernel-0.27.0/tests/test_crewai_guardrail.py +115 -0
  119. dos_kernel-0.27.0/tests/test_cross_host_continuity.py +192 -0
  120. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_decisions.py +311 -0
  121. dos_kernel-0.27.0/tests/test_deprecation.py +109 -0
  122. dos_kernel-0.27.0/tests/test_dev_runner.py +70 -0
  123. dos_kernel-0.27.0/tests/test_discoverability_inventory.py +182 -0
  124. dos_kernel-0.27.0/tests/test_dispatch_top.py +1068 -0
  125. dos_kernel-0.27.0/tests/test_docs_links.py +96 -0
  126. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_docs_version_drift.py +3 -0
  127. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_doctor_json.py +39 -0
  128. dos_kernel-0.27.0/tests/test_dogfood_goal_gate.py +74 -0
  129. dos_kernel-0.27.0/tests/test_drift_scoreboard.py +295 -0
  130. dos_kernel-0.27.0/tests/test_drivers_merge_gate.py +207 -0
  131. dos_kernel-0.27.0/tests/test_duplicate_plan_numbers.py +277 -0
  132. dos_kernel-0.27.0/tests/test_effect_gate.py +243 -0
  133. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend_cli.py +39 -0
  134. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_event_severity.py +66 -0
  135. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_otlp.py +50 -0
  136. dos_kernel-0.27.0/tests/test_fault_injection_journal.py +376 -0
  137. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_fleet_framework_examples.py +57 -1
  138. dos_kernel-0.27.0/tests/test_forge_arena_bench.py +117 -0
  139. dos_kernel-0.27.0/tests/test_forge_page.py +85 -0
  140. dos_kernel-0.27.0/tests/test_gemini_extension.py +137 -0
  141. dos_kernel-0.27.0/tests/test_git_cleanup.py +279 -0
  142. dos_kernel-0.27.0/tests/test_gitlab_ci_template.py +55 -0
  143. dos_kernel-0.27.0/tests/test_gitlab_component.py +85 -0
  144. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_help_summary.py +302 -16
  145. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_dialect.py +21 -1
  146. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_observation.py +228 -2
  147. dos_kernel-0.27.0/tests/test_hook_pretool.py +957 -0
  148. dos_kernel-0.27.0/tests/test_hosts_verb.py +198 -0
  149. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_skills.py +4 -1
  150. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_install_drift.py +1 -0
  151. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_install_levels.py +4 -0
  152. dos_kernel-0.27.0/tests/test_kernel_keep_gate_example.py +243 -0
  153. dos_kernel-0.27.0/tests/test_kernel_keep_gate_real_kernelbench.py +103 -0
  154. dos_kernel-0.27.0/tests/test_legalcite_live.py +210 -0
  155. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_liveness.py +67 -0
  156. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llm_judge_vendor_seam.py +4 -0
  157. dos_kernel-0.27.0/tests/test_loop_economics_toml.py +305 -0
  158. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_mcp_server.py +72 -0
  159. dos_kernel-0.27.0/tests/test_memory_admit.py +316 -0
  160. dos_kernel-0.27.0/tests/test_memory_fossils.py +297 -0
  161. dos_kernel-0.27.0/tests/test_memory_integrity_bench.py +76 -0
  162. dos_kernel-0.27.0/tests/test_memory_mem0.py +157 -0
  163. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_memory_recall.py +77 -0
  164. dos_kernel-0.27.0/tests/test_memory_stores.py +229 -0
  165. dos_kernel-0.27.0/tests/test_mergegate.py +227 -0
  166. dos_kernel-0.27.0/tests/test_model_call.py +298 -0
  167. dos_kernel-0.27.0/tests/test_model_health.py +361 -0
  168. dos_kernel-0.27.0/tests/test_model_reroute.py +177 -0
  169. dos_kernel-0.27.0/tests/test_nemo_action.py +130 -0
  170. dos_kernel-0.27.0/tests/test_openai_agents_guardrail.py +177 -0
  171. dos_kernel-0.27.0/tests/test_oracle.py +337 -0
  172. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_and_loop.py +135 -0
  173. dos_kernel-0.27.0/tests/test_os_acceptance.py +194 -0
  174. dos_kernel-0.27.0/tests/test_override_window.py +560 -0
  175. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_pickable.py +19 -0
  176. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plugin_manifest.py +11 -5
  177. dos_kernel-0.27.0/tests/test_poisoned_pool_bench.py +194 -0
  178. dos_kernel-0.27.0/tests/test_poisoned_pool_lineage.py +190 -0
  179. dos_kernel-0.27.0/tests/test_poisoned_pool_p2.py +225 -0
  180. dos_kernel-0.27.0/tests/test_poisoned_pool_policies.py +134 -0
  181. dos_kernel-0.27.0/tests/test_pre_commit_hook.py +233 -0
  182. dos_kernel-0.27.0/tests/test_prop_arbiter_wal.py +361 -0
  183. dos_kernel-0.27.0/tests/test_provider_ledger.py +478 -0
  184. dos_kernel-0.27.0/tests/test_provider_limit.py +271 -0
  185. dos_kernel-0.27.0/tests/test_pulse.py +204 -0
  186. dos_kernel-0.27.0/tests/test_readme_test_count_band.py +99 -0
  187. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_refusal_and_tokens.py +30 -0
  188. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_release_bump.py +72 -10
  189. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_result_state.py +47 -0
  190. dos_kernel-0.27.0/tests/test_resume.py +282 -0
  191. dos_kernel-0.27.0/tests/test_retire.py +251 -0
  192. dos_kernel-0.27.0/tests/test_root_index_lane.py +72 -0
  193. dos_kernel-0.27.0/tests/test_scoreboard_copy.py +96 -0
  194. dos_kernel-0.27.0/tests/test_scoreboard_rollup.py +163 -0
  195. dos_kernel-0.27.0/tests/test_scoreboard_surfaces.py +245 -0
  196. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scout.py +75 -0
  197. dos_kernel-0.27.0/tests/test_seed_scoreboard_index.py +331 -0
  198. dos_kernel-0.27.0/tests/test_session_digest.py +223 -0
  199. dos_kernel-0.27.0/tests/test_si_cov_cycle1.py +421 -0
  200. dos_kernel-0.27.0/tests/test_si_cov_cycle2.py +223 -0
  201. dos_kernel-0.27.0/tests/test_si_cov_cycle3.py +238 -0
  202. dos_kernel-0.27.0/tests/test_skill_grade.py +212 -0
  203. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_litmus.py +13 -0
  204. dos_kernel-0.27.0/tests/test_smartphone_tier_bench.py +229 -0
  205. dos_kernel-0.27.0/tests/test_smithery_yaml.py +119 -0
  206. dos_kernel-0.27.0/tests/test_social_card.py +75 -0
  207. dos_kernel-0.27.0/tests/test_sota_scan.py +349 -0
  208. dos_kernel-0.27.0/tests/test_stability_policy.py +96 -0
  209. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_trailer.py +47 -0
  210. dos_kernel-0.27.0/tests/test_tree_question_mark_soundness.py +77 -0
  211. dos_kernel-0.27.0/tests/test_troubleshooting_doc.py +62 -0
  212. dos_kernel-0.27.0/tests/test_two_hosts_one_gate_playbook.py +176 -0
  213. dos_kernel-0.27.0/tests/test_verdict_census.py +181 -0
  214. dos_kernel-0.27.0/tests/test_verified.py +206 -0
  215. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_no_plan.py +34 -0
  216. dos_kernel-0.27.0/tests/test_wiring_drift.py +146 -0
  217. dos_kernel-0.27.0/tests/test_witnessed_leak_test.py +375 -0
  218. dos_kernel-0.27.0/tests/test_work_account.py +307 -0
  219. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_workspace_config.py +37 -3
  220. dos_kernel-0.27.0/tests/test_worktree_lifecycle_spike.py +131 -0
  221. dos_kernel-0.25.0/src/dos/concurrency_class.py +0 -154
  222. dos_kernel-0.25.0/src/dos/dispatch_top_tui.py +0 -116
  223. dos_kernel-0.25.0/src/dos/hook_observation.py +0 -338
  224. dos_kernel-0.25.0/tests/test_dispatch_top.py +0 -500
  225. dos_kernel-0.25.0/tests/test_hook_pretool.py +0 -510
  226. dos_kernel-0.25.0/tests/test_override_window.py +0 -273
  227. dos_kernel-0.25.0/tests/test_provider_limit.py +0 -141
  228. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/LICENSE +0 -0
  229. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/setup.cfg +0 -0
  230. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_demo_story.py +0 -0
  231. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_filelock.py +0 -0
  232. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/_job_policy.py +0 -0
  233. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/admission.py +0 -0
  234. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/answer_shape.py +0 -0
  235. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/archive_lock.py +0 -0
  236. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/arg_provenance.py +0 -0
  237. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/attest.py +0 -0
  238. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/breaker.py +0 -0
  239. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/churn.py +0 -0
  240. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/claim_extract.py +0 -0
  241. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/claim_ttl.py +0 -0
  242. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/completion.py +0 -0
  243. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/cooldown.py +0 -0
  244. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/coverage.py +0 -0
  245. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/dangling_intent.py +0 -0
  246. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/data_class.py +0 -0
  247. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/decisions_tui.py +0 -0
  248. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/__init__.py +0 -0
  249. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/agt_backend.py +0 -0
  250. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/ci_status.py +0 -0
  251. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/citation_resolve.py +0 -0
  252. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/decision_stop.py +0 -0
  253. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/design_doc_plan.py +0 -0
  254. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_file.py +0 -0
  255. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/export_statsd.py +0 -0
  256. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/hook_dialects.py +0 -0
  257. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/job.py +0 -0
  258. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/llm_judge.py +0 -0
  259. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_slack.py +0 -0
  260. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_webhook.py +0 -0
  261. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/operator_judge.py +0 -0
  262. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/os_acceptance.py +0 -0
  263. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/paste_log.py +0 -0
  264. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/plan_scope.py +0 -0
  265. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/self_improve.py +0 -0
  266. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/similarity_judge.py +0 -0
  267. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/state_diff.py +0 -0
  268. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/supervisor.py +0 -0
  269. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/watchdog.py +0 -0
  270. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/drivers/workshop.py +0 -0
  271. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/durable_schema.py +0 -0
  272. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/effect_witness.py +0 -0
  273. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/enforce.py +0 -0
  274. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/enumerate.py +0 -0
  275. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/env_print.py +0 -0
  276. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/evidence.py +0 -0
  277. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/exec_capability.py +0 -0
  278. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/export_cursor.py +0 -0
  279. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/exporter.py +0 -0
  280. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/firing_label.py +0 -0
  281. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/fleet_roll.py +0 -0
  282. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/gate_classify.py +0 -0
  283. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/gh4_coverage.py +0 -0
  284. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/git_delta.py +0 -0
  285. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/guard.py +0 -0
  286. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/health.py +0 -0
  287. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_binary.py +0 -0
  288. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/hook_exit.py +0 -0
  289. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/id_alloc.py +0 -0
  290. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/interpret.py +0 -0
  291. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intervention.py +0 -0
  292. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/intervention_eval.py +0 -0
  293. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/journal_delta.py +0 -0
  294. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/judge_eval.py +0 -0
  295. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/judges.py +0 -0
  296. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_infer.py +0 -0
  297. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lane_overlap.py +0 -0
  298. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lease_health.py +0 -0
  299. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lifecycle.py +0 -0
  300. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/lock_modes.py +0 -0
  301. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/log_source.py +0 -0
  302. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/marker_gate.py +0 -0
  303. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/marker_sensor.py +0 -0
  304. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/noop_streak.py +0 -0
  305. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/observe.py +0 -0
  306. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/overlap_eval.py +0 -0
  307. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/overlap_policy.py +0 -0
  308. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/packet_sidecar.py +0 -0
  309. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/pick_priority.py +0 -0
  310. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/picker_oracle.py +0 -0
  311. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_board_tui.py +0 -0
  312. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/plan_source.py +0 -0
  313. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/posttool_sensor.py +0 -0
  314. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/precursor_gate.py +0 -0
  315. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/precursor_gate_eval.py +0 -0
  316. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/preflight.py +0 -0
  317. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/proc_delta.py +0 -0
  318. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/py.typed +0 -0
  319. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reason_morphology.py +0 -0
  320. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reconcile.py +0 -0
  321. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/recurring_wedge.py +0 -0
  322. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/render.py +0 -0
  323. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/resume_evidence.py +0 -0
  324. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/retention.py +0 -0
  325. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/reward.py +0 -0
  326. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind.py +0 -0
  327. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind_evidence.py +0 -0
  328. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/rewind_tokens.py +0 -0
  329. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scope.py +0 -0
  330. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/scope_source.py +0 -0
  331. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/sibling_scan.py +0 -0
  332. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
  333. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
  334. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan/SKILL.md +0 -0
  335. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-self-improve/SKILL.md +0 -0
  336. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
  337. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
  338. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/spend.py +0 -0
  339. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/state_health.py +0 -0
  340. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/status.py +0 -0
  341. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/stop_policy.py +0 -0
  342. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/supervise.py +0 -0
  343. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/testwitness.py +0 -0
  344. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/timeline.py +0 -0
  345. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tokens.py +0 -0
  346. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tool_stream.py +0 -0
  347. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/tool_stream_eval.py +0 -0
  348. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/trace.py +0 -0
  349. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict.py +0 -0
  350. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_cli.py +0 -0
  351. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_journal.py +0 -0
  352. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdict_rollup.py +0 -0
  353. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/verdicts.py +0 -0
  354. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos/wedge_reason.py +0 -0
  355. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
  356. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
  357. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/__init__.py +0 -0
  358. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/src/dos_mcp/py.typed +0 -0
  359. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_admission.py +0 -0
  360. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agenthallu_replay.py +0 -0
  361. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agentprocessbench_replay.py +0 -0
  362. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_agt_backend.py +0 -0
  363. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_answer_shape.py +0 -0
  364. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_archive_lock.py +0 -0
  365. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_arg_provenance.py +0 -0
  366. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_attest.py +0 -0
  367. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_backflow_ledger.py +0 -0
  368. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_bench_layering.py +0 -0
  369. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_breaker.py +0 -0
  370. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_build_wheels_binary_format.py +0 -0
  371. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_central_index.py +0 -0
  372. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_churn.py +0 -0
  373. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_ci_status.py +0 -0
  374. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_citation_resolve.py +0 -0
  375. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claim_extract.py +0 -0
  376. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claim_ttl.py +0 -0
  377. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_claims_lint.py +0 -0
  378. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cli_loop.py +0 -0
  379. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cmd_status.py +0 -0
  380. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_completion.py +0 -0
  381. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_cooldown.py +0 -0
  382. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_coverage.py +0 -0
  383. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dangling_intent.py +0 -0
  384. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_data_class.py +0 -0
  385. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_design_doc_plan_source.py +0 -0
  386. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dispatch_loop_substrate.py +0 -0
  387. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_dos_react_terminal_error.py +0 -0
  388. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_self_improve.py +0 -0
  389. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_supervisor.py +0 -0
  390. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_watchdog.py +0 -0
  391. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_drivers_workshop.py +0 -0
  392. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_durable_schema.py +0 -0
  393. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_effect_witness.py +0 -0
  394. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency.py +0 -0
  395. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend.py +0 -0
  396. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enforce.py +0 -0
  397. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_ensure_home.py +0 -0
  398. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enterpriseops_harness.py +0 -0
  399. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_enumerate.py +0 -0
  400. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_env_print.py +0 -0
  401. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_evidence.py +0 -0
  402. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_exec_capability.py +0 -0
  403. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_cli.py +0 -0
  404. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_cursor.py +0 -0
  405. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_export_statsd.py +0 -0
  406. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_exporter.py +0 -0
  407. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_feasibility_split.py +0 -0
  408. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_filelock.py +0 -0
  409. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_filepath_backstop_batch.py +0 -0
  410. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_firing_label.py +0 -0
  411. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_fleet_roll.py +0 -0
  412. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gate_cli.py +0 -0
  413. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gh4_coverage.py +0 -0
  414. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_git_hygiene.py +0 -0
  415. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_gitignore_hygiene.py +0 -0
  416. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_go_hook_parity.py +0 -0
  417. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_guard.py +0 -0
  418. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_health.py +0 -0
  419. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hermes_integration_example.py +0 -0
  420. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_home_layering.py +0 -0
  421. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_home_no_temp_pollution.py +0 -0
  422. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_binaries_bundled.py +0 -0
  423. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_binary_locator.py +0 -0
  424. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_exit.py +0 -0
  425. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_hook_stop.py +0 -0
  426. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_id_alloc.py +0 -0
  427. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_improve.py +0 -0
  428. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks.py +0 -0
  429. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks_auto.py +0 -0
  430. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_init_hooks_crossvendor.py +0 -0
  431. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intent_ledger.py +0 -0
  432. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_interpret_parity.py +0 -0
  433. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention.py +0 -0
  434. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention_cli.py +0 -0
  435. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_intervention_eval.py +0 -0
  436. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_journal_delta.py +0 -0
  437. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judge.py +0 -0
  438. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judge_eval.py +0 -0
  439. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_judges.py +0 -0
  440. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_adopt.py +0 -0
  441. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_halt.py +0 -0
  442. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_infer.py +0 -0
  443. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_journal.py +0 -0
  444. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease.py +0 -0
  445. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease_expiry.py +0 -0
  446. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_lease_mutex.py +0 -0
  447. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lane_overlap.py +0 -0
  448. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_leak_scan.py +0 -0
  449. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lease_health.py +0 -0
  450. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lifecycle.py +0 -0
  451. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llms_full.py +0 -0
  452. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_llms_txt.py +0 -0
  453. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_lock_modes.py +0 -0
  454. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_log_source.py +0 -0
  455. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_marker_gate.py +0 -0
  456. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_marker_sensor.py +0 -0
  457. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_noop_streak.py +0 -0
  458. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify.py +0 -0
  459. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_cli.py +0 -0
  460. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_slack.py +0 -0
  461. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_notify_webhook.py +0 -0
  462. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_observe.py +0 -0
  463. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_operator_judge.py +0 -0
  464. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_forgeability_provenance.py +0 -0
  465. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_oracle_grep_in_process.py +0 -0
  466. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_overlap_policy.py +0 -0
  467. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_packet_sidecar.py +0 -0
  468. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_phase_labels.py +0 -0
  469. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_pick_priority.py +0 -0
  470. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plan_board.py +0 -0
  471. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_plan_source.py +0 -0
  472. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_posttool_sensor.py +0 -0
  473. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_precursor_gate.py +0 -0
  474. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_precursor_gate_eval.py +0 -0
  475. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_preflight_sidecar.py +0 -0
  476. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_proc_delta.py +0 -0
  477. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_productivity.py +0 -0
  478. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_breaker.py +0 -0
  479. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_cooldown.py +0 -0
  480. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_efficiency.py +0 -0
  481. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_install_wrappers.py +0 -0
  482. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_overlap_soundness.py +0 -0
  483. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_productivity.py +0 -0
  484. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_reconcile.py +0 -0
  485. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_reward_nonforgeability.py +0 -0
  486. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_prop_tree.py +0 -0
  487. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_readme_assembly.py +0 -0
  488. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reconcile.py +0 -0
  489. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_recurring_wedge.py +0 -0
  490. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reindex.py +0 -0
  491. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_render.py +0 -0
  492. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_replan_skip.py +0 -0
  493. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_cli.py +0 -0
  494. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_evidence.py +0 -0
  495. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_resume_reachability.py +0 -0
  496. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_retention.py +0 -0
  497. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_reward.py +0 -0
  498. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_rewind.py +0 -0
  499. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_rewind_cli.py +0 -0
  500. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope.py +0 -0
  501. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_gate.py +0 -0
  502. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_gate_cli.py +0 -0
  503. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_scope_source.py +0 -0
  504. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_selfmodify_hook_probe.py +0 -0
  505. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_server_json_version.py +0 -0
  506. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_serverless_rl_example.py +0 -0
  507. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_sibling_scan.py +0 -0
  508. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_similarity_judge.py +0 -0
  509. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_dispatch.py +0 -0
  510. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_generic.py +0 -0
  511. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_operator_tier.py +0 -0
  512. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_skill_pack_replan.py +0 -0
  513. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend.py +0 -0
  514. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend_cli.py +0 -0
  515. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_spend_evidence.py +0 -0
  516. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stall_sim.py +0 -0
  517. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_convention.py +0 -0
  518. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_doctor.py +0 -0
  519. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stamp_filepath_rung.py +0 -0
  520. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_diff.py +0 -0
  521. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_health.py +0 -0
  522. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_health_doctor.py +0 -0
  523. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_state_home.py +0 -0
  524. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_status_digest.py +0 -0
  525. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_stop_policy.py +0 -0
  526. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
  527. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_supervise.py +0 -0
  528. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_testwitness.py +0 -0
  529. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_timeline_timing.py +0 -0
  530. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_tool_stream.py +0 -0
  531. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_tool_stream_cli.py +0 -0
  532. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_live_adapter.py +0 -0
  533. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_replay.py +0 -0
  534. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
  535. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_trace.py +0 -0
  536. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_trajectory_audit.py +0 -0
  537. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_vendor_agnostic_kernel.py +0 -0
  538. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_cli.py +0 -0
  539. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_contract.py +0 -0
  540. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_journal.py +0 -0
  541. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdict_rollup.py +0 -0
  542. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verdicts.py +0 -0
  543. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_color.py +0 -0
  544. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_demo_contract.py +0 -0
  545. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_non_git_rung.py +0 -0
  546. {dos_kernel-0.25.0 → dos_kernel-0.27.0}/tests/test_verify_plugin_install.py +0 -0
  547. {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.25.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
  [![Python versions](https://img.shields.io/pypi/pyversions/dos-kernel)](https://pypi.org/project/dos-kernel/)
65
67
  [![CI](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml/badge.svg)](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml)
66
68
  [![verified by DOS](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml/badge.svg)](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml)
69
+ [![commit-claims](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fanthony-chaudhary%2Fdos-kernel%2Fmaster%2Fdocs%2Fscoreboard%2Fanthony-chaudhary%2Fdos-kernel%2Fbadge.json)](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/scoreboard/methodology.md)
67
70
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](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 and the nearest piece of the real world is your git history.
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.25.0** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
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 single most common failure in agent
166
- fleets. With one agent you catch that yourself, because you read its work
167
- before trusting it.
168
-
169
- Run twenty agents at once and nobody reads everything. Each worker grades its
170
- own homework, you believe the reports because what else is there to go on, and
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 a shell pipeline or CI step that trusts an agent's "done" | replace that step with `dos verify PLAN PHASE` and branch on the exit code (`0` shipped / `1` not) — **the verdict *is* the exit code**. The day-one win above. |
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. A live gemini-2.5-pro agent on a tau2 airline task reports 'You are all set! Your reservation number is HATHAT' — a confident write the agent authored. The witness is the environment DB-hash the agent wrote zero bytes of: gold hash 9f2c…gold vs the agent's resulting hash 4b7e…actual, so db_match = False — the booking it swore it made is not in the database. The gate verdict: a confident write REFUTED by an OS_RECORDED witness → GATE BLOCK, the phantom never reaches the next agent. Result across two models: J = 10 of 120 over-claims caught and blocked off the DB-hash, 9 of 9 honest writes admitted, zero correct work blocked, an identical 8.3% over-claim rate on the mid model and the strong one." width="100%">
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: a stale write clobbering a cancellation, then prevented. Two live agents act on one shared reservation NM1VX1, each having planned its tool-calls against the same original state, neither aware of the other. A1 cancels the reservation (DB-hash a3f1…afterA1). Under naive replay, A2's add-bag — computed on the original active state blindly re-activates the reservation and adds a bag, silently overwriting A1's cancellation (composed hash 77c2…naive, a real lost update). Under the arbiter, dos.arbiter leases the region reservations/NM1VX1 to A1, refuses A2's overlapping lease, and A2 re-plans against the post-A1 cancelled state and correctly declines — the DB-hash matches the serialized-correct value and no update is lost. Across six natural conflict pairs drawn from the real task distribution, J = 4 of 6 clobbers were structurally prevented off the DB-hash." width="100%">
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 is already byte-identical
523
- across Claude Code, Codex, and Qwen — a de-facto standard waiting to be named),
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: the verdict is decided
630
- once, then rendered into whatever JSON shape the host parses
631
- ([docs/217](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/217_the-cross-vendor-hook-dialect-seam.md)) so a runtime the
632
- installer doesn't cover yet can still consume the same hooks. A sixth shipped
633
- dialect speaks **Hermes**: `dos hook pretool --dialect hermes` emits the
634
- `{"decision": "block", "reason": …}` object Hermes' `pre_tool_call` shell hook
635
- reads (wire it in `cli-config.yaml`). A new host's dialect is a driver, never a
636
- kernel edit.
637
-
638
- The flip side of that honesty: a host with **no** hook seam gets **no** dialect.
639
- ByteDance's **Trae** was proved out and ships no user-scriptable hook system in
640
- its personal/international editions (no lifecycle events, no deny/allow stdout
641
- contract; its CN-enterprise edition announced one on 2026-06-09 with no
642
- published grammar yet), so DOS binds to it advisory-only the MCP server in
643
- `.trae/mcp.json` (read alike by IDE-mode Agent, SOLO mode, and TRAE CLI), a
644
- verify-before-"done" rule in `.trae/rules/project_rules.md`, the generic
645
- skills in `.trae/skills/` — and `dos init --hooks trae` fails loud rather than
646
- writing config Trae would never read
647
- ([docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md)).
648
- An invented envelope would be fake enforcement, which is the exact failure the
649
- dialect seam exists to prevent.
650
-
651
- Because these hooks run on *every* tool call, the core kernel logic on the hot
652
- path is reimplemented in native Go a `dos-hook` binary that ports the actual
653
- decision predicates (the conjunctive-only lease-admission and
654
- prefix-disjointness floor, the `verify()` grep rung, self-modify, the marker
655
- budget, the WAL) rather than just shelling out to Python. It serves the
656
- per-call verdict in ~10 ms 16–43× faster than shelling
657
- `python -m dos.cli hook …` (~0.25–0.8 s, dominated by interpreter cold-start) —
658
- and is byte-identical to the Python kernel on the gated decision (the docs/124
659
- parity contract, pinned by Go parity tests). It owns the common fast path and
660
- falls back to the always-available Python verb for anything it doesn't yet
661
- serve, so a machine without the binary degrades cleanly with no wiring change
662
- ([docs/125](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/125_go-hook-fastpath-build-plan.md),
663
- [docs/270](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/270_go-hook-fastpath-benchmarks.md)). You don't build it
664
- yourself: the per-platform wheels bundle the binary, so a wheel install gets
665
- the native fast path with no Go toolchain and any platform without a bundled
666
- binary (including a plain source install) just runs the pure-Python path
667
- ([docs/286](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/286_shipping-the-go-binary-through-pypi-per-platform-wheels.md)).
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 matrix (every OS, every
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 but when your
773
- lanes must be *computed* (from runtime state, an env var, a monorepo manifest)
774
- rather than listed, or you add a provider-backed JUDGE, you write a small
775
- **driver** instead: a `dos/drivers/<host>.py` exposing a `LaneTaxonomy` constant +
776
- a `<host>_config` factory, loaded by name via `dos --driver <host>` and never
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 at
785
- once:
786
-
787
- - the **hooks** (`PreToolUse` deny a structurally-refused call · `PostToolUse`
788
- re-surface a stalled tool stream · `Stop` → refuse to stop on an unverified
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 (see [QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md) for
817
- a runnable tour of the core ones):
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 syscalls ---
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 resume --run-id R # the resume verdict: replay a run's intent ledger, re-verify against git, PROPOSE the continuation
827
- dos complete --run-id R [--diverged] # completion verdict: is the WHOLE declared job done? (residual = declared − verified)
828
- dos rewind --run-id R [--fire SIGNAL] # conversation-rewind verdict: PROPOSE excising dead-end turns (never truncates)
829
- dos status --run-id R # the folded fact: one fail-closed digest of a run (liveness + verified progress + lease)
830
- dos arg-provenance --tool T --args J [--new-key K] # did the model MINT this id/FK, or RESOLVE it from env bytes? (exit 0 believe / 3 UNSUPPORTED)
831
- dos arbitrate --lane L --kind K --leases '[…]' # admission: may a lane start without collision? (decision only — journals nothing; hold via lease-lane)
832
- dos scope-gate --lane L [--staged] # binding pre-effect scope gate: may this PROPOSED write land in its lane? (ALLOW/REFUSE)
833
- dos lease {acquire,release,status} OWNER # the cross-process archive lock
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 (list + drill-in TUI)
866
- dos plan [--once] [--json] # work-terrain board: every phase, the plan's claim vs the oracle's verdict
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.** A pluggable `--output
898
- <name>` renderer (the `dos.renderers` entry-point group) is covered in
899
- [HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md).
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
- - Three cookbooks: [from Python](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-python-api.md),
1056
- [CI / MCP integration](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-ci-integration.md), and
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