dos-kernel 0.24.1__tar.gz → 0.26.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.24.1/src/dos_kernel.egg-info → dos_kernel-0.26.0}/PKG-INFO +109 -13
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/README.md +102 -11
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/pyproject.toml +46 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/__init__.py +16 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/cli.py +943 -67
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/commit_audit.py +219 -34
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/config_lint.py +50 -2
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/decisions.py +321 -3
- dos_kernel-0.26.0/src/dos/deprecation.py +68 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/dispatch_top.py +90 -0
- dos_kernel-0.26.0/src/dos/drivers/_effect_gate.py +376 -0
- dos_kernel-0.26.0/src/dos/drivers/agt_backend.py +357 -0
- dos_kernel-0.26.0/src/dos/drivers/crewai_guardrail.py +85 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/hook_dialects.py +68 -0
- dos_kernel-0.26.0/src/dos/drivers/memory_mem0.py +158 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/memory_recall.py +462 -34
- dos_kernel-0.26.0/src/dos/drivers/nemo_action.py +102 -0
- dos_kernel-0.26.0/src/dos/drivers/openai_agents_guardrail.py +112 -0
- dos_kernel-0.26.0/src/dos/drivers/pre_commit.py +67 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/efficiency.py +41 -8
- dos_kernel-0.26.0/src/dos/efficiency_trend.py +267 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/event_severity.py +35 -2
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/home.py +2 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/hook_install.py +170 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/improve.py +41 -2
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/intent_ledger.py +16 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lane_journal.py +21 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/liveness.py +9 -0
- dos_kernel-0.26.0/src/dos/memory_stores.py +185 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/phase_shipped.py +104 -3
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/plan_board.py +26 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/pretool_sensor.py +240 -4
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/EXAMPLES.md +1 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-dispatch/SKILL.md +1 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-next-up/SKILL.md +1 -1
- dos_kernel-0.26.0/src/dos/spend.py +276 -0
- dos_kernel-0.26.0/src/dos/testing/__init__.py +71 -0
- dos_kernel-0.26.0/src/dos/testing/doubles.py +222 -0
- dos_kernel-0.26.0/src/dos/testing/suite.py +392 -0
- dos_kernel-0.26.0/src/dos/testing/tester.py +122 -0
- dos_kernel-0.26.0/src/dos/verdict_census.py +381 -0
- dos_kernel-0.26.0/src/dos/verified.py +134 -0
- dos_kernel-0.26.0/src/dos/work_account.py +263 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0/src/dos_kernel.egg-info}/PKG-INFO +109 -13
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_kernel.egg-info/SOURCES.txt +67 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_kernel.egg-info/entry_points.txt +5 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_kernel.egg-info/requires.txt +3 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_mcp/server.py +66 -3
- dos_kernel-0.26.0/tests/test_agt_backend.py +267 -0
- dos_kernel-0.26.0/tests/test_backlog_triage.py +353 -0
- dos_kernel-0.26.0/tests/test_braintrust_scorer_example.py +107 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_canonical_example_lockstep.py +1 -0
- dos_kernel-0.26.0/tests/test_caught_lie_cast.py +96 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_cli_ergonomics.py +55 -0
- dos_kernel-0.26.0/tests/test_clobber_demo_contract.py +134 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_commit_audit.py +250 -14
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_config_lint.py +33 -0
- dos_kernel-0.26.0/tests/test_conformance_plugin_examples.py +85 -0
- dos_kernel-0.26.0/tests/test_conformance_suite.py +193 -0
- dos_kernel-0.26.0/tests/test_crewai_guardrail.py +115 -0
- dos_kernel-0.26.0/tests/test_cross_host_continuity.py +192 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_decisions.py +268 -0
- dos_kernel-0.26.0/tests/test_deprecation.py +109 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_dispatch_top.py +115 -0
- dos_kernel-0.26.0/tests/test_docs_links.py +96 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_docs_version_drift.py +3 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_doctor_json.py +39 -0
- dos_kernel-0.26.0/tests/test_drift_scoreboard.py +295 -0
- dos_kernel-0.26.0/tests/test_duplicate_plan_numbers.py +277 -0
- dos_kernel-0.26.0/tests/test_effect_gate.py +243 -0
- dos_kernel-0.26.0/tests/test_efficiency_trend.py +156 -0
- dos_kernel-0.26.0/tests/test_efficiency_trend_cli.py +145 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_event_severity.py +66 -0
- dos_kernel-0.26.0/tests/test_fault_injection_journal.py +376 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_fleet_framework_examples.py +30 -1
- dos_kernel-0.26.0/tests/test_forge_arena_bench.py +117 -0
- dos_kernel-0.26.0/tests/test_forge_page.py +85 -0
- dos_kernel-0.26.0/tests/test_gemini_extension.py +137 -0
- dos_kernel-0.26.0/tests/test_gitlab_ci_template.py +55 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_dialect.py +23 -6
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_pretool.py +154 -17
- dos_kernel-0.26.0/tests/test_hosts_verb.py +198 -0
- dos_kernel-0.26.0/tests/test_init_hooks_auto.py +226 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_init_hooks_crossvendor.py +50 -1
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_install_drift.py +1 -0
- dos_kernel-0.26.0/tests/test_kernel_keep_gate_example.py +207 -0
- dos_kernel-0.26.0/tests/test_kernel_keep_gate_real_kernelbench.py +103 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_liveness.py +67 -0
- dos_kernel-0.26.0/tests/test_llms_full.py +81 -0
- dos_kernel-0.26.0/tests/test_llms_txt.py +70 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_mcp_server.py +97 -0
- dos_kernel-0.26.0/tests/test_memory_admit.py +213 -0
- dos_kernel-0.26.0/tests/test_memory_fossils.py +297 -0
- dos_kernel-0.26.0/tests/test_memory_integrity_bench.py +73 -0
- dos_kernel-0.26.0/tests/test_memory_mem0.py +157 -0
- dos_kernel-0.26.0/tests/test_memory_stores.py +229 -0
- dos_kernel-0.26.0/tests/test_nemo_action.py +130 -0
- dos_kernel-0.26.0/tests/test_openai_agents_guardrail.py +177 -0
- dos_kernel-0.26.0/tests/test_poisoned_pool_bench.py +188 -0
- dos_kernel-0.26.0/tests/test_poisoned_pool_p2.py +221 -0
- dos_kernel-0.26.0/tests/test_poisoned_pool_policies.py +128 -0
- dos_kernel-0.26.0/tests/test_pre_commit_hook.py +213 -0
- dos_kernel-0.26.0/tests/test_prop_arbiter_wal.py +361 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_release_bump.py +24 -19
- dos_kernel-0.26.0/tests/test_scoreboard_surfaces.py +183 -0
- dos_kernel-0.26.0/tests/test_server_json_version.py +81 -0
- dos_kernel-0.26.0/tests/test_serverless_rl_example.py +230 -0
- dos_kernel-0.26.0/tests/test_spend.py +170 -0
- dos_kernel-0.26.0/tests/test_spend_cli.py +102 -0
- dos_kernel-0.26.0/tests/test_spend_evidence.py +125 -0
- dos_kernel-0.26.0/tests/test_stability_policy.py +96 -0
- dos_kernel-0.26.0/tests/test_verdict_census.py +181 -0
- dos_kernel-0.26.0/tests/test_verified.py +206 -0
- dos_kernel-0.26.0/tests/test_work_account.py +307 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/LICENSE +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/setup.cfg +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/_demo_story.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/_filelock.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/_job_policy.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/_tree.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/admission.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/answer_shape.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/arbiter.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/archive_lock.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/arg_provenance.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/attest.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/breaker.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/churn.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/claim_extract.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/claim_ttl.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/completion.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/concurrency_class.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/config.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/cooldown.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/coverage.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/dangling_intent.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/data_class.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/decisions_tui.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/dispatch_top_tui.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/__init__.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/ci_status.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/citation_resolve.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/decision_stop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/design_doc_plan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/export_file.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/export_otlp.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/export_statsd.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/job.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/llm_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/notify_slack.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/notify_webhook.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/operator_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/os_acceptance.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/paste_log.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/plan_scope.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/self_improve.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/similarity_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/state_diff.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/supervisor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/watchdog.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/drivers/workshop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/durable_schema.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/effect_witness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/enforce.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/enumerate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/env_print.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/evidence.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/exec_capability.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/export_cursor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/exporter.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/firing_label.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/fleet_roll.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/gate_classify.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/gh4_coverage.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/git_delta.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/guard.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/help_summary.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/hook_binary.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/hook_dialect.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/hook_exit.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/hook_observation.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/id_alloc.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/interpret.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/intervention.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/intervention_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/journal_delta.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/judge_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/judges.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lane_infer.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lane_lease.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lane_overlap.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lease_health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lifecycle.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/lock_modes.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/log_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/loop_decide.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/marker_gate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/marker_sensor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/noop_streak.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/notify.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/observe.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/oracle.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/overlap_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/overlap_policy.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/override_facts.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/packet_sidecar.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/pick_priority.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/pickable.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/picker_oracle.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/plan_board_tui.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/plan_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/posttool_sensor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/precursor_gate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/precursor_gate_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/preflight.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/proc_delta.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/productivity.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/provider_limit.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/py.typed +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/reason_morphology.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/reasons.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/reconcile.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/recurring_wedge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/render.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/result_state.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/resume.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/resume_evidence.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/retention.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/reward.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/rewind.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/rewind_evidence.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/rewind_tokens.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/run_id.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/scope.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/scope_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/scout.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/self_modify.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/sibling_scan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-class-cycle/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-dispatch-loop/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-goal-gate/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-promote/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-replan/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-replan-loop/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-self-improve/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-supervise-loop/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-unstick/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/skills/dos-witness-claim/SKILL.md +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/stamp.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/state_health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/status.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/stop_policy.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/supervise.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/testwitness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/timeline.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/tokens.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/tool_stream.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/tool_stream_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/trace.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/verdict.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/verdict_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/verdict_journal.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/verdict_rollup.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/verdicts.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos/wedge_reason.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_kernel.egg-info/dependency_links.txt +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_kernel.egg-info/top_level.txt +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_mcp/__init__.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/src/dos_mcp/py.typed +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_admission.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_agent_surface.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_agenthallu_replay.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_agentprocessbench_replay.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_answer_shape.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_arbiter.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_archive_lock.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_arg_provenance.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_attest.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_backflow_ledger.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_bench_layering.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_breaker.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_build_wheels_binary_format.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_central_index.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_churn.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_ci_status.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_citation_resolve.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_claim_extract.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_claim_ttl.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_claims_lint.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_cli_loop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_cli_pickable_enumerate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_cmd_status.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_completion.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_concurrency_class.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_cooldown.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_coverage.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_dangling_intent.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_data_class.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_design_doc_plan_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_dispatch_loop_substrate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_dos_react_terminal_error.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_drivers_self_improve.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_drivers_supervisor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_drivers_watchdog.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_drivers_workshop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_durable_schema.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_effect_witness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_efficiency.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_enforce.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_ensure_home.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_enterpriseops_harness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_enumerate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_env_print.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_evidence.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_exec_capability.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_export_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_export_cursor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_export_otlp.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_export_statsd.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_exporter.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_feasibility_split.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_filelock.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_filepath_backstop_batch.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_firing_label.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_fleet_roll.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_gate_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_gh4_coverage.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_git_hygiene.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_gitignore_hygiene.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_go_hook_parity.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_guard.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_help_summary.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hermes_integration_example.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_home_layering.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_home_no_temp_pollution.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_binaries_bundled.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_binary_locator.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_exit.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_observation.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_hook_stop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_id_alloc.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_improve.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_init_hooks.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_init_skills.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_install_levels.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_intent_ledger.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_interpret_parity.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_intervention.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_intervention_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_intervention_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_journal_delta.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_judge_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_judges.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_adopt.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_halt.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_infer.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_journal.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_lease.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_lease_expiry.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_lease_mutex.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lane_overlap.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_leak_scan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lease_health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lifecycle.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_llm_judge_vendor_seam.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_lock_modes.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_log_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_marker_gate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_marker_sensor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_memory_recall.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_noop_streak.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_notify.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_notify_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_notify_slack.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_notify_webhook.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_observe.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_operator_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_oracle_and_loop.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_oracle_forgeability_provenance.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_oracle_grep_in_process.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_overlap_policy.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_override_window.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_packet_sidecar.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_phase_labels.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_pick_priority.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_pickable.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_plan_board.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_plan_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_plugin_manifest.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_posttool_sensor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_precursor_gate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_precursor_gate_eval.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_preflight_sidecar.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_proc_delta.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_productivity.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_breaker.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_cooldown.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_efficiency.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_install_wrappers.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_overlap_soundness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_productivity.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_reconcile.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_reward_nonforgeability.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_prop_tree.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_provider_limit.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_readme_assembly.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_reconcile.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_recurring_wedge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_refusal_and_tokens.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_reindex.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_render.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_replan_skip.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_result_state.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_resume_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_resume_evidence.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_resume_reachability.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_retention.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_reward.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_rewind.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_rewind_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_scope.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_scope_gate.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_scope_gate_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_scope_source.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_scout.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_selfmodify_hook_probe.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_sibling_scan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_similarity_judge.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_skill_pack_dispatch.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_skill_pack_generic.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_skill_pack_litmus.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_skill_pack_operator_tier.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_skill_pack_replan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stall_sim.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stamp_convention.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stamp_doctor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stamp_filepath_rung.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stamp_trailer.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_state_diff.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_state_health.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_state_health_doctor.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_state_home.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_status_digest.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_stop_policy.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_subprocess_stdin_hygiene.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_supervise.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_testwitness.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_timeline_timing.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_tool_stream.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_tool_stream_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_toolathlon_live_adapter.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_toolathlon_replay.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_toolathlon_rewind_ceiling.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_trace.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_trajectory_audit.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_vendor_agnostic_kernel.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verdict_cli.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verdict_contract.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verdict_journal.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verdict_rollup.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verdicts.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verify_color.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verify_demo_contract.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verify_no_plan.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verify_non_git_rung.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_verify_plugin_install.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.0}/tests/test_workflow_yaml_parses.py +0 -0
- {dos_kernel-0.24.1 → dos_kernel-0.26.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.26.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
|
|
@@ -43,6 +46,8 @@ Requires-Dist: slack-helpers>=0.2; extra == "notify-slack"
|
|
|
43
46
|
Provides-Extra: export-otlp
|
|
44
47
|
Requires-Dist: opentelemetry-sdk>=1.20; extra == "export-otlp"
|
|
45
48
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.20; extra == "export-otlp"
|
|
49
|
+
Provides-Extra: memory-mem0
|
|
50
|
+
Requires-Dist: mem0ai>=0.1; extra == "memory-mem0"
|
|
46
51
|
Provides-Extra: paper
|
|
47
52
|
Requires-Dist: arxiv-latex-cleaner>=1.0; extra == "paper"
|
|
48
53
|
Dynamic: license-file
|
|
@@ -61,8 +66,18 @@ Dynamic: license-file
|
|
|
61
66
|
[](https://pypi.org/project/dos-kernel/)
|
|
62
67
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml)
|
|
63
68
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml)
|
|
69
|
+
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/scoreboard/methodology.md)
|
|
64
70
|
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE)
|
|
65
71
|
|
|
72
|
+
<p align="center">
|
|
73
|
+
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/caught-lie-cast.svg" alt="A terminal recording of the caught lie. The agent reports: Done! Shipped the login endpoint (AUTH1) and the password reset (AUTH2). git log shows one commit — AUTH1: ship the login endpoint. dos verify AUTH AUTH1 answers SHIPPED (exit 0); dos verify AUTH AUTH2 answers NOT_SHIPPED via none (exit 1) — caught. The exit code is the verdict: gate the agent's done on it and a false claim cannot land." width="100%">
|
|
74
|
+
<br>
|
|
75
|
+
<em>The whole pitch in one recording: the agent claims two features shipped; git backs one.
|
|
76
|
+
<code>dos verify</code> answers from the commits, the lie exits <code>1</code>, and a gate on that
|
|
77
|
+
exit code refuses the false "done". Every line is the real CLI's verbatim output —
|
|
78
|
+
<a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/scripts/build_caught_lie_cast.py"><code>scripts/build_caught_lie_cast.py</code></a> re-records it whenever the output changes.</em>
|
|
79
|
+
</p>
|
|
80
|
+
|
|
66
81
|
<p align="center">
|
|
67
82
|
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/loop-hero.svg" alt="Two agent fleets side by side. Left, no referee: agents all report 'done!', every report is believed, and silent corruption (lies, collisions, spin) piles up into a codebase that 'sorta works' and can't be changed. Right, DOS adjudicates: dos verify reads git and the run branches to SHIPPED (exit 0, land it) or NOT_SHIPPED (exit 1, re-dispatch — caught), and that verdict steers the next step." width="100%">
|
|
68
83
|
<br>
|
|
@@ -96,7 +111,23 @@ zero config, and the only thing you ever install is one small Python package.
|
|
|
96
111
|
> ⏱️ **Want to try it right now?** Jump to **[Try it in 60 seconds](#try-it-in-60-seconds)**
|
|
97
112
|
> — one command, real output, then come back for the why.
|
|
98
113
|
|
|
99
|
-
|
|
114
|
+
> ⚡ **Or just add it — two commands, zero decisions.** From the repo where your
|
|
115
|
+
> agent works:
|
|
116
|
+
>
|
|
117
|
+
> ```bash
|
|
118
|
+
> pip install dos-kernel
|
|
119
|
+
> dos init --hooks auto # finds the agent runtime(s) you already use, wires in the checks
|
|
120
|
+
> ```
|
|
121
|
+
>
|
|
122
|
+
> From then on: your agent can't tell you **"done"** unless the work actually
|
|
123
|
+
> landed, two agents can't silently overwrite each other's files, and a run
|
|
124
|
+
> that stalls gets flagged instead of quietly spinning. Nothing about your
|
|
125
|
+
> workflow changes, and you don't need to learn any of the vocabulary below to
|
|
126
|
+
> be covered. It prints the one config file it wrote; deleting the `dos hook`
|
|
127
|
+
> entries there undoes it. (No runtime detected? It says so and lists the
|
|
128
|
+
> names to pick from — it never guesses.)
|
|
129
|
+
|
|
130
|
+
<sub>**v0.26.0** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
|
|
100
131
|
smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
|
|
101
132
|
|
|
102
133
|
> 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
|
|
@@ -549,9 +580,11 @@ first (`dos_verify` "did it ship?", `dos_commit_audit` "does this commit's claim
|
|
|
549
580
|
match its diff?", `dos_status` one folded fact about a run), then
|
|
550
581
|
`dos_arbitrate` (may two workers run without colliding?), the structured-refusal
|
|
551
582
|
pair (`dos_refuse_reasons` / `dos_check_reason`), `dos_recall` (is this recalled
|
|
552
|
-
memory still true?),
|
|
553
|
-
|
|
554
|
-
|
|
583
|
+
memory still true?), `dos_citation_resolve` (does this cited legal case exist in
|
|
584
|
+
a third-party reporter? — the *Mata v. Avianca* witness), and `dos_doctor` (the
|
|
585
|
+
workspace report) — so any
|
|
586
|
+
MCP-speaking host — Claude Desktop, Claude Cowork, Cursor, Cline, Trae, an
|
|
587
|
+
Agent-SDK app — can call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
|
|
555
588
|
back with a one-line interpretation of what it means for the agent's next move.
|
|
556
589
|
(See **[the MCP server surface](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/80_mcp-server-surface.md)**.)
|
|
557
590
|
|
|
@@ -566,6 +599,20 @@ thinks to. The per-host wiring for Cursor / Codex / Gemini is in
|
|
|
566
599
|
**[the MCP README](https://github.com/anthony-chaudhary/dos-kernel/blob/master/src/dos_mcp/README.md)** — all four are MCP clients, so this
|
|
567
600
|
works on every one of them with zero code.
|
|
568
601
|
|
|
602
|
+
**Gemini CLI users get a one-liner.** DOS ships a `gemini-extension.json`
|
|
603
|
+
manifest at the repo root, so the whole referee — the MCP server plus a context
|
|
604
|
+
file that tells the model to gate its own done-claims — installs as one Gemini
|
|
605
|
+
extension, no clone and no config edit:
|
|
606
|
+
|
|
607
|
+
```bash
|
|
608
|
+
pip install 'dos-kernel[mcp]' # the server the extension launches
|
|
609
|
+
gemini extensions install https://github.com/anthony-chaudhary/dos-kernel
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
The same manifest is what Google's auto-indexed
|
|
613
|
+
[extensions gallery](https://geminicli.com/extensions/) crawls, so the listing
|
|
614
|
+
is automatic.
|
|
615
|
+
|
|
569
616
|
### …then make the verdict *act* (hooks)
|
|
570
617
|
|
|
571
618
|
To go from "the agent can ask" to "the host won't let a bad call through", wire
|
|
@@ -573,22 +620,46 @@ DOS's hooks into the runtime you actually run. One command per host — it write
|
|
|
573
620
|
that host's own hook-config file, merged into anything already there:
|
|
574
621
|
|
|
575
622
|
```bash
|
|
623
|
+
dos init --hooks auto . # don't know the names below? this detects the
|
|
624
|
+
# runtime(s) this repo already uses and wires them all
|
|
576
625
|
dos init --hooks claude-code . # .claude/settings.json
|
|
577
626
|
dos init --hooks cursor . # .cursor/hooks.json
|
|
578
627
|
dos init --hooks codex . # .codex/config.toml
|
|
579
628
|
dos init --hooks gemini . # .gemini/settings.json
|
|
580
629
|
dos init --hooks antigravity . # .agents/hooks.json
|
|
630
|
+
dos init --hooks claude-cowork . # the SAME .claude/settings.json Claude Code reads
|
|
581
631
|
```
|
|
582
632
|
|
|
633
|
+
The list above is illustrative, not authoritative — the live matrix is a verb:
|
|
634
|
+
`dos hosts` prints every host DOS can wire, sourced from the registries themselves
|
|
635
|
+
(`dos hosts --json` for tooling), so the table never rots out of sync with what
|
|
636
|
+
`dos init --hooks` actually installs. Each row carries the host's tier, the events
|
|
637
|
+
it binds, its dialect, its config path, the exact wiring command, and the host's
|
|
638
|
+
own caveat (Codex's partial tool coverage, Cowork's not-yet-firing hooks). A host
|
|
639
|
+
with **no** row is itself the signal: it has no hook seam, so its DOS surface is
|
|
640
|
+
the advisory one (MCP + skills).
|
|
641
|
+
|
|
583
642
|
That binds three shipped hooks: `pretool` denies a structurally-refused call
|
|
584
643
|
before it runs, `stop` refuses a stop on an unverified "done," `posttool`
|
|
585
644
|
re-surfaces a stalled stream. This is the **enforcement** path (the *host*
|
|
586
645
|
denies on a DOS verdict) — the complement to MCP's advisory path. Until
|
|
587
|
-
recently this spoke only Claude Code; it now installs across
|
|
588
|
-
Claude Code, Cursor, Codex, Gemini, and
|
|
646
|
+
recently this spoke only Claude Code; it now installs across six hosts —
|
|
647
|
+
Claude Code, Cursor, Codex, Gemini, Antigravity, and Claude Cowork
|
|
589
648
|
([docs/221](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/221_the-cross-vendor-hook-installer.md),
|
|
590
|
-
[docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md)
|
|
591
|
-
|
|
649
|
+
[docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md),
|
|
650
|
+
[docs/298](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/298_claude-cowork-the-sixth-host-shared-surface.md)).
|
|
651
|
+
`--with-hooks` is the back-compat alias for `--hooks claude-code`. `auto`
|
|
652
|
+
([docs/303](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/303_hooks-auto-detection-plan.md))
|
|
653
|
+
names the host *for* you: it probes which of those config dirs already exist in
|
|
654
|
+
the repo — plus the shell's own environment, so a fresh repo opened inside
|
|
655
|
+
Claude Code still detects — wires every runtime it finds (a shared config file
|
|
656
|
+
is wired once), and fails loud with the list above when nothing is detectable,
|
|
657
|
+
never guessing. Claude
|
|
658
|
+
Cowork is the *shared-surface* host: it runs the same agent harness as Claude
|
|
659
|
+
Code, so wiring either name binds both — one file, one set of hooks. (One
|
|
660
|
+
honest caveat, carried on the install note itself: the Cowork app doesn't
|
|
661
|
+
*fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
|
|
662
|
+
Cowork's working DOS surface is the advisory one above.)
|
|
592
663
|
|
|
593
664
|
Under the installer sits a pluggable dialect seam: the verdict is decided
|
|
594
665
|
once, then rendered into whatever JSON shape the host parses
|
|
@@ -770,9 +841,9 @@ pip install "dos-kernel[mcp]"
|
|
|
770
841
|
|
|
771
842
|
After installing, run **`/dos-kernel:dos-setup`** once — it confirms the package
|
|
772
843
|
is importable, reports what the plugin wired, and points at the next skill. The
|
|
773
|
-
same three hooks are available à la carte via `dos init --hooks
|
|
774
|
-
|
|
775
|
-
Code form. The bundle's design + the build that keeps its skills in lockstep
|
|
844
|
+
same three hooks are available à la carte via `dos init --hooks auto` (detects
|
|
845
|
+
your runtime; or name one — claude-code, cursor, codex, gemini, antigravity,
|
|
846
|
+
claude-cowork); the plugin is just the pre-packaged Claude Code form. The bundle's design + the build that keeps its skills in lockstep
|
|
776
847
|
with the source are in **[claude-plugin/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/claude-plugin/README.md)**.
|
|
777
848
|
|
|
778
849
|
## CLI
|
|
@@ -990,12 +1061,33 @@ for a copy-me skeleton.
|
|
|
990
1061
|
## Documentation
|
|
991
1062
|
|
|
992
1063
|
- **[docs/QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md)** — runnable 5-minute hello-world. Start here.
|
|
1064
|
+
- **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
|
|
1065
|
+
verify an agent's claim?", "does it need an LLM?"), each answered in one
|
|
1066
|
+
self-contained block.
|
|
1067
|
+
- **[docs/ALTERNATIVES.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/ALTERNATIVES.md)** — DOS and the
|
|
1068
|
+
alternatives: evals, framework guardrails, Temporal, in-toto, plain CI —
|
|
1069
|
+
what each does well, what DOS adds, and when NOT to use DOS.
|
|
993
1070
|
- **[docs/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/README.md)** — the docs index (guides vs. design notes
|
|
994
1071
|
vs. the dated build-journal; the numbers are chronology, not a reading order).
|
|
995
1072
|
- **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)** — extend DOS without forking it.
|
|
1073
|
+
- **[docs/DOT_DOS.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/DOT_DOS.md)** — the `.dos`
|
|
1074
|
+
surface: what that directory is, why it's safe to delete, and the
|
|
1075
|
+
repo-resident state contract (policy in `dos.toml`, fossils under `.dos/`,
|
|
1076
|
+
verdicts in git) that keeps every host adapter thin.
|
|
1077
|
+
- **[docs/STABILITY.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/STABILITY.md)** — the compatibility
|
|
1078
|
+
promise: what you may depend on, what SemVer means here, how deprecations
|
|
1079
|
+
are announced (`DosDeprecationWarning`, a two-minor-release window), and
|
|
1080
|
+
what will never break.
|
|
996
1081
|
- **[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
|
|
997
1082
|
architecture contract and how to send a change.
|
|
1083
|
+
- **[verify-action/](https://github.com/anthony-chaudhary/dos-kernel/blob/master/verify-action/README.md)** — the CI gate: a
|
|
1084
|
+
composite Action and a reusable workflow that run `dos commit-audit` on every
|
|
1085
|
+
PR and merge-queue group and post the verdict as the named **dos-verify**
|
|
1086
|
+
status check; make it required and GitHub enforces what the kernel decides
|
|
1087
|
+
(the *verified by DOS* badge above is this gate on the kernel's own repo).
|
|
998
1088
|
- **[docs/releases/](https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases)** — per-version release notes (the changelog).
|
|
1089
|
+
- **[The website](https://anthony-chaudhary.github.io/dos-kernel/)** — this page,
|
|
1090
|
+
condensed to one screen (good for sending to someone).
|
|
999
1091
|
|
|
1000
1092
|
## Playbooks & examples
|
|
1001
1093
|
|
|
@@ -1017,6 +1109,10 @@ back verbatim:
|
|
|
1017
1109
|
CrewAI, AutoGen, the OpenAI/Claude Agents SDK — with every framework recipe also
|
|
1018
1110
|
shipped as a runnable, suite-pinned file under
|
|
1019
1111
|
[`examples/fleet_frameworks/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/fleet_frameworks).
|
|
1112
|
+
Two seats ship as drivers in the package itself ([docs/305](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/305_guardrail-seat-pair-openai-agents-and-crewai-plan.md)):
|
|
1113
|
+
an OpenAI Agents SDK output guardrail that trips on a deliverable git can't
|
|
1114
|
+
see, and a CrewAI task guardrail that turns the retry loop into a
|
|
1115
|
+
do-the-work loop — one import line each.
|
|
1020
1116
|
- [**Wire DOS into a Hermes / OpenClaw swarm**](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/hermes_integration) —
|
|
1021
1117
|
the offline, A/B-measured swarm-runtime example: the `exec-capability` gate
|
|
1022
1118
|
refuses a prompt-injected command before it runs (real at a single agent), and
|
|
@@ -12,8 +12,18 @@
|
|
|
12
12
|
[](https://pypi.org/project/dos-kernel/)
|
|
13
13
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml)
|
|
14
14
|
[](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml)
|
|
15
|
+
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/scoreboard/methodology.md)
|
|
15
16
|
[](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE)
|
|
16
17
|
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/caught-lie-cast.svg" alt="A terminal recording of the caught lie. The agent reports: Done! Shipped the login endpoint (AUTH1) and the password reset (AUTH2). git log shows one commit — AUTH1: ship the login endpoint. dos verify AUTH AUTH1 answers SHIPPED (exit 0); dos verify AUTH AUTH2 answers NOT_SHIPPED via none (exit 1) — caught. The exit code is the verdict: gate the agent's done on it and a false claim cannot land." width="100%">
|
|
20
|
+
<br>
|
|
21
|
+
<em>The whole pitch in one recording: the agent claims two features shipped; git backs one.
|
|
22
|
+
<code>dos verify</code> answers from the commits, the lie exits <code>1</code>, and a gate on that
|
|
23
|
+
exit code refuses the false "done". Every line is the real CLI's verbatim output —
|
|
24
|
+
<a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/scripts/build_caught_lie_cast.py"><code>scripts/build_caught_lie_cast.py</code></a> re-records it whenever the output changes.</em>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
17
27
|
<p align="center">
|
|
18
28
|
<img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/loop-hero.svg" alt="Two agent fleets side by side. Left, no referee: agents all report 'done!', every report is believed, and silent corruption (lies, collisions, spin) piles up into a codebase that 'sorta works' and can't be changed. Right, DOS adjudicates: dos verify reads git and the run branches to SHIPPED (exit 0, land it) or NOT_SHIPPED (exit 1, re-dispatch — caught), and that verdict steers the next step." width="100%">
|
|
19
29
|
<br>
|
|
@@ -47,7 +57,23 @@ zero config, and the only thing you ever install is one small Python package.
|
|
|
47
57
|
> ⏱️ **Want to try it right now?** Jump to **[Try it in 60 seconds](#try-it-in-60-seconds)**
|
|
48
58
|
> — one command, real output, then come back for the why.
|
|
49
59
|
|
|
50
|
-
|
|
60
|
+
> ⚡ **Or just add it — two commands, zero decisions.** From the repo where your
|
|
61
|
+
> agent works:
|
|
62
|
+
>
|
|
63
|
+
> ```bash
|
|
64
|
+
> pip install dos-kernel
|
|
65
|
+
> dos init --hooks auto # finds the agent runtime(s) you already use, wires in the checks
|
|
66
|
+
> ```
|
|
67
|
+
>
|
|
68
|
+
> From then on: your agent can't tell you **"done"** unless the work actually
|
|
69
|
+
> landed, two agents can't silently overwrite each other's files, and a run
|
|
70
|
+
> that stalls gets flagged instead of quietly spinning. Nothing about your
|
|
71
|
+
> workflow changes, and you don't need to learn any of the vocabulary below to
|
|
72
|
+
> be covered. It prints the one config file it wrote; deleting the `dos hook`
|
|
73
|
+
> entries there undoes it. (No runtime detected? It says so and lists the
|
|
74
|
+
> names to pick from — it never guesses.)
|
|
75
|
+
|
|
76
|
+
<sub>**v0.26.0** · 3900+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
|
|
51
77
|
smoke run · the only runtime dependency is **PyYAML** · **MIT**.</sub>
|
|
52
78
|
|
|
53
79
|
> 🧭 **Want it in plain words first?** What DOS is, what it catches, and what
|
|
@@ -500,9 +526,11 @@ first (`dos_verify` "did it ship?", `dos_commit_audit` "does this commit's claim
|
|
|
500
526
|
match its diff?", `dos_status` one folded fact about a run), then
|
|
501
527
|
`dos_arbitrate` (may two workers run without colliding?), the structured-refusal
|
|
502
528
|
pair (`dos_refuse_reasons` / `dos_check_reason`), `dos_recall` (is this recalled
|
|
503
|
-
memory still true?),
|
|
504
|
-
|
|
505
|
-
|
|
529
|
+
memory still true?), `dos_citation_resolve` (does this cited legal case exist in
|
|
530
|
+
a third-party reporter? — the *Mata v. Avianca* witness), and `dos_doctor` (the
|
|
531
|
+
workspace report) — so any
|
|
532
|
+
MCP-speaking host — Claude Desktop, Claude Cowork, Cursor, Cline, Trae, an
|
|
533
|
+
Agent-SDK app — can call the referee over JSON-on-stdio with zero Python coupling. Each verdict comes
|
|
506
534
|
back with a one-line interpretation of what it means for the agent's next move.
|
|
507
535
|
(See **[the MCP server surface](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/80_mcp-server-surface.md)**.)
|
|
508
536
|
|
|
@@ -517,6 +545,20 @@ thinks to. The per-host wiring for Cursor / Codex / Gemini is in
|
|
|
517
545
|
**[the MCP README](https://github.com/anthony-chaudhary/dos-kernel/blob/master/src/dos_mcp/README.md)** — all four are MCP clients, so this
|
|
518
546
|
works on every one of them with zero code.
|
|
519
547
|
|
|
548
|
+
**Gemini CLI users get a one-liner.** DOS ships a `gemini-extension.json`
|
|
549
|
+
manifest at the repo root, so the whole referee — the MCP server plus a context
|
|
550
|
+
file that tells the model to gate its own done-claims — installs as one Gemini
|
|
551
|
+
extension, no clone and no config edit:
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
pip install 'dos-kernel[mcp]' # the server the extension launches
|
|
555
|
+
gemini extensions install https://github.com/anthony-chaudhary/dos-kernel
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
The same manifest is what Google's auto-indexed
|
|
559
|
+
[extensions gallery](https://geminicli.com/extensions/) crawls, so the listing
|
|
560
|
+
is automatic.
|
|
561
|
+
|
|
520
562
|
### …then make the verdict *act* (hooks)
|
|
521
563
|
|
|
522
564
|
To go from "the agent can ask" to "the host won't let a bad call through", wire
|
|
@@ -524,22 +566,46 @@ DOS's hooks into the runtime you actually run. One command per host — it write
|
|
|
524
566
|
that host's own hook-config file, merged into anything already there:
|
|
525
567
|
|
|
526
568
|
```bash
|
|
569
|
+
dos init --hooks auto . # don't know the names below? this detects the
|
|
570
|
+
# runtime(s) this repo already uses and wires them all
|
|
527
571
|
dos init --hooks claude-code . # .claude/settings.json
|
|
528
572
|
dos init --hooks cursor . # .cursor/hooks.json
|
|
529
573
|
dos init --hooks codex . # .codex/config.toml
|
|
530
574
|
dos init --hooks gemini . # .gemini/settings.json
|
|
531
575
|
dos init --hooks antigravity . # .agents/hooks.json
|
|
576
|
+
dos init --hooks claude-cowork . # the SAME .claude/settings.json Claude Code reads
|
|
532
577
|
```
|
|
533
578
|
|
|
579
|
+
The list above is illustrative, not authoritative — the live matrix is a verb:
|
|
580
|
+
`dos hosts` prints every host DOS can wire, sourced from the registries themselves
|
|
581
|
+
(`dos hosts --json` for tooling), so the table never rots out of sync with what
|
|
582
|
+
`dos init --hooks` actually installs. Each row carries the host's tier, the events
|
|
583
|
+
it binds, its dialect, its config path, the exact wiring command, and the host's
|
|
584
|
+
own caveat (Codex's partial tool coverage, Cowork's not-yet-firing hooks). A host
|
|
585
|
+
with **no** row is itself the signal: it has no hook seam, so its DOS surface is
|
|
586
|
+
the advisory one (MCP + skills).
|
|
587
|
+
|
|
534
588
|
That binds three shipped hooks: `pretool` denies a structurally-refused call
|
|
535
589
|
before it runs, `stop` refuses a stop on an unverified "done," `posttool`
|
|
536
590
|
re-surfaces a stalled stream. This is the **enforcement** path (the *host*
|
|
537
591
|
denies on a DOS verdict) — the complement to MCP's advisory path. Until
|
|
538
|
-
recently this spoke only Claude Code; it now installs across
|
|
539
|
-
Claude Code, Cursor, Codex, Gemini, and
|
|
592
|
+
recently this spoke only Claude Code; it now installs across six hosts —
|
|
593
|
+
Claude Code, Cursor, Codex, Gemini, Antigravity, and Claude Cowork
|
|
540
594
|
([docs/221](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/221_the-cross-vendor-hook-installer.md),
|
|
541
|
-
[docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md)
|
|
542
|
-
|
|
595
|
+
[docs/269](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/269_antigravity-the-fifth-host.md),
|
|
596
|
+
[docs/298](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/298_claude-cowork-the-sixth-host-shared-surface.md)).
|
|
597
|
+
`--with-hooks` is the back-compat alias for `--hooks claude-code`. `auto`
|
|
598
|
+
([docs/303](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/303_hooks-auto-detection-plan.md))
|
|
599
|
+
names the host *for* you: it probes which of those config dirs already exist in
|
|
600
|
+
the repo — plus the shell's own environment, so a fresh repo opened inside
|
|
601
|
+
Claude Code still detects — wires every runtime it finds (a shared config file
|
|
602
|
+
is wired once), and fails loud with the list above when nothing is detectable,
|
|
603
|
+
never guessing. Claude
|
|
604
|
+
Cowork is the *shared-surface* host: it runs the same agent harness as Claude
|
|
605
|
+
Code, so wiring either name binds both — one file, one set of hooks. (One
|
|
606
|
+
honest caveat, carried on the install note itself: the Cowork app doesn't
|
|
607
|
+
*fire* hooks yet — anthropics/claude-code#63360 — so until that closes,
|
|
608
|
+
Cowork's working DOS surface is the advisory one above.)
|
|
543
609
|
|
|
544
610
|
Under the installer sits a pluggable dialect seam: the verdict is decided
|
|
545
611
|
once, then rendered into whatever JSON shape the host parses
|
|
@@ -721,9 +787,9 @@ pip install "dos-kernel[mcp]"
|
|
|
721
787
|
|
|
722
788
|
After installing, run **`/dos-kernel:dos-setup`** once — it confirms the package
|
|
723
789
|
is importable, reports what the plugin wired, and points at the next skill. The
|
|
724
|
-
same three hooks are available à la carte via `dos init --hooks
|
|
725
|
-
|
|
726
|
-
Code form. The bundle's design + the build that keeps its skills in lockstep
|
|
790
|
+
same three hooks are available à la carte via `dos init --hooks auto` (detects
|
|
791
|
+
your runtime; or name one — claude-code, cursor, codex, gemini, antigravity,
|
|
792
|
+
claude-cowork); the plugin is just the pre-packaged Claude Code form. The bundle's design + the build that keeps its skills in lockstep
|
|
727
793
|
with the source are in **[claude-plugin/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/claude-plugin/README.md)**.
|
|
728
794
|
|
|
729
795
|
## CLI
|
|
@@ -941,12 +1007,33 @@ for a copy-me skeleton.
|
|
|
941
1007
|
## Documentation
|
|
942
1008
|
|
|
943
1009
|
- **[docs/QUICKSTART.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md)** — runnable 5-minute hello-world. Start here.
|
|
1010
|
+
- **[docs/FAQ.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md)** — the arriving questions ("how do I
|
|
1011
|
+
verify an agent's claim?", "does it need an LLM?"), each answered in one
|
|
1012
|
+
self-contained block.
|
|
1013
|
+
- **[docs/ALTERNATIVES.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/ALTERNATIVES.md)** — DOS and the
|
|
1014
|
+
alternatives: evals, framework guardrails, Temporal, in-toto, plain CI —
|
|
1015
|
+
what each does well, what DOS adds, and when NOT to use DOS.
|
|
944
1016
|
- **[docs/README.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/README.md)** — the docs index (guides vs. design notes
|
|
945
1017
|
vs. the dated build-journal; the numbers are chronology, not a reading order).
|
|
946
1018
|
- **[docs/HACKING.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/HACKING.md)** — extend DOS without forking it.
|
|
1019
|
+
- **[docs/DOT_DOS.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/DOT_DOS.md)** — the `.dos`
|
|
1020
|
+
surface: what that directory is, why it's safe to delete, and the
|
|
1021
|
+
repo-resident state contract (policy in `dos.toml`, fossils under `.dos/`,
|
|
1022
|
+
verdicts in git) that keeps every host adapter thin.
|
|
1023
|
+
- **[docs/STABILITY.md](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/STABILITY.md)** — the compatibility
|
|
1024
|
+
promise: what you may depend on, what SemVer means here, how deprecations
|
|
1025
|
+
are announced (`DosDeprecationWarning`, a two-minor-release window), and
|
|
1026
|
+
what will never break.
|
|
947
1027
|
- **[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
|
|
948
1028
|
architecture contract and how to send a change.
|
|
1029
|
+
- **[verify-action/](https://github.com/anthony-chaudhary/dos-kernel/blob/master/verify-action/README.md)** — the CI gate: a
|
|
1030
|
+
composite Action and a reusable workflow that run `dos commit-audit` on every
|
|
1031
|
+
PR and merge-queue group and post the verdict as the named **dos-verify**
|
|
1032
|
+
status check; make it required and GitHub enforces what the kernel decides
|
|
1033
|
+
(the *verified by DOS* badge above is this gate on the kernel's own repo).
|
|
949
1034
|
- **[docs/releases/](https://github.com/anthony-chaudhary/dos-kernel/tree/master/docs/releases)** — per-version release notes (the changelog).
|
|
1035
|
+
- **[The website](https://anthony-chaudhary.github.io/dos-kernel/)** — this page,
|
|
1036
|
+
condensed to one screen (good for sending to someone).
|
|
950
1037
|
|
|
951
1038
|
## Playbooks & examples
|
|
952
1039
|
|
|
@@ -968,6 +1055,10 @@ back verbatim:
|
|
|
968
1055
|
CrewAI, AutoGen, the OpenAI/Claude Agents SDK — with every framework recipe also
|
|
969
1056
|
shipped as a runnable, suite-pinned file under
|
|
970
1057
|
[`examples/fleet_frameworks/`](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/fleet_frameworks).
|
|
1058
|
+
Two seats ship as drivers in the package itself ([docs/305](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/305_guardrail-seat-pair-openai-agents-and-crewai-plan.md)):
|
|
1059
|
+
an OpenAI Agents SDK output guardrail that trips on a deliverable git can't
|
|
1060
|
+
see, and a CrewAI task guardrail that turns the retry loop into a
|
|
1061
|
+
do-the-work loop — one import line each.
|
|
971
1062
|
- [**Wire DOS into a Hermes / OpenClaw swarm**](https://github.com/anthony-chaudhary/dos-kernel/tree/master/examples/hermes_integration) —
|
|
972
1063
|
the offline, A/B-measured swarm-runtime example: the `exec-capability` gate
|
|
973
1064
|
refuses a prompt-injected command before it runs (real at a single agent), and
|
|
@@ -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.26.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",
|
|
@@ -118,6 +123,18 @@ export-otlp = [
|
|
|
118
123
|
"opentelemetry-sdk>=1.20",
|
|
119
124
|
"opentelemetry-exporter-otlp-proto-http>=1.20",
|
|
120
125
|
]
|
|
126
|
+
# The Mem0 memory-store driver (src/dos/drivers/memory_mem0, docs/314 P3). Kept OUT
|
|
127
|
+
# of the core for the same reason as [mcp]/[tui]/[notify-slack]: the kernel stays
|
|
128
|
+
# near-stdlib. `dos memory recall/verify/admit` work with NO extra (the built-in
|
|
129
|
+
# `file` store; the admit gate reads only candidate bytes); this extra adds only the
|
|
130
|
+
# Mem0 SDK so the same gates sweep a HOSTED memory store. The driver imports the SDK
|
|
131
|
+
# LAZILY (inside the client builder, never at module load) and fails with an install
|
|
132
|
+
# hint only when a read is attempted — so entry-point discovery of the driver never
|
|
133
|
+
# fails for lack of it (the notify_slack discipline). The store seam
|
|
134
|
+
# (dos.memory_stores) names no provider and stays dependency-free.
|
|
135
|
+
memory-mem0 = [
|
|
136
|
+
"mem0ai>=0.1",
|
|
137
|
+
]
|
|
121
138
|
# The arXiv paper bundle tooling (paper/arxiv/make_bundle.py). NOT part of the
|
|
122
139
|
# kernel — it operates on the paper, which itself only `import dos`-es nothing
|
|
123
140
|
# (the paper is downstream of the code, the one-way arrow). Kept OUT of the core
|
|
@@ -188,6 +205,10 @@ codex = "dos.drivers.hook_dialects:CodexDialect"
|
|
|
188
205
|
gemini = "dos.drivers.hook_dialects:GeminiDialect"
|
|
189
206
|
cursor = "dos.drivers.hook_dialects:CursorDialect"
|
|
190
207
|
antigravity = "dos.drivers.hook_dialects:AntigravityDialect"
|
|
208
|
+
# Claude Cowork runs the Claude Code agent harness in a desktop VM, so its envelope
|
|
209
|
+
# IS CC's — the renderer delegates (the Codex precedent), kept as a named entry so
|
|
210
|
+
# `--dialect claude-cowork` resolves and a future divergence has a home (docs/298).
|
|
211
|
+
claude-cowork = "dos.drivers.hook_dialects:ClaudeCoworkDialect"
|
|
191
212
|
# Hermes Agent (Nous Research) — its `pre_tool_call` SHELL hook is a real
|
|
192
213
|
# stdout-JSON deny surface (`{"decision":"block","reason":…}`), docs/278. (OpenClaw's
|
|
193
214
|
# real hook is an in-process TS return, not stdout — no renderer consumer; SwarmClaw
|
|
@@ -282,10 +303,34 @@ codex = "dos.drivers.hook_dialects:codex_install_spec"
|
|
|
282
303
|
gemini = "dos.drivers.hook_dialects:gemini_install_spec"
|
|
283
304
|
cursor = "dos.drivers.hook_dialects:cursor_install_spec"
|
|
284
305
|
antigravity = "dos.drivers.hook_dialects:antigravity_install_spec"
|
|
306
|
+
# Claude Cowork — the SHARED surface: the same .claude/settings.json Claude Code
|
|
307
|
+
# reads (same harness, same file; the wired command carries NO --dialect because the
|
|
308
|
+
# shared file must serve both runtimes and the default IS the envelope). The spec's
|
|
309
|
+
# note carries the one Cowork-specific fact: the product does not fire hooks yet
|
|
310
|
+
# (anthropics/claude-code#63360, docs/298).
|
|
311
|
+
claude-cowork = "dos.drivers.hook_dialects:claude_cowork_install_spec"
|
|
312
|
+
|
|
313
|
+
# The memory-STORE providers (docs/314 P2/P3) — where a fleet's memories live, so
|
|
314
|
+
# the recall gate (docs/103) and the write gate (`dos memory admit`) can run against
|
|
315
|
+
# hosted memory, not just a directory of markdown. The kernel seam
|
|
316
|
+
# (`dos.memory_stores`) holds the read-only MemoryStore Protocol + resolver + the
|
|
317
|
+
# ONE unshadowable `file` built-in; every provider store names its vendor as code
|
|
318
|
+
# (a Mem0 store is inherently Mem0-specific), which the vendor-blindness litmus
|
|
319
|
+
# forbids in a kernel module — so it lives in a DRIVER and registers here, the same
|
|
320
|
+
# kernel/driver split as `dos.judges` / `dos.notifiers`. `--store-kind mem0`
|
|
321
|
+
# discovers it by name; the kernel imports none of them. The `mem0` store needs the
|
|
322
|
+
# `[memory-mem0]` extra; its lazy import means discovering it here never fails when
|
|
323
|
+
# the extra is absent (it resolves, and reports the install hint only on a read).
|
|
324
|
+
[project.entry-points."dos.memory_stores"]
|
|
325
|
+
mem0 = "dos.drivers.memory_mem0:Mem0Store"
|
|
285
326
|
|
|
286
327
|
[project.urls]
|
|
287
328
|
Homepage = "https://github.com/anthony-chaudhary/dos-kernel"
|
|
329
|
+
Website = "https://anthony-chaudhary.github.io/dos-kernel/"
|
|
288
330
|
Documentation = "https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/QUICKSTART.md"
|
|
331
|
+
FAQ = "https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/FAQ.md"
|
|
332
|
+
# The agent-facing index (docs/299): the raw URL is the fetchable spelling.
|
|
333
|
+
"llms.txt" = "https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/llms.txt"
|
|
289
334
|
Repository = "https://github.com/anthony-chaudhary/dos-kernel"
|
|
290
335
|
Issues = "https://github.com/anthony-chaudhary/dos-kernel/issues"
|
|
291
336
|
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.26.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
|
|
@@ -166,6 +166,17 @@ from dos.reward import ( # noqa: F401 (the reward-set admission verdict, docs/
|
|
|
166
166
|
AcceptanceAB,
|
|
167
167
|
acceptance_ab as reward_acceptance_ab,
|
|
168
168
|
)
|
|
169
|
+
from dos.deprecation import ( # noqa: F401 (the typed deprecation category, docs/308)
|
|
170
|
+
DosDeprecationWarning,
|
|
171
|
+
warn_deprecated,
|
|
172
|
+
)
|
|
173
|
+
from dos.verified import ( # noqa: F401 (the in-process verify gate, issue #75)
|
|
174
|
+
# NB: this deliberately rebinds the `dos.verified` attribute from the
|
|
175
|
+
# submodule to the callable, so `from dos import verified` yields the
|
|
176
|
+
# decorator/context-manager (the issue-#75 surface), datetime.datetime-style.
|
|
177
|
+
verified,
|
|
178
|
+
NotShippedError,
|
|
179
|
+
)
|
|
169
180
|
|
|
170
181
|
__all__ = [
|
|
171
182
|
"__version__",
|
|
@@ -258,4 +269,8 @@ __all__ = [
|
|
|
258
269
|
"reward_admit",
|
|
259
270
|
"AcceptanceAB",
|
|
260
271
|
"reward_acceptance_ab",
|
|
272
|
+
"DosDeprecationWarning",
|
|
273
|
+
"warn_deprecated",
|
|
274
|
+
"verified",
|
|
275
|
+
"NotShippedError",
|
|
261
276
|
]
|