mostlyright-data 0.10.7__tar.gz → 0.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/PKG-INFO +1 -1
  2. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/pyproject.toml +1 -1
  3. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/skills/mr-data-build/SKILL.md +238 -91
  4. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/declared_checks.py +2 -2
  5. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_run_worker.py +411 -62
  6. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_session_worker.py +8 -5
  7. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/run_execution_v4.py +182 -15
  8. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/contracts.py +10 -0
  9. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/studio_boundary.py +1 -1
  10. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/recipe.py +50 -0
  11. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/router.py +13 -0
  12. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/session.py +30 -1
  13. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4.py +62 -7
  14. mostlyright_data-0.11.0/src/mostlyright/data_harness/thin/v4_datasets.py +1039 -0
  15. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_handoff.py +193 -24
  16. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_narrative.py +7 -5
  17. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/vocabulary.py +6 -0
  18. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/attendance.py +121 -6
  19. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/clarify.py +14 -3
  20. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/remediation.py +1 -1
  21. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/render.py +10 -0
  22. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_recipe.py +56 -3
  23. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/.gitignore +0 -0
  24. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/README.md +0 -0
  25. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/scripts/hatch_build.py +0 -0
  26. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/skills/mr-data-build/agents/openai.yaml +0 -0
  27. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  28. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
  29. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/__init__.py +0 -0
  30. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
  31. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
  32. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
  33. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
  34. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
  35. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
  36. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
  37. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
  38. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
  39. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
  40. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
  41. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
  42. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
  43. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
  44. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
  45. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
  46. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
  47. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
  48. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
  49. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
  50. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
  51. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
  52. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
  53. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
  54. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  55. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  56. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  57. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  58. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
  59. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
  60. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
  61. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
  62. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
  63. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
  64. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
  65. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
  66. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
  67. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/__init__.py +0 -0
  68. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  69. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  70. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  71. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  72. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  73. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  74. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  75. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
  76. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  77. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  78. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  79. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  80. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  81. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  82. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/reference.py +0 -0
  83. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/registry.py +0 -0
  84. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  85. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/bounded_query.py +0 -0
  86. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/canonical.py +0 -0
  87. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/catalog_job.py +0 -0
  88. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/cli.py +0 -0
  89. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/contracts.py +0 -0
  90. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/coordinator.py +0 -0
  91. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/crosswalks.py +0 -0
  92. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/deploy.py +0 -0
  93. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/deploy_target.py +0 -0
  94. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  95. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/__init__.py +0 -0
  96. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
  97. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/agent_request.py +0 -0
  98. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/capture.py +0 -0
  99. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/contracts.py +0 -0
  100. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/lane.py +0 -0
  101. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/ocr.py +0 -0
  102. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/pdf.py +0 -0
  103. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/registry.py +0 -0
  104. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
  105. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/selections.py +0 -0
  106. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/tables.py +0 -0
  107. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
  108. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/events.py +0 -0
  109. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  110. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/formats.py +0 -0
  111. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/governors.py +0 -0
  112. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
  113. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
  114. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  115. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  116. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
  117. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  118. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_dataset.py +0 -0
  119. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  120. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_handoff.py +0 -0
  121. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  122. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  123. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  124. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
  125. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  126. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  127. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  128. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
  129. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
  130. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
  131. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/hosted_worker.py +0 -0
  132. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  133. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  134. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  135. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  136. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  137. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  138. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
  139. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/key_seam.py +0 -0
  140. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
  141. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_contracts.py +0 -0
  142. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/__init__.py +0 -0
  143. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/build_index.py +0 -0
  144. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/contracts.py +0 -0
  145. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/query_trace.py +0 -0
  146. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/retrieval.py +0 -0
  147. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/sealed.py +0 -0
  148. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/local_search/service.py +0 -0
  149. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  150. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  151. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  152. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  153. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  154. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  155. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  156. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  157. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  158. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  159. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  160. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  161. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  162. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  163. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  164. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  165. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  166. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/notebook.py +0 -0
  167. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/offline.py +0 -0
  168. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/operation_registry.py +0 -0
  169. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/operator_setup.py +0 -0
  170. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/pipeline.py +0 -0
  171. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/plan_graph.py +0 -0
  172. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  173. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  174. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  175. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  176. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  177. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  178. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  179. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/table.py +0 -0
  180. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  181. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/progress_events.py +0 -0
  182. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  183. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
  184. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/budgets.py +0 -0
  185. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/containers.py +0 -0
  186. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  187. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  188. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
  189. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
  190. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
  191. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  192. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  193. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
  194. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
  195. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  196. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  197. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  198. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
  199. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
  200. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
  201. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  202. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  203. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
  204. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
  205. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
  206. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
  207. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
  208. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
  209. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
  210. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
  211. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
  212. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
  213. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
  214. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
  215. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/registry.py +0 -0
  216. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  217. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  218. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  219. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  220. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  221. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  222. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  223. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  224. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  225. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  226. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  227. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  228. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  229. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  230. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  231. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  232. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  233. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  234. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  235. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  236. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  237. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
  238. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
  239. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
  240. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  241. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
  242. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  243. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
  244. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
  245. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
  246. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
  247. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
  248. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  249. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  250. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  251. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  252. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  253. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  254. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
  255. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
  256. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  257. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
  258. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  259. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
  260. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  261. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
  262. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  263. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
  264. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
  265. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
  266. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
  267. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  268. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  269. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
  270. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  271. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
  272. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
  273. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  274. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
  275. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  276. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
  277. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  278. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
  279. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/himawari-hsd-b13-complete.zip +0 -0
  280. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
  281. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  282. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
  283. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  284. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
  285. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  286. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
  287. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
  288. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
  289. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  290. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
  291. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  292. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
  293. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  294. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
  295. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  296. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
  297. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  298. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
  299. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  300. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  301. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  302. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  303. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  304. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  305. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  306. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  307. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  308. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  309. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  310. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  311. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  312. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  313. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  314. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  315. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
  316. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  317. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
  318. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
  319. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
  320. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
  321. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
  322. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
  323. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
  324. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
  325. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
  326. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
  327. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/samples.py +0 -0
  328. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific.py +0 -0
  329. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
  330. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
  331. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
  332. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
  333. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
  334. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
  335. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
  336. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
  337. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
  338. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
  339. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
  340. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
  341. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
  342. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
  343. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
  344. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
  345. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
  346. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
  347. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
  348. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
  349. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
  350. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  351. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
  352. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  353. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/vector.py +0 -0
  354. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
  355. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
  356. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
  357. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/recipe.py +0 -0
  358. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/repair/__init__.py +0 -0
  359. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/repair/adapters.py +0 -0
  360. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/repair/contracts.py +0 -0
  361. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/repair/coordinator.py +0 -0
  362. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/repair/errors.py +0 -0
  363. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/review.py +0 -0
  364. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/rowset.py +0 -0
  365. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/session_probes.py +0 -0
  366. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/signing.py +0 -0
  367. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/skill_assets.py +0 -0
  368. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/source_discovery.py +0 -0
  369. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  370. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  371. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/adapters.py +0 -0
  372. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  373. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  374. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  375. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  376. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  377. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  378. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  379. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  380. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  381. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  382. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  383. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  384. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  385. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  386. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  387. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/delta.py +0 -0
  388. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  389. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  390. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  391. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  392. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  393. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  394. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  395. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  396. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  397. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  398. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  399. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  400. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  401. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/health.py +0 -0
  402. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  403. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  404. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  405. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  406. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  407. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  408. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  409. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  410. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  411. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  412. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/rights_decisions.py +0 -0
  413. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  414. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  415. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  416. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  417. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/collections.py +0 -0
  418. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/dataset.py +0 -0
  419. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  420. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
  421. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  422. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/governance.py +0 -0
  423. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  424. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/integration.py +0 -0
  425. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  426. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/registry.py +0 -0
  427. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  428. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  429. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/sports.py +0 -0
  430. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream.py +0 -0
  431. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
  432. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
  433. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
  434. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
  435. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
  436. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
  437. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
  438. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
  439. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
  440. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
  441. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
  442. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
  443. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
  444. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
  445. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
  446. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
  447. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
  448. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  449. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
  450. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
  451. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  452. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  453. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
  454. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
  455. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  456. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
  457. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
  458. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
  459. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
  460. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
  461. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
  462. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/stream_venue.py +0 -0
  463. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  464. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
  465. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  466. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  467. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  468. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  469. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/commands.py +0 -0
  470. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/download.py +0 -0
  471. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  472. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/parity.py +0 -0
  473. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/probe.py +0 -0
  474. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/propose.py +0 -0
  475. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/research.py +0 -0
  476. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/runs.py +0 -0
  477. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/stream.py +0 -0
  478. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  479. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/transport.py +0 -0
  480. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  481. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  482. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  483. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
  484. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  485. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  486. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  487. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/thin/workers.py +0 -0
  488. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  489. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  490. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/unit_flow.py +0 -0
  491. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/units.py +0 -0
  492. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  493. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/approve.py +0 -0
  494. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/author_yaml.py +0 -0
  495. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/clarification.py +0 -0
  496. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  497. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  498. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/approve.py +0 -0
  499. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  500. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/author.py +0 -0
  501. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  502. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_fill.py +0 -0
  503. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  504. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  505. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_search.py +0 -0
  506. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/catalog_update.py +0 -0
  507. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/deploy.py +0 -0
  508. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/deploy_dataset.py +0 -0
  509. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/deploy_plan.py +0 -0
  510. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/deploy_status.py +0 -0
  511. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/diff.py +0 -0
  512. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/document.py +0 -0
  513. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/index.py +0 -0
  514. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/inventory.py +0 -0
  515. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/list_builds.py +0 -0
  516. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  517. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/peek.py +0 -0
  518. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/plan_check.py +0 -0
  519. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/preflight.py +0 -0
  520. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
  521. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/review_setup.py +0 -0
  522. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/search.py +0 -0
  523. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/show.py +0 -0
  524. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  525. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  526. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  527. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  528. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/diffing.py +0 -0
  529. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/headline.py +0 -0
  530. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  531. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/hosted_run_status.py +0 -0
  532. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/inventory.py +0 -0
  533. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  534. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/login.py +0 -0
  535. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  536. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/peek.py +0 -0
  537. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  538. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/plan_check.py +0 -0
  539. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/preflight.py +0 -0
  540. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/readers.py +0 -0
  541. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/ux/workload.py +0 -0
  542. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
  543. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
  544. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
  545. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
  546. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
  547. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
  548. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
  549. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/v4_transform.py +0 -0
  550. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  551. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  552. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  553. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  554. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  555. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/query.py +0 -0
  556. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  557. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  558. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  559. {mostlyright_data-0.10.7 → mostlyright_data-0.11.0}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.10.7
