dos-kernel 0.23.4__tar.gz → 0.25.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 (418) hide show
  1. {dos_kernel-0.23.4/src/dos_kernel.egg-info → dos_kernel-0.25.0}/PKG-INFO +88 -30
  2. dos_kernel-0.23.4/PKG-INFO → dos_kernel-0.25.0/README.md +83 -77
  3. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/pyproject.toml +26 -1
  4. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/__init__.py +1 -1
  5. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/cli.py +523 -56
  6. dos_kernel-0.25.0/src/dos/drivers/agt_backend.py +357 -0
  7. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/hook_dialects.py +68 -0
  8. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/efficiency.py +41 -8
  9. dos_kernel-0.25.0/src/dos/efficiency_trend.py +267 -0
  10. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/help_summary.py +30 -1
  11. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_install.py +61 -0
  12. dos_kernel-0.25.0/src/dos/hook_observation.py +338 -0
  13. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/improve.py +41 -2
  14. dos_kernel-0.25.0/src/dos/override_facts.py +215 -0
  15. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pretool_sensor.py +195 -3
  16. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/EXAMPLES.md +1 -1
  17. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-dispatch/SKILL.md +33 -1
  18. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +1 -1
  19. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-next-up/SKILL.md +1 -1
  20. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-replan/SKILL.md +18 -0
  21. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-self-improve/SKILL.md +1 -1
  22. dos_kernel-0.25.0/src/dos/spend.py +276 -0
  23. dos_kernel-0.23.4/README.md → dos_kernel-0.25.0/src/dos_kernel.egg-info/PKG-INFO +135 -28
  24. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/SOURCES.txt +19 -0
  25. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/entry_points.txt +3 -0
  26. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/server.py +66 -3
  27. dos_kernel-0.25.0/tests/test_agt_backend.py +267 -0
  28. dos_kernel-0.25.0/tests/test_efficiency_trend.py +156 -0
  29. dos_kernel-0.25.0/tests/test_efficiency_trend_cli.py +145 -0
  30. dos_kernel-0.25.0/tests/test_gitignore_hygiene.py +116 -0
  31. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_dialect.py +23 -6
  32. dos_kernel-0.25.0/tests/test_hook_observation.py +392 -0
  33. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_pretool.py +59 -1
  34. dos_kernel-0.25.0/tests/test_init_hooks_auto.py +226 -0
  35. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_hooks_crossvendor.py +50 -1
  36. dos_kernel-0.25.0/tests/test_llms_full.py +81 -0
  37. dos_kernel-0.25.0/tests/test_llms_txt.py +70 -0
  38. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_mcp_server.py +97 -0
  39. dos_kernel-0.25.0/tests/test_override_window.py +273 -0
  40. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_release_bump.py +22 -19
  41. dos_kernel-0.25.0/tests/test_server_json_version.py +81 -0
  42. dos_kernel-0.25.0/tests/test_serverless_rl_example.py +230 -0
  43. dos_kernel-0.25.0/tests/test_spend.py +170 -0
  44. dos_kernel-0.25.0/tests/test_spend_cli.py +102 -0
  45. dos_kernel-0.25.0/tests/test_spend_evidence.py +125 -0
  46. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/LICENSE +0 -0
  47. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/setup.cfg +0 -0
  48. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_demo_story.py +0 -0
  49. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_filelock.py +0 -0
  50. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_job_policy.py +0 -0
  51. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_tree.py +0 -0
  52. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/admission.py +0 -0
  53. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/answer_shape.py +0 -0
  54. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/arbiter.py +0 -0
  55. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/archive_lock.py +0 -0
  56. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/arg_provenance.py +0 -0
  57. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/attest.py +0 -0
  58. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/breaker.py +0 -0
  59. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/churn.py +0 -0
  60. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/claim_extract.py +0 -0
  61. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/claim_ttl.py +0 -0
  62. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/commit_audit.py +0 -0
  63. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/completion.py +0 -0
  64. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/concurrency_class.py +0 -0
  65. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/config.py +0 -0
  66. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/config_lint.py +0 -0
  67. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/cooldown.py +0 -0
  68. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/coverage.py +0 -0
  69. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dangling_intent.py +0 -0
  70. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/data_class.py +0 -0
  71. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/decisions.py +0 -0
  72. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/decisions_tui.py +0 -0
  73. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dispatch_top.py +0 -0
  74. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dispatch_top_tui.py +0 -0
  75. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/__init__.py +0 -0
  76. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/ci_status.py +0 -0
  77. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/citation_resolve.py +0 -0
  78. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/decision_stop.py +0 -0
  79. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/design_doc_plan.py +0 -0
  80. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_file.py +0 -0
  81. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_otlp.py +0 -0
  82. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_statsd.py +0 -0
  83. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/job.py +0 -0
  84. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/llm_judge.py +0 -0
  85. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/memory_recall.py +0 -0
  86. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/notify_slack.py +0 -0
  87. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/notify_webhook.py +0 -0
  88. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/operator_judge.py +0 -0
  89. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/os_acceptance.py +0 -0
  90. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/paste_log.py +0 -0
  91. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/plan_scope.py +0 -0
  92. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/self_improve.py +0 -0
  93. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/similarity_judge.py +0 -0
  94. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/state_diff.py +0 -0
  95. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/supervisor.py +0 -0
  96. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/watchdog.py +0 -0
  97. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/workshop.py +0 -0
  98. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/durable_schema.py +0 -0
  99. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/effect_witness.py +0 -0
  100. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/enforce.py +0 -0
  101. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/enumerate.py +0 -0
  102. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/env_print.py +0 -0
  103. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/event_severity.py +0 -0
  104. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/evidence.py +0 -0
  105. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/exec_capability.py +0 -0
  106. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/export_cursor.py +0 -0
  107. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/exporter.py +0 -0
  108. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/firing_label.py +0 -0
  109. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/fleet_roll.py +0 -0
  110. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/gate_classify.py +0 -0
  111. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/gh4_coverage.py +0 -0
  112. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/git_delta.py +0 -0
  113. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/guard.py +0 -0
  114. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/health.py +0 -0
  115. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/home.py +0 -0
  116. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_binary.py +0 -0
  117. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_dialect.py +0 -0
  118. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_exit.py +0 -0
  119. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/id_alloc.py +0 -0
  120. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intent_ledger.py +0 -0
  121. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/interpret.py +0 -0
  122. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intervention.py +0 -0
  123. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intervention_eval.py +0 -0
  124. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/journal_delta.py +0 -0
  125. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/judge_eval.py +0 -0
  126. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/judges.py +0 -0
  127. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_infer.py +0 -0
  128. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_journal.py +0 -0
  129. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_lease.py +0 -0
  130. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_overlap.py +0 -0
  131. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lease_health.py +0 -0
  132. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lifecycle.py +0 -0
  133. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/liveness.py +0 -0
  134. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lock_modes.py +0 -0
  135. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/log_source.py +0 -0
  136. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/loop_decide.py +0 -0
  137. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/marker_gate.py +0 -0
  138. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/marker_sensor.py +0 -0
  139. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/noop_streak.py +0 -0
  140. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/notify.py +0 -0
  141. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/observe.py +0 -0
  142. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/oracle.py +0 -0
  143. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/overlap_eval.py +0 -0
  144. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/overlap_policy.py +0 -0
  145. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/packet_sidecar.py +0 -0
  146. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/phase_shipped.py +0 -0
  147. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pick_priority.py +0 -0
  148. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pickable.py +0 -0
  149. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/picker_oracle.py +0 -0
  150. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_board.py +0 -0
  151. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_board_tui.py +0 -0
  152. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_source.py +0 -0
  153. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/posttool_sensor.py +0 -0
  154. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/precursor_gate.py +0 -0
  155. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/precursor_gate_eval.py +0 -0
  156. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/preflight.py +0 -0
  157. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/proc_delta.py +0 -0
  158. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/productivity.py +0 -0
  159. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/provider_limit.py +0 -0
  160. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/py.typed +0 -0
  161. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reason_morphology.py +0 -0
  162. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reasons.py +0 -0
  163. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reconcile.py +0 -0
  164. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/recurring_wedge.py +0 -0
  165. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/render.py +0 -0
  166. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/result_state.py +0 -0
  167. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/resume.py +0 -0
  168. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/resume_evidence.py +0 -0
  169. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/retention.py +0 -0
  170. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reward.py +0 -0
  171. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind.py +0 -0
  172. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind_evidence.py +0 -0
  173. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind_tokens.py +0 -0
  174. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/run_id.py +0 -0
  175. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scope.py +0 -0
  176. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scope_source.py +0 -0
  177. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scout.py +0 -0
  178. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/self_modify.py +0 -0
  179. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/sibling_scan.py +0 -0
  180. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
  181. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-goal-gate/SKILL.md +0 -0
  182. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
  183. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-replan-loop/SKILL.md +0 -0
  184. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-supervise-loop/SKILL.md +0 -0
  185. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
  186. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
  187. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/stamp.py +0 -0
  188. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/state_health.py +0 -0
  189. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/status.py +0 -0
  190. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/stop_policy.py +0 -0
  191. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/supervise.py +0 -0
  192. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/testwitness.py +0 -0
  193. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/timeline.py +0 -0
  194. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tokens.py +0 -0
  195. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tool_stream.py +0 -0
  196. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tool_stream_eval.py +0 -0
  197. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/trace.py +0 -0
  198. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict.py +0 -0
  199. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_cli.py +0 -0
  200. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_journal.py +0 -0
  201. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_rollup.py +0 -0
  202. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdicts.py +0 -0
  203. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/wedge_reason.py +0 -0
  204. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
  205. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/requires.txt +0 -0
  206. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
  207. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/__init__.py +0 -0
  208. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/py.typed +0 -0
  209. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_admission.py +0 -0
  210. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agent_surface.py +0 -0
  211. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agenthallu_replay.py +0 -0
  212. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agentprocessbench_replay.py +0 -0
  213. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_answer_shape.py +0 -0
  214. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_arbiter.py +0 -0
  215. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_archive_lock.py +0 -0
  216. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_arg_provenance.py +0 -0
  217. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_attest.py +0 -0
  218. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_backflow_ledger.py +0 -0
  219. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_bench_layering.py +0 -0
  220. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_breaker.py +0 -0
  221. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_build_wheels_binary_format.py +0 -0
  222. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_canonical_example_lockstep.py +0 -0
  223. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_central_index.py +0 -0
  224. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_churn.py +0 -0
  225. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_ci_status.py +0 -0
  226. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_citation_resolve.py +0 -0
  227. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claim_extract.py +0 -0
  228. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claim_ttl.py +0 -0
  229. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claims_lint.py +0 -0
  230. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_ergonomics.py +0 -0
  231. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_loop.py +0 -0
  232. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_pickable_enumerate.py +0 -0
  233. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cmd_status.py +0 -0
  234. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_commit_audit.py +0 -0
  235. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_completion.py +0 -0
  236. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_concurrency_class.py +0 -0
  237. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_config_lint.py +0 -0
  238. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cooldown.py +0 -0
  239. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_coverage.py +0 -0
  240. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dangling_intent.py +0 -0
  241. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_data_class.py +0 -0
  242. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_decisions.py +0 -0
  243. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_design_doc_plan_source.py +0 -0
  244. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dispatch_loop_substrate.py +0 -0
  245. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dispatch_top.py +0 -0
  246. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_docs_version_drift.py +0 -0
  247. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_doctor_json.py +0 -0
  248. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dos_react_terminal_error.py +0 -0
  249. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_self_improve.py +0 -0
  250. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_supervisor.py +0 -0
  251. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_watchdog.py +0 -0
  252. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_workshop.py +0 -0
  253. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_durable_schema.py +0 -0
  254. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_effect_witness.py +0 -0
  255. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_efficiency.py +0 -0
  256. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enforce.py +0 -0
  257. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_ensure_home.py +0 -0
  258. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enterpriseops_harness.py +0 -0
  259. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enumerate.py +0 -0
  260. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_env_print.py +0 -0
  261. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_event_severity.py +0 -0
  262. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_evidence.py +0 -0
  263. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_exec_capability.py +0 -0
  264. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_cli.py +0 -0
  265. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_cursor.py +0 -0
  266. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_otlp.py +0 -0
  267. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_statsd.py +0 -0
  268. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_exporter.py +0 -0
  269. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_feasibility_split.py +0 -0
  270. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_filelock.py +0 -0
  271. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_filepath_backstop_batch.py +0 -0
  272. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_firing_label.py +0 -0
  273. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_fleet_framework_examples.py +0 -0
  274. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_fleet_roll.py +0 -0
  275. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_gate_cli.py +0 -0
  276. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_gh4_coverage.py +0 -0
  277. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_git_hygiene.py +0 -0
  278. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_go_hook_parity.py +0 -0
  279. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_guard.py +0 -0
  280. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_health.py +0 -0
  281. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_help_summary.py +0 -0
  282. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hermes_integration_example.py +0 -0
  283. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_home_layering.py +0 -0
  284. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_home_no_temp_pollution.py +0 -0
  285. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_binaries_bundled.py +0 -0
  286. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_binary_locator.py +0 -0
  287. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_exit.py +0 -0
  288. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_stop.py +0 -0
  289. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_id_alloc.py +0 -0
  290. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_improve.py +0 -0
  291. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_hooks.py +0 -0
  292. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_skills.py +0 -0
  293. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_install_drift.py +0 -0
  294. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_install_levels.py +0 -0
  295. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intent_ledger.py +0 -0
  296. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_interpret_parity.py +0 -0
  297. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention.py +0 -0
  298. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention_cli.py +0 -0
  299. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention_eval.py +0 -0
  300. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_journal_delta.py +0 -0
  301. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judge.py +0 -0
  302. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judge_eval.py +0 -0
  303. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judges.py +0 -0
  304. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_adopt.py +0 -0
  305. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_halt.py +0 -0
  306. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_infer.py +0 -0
  307. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_journal.py +0 -0
  308. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease.py +0 -0
  309. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease_expiry.py +0 -0
  310. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease_mutex.py +0 -0
  311. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_overlap.py +0 -0
  312. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_leak_scan.py +0 -0
  313. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lease_health.py +0 -0
  314. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lifecycle.py +0 -0
  315. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_liveness.py +0 -0
  316. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_llm_judge_vendor_seam.py +0 -0
  317. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lock_modes.py +0 -0
  318. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_log_source.py +0 -0
  319. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_marker_gate.py +0 -0
  320. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_marker_sensor.py +0 -0
  321. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_memory_recall.py +0 -0
  322. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_noop_streak.py +0 -0
  323. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify.py +0 -0
  324. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_cli.py +0 -0
  325. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_slack.py +0 -0
  326. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_webhook.py +0 -0
  327. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_observe.py +0 -0
  328. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_operator_judge.py +0 -0
  329. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_and_loop.py +0 -0
  330. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_forgeability_provenance.py +0 -0
  331. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_grep_in_process.py +0 -0
  332. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_overlap_policy.py +0 -0
  333. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_packet_sidecar.py +0 -0
  334. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_phase_labels.py +0 -0
  335. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_pick_priority.py +0 -0
  336. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_pickable.py +0 -0
  337. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plan_board.py +0 -0
  338. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plan_source.py +0 -0
  339. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plugin_manifest.py +0 -0
  340. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_posttool_sensor.py +0 -0
  341. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_precursor_gate.py +0 -0
  342. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_precursor_gate_eval.py +0 -0
  343. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_preflight_sidecar.py +0 -0
  344. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_proc_delta.py +0 -0
  345. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_productivity.py +0 -0
  346. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_breaker.py +0 -0
  347. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_cooldown.py +0 -0
  348. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_efficiency.py +0 -0
  349. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_install_wrappers.py +0 -0
  350. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_overlap_soundness.py +0 -0
  351. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_productivity.py +0 -0
  352. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_reconcile.py +0 -0
  353. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_reward_nonforgeability.py +0 -0
  354. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_tree.py +0 -0
  355. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_provider_limit.py +0 -0
  356. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_readme_assembly.py +0 -0
  357. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reconcile.py +0 -0
  358. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_recurring_wedge.py +0 -0
  359. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_refusal_and_tokens.py +0 -0
  360. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reindex.py +0 -0
  361. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_render.py +0 -0
  362. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_replan_skip.py +0 -0
  363. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_result_state.py +0 -0
  364. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_cli.py +0 -0
  365. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_evidence.py +0 -0
  366. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_reachability.py +0 -0
  367. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_retention.py +0 -0
  368. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reward.py +0 -0
  369. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_rewind.py +0 -0
  370. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_rewind_cli.py +0 -0
  371. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope.py +0 -0
  372. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_gate.py +0 -0
  373. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_gate_cli.py +0 -0
  374. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_source.py +0 -0
  375. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scout.py +0 -0
  376. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_selfmodify_hook_probe.py +0 -0
  377. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_sibling_scan.py +0 -0
  378. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_similarity_judge.py +0 -0
  379. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_dispatch.py +0 -0
  380. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_generic.py +0 -0
  381. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_litmus.py +0 -0
  382. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_operator_tier.py +0 -0
  383. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_replan.py +0 -0
  384. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stall_sim.py +0 -0
  385. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_convention.py +0 -0
  386. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_doctor.py +0 -0
  387. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_filepath_rung.py +0 -0
  388. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_trailer.py +0 -0
  389. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_diff.py +0 -0
  390. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_health.py +0 -0
  391. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_health_doctor.py +0 -0
  392. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_home.py +0 -0
  393. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_status_digest.py +0 -0
  394. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stop_policy.py +0 -0
  395. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
  396. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_supervise.py +0 -0
  397. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_testwitness.py +0 -0
  398. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_timeline_timing.py +0 -0
  399. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_tool_stream.py +0 -0
  400. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_tool_stream_cli.py +0 -0
  401. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_live_adapter.py +0 -0
  402. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_replay.py +0 -0
  403. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
  404. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_trace.py +0 -0
  405. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_trajectory_audit.py +0 -0
  406. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_vendor_agnostic_kernel.py +0 -0
  407. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_cli.py +0 -0
  408. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_contract.py +0 -0
  409. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_journal.py +0 -0
  410. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_rollup.py +0 -0
  411. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdicts.py +0 -0
  412. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_color.py +0 -0
  413. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_demo_contract.py +0 -0
  414. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_no_plan.py +0 -0
  415. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_non_git_rung.py +0 -0
  416. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_plugin_install.py +0 -0
  417. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_workflow_yaml_parses.py +0 -0
  418. {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_workspace_config.py +0 -0
@@ -1,15 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dos-kernel
3
- Version: 0.23.4
3
+ Version: 0.25.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
7
7
  Project-URL: Homepage, https://github.com/anthony-chaudhary/dos-kernel
8
+ Project-URL: Website, https://anthony-chaudhary.github.io/dos-kernel/
8
9
  Project-URL: Documentation, https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md
10
+ Project-URL: FAQ, https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md
11
+ Project-URL: llms.txt, https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/llms.txt
9
12
  Project-URL: Repository, https://github.com/anthony-chaudhary/dos-kernel
10
13
  Project-URL: Issues, https://github.com/anthony-chaudhary/dos-kernel/issues
11
14
  Project-URL: Changelog, https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases
12
- Keywords: agents,ai-agents,llm,multi-agent,agent-orchestration,orchestration,dispatch,scheduler,oracle,leases,verification,trust,mcp
15
+ Keywords: agents,ai-agents,llm,multi-agent,agent-orchestration,orchestration,dispatch,scheduler,oracle,leases,verification,trust,mcp,claude,claude-code,mcp-server,model-context-protocol,agent-verification,autonomous-agents,agent-monitoring
13
16
  Classifier: Development Status :: 4 - Beta
14
17
  Classifier: Intended Audience :: Developers
15
18
  Classifier: License :: OSI Approved :: MIT License
@@ -96,7 +99,23 @@ zero config, and the only thing you ever install is one small Python package.
96
99
  > ⏱️ **Want to try it right now?** Jump to **[Try it in 60 seconds](#try-it-in-60-seconds)**
97
100
  > — one command, real output, then come back for the why.
98
101
 
99
- <sub>**v0.23.4** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
102
+ > ⚡ **Or just add it two commands, zero decisions.** From the repo where your
103
+ > agent works:
104
+ >
105
+ > ```bash
106
+ > pip install dos-kernel
107
+ > dos init --hooks auto # finds the agent runtime(s) you already use, wires in the checks
108
+ > ```
109
+ >
110
+ > From then on: your agent can't tell you **"done"** unless the work actually
111
+ > landed, two agents can't silently overwrite each other's files, and a run
112
+ > that stalls gets flagged instead of quietly spinning. Nothing about your
113
+ > workflow changes, and you don't need to learn any of the vocabulary below to
114
+ > be covered. It prints the one config file it wrote; deleting the `dos hook`
115
+ > entries there undoes it. (No runtime detected? It says so and lists the
116
+ > names to pick from — it never guesses.)
117
+
118
+ <sub>**v0.25.0** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
100
119
  smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
101
120
 
102
121
  > 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
@@ -111,6 +130,13 @@ smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
111
130
  > your work, the ~5 files actually worth reading, and the architecture rules a
112
131
  > change must satisfy.
113
132
 
133
+ > 🔤 **Five words the rest of this page leans on.** A **plan** is a named goal
134
+ > (`AUTH`); a **phase** is one shippable step of it (`AUTH1`); a **lane** is the
135
+ > slice of the file tree one agent may touch; the **oracle** is the part of DOS
136
+ > that reads the evidence and rules; a **stamp** is the mark a shipped phase
137
+ > leaves in a commit subject (`AUTH1: …`) — the thing the oracle greps for.
138
+ > That's the whole vocabulary.
139
+
114
140
  <a id="who-this-is-for"></a>
115
141
 
116
142
  ## Who this is for
@@ -209,8 +235,8 @@ echo 'def login(): ...' > login.py
209
235
  git add -A
210
236
  git commit -m "AUTH1: ship the login endpoint" # stamp AUTH1 shipped: <PHASE-ID>: <message>
211
237
 
212
- dos verify --workspace . AUTH AUTH1 # → SHIPPED AUTH AUTH1 e389e8b (via grep-subject) exit 0
213
- dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2 (via none) exit 1
238
+ dos verify --workspace . AUTH AUTH1 # → SHIPPED AUTH AUTH1 <your-sha> (via grep-subject) exit 0
239
+ dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2 (via none) exit 1
214
240
  ```
215
241
 
216
242
  An agent can claim `AUTH2` is done all day long; `verify` just reports what the
@@ -542,9 +568,11 @@ first (`dos_verify` "did it ship?", `dos_commit_audit` "does this commit's claim
542
568
  match its diff?", `dos_status` one folded fact about a run), then
543
569
  `dos_arbitrate` (may two workers run without colliding?), the structured-refusal
544
570
  pair (`dos_refuse_reasons` / `dos_check_reason`), `dos_recall` (is this recalled
545
- memory still true?), and `dos_doctor` (the workspace report) so any
546
- MCP-speaking hostClaude Desktop, Cursor, Cline, Trae, an Agent-SDK app — can
547
- call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
571
+ memory still true?), `dos_citation_resolve` (does this cited legal case exist in
572
+ a third-party reporter?the *Mata v. Avianca* witness), and `dos_doctor` (the
573
+ workspace report) so any
574
+ MCP-speaking host — Claude Desktop, Claude Cowork, Cursor, Cline, Trae, an
575
+ Agent-SDK app — can call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
548
576
  back with a one-line interpretation of what it means for the agent's next move.
549
577
  (See **[the MCP server surface](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/80_mcp-server-surface.md)**.)
550
578
 
@@ -566,22 +594,37 @@ DOS's hooks into the runtime you actually run. One command per host — it write
566
594
  that host's own hook-config file, merged into anything already there:
567
595
 
568
596
  ```bash
597
+ dos init --hooks auto . # don't know the names below? this detects the
598
+ # runtime(s) this repo already uses and wires them all
569
599
  dos init --hooks claude-code . # .claude/settings.json
570
600
  dos init --hooks cursor . # .cursor/hooks.json
571
601
  dos init --hooks codex . # .codex/config.toml
572
602
  dos init --hooks gemini . # .gemini/settings.json
573
603
  dos init --hooks antigravity . # .agents/hooks.json
604
+ dos init --hooks claude-cowork . # the SAME .claude/settings.json Claude Code reads
574
605
  ```
575
606
 
576
607
  That binds three shipped hooks: `pretool` denies a structurally-refused call
577
608
  before it runs, `stop` refuses a stop on an unverified "done," `posttool`
578
609
  re-surfaces a stalled stream. This is the **enforcement** path (the *host*
579
610
  denies on a DOS verdict) — the complement to MCP's advisory path. Until
580
- recently this spoke only Claude Code; it now installs across five hosts —
581
- Claude Code, Cursor, Codex, Gemini, and Antigravity
611
+ recently this spoke only Claude Code; it now installs across six hosts —
612
+ Claude Code, Cursor, Codex, Gemini, Antigravity, and Claude Cowork
582
613
  ([docs/221](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/221_the-cross-vendor-hook-installer.md),
583
- [docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md)).
584
- `--with-hooks` is the back-compat alias for `--hooks claude-code`.
614
+ [docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md),
615
+ [docs/298](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/298_claude-cowork-the-sixth-host-shared-surface.md)).
616
+ `--with-hooks` is the back-compat alias for `--hooks claude-code`. `auto`
617
+ ([docs/303](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/303_hooks-auto-detection-plan.md))
618
+ names the host *for* you: it probes which of those config dirs already exist in
619
+ the repo — plus the shell's own environment, so a fresh repo opened inside
620
+ Claude Code still detects — wires every runtime it finds (a shared config file
621
+ is wired once), and fails loud with the list above when nothing is detectable,
622
+ never guessing. Claude
623
+ Cowork is the *shared-surface* host: it runs the same agent harness as Claude
624
+ Code, so wiring either name binds both — one file, one set of hooks. (One
625
+ honest caveat, carried on the install note itself: the Cowork app doesn't
626
+ *fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
627
+ Cowork's working DOS surface is the advisory one above.)
585
628
 
586
629
  Under the installer sits a pluggable dialect seam: the verdict is decided
587
630
  once, then rendered into whatever JSON shape the host parses
@@ -593,12 +636,15 @@ reads (wire it in `cli-config.yaml`). A new host's dialect is a driver, never a
593
636
  kernel edit.
594
637
 
595
638
  The flip side of that honesty: a host with **no** hook seam gets **no** dialect.
596
- ByteDance's **Trae** was proved out and has no hook system at all (no lifecycle
597
- events, no deny/allow stdout contract), so DOS binds to it advisory-only — the
598
- MCP server in `.trae/mcp.json`, a verify-before-"done" rule in
599
- `.trae/rules/project_rules.md`, the generic skills in `.trae/skills/`and
600
- `dos init --hooks trae` fails loud rather than writing config Trae would never
601
- read ([docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md)).
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)).
602
648
  An invented envelope would be fake enforcement, which is the exact failure the
603
649
  dialect seam exists to prevent.
604
650
 
@@ -688,14 +734,14 @@ channel, upgrade/uninstall, WSL, troubleshooting) is in
688
734
  **[docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)**:
689
735
 
690
736
  ```bash
691
- # uv — the modern, fast, isolated CLI install (recommended):
692
- uv tool install dos-kernel # `dos` + `dos-mcp` on PATH
693
- uvx --from dos-kernel dos doctor # or run it once, ephemerally
694
-
695
- # pip — the library-consumer path (a host pins dos-kernel in its own venv):
737
+ # pip — the default (the line the 60-second demo ran; also how a host pins it):
696
738
  pip install dos-kernel # core kernel (PyYAML only)
697
739
  pip install "dos-kernel[mcp]" # + the MCP server (dos-mcp)
698
740
 
741
+ # uv — the isolated CLI install (keeps `dos` + `dos-mcp` off your project venv):
742
+ uv tool install dos-kernel # `dos` + `dos-mcp` on PATH
743
+ uvx --from dos-kernel dos doctor # or run it once, ephemerally
744
+
699
745
  # from a clone — editable, the contributor path (tracking unreleased master:
700
746
  # pip install "dos-kernel @ git+https://github.com/anthony-chaudhary/dos-kernel", no clone needed):
701
747
  git clone https://github.com/anthony-chaudhary/dos-kernel.git && cd dos-kernel
@@ -709,10 +755,12 @@ pip install -e . # editable: your edits are live in the install
709
755
  > `[mcp]` extra adds the MCP framework; `[tui]` adds the live `dos top` screens).
710
756
  > See [SECURITY.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/SECURITY.md), "Supply chain."
711
757
 
712
- Prefer a package manager? **uv** is the 2026 defaultfaster than `pipx`,
713
- isolates the tool, and manages Python versions; `pipx install dos-kernel` works
714
- the same way if your team already uses it. Homebrew / WinGet / Scoop one-liners
715
- are next on the release runway (see [docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)).
758
+ `pip install dos-kernel` is the whole installif it worked in the demo,
759
+ you're done here. The other rows exist for how *your* team works: **uv** if you
760
+ want the CLI isolated from your project venv (faster than `pipx`, manages
761
+ Python versions; `pipx install dos-kernel` works the same way), the clone if
762
+ you're contributing. Homebrew / WinGet / Scoop one-liners are next on the
763
+ release runway (see [docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)).
716
764
 
717
765
  A host repo adds DOS as a pinned dependency and points it at its own tree — never
718
766
  by vendoring the code in. DOS is stateless about which repo it serves: it
@@ -758,9 +806,9 @@ pip install "dos-kernel[mcp]"
758
806
 
759
807
  After installing, run **`/dos-kernel:dos-setup`** once — it confirms the package
760
808
  is importable, reports what the plugin wired, and points at the next skill. The
761
- same three hooks are available à la carte via `dos init --hooks claude-code`
762
- (and for Cursor / Codex / Gemini); the plugin is just the pre-packaged Claude
763
- Code form. The bundle's design + the build that keeps its skills in lockstep
809
+ same three hooks are available à la carte via `dos init --hooks auto` (detects
810
+ your runtime; or name one claude-code, cursor, codex, gemini, antigravity,
811
+ claude-cowork); the plugin is just the pre-packaged Claude Code form. The bundle's design + the build that keeps its skills in lockstep
764
812
  with the source are in **[claude-plugin/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/claude-plugin/README.md)**.
765
813
 
766
814
  ## CLI
@@ -978,12 +1026,17 @@ for a copy-me skeleton.
978
1026
  ## Documentation
979
1027
 
980
1028
  - **[docs/QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md)** — runnable 5-minute hello-world. Start here.
1029
+ - **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
1030
+ verify an agent's claim?", "does it need an LLM?"), each answered in one
1031
+ self-contained block.
981
1032
  - **[docs/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/README.md)** — the docs index (guides vs. design notes
982
1033
  vs. the dated build-journal; the numbers are chronology, not a reading order).
983
1034
  - **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)** — extend DOS without forking it.
