provost 2.2.0__tar.gz → 2.3.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 (1267) hide show
  1. {provost-2.2.0 → provost-2.3.0}/CHANGELOG.md +402 -0
  2. {provost-2.2.0 → provost-2.3.0}/PKG-INFO +16 -1
  3. {provost-2.2.0 → provost-2.3.0}/README.md +12 -0
  4. provost-2.3.0/VERSION +1 -0
  5. provost-2.3.0/extract/model/bpe.py +159 -0
  6. {provost-2.2.0 → provost-2.3.0}/extract/model/layout_model.py +53 -3
  7. provost-2.3.0/extract/model/lm_encode.py +129 -0
  8. provost-2.3.0/extract/model/lm_numpy.py +188 -0
  9. provost-2.3.0/extract/model/lm_runtime.py +170 -0
  10. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/layout-model.sh +2 -2
  11. {provost-2.2.0 → provost-2.3.0}/man/provost.1 +23 -1
  12. {provost-2.2.0 → provost-2.3.0}/ml/README.md +12 -1
  13. {provost-2.2.0 → provost-2.3.0}/provost +513 -27
  14. {provost-2.2.0 → provost-2.3.0}/pyproject.toml +9 -0
  15. {provost-2.2.0 → provost-2.3.0}/src/provost_data/__init__.py +3 -0
  16. {provost-2.2.0 → provost-2.3.0}/tests/python/test_launcher.py +11 -0
  17. provost-2.2.0/VERSION +0 -1
  18. {provost-2.2.0 → provost-2.3.0}/.gitignore +0 -0
  19. {provost-2.2.0 → provost-2.3.0}/LICENSE +0 -0
  20. {provost-2.2.0 → provost-2.3.0}/LICENSES/GPL-3.0-or-later.txt +0 -0
  21. {provost-2.2.0 → provost-2.3.0}/REUSE.toml +0 -0
  22. {provost-2.2.0 → provost-2.3.0}/analyze/completions/provost-analyze.bash +0 -0
  23. {provost-2.2.0 → provost-2.3.0}/analyze/completions/provost-browse.bash +0 -0
  24. {provost-2.2.0 → provost-2.3.0}/analyze/docs/json-schema.md +0 -0
  25. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_categorical.sh +0 -0
  26. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_compare.sh +0 -0
  27. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_correlation.sh +0 -0
  28. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_csv.sh +0 -0
  29. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_format.sh +0 -0
  30. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_globals.sh +0 -0
  31. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_helpers.sh +0 -0
  32. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_numeric.sh +0 -0
  33. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_profile.sh +0 -0
  34. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_quality.sh +0 -0
  35. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_summary.sh +0 -0
  36. {provost-2.2.0 → provost-2.3.0}/analyze/lib/_threshold.sh +0 -0
  37. {provost-2.2.0 → provost-2.3.0}/analyze/lib/awk/CHANGELOG.md +0 -0
  38. {provost-2.2.0 → provost-2.3.0}/analyze/lib/awk/numeric_combined.awk +0 -0
  39. {provost-2.2.0 → provost-2.3.0}/analyze/profiles/.keep +0 -0
  40. {provost-2.2.0 → provost-2.3.0}/analyze/provost-analyze +0 -0
  41. {provost-2.2.0 → provost-2.3.0}/analyze/samples/anscombe.csv +0 -0
  42. {provost-2.2.0 → provost-2.3.0}/analyze/samples/bimodal.csv +0 -0
  43. {provost-2.2.0 → provost-2.3.0}/analyze/samples/biostats.csv +0 -0
  44. {provost-2.2.0 → provost-2.3.0}/analyze/samples/duplicates.csv +0 -0
  45. {provost-2.2.0 → provost-2.3.0}/analyze/samples/edge.csv +0 -0
  46. {provost-2.2.0 → provost-2.3.0}/analyze/samples/known.csv +0 -0
  47. {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_benford.csv +0 -0
  48. {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_bimodal_seeded.csv +0 -0
  49. {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_categorical.csv +0 -0
  50. {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_spearman.csv +0 -0
  51. {provost-2.2.0 → provost-2.3.0}/analyze/samples/large_vals.csv +0 -0
  52. {provost-2.2.0 → provost-2.3.0}/analyze/samples/missing.csv +0 -0
  53. {provost-2.2.0 → provost-2.3.0}/analyze/samples/numeric_edge.csv +0 -0
  54. {provost-2.2.0 → provost-2.3.0}/analyze/samples/outliers.csv +0 -0
  55. {provost-2.2.0 → provost-2.3.0}/analyze/samples/quoted.csv +0 -0
  56. {provost-2.2.0 → provost-2.3.0}/analyze/samples/trees.csv +0 -0
  57. {provost-2.2.0 → provost-2.3.0}/analyze/schemas/provost-analyze-output.json +0 -0
  58. {provost-2.2.0 → provost-2.3.0}/analyze/tests/CHANGELOG.md +0 -0
  59. {provost-2.2.0 → provost-2.3.0}/analyze/tests/_compute_known_truths.py +0 -0
  60. {provost-2.2.0 → provost-2.3.0}/analyze/tests/bench_large_dataset.sh +0 -0
  61. {provost-2.2.0 → provost-2.3.0}/analyze/tests/helpers.sh +0 -0
  62. {provost-2.2.0 → provost-2.3.0}/analyze/tests/run_tests.sh +0 -0
  63. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_benford_alpha.sh +0 -0
  64. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_color.sh +0 -0
  65. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_column_overrides.sh +0 -0
  66. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_compare.sh +0 -0
  67. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_completions.sh +0 -0
  68. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_correctness.sh +0 -0
  69. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_csv_parsing.sh +0 -0
  70. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_diverse_data.sh +0 -0
  71. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_empty_input.sh +0 -0
  72. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_filter_skip_correctness.sh +0 -0
  73. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_float_cmp.sh +0 -0
  74. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_html_format.sh +0 -0
  75. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_json_schema.sh +0 -0
  76. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_known_values_extended.sh +0 -0
  77. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_list_items.sh +0 -0
  78. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_mda.sh +0 -0
  79. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_modes.sh +0 -0
  80. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_module_contracts.sh +0 -0
  81. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_new_features.sh +0 -0
  82. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_numeric_exclusions.sh +0 -0
  83. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_performance.sh +0 -0
  84. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_progress.sh +0 -0
  85. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_sampling.sh +0 -0
  86. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_summary.sh +0 -0
  87. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_threshold.sh +0 -0
  88. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_timeseries.sh +0 -0
  89. {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_top_n.sh +0 -0
  90. {provost-2.2.0 → provost-2.3.0}/completions/provost.bash +0 -0
  91. {provost-2.2.0 → provost-2.3.0}/extract/README.md +0 -0
  92. {provost-2.2.0 → provost-2.3.0}/extract/hints.tsv +0 -0
  93. {provost-2.2.0 → provost-2.3.0}/extract/lib/_autotune.sh +0 -0
  94. {provost-2.2.0 → provost-2.3.0}/extract/lib/_discovery.sh +0 -0
  95. {provost-2.2.0 → provost-2.3.0}/extract/lib/_dispatch.sh +0 -0
  96. {provost-2.2.0 → provost-2.3.0}/extract/lib/_format.sh +0 -0
  97. {provost-2.2.0 → provost-2.3.0}/extract/lib/_globals.sh +0 -0
  98. {provost-2.2.0 → provost-2.3.0}/extract/lib/_helpers.sh +0 -0
  99. {provost-2.2.0 → provost-2.3.0}/extract/lib/_interactive.sh +0 -0
  100. {provost-2.2.0 → provost-2.3.0}/extract/lib/_log.sh +0 -0
  101. {provost-2.2.0 → provost-2.3.0}/extract/lib/_postprocess.sh +0 -0
  102. {provost-2.2.0 → provost-2.3.0}/extract/lib/_score.sh +0 -0
  103. {provost-2.2.0 → provost-2.3.0}/extract/lib/_techniques.sh +0 -0
  104. {provost-2.2.0 → provost-2.3.0}/extract/lib/_validate.sh +0 -0
  105. {provost-2.2.0 → provost-2.3.0}/extract/llm/GUIDE.md +0 -0
  106. {provost-2.2.0 → provost-2.3.0}/extract/llm/sandbox.py +0 -0
  107. {provost-2.2.0 → provost-2.3.0}/extract/llm/template.py +0 -0
  108. {provost-2.2.0 → provost-2.3.0}/extract/llm/templates/ip-addr.json +0 -0
  109. {provost-2.2.0 → provost-2.3.0}/extract/llm/templates/mcstatus.json +0 -0
  110. {provost-2.2.0 → provost-2.3.0}/extract/model/align.py +0 -0
  111. {provost-2.2.0 → provost-2.3.0}/extract/model/arbiter.json +0 -0
  112. {provost-2.2.0 → provost-2.3.0}/extract/model/arbitrate.py +0 -0
  113. {provost-2.2.0 → provost-2.3.0}/extract/model/decode.py +0 -0
  114. {provost-2.2.0 → provost-2.3.0}/extract/model/features.py +0 -0
  115. {provost-2.2.0 → provost-2.3.0}/extract/model/gridnet.py +0 -0
  116. {provost-2.2.0 → provost-2.3.0}/extract/model/layout-model.json.gz +0 -0
  117. {provost-2.2.0 → provost-2.3.0}/extract/model/layout.py +0 -0
  118. {provost-2.2.0 → provost-2.3.0}/extract/provost-extract +0 -0
  119. {provost-2.2.0 → provost-2.3.0}/extract/samples/7z/basic.txt +0 -0
  120. {provost-2.2.0 → provost-2.3.0}/extract/samples/R-version/basic.txt +0 -0
  121. {provost-2.2.0 → provost-2.3.0}/extract/samples/alias-list/basic.txt +0 -0
  122. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/abbrev-label.txt +0 -0
  123. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/asa-report.txt +0 -0
  124. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/banner-lines.txt +0 -0
  125. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/basic.txt +0 -0
  126. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/caption-abbrev.txt +0 -0
  127. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/command-list.txt +0 -0
  128. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/comment-header.txt +0 -0
  129. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/data-gutters.txt +0 -0
  130. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/df.txt +0 -0
  131. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/feature-grid.txt +0 -0
  132. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/footer-empty-cells.txt +0 -0
  133. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/indented-banner.txt +0 -0
  134. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/mount.txt +0 -0
  135. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/offset-cells.txt +0 -0
  136. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/one-row-units.txt +0 -0
  137. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/option-states.txt +0 -0
  138. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/page-headers.txt +0 -0
  139. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/space-in-cell.txt +0 -0
  140. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/sparse-matrix.txt +0 -0
  141. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/tab-banner.txt +0 -0
  142. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/title-indented.txt +0 -0
  143. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/utf8-runes.txt +0 -0
  144. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/utf8-widths.txt +0 -0
  145. {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/w3c-fields.txt +0 -0
  146. {provost-2.2.0 → provost-2.3.0}/extract/samples/ansible-inventory-list/basic.txt +0 -0
  147. {provost-2.2.0 → provost-2.3.0}/extract/samples/ansible-version/basic.txt +0 -0
  148. {provost-2.2.0 → provost-2.3.0}/extract/samples/arping/basic.txt +0 -0
  149. {provost-2.2.0 → provost-2.3.0}/extract/samples/arrow-info-records/basic.txt +0 -0
  150. {provost-2.2.0 → provost-2.3.0}/extract/samples/arrow-map/basic.txt +0 -0
  151. {provost-2.2.0 → provost-2.3.0}/extract/samples/asciigraph/basic.txt +0 -0
  152. {provost-2.2.0 → provost-2.3.0}/extract/samples/aureport/basic.txt +0 -0
  153. {provost-2.2.0 → provost-2.3.0}/extract/samples/banner-groups/basic.txt +0 -0
  154. {provost-2.2.0 → provost-2.3.0}/extract/samples/banner-sections-kv/basic.txt +0 -0
  155. {provost-2.2.0 → provost-2.3.0}/extract/samples/bcc-funccount/basic.txt +0 -0
  156. {provost-2.2.0 → provost-2.3.0}/extract/samples/beegfs/basic.txt +0 -0
  157. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-agree/basic.txt +0 -0
  158. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-logtriage/basic.txt +0 -0
  159. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-netmesh/basic.txt +0 -0
  160. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-reachable/basic.txt +0 -0
  161. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/basic.txt +0 -0
  162. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/during.txt +0 -0
  163. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/healthy-box.txt +0 -0
  164. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/resolve.txt +0 -0
  165. {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/skew.txt +0 -0
  166. {provost-2.2.0 → provost-2.3.0}/extract/samples/biosdecode/basic.txt +0 -0
  167. {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/basic.txt +0 -0
  168. {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/interfaces.txt +0 -0
  169. {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/lspci.txt +0 -0
  170. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-dag/basic.txt +0 -0
  171. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/basic.txt +0 -0
  172. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/group-header.txt +0 -0
  173. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/group-subcols.txt +0 -0
  174. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/kv-title.txt +0 -0
  175. {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/named-border.txt +0 -0
  176. {provost-2.2.0 → provost-2.3.0}/extract/samples/boxed-table/basic.txt +0 -0
  177. {provost-2.2.0 → provost-2.3.0}/extract/samples/bpftrace/basic.txt +0 -0
  178. {provost-2.2.0 → provost-2.3.0}/extract/samples/bpftrace-map/basic.txt +0 -0
  179. {provost-2.2.0 → provost-2.3.0}/extract/samples/brace-groups/basic.txt +0 -0
  180. {provost-2.2.0 → provost-2.3.0}/extract/samples/bracket-log/dmesg.txt +0 -0
  181. {provost-2.2.0 → provost-2.3.0}/extract/samples/btrfs-filesystem-show/basic.txt +0 -0
  182. {provost-2.2.0 → provost-2.3.0}/extract/samples/bundle-outdated/basic.txt +0 -0
  183. {provost-2.2.0 → provost-2.3.0}/extract/samples/cargo-search/basic.txt +0 -0
  184. {provost-2.2.0 → provost-2.3.0}/extract/samples/cassandra-nodetool-tpstats/basic.txt +0 -0
  185. {provost-2.2.0 → provost-2.3.0}/extract/samples/checking-groups/basic.txt +0 -0
  186. {provost-2.2.0 → provost-2.3.0}/extract/samples/cipher-suites/basic.txt +0 -0
  187. {provost-2.2.0 → provost-2.3.0}/extract/samples/clickhouse-processlist/basic.txt +0 -0
  188. {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-fields/basic.txt +0 -0
  189. {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-fields/nmcli-terse.txt +0 -0
  190. {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-header-members/basic.txt +0 -0
  191. {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-kv-continuation/basic.txt +0 -0
  192. {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-pairs/basic.txt +0 -0
  193. {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/basic.txt +0 -0
  194. {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/network.txt +0 -0
  195. {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/opencl-platforms.txt +0 -0
  196. {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/rpm-qi.txt +0 -0
  197. {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/system-info.txt +0 -0
  198. {provost-2.2.0 → provost-2.3.0}/extract/samples/columnar-specs/basic.txt +0 -0
  199. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/csv-multiline-cells.csv +0 -0
  200. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/peer-table-relabel.txt +0 -0
  201. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/pkg-table-overflow.txt +0 -0
  202. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/ps-get-package.txt +0 -0
  203. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/scoop-list.txt +0 -0
  204. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/smbclient-ls.txt +0 -0
  205. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/tab-kv-blocks.txt +0 -0
  206. {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/virsh-snapshot-list.txt +0 -0
  207. {provost-2.2.0 → provost-2.3.0}/extract/samples/count-percent-label/basic.txt +0 -0
  208. {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/basic.csv +0 -0
  209. {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/bom.csv +0 -0
  210. {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/employees.csv +0 -0
  211. {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/multiline.csv +0 -0
  212. {provost-2.2.0 → provost-2.3.0}/extract/samples/csvlook/basic.txt +0 -0
  213. {provost-2.2.0 → provost-2.3.0}/extract/samples/dash-labeled-stats/basic.txt +0 -0
  214. {provost-2.2.0 → provost-2.3.0}/extract/samples/dashed-sections/basic.txt +0 -0
  215. {provost-2.2.0 → provost-2.3.0}/extract/samples/dbmate-status/basic.txt +0 -0
  216. {provost-2.2.0 → provost-2.3.0}/extract/samples/dc-results/basic.txt +0 -0
  217. {provost-2.2.0 → provost-2.3.0}/extract/samples/decode-dimms/basic.txt +0 -0
  218. {provost-2.2.0 → provost-2.3.0}/extract/samples/decorated-groups/basic.txt +0 -0
  219. {provost-2.2.0 → provost-2.3.0}/extract/samples/dep-tree/basic.txt +0 -0
  220. {provost-2.2.0 → provost-2.3.0}/extract/samples/describe-report/basic.txt +0 -0
  221. {provost-2.2.0 → provost-2.3.0}/extract/samples/diffstat/basic.txt +0 -0
  222. {provost-2.2.0 → provost-2.3.0}/extract/samples/dns-records/basic.txt +0 -0
  223. {provost-2.2.0 → provost-2.3.0}/extract/samples/dns-records/zonefile.txt +0 -0
  224. {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/all.txt +0 -0
  225. {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/basic.txt +0 -0
  226. {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/wide.txt +0 -0
  227. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-analyze/basic.txt +0 -0
  228. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-info/basic.txt +0 -0
  229. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-optimize/basic.txt +0 -0
  230. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-power/basic.txt +0 -0
  231. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-status/basic.txt +0 -0
  232. {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-status/partial.txt +0 -0
  233. {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-kv/basic.txt +0 -0
  234. {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-kv/leader-before-colon.txt +0 -0
  235. {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-row/basic.txt +0 -0
  236. {provost-2.2.0 → provost-2.3.0}/extract/samples/dotnet-list-package/basic.txt +0 -0
  237. {provost-2.2.0 → provost-2.3.0}/extract/samples/dotted-kv-tree/basic.txt +0 -0
  238. {provost-2.2.0 → provost-2.3.0}/extract/samples/double-colon-fields/basic.txt +0 -0
  239. {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/binary.bin +0 -0
  240. {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/dedup-overlap.txt +0 -0
  241. {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/empty.txt +0 -0
  242. {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/headers-only.txt +0 -0
  243. {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/long-lines.txt +0 -0
  244. {provost-2.2.0 → provost-2.3.0}/extract/samples/elixir-version/basic.txt +0 -0
  245. {provost-2.2.0 → provost-2.3.0}/extract/samples/embedded-table/basic.txt +0 -0
  246. {provost-2.2.0 → provost-2.3.0}/extract/samples/embedded-table/group-row.txt +0 -0
  247. {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/basic.txt +0 -0
  248. {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/config.txt +0 -0
  249. {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/properties.txt +0 -0
  250. {provost-2.2.0 → provost-2.3.0}/extract/samples/fail2ban-status/sample1.txt +0 -0
  251. {provost-2.2.0 → provost-2.3.0}/extract/samples/fdisk/basic.txt +0 -0
  252. {provost-2.2.0 → provost-2.3.0}/extract/samples/first-colon-kv/basic.txt +0 -0
  253. {provost-2.2.0 → provost-2.3.0}/extract/samples/first-word-kv/basic.txt +0 -0
  254. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/accounting.txt +0 -0
  255. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/basic.txt +0 -0
  256. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/dates-empties.txt +0 -0
  257. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/equals-rule.txt +0 -0
  258. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/footer-prompt.txt +0 -0
  259. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/report.txt +0 -0
  260. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/right-aligned.txt +0 -0
  261. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/sql-footer.txt +0 -0
  262. {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/wrapped-header.txt +0 -0
  263. {provost-2.2.0 → provost-2.3.0}/extract/samples/flatpak-remotes/basic.txt +0 -0
  264. {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/basic.txt +0 -0
  265. {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/mx_doctor.txt +0 -0
  266. {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/mx_status.txt +0 -0
  267. {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/netmesh_status.txt +0 -0
  268. {provost-2.2.0 → provost-2.3.0}/extract/samples/fossil-status/basic.txt +0 -0
  269. {provost-2.2.0 → provost-2.3.0}/extract/samples/fossil-timeline/basic.txt +0 -0
  270. {provost-2.2.0 → provost-2.3.0}/extract/samples/free/basic.txt +0 -0
  271. {provost-2.2.0 → provost-2.3.0}/extract/samples/free/megabytes.txt +0 -0
  272. {provost-2.2.0 → provost-2.3.0}/extract/samples/free/no-swap.txt +0 -0
  273. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-annex-list/basic.txt +0 -0
  274. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-bisect-log/basic.txt +0 -0
  275. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-branch-vv/basic.txt +0 -0
  276. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/basic.txt +0 -0
  277. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/merge.txt +0 -0
  278. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/oneline.txt +0 -0
  279. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log-graph/basic.txt +0 -0
  280. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log-stat/basic.txt +0 -0
  281. {provost-2.2.0 → provost-2.3.0}/extract/samples/git-worktree-list-porcelain/basic.txt +0 -0
  282. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/basic.txt +0 -0
  283. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/doe.txt +0 -0
  284. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/iperf.txt +0 -0
  285. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/mx.txt +0 -0
  286. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/sed.txt +0 -0
  287. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/vaultctl.txt +0 -0
  288. {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/whyslow.txt +0 -0
  289. {provost-2.2.0 → provost-2.3.0}/extract/samples/go-list/basic.txt +0 -0
  290. {provost-2.2.0 → provost-2.3.0}/extract/samples/go-mod-why/basic.txt +0 -0
  291. {provost-2.2.0 → provost-2.3.0}/extract/samples/go-struct/basic.txt +0 -0
  292. {provost-2.2.0 → provost-2.3.0}/extract/samples/go-test/basic.txt +0 -0
  293. {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-card-status/basic.txt +0 -0
  294. {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-list-keys/basic.txt +0 -0
  295. {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-list-packets/basic.txt +0 -0
  296. {provost-2.2.0 → provost-2.3.0}/extract/samples/grafana-alerts/sample1.txt +0 -0
  297. {provost-2.2.0 → provost-2.3.0}/extract/samples/group-children/basic.txt +0 -0
  298. {provost-2.2.0 → provost-2.3.0}/extract/samples/group-children/long.txt +0 -0
  299. {provost-2.2.0 → provost-2.3.0}/extract/samples/grouped-list/basic.txt +0 -0
  300. {provost-2.2.0 → provost-2.3.0}/extract/samples/grouped-rows/basic.txt +0 -0
  301. {provost-2.2.0 → provost-2.3.0}/extract/samples/haproxy-vv/basic.txt +0 -0
  302. {provost-2.2.0 → provost-2.3.0}/extract/samples/har/basic.har +0 -0
  303. {provost-2.2.0 → provost-2.3.0}/extract/samples/headline-kv-blocks/basic.txt +0 -0
  304. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/basic.txt +0 -0
  305. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/ls-help.txt +0 -0
  306. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/npm-run.txt +0 -0
  307. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/rake-T.txt +0 -0
  308. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/systemctl-help.txt +0 -0
  309. {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/wget-help.txt +0 -0
  310. {provost-2.2.0 → provost-2.3.0}/extract/samples/histogram-buckets/basic.txt +0 -0
  311. {provost-2.2.0 → provost-2.3.0}/extract/samples/ifstat/basic.txt +0 -0
  312. {provost-2.2.0 → provost-2.3.0}/extract/samples/iftop/basic.txt +0 -0
  313. {provost-2.2.0 → provost-2.3.0}/extract/samples/indent-tree/basic.txt +0 -0
  314. {provost-2.2.0 → provost-2.3.0}/extract/samples/indent-tree/comm-columns.txt +0 -0
  315. {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-colon-groups/basic.txt +0 -0
  316. {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/basic.txt +0 -0
  317. {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/device-tree.txt +0 -0
  318. {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/lsusb.txt +0 -0
  319. {provost-2.2.0 → provost-2.3.0}/extract/samples/ini-sections/basic.ini +0 -0
  320. {provost-2.2.0 → provost-2.3.0}/extract/samples/inline-kv/id.txt +0 -0
  321. {provost-2.2.0 → provost-2.3.0}/extract/samples/inline-kv-groups/basic.txt +0 -0
  322. {provost-2.2.0 → provost-2.3.0}/extract/samples/iostat-x/basic.txt +0 -0
  323. {provost-2.2.0 → provost-2.3.0}/extract/samples/iotop/basic.txt +0 -0
  324. {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-maddr/basic.txt +0 -0
  325. {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-neigh-record/basic.txt +0 -0
  326. {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-xfrm-state/basic.txt +0 -0
  327. {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf-pivot/basic.txt +0 -0
  328. {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf-summary/basic.txt +0 -0
  329. {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf3-intervals/basic.txt +0 -0
  330. {provost-2.2.0 → provost-2.3.0}/extract/samples/iptables-nat/basic.txt +0 -0
  331. {provost-2.2.0 → provost-2.3.0}/extract/samples/iptables-nvL/basic.txt +0 -0
  332. {provost-2.2.0 → provost-2.3.0}/extract/samples/iwlist-scan/basic.txt +0 -0
  333. {provost-2.2.0 → provost-2.3.0}/extract/samples/jj-log/basic.txt +0 -0
  334. {provost-2.2.0 → provost-2.3.0}/extract/samples/jmap-histo/basic.txt +0 -0
  335. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/array.json +0 -0
  336. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/basic.json +0 -0
  337. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/benchmark.json +0 -0
  338. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/nested.json +0 -0
  339. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/node-inspect.txt +0 -0
  340. {provost-2.2.0 → provost-2.3.0}/extract/samples/json/node-interfaces.txt +0 -0
  341. {provost-2.2.0 → provost-2.3.0}/extract/samples/json-array/basic.txt +0 -0
  342. {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/basic.jsonl +0 -0
  343. {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/events.jsonl +0 -0
  344. {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/logs.jsonl +0 -0
  345. {provost-2.2.0 → provost-2.3.0}/extract/samples/key-value/basic.txt +0 -0
  346. {provost-2.2.0 → provost-2.3.0}/extract/samples/key-value/docker-info-lists.txt +0 -0
  347. {provost-2.2.0 → provost-2.3.0}/extract/samples/keytool-list/basic.txt +0 -0
  348. {provost-2.2.0 → provost-2.3.0}/extract/samples/kubectl-get-all/basic.txt +0 -0
  349. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-pairs/basic.txt +0 -0
  350. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/basic.txt +0 -0
  351. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/brew-config.txt +0 -0
  352. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/feature-grid.txt +0 -0
  353. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/mise-doctor.txt +0 -0
  354. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/mutt-v.txt +0 -0
  355. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/xdpyinfo.txt +0 -0
  356. {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-under-group/basic.txt +0 -0
  357. {provost-2.2.0 → provost-2.3.0}/extract/samples/labeled-inline-kv/basic.txt +0 -0
  358. {provost-2.2.0 → provost-2.3.0}/extract/samples/labeled-records/basic.txt +0 -0
  359. {provost-2.2.0 → provost-2.3.0}/extract/samples/lastb/basic.txt +0 -0
  360. {provost-2.2.0 → provost-2.3.0}/extract/samples/layout-model/basic.txt +0 -0
  361. {provost-2.2.0 → provost-2.3.0}/extract/samples/ledger-balance/basic.txt +0 -0
  362. {provost-2.2.0 → provost-2.3.0}/extract/samples/ledger-balance/multicurrency.txt +0 -0
  363. {provost-2.2.0 → provost-2.3.0}/extract/samples/line-pairs/basic.txt +0 -0
  364. {provost-2.2.0 → provost-2.3.0}/extract/samples/line-records/basic.txt +0 -0
  365. {provost-2.2.0 → provost-2.3.0}/extract/samples/liquibase-status/basic.txt +0 -0
  366. {provost-2.2.0 → provost-2.3.0}/extract/samples/llm-template/basic.txt +0 -0
  367. {provost-2.2.0 → provost-2.3.0}/extract/samples/llm-template/nested.txt +0 -0
  368. {provost-2.2.0 → provost-2.3.0}/extract/samples/loginctl-list-seats/basic.txt +0 -0
  369. {provost-2.2.0 → provost-2.3.0}/extract/samples/lscpu-parse/basic.txt +0 -0
  370. {provost-2.2.0 → provost-2.3.0}/extract/samples/lspci-line/basic.txt +0 -0
  371. {provost-2.2.0 → provost-2.3.0}/extract/samples/lspci-tv/basic.txt +0 -0
  372. {provost-2.2.0 → provost-2.3.0}/extract/samples/lsusb-v/basic.txt +0 -0
  373. {provost-2.2.0 → provost-2.3.0}/extract/samples/mariadb-innodb-status/basic.txt +0 -0
  374. {provost-2.2.0 → provost-2.3.0}/extract/samples/masscan/basic.txt +0 -0
  375. {provost-2.2.0 → provost-2.3.0}/extract/samples/middot-split/basic.txt +0 -0
  376. {provost-2.2.0 → provost-2.3.0}/extract/samples/mix-deps/basic.txt +0 -0
  377. {provost-2.2.0 → provost-2.3.0}/extract/samples/mount/basic.txt +0 -0
  378. {provost-2.2.0 → provost-2.3.0}/extract/samples/mtr-report/asn.txt +0 -0
  379. {provost-2.2.0 → provost-2.3.0}/extract/samples/mtr-report/basic.txt +0 -0
  380. {provost-2.2.0 → provost-2.3.0}/extract/samples/multi-bracket-log/basic.txt +0 -0
  381. {provost-2.2.0 → provost-2.3.0}/extract/samples/multipath-ll/basic.txt +0 -0
  382. {provost-2.2.0 → provost-2.3.0}/extract/samples/mx-check/basic.txt +0 -0
  383. {provost-2.2.0 → provost-2.3.0}/extract/samples/mx-summarize/basic.txt +0 -0
  384. {provost-2.2.0 → provost-2.3.0}/extract/samples/name-version-suffix/basic.txt +0 -0
  385. {provost-2.2.0 → provost-2.3.0}/extract/samples/nested-colon-kv/basic.txt +0 -0
  386. {provost-2.2.0 → provost-2.3.0}/extract/samples/netstat-s/basic.txt +0 -0
  387. {provost-2.2.0 → provost-2.3.0}/extract/samples/nft-list-ruleset/basic.txt +0 -0
  388. {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/basic.txt +0 -0
  389. {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/network-scan.txt +0 -0
  390. {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/service-detect.txt +0 -0
  391. {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap-sn/basic.txt +0 -0
  392. {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-compactionstats/basic.txt +0 -0
  393. {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-ring/basic.txt +0 -0
  394. {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-status/basic.txt +0 -0
  395. {provost-2.2.0 → provost-2.3.0}/extract/samples/nslookup_mx/basic.txt +0 -0
  396. {provost-2.2.0 → provost-2.3.0}/extract/samples/nstat/basic.txt +0 -0
  397. {provost-2.2.0 → provost-2.3.0}/extract/samples/numactl-show/basic.txt +0 -0
  398. {provost-2.2.0 → provost-2.3.0}/extract/samples/numastat/basic.txt +0 -0
  399. {provost-2.2.0 → provost-2.3.0}/extract/samples/numeric-lead-records/basic.txt +0 -0
  400. {provost-2.2.0 → provost-2.3.0}/extract/samples/openmetrics/basic.txt +0 -0
  401. {provost-2.2.0 → provost-2.3.0}/extract/samples/openssl-asn1parse/basic.txt +0 -0
  402. {provost-2.2.0 → provost-2.3.0}/extract/samples/paren-tail-kv/basic.txt +0 -0
  403. {provost-2.2.0 → provost-2.3.0}/extract/samples/parted-print/basic.txt +0 -0
  404. {provost-2.2.0 → provost-2.3.0}/extract/samples/path-line-content/basic.txt +0 -0
  405. {provost-2.2.0 → provost-2.3.0}/extract/samples/pcp-pmstat/basic.txt +0 -0
  406. {provost-2.2.0 → provost-2.3.0}/extract/samples/perf-counters/basic.txt +0 -0
  407. {provost-2.2.0 → provost-2.3.0}/extract/samples/perf-trace/basic.txt +0 -0
  408. {provost-2.2.0 → provost-2.3.0}/extract/samples/php-modules/basic.txt +0 -0
  409. {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-r/basic.txt +0 -0
  410. {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-u/basic.txt +0 -0
  411. {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-w/basic.txt +0 -0
  412. {provost-2.2.0 → provost-2.3.0}/extract/samples/ping/basic.txt +0 -0
  413. {provost-2.2.0 → provost-2.3.0}/extract/samples/ping/quiet.txt +0 -0
  414. {provost-2.2.0 → provost-2.3.0}/extract/samples/ping-reply/basic.txt +0 -0
  415. {provost-2.2.0 → provost-2.3.0}/extract/samples/ping-report/ping.txt +0 -0
  416. {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-cells/basic.txt +0 -0
  417. {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/basic.txt +0 -0
  418. {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/dash-rules.txt +0 -0
  419. {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/footer.txt +0 -0
  420. {provost-2.2.0 → provost-2.3.0}/extract/samples/pipx-list/basic.txt +0 -0
  421. {provost-2.2.0 → provost-2.3.0}/extract/samples/pivot-stats/basic.txt +0 -0
  422. {provost-2.2.0 → provost-2.3.0}/extract/samples/pkg-config/basic.txt +0 -0
  423. {provost-2.2.0 → provost-2.3.0}/extract/samples/pkg-repo-columns/basic.txt +0 -0
  424. {provost-2.2.0 → provost-2.3.0}/extract/samples/plan-actions/basic.txt +0 -0
  425. {provost-2.2.0 → provost-2.3.0}/extract/samples/pmap/basic.txt +0 -0
  426. {provost-2.2.0 → provost-2.3.0}/extract/samples/pnpm-why/basic.txt +0 -0
  427. {provost-2.2.0 → provost-2.3.0}/extract/samples/powertop/basic.txt +0 -0
  428. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/basic.txt +0 -0
  429. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/dotnet.txt +0 -0
  430. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/journal-short-iso.txt +0 -0
  431. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/logback.txt +0 -0
  432. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/markers.txt +0 -0
  433. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/nginx-error.txt +0 -0
  434. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/pylogging-basic.txt +0 -0
  435. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/rustc.txt +0 -0
  436. {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/spring.txt +0 -0
  437. {provost-2.2.0 → provost-2.3.0}/extract/samples/probe-verdict/basic.txt +0 -0
  438. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-devices/basic.txt +0 -0
  439. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-filesystems/basic.txt +0 -0
  440. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-dev/basic.txt +0 -0
  441. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-snmp/basic.txt +0 -0
  442. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-tcp/basic.txt +0 -0
  443. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-pagetypeinfo/basic.txt +0 -0
  444. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-schedstat/basic.txt +0 -0
  445. {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-slabinfo/basic.txt +0 -0
  446. {provost-2.2.0 → provost-2.3.0}/extract/samples/process-progress-rows/basic.txt +0 -0
  447. {provost-2.2.0 → provost-2.3.0}/extract/samples/progress-ledger/basic.txt +0 -0
  448. {provost-2.2.0 → provost-2.3.0}/extract/samples/prometheus/basic.txt +0 -0
  449. {provost-2.2.0 → provost-2.3.0}/extract/samples/prometheus-query/sample1.txt +0 -0
  450. {provost-2.2.0 → provost-2.3.0}/extract/samples/protobuf-text/basic.txt +0 -0
  451. {provost-2.2.0 → provost-2.3.0}/extract/samples/psql-expanded/basic.txt +0 -0
  452. {provost-2.2.0 → provost-2.3.0}/extract/samples/psql-table/basic.txt +0 -0
  453. {provost-2.2.0 → provost-2.3.0}/extract/samples/pv-records/basic.txt +0 -0
  454. {provost-2.2.0 → provost-2.3.0}/extract/samples/quoted-fields/basic.txt +0 -0
  455. {provost-2.2.0 → provost-2.3.0}/extract/samples/rc-status/basic.txt +0 -0
  456. {provost-2.2.0 → provost-2.3.0}/extract/samples/readelf-sections/basic.txt +0 -0
  457. {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/basic.txt +0 -0
  458. {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/ifconfig.txt +0 -0
  459. {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/ipaddr.txt +0 -0
  460. {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-lead-records/basic.txt +0 -0
  461. {provost-2.2.0 → provost-2.3.0}/extract/samples/resolvectl-query/basic.txt +0 -0
  462. {provost-2.2.0 → provost-2.3.0}/extract/samples/restic/basic.txt +0 -0
  463. {provost-2.2.0 → provost-2.3.0}/extract/samples/result-blocks/basic.txt +0 -0
  464. {provost-2.2.0 → provost-2.3.0}/extract/samples/rfkill-list/basic.txt +0 -0
  465. {provost-2.2.0 → provost-2.3.0}/extract/samples/rocm-smi-concise/basic.txt +0 -0
  466. {provost-2.2.0 → provost-2.3.0}/extract/samples/sbt-dependencytree/basic.txt +0 -0
  467. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-kv/basic.txt +0 -0
  468. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-name-value/basic.txt +0 -0
  469. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/arp-a.txt +0 -0
  470. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/docker-system-df.txt +0 -0
  471. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/ipcs.txt +0 -0
  472. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/iptables-chains.txt +0 -0
  473. {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/netstat-rn.txt +0 -0
  474. {provost-2.2.0 → provost-2.3.0}/extract/samples/sectioned-fields/basic.txt +0 -0
  475. {provost-2.2.0 → provost-2.3.0}/extract/samples/semanage-boolean/basic.txt +0 -0
  476. {provost-2.2.0 → provost-2.3.0}/extract/samples/semicolon-values/basic.txt +0 -0
  477. {provost-2.2.0 → provost-2.3.0}/extract/samples/smartctl-selftest/basic.txt +0 -0
  478. {provost-2.2.0 → provost-2.3.0}/extract/samples/snmp-output/basic.txt +0 -0
  479. {provost-2.2.0 → provost-2.3.0}/extract/samples/ssh-keyscan/basic.txt +0 -0
  480. {provost-2.2.0 → provost-2.3.0}/extract/samples/sshd-t/basic.txt +0 -0
  481. {provost-2.2.0 → provost-2.3.0}/extract/samples/sslscan/basic.txt +0 -0
  482. {provost-2.2.0 → provost-2.3.0}/extract/samples/stat-file/basic.txt +0 -0
  483. {provost-2.2.0 → provost-2.3.0}/extract/samples/subject-field-value/basic.txt +0 -0
  484. {provost-2.2.0 → provost-2.3.0}/extract/samples/super-header-table/basic.txt +0 -0
  485. {provost-2.2.0 → provost-2.3.0}/extract/samples/swift-version/basic.txt +0 -0
  486. {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/auth.txt +0 -0
  487. {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/basic.txt +0 -0
  488. {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/daemon.txt +0 -0
  489. {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/traceback.txt +0 -0
  490. {provost-2.2.0 → provost-2.3.0}/extract/samples/sysstat/basic.txt +0 -0
  491. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemctl-status/sample1.txt +0 -0
  492. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-critical-chain/basic.txt +0 -0
  493. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-security/basic.txt +0 -0
  494. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-time/basic.txt +0 -0
  495. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-cgls/basic.txt +0 -0
  496. {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-tmpfiles-cat-config/basic.txt +0 -0
  497. {provost-2.2.0 → provost-2.3.0}/extract/samples/tar-listing/basic.txt +0 -0
  498. {provost-2.2.0 → provost-2.3.0}/extract/samples/tcpdump-summary/basic.txt +0 -0
  499. {provost-2.2.0 → provost-2.3.0}/extract/samples/terraform-plan-actions/basic.txt +0 -0
  500. {provost-2.2.0 → provost-2.3.0}/extract/samples/text-lines/basic.txt +0 -0
  501. {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/basic.toml +0 -0
  502. {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/cargo.toml +0 -0
  503. {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/pyproject.toml +0 -0
  504. {provost-2.2.0 → provost-2.3.0}/extract/samples/top-batch/basic.txt +0 -0
  505. {provost-2.2.0 → provost-2.3.0}/extract/samples/trailing-table/basic.txt +0 -0
  506. {provost-2.2.0 → provost-2.3.0}/extract/samples/tree-view/basic.txt +0 -0
  507. {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/basic.tsv +0 -0
  508. {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/benchmark.tsv +0 -0
  509. {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/data.tsv +0 -0
  510. {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/empty-cells.tsv +0 -0
  511. {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/headerless-repeats.tsv +0 -0
  512. {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/basic.txt +0 -0
  513. {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/comments-gaps.txt +0 -0
  514. {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/header-anchored.txt +0 -0
  515. {provost-2.2.0 → provost-2.3.0}/extract/samples/two-space-kv/basic.txt +0 -0
  516. {provost-2.2.0 → provost-2.3.0}/extract/samples/ulimit/basic.txt +0 -0
  517. {provost-2.2.0 → provost-2.3.0}/extract/samples/uname/basic.txt +0 -0
  518. {provost-2.2.0 → provost-2.3.0}/extract/samples/unspaced-colon-kv/basic.txt +0 -0
  519. {provost-2.2.0 → provost-2.3.0}/extract/samples/unzip/basic.txt +0 -0
  520. {provost-2.2.0 → provost-2.3.0}/extract/samples/user-groups/basic.txt +0 -0
  521. {provost-2.2.0 → provost-2.3.0}/extract/samples/vagrant-global-status/basic.txt +0 -0
  522. {provost-2.2.0 → provost-2.3.0}/extract/samples/vault-status/basic.txt +0 -0
  523. {provost-2.2.0 → provost-2.3.0}/extract/samples/version-line/basic.txt +0 -0
  524. {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/basic.txt +0 -0
  525. {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/benchmark.txt +0 -0
  526. {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/mysql.txt +0 -0
  527. {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/psql.txt +0 -0
  528. {provost-2.2.0 → provost-2.3.0}/extract/samples/vnstat/basic.txt +0 -0
  529. {provost-2.2.0 → provost-2.3.0}/extract/samples/xfs-info/basic.txt +0 -0
  530. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/basic.xml +0 -0
  531. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/pom.xml +0 -0
  532. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/svg.xml +0 -0
  533. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/basic.xml +0 -0
  534. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/config.xml +0 -0
  535. {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/rss.xml +0 -0
  536. {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/basic.yaml +0 -0
  537. {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/block-scalars.yaml +0 -0
  538. {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/docker-compose.yaml +0 -0
  539. {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/kubernetes.yaml +0 -0
  540. {provost-2.2.0 → provost-2.3.0}/extract/samples/zpool-status/basic.txt +0 -0
  541. {provost-2.2.0 → provost-2.3.0}/extract/samples/zypper-packages/basic.txt +0 -0
  542. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/cargo-search.sh +0 -0
  543. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/dotnet-list-package.sh +0 -0
  544. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-list.sh +0 -0
  545. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-mod-why.sh +0 -0
  546. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-test.sh +0 -0
  547. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/mix-deps.sh +0 -0
  548. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/pnpm-why.sh +0 -0
  549. {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/sbt-dependencytree.sh +0 -0
  550. {provost-2.2.0 → provost-2.3.0}/extract/strategies/cloud/kubectl-get-all.sh +0 -0
  551. {provost-2.2.0 → provost-2.3.0}/extract/strategies/container/docker-ps.sh +0 -0
  552. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/cassandra-nodetool-tpstats.sh +0 -0
  553. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/clickhouse-processlist.sh +0 -0
  554. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/mariadb-innodb-status.sh +0 -0
  555. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-compactionstats.sh +0 -0
  556. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-ring.sh +0 -0
  557. {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-status.sh +0 -0
  558. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/alias-list.sh +0 -0
  559. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/aligned-columns.sh +0 -0
  560. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/arrow-info-records.sh +0 -0
  561. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/arrow-map.sh +0 -0
  562. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/asciigraph.sh +0 -0
  563. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/banner-groups.sh +0 -0
  564. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/banner-sections-kv.sh +0 -0
  565. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/block-records.sh +0 -0
  566. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/box-dag.sh +0 -0
  567. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/box-table.sh +0 -0
  568. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/boxed-table.sh +0 -0
  569. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/bpftrace-map.sh +0 -0
  570. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/brace-groups.sh +0 -0
  571. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/bracket-log.sh +0 -0
  572. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/checking-groups.sh +0 -0
  573. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/cipher-suites.sh +0 -0
  574. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-fields.sh +0 -0
  575. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-header-members.sh +0 -0
  576. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-kv-continuation.sh +0 -0
  577. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-pairs.sh +0 -0
  578. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colons.sh +0 -0
  579. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/columnar-specs.sh +0 -0
  580. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/count-percent-label.sh +0 -0
  581. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dash-labeled-stats.sh +0 -0
  582. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dashed-sections.sh +0 -0
  583. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/decorated-groups.sh +0 -0
  584. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dep-tree.sh +0 -0
  585. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/describe-report.sh +0 -0
  586. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/diffstat.sh +0 -0
  587. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dot-leader-kv.sh +0 -0
  588. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dot-leader-row.sh +0 -0
  589. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dotted-kv-tree.sh +0 -0
  590. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/double-colon-fields.sh +0 -0
  591. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/embedded-table.sh +0 -0
  592. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/equals.sh +0 -0
  593. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/first-colon-kv.sh +0 -0
  594. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/first-word-kv.sh +0 -0
  595. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/fixed-width.sh +0 -0
  596. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/group-children.sh +0 -0
  597. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/grouped-list.sh +0 -0
  598. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/headline-kv-blocks.sh +0 -0
  599. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/help-columns.sh +0 -0
  600. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/histogram-buckets.sh +0 -0
  601. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indent-tree.sh +0 -0
  602. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indented-colon-groups.sh +0 -0
  603. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indented-hierarchy.sh +0 -0
  604. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/inline-kv-groups.sh +0 -0
  605. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ip-neigh-record.sh +0 -0
  606. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/labeled-inline-kv.sh +0 -0
  607. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/labeled-records.sh +0 -0
  608. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ledger-balance.sh +0 -0
  609. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/line-pairs.sh +0 -0
  610. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/line-records.sh +0 -0
  611. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/lspci-line.sh +0 -0
  612. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/middot-split.sh +0 -0
  613. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/multi-bracket-log.sh +0 -0
  614. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/name-version-suffix.sh +0 -0
  615. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/nested-colon-kv.sh +0 -0
  616. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/numeric-lead-records.sh +0 -0
  617. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/paren-tail-kv.sh +0 -0
  618. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/path-line-content.sh +0 -0
  619. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ping-report.sh +0 -0
  620. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pipe-cells.sh +0 -0
  621. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pipe-table.sh +0 -0
  622. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pkg-repo-columns.sh +0 -0
  623. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/plan-actions.sh +0 -0
  624. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/prefix-message.sh +0 -0
  625. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/probe-verdict.sh +0 -0
  626. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/process-progress-rows.sh +0 -0
  627. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/progress-ledger.sh +0 -0
  628. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/psql-table.sh +0 -0
  629. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pv-records.sh +0 -0
  630. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/quoted-fields.sh +0 -0
  631. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/repeated-lead-records.sh +0 -0
  632. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/result-blocks.sh +0 -0
  633. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/alias-list/basic.txt +0 -0
  634. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/arrow-map/basic.txt +0 -0
  635. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/asciigraph/basic.txt +0 -0
  636. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/banner-groups/basic.txt +0 -0
  637. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/brace-groups/basic.txt +0 -0
  638. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/checking-groups/basic.txt +0 -0
  639. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/count-percent-label/basic.txt +0 -0
  640. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dep-tree/basic.txt +0 -0
  641. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dot-leader-kv/basic.txt +0 -0
  642. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dot-leader-kv/leader-before-colon.txt +0 -0
  643. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/grouped-list/basic.txt +0 -0
  644. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/indented-colon-groups/basic.txt +0 -0
  645. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/ledger-balance/basic.txt +0 -0
  646. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/numeric-lead-records/basic.txt +0 -0
  647. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/pipe-cells/basic.txt +0 -0
  648. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/repeated-lead-records/basic.txt +0 -0
  649. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/unspaced-colon-kv/basic.txt +0 -0
  650. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/section-kv.sh +0 -0
  651. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/section-name-value.sh +0 -0
  652. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/sectioned-fields.sh +0 -0
  653. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/semicolon-values.sh +0 -0
  654. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/subject-field-value.sh +0 -0
  655. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/super-header-table.sh +0 -0
  656. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/syslog.sh +0 -0
  657. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/text-lines.sh +0 -0
  658. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/trailing-table.sh +0 -0
  659. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/two-col-gap.sh +0 -0
  660. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/two-space-kv.sh +0 -0
  661. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/unspaced-colon-kv.sh +0 -0
  662. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/version-line.sh +0 -0
  663. {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/vertical-line.sh +0 -0
  664. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/CHANGELOG.md +0 -0
  665. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/btrfs-filesystem-show.sh +0 -0
  666. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/fdisk.sh +0 -0
  667. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/iostat-x.sh +0 -0
  668. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/parted-print.sh +0 -0
  669. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/readelf-sections.sh +0 -0
  670. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/samples/stat-file/basic.txt +0 -0
  671. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/stat-file.sh +0 -0
  672. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/xfs-info.sh +0 -0
  673. {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/zpool-status.sh +0 -0
  674. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/CHANGELOG.md +0 -0
  675. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/biosdecode.sh +0 -0
  676. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/decode-dimms.sh +0 -0
  677. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/lspci-tv.sh +0 -0
  678. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/lsusb-v.sh +0 -0
  679. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/rocm-smi-concise.sh +0 -0
  680. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/smartctl-selftest.sh +0 -0
  681. {provost-2.2.0 → provost-2.3.0}/extract/strategies/hpc/CHANGELOG.md +0 -0
  682. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/binnacle-agree.sh +0 -0
  683. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/binnacle-logtriage.sh +0 -0
  684. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/csvlook.sh +0 -0
  685. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/dc-results.sh +0 -0
  686. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/git-log.sh +0 -0
  687. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/gnu-version.sh +0 -0
  688. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/restic.sh +0 -0
  689. {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/terraform-plan-actions.sh +0 -0
  690. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/arping.sh +0 -0
  691. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/binnacle-netmesh.sh +0 -0
  692. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/binnacle-reachable.sh +0 -0
  693. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/fleet-host-lines.sh +0 -0
  694. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/haproxy-vv.sh +0 -0
  695. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ifstat.sh +0 -0
  696. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ip-maddr.sh +0 -0
  697. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ip-xfrm-state.sh +0 -0
  698. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf-pivot.sh +0 -0
  699. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf-summary.sh +0 -0
  700. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf3-intervals.sh +0 -0
  701. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iptables-nat.sh +0 -0
  702. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iptables-nvL.sh +0 -0
  703. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iwlist-scan.sh +0 -0
  704. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/masscan.sh +0 -0
  705. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mtr-report.sh +0 -0
  706. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mx-check.sh +0 -0
  707. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mx-summarize.sh +0 -0
  708. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/netstat-s.sh +0 -0
  709. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nft-list-ruleset.sh +0 -0
  710. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nmap-sn.sh +0 -0
  711. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nslookup_mx.sh +0 -0
  712. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nstat.sh +0 -0
  713. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ping.sh +0 -0
  714. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/proc-net-dev.sh +0 -0
  715. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/resolvectl-query.sh +0 -0
  716. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/rfkill-list.sh +0 -0
  717. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/samples/proc-net-dev/basic.txt +0 -0
  718. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ssh-keyscan.sh +0 -0
  719. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/sslscan.sh +0 -0
  720. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/tcpdump-summary.sh +0 -0
  721. {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/vnstat.sh +0 -0
  722. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/7z.sh +0 -0
  723. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/bundle-outdated.sh +0 -0
  724. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/dbmate-status.sh +0 -0
  725. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/flatpak-remotes.sh +0 -0
  726. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/liquibase-status.sh +0 -0
  727. {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/unzip.sh +0 -0
  728. {provost-2.2.0 → provost-2.3.0}/extract/strategies/profiling/CHANGELOG.md +0 -0
  729. {provost-2.2.0 → provost-2.3.0}/extract/strategies/profiling/perf-counters.sh +0 -0
  730. {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-analyze.sh +0 -0
  731. {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-info.sh +0 -0
  732. {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-optimize.sh +0 -0
  733. {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-power.sh +0 -0
  734. {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-status.sh +0 -0
  735. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/aureport.sh +0 -0
  736. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/fail2ban-status.sh +0 -0
  737. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/gpg-card-status.sh +0 -0
  738. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/gpg-list-keys.sh +0 -0
  739. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/keytool-list.sh +0 -0
  740. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/nmap.sh +0 -0
  741. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/openssl-asn1parse.sh +0 -0
  742. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/semanage-boolean.sh +0 -0
  743. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/sshd-t.sh +0 -0
  744. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/systemd-analyze-security.sh +0 -0
  745. {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/vault-status.sh +0 -0
  746. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/csv.sh +0 -0
  747. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/dns-records.sh +0 -0
  748. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/exposition-format.sh +0 -0
  749. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/go-struct.sh +0 -0
  750. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/grafana-alerts.sh +0 -0
  751. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/grouped-rows.sh +0 -0
  752. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/har.sh +0 -0
  753. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/ini-sections.sh +0 -0
  754. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/inline-kv.sh +0 -0
  755. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/json-array.sh +0 -0
  756. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/json.sh +0 -0
  757. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/jsonl.sh +0 -0
  758. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/key-value.sh +0 -0
  759. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-pairs.sh +0 -0
  760. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-report.sh +0 -0
  761. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-under-group.sh +0 -0
  762. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/llm-template.sh +0 -0
  763. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/pivot-stats.sh +0 -0
  764. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/prometheus-query.sh +0 -0
  765. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/protobuf-text.sh +0 -0
  766. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/psql-expanded.sh +0 -0
  767. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/section-tables.sh +0 -0
  768. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/snmp-output.sh +0 -0
  769. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/toml.sh +0 -0
  770. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/tree-view.sh +0 -0
  771. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/tsv.sh +0 -0
  772. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/xml.sh +0 -0
  773. {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/yaml.sh +0 -0
  774. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/R-version.sh +0 -0
  775. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ansible-inventory-list.sh +0 -0
  776. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ansible-version.sh +0 -0
  777. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/bcc-funccount.sh +0 -0
  778. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/binnacle-severity-report.sh +0 -0
  779. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/bpftrace.sh +0 -0
  780. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/elixir-version.sh +0 -0
  781. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/fossil-status.sh +0 -0
  782. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/fossil-timeline.sh +0 -0
  783. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/free.sh +0 -0
  784. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-annex-list.sh +0 -0
  785. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-bisect-log.sh +0 -0
  786. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-branch-vv.sh +0 -0
  787. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-log-graph.sh +0 -0
  788. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-log-stat.sh +0 -0
  789. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-worktree-list-porcelain.sh +0 -0
  790. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/gpg-list-packets.sh +0 -0
  791. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/iftop.sh +0 -0
  792. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/iotop.sh +0 -0
  793. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/jj-log.sh +0 -0
  794. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/jmap-histo.sh +0 -0
  795. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/lastb.sh +0 -0
  796. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/loginctl-list-seats.sh +0 -0
  797. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/lscpu-parse.sh +0 -0
  798. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/multipath-ll.sh +0 -0
  799. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/numactl-show.sh +0 -0
  800. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/numastat.sh +0 -0
  801. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pcp-pmstat.sh +0 -0
  802. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/perf-trace.sh +0 -0
  803. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/php-modules.sh +0 -0
  804. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-r.sh +0 -0
  805. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-u.sh +0 -0
  806. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-w.sh +0 -0
  807. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pipx-list.sh +0 -0
  808. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pkg-config.sh +0 -0
  809. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pmap.sh +0 -0
  810. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/powertop.sh +0 -0
  811. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-devices.sh +0 -0
  812. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-filesystems.sh +0 -0
  813. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-net-snmp.sh +0 -0
  814. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-net-tcp.sh +0 -0
  815. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-pagetypeinfo.sh +0 -0
  816. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-schedstat.sh +0 -0
  817. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-slabinfo.sh +0 -0
  818. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/rc-status.sh +0 -0
  819. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/samples/uname/basic.txt +0 -0
  820. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/swift-version.sh +0 -0
  821. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/sysstat.sh +0 -0
  822. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemctl-status.sh +0 -0
  823. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-analyze-critical-chain.sh +0 -0
  824. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-analyze-time.sh +0 -0
  825. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-cgls.sh +0 -0
  826. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-tmpfiles-cat-config.sh +0 -0
  827. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/top-batch.sh +0 -0
  828. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ulimit.sh +0 -0
  829. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/uname.sh +0 -0
  830. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/user-groups.sh +0 -0
  831. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/vagrant-global-status.sh +0 -0
  832. {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/zypper-packages.sh +0 -0
  833. {provost-2.2.0 → provost-2.3.0}/extract/tests/bench_memory.sh +0 -0
  834. {provost-2.2.0 → provost-2.3.0}/extract/tests/bench_strategy_load.sh +0 -0
  835. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/7z.txt +0 -0
  836. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/R-version.txt +0 -0
  837. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/alias-list.txt +0 -0
  838. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns.txt +0 -0
  839. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@abbrev-label.txt.txt +0 -0
  840. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@asa-report.txt.txt +0 -0
  841. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@banner-lines.txt.txt +0 -0
  842. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@caption-abbrev.txt.txt +0 -0
  843. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@comment-header.txt.txt +0 -0
  844. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@data-gutters.txt.txt +0 -0
  845. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@footer-empty-cells.txt.txt +0 -0
  846. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@indented-banner.txt.txt +0 -0
  847. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@offset-cells.txt.txt +0 -0
  848. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@one-row-units.txt.txt +0 -0
  849. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@option-states.txt.txt +0 -0
  850. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@page-headers.txt.txt +0 -0
  851. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@space-in-cell.txt.txt +0 -0
  852. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@sparse-matrix.txt.txt +0 -0
  853. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@tab-banner.txt.txt +0 -0
  854. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@title-indented.txt.txt +0 -0
  855. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@utf8-runes.txt.txt +0 -0
  856. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@utf8-widths.txt.txt +0 -0
  857. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@w3c-fields.txt.txt +0 -0
  858. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ansible-inventory-list.txt +0 -0
  859. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ansible-version.txt +0 -0
  860. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arping.txt +0 -0
  861. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arrow-info-records.txt +0 -0
  862. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arrow-map.txt +0 -0
  863. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/asciigraph.txt +0 -0
  864. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aureport.txt +0 -0
  865. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/banner-groups.txt +0 -0
  866. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/banner-sections-kv.txt +0 -0
  867. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bcc-funccount.txt +0 -0
  868. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-agree.txt +0 -0
  869. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-logtriage.txt +0 -0
  870. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-netmesh.txt +0 -0
  871. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-reachable.txt +0 -0
  872. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-severity-report.txt +0 -0
  873. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/biosdecode.txt +0 -0
  874. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/block-records.txt +0 -0
  875. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-dag.txt +0 -0
  876. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table.txt +0 -0
  877. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@group-header.txt.txt +0 -0
  878. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@group-subcols.txt.txt +0 -0
  879. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@kv-title.txt.txt +0 -0
  880. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@named-border.txt.txt +0 -0
  881. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/boxed-table.txt +0 -0
  882. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bpftrace-map.txt +0 -0
  883. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bpftrace.txt +0 -0
  884. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/brace-groups.txt +0 -0
  885. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bracket-log.txt +0 -0
  886. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/btrfs-filesystem-show.txt +0 -0
  887. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bundle-outdated.txt +0 -0
  888. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cargo-search.txt +0 -0
  889. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cassandra-nodetool-tpstats.txt +0 -0
  890. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/checking-groups.txt +0 -0
  891. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cipher-suites.txt +0 -0
  892. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/clickhouse-processlist.txt +0 -0
  893. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-fields.txt +0 -0
  894. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-fields@nmcli-terse.txt.txt +0 -0
  895. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-header-members.txt +0 -0
  896. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-kv-continuation.txt +0 -0
  897. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-pairs.txt +0 -0
  898. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons.txt +0 -0
  899. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons@opencl-platforms.txt.txt +0 -0
  900. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons@rpm-qi.txt.txt +0 -0
  901. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/columnar-specs.txt +0 -0
  902. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/count-percent-label.txt +0 -0
  903. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/csv.txt +0 -0
  904. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/csvlook.txt +0 -0
  905. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dash-labeled-stats.txt +0 -0
  906. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dashed-sections.txt +0 -0
  907. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dbmate-status.txt +0 -0
  908. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dc-results.txt +0 -0
  909. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/decode-dimms.txt +0 -0
  910. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/decorated-groups.txt +0 -0
  911. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dep-tree.txt +0 -0
  912. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/describe-report.txt +0 -0
  913. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/diffstat.txt +0 -0
  914. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dns-records.txt +0 -0
  915. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dns-records@zonefile.txt.txt +0 -0
  916. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/docker-ps.txt +0 -0
  917. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-analyze.txt +0 -0
  918. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-info.txt +0 -0
  919. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-optimize.txt +0 -0
  920. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-power.txt +0 -0
  921. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-status.txt +0 -0
  922. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-kv.txt +0 -0
  923. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-kv@leader-before-colon.txt.txt +0 -0
  924. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-row.txt +0 -0
  925. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dotnet-list-package.txt +0 -0
  926. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dotted-kv-tree.txt +0 -0
  927. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/double-colon-fields.txt +0 -0
  928. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/elixir-version.txt +0 -0
  929. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/embedded-table.txt +0 -0
  930. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/embedded-table@group-row.txt.txt +0 -0
  931. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/equals.txt +0 -0
  932. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/exposition-format.txt +0 -0
  933. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fail2ban-status.txt +0 -0
  934. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fdisk.txt +0 -0
  935. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/first-colon-kv.txt +0 -0
  936. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/first-word-kv.txt +0 -0
  937. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width.txt +0 -0
  938. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@dates-empties.txt.txt +0 -0
  939. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@equals-rule.txt.txt +0 -0
  940. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@footer-prompt.txt.txt +0 -0
  941. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@right-aligned.txt.txt +0 -0
  942. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@sql-footer.txt.txt +0 -0
  943. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@wrapped-header.txt.txt +0 -0
  944. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/flatpak-remotes.txt +0 -0
  945. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fleet-host-lines.txt +0 -0
  946. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fossil-status.txt +0 -0
  947. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fossil-timeline.txt +0 -0
  948. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/free.txt +0 -0
  949. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-annex-list.txt +0 -0
  950. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-bisect-log.txt +0 -0
  951. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-branch-vv.txt +0 -0
  952. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log-graph.txt +0 -0
  953. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log-stat.txt +0 -0
  954. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log.txt +0 -0
  955. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-worktree-list-porcelain.txt +0 -0
  956. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version.txt +0 -0
  957. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version@sed.txt.txt +0 -0
  958. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version@vaultctl.txt.txt +0 -0
  959. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-list.txt +0 -0
  960. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-mod-why.txt +0 -0
  961. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-struct.txt +0 -0
  962. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-test.txt +0 -0
  963. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-card-status.txt +0 -0
  964. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-list-keys.txt +0 -0
  965. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-list-packets.txt +0 -0
  966. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grafana-alerts.txt +0 -0
  967. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/group-children.txt +0 -0
  968. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/group-children@long.txt.txt +0 -0
  969. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grouped-list.txt +0 -0
  970. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grouped-rows.txt +0 -0
  971. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/haproxy-vv.txt +0 -0
  972. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/har.txt +0 -0
  973. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/headline-kv-blocks.txt +0 -0
  974. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns.txt +0 -0
  975. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@ls-help.txt.txt +0 -0
  976. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@npm-run.txt.txt +0 -0
  977. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@rake-T.txt.txt +0 -0
  978. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@systemctl-help.txt.txt +0 -0
  979. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@wget-help.txt.txt +0 -0
  980. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/histogram-buckets.txt +0 -0
  981. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ifstat.txt +0 -0
  982. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iftop.txt +0 -0
  983. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indent-tree.txt +0 -0
  984. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indent-tree@comm-columns.txt.txt +0 -0
  985. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indented-colon-groups.txt +0 -0
  986. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indented-hierarchy.txt +0 -0
  987. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ini-sections.txt +0 -0
  988. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/inline-kv-groups.txt +0 -0
  989. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/inline-kv.txt +0 -0
  990. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iostat-x.txt +0 -0
  991. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iotop.txt +0 -0
  992. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-maddr.txt +0 -0
  993. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-neigh-record.txt +0 -0
  994. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-xfrm-state.txt +0 -0
  995. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf-pivot.txt +0 -0
  996. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf-summary.txt +0 -0
  997. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf3-intervals.txt +0 -0
  998. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iptables-nat.txt +0 -0
  999. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iptables-nvL.txt +0 -0
  1000. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iwlist-scan.txt +0 -0
  1001. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jj-log.txt +0 -0
  1002. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jmap-histo.txt +0 -0
  1003. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json-array.txt +0 -0
  1004. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json.txt +0 -0
  1005. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json@node-inspect.txt.txt +0 -0
  1006. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json@node-interfaces.txt.txt +0 -0
  1007. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jsonl.txt +0 -0
  1008. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/key-value.txt +0 -0
  1009. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/key-value@docker-info-lists.txt.txt +0 -0
  1010. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/keytool-list.txt +0 -0
  1011. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kubectl-get-all.txt +0 -0
  1012. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-pairs.txt +0 -0
  1013. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report.txt +0 -0
  1014. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@brew-config.txt.txt +0 -0
  1015. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@feature-grid.txt.txt +0 -0
  1016. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@mise-doctor.txt.txt +0 -0
  1017. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@mutt-v.txt.txt +0 -0
  1018. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@xdpyinfo.txt.txt +0 -0
  1019. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-under-group.txt +0 -0
  1020. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/labeled-inline-kv.txt +0 -0
  1021. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/labeled-records.txt +0 -0
  1022. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lastb.txt +0 -0
  1023. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/layout-model.txt +0 -0
  1024. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ledger-balance.txt +0 -0
  1025. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ledger-balance@multicurrency.txt.txt +0 -0
  1026. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/line-pairs.txt +0 -0
  1027. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/line-records.txt +0 -0
  1028. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/liquibase-status.txt +0 -0
  1029. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/llm-template.txt +0 -0
  1030. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/llm-template@nested.txt.txt +0 -0
  1031. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/loginctl-list-seats.txt +0 -0
  1032. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lscpu-parse.txt +0 -0
  1033. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lspci-line.txt +0 -0
  1034. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lspci-tv.txt +0 -0
  1035. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lsusb-v.txt +0 -0
  1036. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mariadb-innodb-status.txt +0 -0
  1037. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/masscan.txt +0 -0
  1038. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/middot-split.txt +0 -0
  1039. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mix-deps.txt +0 -0
  1040. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mtr-report.txt +0 -0
  1041. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mtr-report@asn.txt.txt +0 -0
  1042. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/multi-bracket-log.txt +0 -0
  1043. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/multipath-ll.txt +0 -0
  1044. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mx-check.txt +0 -0
  1045. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mx-summarize.txt +0 -0
  1046. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/name-version-suffix.txt +0 -0
  1047. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nested-colon-kv.txt +0 -0
  1048. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/netstat-s.txt +0 -0
  1049. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nft-list-ruleset.txt +0 -0
  1050. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nmap-sn.txt +0 -0
  1051. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nmap.txt +0 -0
  1052. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-compactionstats.txt +0 -0
  1053. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-ring.txt +0 -0
  1054. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-status.txt +0 -0
  1055. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nslookup_mx.txt +0 -0
  1056. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nstat.txt +0 -0
  1057. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numactl-show.txt +0 -0
  1058. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numastat.txt +0 -0
  1059. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numeric-lead-records.txt +0 -0
  1060. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/openssl-asn1parse.txt +0 -0
  1061. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/paren-tail-kv.txt +0 -0
  1062. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/parted-print.txt +0 -0
  1063. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/path-line-content.txt +0 -0
  1064. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pcp-pmstat.txt +0 -0
  1065. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/perf-counters.txt +0 -0
  1066. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/perf-trace.txt +0 -0
  1067. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/php-modules.txt +0 -0
  1068. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-r.txt +0 -0
  1069. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-u.txt +0 -0
  1070. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-w.txt +0 -0
  1071. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ping-report.txt +0 -0
  1072. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ping.txt +0 -0
  1073. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-cells.txt +0 -0
  1074. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table.txt +0 -0
  1075. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table@dash-rules.txt.txt +0 -0
  1076. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table@footer.txt.txt +0 -0
  1077. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipx-list.txt +0 -0
  1078. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pivot-stats.txt +0 -0
  1079. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pkg-config.txt +0 -0
  1080. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pkg-repo-columns.txt +0 -0
  1081. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/plan-actions.txt +0 -0
  1082. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pmap.txt +0 -0
  1083. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pnpm-why.txt +0 -0
  1084. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/powertop.txt +0 -0
  1085. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message.txt +0 -0
  1086. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@dotnet.txt.txt +0 -0
  1087. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@journal-short-iso.txt.txt +0 -0
  1088. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@logback.txt.txt +0 -0
  1089. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@markers.txt.txt +0 -0
  1090. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@nginx-error.txt.txt +0 -0
  1091. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@pylogging-basic.txt.txt +0 -0
  1092. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@rustc.txt.txt +0 -0
  1093. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@spring.txt.txt +0 -0
  1094. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/probe-verdict.txt +0 -0
  1095. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-devices.txt +0 -0
  1096. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-filesystems.txt +0 -0
  1097. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-dev.txt +0 -0
  1098. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-snmp.txt +0 -0
  1099. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-tcp.txt +0 -0
  1100. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-pagetypeinfo.txt +0 -0
  1101. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-schedstat.txt +0 -0
  1102. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-slabinfo.txt +0 -0
  1103. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/process-progress-rows.txt +0 -0
  1104. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/progress-ledger.txt +0 -0
  1105. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prometheus-query.txt +0 -0
  1106. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/protobuf-text.txt +0 -0
  1107. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/psql-expanded.txt +0 -0
  1108. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/psql-table.txt +0 -0
  1109. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pv-records.txt +0 -0
  1110. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/quoted-fields.txt +0 -0
  1111. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rc-status.txt +0 -0
  1112. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/readelf-sections.txt +0 -0
  1113. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/repeated-lead-records.txt +0 -0
  1114. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/resolvectl-query.txt +0 -0
  1115. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/restic.txt +0 -0
  1116. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/result-blocks.txt +0 -0
  1117. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rfkill-list.txt +0 -0
  1118. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rocm-smi-concise.txt +0 -0
  1119. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sbt-dependencytree.txt +0 -0
  1120. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-kv.txt +0 -0
  1121. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-name-value.txt +0 -0
  1122. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables.txt +0 -0
  1123. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@arp-a.txt.txt +0 -0
  1124. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@docker-system-df.txt.txt +0 -0
  1125. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@ipcs.txt.txt +0 -0
  1126. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@iptables-chains.txt.txt +0 -0
  1127. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sectioned-fields.txt +0 -0
  1128. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/semanage-boolean.txt +0 -0
  1129. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/semicolon-values.txt +0 -0
  1130. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/smartctl-selftest.txt +0 -0
  1131. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/snmp-output.txt +0 -0
  1132. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ssh-keyscan.txt +0 -0
  1133. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sshd-t.txt +0 -0
  1134. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sslscan.txt +0 -0
  1135. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/stat-file.txt +0 -0
  1136. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/subject-field-value.txt +0 -0
  1137. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/super-header-table.txt +0 -0
  1138. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/swift-version.txt +0 -0
  1139. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/syslog.txt +0 -0
  1140. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/syslog@traceback.txt.txt +0 -0
  1141. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sysstat.txt +0 -0
  1142. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemctl-status.txt +0 -0
  1143. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-critical-chain.txt +0 -0
  1144. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-security.txt +0 -0
  1145. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-time.txt +0 -0
  1146. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-cgls.txt +0 -0
  1147. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-tmpfiles-cat-config.txt +0 -0
  1148. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tcpdump-summary.txt +0 -0
  1149. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/terraform-plan-actions.txt +0 -0
  1150. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/text-lines.txt +0 -0
  1151. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/toml.txt +0 -0
  1152. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/top-batch.txt +0 -0
  1153. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/trailing-table.txt +0 -0
  1154. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tree-view.txt +0 -0
  1155. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv.txt +0 -0
  1156. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv@empty-cells.tsv.txt +0 -0
  1157. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv@headerless-repeats.tsv.txt +0 -0
  1158. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap.txt +0 -0
  1159. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap@comments-gaps.txt.txt +0 -0
  1160. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap@header-anchored.txt.txt +0 -0
  1161. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-space-kv.txt +0 -0
  1162. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ulimit.txt +0 -0
  1163. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/uname.txt +0 -0
  1164. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/unspaced-colon-kv.txt +0 -0
  1165. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/unzip.txt +0 -0
  1166. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/user-groups.txt +0 -0
  1167. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vagrant-global-status.txt +0 -0
  1168. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vault-status.txt +0 -0
  1169. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/version-line.txt +0 -0
  1170. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vertical-line.txt +0 -0
  1171. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vnstat.txt +0 -0
  1172. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/xfs-info.txt +0 -0
  1173. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/xml.txt +0 -0
  1174. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/yaml.txt +0 -0
  1175. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/zpool-status.txt +0 -0
  1176. {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/zypper-packages.txt +0 -0
  1177. {provost-2.2.0 → provost-2.3.0}/extract/tests/helpers.sh +0 -0
  1178. {provost-2.2.0 → provost-2.3.0}/extract/tests/run_tests.sh +0 -0
  1179. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_batch_mode.sh +0 -0
  1180. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_batch_summary.sh +0 -0
  1181. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_big_input_paths.sh +0 -0
  1182. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_chain_dataflow.sh +0 -0
  1183. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_consistency.sh +0 -0
  1184. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_coverage.sh +0 -0
  1185. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_critique_fixes.sh +0 -0
  1186. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_cross_strategy.sh +0 -0
  1187. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_dedup_advanced.sh +0 -0
  1188. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_dispatch_oversized_empty_replay.sh +0 -0
  1189. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_edge_cases.sh +0 -0
  1190. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_emit_meta.sh +0 -0
  1191. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_encoding.sh +0 -0
  1192. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_engine_defects.sh +0 -0
  1193. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_error_paths.sh +0 -0
  1194. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_extract_cli.sh +0 -0
  1195. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_field_filter.sh +0 -0
  1196. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_flag_combinations.sh +0 -0
  1197. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_format.sh +0 -0
  1198. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_format_claims.sh +0 -0
  1199. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_generic_mode.sh +0 -0
  1200. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_gutter_grid.sh +0 -0
  1201. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_interactive_mode.sh +0 -0
  1202. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_interface.sh +0 -0
  1203. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_malformed.sh +0 -0
  1204. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_merged_strategies.sh +0 -0
  1205. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_multi_mode.sh +0 -0
  1206. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_new_features.sh +0 -0
  1207. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_performance.sh +0 -0
  1208. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_plugin_dir.sh +0 -0
  1209. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_progress.sh +0 -0
  1210. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_provostrc.sh +0 -0
  1211. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_quote_json_glob_sed.sh +0 -0
  1212. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_rank.sh +0 -0
  1213. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_replay.sh +0 -0
  1214. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_search.sh +0 -0
  1215. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_self_validation.sh +0 -0
  1216. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_snapshot_regression.sh +0 -0
  1217. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_aligned_columns.sh +0 -0
  1218. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_beegfs.sh +0 -0
  1219. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_block_records.sh +0 -0
  1220. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_colons.sh +0 -0
  1221. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_csv.sh +0 -0
  1222. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_dc_results.sh +0 -0
  1223. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_docker_ps.sh +0 -0
  1224. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_equals.sh +0 -0
  1225. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_exposition_format.sh +0 -0
  1226. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_fixed_width.sh +0 -0
  1227. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_free.sh +0 -0
  1228. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_git_log.sh +0 -0
  1229. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_har.sh +0 -0
  1230. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_indented_hierarchy.sh +0 -0
  1231. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_json.sh +0 -0
  1232. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_jsonl.sh +0 -0
  1233. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_key_value.sh +0 -0
  1234. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_kv_pairs.sh +0 -0
  1235. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_mount.sh +0 -0
  1236. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_nmap.sh +0 -0
  1237. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_prefix_message.sh +0 -0
  1238. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_protobuf_text.sh +0 -0
  1239. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_syslog.sh +0 -0
  1240. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_tar_listing.sh +0 -0
  1241. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_toml.sh +0 -0
  1242. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_tsv.sh +0 -0
  1243. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_vertical_line.sh +0 -0
  1244. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_xml.sh +0 -0
  1245. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_yaml.sh +0 -0
  1246. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_streaming_multiline.sh +0 -0
  1247. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_tools.sh +0 -0
  1248. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_v32_features.sh +0 -0
  1249. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_v34_features.sh +0 -0
  1250. {provost-2.2.0 → provost-2.3.0}/extract/tests/test_validation.sh +0 -0
  1251. {provost-2.2.0 → provost-2.3.0}/extract/tests/verify_strategy_outputs.sh +0 -0
  1252. {provost-2.2.0 → provost-2.3.0}/extract/tools/CHANGELOG.md +0 -0
  1253. {provost-2.2.0 → provost-2.3.0}/extract/tools/new_strategy.sh +0 -0
  1254. {provost-2.2.0 → provost-2.3.0}/extract/tools/review_strategy.sh +0 -0
  1255. {provost-2.2.0 → provost-2.3.0}/lib/provost_output.sh +0 -0
  1256. {provost-2.2.0 → provost-2.3.0}/lib/provost_pager.sh +0 -0
  1257. {provost-2.2.0 → provost-2.3.0}/lib/provost_progress.sh +0 -0
  1258. {provost-2.2.0 → provost-2.3.0}/lib/provost_rc.sh +0 -0
  1259. {provost-2.2.0 → provost-2.3.0}/lib/provost_suggest.sh +0 -0
  1260. {provost-2.2.0 → provost-2.3.0}/lib/provost_version.sh +0 -0
  1261. {provost-2.2.0 → provost-2.3.0}/src/provost_data/__main__.py +0 -0
  1262. {provost-2.2.0 → provost-2.3.0}/tests/benchmark/README.md +0 -0
  1263. {provost-2.2.0 → provost-2.3.0}/tests/benchmark/round4/variants/README.md +0 -0
  1264. {provost-2.2.0 → provost-2.3.0}/tests/corpus/README.md +0 -0
  1265. {provost-2.2.0 → provost-2.3.0}/tests/corpus/text-inputs/README.md +0 -0
  1266. {provost-2.2.0 → provost-2.3.0}/transform/melt.sh +0 -0
  1267. {provost-2.2.0 → provost-2.3.0}/transform/tests/test_melt.sh +0 -0
@@ -1,5 +1,407 @@
1
1
  # provost — Changelog
2
2
 
3
+ ## 2026-11-04 — release v2.3.0 (PV-003)
4
+
5
+ `VERSION` 2.2.0 → 2.3.0, and the `man/provost.1` header. Everything below has
6
+ landed since 2.2.0 (published to PyPI from the 2026-10-30 release entry): the
7
+ entries above that one, from 2026-10-29 to 2026-11-04, hold the detail. Nothing
8
+ in an existing store or an existing command line changes; 2.3.0 only adds.
9
+
10
+ **Why now.** `pip install provost[lm]` only works from PyPI once a release
11
+ carries the `lm` extra, and quarterdeck's `qd rm RUN` refuses on a provost
12
+ without `rm --capture` (PyPI's 2.2.0 and older).
13
+
14
+ **What's new since 2.2.0**
15
+ - **`provost rm --capture ID[,ID...]`** deletes captures out of datasets that
16
+ other captures also filed into: the capture's directory and tags, its rows
17
+ and their provenance, in one commit or not at all (2026-11-02).
18
+ - **`pip install provost[lm]`:** `--model` labels with the 18-layer tiny LM,
19
+ run on numpy alone, no torch. The weights come from the `provost-model`
20
+ package (0.1.0 on PyPI). `PROVOST_LAYOUT_LM=0` keeps the trees;
21
+ `PROVOST_LAYOUT_LM=DIR` uses a model of your own; `PROVOST_PYTHON` names the
22
+ interpreter that runs the layout model (2026-10-29, 2026-10-31, 2026-11-02).
23
+ - **The wheel ships the layout model's LM runtime** (`lm_runtime.py`,
24
+ `lm_numpy.py`, `lm_encode.py`, `bpe.py`), so a pip-installed provost with no
25
+ model or no numpy labels with the trees, as a checkout does.
26
+ - **`batch` is faster on a fleet's answers:** the first input of each name
27
+ sets a detection hint the others reuse when it gives the same table
28
+ (`PROVOST_BATCH_REUSE=0` turns it off), and each name's first input is
29
+ parsed side by side, `-j` at a time (2026-10-30). quarterdeck filing 200
30
+ hosts went from 70 s to 22 s.
31
+ - **Fixed:** the smoke check on help lines wider than 79 columns could never
32
+ fail; it now counts them, and `provost next`'s line is shorter.
33
+ - **ml/ (dev-only, not shipped):** `train_lm.py`, `export_lm.py`,
34
+ `fold_eval.py --learner lm`, `model_round.sh`, and a validation split that
35
+ no longer puts every validation family in fold 1.
36
+ - **Work is ticketed** (PV-001, ST-004, ST-010): `CLAUDE.md`'s "Every task is
37
+ a ticket" section. Docs only.
38
+
39
+ **Publishing.** Run the "Release to PyPI" workflow (`release.yml`) on `main`,
40
+ or publish a GitHub release tagged `v2.3.0`, which runs the same workflow —
41
+ one or the other: PyPI refuses a second upload of 2.3.0. Then, in a fresh
42
+ venv, `pip install 'provost[lm]'` should give provost 2.3.0 and
43
+ provost-model, and `provost rm --help` should list `--capture`.
44
+
45
+ ## 2026-11-04 — Step 3 of the ticket section is one command line (ST-010)
46
+
47
+ Step 3 of `CLAUDE.md`'s "Every task is a ticket" section now puts its
48
+ `ticket.py new` command on one line, in a code block of its own, as
49
+ shared_tools' copy does since ST-008. It used to wrap across two lines inside
50
+ one code span, so pasting it into a shell ran two commands and failed.
51
+ Workflow docs only, no code and no version change.
52
+
53
+ - **`CLAUDE.md`:** step 3 only; nothing else in the file changes.
54
+ - **`HANDOFF.md`:** unchanged; its step 0s is still accurate.
55
+
56
+ ## 2026-11-04 — The ticket section of CLAUDE.md is the current text (ST-004)
57
+
58
+ `CLAUDE.md`'s "Every task is a ticket" section is replaced with the current
59
+ text from shared_tools' `CLAUDE.md`, again verbatim with this repository's
60
+ name filled in. Workflow docs only, no code and no version change.
61
+
62
+ - Step 1 now says to pull an existing clone of `shared_tools` rather than only
63
+ to clone it: a stale clone read an old `CLAUDE.md` and ran an old
64
+ `ticket.py`.
65
+ - Step 3 names the `shared_tools` clone's script (`<shared_tools
66
+ clone>/scripts/ticket.py`, not a path in this repository) and passes
67
+ `--request`.
68
+ - The columns read Backlog → In Progress → Review → Done: Adversarial Test is
69
+ now only on the owner's request (ST-005).
70
+ - **`CLAUDE.md`:** that section only; nothing else in the file changes.
71
+ - **`HANDOFF.md`:** next step 0s mentions the pull and the columns.
72
+
73
+ ## 2026-11-03 — Every task is a ticket on the shared board (PV-001)
74
+
75
+ provost's work is now tracked as tickets in
76
+ [shared_tools](https://github.com/MartinGallagher-code/shared_tools)
77
+ (`tickets/provost/`, prefix PV), on the shared kanban board. Workflow docs
78
+ only, no code and no version change.
79
+
80
+ - **`CLAUDE.md`:** the "Every task is a ticket" section, verbatim from
81
+ shared_tools' `CLAUDE.md` with this repository's name filled in, directly
82
+ after the opening paragraph.
83
+ - **`HANDOFF.md`:** next step 0s.
84
+
85
+ ## 2026-11-02 — `rm --capture`: delete captures, and the rows they filed
86
+
87
+ `provost rm NAME` deletes whole datasets. Nothing could delete one capture
88
+ out of a dataset that others also filed into, and quarterdeck needs exactly
89
+ that: its `qd rm RUN` deletes one run, whose answers sit in datasets beside
90
+ other runs' answers.
91
+
92
+ - **`provost rm [-f] --capture ID[,ID...]`** (repeatable; an ID as
93
+ elsewhere: `c0007`, `7`, `capture-c0007`) deletes those captures: each
94
+ `captures/<id>/` and its tags (`capture-<id>`, and `files-<id>` where it
95
+ kept a controlled directory's files), the rows it filed from every
96
+ dataset it fed,
97
+ and their provenance rows. A dataset left with no rows goes too. It all
98
+ goes in one commit, like any `rm`.
99
+ - It asks first, like `rm`, unless `-f`. It refuses the whole operation if
100
+ any id is not a capture, and refuses dataset names given beside
101
+ `--capture`.
102
+ - A row is a capture's when provenance says so. provost's capture column
103
+ (column 2, after `#`; `_capture` beside a data column named `capture`) is
104
+ read only for a row provenance does not know, because a reconciled
105
+ dataset can hold a data value in that position. A data column named
106
+ `capture` or `#` is never matched.
107
+ - It commits the whole deletion or leaves the store as it was. What it
108
+ touches must already be committed, untracked files included, and no
109
+ other git may hold the store's index (it refuses otherwise, and says
110
+ so).
111
+ Every dataset and `provenance.tsv` is rewritten in a scratch directory
112
+ first, and any failure after that, up to and including the commit, puts
113
+ those paths back from HEAD, with signals ignored and tried again, after
114
+ a pause, if git is interrupted or locked out all the same. A commit that
115
+ landed although git then failed counts as done, and the index is brought
116
+ into line with it. It stages
117
+ and commits those paths alone: anything else uncommitted in the store,
118
+ staged or not, is left as it was. INT, TERM and HUP wait for the outcome
119
+ and then set the exit status, from the first change to the last message
120
+ (tags and the report included). Everything that changes the store runs
121
+ in a child in a process group of its own, so a Ctrl-C at the terminal
122
+ reaches only the waiting shell and never a git part way through. Under a
123
+ held-down Ctrl-C (INT to the group every 5 ms, from anywhere in the run)
124
+ 150 runs ended committed or unchanged and none in between, where the
125
+ same code without its own process group left 14 of 75 half-applied.
126
+ The child holds the store's lock as its own while it works (taking the
127
+ owner record over only while it is still its shell's, and handing it
128
+ back only while it is still its own, so another provost's lock is never
129
+ overwritten; both under the lock-break mutex, waited for briefly (3 s at
130
+ most) and cleared once when over a minute old as `_lock_break` does, so a stale-lock
131
+ break cannot fall between the compare and the write; if the lock was taken
132
+ from it before it changed anything, it stops there, nothing deleted),
133
+ so if the shell that took it is killed the lock stays live
134
+ until the child is done. A child killed on its own is waited for (its
135
+ git may still be running), its record taken back, and the outcome read
136
+ from HEAD. What made it fail is shown. Tags go only once the
137
+ commit has landed, and if they cannot go it says so. The
138
+ scratch directory goes on any exit. The datasets and rows are found again
139
+ under the lock, so one deleted while it waited at the prompt is skipped,
140
+ and the counts it prints are the rows that actually go.
141
+ - The ids go through a file, not the environment or the command line, and
142
+ the tags go in one `git update-ref --stdin`. 750 captures out of 1,501
143
+ take 3 s.
144
+ - Files: `provost` (`cmd_rm`, `_rm_captures`, `_rm_cap_scan`,
145
+ `_rm_cap_apply`, `_rm_cap_commit`, `rm --help`, `help advanced`;
146
+ `_release_lock_dir` reads the lock's owner with `read`, not `$(cat)`, so
147
+ a Ctrl-C cannot leave a lock it was releasing), `docs/usage.md`.
148
+ - Tests (`tests/smoke.sh`, +84): refusals (missing, malformed, mixed with
149
+ names, uncommitted changes), the prompt and its count, which rows and
150
+ datasets go and which stay (data columns named `capture` and `#`;
151
+ provenance against a reconciled capture column; no provenance; no final
152
+ newline), failure at each stage and INT/TERM/HUP (the store as it was or
153
+ the deletion committed, the exit status, tags kept on failure and said
154
+ so, the lock released, no scratch dir, a Ctrl-C to the group during the
155
+ put-back, a put-back retried, a commit that landed, a commit killed
156
+ after landing, another git holding the index, a Ctrl-C while the tags
157
+ go, the shell killed outright mid-commit, the child killed after
158
+ landing, another provost's lock left alone, a lock taken from it
159
+ before it began, the cause of a failure
160
+ shown),
161
+ its `files-<id>` tag, untracked and
162
+ hidden-untracked files refused, other uncommitted and staged files left
163
+ alone, a dataset that
164
+ went while it waited, provenance, dirs, tags, one clean commit, ids never
165
+ reused.
166
+
167
+ ## 2026-11-02 — The tiny LM without torch: `provost[lm]` and the `provost-model` package
168
+
169
+ `pip install provost[lm]` gives `--model` the 18-layer tiny LM, run with
170
+ numpy alone. The weights live in their own package and repository
171
+ ([provost_model](https://github.com/MartinGallagher-code/provost_model),
172
+ 85 MB, Apache-2.0), not in this repository. `provost-model` 0.1.0 is on PyPI
173
+ (2026-11-02). In a fresh venv, `pip install provost[lm]` from this
174
+ release's wheel pulls it from there, and `--model` labels with it.
175
+
176
+ - **`extract/model/bpe.py`:** SmolLM2's byte-level BPE tokenizer in plain
177
+ Python (the GPT-2 pattern over `unicodedata` classes). It gives ids
178
+ identical to transformers on every piece of the corpus and on 20,000 random
179
+ strings.
180
+ - **`extract/model/lm_numpy.py`:** the Llama forward pass and the two heads
181
+ on numpy.
182
+ - It matches transformers to 1e-4 on the same weights; an exported float
183
+ model makes every decision torch does.
184
+ - Weights stay at 8 bits in memory and are widened one matrix at a time.
185
+ Peak memory is 282 MB, the load takes 0.5 s, and torch is never
186
+ imported.
187
+ - **`extract/model/lm_encode.py`:** the echo encoding, moved out of
188
+ `lm_runtime.py` (which re-exports it) so the numpy path is stdlib plus
189
+ numpy.
190
+ - **`ml/export_lm.py`:** merges the LoRA adapter and keeps the trained
191
+ layers. Linear layers and the vocabulary table are stored at 8 bits with
192
+ one scale per row, in `.npz` shards under 45 MB. `--check N` compares
193
+ with torch; `--embed 4` gives a 4-bit table.
194
+ - **How faithful the 8-bit model is:**
195
+ - **Held out on fold 0,** the 30-layer model exported this way scores
196
+ 0.863 and 39/48 gold, the same as torch (0.863, 39/48). A 4-bit
197
+ vocabulary table scored 0.865 (41/48).
198
+ - **On round 4,** the 18-layer model's outputs are byte-identical to
199
+ torch's on 84 of 107 captures; the 4-bit table manages 65 of 107.
200
+ - **Rated blind,** the 23 that differ rate the same as torch's, so the
201
+ total is the same: 5 / 30 / 72, and 0 / 2 / 16 on the gate-held 18.
202
+ - **Finding the model:**
203
+ - with `PROVOST_LAYOUT_LM` unset, `layout_model.load_lm` uses an installed
204
+ `provost-model`;
205
+ - `PROVOST_LAYOUT_LM=0` keeps the trees;
206
+ - a directory `export_lm.py` wrote runs on numpy, one `train_lm.py` saved
207
+ on torch.
208
+ - **`PROVOST_PYTHON`:** the interpreter that runs the layout model
209
+ (`provost`, `layout-model.sh`). The pip launcher sets it to its own, so a
210
+ `provost-model` installed beside provost is found.
211
+ - **`pyproject.toml`:**
212
+ - the `lm` extra (`numpy`, `provost-model`);
213
+ - the wheel ships `bpe.py`, `lm_encode.py` and `lm_numpy.py`.
214
+ - **Checked from wheels in a fresh venv:**
215
+ - `pip install provost[lm]` resolves both packages;
216
+ - `provost --model` labels with the package's model;
217
+ - `PROVOST_LAYOUT_LM=0` gets the trees back.
218
+ - **Tests:**
219
+ - `ml/tests/test_lm_numpy.py` (10: the tokenizer, quantizers, export
220
+ layout, causality, against transformers' Llama, no torch import);
221
+ - smoke +2 (`PROVOST_LAYOUT_LM=0`, a missing `PROVOST_PYTHON`), +2 for the
222
+ new setting in help and the man page: 495;
223
+ - launcher +1;
224
+ - CI's python-package job installs numpy and runs the numpy tests.
225
+ - **Documented:** README (`provost[lm]`, the two settings), `help advanced`,
226
+ the man page, `ml/README.md`, `docs/lm-2026-10-29-tiny-labeller.md`.
227
+
228
+ ## 2026-10-31 — The 18-layer tiny LM on round 4: the same as 30 layers
229
+
230
+ `lm-all-l18` (the user's final model: 18 of 30 layers, every fold, a 14.5 MB
231
+ adapter) was run model-first on round 4 and rated blind. The 42 outputs
232
+ byte-identical to an earlier model's keep its rating; the other 65 were rated
233
+ afresh.
234
+ - **The total:** 5 / 30 / 72, against 5 / 31 / 71 for the 30-layer `lm-all`
235
+ and 12 / 51 / 44 for the default engine.
236
+ - **Head to head with `lm-all`:** 94 the same, 6 better, 7 worse.
237
+ - **The 18 gate-held captures:** 0 / 2 / 16, the same as `lm-all`.
238
+ - **Conclusion:** 18 layers costs nothing on whole captures either, so it is
239
+ the model to use with `PROVOST_LAYOUT_LM`. Its blank result on round 3's
240
+ `cmake-cache-advanced-help` is a one-off.
241
+
242
+ Files: `docs/lm-2026-10-29-tiny-labeller.md`, `HANDOFF.md`.
243
+
244
+ ## 2026-10-29 — A tiny pretrained LM as the layout labeller, trained on a CPU
245
+
246
+ An experiment, not yet in provost's capture path: can an ultra-small
247
+ pretrained language model, fine-tuned on provost's own labels, get past the
248
+ ~83% plateau of the from-scratch students (trees, GridNet)?
249
+
250
+ - **`ml/train_lm.py`:**
251
+ - fine-tunes SmolLM2-135M (LoRA rank 16 on every linear layer, plus two
252
+ heads; 5.55M trained of 140M) to give the trees' two answers, so
253
+ `decode.py` and the scoring are reused;
254
+ - echoes the capture, so a causal model sees the rows below a header;
255
+ - cuts each line at its field-start candidates before tokenizing, so
256
+ offsets map to tokens exactly.
257
+ - `--batch-tok` (2,048 default; 6,000 ran out of 15 GB), `--checkpointing`,
258
+ `--full`, `--base`, checkpoints in `--save DIR/{last,best}`.
259
+ - `--start-step N` with `--init DIR/last` resumes a run a worker restart
260
+ killed, at its step in the schedule and the data; checkpoints record
261
+ their step (test +1).
262
+ - `--device auto|cpu|cuda|mps`: auto trains on an NVIDIA GPU, else an
263
+ Apple one (an M-series Mac's Metal GPU), else the CPU; `lm_runtime.run`
264
+ labels on whatever device the model is on (test +1).
265
+ - `--layers N` keeps only the base's first N transformer layers, so a
266
+ smaller model can be measured (6 of 30: 51M weights instead of 140M).
267
+ The count is saved in `config.json`, and `lm_runtime.load_model`
268
+ rebuilds the same cut; models without it load whole (tests +2).
269
+ - **The layer experiment** (the user's iMac, 2026-10-30/31):
270
+ - **18 of 30 layers matches the full model on all five folds:** 0.862
271
+ both (12,476 against 12,477 of 14,468 lines), gold 246 against 242
272
+ of 287, at 68% of the parameters (95.6M) and 63% of the training
273
+ time.
274
+ - **12 layers is not safe:** on fold 4 it scored 0.796, below the
275
+ engine.
276
+ - **On fold 0, 6 and 3 layers** scored 0.821 and 0.796.
277
+ - **The final 18-layer model, `lm-all-l18`:**
278
+ - every fold, 14 min, a 14.5 MB adapter, validation loss 0.540
279
+ against 0.563 at 30 layers;
280
+ - trained without `--no-val`, so on 3,271 captures;
281
+ - it loads and labels through `lm_runtime`, but on round 3's
282
+ `cmake-cache-advanced-help` its labels file nothing where the
283
+ trees and the 30-layer fold-0 model file a table. Its
284
+ whole-capture behaviour is unmeasured.
285
+ - **`ml/fold_eval.py --learner lm [--lm-load DIR]`** scores it on the usual
286
+ fold. `--limit N` scores the first N held-out docs for a quick look.
287
+ - **`ml/tests/test_train_lm.py`:** 7 tests on a tiny random model (no
288
+ download); they skip without torch, transformers and peft, so CI's
289
+ stdlib-only job is unaffected.
290
+ - **Measured** (`docs/lm-2026-10-29-tiny-labeller.md`):
291
+ - about 220 training tokens a second on 4 cores, about an hour per pass over
292
+ fold 0's 2,493 training captures, 9 GB RAM;
293
+ - fold 0 (627 held-out captures, 3,163 lines): **tiny LM 0.863, 39/48
294
+ gold**, against trees 0.829 and engine 0.814 (both 32/48), and the
295
+ documented trees + GridNet average of 0.835: the first learner past the
296
+ plateau;
297
+ - averaged with the trees: 0.865, 38/48;
298
+ - two passes, about 2 h on 4 cores;
299
+ - continued on generated layouts (`ml/gen`): 0.854, 37/48, so the corpus
300
+ labels stay the training set;
301
+ - **round 4, whole captures, model-first** (no engine, no gate), rated
302
+ blind: tiny LM 7 / 30 / 70, trees 2 / 32 / 73, default engine
303
+ 12 / 51 / 44. Neither model replaces the engine; on the 18 captures the
304
+ gate holds, the only ones `--model` touches, the LM rates 0 / 5 / 13
305
+ against the engine's 0 / 1 / 17;
306
+ - **round 4 again with the user's all-data model `lm-all`:** 5 / 31 / 71
307
+ against fold 0's 7 / 30 / 70. The 39 captures with byte-identical output
308
+ carry their ratings; the other 68 were rated blind. Head to head: 93
309
+ the same, 6 better, 8 worse; on the 18 gate-held captures, 0 / 2 / 16
310
+ against 0 / 5 / 13. More training data does not move whole captures;
311
+ - **folds 1–4, trained on the user's iMac** (Apple M4, `--device` picked
312
+ its GPU, about 4.5 times the container's speed, 15.5–19 min a fold).
313
+ The tiny LM wins every fold, 0.842–0.893. Over all five folds (14,468
314
+ lines): LM 0.862, trees 0.819, engine 0.814; gold 240 / 212 / 189 of 287.
315
+ Averaging with the trees does not pay. Worker restarts had killed fold 1
316
+ four times in the container.
317
+ - **Found by those runs:**
318
+ - every validation family fell in fold 1 (`is_val`'s `% 10 == 1` implies
319
+ `fold`'s `% 5 == 1`); fixed below;
320
+ - `fold_eval.py` crashes on macOS with two `libomp` copies loaded; not
321
+ fixed, but work around it with `OMP_NUM_THREADS=1` and `--threads 1`
322
+ (noted in `ml/README.md`).
323
+ - **The validation split** (`ml/dataset.py` `is_val`):
324
+ - **What it was:** `crc32(family) % 10 == 1` put all 403 validation
325
+ captures in cross-validation fold 1. So fold 1 trained with no validation
326
+ set, and every other fold picked its epoch on the same families.
327
+ - **What it is:** a salted hash, still never a test family. 346 captures of
328
+ 125 families (of 1,261), spread 91 / 101 / 69 / 85 over folds 1–4, so
329
+ every fold now validates on 245–346 captures.
330
+ - **What it changes:** LM and GridNet results recorded before this used
331
+ the old split and may move slightly if retrained. The trees do not use
332
+ it, so the shipped model is unchanged.
333
+ - `train_lm.py --no-val` holds nothing back: the final model, on every
334
+ capture, for the 2 epochs cross-validation chose (`split`).
335
+ - Tests +2.
336
+ - **The PyPI wheel ships `extract/model/lm_runtime.py`** (`pyproject.toml`).
337
+ - Before, a pip-installed provost with `PROVOST_LAYOUT_LM` set failed the
338
+ import, and `--model` declined.
339
+ - Now it labels with the trees when there is no model or no torch, as a
340
+ checkout does.
341
+ - CI's python-package job checks this from the installed wheel.
342
+ - **`tests/benchmark/model_records.py` + `model_round.sh --roundN OUT [--lm
343
+ DIR]`:** the layout model alone on a benchmark round, filed as `--model`
344
+ files it (one table or key/value record, else the model's own sections).
345
+ - `ml/README.md`: files table and reproduce steps.
346
+ - **Capture time, opt-in:**
347
+ - **`extract/model/lm_runtime.py`:** the encoding and the model now live
348
+ beside `layout.py` and `decode.py`, shared by training and capture time.
349
+ `train_lm.py` imports them. `lm_runtime.load` returns None when torch,
350
+ transformers or peft or the model is missing.
351
+ - **`PROVOST_LAYOUT_LM=DIR`** (`layout_model.py`: `load_lm`, `label_lm`):
352
+ `--model` labels with the tiny LM saved in DIR instead of the trees,
353
+ without the arbiter (it was fitted to the trees' probabilities). With no
354
+ model or no torch, the trees label as before (smoke +1).
355
+ - Documented in `help advanced` and the man page.
356
+ - **Fixed:** the smoke check "no help line is wider than 79 columns" could
357
+ never fail: an empty expected substring matches anything. It now counts
358
+ the wide lines. It found one, `provost next`, now shortened.
359
+
360
+ ## 2026-10-30 — `batch` parses each name's first input side by side
361
+
362
+ The detection reuse just above parsed the first input of every name one
363
+ after another, before the parallel parse of the rest began. A batch of one
364
+ name barely notices; a batch of many does. quarterdeck's `qd probe facts
365
+ inventory` files the answers to 7 probes and its own `qd.hosts` and
366
+ `qd.runs` in one batch: 9 names, so 9 full detections in turn while the
367
+ other CPUs waited. The first parses now run `-j` at a time, as the rest do,
368
+ and are waited for in the order they started (`cmd_batch`,
369
+ `_batch_first_done`). On six hosts that request went from 26 s to 16 s. The
370
+ captures, their order, and each name's hint are as before.
371
+
372
+ - Tests (`tests/smoke.sh`, +3): two names in one batch file the same rows
373
+ with `-j 1` and `-j 8`, and the inputs after each name's first record
374
+ the reused detection.
375
+
376
+ ## 2026-10-30 — `batch` reuses a name's detection: a fleet's answers, three times faster
377
+
378
+ A fleet's answers to one command are one format, and detection -- trying
379
+ every strategy -- is most of the engine's time on a small input (0.44 s of
380
+ it for a three-line `key: value` answer, against 0.06 s with the strategy
381
+ named). quarterdeck filing 200 hosts' answers took 70 s; it takes 22 s.
382
+
383
+ - **Detection reuse** (`cmd_batch`, `_ingest_parse`, `_batch_hint`). The
384
+ first input of each name that has others after it is parsed on its own.
385
+ When it is read cleanly -- one table, nothing held, no auto-multi, model
386
+ or template, coverage measured -- its strategy, coverage and header line
387
+ are a hint the others try first (`-s STRATEGY`), each kept only if the
388
+ engine gives the same strategy, the same header and coverage no lower;
389
+ anything else is detected from scratch, as before. A reused capture's
390
+ `meta.tsv` says `detection reused (STRATEGY, from the batch's first input
391
+ of this name)`. Off with `PROVOST_BATCH_REUSE=0`, and under `--multi`,
392
+ `--model` and `--llm`.
393
+ - **Why it is safe.** On 400 corpus inputs, the winner pinned gave a table
394
+ byte for byte the same as full detection on 376; on the other 24 (a hint
395
+ row's label, which is not a strategy file, or lower coverage when pinned)
396
+ the acceptance rule refuses the pinned result, and the input is detected
397
+ from scratch. A 41-input batch (40 alike and an error message) files the
398
+ same datasets either way, in 5.1 s against 13.1 s.
399
+ - `_read_engine_meta` reads the engine's meta line for both paths.
400
+ - Tests (`tests/smoke.sh`, +7): the same rows with and without reuse; the
401
+ meta line on the inputs after the first; none on the first, on an input
402
+ the hint does not fit, or with `PROVOST_BATCH_REUSE=0`; the setting in
403
+ the help and the man page. 485 passed.
404
+
3
405
  ## 2026-10-30 — release v2.2.0
4
406
 
5
407
  `VERSION` 2.1.0 → 2.2.0, and the `man/provost.1` header. Everything below has
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: provost
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: Turn command output into data: capture, auto-detect the format, present as a tidy git-backed dataset
5
5
  Project-URL: Homepage, https://github.com/MartinGallagher-code/provost
6
6
  Project-URL: Documentation, https://provost.readthedocs.io
@@ -22,6 +22,9 @@ Classifier: Programming Language :: Unix Shell
22
22
  Classifier: Topic :: System :: Systems Administration
23
23
  Classifier: Topic :: Utilities
24
24
  Requires-Python: >=3.8
25
+ Provides-Extra: lm
26
+ Requires-Dist: numpy; extra == 'lm'
27
+ Requires-Dist: provost-model; extra == 'lm'
25
28
  Description-Content-Type: text/markdown
26
29
 
27
30
  # provost
@@ -50,6 +53,16 @@ The PyPI package (`provost`) bundles the
50
53
  complete tool — the `provost` entry point plus its extract/analyze/transform
51
54
  engines — and a thin Python launcher execs it in place. Requires bash and git.
52
55
 
56
+ ```bash
57
+ pip install provost[lm]
58
+ ```
59
+
60
+ This adds a better reader for `--model`: a tiny pretrained language model
61
+ fine-tuned on provost's own labels. It comes as the
62
+ [`provost-model`](https://github.com/MartinGallagher-code/provost_model)
63
+ package (85 MB) and runs on numpy, with no torch or GPU. Without it,
64
+ `--model` uses the small decision trees provost ships.
65
+
53
66
  ## Quick start
54
67
 
55
68
  ```bash
@@ -190,6 +203,8 @@ index — including stores on remote (SFTP/SSH) hosts.
190
203
  | `PROVOST_CONTEXT_COLUMNS` | `0` | `1` = each `key=value` word of a `#%` prologue becomes a column on the capture's rows (same as `--context-columns`) |
191
204
  | `PROVOST_AUTO_MULTI` | `1` | segment a parse the quality gate would hold, when the parts are clearly better (`0` = hold it; same as `--no-auto-multi`) |
192
205
  | `PROVOST_MODEL` | `0` | `1` = when the gate would still hold a parse, try the learned layout model and file its table if it passes the same gate (needs `python3`; same as `--model`) |
206
+ | `PROVOST_LAYOUT_LM` | unset | the tiny LM `--model` labels with: a model directory, or unset for the installed `provost-model` package (`pip install provost[lm]`); `0` = the trees only |
207
+ | `PROVOST_PYTHON` | `python3` | the interpreter that runs the layout model (the pip launcher sets it to its own) |
193
208
  | `PROVOST_LLM` | `0` | `1` = parse with a template Claude wrote for that tool (regexes, or a small boxed Python parser for records that span lines; stored in the store's `llm-templates/`, or shipped), before a generic parse is trusted or a capture held; with no fitting template and an API key, ask Claude to write one. Writing one sends the capture to the Anthropic API, once per tool; lines a template sets aside that still carry a word or a number (titles, version banners, summary counts, errors) are filed beside its datasets as `NAME.notes`, never dropped; later captures of the tool are parsed offline, except one that shows a kind of line the template has not met, which (with a key) is sent once with the template's earlier captures so Claude can extend it (repair; kept only if it still reads them) (same as `--llm`) |
194
209
  | `PROVOST_LLM_MODEL` | `claude-opus-5-5` | the model that writes templates |
195
210
  | `PROVOST_LLM_API_KEY` | — | Anthropic API key for `--llm` (else `ANTHROPIC_API_KEY`; prefer this one where `ANTHROPIC_API_KEY` is taken, e.g. in a Claude Code environment, which keeps that name for its own sign-in) |
@@ -24,6 +24,16 @@ The PyPI package (`provost`) bundles the
24
24
  complete tool — the `provost` entry point plus its extract/analyze/transform
25
25
  engines — and a thin Python launcher execs it in place. Requires bash and git.
26
26
 
27
+ ```bash
28
+ pip install provost[lm]
29
+ ```
30
+
31
+ This adds a better reader for `--model`: a tiny pretrained language model
32
+ fine-tuned on provost's own labels. It comes as the
33
+ [`provost-model`](https://github.com/MartinGallagher-code/provost_model)
34
+ package (85 MB) and runs on numpy, with no torch or GPU. Without it,
35
+ `--model` uses the small decision trees provost ships.
36
+
27
37
  ## Quick start
28
38
 
29
39
  ```bash
@@ -164,6 +174,8 @@ index — including stores on remote (SFTP/SSH) hosts.
164
174
  | `PROVOST_CONTEXT_COLUMNS` | `0` | `1` = each `key=value` word of a `#%` prologue becomes a column on the capture's rows (same as `--context-columns`) |
165
175
  | `PROVOST_AUTO_MULTI` | `1` | segment a parse the quality gate would hold, when the parts are clearly better (`0` = hold it; same as `--no-auto-multi`) |
166
176
  | `PROVOST_MODEL` | `0` | `1` = when the gate would still hold a parse, try the learned layout model and file its table if it passes the same gate (needs `python3`; same as `--model`) |
177
+ | `PROVOST_LAYOUT_LM` | unset | the tiny LM `--model` labels with: a model directory, or unset for the installed `provost-model` package (`pip install provost[lm]`); `0` = the trees only |
178
+ | `PROVOST_PYTHON` | `python3` | the interpreter that runs the layout model (the pip launcher sets it to its own) |
167
179
  | `PROVOST_LLM` | `0` | `1` = parse with a template Claude wrote for that tool (regexes, or a small boxed Python parser for records that span lines; stored in the store's `llm-templates/`, or shipped), before a generic parse is trusted or a capture held; with no fitting template and an API key, ask Claude to write one. Writing one sends the capture to the Anthropic API, once per tool; lines a template sets aside that still carry a word or a number (titles, version banners, summary counts, errors) are filed beside its datasets as `NAME.notes`, never dropped; later captures of the tool are parsed offline, except one that shows a kind of line the template has not met, which (with a key) is sent once with the template's earlier captures so Claude can extend it (repair; kept only if it still reads them) (same as `--llm`) |
168
180
  | `PROVOST_LLM_MODEL` | `claude-opus-5-5` | the model that writes templates |
169
181
  | `PROVOST_LLM_API_KEY` | — | Anthropic API key for `--llm` (else `ANTHROPIC_API_KEY`; prefer this one where `ANTHROPIC_API_KEY` is taken, e.g. in a Claude Code environment, which keeps that name for its own sign-in) |
provost-2.3.0/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2.3.0
@@ -0,0 +1,159 @@
1
+ # SPDX-License-Identifier: GPL-3.0-or-later
2
+ # SPDX-FileCopyrightText: 2026 Martin J. Gallagher
3
+ """A byte-level BPE tokenizer read from a Hugging Face tokenizer.json, in
4
+ plain Python: what the tiny LM needs at capture time without transformers.
5
+
6
+ tok = Tokenizer.load("tokenizer.json")
7
+ tok.encode("Filesystem Size") # -> [token ids], no special tokens added
8
+
9
+ It covers the tokenizer the tiny LM was trained with (transformers loads
10
+ SmolLM2's as a GPT2Tokenizer): no normalizer; added tokens split out first;
11
+ then ByteLevel's GPT-2 pattern; then BPE merges over the byte-to-unicode
12
+ alphabet. The model directory carries that tokenizer as transformers had it
13
+ (ml/export_lm.py writes it), not the Hub's tokenizer.json, whose Digits step
14
+ transformers does not apply. The GPT-2 pattern needs Unicode letter and
15
+ number classes, which the re module lacks, so it is a small scanner over
16
+ unicodedata categories. ml/export_lm.py --check compares it with
17
+ transformers on every piece of the corpus.
18
+ """
19
+ import json
20
+ import unicodedata
21
+
22
+ # Unicode White_Space, which the pattern's \s means
23
+ _SPACE = set("\t\n\x0b\x0c\r \x85\xa0 

   ") | {
24
+ chr(c) for c in range(0x2000, 0x200B)}
25
+ _CONTRACTIONS = ("s", "t", "re", "ve", "m", "ll", "d")
26
+
27
+
28
+ def _cat(ch):
29
+ """'L' letter, 'N' number, 'S' whitespace, 'O' anything else."""
30
+ if ch in _SPACE:
31
+ return "S"
32
+ c = unicodedata.category(ch)[0]
33
+ return c if c in "LN" else "O"
34
+
35
+
36
+ def _byte_alphabet():
37
+ """GPT-2's reversible map from bytes to printable characters."""
38
+ keep = list(range(ord("!"), ord("~") + 1)) + list(range(ord("¡"), ord("¬") + 1)) + \
39
+ list(range(ord("®"), ord("ÿ") + 1))
40
+ out, n = {}, 0
41
+ for b in range(256):
42
+ if b in keep:
43
+ out[b] = chr(b)
44
+ else:
45
+ out[b] = chr(256 + n)
46
+ n += 1
47
+ return out
48
+
49
+
50
+ def split_gpt2(text):
51
+ """GPT-2's pattern, alternatives tried in order at each position:
52
+ 's|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+"""
53
+ out, i, n = [], 0, len(text)
54
+ cats = [_cat(ch) for ch in text]
55
+ while i < n:
56
+ ch = text[i]
57
+ if ch == "'":
58
+ hit = next((c for c in _CONTRACTIONS if text.startswith(c, i + 1)), None)
59
+ if hit:
60
+ out.append(text[i:i + 1 + len(hit)])
61
+ i += 1 + len(hit)
62
+ continue
63
+ j = i + 1 if ch == " " and i + 1 < n and cats[i + 1] != "S" else i
64
+ k = cats[j] if j < n else None
65
+ if k in ("L", "N", "O") and not (j == i and k == "S"):
66
+ e = j
67
+ while e < n and cats[e] == k:
68
+ e += 1
69
+ out.append(text[i:e])
70
+ i = e
71
+ continue
72
+ # whitespace: the run, minus its last character when a non-space follows
73
+ e = i
74
+ while e < n and cats[e] == "S":
75
+ e += 1
76
+ if e < n and e - i > 1:
77
+ e -= 1
78
+ out.append(text[i:e])
79
+ i = e
80
+ return out
81
+
82
+
83
+ class Tokenizer:
84
+ def __init__(self, vocab, merges, added=()):
85
+ self.vocab = vocab
86
+ self.ranks = {tuple(m.split(" ", 1)) if isinstance(m, str) else tuple(m): r
87
+ for r, m in enumerate(merges)}
88
+ self.added = sorted(added, key=lambda a: -len(a[0])) # (content, id), longest first
89
+ self.bytes = _byte_alphabet()
90
+ self.cache = {}
91
+
92
+ @classmethod
93
+ def load(cls, path):
94
+ with open(path, encoding="utf-8") as fh:
95
+ t = json.load(fh)
96
+ m, pre = t["model"], t.get("pre_tokenizer") or {}
97
+ if (m.get("type") != "BPE" or t.get("normalizer") or m.get("byte_fallback")
98
+ or pre.get("type") != "ByteLevel" or not pre.get("use_regex", True)
99
+ or pre.get("add_prefix_space")):
100
+ raise ValueError(f"{path}: not a plain byte-level BPE tokenizer")
101
+ return cls(m["vocab"], m["merges"], [(a["content"], a["id"]) for a in t.get("added_tokens", [])])
102
+
103
+ def _bpe(self, word):
104
+ """Ids of one pre-token (already mapped to the byte alphabet)."""
105
+ hit = self.cache.get(word)
106
+ if hit is not None:
107
+ return hit
108
+ parts = list(word)
109
+ while len(parts) > 1:
110
+ best, at = None, -1
111
+ for k in range(len(parts) - 1):
112
+ r = self.ranks.get((parts[k], parts[k + 1]))
113
+ if r is not None and (best is None or r < best):
114
+ best, at = r, k
115
+ if best is None:
116
+ break
117
+ pair = (parts[at], parts[at + 1])
118
+ merged, k = [], 0
119
+ while k < len(parts):
120
+ if k < len(parts) - 1 and (parts[k], parts[k + 1]) == pair:
121
+ merged.append(parts[k] + parts[k + 1])
122
+ k += 2
123
+ else:
124
+ merged.append(parts[k])
125
+ k += 1
126
+ parts = merged
127
+ ids = [self.vocab[p] for p in parts]
128
+ self.cache[word] = ids
129
+ return ids
130
+
131
+ def _plain(self, text):
132
+ ids = []
133
+ for word in split_gpt2(text):
134
+ ids.extend(self._bpe("".join(self.bytes[b] for b in word.encode("utf-8"))))
135
+ return ids
136
+
137
+ def encode(self, text):
138
+ """Token ids of text, no special tokens added (added tokens that occur
139
+ in the text are still matched, as transformers does)."""
140
+ if not self.added or not any(a in text for a, _ in self.added):
141
+ return self._plain(text)
142
+ ids, i, start = [], 0, 0
143
+ while i < len(text):
144
+ hit = next(((a, t) for a, t in self.added if text.startswith(a, i)), None)
145
+ if hit:
146
+ if start < i:
147
+ ids.extend(self._plain(text[start:i]))
148
+ ids.append(hit[1])
149
+ i += len(hit[0])
150
+ start = i
151
+ else:
152
+ i += 1
153
+ if start < len(text):
154
+ ids.extend(self._plain(text[start:]))
155
+ return ids
156
+
157
+ def __call__(self, texts):
158
+ """The Encoder's tokenize: a list of strings -> a list of id lists."""
159
+ return [self.encode(t) for t in texts]