3
+ Version: 0.11.0
4
4
  Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
5
5
  Project-URL: Homepage, https://mostlyright.md/
6
6
  Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.10.7"
3
+ version = "0.11.0"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -78,14 +78,14 @@ the one command with no implementation behind it.
78
78
  There is no second profile and no lane to choose. `--hosted` is accepted and does nothing, because
79
79
  the lane it names is the only one; a script that already carries it keeps working.
80
80
 
81
- `mr-data --help` lists every command this product has — twenty-five of them, and the page is the
81
+ `mr-data --help` lists every command this product has — twenty-six of them, and the page is the
82
82
  whole list. A name that is not on it is not a command: typing one answers `THIN_UNKNOWN_COMMAND`,
83
83
  exactly as a misspelling does. Do not retry it under a different install, and do not report its
84
84
  absence as a defect.
85
85
 
86
86
  ## Commands
87
87
 
88
- These twenty-five are the whole surface, alongside `acquire-slices`, which names a capability
88
+ These twenty-six are the whole surface, alongside `acquire-slices`, which names a capability
89
89
  gap rather than doing anything, and `export-hosted-candidate`, which is a backend operator step.
90
90
 
91
91
  | Command | What it does |
@@ -95,6 +95,7 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
95
95
  | `mr-data whoami` | Use the compatibility alias for the remotely validated `auth status` answer. |
