dos-kernel 0.26.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 (545) hide show
  1. {dos_kernel-0.26.0/src/dos_kernel.egg-info → dos_kernel-0.27.0}/PKG-INFO +169 -147
  2. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/README.md +168 -146
  3. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/pyproject.toml +14 -1
  4. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/__init__.py +1 -1
  5. {dos_kernel-0.26.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.26.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.26.0 → dos_kernel-0.27.0}/src/dos/cli.py +2379 -69
  10. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/commit_audit.py +14 -2
  11. dos_kernel-0.27.0/src/dos/concurrency_class.py +368 -0
  12. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/config.py +77 -3
  13. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/decisions.py +92 -1
  14. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/dispatch_top.py +427 -1
  15. dos_kernel-0.27.0/src/dos/dispatch_top_tui.py +255 -0
  16. dos_kernel-0.27.0/src/dos/drivers/account_switcher.py +887 -0
  17. dos_kernel-0.27.0/src/dos/drivers/content_diff.py +506 -0
  18. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/export_otlp.py +34 -3
  19. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/memory_recall.py +211 -12
  20. dos_kernel-0.27.0/src/dos/drivers/merge_gate.py +170 -0
  21. dos_kernel-0.27.0/src/dos/drivers/model_reroute.py +251 -0
  22. dos_kernel-0.27.0/src/dos/drivers/provider_ledger.py +655 -0
  23. dos_kernel-0.27.0/src/dos/drivers/witnessed_leak_test.py +890 -0
  24. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/efficiency.py +57 -0
  25. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/efficiency_trend.py +57 -0
  26. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/help_summary.py +330 -54
  27. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/hook_dialect.py +7 -1
  28. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/hook_install.py +72 -0
  29. dos_kernel-0.27.0/src/dos/hook_observation.py +690 -0
  30. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/improve.py +57 -0
  31. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lane_journal.py +165 -5
  32. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lane_lease.py +21 -0
  33. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/loop_decide.py +101 -2
  34. dos_kernel-0.27.0/src/dos/mergegate.py +348 -0
  35. dos_kernel-0.27.0/src/dos/model_call.py +493 -0
  36. dos_kernel-0.27.0/src/dos/model_health.py +559 -0
  37. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/notify.py +58 -0
  38. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/oracle.py +234 -0
  39. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/override_facts.py +81 -0
  40. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/pickable.py +54 -0
  41. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/pretool_sensor.py +411 -3
  42. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/productivity.py +57 -0
  43. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/provider_limit.py +168 -3
  44. dos_kernel-0.27.0/src/dos/pulse.py +240 -0
  45. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/reasons.py +29 -0
  46. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/result_state.py +64 -0
  47. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/resume.py +188 -0
  48. dos_kernel-0.27.0/src/dos/retire.py +385 -0
  49. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/run_id.py +33 -0
  50. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/scout.py +57 -0
  51. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/self_modify.py +13 -11
  52. dos_kernel-0.27.0/src/dos/session_digest.py +209 -0
  53. dos_kernel-0.27.0/src/dos/skill_grade.py +473 -0
  54. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/EXAMPLES.md +28 -1
  55. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch/SKILL.md +1 -1
  56. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +43 -3
  57. dos_kernel-0.27.0/src/dos/skills/dos-goal-fleet/SKILL.md +329 -0
  58. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-goal-gate/SKILL.md +28 -0
  59. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-next-up/SKILL.md +6 -2
  60. dos_kernel-0.27.0/src/dos/skills/dos-plan-price/SKILL.md +195 -0
  61. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan-loop/SKILL.md +14 -0
  62. dos_kernel-0.27.0/src/dos/skills/dos-skillify/SKILL.md +183 -0
  63. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-supervise-loop/SKILL.md +41 -5
  64. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/stamp.py +24 -7
  65. {dos_kernel-0.26.0 → dos_kernel-0.27.0/src/dos_kernel.egg-info}/PKG-INFO +169 -147
  66. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/SOURCES.txt +70 -1
  67. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/entry_points.txt +2 -0
  68. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_mcp/server.py +28 -0
  69. dos_kernel-0.27.0/tests/test_account_switcher.py +678 -0
  70. dos_kernel-0.27.0/tests/test_aeo_tracker.py +238 -0
  71. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_agent_surface.py +57 -10
  72. dos_kernel-0.27.0/tests/test_answers.py +122 -0
  73. dos_kernel-0.27.0/tests/test_apply_cli.py +178 -0
  74. dos_kernel-0.27.0/tests/test_apply_gate.py +213 -0
  75. dos_kernel-0.27.0/tests/test_apply_gate_fence.py +336 -0
  76. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_arbiter.py +243 -0
  77. dos_kernel-0.27.0/tests/test_build_skill_dos_page.py +121 -0
  78. dos_kernel-0.27.0/tests/test_burn_in_farm_playbook.py +173 -0
  79. dos_kernel-0.27.0/tests/test_child_refusals.py +241 -0
  80. dos_kernel-0.27.0/tests/test_cleanup_sweep.py +218 -0
  81. dos_kernel-0.27.0/tests/test_cli_completion_verb.py +216 -0
  82. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cli_ergonomics.py +43 -2
  83. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cli_pickable_enumerate.py +29 -0
  84. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_commit_audit.py +18 -0
  85. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_concurrency_class.py +93 -0
  86. dos_kernel-0.27.0/tests/test_content_diff.py +380 -0
  87. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_decisions.py +43 -0
  88. dos_kernel-0.27.0/tests/test_dev_runner.py +70 -0
  89. dos_kernel-0.27.0/tests/test_discoverability_inventory.py +182 -0
  90. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_dispatch_top.py +453 -0
  91. dos_kernel-0.27.0/tests/test_dogfood_goal_gate.py +74 -0
  92. dos_kernel-0.27.0/tests/test_drivers_merge_gate.py +207 -0
  93. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend_cli.py +39 -0
  94. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_export_otlp.py +50 -0
  95. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_fleet_framework_examples.py +28 -1
  96. dos_kernel-0.27.0/tests/test_git_cleanup.py +279 -0
  97. dos_kernel-0.27.0/tests/test_gitlab_component.py +85 -0
  98. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_help_summary.py +302 -16
  99. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_dialect.py +21 -1
  100. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_observation.py +228 -2
  101. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_pretool.py +384 -16
  102. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_init_skills.py +4 -1
  103. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_install_levels.py +4 -0
  104. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_kernel_keep_gate_example.py +47 -11
  105. dos_kernel-0.27.0/tests/test_legalcite_live.py +210 -0
  106. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_llm_judge_vendor_seam.py +4 -0
  107. dos_kernel-0.27.0/tests/test_loop_economics_toml.py +305 -0
  108. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_mcp_server.py +72 -0
  109. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_admit.py +105 -2
  110. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_integrity_bench.py +5 -2
  111. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_recall.py +77 -0
  112. dos_kernel-0.27.0/tests/test_mergegate.py +227 -0
  113. dos_kernel-0.27.0/tests/test_model_call.py +298 -0
  114. dos_kernel-0.27.0/tests/test_model_health.py +361 -0
  115. dos_kernel-0.27.0/tests/test_model_reroute.py +177 -0
  116. dos_kernel-0.27.0/tests/test_oracle.py +337 -0
  117. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_oracle_and_loop.py +135 -0
  118. dos_kernel-0.27.0/tests/test_os_acceptance.py +194 -0
  119. dos_kernel-0.27.0/tests/test_override_window.py +560 -0
  120. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_pickable.py +19 -0
  121. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_plugin_manifest.py +11 -5
  122. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_poisoned_pool_bench.py +6 -0
  123. dos_kernel-0.27.0/tests/test_poisoned_pool_lineage.py +190 -0
  124. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_poisoned_pool_p2.py +4 -0
  125. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_poisoned_pool_policies.py +6 -0
  126. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_pre_commit_hook.py +30 -10
  127. dos_kernel-0.27.0/tests/test_provider_ledger.py +478 -0
  128. dos_kernel-0.27.0/tests/test_provider_limit.py +271 -0
  129. dos_kernel-0.27.0/tests/test_pulse.py +204 -0
  130. dos_kernel-0.27.0/tests/test_readme_test_count_band.py +99 -0
  131. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_refusal_and_tokens.py +30 -0
  132. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_release_bump.py +69 -9
  133. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_result_state.py +47 -0
  134. dos_kernel-0.27.0/tests/test_resume.py +282 -0
  135. dos_kernel-0.27.0/tests/test_retire.py +251 -0
  136. dos_kernel-0.27.0/tests/test_root_index_lane.py +72 -0
  137. dos_kernel-0.27.0/tests/test_scoreboard_copy.py +96 -0
  138. dos_kernel-0.27.0/tests/test_scoreboard_rollup.py +163 -0
  139. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scoreboard_surfaces.py +62 -0
  140. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scout.py +75 -0
  141. dos_kernel-0.27.0/tests/test_seed_scoreboard_index.py +331 -0
  142. dos_kernel-0.27.0/tests/test_session_digest.py +223 -0
  143. dos_kernel-0.27.0/tests/test_si_cov_cycle1.py +421 -0
  144. dos_kernel-0.27.0/tests/test_si_cov_cycle2.py +223 -0
  145. dos_kernel-0.27.0/tests/test_si_cov_cycle3.py +238 -0
  146. dos_kernel-0.27.0/tests/test_skill_grade.py +212 -0
  147. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_skill_pack_litmus.py +13 -0
  148. dos_kernel-0.27.0/tests/test_smartphone_tier_bench.py +229 -0
  149. dos_kernel-0.27.0/tests/test_smithery_yaml.py +119 -0
  150. dos_kernel-0.27.0/tests/test_social_card.py +75 -0
  151. dos_kernel-0.27.0/tests/test_sota_scan.py +349 -0
  152. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stamp_trailer.py +47 -0
  153. dos_kernel-0.27.0/tests/test_tree_question_mark_soundness.py +77 -0
  154. dos_kernel-0.27.0/tests/test_troubleshooting_doc.py +62 -0
  155. dos_kernel-0.27.0/tests/test_two_hosts_one_gate_playbook.py +176 -0
  156. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verify_no_plan.py +34 -0
  157. dos_kernel-0.27.0/tests/test_wiring_drift.py +146 -0
  158. dos_kernel-0.27.0/tests/test_witnessed_leak_test.py +375 -0
  159. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_workspace_config.py +37 -3
  160. dos_kernel-0.27.0/tests/test_worktree_lifecycle_spike.py +131 -0
  161. dos_kernel-0.26.0/src/dos/concurrency_class.py +0 -154
  162. dos_kernel-0.26.0/src/dos/dispatch_top_tui.py +0 -116
  163. dos_kernel-0.26.0/src/dos/hook_observation.py +0 -338
  164. dos_kernel-0.26.0/tests/test_override_window.py +0 -273
  165. dos_kernel-0.26.0/tests/test_provider_limit.py +0 -141
  166. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/LICENSE +0 -0
  167. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/setup.cfg +0 -0
  168. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/_demo_story.py +0 -0
  169. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/_filelock.py +0 -0
  170. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/_job_policy.py +0 -0
  171. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/admission.py +0 -0
  172. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/answer_shape.py +0 -0
  173. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/archive_lock.py +0 -0
  174. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/arg_provenance.py +0 -0
  175. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/attest.py +0 -0
  176. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/breaker.py +0 -0
  177. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/churn.py +0 -0
  178. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/claim_extract.py +0 -0
  179. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/claim_ttl.py +0 -0
  180. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/completion.py +0 -0
  181. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/config_lint.py +0 -0
  182. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/cooldown.py +0 -0
  183. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/coverage.py +0 -0
  184. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/dangling_intent.py +0 -0
  185. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/data_class.py +0 -0
  186. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/decisions_tui.py +0 -0
  187. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/deprecation.py +0 -0
  188. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/__init__.py +0 -0
  189. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/_effect_gate.py +0 -0
  190. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/agt_backend.py +0 -0
  191. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/ci_status.py +0 -0
  192. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/citation_resolve.py +0 -0
  193. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/crewai_guardrail.py +0 -0
  194. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/decision_stop.py +0 -0
  195. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/design_doc_plan.py +0 -0
  196. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/export_file.py +0 -0
  197. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/export_statsd.py +0 -0
  198. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/hook_dialects.py +0 -0
  199. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/job.py +0 -0
  200. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/llm_judge.py +0 -0
  201. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/memory_mem0.py +0 -0
  202. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/nemo_action.py +0 -0
  203. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_slack.py +0 -0
  204. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/notify_webhook.py +0 -0
  205. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/openai_agents_guardrail.py +0 -0
  206. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/operator_judge.py +0 -0
  207. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/os_acceptance.py +0 -0
  208. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/paste_log.py +0 -0
  209. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/plan_scope.py +0 -0
  210. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/pre_commit.py +0 -0
  211. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/self_improve.py +0 -0
  212. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/similarity_judge.py +0 -0
  213. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/state_diff.py +0 -0
  214. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/supervisor.py +0 -0
  215. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/watchdog.py +0 -0
  216. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/drivers/workshop.py +0 -0
  217. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/durable_schema.py +0 -0
  218. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/effect_witness.py +0 -0
  219. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/enforce.py +0 -0
  220. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/enumerate.py +0 -0
  221. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/env_print.py +0 -0
  222. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/event_severity.py +0 -0
  223. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/evidence.py +0 -0
  224. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/exec_capability.py +0 -0
  225. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/export_cursor.py +0 -0
  226. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/exporter.py +0 -0
  227. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/firing_label.py +0 -0
  228. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/fleet_roll.py +0 -0
  229. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/gate_classify.py +0 -0
  230. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/gh4_coverage.py +0 -0
  231. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/git_delta.py +0 -0
  232. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/guard.py +0 -0
  233. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/health.py +0 -0
  234. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/home.py +0 -0
  235. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/hook_binary.py +0 -0
  236. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/hook_exit.py +0 -0
  237. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/id_alloc.py +0 -0
  238. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/intent_ledger.py +0 -0
  239. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/interpret.py +0 -0
  240. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/intervention.py +0 -0
  241. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/intervention_eval.py +0 -0
  242. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/journal_delta.py +0 -0
  243. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/judge_eval.py +0 -0
  244. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/judges.py +0 -0
  245. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lane_infer.py +0 -0
  246. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lane_overlap.py +0 -0
  247. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lease_health.py +0 -0
  248. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lifecycle.py +0 -0
  249. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/liveness.py +0 -0
  250. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/lock_modes.py +0 -0
  251. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/log_source.py +0 -0
  252. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/marker_gate.py +0 -0
  253. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/marker_sensor.py +0 -0
  254. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/memory_stores.py +0 -0
  255. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/noop_streak.py +0 -0
  256. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/observe.py +0 -0
  257. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/overlap_eval.py +0 -0
  258. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/overlap_policy.py +0 -0
  259. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/packet_sidecar.py +0 -0
  260. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/phase_shipped.py +0 -0
  261. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/pick_priority.py +0 -0
  262. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/picker_oracle.py +0 -0
  263. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/plan_board.py +0 -0
  264. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/plan_board_tui.py +0 -0
  265. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/plan_source.py +0 -0
  266. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/posttool_sensor.py +0 -0
  267. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/precursor_gate.py +0 -0
  268. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/precursor_gate_eval.py +0 -0
  269. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/preflight.py +0 -0
  270. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/proc_delta.py +0 -0
  271. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/py.typed +0 -0
  272. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/reason_morphology.py +0 -0
  273. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/reconcile.py +0 -0
  274. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/recurring_wedge.py +0 -0
  275. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/render.py +0 -0
  276. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/resume_evidence.py +0 -0
  277. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/retention.py +0 -0
  278. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/reward.py +0 -0
  279. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/rewind.py +0 -0
  280. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/rewind_evidence.py +0 -0
  281. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/rewind_tokens.py +0 -0
  282. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/scope.py +0 -0
  283. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/scope_source.py +0 -0
  284. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/sibling_scan.py +0 -0
  285. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
  286. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
  287. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-replan/SKILL.md +0 -0
  288. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-self-improve/SKILL.md +0 -0
  289. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
  290. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
  291. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/spend.py +0 -0
  292. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/state_health.py +0 -0
  293. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/status.py +0 -0
  294. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/stop_policy.py +0 -0
  295. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/supervise.py +0 -0
  296. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/testing/__init__.py +0 -0
  297. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/testing/doubles.py +0 -0
  298. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/testing/suite.py +0 -0
  299. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/testing/tester.py +0 -0
  300. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/testwitness.py +0 -0
  301. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/timeline.py +0 -0
  302. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/tokens.py +0 -0
  303. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/tool_stream.py +0 -0
  304. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/tool_stream_eval.py +0 -0
  305. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/trace.py +0 -0
  306. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdict.py +0 -0
  307. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdict_census.py +0 -0
  308. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdict_cli.py +0 -0
  309. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdict_journal.py +0 -0
  310. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdict_rollup.py +0 -0
  311. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verdicts.py +0 -0
  312. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/verified.py +0 -0
  313. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/wedge_reason.py +0 -0
  314. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos/work_account.py +0 -0
  315. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
  316. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/requires.txt +0 -0
  317. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
  318. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_mcp/__init__.py +0 -0
  319. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/src/dos_mcp/py.typed +0 -0
  320. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_admission.py +0 -0
  321. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_agenthallu_replay.py +0 -0
  322. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_agentprocessbench_replay.py +0 -0
  323. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_agt_backend.py +0 -0
  324. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_answer_shape.py +0 -0
  325. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_archive_lock.py +0 -0
  326. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_arg_provenance.py +0 -0
  327. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_attest.py +0 -0
  328. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_backflow_ledger.py +0 -0
  329. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_backlog_triage.py +0 -0
  330. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_bench_layering.py +0 -0
  331. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_braintrust_scorer_example.py +0 -0
  332. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_breaker.py +0 -0
  333. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_build_wheels_binary_format.py +0 -0
  334. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_canonical_example_lockstep.py +0 -0
  335. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_caught_lie_cast.py +0 -0
  336. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_central_index.py +0 -0
  337. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_churn.py +0 -0
  338. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_ci_status.py +0 -0
  339. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_citation_resolve.py +0 -0
  340. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_claim_extract.py +0 -0
  341. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_claim_ttl.py +0 -0
  342. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_claims_lint.py +0 -0
  343. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cli_loop.py +0 -0
  344. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_clobber_demo_contract.py +0 -0
  345. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cmd_status.py +0 -0
  346. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_completion.py +0 -0
  347. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_config_lint.py +0 -0
  348. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_conformance_plugin_examples.py +0 -0
  349. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_conformance_suite.py +0 -0
  350. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cooldown.py +0 -0
  351. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_coverage.py +0 -0
  352. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_crewai_guardrail.py +0 -0
  353. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_cross_host_continuity.py +0 -0
  354. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_dangling_intent.py +0 -0
  355. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_data_class.py +0 -0
  356. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_deprecation.py +0 -0
  357. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_design_doc_plan_source.py +0 -0
  358. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_dispatch_loop_substrate.py +0 -0
  359. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_docs_links.py +0 -0
  360. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_docs_version_drift.py +0 -0
  361. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_doctor_json.py +0 -0
  362. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_dos_react_terminal_error.py +0 -0
  363. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_drift_scoreboard.py +0 -0
  364. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_drivers_self_improve.py +0 -0
  365. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_drivers_supervisor.py +0 -0
  366. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_drivers_watchdog.py +0 -0
  367. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_drivers_workshop.py +0 -0
  368. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_duplicate_plan_numbers.py +0 -0
  369. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_durable_schema.py +0 -0
  370. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_effect_gate.py +0 -0
  371. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_effect_witness.py +0 -0
  372. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_efficiency.py +0 -0
  373. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_efficiency_trend.py +0 -0
  374. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_enforce.py +0 -0
  375. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_ensure_home.py +0 -0
  376. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_enterpriseops_harness.py +0 -0
  377. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_enumerate.py +0 -0
  378. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_env_print.py +0 -0
  379. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_event_severity.py +0 -0
  380. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_evidence.py +0 -0
  381. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_exec_capability.py +0 -0
  382. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_export_cli.py +0 -0
  383. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_export_cursor.py +0 -0
  384. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_export_statsd.py +0 -0
  385. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_exporter.py +0 -0
  386. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_fault_injection_journal.py +0 -0
  387. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_feasibility_split.py +0 -0
  388. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_filelock.py +0 -0
  389. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_filepath_backstop_batch.py +0 -0
  390. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_firing_label.py +0 -0
  391. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_fleet_roll.py +0 -0
  392. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_forge_arena_bench.py +0 -0
  393. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_forge_page.py +0 -0
  394. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_gate_cli.py +0 -0
  395. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_gemini_extension.py +0 -0
  396. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_gh4_coverage.py +0 -0
  397. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_git_hygiene.py +0 -0
  398. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_gitignore_hygiene.py +0 -0
  399. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_gitlab_ci_template.py +0 -0
  400. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_go_hook_parity.py +0 -0
  401. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_guard.py +0 -0
  402. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_health.py +0 -0
  403. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hermes_integration_example.py +0 -0
  404. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_home_layering.py +0 -0
  405. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_home_no_temp_pollution.py +0 -0
  406. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_binaries_bundled.py +0 -0
  407. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_binary_locator.py +0 -0
  408. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_exit.py +0 -0
  409. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hook_stop.py +0 -0
  410. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_hosts_verb.py +0 -0
  411. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_id_alloc.py +0 -0
  412. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_improve.py +0 -0
  413. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_init_hooks.py +0 -0
  414. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_init_hooks_auto.py +0 -0
  415. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_init_hooks_crossvendor.py +0 -0
  416. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_install_drift.py +0 -0
  417. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_intent_ledger.py +0 -0
  418. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_interpret_parity.py +0 -0
  419. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_intervention.py +0 -0
  420. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_intervention_cli.py +0 -0
  421. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_intervention_eval.py +0 -0
  422. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_journal_delta.py +0 -0
  423. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_judge.py +0 -0
  424. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_judge_eval.py +0 -0
  425. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_judges.py +0 -0
  426. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_kernel_keep_gate_real_kernelbench.py +0 -0
  427. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_adopt.py +0 -0
  428. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_halt.py +0 -0
  429. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_infer.py +0 -0
  430. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_journal.py +0 -0
  431. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_lease.py +0 -0
  432. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_lease_expiry.py +0 -0
  433. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_lease_mutex.py +0 -0
  434. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lane_overlap.py +0 -0
  435. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_leak_scan.py +0 -0
  436. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lease_health.py +0 -0
  437. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lifecycle.py +0 -0
  438. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_liveness.py +0 -0
  439. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_llms_full.py +0 -0
  440. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_llms_txt.py +0 -0
  441. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_lock_modes.py +0 -0
  442. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_log_source.py +0 -0
  443. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_marker_gate.py +0 -0
  444. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_marker_sensor.py +0 -0
  445. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_fossils.py +0 -0
  446. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_mem0.py +0 -0
  447. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_memory_stores.py +0 -0
  448. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_nemo_action.py +0 -0
  449. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_noop_streak.py +0 -0
  450. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_notify.py +0 -0
  451. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_notify_cli.py +0 -0
  452. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_notify_slack.py +0 -0
  453. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_notify_webhook.py +0 -0
  454. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_observe.py +0 -0
  455. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_openai_agents_guardrail.py +0 -0
  456. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_operator_judge.py +0 -0
  457. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_oracle_forgeability_provenance.py +0 -0
  458. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_oracle_grep_in_process.py +0 -0
  459. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_overlap_policy.py +0 -0
  460. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_packet_sidecar.py +0 -0
  461. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_phase_labels.py +0 -0
  462. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_pick_priority.py +0 -0
  463. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_plan_board.py +0 -0
  464. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_plan_source.py +0 -0
  465. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_posttool_sensor.py +0 -0
  466. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_precursor_gate.py +0 -0
  467. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_precursor_gate_eval.py +0 -0
  468. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_preflight_sidecar.py +0 -0
  469. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_proc_delta.py +0 -0
  470. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_productivity.py +0 -0
  471. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_arbiter_wal.py +0 -0
  472. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_breaker.py +0 -0
  473. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_cooldown.py +0 -0
  474. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_efficiency.py +0 -0
  475. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_install_wrappers.py +0 -0
  476. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_overlap_soundness.py +0 -0
  477. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_productivity.py +0 -0
  478. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_reconcile.py +0 -0
  479. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_reward_nonforgeability.py +0 -0
  480. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_prop_tree.py +0 -0
  481. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_readme_assembly.py +0 -0
  482. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_reconcile.py +0 -0
  483. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_recurring_wedge.py +0 -0
  484. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_reindex.py +0 -0
  485. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_render.py +0 -0
  486. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_replan_skip.py +0 -0
  487. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_resume_cli.py +0 -0
  488. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_resume_evidence.py +0 -0
  489. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_resume_reachability.py +0 -0
  490. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_retention.py +0 -0
  491. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_reward.py +0 -0
  492. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_rewind.py +0 -0
  493. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_rewind_cli.py +0 -0
  494. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scope.py +0 -0
  495. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scope_gate.py +0 -0
  496. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scope_gate_cli.py +0 -0
  497. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_scope_source.py +0 -0
  498. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_selfmodify_hook_probe.py +0 -0
  499. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_server_json_version.py +0 -0
  500. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_serverless_rl_example.py +0 -0
  501. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_sibling_scan.py +0 -0
  502. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_similarity_judge.py +0 -0
  503. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_skill_pack_dispatch.py +0 -0
  504. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_skill_pack_generic.py +0 -0
  505. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_skill_pack_operator_tier.py +0 -0
  506. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_skill_pack_replan.py +0 -0
  507. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_spend.py +0 -0
  508. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_spend_cli.py +0 -0
  509. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_spend_evidence.py +0 -0
  510. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stability_policy.py +0 -0
  511. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stall_sim.py +0 -0
  512. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stamp_convention.py +0 -0
  513. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stamp_doctor.py +0 -0
  514. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stamp_filepath_rung.py +0 -0
  515. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_state_diff.py +0 -0
  516. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_state_health.py +0 -0
  517. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_state_health_doctor.py +0 -0
  518. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_state_home.py +0 -0
  519. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_status_digest.py +0 -0
  520. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_stop_policy.py +0 -0
  521. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
  522. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_supervise.py +0 -0
  523. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_testwitness.py +0 -0
  524. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_timeline_timing.py +0 -0
  525. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_tool_stream.py +0 -0
  526. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_tool_stream_cli.py +0 -0
  527. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_toolathlon_live_adapter.py +0 -0
  528. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_toolathlon_replay.py +0 -0
  529. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
  530. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_trace.py +0 -0
  531. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_trajectory_audit.py +0 -0
  532. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_vendor_agnostic_kernel.py +0 -0
  533. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdict_census.py +0 -0
  534. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdict_cli.py +0 -0
  535. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdict_contract.py +0 -0
  536. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdict_journal.py +0 -0
  537. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdict_rollup.py +0 -0
  538. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verdicts.py +0 -0
  539. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verified.py +0 -0
  540. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verify_color.py +0 -0
  541. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verify_demo_contract.py +0 -0
  542. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verify_non_git_rung.py +0 -0
  543. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_verify_plugin_install.py +0 -0
  544. {dos_kernel-0.26.0 → dos_kernel-0.27.0}/tests/test_work_account.py +0 -0
  545. {dos_kernel-0.26.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.26.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
@@ -69,6 +69,12 @@ Dynamic: license-file
69
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)
70
70
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE)
71
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
+
72
78
  <p align="center">
