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.
- {dos_kernel-0.23.4/src/dos_kernel.egg-info → dos_kernel-0.25.0}/PKG-INFO +88 -30
- dos_kernel-0.23.4/PKG-INFO → dos_kernel-0.25.0/README.md +83 -77
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/pyproject.toml +26 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/__init__.py +1 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/cli.py +523 -56
- dos_kernel-0.25.0/src/dos/drivers/agt_backend.py +357 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/hook_dialects.py +68 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/efficiency.py +41 -8
- dos_kernel-0.25.0/src/dos/efficiency_trend.py +267 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/help_summary.py +30 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_install.py +61 -0
- dos_kernel-0.25.0/src/dos/hook_observation.py +338 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/improve.py +41 -2
- dos_kernel-0.25.0/src/dos/override_facts.py +215 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pretool_sensor.py +195 -3
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/EXAMPLES.md +1 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-dispatch/SKILL.md +33 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +1 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-next-up/SKILL.md +1 -1
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-replan/SKILL.md +18 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-self-improve/SKILL.md +1 -1
- dos_kernel-0.25.0/src/dos/spend.py +276 -0
- dos_kernel-0.23.4/README.md → dos_kernel-0.25.0/src/dos_kernel.egg-info/PKG-INFO +135 -28
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/SOURCES.txt +19 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/entry_points.txt +3 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/server.py +66 -3
- dos_kernel-0.25.0/tests/test_agt_backend.py +267 -0
- dos_kernel-0.25.0/tests/test_efficiency_trend.py +156 -0
- dos_kernel-0.25.0/tests/test_efficiency_trend_cli.py +145 -0
- dos_kernel-0.25.0/tests/test_gitignore_hygiene.py +116 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_dialect.py +23 -6
- dos_kernel-0.25.0/tests/test_hook_observation.py +392 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_pretool.py +59 -1
- dos_kernel-0.25.0/tests/test_init_hooks_auto.py +226 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_hooks_crossvendor.py +50 -1
- dos_kernel-0.25.0/tests/test_llms_full.py +81 -0
- dos_kernel-0.25.0/tests/test_llms_txt.py +70 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_mcp_server.py +97 -0
- dos_kernel-0.25.0/tests/test_override_window.py +273 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_release_bump.py +22 -19
- dos_kernel-0.25.0/tests/test_server_json_version.py +81 -0
- dos_kernel-0.25.0/tests/test_serverless_rl_example.py +230 -0
- dos_kernel-0.25.0/tests/test_spend.py +170 -0
- dos_kernel-0.25.0/tests/test_spend_cli.py +102 -0
- dos_kernel-0.25.0/tests/test_spend_evidence.py +125 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/LICENSE +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/setup.cfg +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_demo_story.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_filelock.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_job_policy.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/_tree.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/admission.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/answer_shape.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/arbiter.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/archive_lock.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/arg_provenance.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/attest.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/breaker.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/churn.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/claim_extract.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/claim_ttl.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/commit_audit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/completion.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/concurrency_class.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/config.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/config_lint.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/cooldown.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/coverage.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dangling_intent.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/data_class.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/decisions.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/decisions_tui.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dispatch_top.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/dispatch_top_tui.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/__init__.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/ci_status.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/citation_resolve.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/decision_stop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/design_doc_plan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_file.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_otlp.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/export_statsd.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/job.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/llm_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/memory_recall.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/notify_slack.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/notify_webhook.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/operator_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/os_acceptance.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/paste_log.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/plan_scope.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/self_improve.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/similarity_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/state_diff.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/supervisor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/watchdog.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/drivers/workshop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/durable_schema.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/effect_witness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/enforce.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/enumerate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/env_print.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/event_severity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/evidence.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/exec_capability.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/export_cursor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/exporter.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/firing_label.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/fleet_roll.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/gate_classify.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/gh4_coverage.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/git_delta.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/guard.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/home.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_binary.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_dialect.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/hook_exit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/id_alloc.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intent_ledger.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/interpret.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intervention.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/intervention_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/journal_delta.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/judge_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/judges.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_infer.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_journal.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_lease.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lane_overlap.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lease_health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lifecycle.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/liveness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/lock_modes.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/log_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/loop_decide.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/marker_gate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/marker_sensor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/noop_streak.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/notify.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/observe.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/oracle.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/overlap_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/overlap_policy.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/packet_sidecar.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/phase_shipped.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pick_priority.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/pickable.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/picker_oracle.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_board.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_board_tui.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/plan_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/posttool_sensor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/precursor_gate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/precursor_gate_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/preflight.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/proc_delta.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/productivity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/provider_limit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/py.typed +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reason_morphology.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reasons.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reconcile.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/recurring_wedge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/render.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/result_state.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/resume.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/resume_evidence.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/retention.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/reward.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind_evidence.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/rewind_tokens.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/run_id.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scope.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scope_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/scout.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/self_modify.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/sibling_scan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-goal-gate/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-replan-loop/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-supervise-loop/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/stamp.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/state_health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/status.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/stop_policy.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/supervise.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/testwitness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/timeline.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tokens.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tool_stream.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/tool_stream_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/trace.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_journal.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdict_rollup.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/verdicts.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos/wedge_reason.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/requires.txt +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/__init__.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/src/dos_mcp/py.typed +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_admission.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agent_surface.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agenthallu_replay.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_agentprocessbench_replay.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_answer_shape.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_arbiter.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_archive_lock.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_arg_provenance.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_attest.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_backflow_ledger.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_bench_layering.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_breaker.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_build_wheels_binary_format.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_canonical_example_lockstep.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_central_index.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_churn.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_ci_status.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_citation_resolve.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claim_extract.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claim_ttl.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_claims_lint.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_ergonomics.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_loop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cli_pickable_enumerate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cmd_status.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_commit_audit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_completion.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_concurrency_class.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_config_lint.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_cooldown.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_coverage.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dangling_intent.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_data_class.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_decisions.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_design_doc_plan_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dispatch_loop_substrate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dispatch_top.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_docs_version_drift.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_doctor_json.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_dos_react_terminal_error.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_self_improve.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_supervisor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_watchdog.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_drivers_workshop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_durable_schema.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_effect_witness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_efficiency.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enforce.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_ensure_home.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enterpriseops_harness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_enumerate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_env_print.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_event_severity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_evidence.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_exec_capability.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_cursor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_otlp.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_export_statsd.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_exporter.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_feasibility_split.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_filelock.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_filepath_backstop_batch.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_firing_label.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_fleet_framework_examples.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_fleet_roll.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_gate_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_gh4_coverage.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_git_hygiene.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_go_hook_parity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_guard.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_help_summary.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hermes_integration_example.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_home_layering.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_home_no_temp_pollution.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_binaries_bundled.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_binary_locator.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_exit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_hook_stop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_id_alloc.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_improve.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_hooks.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_init_skills.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_install_drift.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_install_levels.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intent_ledger.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_interpret_parity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_intervention_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_journal_delta.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judge_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_judges.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_adopt.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_halt.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_infer.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_journal.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease_expiry.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_lease_mutex.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lane_overlap.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_leak_scan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lease_health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lifecycle.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_liveness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_llm_judge_vendor_seam.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_lock_modes.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_log_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_marker_gate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_marker_sensor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_memory_recall.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_noop_streak.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_slack.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_notify_webhook.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_observe.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_operator_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_and_loop.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_forgeability_provenance.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_oracle_grep_in_process.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_overlap_policy.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_packet_sidecar.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_phase_labels.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_pick_priority.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_pickable.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plan_board.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plan_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_plugin_manifest.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_posttool_sensor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_precursor_gate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_precursor_gate_eval.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_preflight_sidecar.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_proc_delta.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_productivity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_breaker.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_cooldown.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_efficiency.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_install_wrappers.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_overlap_soundness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_productivity.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_reconcile.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_reward_nonforgeability.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_prop_tree.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_provider_limit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_readme_assembly.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reconcile.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_recurring_wedge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_refusal_and_tokens.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reindex.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_render.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_replan_skip.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_result_state.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_evidence.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_resume_reachability.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_retention.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_reward.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_rewind.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_rewind_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_gate.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_gate_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scope_source.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_scout.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_selfmodify_hook_probe.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_sibling_scan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_similarity_judge.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_dispatch.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_generic.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_litmus.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_operator_tier.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_skill_pack_replan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stall_sim.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_convention.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_doctor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_filepath_rung.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stamp_trailer.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_diff.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_health.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_health_doctor.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_state_home.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_status_digest.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_stop_policy.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_supervise.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_testwitness.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_timeline_timing.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_tool_stream.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_tool_stream_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_live_adapter.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_replay.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_trace.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_trajectory_audit.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_vendor_agnostic_kernel.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_cli.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_contract.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_journal.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdict_rollup.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verdicts.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_color.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_demo_contract.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_no_plan.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_non_git_rung.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_verify_plugin_install.py +0 -0
- {dos_kernel-0.23.4 → dos_kernel-0.25.0}/tests/test_workflow_yaml_parses.py +0 -0
- {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.
|
|
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
|
-
|
|
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
|
|
213
|
-
dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2
|
|
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?),
|
|
546
|
-
|
|
547
|
-
|
|
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
|
|
581
|
-
Claude Code, Cursor, Codex, Gemini, and
|
|
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
|
-
|
|
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
|
|
597
|
-
events, no deny/allow stdout
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
`
|
|
601
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
713
|
-
|
|
714
|
-
the
|
|
715
|
-
|
|
758
|
+
`pip install dos-kernel` is the whole install — if 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
|
|
762
|
-
|
|
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
|
-
|
|
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
|
|
213
|
-
dos verify --workspace . AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2
|
|
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?),
|
|
546
|
-
|
|
547
|
-
|
|
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
|
|
581
|
-
Claude Code, Cursor, Codex, Gemini, and
|
|
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
|
-
|
|
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
|
|
597
|
-
events, no deny/allow stdout
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
`
|
|
601
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
713
|
-
|
|
714
|
-
the
|
|
715
|
-
|
|
706
|
+
`pip install dos-kernel` is the whole install — if 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
|
|
762
|
-
|
|
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.
|
|
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.
|
|
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
|