96
96
  | `mr-data clarify` | Say whether one clarifying question may be put to the user right now, and compose the record of their answer. It reaches nothing, asks nobody and waits for nothing. Exits non-zero when no person can answer or when a recipe is already registered. |
97
97
  | `mr-data probe` | Ask one registered source one question and print the answer. **Currently unusable:** it reaches `/v3/sessions`, which Studio refuses, and it takes a question identifier that no v4 receipt returns. Do not plan a source inspection around it. |
98
+ | `mr-data dataset` | Bring the dataset page into existence before there is anything on it, then fill it in while somebody watches. `dataset create --name TEXT` mints it and prints the `dataset_id`; `dataset show ID` reads it back; `dataset set ID --name TEXT --description-file F` writes the title and the description under the version it was read at, retrying once if somebody else wrote first; `dataset note ID --heading H --blocks-file B` writes one cell of the decision record that OUTLIVES every run, and `--list` reads it back; `dataset watch ID` follows the page's own event stream. |
98
99
  | `mr-data recipe` | Register one recipe document — dataset, question, table plan, sources, transform, checks and units — in one call, and print the identifiers the server derived. `mr-data recipe show ID` reads one back. |
99
100
  | `mr-data cover` | Generate and attach one branded 1200×630 dataset cover. Give it the dataset ID and what the image should depict; Studio fixes the model, single-color style, curated random palette, dimensions and storage. |
100
101
  | `mr-data run` | Start one run against a registered recipe. The command accepts `--sample`, `--full`, `--refresh`, `--backfill` and `--window`, and the worker executes `--sample`, `--full` and `--refresh` (a refresh re-acquires the declared addresses over the previous version and claims no window); `--backfill` and a `--window` on a sample or full are refused before acquisition. `--max-rows` and `--max-source-bytes` remain supported. A large run is held for a spend confirmation, which `--confirm` settles; a sample-first held full requires Studio's interactive human approval instead. `--cancel RUN` stops one. |
@@ -110,17 +111,17 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
110
111
  | `mr-data diff` | Compare two runs and say what changed. |
111
112
  | `mr-data keys` | Enrol a source credential by name, list the names with their created and rotated times, and delete one. `keys set` reads the value from a file or from standard input and never from the command line; no command prints a value back. |
112
113
  | `mr-data stream` | Record a public `wss://` venue so a build can read it. `stream document register --file F` admits the connector document, `stream registry create --digest D` admits a set of them, `stream probe` listens briefly and seals nothing, `stream capture --seconds N` records a bounded window, `stream subscribe` keeps recording, `stream subscription {show|pause|resume|stop} ID` moves one, `stream status ID` reads a capture or a probe, and `stream recordings --document-digest D` names what a build could read and until when. `--seconds` is at most 600. `mr-data run` takes no duration: a build reads sealed batches and is bounded by them. |
113
- | `mr-data open` | Mint a single-use, short-lived address that continues this session in a browser at one dashboard path, and print it. `--open` hands it to the platform opener. A handoff is minted only for a personal access token; a device credential is refused with `THIN_STUDIO_HANDOFF_REQUIRES_PERSONAL_ACCESS_TOKEN`, so give the user the plain dashboard address instead. |
114
+ | `mr-data open` | Mint a single-use, short-lived address that continues this session in a browser at one dashboard path, and print it. `--open` hands it to the platform opener. The credential decides who mints: a device credential — what `mr-data login` stores — mints at Cloud, and a personal access token mints at Studio. |
114
115
  | `mr-data promote` | Ask Studio to publish one table after a person's decision. The Harness worker does not perform the catch-up or scheduled refresh; report those only when another deployed component returns durable evidence that it did. |
115
116
  | `mr-data pin` | Ask Studio to freeze one table pointer on an exact version, for a rollback or a hold. |
116
117
  | `mr-data unpin` | Ask Studio to resume pointer tracking; read the returned state before claiming it resumed. |
117
118
  | `mr-data demote` | Ask Studio to withdraw the pointer and any schedule it owns. |
118
119
 
119
120
  `auth`, `login`, `whoami` and `clarify` are the same implementation in both profiles, and
120
- `clarify` alone reaches nothing at all. The other twenty-one answer from Studio. Eight only
121
- read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`, `download` and `diff`. Thirteen
122
- start or change something: `recipe`, `cover`, `run`, `query`, `probe`, `keys`, `stream`, `open`,
123
- `note`, `promote`, `pin`, `unpin` and `demote`.
121
+ `clarify` alone reaches nothing at all. The other twenty-two answer from Studio. Eight only
122
+ read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`, `download` and `diff`. Fourteen
123
+ start or change something: `dataset`, `recipe`, `cover`, `run`, `query`, `probe`, `keys`,
124
+ `stream`, `open`, `note`, `promote`, `pin`, `unpin` and `demote`.
124
125
 
125
126
  **Any successful run is readable straight away.** There is no approval, no admission and no release
126
127
  step between a run finishing and reading it: `download`, `receipt`, `checks`, `peek` and `query`
@@ -205,12 +206,20 @@ live data key is refused with `THIN_AUTHENTICATION_FAILED` rather than failing t
205
206
 
206
207
  ## Required protocol
207
208
 