984
1035
  - **[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
985
1036
  architecture contract and how to send a change.
986
1037
  - **[docs/releases/](https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases)** — per-version release notes (the changelog).
1038
+ - **[The website](https://anthony-chaudhary.github.io/dos-kernel/)** — this page,
1039
+ condensed to one screen (good for sending to someone).
987
1040
 
988
1041
  ## Playbooks & examples
989
1042
 
@@ -1095,3 +1148,8 @@ preparation. Until the arXiv ID lands, cite the repository:
1095
1148
  ## License
1096
1149
 
1097
1150
  MIT — see [LICENSE](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE).
1151
+
1152
+ <!-- The marker below is the official MCP Registry's PyPI ownership proof: the
1153
+ registry only accepts a server.json naming the `dos-kernel` PyPI package if
1154
+ this exact token appears in the published package README. Keep it intact. -->
1155
+ <!-- mcp-name: io.github.anthony-chaudhary/dos-kernel -->
@@ -1,52 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: dos-kernel
3
- Version: 0.23.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
- Author: Anthony Chaudhary
6
- License: MIT
7
- Project-URL: Homepage, https://github.com/anthony-chaudhary/dos-kernel
8
- Project-URL: Documentation, https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md
9
- Project-URL: Repository, https://github.com/anthony-chaudhary/dos-kernel
10
- Project-URL: Issues, https://github.com/anthony-chaudhary/dos-kernel/issues
11
- Project-URL: Changelog, https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases
12
- Keywords: agents,ai-agents,llm,multi-agent,agent-orchestration,orchestration,dispatch,scheduler,oracle,leases,verification,trust,mcp
13
- Classifier: Development Status :: 4 - Beta
14
- Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
- Classifier: Operating System :: OS Independent
17
- Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
- Classifier: Programming Language :: Python :: 3.13
21
- Classifier: Topic :: Software Development :: Quality Assurance
22
- Classifier: Topic :: Software Development :: Version Control :: Git
23
- Classifier: Topic :: System :: Distributed Computing
24
- Classifier: Typing :: Typed
25
- Requires-Python: >=3.11
26
- Description-Content-Type: text/markdown
27
- License-File: LICENSE
28
- Requires-Dist: pyyaml>=6.0
29
- Provides-Extra: dev
30
- Requires-Dist: pytest>=8.0; extra == "dev"
31
- Requires-Dist: build>=1.0; extra == "dev"
32
- Requires-Dist: wheel>=0.43; extra == "dev"
33
- Requires-Dist: ruff>=0.13; extra == "dev"
34
- Requires-Dist: mypy>=1.17; extra == "dev"
35
- Requires-Dist: hypothesis>=6.100; extra == "dev"
36
- Provides-Extra: mcp
37
- Requires-Dist: mcp>=1.2; extra == "mcp"
38
- Provides-Extra: tui
39
- Requires-Dist: rich>=13; extra == "tui"
40
- Requires-Dist: windows-curses>=2.3; sys_platform == "win32" and extra == "tui"
41
- Provides-Extra: notify-slack
42
- Requires-Dist: slack-helpers>=0.2; extra == "notify-slack"
43
- Provides-Extra: export-otlp
44
- Requires-Dist: opentelemetry-sdk>=1.20; extra == "export-otlp"
45
- Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.20; extra == "export-otlp"
46
- Provides-Extra: paper
47
- Requires-Dist: arxiv-latex-cleaner>=1.0; extra == "paper"
48
- Dynamic: license-file
49
-
50
1
  <!-- GENERATED FILE — do not edit README.md directly.
51
2
  The source of truth is docs/readme/ (one file per section, assembled
52
3
  in filename order). Edit the part, then run:
@@ -96,7 +47,23 @@ zero config, and the only thing you ever install is one small Python package.
96
47
  > ⏱️ **Want to try it right now?** Jump to **[Try it in 60 seconds](#try-it-in-60-seconds)**
97
48
  > — one command, real output, then come back for the why.
98
49
 
99
- <sub>**v0.23.4** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
50
+ > ⚡ **Or just add it two commands, zero decisions.** From the repo where your
51
+ > agent works:
52
+ >
53
+ > ```bash
54
+ > pip install dos-kernel
55
+ > dos init --hooks auto # finds the agent runtime(s) you already use, wires in the checks
56
+ > ```
57
+ >
58
+ > From then on: your agent can't tell you **"done"** unless the work actually
59
+ > landed, two agents can't silently overwrite each other's files, and a run
60
+ > that stalls gets flagged instead of quietly spinning. Nothing about your
61
+ > workflow changes, and you don't need to learn any of the vocabulary below to
62
+ > be covered. It prints the one config file it wrote; deleting the `dos hook`
63
+ > entries there undoes it. (No runtime detected? It says so and lists the
64
+ > names to pick from — it never guesses.)
65
+
66
+ <sub>**v0.25.0** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
100
67
  smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
101
68
 
102
69
  > 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
@@ -111,6 +78,13 @@ smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
111
78
  > your work, the ~5 files actually worth reading, and the architecture rules a
112
79
  > change must satisfy.
113
80
 
81
+ > 🔤 **Five words the rest of this page leans on.** A **plan** is a named goal
82
+ > (`AUTH`); a **phase** is one shippable step of it (`AUTH1`); a **lane** is the
83
+ > slice of the file tree one agent may touch; the **oracle** is the part of DOS
84
+ > that reads the evidence and rules; a **stamp** is the mark a shipped phase
85
+ > leaves in a commit subject (`AUTH1: …`) — the thing the oracle greps for.
86
+ > That's the whole vocabulary.
87
+
114
88
  <a id="who-this-is-for"></a>
115
89
 
116
90
  ## Who this is for
@@ -209,8 +183,8 @@ echo 'def login(): ...' > login.py
209
183
  git add -A
210
184
  git commit -m "AUTH1: ship the login endpoint" # stamp AUTH1 shipped: <PHASE-ID>: <message>
211
185
 
212
- dos verify --workspace . AUTH AUTH1 # → SHIPPED AUTH AUTH1 e389e8b (via grep-subject) exit 0
213
- dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2 (via none) exit 1
186
+ dos verify --workspace . AUTH AUTH1 # → SHIPPED AUTH AUTH1 <your-sha> (via grep-subject) exit 0
187
+ dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2 (via none) exit 1
214
188
  ```
215
189
 
216
190
  An agent can claim `AUTH2` is done all day long; `verify` just reports what the
@@ -542,9 +516,11 @@ first (`dos_verify` "did it ship?", `dos_commit_audit` "does this commit's claim
542
516
  match its diff?", `dos_status` one folded fact about a run), then
543
517
  `dos_arbitrate` (may two workers run without colliding?), the structured-refusal
544
518
  pair (`dos_refuse_reasons` / `dos_check_reason`), `dos_recall` (is this recalled
545
- memory still true?), and `dos_doctor` (the workspace report) so any
546
- MCP-speaking hostClaude Desktop, Cursor, Cline, Trae, an Agent-SDK app — can
547
- call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
519
+ memory still true?), `dos_citation_resolve` (does this cited legal case exist in
520
+ a third-party reporter?the *Mata v. Avianca* witness), and `dos_doctor` (the
521
+ workspace report) so any
522
+ MCP-speaking host — Claude Desktop, Claude Cowork, Cursor, Cline, Trae, an
523
+ Agent-SDK app — can call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
548
524
  back with a one-line interpretation of what it means for the agent's next move.
549
525
  (See **[the MCP server surface](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/80_mcp-server-surface.md)**.)
550
526
 
@@ -566,22 +542,37 @@ DOS's hooks into the runtime you actually run. One command per host — it write
566
542
  that host's own hook-config file, merged into anything already there:
567
543
 
568
544
  ```bash
545
+ dos init --hooks auto . # don't know the names below? this detects the
546
+ # runtime(s) this repo already uses and wires them all
569
547
  dos init --hooks claude-code . # .claude/settings.json
570
548
  dos init --hooks cursor . # .cursor/hooks.json
571
549
  dos init --hooks codex . # .codex/config.toml
572
550
  dos init --hooks gemini . # .gemini/settings.json
573
551
  dos init --hooks antigravity . # .agents/hooks.json
552
+ dos init --hooks claude-cowork . # the SAME .claude/settings.json Claude Code reads
574
553
  ```
575
554
 
576
555
  That binds three shipped hooks: `pretool` denies a structurally-refused call
577
556
  before it runs, `stop` refuses a stop on an unverified "done," `posttool`
578
557
  re-surfaces a stalled stream. This is the **enforcement** path (the *host*
579
558
  denies on a DOS verdict) — the complement to MCP's advisory path. Until
580
- recently this spoke only Claude Code; it now installs across five hosts —
581
- Claude Code, Cursor, Codex, Gemini, and Antigravity
559
+ recently this spoke only Claude Code; it now installs across six hosts —
560
+ Claude Code, Cursor, Codex, Gemini, Antigravity, and Claude Cowork
582
561
  ([docs/221](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/221_the-cross-vendor-hook-installer.md),
583
- [docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md)).
584
- `--with-hooks` is the back-compat alias for `--hooks claude-code`.
562
+ [docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md),
563
+ [docs/298](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/298_claude-cowork-the-sixth-host-shared-surface.md)).
564
+ `--with-hooks` is the back-compat alias for `--hooks claude-code`. `auto`
565
+ ([docs/303](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/303_hooks-auto-detection-plan.md))
566
+ names the host *for* you: it probes which of those config dirs already exist in
567
+ the repo — plus the shell's own environment, so a fresh repo opened inside
568
+ Claude Code still detects — wires every runtime it finds (a shared config file
569
+ is wired once), and fails loud with the list above when nothing is detectable,
570
+ never guessing. Claude
571
+ Cowork is the *shared-surface* host: it runs the same agent harness as Claude
572
+ Code, so wiring either name binds both — one file, one set of hooks. (One
573
+ honest caveat, carried on the install note itself: the Cowork app doesn't
574
+ *fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
575
+ Cowork's working DOS surface is the advisory one above.)
585
576
 
586
577
  Under the installer sits a pluggable dialect seam: the verdict is decided
587
578
  once, then rendered into whatever JSON shape the host parses
@@ -593,12 +584,15 @@ reads (wire it in `cli-config.yaml`). A new host's dialect is a driver, never a
593
584
  kernel edit.
594
585
 
595
586
  The flip side of that honesty: a host with **no** hook seam gets **no** dialect.
596
- ByteDance's **Trae** was proved out and has no hook system at all (no lifecycle
597
- events, no deny/allow stdout contract), so DOS binds to it advisory-only — the
598
- MCP server in `.trae/mcp.json`, a verify-before-"done" rule in
599
- `.trae/rules/project_rules.md`, the generic skills in `.trae/skills/`and
600
- `dos init --hooks trae` fails loud rather than writing config Trae would never
601
- read ([docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md)).
587
+ ByteDance's **Trae** was proved out and ships no user-scriptable hook system in
588
+ its personal/international editions (no lifecycle events, no deny/allow stdout
589
+ contract; its CN-enterprise edition announced one on 2026-06-09 with no
590
+ published grammar yet), so DOS binds to it advisory-only the MCP server in
591
+ `.trae/mcp.json` (read alike by IDE-mode Agent, SOLO mode, and TRAE CLI), a
592
+ verify-before-"done" rule in `.trae/rules/project_rules.md`, the generic
593
+ skills in `.trae/skills/` — and `dos init --hooks trae` fails loud rather than
594
+ writing config Trae would never read
595
+ ([docs/294](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/294_trae-advisory-only-the-host-with-no-hook-seam.md)).
602
596
  An invented envelope would be fake enforcement, which is the exact failure the
603
597
  dialect seam exists to prevent.
604
598
 
@@ -688,14 +682,14 @@ channel, upgrade/uninstall, WSL, troubleshooting) is in
688
682
  **[docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)**:
689
683
 
690
684
  ```bash
691
- # uv — the modern, fast, isolated CLI install (recommended):
692
- uv tool install dos-kernel # `dos` + `dos-mcp` on PATH
693
- uvx --from dos-kernel dos doctor # or run it once, ephemerally
694
-
695
- # pip — the library-consumer path (a host pins dos-kernel in its own venv):
685
+ # pip — the default (the line the 60-second demo ran; also how a host pins it):
696
686
  pip install dos-kernel # core kernel (PyYAML only)
697
687
  pip install "dos-kernel[mcp]" # + the MCP server (dos-mcp)
698
688
 
689
+ # uv — the isolated CLI install (keeps `dos` + `dos-mcp` off your project venv):
690
+ uv tool install dos-kernel # `dos` + `dos-mcp` on PATH
691
+ uvx --from dos-kernel dos doctor # or run it once, ephemerally
692
+
699
693
  # from a clone — editable, the contributor path (tracking unreleased master:
700
694
  # pip install "dos-kernel @ git+https://github.com/anthony-chaudhary/dos-kernel", no clone needed):
701
695
  git clone https://github.com/anthony-chaudhary/dos-kernel.git && cd dos-kernel
@@ -709,10 +703,12 @@ pip install -e . # editable: your edits are live in the install
709
703
  > `[mcp]` extra adds the MCP framework; `[tui]` adds the live `dos top` screens).
710
704
  > See [SECURITY.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/SECURITY.md), "Supply chain."
711
705
 
712
- Prefer a package manager? **uv** is the 2026 defaultfaster than `pipx`,
713
- isolates the tool, and manages Python versions; `pipx install dos-kernel` works
714
- the same way if your team already uses it. Homebrew / WinGet / Scoop one-liners
715
- are next on the release runway (see [docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)).
706
+ `pip install dos-kernel` is the whole installif it worked in the demo,
707
+ you're done here. The other rows exist for how *your* team works: **uv** if you
708
+ want the CLI isolated from your project venv (faster than `pipx`, manages
709
+ Python versions; `pipx install dos-kernel` works the same way), the clone if
710
+ you're contributing. Homebrew / WinGet / Scoop one-liners are next on the
711
+ release runway (see [docs/INSTALL.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/INSTALL.md)).
716
712
 
717
713
  A host repo adds DOS as a pinned dependency and points it at its own tree — never
718
714
  by vendoring the code in. DOS is stateless about which repo it serves: it
@@ -758,9 +754,9 @@ pip install "dos-kernel[mcp]"
758
754
 
759
755
  After installing, run **`/dos-kernel:dos-setup`** once — it confirms the package
760
756
  is importable, reports what the plugin wired, and points at the next skill. The
761
- same three hooks are available à la carte via `dos init --hooks claude-code`
762
- (and for Cursor / Codex / Gemini); the plugin is just the pre-packaged Claude
763
- Code form. The bundle's design + the build that keeps its skills in lockstep
757
+ same three hooks are available à la carte via `dos init --hooks auto` (detects
758
+ your runtime; or name one claude-code, cursor, codex, gemini, antigravity,
759
+ claude-cowork); the plugin is just the pre-packaged Claude Code form. The bundle's design + the build that keeps its skills in lockstep
764
760
  with the source are in **[claude-plugin/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/claude-plugin/README.md)**.
765
761
 
766
762
  ## CLI
@@ -978,12 +974,17 @@ for a copy-me skeleton.
978
974
  ## Documentation
979
975
 
980
976
  - **[docs/QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md)** — runnable 5-minute hello-world. Start here.
977
+ - **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
978
+ verify an agent's claim?", "does it need an LLM?"), each answered in one
979
+ self-contained block.
981
980
  - **[docs/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/README.md)** — the docs index (guides vs. design notes
982
981
  vs. the dated build-journal; the numbers are chronology, not a reading order).
983
982
  - **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)** — extend DOS without forking it.
984
983
  - **[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
985
984
  architecture contract and how to send a change.
986
985
  - **[docs/releases/](https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases)** — per-version release notes (the changelog).
986
+ - **[The website](https://anthony-chaudhary.github.io/dos-kernel/)** — this page,
987
+ condensed to one screen (good for sending to someone).
987
988
 
988
989
  ## Playbooks & examples
989
990
 
@@ -1095,3 +1096,8 @@ preparation. Until the arXiv ID lands, cite the repository:
1095
1096
  ## License
1096
1097
 
1097
1098
  MIT — see [LICENSE](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE).
1099
+
1100
+ <!-- The marker below is the official MCP Registry's PyPI ownership proof: the
1101
+ registry only accepts a server.json naming the `dos-kernel` PyPI package if
1102
+ this exact token appears in the published package README. Keep it intact. -->
1103
+ <!-- mcp-name: io.github.anthony-chaudhary/dos-kernel -->
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
9
9
  # src/), and the console scripts stay `dos` / `dos-mcp` — only the pip-install /
10
10
  # dependency-pin name is `dos-kernel`. See SECURITY.md "Supply chain".
11
11
  name = "dos-kernel"
12
- version = "0.23.4"
12
+ version = "0.25.0"
13
13
  description = "Dispatch Operating System — the domain-free trust substrate for fleets of autonomous agents (verdict spine, ship oracle, structured refusal, lane arbiter, correlation spine)."
14
14
  # The PyPI project page renders this. Point it at the README so the page isn't
15
15
  # blank below the metadata (twine warns when it's missing). PyPI resolves
@@ -24,6 +24,11 @@ keywords = [
24
24
  "agents", "ai-agents", "llm", "multi-agent", "agent-orchestration",
25
25
  "orchestration", "dispatch", "scheduler", "oracle", "leases",
26
26
  "verification", "trust", "mcp",
27
+ # The arrival terms an agent or answer engine actually types (docs/299 P3).
28
+ # Honesty rule: every keyword must be true of the package — no aspirational
29
+ # or adjacent-product terms.
30
+ "claude", "claude-code", "mcp-server", "model-context-protocol",
31
+ "agent-verification", "autonomous-agents", "agent-monitoring",
27
32
  ]
28
33
  classifiers = [
29
34
  "Development Status :: 4 - Beta",
@@ -136,6 +141,12 @@ dos = "dos.cli:main"
136
141
  # launches. Requires the `mcp` extra (`pip install dos-kernel[mcp]`); the import
137
142
  # of `mcp.server.fastmcp` fails loudly with an install hint if the extra is absent.
138
143
  dos-mcp = "dos_mcp.server:main"
144
+ # A dist-name alias for the SAME server, so the uvx convention works: `uvx
145
+ # "dos-kernel[mcp]"` runs the script named after the package (and the MCP
146
+ # Registry's `uvx --from "dos-kernel[mcp]==X.Y.Z" dos-kernel` launch composes to
147
+ # a real command — see server.json). Without the [mcp] extra it fails loudly
148
+ # with the same install hint as `dos-mcp`. The umbrella CLI stays `dos`.
149
+ dos-kernel = "dos_mcp.server:main"
139
150
 
140
151
  # The shipped LLM judge — the reference occupant of the JUDGE rung (`dos.judges`,
141
152
  # Axis 6). Registered as a discoverable judge (NOT a built-in: only `abstain` is
@@ -182,6 +193,10 @@ codex = "dos.drivers.hook_dialects:CodexDialect"
182
193
  gemini = "dos.drivers.hook_dialects:GeminiDialect"
183
194
  cursor = "dos.drivers.hook_dialects:CursorDialect"
184
195
  antigravity = "dos.drivers.hook_dialects:AntigravityDialect"
196
+ # Claude Cowork runs the Claude Code agent harness in a desktop VM, so its envelope
197
+ # IS CC's — the renderer delegates (the Codex precedent), kept as a named entry so
198
+ # `--dialect claude-cowork` resolves and a future divergence has a home (docs/298).
199
+ claude-cowork = "dos.drivers.hook_dialects:ClaudeCoworkDialect"
185
200
  # Hermes Agent (Nous Research) — its `pre_tool_call` SHELL hook is a real
186
201
  # stdout-JSON deny surface (`{"decision":"block","reason":…}`), docs/278. (OpenClaw's
187
202
  # real hook is an in-process TS return, not stdout — no renderer consumer; SwarmClaw
@@ -276,10 +291,20 @@ codex = "dos.drivers.hook_dialects:codex_install_spec"
276
291
  gemini = "dos.drivers.hook_dialects:gemini_install_spec"
277
292
  cursor = "dos.drivers.hook_dialects:cursor_install_spec"
278
293
  antigravity = "dos.drivers.hook_dialects:antigravity_install_spec"
294
+ # Claude Cowork — the SHARED surface: the same .claude/settings.json Claude Code
295
+ # reads (same harness, same file; the wired command carries NO --dialect because the
296
+ # shared file must serve both runtimes and the default IS the envelope). The spec's
297
+ # note carries the one Cowork-specific fact: the product does not fire hooks yet
298
+ # (anthropics/claude-code#63360, docs/298).
299
+ claude-cowork = "dos.drivers.hook_dialects:claude_cowork_install_spec"
279
300
 
280
301
  [project.urls]
281
302
  Homepage = "https://github.com/anthony-chaudhary/dos-kernel"
303
+ Website = "https://anthony-chaudhary.github.io/dos-kernel/"
282
304
  Documentation = "https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md"
305
+ FAQ = "https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md"
306
+ # The agent-facing index (docs/299): the raw URL is the fetchable spelling.
307
+ "llms.txt" = "https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/llms.txt"
283
308
  Repository = "https://github.com/anthony-chaudhary/dos-kernel"
284
309
  Issues = "https://github.com/anthony-chaudhary/dos-kernel/issues"
285
310
  Changelog = "https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases"
@@ -46,7 +46,7 @@ try:
46
46
 
47
47
  __version__ = _pkg_version("dos-kernel")
48
48
  except Exception: # pragma: no cover - source-tree / not-installed fallback
49
- __version__ = "0.23.4"
49
+ __version__ = "0.25.0"
50
50
 
51
51
  from dos import config # noqa: F401 (re-export the seam as the package entry)
52
52
  from dos.config import ( # noqa: F401