73
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%">
74
80
  <br>
@@ -86,7 +92,7 @@ Dynamic: license-file
86
92
  </p>
87
93
 
88
94
  An AI agent will tell you it finished. DOS checks the real world instead of
89
- 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.
90
96
 
91
97
  An agent says it shipped the login endpoint. Did it? Run one command,
92
98
  `dos verify`, and it answers from the artifacts the work actually left behind,
@@ -127,7 +133,7 @@ zero config, and the only thing you ever install is one small Python package.
127
133
  > entries there undoes it. (No runtime detected? It says so and lists the
128
134
  > names to pick from — it never guesses.)
129
135
 
130
- <sub>**v0.26.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
131
137
  smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
132
138
 
133
139
  > 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
@@ -160,6 +166,7 @@ your job title, and every section hands off to the one above it.
160
166
 
161
167
  | You're asking… | Start at | Then |
162
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 |
163
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 |
164
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 |
165
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) |
@@ -174,12 +181,15 @@ its own front door: **[AGENTS.md](https://github.com/anthony-chaudhary/dos-kerne
174
181
 
175
182
  A coding agent does some work, then tells you how it went. Usually the story is
176
183
  true. Sometimes it isn't — the cheerful *"all work completed!"* from a worker
177
- that actually shipped nothing is the single most common failure in agent
178
- fleets. With one agent you catch that yourself, because you read its work
179
- before trusting it.
180
-
181
- Run twenty agents at once and nobody reads everything. Each worker grades its
182
- 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
183
193
  the unchecked problems pile up quietly — a false "done" here, two agents
184
194
  overwriting the same file there, one worker spinning in circles burning money.
185
195
  None of it is loud. The codebase ends up *sorta* working, and nobody can safely
@@ -243,6 +253,7 @@ dos init . # writes one dos.toml
243
253
  git init -q
244
254
  git config user.email you@example.com # skip if you have a global git identity
245
255
  git config user.name "You"
256
+ git config commit.gpgsign false # this throwaway repo has no signing key
246
257
  echo 'def login(): ...' > login.py
247
258
  git add -A
248
259
  git commit -m "AUTH1: ship the login endpoint" # stamp AUTH1 shipped: <PHASE-ID>: <message>
@@ -375,7 +386,7 @@ reachable through every row here, lowest-friction first:
375
386
  |---|---|---|
376
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). |
377
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). |
378
- | **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). |
379
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). |
380
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). |
381
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). |
@@ -430,6 +441,40 @@ truth) — covered in [Three live projections](#three-live-projections-read-only
430
441
  below and walked end-to-end in
431
442
  **[Debug a stuck fleet](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/06_debug-a-stuck-fleet.md)**.
432
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
+
433
478
  The referee grows along two axes: deterministic *verdicts* that read artifacts
434
479
  (`verify`, `liveness`, `scope`), and provider-backed *judges* — a model, a
435
480
  debate — that rule on what no deterministic check can, kept outside the kernel
@@ -508,13 +553,13 @@ run (every number, hash, and ID is a verbatim read-off — never a hand-typed
508
553
  dramatization):
509
554
 
510
555
  <p align="center">
511
- <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%">
512
557
  <br>
513
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>
514
559
  </p>
515
560
 
516
561
  <p align="center">
517
- <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%">
518
563
  <br>
519
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>
520
565
  </p>
@@ -531,8 +576,10 @@ prevented at a 32-agent fleet) projects these real per-run rates onto fleet
531
576
  math — it's geometry on top of measured numbers, not a measured fleet run.