208
- There is one loop, and it is short: probe a source before committing to it, draft one recipe
209
- document, build a sample, interrogate what came back, fix the document, build again. Then present
210
- only what you inspected, with its caveats. Nothing between a run finishing and reading it is held
211
- for a person, so there is no approval to seek, no separate body of evidence to read back, and no
212
- state to wait for; the only human gate in the product is [Promote](#promote), which comes after the
213
- loop has produced a table worth making live.
209
+ There is one loop, and it is short: open the page before you have anything to put on it, probe the
210
+ sources, say out loud what you chose and what you refused, draft one recipe document, build a
211
+ sample, interrogate what came back, fix the document, build again. Then present only what you
212
+ inspected, with its caveats. Nothing between a run finishing and reading it is held for a person,
213
+ so there is no approval to seek, no separate body of evidence to read back, and no state to wait
214
+ for; the only human gate in the product is [Promote](#promote), which comes after the loop has
215
+ produced a table worth making live.
216
+
217
+ **The page is the work, and it exists first.** A dataset used to come into being as a side effect
218
+ of registering a recipe, which meant nothing was visible until every decision that fills the page
219
+ had already been taken: it appeared at the end, complete, as an assertion rather than as work.
220
+ `mr-data dataset create` mints it from a working title before any research starts, so somebody
221
+ watching sees it fill in. Everything after that is an edit to something already on screen, and
222
+ every stage below writes to it as it goes rather than composing the page at the end.
214
223
 
215
224
  Authenticate first: run the Cloud authentication preflight above once, before the first cloud
216
225
  command of the session.
@@ -245,7 +254,25 @@ called `reader` — is invisible to a search for its own name. One run that isol
245
254
  settles it. Where a run is too expensive, at least check the failure details on existing runs for a
246
255
  message that contradicts you.
247
256
 
248
- ### 1. Probe — read a source before committing to it
257
+ ### 1. Open — the page, before there is anything on it
258
+
259
+ Create the dataset from a working title and put it in front of whoever is watching, **before any
260
+ research**. It costs two commands and it is what turns a build into something a person can follow:
261
+
262
+ ```sh
263
+ mr-data dataset create --name "Kathmandu monsoon flooding" --json
264
+ mr-data open /datasets/DATASET_ID
265
+ ```
266
+
267
+ Navigate the host's in-app browser to that address immediately, and keep that one tab for the whole
268
+ build. The working title is allowed to be provisional — stage 4 writes the title it settles on —
269
+ and a title that never changes is fine too. Where the address cannot be minted, carry on with the
270
+ plain dashboard address rather than blocking.
271
+
272
+ Hold the `dataset_id` for the rest of the session: stage 3 writes the decision record to it, stage
273
+ 4 writes its title, description and cover, and the recipe binds to it by naming it as `dataset.id`.
274
+
275
+ ### 2. Probe — read a source before committing to it
249
276
 
250
277
  **Judge the sources.** This stays with the external agent and is the substance of the task. Search
251
278
  every available discovery lane with no lane priority: a configured sealed catalog, host public-web
@@ -303,11 +330,56 @@ Clean room be the first thing that opens the bytes. Named messages out of one la
303
330
 
304
331
  Hold the comparison in the shape [Narrating the run](#narrating-the-run) takes: one `source` block
305
332
  per feed evaluated, rejections included with the clause that ruled each one out. Write them to a
306
- blocks file and **do not call `mr-data note` yet** — a cell goes into one run's own log, no run
307
- exists until stage 3, and a run's narrative closes the moment the run reaches a terminal state.
308
- Stage 3 is where the file is written and says when.
333
+ blocks file; stage 3 is what puts them on the page.
334
+
335
+ ### 3. Decide — say what you chose, what you refused, and what unblocks it
336
+
337
+ **Post one Sources and decisions message before you register anything.** It goes to two places, in
338
+ the same words: the dataset's own decision record, and the chat. This is the decision point that
339
+ replaced the old one-question rule, and the reason for the change is that a question is not what a
340
+ person mostly needs — what they need is to see the search, while there is still time to disagree
341
+ with it.
342
+
343
+ ```sh
344
+ mr-data dataset note DATASET_ID --heading "Sources and decisions" \
345
+ --blocks-file BLOCKS.json --json <<'EOF'
346
+ Two feeds carry hourly stage; one is licensed and cannot be used here.
347
+ EOF
348
+ ```
349
+
350
+ The cell carries a `source` block for every feed evaluated — the ones being used, the ones
351
+ considered, and the ones rejected with the clause that ruled each out — and a `decision` block for
352
+ every grain, key, join and cutoff settled. Post the same content in the chat as one short message.
353
+ Then **keep going**: this is a statement, not a gate, and waiting for a reply to it is the pause
354
+ this document does not allow.
355
+
356
+ **Blocked sources: always say what unlocks it and how to enrol the credential.** A source you could
357
+ not reach because it needs an API key, an account or an approval is not a dead end and must never
358
+ be reported as one. Name the concrete unblock step in the block's `reason` and in the chat message:
359
+ who issues the credential, where to apply for it, and the exact command that enrols it —
360
+ `mr-data keys set NAME --value-file PATH`, with the name the recipe will reference. A rejected
361
+ source with no route back is a decision the user cannot revisit; one with a route back is a
362
+ decision they can.
363
+
364
+ **Ask only at a genuine fork.** A fork is a question whose two answers produce two different tables
365
+ and which no evidence can settle — what an ambiguous word in the request means, how wide the
366
+ population is, how far back it goes. Write it as a `clarification` block carrying `question` and no
367
+ `answer`, which is what the page shows as a pending question, and ask it in the chat in the same
368
+ words. `mr-data clarify --question TEXT` says whether there is anybody to ask and whether it is
369
+ still early enough. When the answer comes back, write it as the answer on that block:
370
+
371
+ ```sh
372
+ mr-data dataset note DATASET_ID --heading "The stage grain is settled" \
373
+ --revise "one-fork-to-settle" --blocks-file ANSWERED.json --json <<'EOF'
374
+ Daily maxima, on the user's answer.
375
+ EOF
376
+ ```
309
377
 
310
- ### 2. Draft — one recipe document, one call
378
+ Everything under [Autonomous delivery](#autonomous-delivery) still holds: which source, Reader,
379
+ engine, format, workspace, retry tactic or cleaning operation to use is settled by the evidence and
380
+ is never a fork. If nothing is genuinely forked, ask nothing and carry on.
381
+
382
+ ### 4. Draft — one recipe document, one call
311
383
 
312
384
  Write ONE document — dataset identity, question, sources with their rights claims and per-source
313
385
  limits, table plan, transform plan, declared checks, declared units and timezone — and register it:
@@ -321,9 +393,27 @@ question, the sources, the connector configs and the table plan in one transacti
321
393
  `recipe_id`, `recipe_digest`, `dataset_id`, `table_id` and `source_ids`. Read
322
394
  [The recipe document](../../docs/RECIPE-DOCUMENT.md) for the shape of every member.
323
395
 
324
- Every grain, key, join and cutoff settled here is a `decision` block — see
325
- [Narrating the run](#narrating-the-run). Append them to the same blocks file the source blocks
326
- went into. There is still no run to write them into; stage 3 writes the file.
396
+ **Name the dataset the recipe binds to.** The document's `dataset` member takes an optional `id`,
397
+ and it is the identifier stage 1 printed. With it, the registration attaches to the page somebody
398
+ has been watching; without it, Studio resolves a container from the name and mints a second page
399
+ behind them. Always carry it.
400
+
401
+ Every grain, key, join and cutoff settled after stage 3 is a further `decision` block on the
402
+ DATASET's record — `mr-data dataset note DATASET_ID` — because the fact outlives every run.
403
+
404
+ **Write the title and the description before the first run, one call each.** The page has been
405
+ open since stage 1 under a working title; this is where it settles:
406
+
407
+ ```sh
408
+ mr-data dataset set DATASET_ID --name "Kathmandu monsoon flooding, 2015-2026" --json
409
+ mr-data dataset set DATASET_ID --description-file DESCRIPTION.md --json
410
+ ```
411
+
412
+ Two calls rather than one, so the person watching sees the title land and then the text arrive.
413
+ Each call reads the version first and writes under it, so a description you wrote against a page
414
+ somebody else has since edited is retried once and then reported rather than silently overwriting
415
+ them. Write the description COMPLETE the first time — it is documentation, not a placeholder — and
416
+ do not send it in pieces.
327
417
 
328
418
  **The dataset description is the documentation, and it is read by people and by search engines.**
329
419
  `dataset.description` is Markdown, rendered on the dataset page with headings and lists, and it
@@ -361,8 +451,8 @@ show, so they must stand alone. A one-line description is a defect to fix in the
361
451
  style choice. Give `table.description` the grain and the window, and give every column a
362
452
  description a reader can act on.
363
453
 
364
- **Every registered dataset gets a cover before its first run is presented.** After
365
- `mr-data recipe` answers with the `dataset_id`, generate one with
454
+ **Every dataset gets a cover before its first run is presented.** Once the description is
455
+ written, generate one with
366
456
  `mr-data cover DATASET_ID "what the image should depict" --json`, describing the subject in plain
367
457
  language — the place, the instrument, the phenomenon — and nothing about style, colour or size,
368
458
  which Studio fixes. Do it once per dataset, silently, and do not repeat it for a revision unless the
@@ -428,35 +518,42 @@ from the accepted subset — `cm`, `ug/m3`, `km/h` and the rest of it are writte
428
518
  the construct that put it there. Say `none` where a column carries no physical unit. Remember that
429
519
  the two temperature scales are offsets rather than multipliers.
430
520
 
431
- ### 3. Build — take an unwindowed sample first
521
+ ### 5. Build — take an unwindowed sample first
432
522
 
433
523
  Take an unwindowed sample before a full run. Choose row and source-byte bounds that exercise the
434
524
  shape without pretending they selected a time range. The current worker does not render a run
435
525
  window into any source request, so any stated `--window` is refused before acquisition.
436
526
 
437
527
  ```sh
438
- mr-data run RECIPE_ID --sample --max-rows 50000 --json
528
+ mr-data run RECIPE_ID --sample --max-rows 2000 --json
439
529
  ```
440
530
 
441
- **Write the record as soon as the run exists, and before it finishes.** `mr-data run` prints the
442
- run identifier and returns; the run itself then reaches a terminal state on its own, often within
443
- seconds on a sample. A run's narrative closes with the run, so a cell appended after that answers
444
- `409 RUN_NARRATIVE_CLOSED` and is lost. This is the only window there is, and it is the reason
445
- the two stages above wrote to a file instead of calling anything. So the first thing to do with a
446
- new run identifier is write the blocks stages 1 and 2 settled:
531
+ **Two thousand rows, and the first run is always this one.** A sample is for establishing shape,
532
+ and a usable one has to arrive within minutes: two thousand rows exercises every column, every
533
+ cast and every declared check, and it comes back while the person who asked is still watching the
534
+ page. A larger first sample buys nothing the checks do not already report and costs the one thing
535
+ the page cannot get back, which is the first few minutes. The full run comes later, in stage 8,
536
+ and only when the user says so.
537
+
538
+ **The dataset's record is the primary one; a run's own record is for what happened inside that
539
+ run.** The sources, the decisions and the questions went onto the dataset in stage 3, where they
540
+ outlive every run and are still there next week. What belongs on the RUN is what is true of that
541
+ run alone — a clamp that truncated, a check that did not pass, the exact revision this attempt
542
+ tested:
447
543
 
448
544
  ```sh
449
- mr-data note --run RUN_ID --heading "Using FAA ASPM hourly over the state feed" \
450
- --blocks-file BLOCKS.json --phase acquire --json <<'EOF'
451
- Hourly airport throughput, joined to hourly weather.
545
+ mr-data note --run RUN_ID --heading "Row ceiling truncated the sample" \
546
+ --phase acquire --json <<'EOF'
547
+ The clamp cut acquisition at 2,000 rows; coverage.truncated is true on both sources.
452
548
  EOF
453
549
  ```
454
550
 
455
- Do this on every run you start, the throwaway sample included: the record belongs to the run whose
456
- decisions it explains, and by the time a full run starts from a settled recipe there is no search
457
- left to write down. Anything settled later — a clamp that truncated, a check that failed, the
458
- revision stage 5 makes — is a further cell on the run it is about, written while that run is
459
- still going. [Narrating the run](#narrating-the-run) is the reference for what a cell may carry.
551
+ Write it as soon as the run exists, and before it finishes. `mr-data run` prints the run identifier
552
+ and returns; the run itself then reaches a terminal state on its own, often within seconds on a
553
+ sample. A run's narrative closes with the run, so a cell appended after that answers
554
+ `409 RUN_NARRATIVE_CLOSED` and is lost. The dataset's record has no such window — it never closes —
555
+ which is the other reason the search belongs there.
556
+ [Narrating the run](#narrating-the-run) is the reference for what either cell may carry.
460
557
 
461
558
  **The protocol's three clamps do not behave alike, and the executable subset is narrower.** In the
462
559
  protocol, on `--sample`, `max_rows` and `window` truncate: the run succeeds at the clamp boundary
@@ -482,7 +579,7 @@ no coverage window -- it is how an enabled table's catch-up and its scheduled re
482
579
  `backfill` is defined by the exact window it covers, which this worker cannot narrow a source
483
580
  request to, and is refused before acquisition.
484
581
 
485
- ### 4. Interrogate — ask the run what it actually delivered
582
+ ### 6. Interrogate — ask the run what it actually delivered
486
583
 
487
584
  Four reads, and none of them waits on anything:
488
585
 
@@ -525,7 +622,7 @@ required check that fails ends the run with `failure_code: CHECK_FAILED`.
525
622
  `mr-data diff RUN_A RUN_B` compares two runs — columns added, removed and retyped, row counts, the
526
623
  coverage window and the data fingerprint. `--columns-only` narrows what is compared to the schema.
527
624
 
528
- ### 5. Fix — revise the document and register it again
625
+ ### 7. Fix — revise the document and register it again
529
626
 
530
627
  Change the document and send it again. Same dataset, same table, new digest:
531
628
 
@@ -538,15 +635,15 @@ revisions, so there is no `_v2.._vN` renaming, no proposal left wedged on an id
538
635
  reclaim, and no cleanup after a failed run. Sample again, interrogate again, and keep going until
539
636
  the checks and the coverage say what you need them to say.
540
637
 
541
- ### 6. Present — only what survived inspection, with caveats
638
+ ### 8. Present — only what survived inspection, with caveats
542
639
 
543
640
  Report what you inspected, and nothing you did not. Nothing else checks this run: `verified` is not
544
641
  a word some other worker said about it, it is what you established by reading it. So the honest
545
- sentence names the reading:
642
+ sentence names the reading, and it says the word **sample** out loud:
546
643
 
547
- > Inspected 50,000 rows from the acquired source snapshot. All four declared checks passed.
548
- > Coverage was truncated at the row ceiling, and no run window was applied, so this is a sample
549
- > rather than evidence for a stated calendar interval.
644
+ > Inspected 2,000 rows from the acquired source snapshot — a sample. All four declared checks
645
+ > passed. Coverage was truncated at the row ceiling, and no run window was applied, so this is not
646
+ > evidence for a stated calendar interval.
550
647
 
551
648
  Three facts carry that sentence and all three are on the run: how many rows you actually looked at,
552
649
  what the declared checks reported, and whether `coverage.truncated` was true. A null coverage
@@ -554,6 +651,25 @@ window means the acquisition was unwindowed, not that it covered all time. Never
554
651
  row as a whole-population value, never call a run verified because it succeeded, and never report
555
652
  coverage you did not read off `coverage`.
556
653
 
654
+ **Offer the sample's own bytes.** The sample is a sealed table like any other and its Parquet is
655
+ downloadable — `mr-data download RUN --output DIR --json` — so somebody who wants to look at it
656
+ before agreeing to a full run can. Say so.
657
+
658
+ **Then stop, and ask whether to run the full build.** This is a pause, and it is the second one
659
+ this document allows alongside the promote decision. A full run over a real window costs real time
660
+ and real money, and it is a decision about the user's data rather than about the recipe, so it is
661
+ theirs and not yours. State what the sample established, what the full run would cover, and ask.
662
+ Only when they say so:
663
+
664
+ ```sh
665
+ mr-data run RECIPE_ID --full --json
666
+ ```
667
+
668
+ Then interrogate that run as stage 6 says, and present it with the sample's caveats removed and
669
+ its own read off `coverage`. Do not start a full run because the sample looked good, because the
670
+ checks passed, or because the user asked for the dataset in the first place — the request was for a
671
+ dataset, and the decision in front of them is whether THIS is the recipe to spend a full run on.
672
+
557
673
  ## Live run
558
674
 
559
675
  `mr-data run` answers with the run identifier and Studio's own run record. These are machine-facing
@@ -628,26 +744,43 @@ not depend on which command you happened to ask.
628
744
 
629
745
  ## Narrating the run
630
746
 
631
- The run's own record is where the source comparison and the decision lines belong, not only the
632
- reply. A cell is one outcome-led heading, a markdown body, and typed blocks the Dataset page lays
633
- out as rows a reader can compare.
747
+ There are two decision records and they are not interchangeable. A cell is the same document in
748
+ both: one outcome-led heading, a markdown body, and typed blocks the Dataset page lays out as rows
749
+ a reader can compare. What differs is which log it lands in and when that log closes.
634
750
 
635
- **Write it while the run is going, which is a narrower window than it sounds.** A run's narrative
636
- closes when the run reaches a terminal state, and an append after that answers
637
- `409 RUN_NARRATIVE_CLOSED` — a refusal no client check can soften, because only the backend knows
638
- the run has finished. A sample run reaches its terminal state in seconds, so "while the run is
639
- going" means immediately after `mr-data run` returns the identifier, not after `status` says the
640
- run succeeded. Stage 3 of the [Required protocol](#required-protocol) is where that lands in the
641
- loop, and it is why stages 1 and 2 draft their blocks into a file rather than calling this
642
- command.
751
+ **The DATASET's record is the primary one, and it never closes.**
752
+ `mr-data dataset note DATASET_ID` writes it. The sources compared and refused, the grain argued
753
+ over, the question a person answered — those are facts about the dataset, they are true a week
754
+ later, and a reader opening the page long after every run has scrolled away should still find them.
755
+ Stage 3 of the [Required protocol](#required-protocol) is where the first cell goes, before
756
+ anything is registered.
643
757
 
644
758
  ```sh
645
- mr-data note --run RUN_ID --heading "Using FAA ASPM hourly" \
646
- --blocks-file BLOCKS.json --phase acquire --json <<'EOF'
647
- Hourly airport throughput, joined to hourly weather.
759
+ mr-data dataset note DATASET_ID --heading "Sources and decisions" \
760
+ --blocks-file BLOCKS.json --json <<'EOF'
761
+ Two feeds carry hourly stage; one is licensed and cannot be used here.
648
762
  EOF
649
763
  ```
650
764
 
765
+ **A RUN's record is secondary, and it closes with the run.** `mr-data note --run RUN_ID` writes it,
766
+ and what belongs there is what is true of that run alone: a clamp that truncated, a check that did
767
+ not pass, the exact revision this attempt tested. A run's narrative closes when the run reaches a
768
+ terminal state, and an append after that answers `409 RUN_NARRATIVE_CLOSED` — a refusal no client
769
+ check can soften, because only the backend knows the run has finished. A sample run reaches its
770
+ terminal state in seconds, so "while the run is going" means immediately after `mr-data run`
771
+ returns the identifier, not after `status` says the run succeeded.
772
+
773
+ ```sh
774
+ mr-data note --run RUN_ID --heading "Row ceiling truncated the sample" \
775
+ --phase acquire --json <<'EOF'
776
+ The clamp cut acquisition at 2,000 rows.
777
+ EOF
778
+ ```
779
+
780
+ Writing the search into a run's record instead was the old shape, and the reason it changed is that
781
+ it put the most durable facts in the shortest-lived place: the record of why a dataset looks the
782
+ way it does died with a throwaway sample run, and had to be written again on every attempt.
783
+
651
784
  `BLOCKS.json` is a JSON array of at most 64 objects, of three kinds:
652
785
 
653
786
  | Kind | Required | Optional |
@@ -667,13 +800,16 @@ where you did not establish the fact; never guess one.
667
800
  where there was a rival worth naming, and `because`. A decision without its `because` is a
668
801
  changelog entry, and the run's own log is already that.
669
802
 
670
- A `clarification` records an exchange that already happened, and only the two pauses this document
671
- allows: the promote decision, and a spend confirmation over the threshold. `answered_at` is
672
- admitted only beside `answer` — a time with no answer records that the question was settled by
673
- nobody — and is a UTC timestamp ending in `Z`, as `2026-09-01T10:00:00Z`. It is never a way to
674
- ask. Everything under [Autonomous delivery](#autonomous-delivery) still holds — do not put a
675
- source, Reader, engine, format, workspace, retry tactic, cleaning operation or repair to the user,
676
- in a block or anywhere else.
803
+ **A `clarification` block with a `question` and no `answer` is a PENDING question**, and it is the
804
+ one shape here that is a way to ask: the Dataset page shows it, and the chat asks it in the same
805
+ words. Write one only at a genuine fork, as stage 3 defines one. The answer is a REVISION of that
806
+ cell — `--revise CELL_ID`, the same blocks again with `answer` and `answered_at` filled in — so the
807
+ page shows the question settled rather than a second cell nothing ties to the first. `answered_at`
808
+ is admitted only beside `answer`, because a time with no answer records that the question was
809
+ settled by nobody, and is a UTC timestamp ending in `Z`, as `2026-09-01T10:00:00Z`. Everything
810
+ under [Autonomous delivery](#autonomous-delivery) still holds — do not put a source, Reader,
811
+ engine, format, workspace, retry tactic, cleaning operation or repair to the user, in a block or
812
+ anywhere else.
677
813
 
678
814
  `--phase` binds the cell to one build stage — `acquire`, `parse`, `transform`, `check`, `persist` —
679
815
  so a reader can group a run's record by stage. `--checkpoint` places the cell beside the event it
@@ -683,9 +819,10 @@ itself changes with the conclusion, and `--revise CELL_ID` where the successor i
683
819
  named cell — the superseded one stays in the log and is flagged. A cell revises itself by reusing
684
820
  its own identifier, so `--revise` naming the cell you are writing is refused.
685
821
 
686
- `mr-data note --run RUN_ID --list --json` reads back what is written, superseded revisions
687
- included and flagged. It reads and writes nothing, so it refuses any flag that describes a cell —
688
- `--heading`, `--blocks-file`, `--phase` and the rest — rather than ignoring it.
822
+ `mr-data note --run RUN_ID --list --json` and `mr-data dataset note DATASET_ID --list --json`
823
+ read back what is written, superseded revisions included and flagged. Each reads and writes
824
+ nothing, so it refuses any flag that describes a cell — `--heading`, `--blocks-file`, `--phase` and
825
+ the rest — rather than ignoring it.
689
826
 
690
827
  The bounds are refused before the request rather than after it, in the words the API would have
691
828
  used: 64 blocks a cell, 200 characters a label, 255 a host, 1024 an explanation, 200 characters of
@@ -695,10 +832,10 @@ tab and newline and nothing else. Where `--blocks-file` is given it must hold at
695
832
  an empty array is refused rather than read as "no blocks". The markdown body is always required
696
833
  and is what a reader gets when a block kind is unknown to it.
697
834
 
698
- One bound is the backend's alone, because it needs the log: a run's whole narrative holds 512
699
- appended cells, revisions counted, and the 513th answers `429 NARRATIVE_BUDGET_EXCEEDED`. It is a
700
- ceiling on a decision record rather than on a commentary, and nothing that respects the paragraph
701
- below will come near it.
835
+ One bound is the backend's alone, because it needs the log: a narrative holds 512 appended cells,
836
+ revisions counted, and the 513th answers `429 NARRATIVE_BUDGET_EXCEEDED`. It is a ceiling on a
837
+ decision record rather than on a commentary, and nothing that respects the paragraph below will
838
+ come near it.
702
839
 
703
840
  Blocks are facts, not narration. A `source` block whose `grain` is `one row per hour per airport`
704
841
  is a row; `I evaluated four candidate feeds and settled on the FAA one` is the sentence it
@@ -872,23 +1009,29 @@ schedule, catch-up, or current bytes from the command name or from route accepta
872
1009
  Own the run until the requested outcome is delivered: a run that succeeded, its declared checks
873
1010
  read, its coverage inspected, and a publication request made when the user asked for it. Promotion
874
1011
  is complete only when Studio returns the resulting live state; catch-up and continuing freshness
875
- require separate durable evidence from the deployed component that owns them. The only allowed
876
- user pauses are the promote decision and a spend confirmation on a run over the threshold. Do
877
- not ask the user to choose sources, Readers, engines, formats, workspaces, retry tactics, cleaning
878
- operations, or validation repairs. Make those operational decisions from the question, observed
879
- evidence, registered capabilities, and deterministic receipts.
880
-
881
- One clarifying question is not a pause and does not weaken that ban. It is allowed for a fact the
882
- user holds and no source can supply: what an ambiguous word in their request means, how wide the
883
- population is, or how far back they need it. `Throughput: movements or passengers?` is such a fact.
884
- Which Reader parses the feed is not, and neither is anything else named above; those stay banned
885
- because the evidence settles them. Ask before probing, while nothing is registered, nothing is
886
- running and nothing has been spent: a question at that point costs a sentence, and the guess it
887
- replaces costs a whole build. Ask ONE question, carrying the answer you will assume if none comes
888
- back. One, not two: `mr-data clarify` records exactly one question per invocation and the block it
889
- composes has no field relating a question to another, so a second question is a second record with
890
- nothing tying it to the first. If two things are genuinely unsettled, the one that survives the
891
- evidence is the one to ask about.
1012
+ require separate durable evidence from the deployed component that owns them. The allowed user pauses
1013
+ are the promote decision, the decision to start a full run after the sample, and a spend
1014
+ confirmation on a run over the threshold. Do not ask the user to choose sources, Readers, engines,
1015
+ formats, workspaces, retry tactics, cleaning operations, or validation repairs. Make those
1016
+ operational decisions from the question, observed evidence, registered capabilities, and
1017
+ deterministic receipts.
1018
+
1019
+ **The decision point replaces the one-question rule.** There used to be a budget of exactly one
1020
+ clarifying question, and it was the wrong instrument: it made the agent hoard its one question
1021
+ against a fork that might arrive later, and it left the user with no view of the search at all
1022
+ until the page was finished. What stage 3 asks for instead is a STATEMENT — sources chosen, sources
1023
+ rejected or blocked with the concrete unblock step, the assumption taken about window and grain —
1024
+ posted to the dataset's record and to the chat, after which the build continues without waiting.
1025
+ A person who disagrees with it says so; a person who does not is not made to answer anything.
1026
+
1027
+ A question is still asked, and it is asked at a genuine FORK: two answers that produce two
1028
+ different tables, and no evidence that can settle it. `Throughput: movements or passengers?` is
1029
+ such a fork. Which Reader parses the feed is not, and neither is anything else named above; those
1030
+ stay banned because the evidence settles them. There is no budget of one — a build with two real
1031
+ forks asks about both — but a fork is rare, and a question that the evidence could have answered is
1032
+ still the failure this section is about. Ask before registering, while nothing is running and
1033
+ nothing has been spent, write it as a pending `clarification` block on the dataset, and carry the
1034
+ answer back as a revision of that cell.
892
1035
 
893
1036
  `mr-data clarify --question TEXT` says whether to ask at all. It exits non-zero when no person can
894
1037
  answer, which is what a scheduled or headless session reports, and when `--recipe RECIPE_ID` names
@@ -900,6 +1043,10 @@ block. Carry its wording into the recipe document the answer settles — the que
900
1043
  description, the column description — so the assumption the table rests on reads the same in the
901
1044
  document, in the Dataset, and in the report.
902
1045
 
1046
+ `clarify` treats the session as attended when `--attended` is passed, or when the environment
1047
+ carries an agent-host marker. Pass `--attended` explicitly whenever a person is in the chat: the
1048
+ marker is a fallback for a caller that did not say so, not a substitute for saying it.
1049
+
903
1050
  On a hosted install the delivered outcome is concrete: a run in `succeeded`, `mr-data checks` reporting
904
1051
  every declared check, the coverage read off the run rather than guessed, and the artifacts brought
905
1052
  here by `mr-data download` when the user asked for the bytes. Link to the canonical Dataset page and
@@ -77,7 +77,7 @@ SPECIFICATION cannot be parsed and ``"check"`` when an EVALUATION cannot proceed
77
77
  are members of ``docs/V4-WORKER-PROTOCOL.md``'s ``failed_stage`` vocabulary. The first was
78
78
  ``"transform"`` until the driver was corrected to parse before acquiring: a specification refusal
79
79
  happens before all five stages, so it reports at the first, and ``"transform"`` would send an
80
- operator looking for a build that never began (``run_execution_v4._DOCUMENT_STAGE`` states the same
80
+ operator looking for a build that never began (``run_execution_v4.DOCUMENT_STAGE`` states the same
81
81
  rule for the job document). Nothing about WHICH refusals are raised changed with it. A check that
82
82
  merely FAILS is not a refusal and raises nothing — it returns a ``CheckResult`` with
83
83
  ``passed=False``, and ``required_failure`` is the separate query the driver asks to learn
@@ -139,7 +139,7 @@ DECLARED_CHECK_FAILURE_CODES: tuple[str, ...] = (
139
139
  )
140
140
 
141
141
  #: The stage a SPECIFICATION refusal reports under. ``acquire``, the first, for the reason
142
- #: ``run_execution_v4._DOCUMENT_STAGE`` records about the job document: a refusal that happens
142
+ #: ``run_execution_v4.DOCUMENT_STAGE`` records about the job document: a refusal that happens
143
143
  #: before every one of the five stages reports at the first, because "nothing was fetched" is what
144
144
  #: a reader of the run record needs to know. This used to be ``transform``, which was true of WHERE
145
145
  #: the driver called the parser and never of what the parser does -- and the driver now calls it