532
577
 
533
578
  **🎲 A bet — stated as one.** Where this goes if the floor holds: a frozen,
534
- cross-vendor trust standard (the "deny" message is already byte-identical
535
- 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),
536
583
  a shared arbiter for real-world effects, the claim-vs-reality corpus only a
537
584
  neutral party can hold, and a notary that proves what an agent did *to a
538
585
  skeptic who wasn't in the room* (the mechanism already ships — `dos attest`
@@ -599,6 +646,18 @@ thinks to. The per-host wiring for Cursor / Codex / Gemini is in
599
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
600
647
  works on every one of them with zero code.
601
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
+
602
661
  **Gemini CLI users get a one-liner.** DOS ships a `gemini-extension.json`
603
662
  manifest at the repo root, so the whole referee — the MCP server plus a context
604
663
  file that tells the model to gate its own done-claims — installs as one Gemini
@@ -613,6 +672,12 @@ The same manifest is what Google's auto-indexed
613
672
  [extensions gallery](https://geminicli.com/extensions/) crawls, so the listing
614
673
  is automatic.
615
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
+
616
681
  ### …then make the verdict *act* (hooks)
617
682
 
618
683
  To go from "the agent can ask" to "the host won't let a bad call through", wire
@@ -661,45 +726,53 @@ honest caveat, carried on the install note itself: the Cowork app doesn't
661
726
  *fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
662
727
  Cowork's working DOS surface is the advisory one above.)
663
728
 
664
- Under the installer sits a pluggable dialect seam: the verdict is decided
665
- once, then rendered into whatever JSON shape the host parses
666
- ([docs/217](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/217_the-cross-vendor-hook-dialect-seam.md)) so a runtime the
667
- installer doesn't cover yet can still consume the same hooks. A sixth shipped
668
- dialect speaks **Hermes**: `dos hook pretool --dialect hermes` emits the
669
- `{"decision": "block", "reason": …}` object Hermes' `pre_tool_call` shell hook
670
- reads (wire it in `cli-config.yaml`). A new host's dialect is a driver, never a
671
- kernel edit.
672
-
673
- The flip side of that honesty: a host with **no** hook seam gets **no** dialect.
674
- ByteDance's **Trae** was proved out and ships no user-scriptable hook system in
675
- its personal/international editions (no lifecycle events, no deny/allow stdout
676
- contract; its CN-enterprise edition announced one on 2026-06-09 with no
677
- published grammar yet), so DOS binds to it advisory-only the MCP server in
678
- `.trae/mcp.json` (read alike by IDE-mode Agent, SOLO mode, and TRAE CLI), a
679
- verify-before-"done" rule in `.trae/rules/project_rules.md`, the generic
680
- skills in `.trae/skills/` — and `dos init --hooks trae` fails loud rather than
681
- writing config Trae would never read
682
- ([docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md)).
683
- An invented envelope would be fake enforcement, which is the exact failure the
684
- dialect seam exists to prevent.
685
-
686
- Because these hooks run on *every* tool call, the core kernel logic on the hot
687
- path is reimplemented in native Go a `dos-hook` binary that ports the actual
688
- decision predicates (the conjunctive-only lease-admission and
689
- prefix-disjointness floor, the `verify()` grep rung, self-modify, the marker
690
- budget, the WAL) rather than just shelling out to Python. It serves the
691
- per-call verdict in ~10 ms 16–43× faster than shelling
692
- `python -m dos.cli hook …` (~0.25–0.8 s, dominated by interpreter cold-start) —
693
- and is byte-identical to the Python kernel on the gated decision (the docs/124
694
- parity contract, pinned by Go parity tests). It owns the common fast path and
695
- falls back to the always-available Python verb for anything it doesn't yet
696
- serve, so a machine without the binary degrades cleanly with no wiring change
697
- ([docs/125](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/125_go-hook-fastpath-build-plan.md),
698
- [docs/270](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/270_go-hook-fastpath-benchmarks.md)). You don't build it
699
- yourself: the per-platform wheels bundle the binary, so a wheel install gets
700
- the native fast path with no Go toolchain and any platform without a bundled
701
- binary (including a plain source install) just runs the pure-Python path
702
- ([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)**.
703
776
 
704
777
  *Next level up — what to watch once a fleet runs through these hooks: [Operating a fleet](#operating-a-fleet).*
705
778
 
@@ -764,8 +837,8 @@ contract, the JUDGE-rung seam. The full map is in **[CLAUDE.md](https://github.c
764
837
 
765
838
  ## Install
766
839
 
767
- Pick the row that matches how you work — the full matrix (every OS, every
768
- 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
769
842
  **[docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)**:
770
843
 
771
844
  ```bash
@@ -804,29 +877,21 @@ its own install location, so the ground truth stays legible as the codebase
804
877
  grows. (The full separation contract — mechanism in the package, policy in the
805
878
  workspace's `dos.toml` — is in **[CLAUDE.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/CLAUDE.md)**.)
806
879
 
807
- For most repos that one `dos.toml` is the whole policy surface but when your
808
- lanes must be *computed* (from runtime state, an env var, a monorepo manifest)
809
- rather than listed, or you add a provider-backed JUDGE, you write a small
810
- **driver** instead: a `dos/drivers/<host>.py` exposing a `LaneTaxonomy` constant +
811
- a `<host>_config` factory, loaded by name via `dos --driver <host>` and never
812
- imported by the kernel. Copy [`dos/drivers/workshop.py`](https://github.com/anthony-chaudhary/dos-kernel/blob/master/src/dos/drivers/workshop.py)
813
- 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)**.
814
885
 
815
886
  ### Claude Code plugin — hooks + MCP + skills in one install
816
887
 
817
888
  If you drive a fleet with Claude Code, the lowest-friction way to bind the
818
889
  verdict to the runtime is the bundled plugin under
819
- [`claude-plugin/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/claude-plugin) — it packages all three runtime surfaces at
820
- once:
821
-
822
- - the **hooks** (`PreToolUse` deny a structurally-refused call · `PostToolUse`
823
- re-surface a stalled tool stream · `Stop` → refuse to stop on an unverified
824
- claim) — all fail-safe (they emit nothing and exit 0 on any error, so they never
825
- break a turn);
826
- - the **MCP server** (`dos_verify` / `dos_arbitrate` / `dos_commit_audit` /
827
- `dos_refuse_reasons` … as tools the model calls directly);
828
- - the **generic skill pack** (the domain-free dispatch screenplays), namespaced as
829
- `/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`, …):
830
895
 
831
896
  ```bash
832
897
  # 1. The plugin ships JSON + markdown; the brains ship as the pip package, so
@@ -848,90 +913,39 @@ with the source are in **[claude-plugin/README.md](https://github.com/anthony-ch
848
913
 
849
914
  ## CLI
850
915
 
851
- One `dos` entrypoint over the syscalls (see [QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md) for
852
- 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)**:
853
920
 
854
921
  ```bash
855
- # --- the syscalls ---
922
+ # --- the core verdicts ---
856
923
  dos verify PLAN PHASE # truth: did (plan,phase) ship? (works with no plan)
857
924
  dos commit-audit [REF] [--sweep] # truth: does a commit's SUBJECT match its own diff? (--sweep = drift rate over a range)
858
- dos verify-result --transcript T # fold-site witness: did a subagent's terminal record DIE (harness 429/quota)? (exit 3 = DEAD)
859
- dos coverage --declared N # fan-out coverage: how many of N declared workers REALLY returned a result vs died?
860
925
  dos liveness --run-id R --start-sha S # temporal: ADVANCING / SPINNING / STALLED?
861
- dos resume --run-id R # the resume verdict: replay a run's intent ledger, re-verify against git, PROPOSE the continuation
862
- dos complete --run-id R [--diverged] # completion verdict: is the WHOLE declared job done? (residual = declared − verified)
863
- dos rewind --run-id R [--fire SIGNAL] # conversation-rewind verdict: PROPOSE excising dead-end turns (never truncates)
864
- dos status --run-id R # the folded fact: one fail-closed digest of a run (liveness + verified progress + lease)
865
- 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)
866
- dos arbitrate --lane L --kind K --leases '[…]' # admission: may a lane start without collision? (decision only — journals nothing; hold via lease-lane)
867
- dos scope-gate --lane L [--staged] # binding pre-effect scope gate: may this PROPOSED write land in its lane? (ALLOW/REFUSE)
868
- dos lease {acquire,release,status} OWNER # the cross-process archive lock
869
- dos lease-lane {acquire,release,heartbeat,live} # durable lane lease over the pure arbiter (write-back to the WAL)
870
- dos run-id mint PROCESS # mint a correlation run-id
871
- dos id-alloc {allocate,peek} SCOPE # atomically allocate a never-reused, monotonic id for a scope
872
- dos journal {tail,replay,seq,compact} # the lane write-ahead log
873
- dos halt --handle H # the reap verb: emit the stop-plan for a live run/lease
874
- dos pickable / enumerate / cooldown / reconcile # picker substrate: anything pickable? why-not? tried recently? did the claim hold?
875
-
876
- # --- 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 ---
877
934
  dos init [DIR] # scaffold a dos.toml workspace config
878
935
  dos doctor [--json] [--check] # report the active workspace + taxonomy + predicates
879
- dos lint [--strict] [--json] # dead policy in this workspace's own dos.toml? (unreachable lanes, dangling refs)
880
- dos man {wedge,lane} [ID] # the self-describing manual over the registries
881
- dos exit-codes [VERB] # print the verdict-IS-the-exit-code table (all verbs or one)
882
- dos gate PACKET # typed empty-packet verdict (LIVE/DRAIN/STALE-STAMP/…)
883
- dos judge wedge RUN_TS # adjudicate a no-pick verdict (deterministic)
884
- dos judge-eval --judge N --cases C # score a JUDGE-rung adjudicator against labelled claims
885
- dos overlap-eval --policy P --cases C # score an overlap scorer by false-admit rate (the disjointness backtest)
886
- dos intervention-eval --cases C # score an intervention policy by NET task delta (not verdict accuracy)
887
- dos tool-stream-eval --cases C # score a stall-reader policy by NET recovery (not detection accuracy)
888
- dos precursor-gate-eval --cases C # score a precursor grammar by recall vs false-refute waste
889
- dos memory {recall,verify} # re-verify recalled agent-memory at read time (RECALL_FRESH/STALE/UNVERIFIABLE)
890
- dos health --lane L # pre-dispatch lane-health gate (overlap + recurring-blocker → route)
891
- dos scout # pre-dispatch chooser: pick the next activity before leasing a lane
892
- dos trace RUN_ID # walk one run across spine + intent ledger + WAL + git, joined by run_id
893
-
894
- # --- agent-host binding (Claude Code / MCP) ---
895
- dos guard [--verify-on-stop] -- CMD… # wrap a headless agent launch: inject the DOS MCP server (+ optional verify-on-stop Stop hook)
896
- dos hook {pretool,posttool,stop} # the live agent-host hook surface (PreToolUse deny / PostToolUse sensor / Stop verify)
897
-
898
- # --- live projections (read-only TUIs) ---
899
936
  dos top [--once] [--json] # live fleet watchdog: lanes, leases, verdicts, commits
900
- dos decisions [N] # the operator-decision queue (list + drill-in TUI)
901
- dos plan [--once] [--json] # work-terrain board: every phase, the plan's claim vs the oracle's verdict
902
- dos watch --track R [--budget-ms M] # the watchdog driver: poll liveness for tracked runs + propose halts on spin/hang
903
- dos loop --target N [--watch] [--json] # supervisor (init/PID-1): keep N dispatch-loops alive — emits a spawn/reap/flag plan
904
-
905
- # --- loop-economics & reliability verdicts (pure; exit code is the verdict) ---
906
- dos productivity --deltas 5,3,1,0 # is the run still doing work? PRODUCTIVE / DIMINISHING / STALLED
907
- dos efficiency --work W --tokens N # did the tokens buy work? EFFICIENT / COSTLY / WASTEFUL
908
- dos breaker --consecutive N --max-consecutive M # has this failure class tripped? CLOSED / OPEN (+ escalation rung)
909
- dos hook-exit --code N # map a shell hook's exit code → PASS / BLOCK / WARN
910
- dos exec-capability --command "…" # does this command grant arbitrary exec? BOUNDED / GRANTS_ARBITRARY_EXEC
911
- dos improve --suite-passed --truth-clean --work W --baseline-work B # self-improving loop: KEEP / REVERT / ESCALATE
912
- dos reward --claim --witness {confirm,refute,none} # may a fine-tune TRAIN on this trajectory? ACCEPT / REJECT_POISON
913
-
914
- # --- observability: the verdict journal → your dashboards ---
915
- dos observe [--run R] [--json] # project the verdict journal: every kernel adjudication, folded by run/syscall/verdict
916
- dos helped [--since TS] [--json] # the operator rollup: how many things DOS productively caught for you
917
- dos export [--to file|statsd|otlp] [--since SEQ] # drain the journal outward (Datadog / Honeycomb / Grafana); null = report only
918
- 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
919
-
920
- # --- portable proof (third-party verifiable, no loop access) ---
921
- dos attest --claim KEY {--accept-cmd CMD | --before P --after P} # mint an HMAC-signed receipt over an effect-witness verdict
922
- dos verify-receipt --receipt R # the skeptic's side: check the signature with the shared key alone (fails LOUD on tamper)
923
-
924
- # --- cross-project (machine-local index) ---
925
- dos projects # the projects DOS has served
926
- dos learn AXIS # aggregates over resolved decisions
927
- 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
928
939
  ```
929
940
 
930
941
  Most verbs take `--workspace .` (or honor `$DISPATCH_WORKSPACE` / cwd) and
931
942
  `--json` for machine-readable output. For verdict-bearing commands (`verify` /
932
- `liveness` / `gate`) **the exit code is the verdict.** A pluggable `--output
933
- <name>` renderer (the `dos.renderers` entry-point group) is covered in
934
- [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)**.
935
949
 
936
950
  ### Three live projections (read-only TUIs)
937
951
 
@@ -1064,6 +1078,11 @@ for a copy-me skeleton.
1064
1078
  - **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
1065
1079
  verify an agent's claim?", "does it need an LLM?"), each answered in one
1066
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.
1067
1086
  - **[docs/ALTERNATIVES.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/ALTERNATIVES.md)** — DOS and the
1068
1087
  alternatives: evals, framework guardrails, Temporal, in-toto, plain CI —
1069
1088
  what each does well, what DOS adds, and when NOT to use DOS.
@@ -1103,8 +1122,11 @@ back verbatim:
1103
1122
  (liveness), an [infra monorepo](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/05_infra-monorepo.md) (refusals).
1104
1123
  - [**Debug a stuck fleet** + FAQ](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/06_debug-a-stuck-fleet.md) —
1105
1124
  symptom → the one command that diagnoses it.
1106
- - Three cookbooks: [from Python](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-python-api.md),
1107
- [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
1108
1130
  [fleet frameworks](https://github.com/anthony-chaudhary/dos-kernel/blob/master/examples/playbooks/cookbook-fleet-frameworks.md) — LangGraph,
1109
1131
  CrewAI, AutoGen, the OpenAI/Claude Agents SDK — with every framework recipe also
1110
1132
  shipped as a runnable, suite-pinned file under