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.
- {provost-2.2.0 → provost-2.3.0}/CHANGELOG.md +402 -0
- {provost-2.2.0 → provost-2.3.0}/PKG-INFO +16 -1
- {provost-2.2.0 → provost-2.3.0}/README.md +12 -0
- provost-2.3.0/VERSION +1 -0
- provost-2.3.0/extract/model/bpe.py +159 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/layout_model.py +53 -3
- provost-2.3.0/extract/model/lm_encode.py +129 -0
- provost-2.3.0/extract/model/lm_numpy.py +188 -0
- provost-2.3.0/extract/model/lm_runtime.py +170 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/layout-model.sh +2 -2
- {provost-2.2.0 → provost-2.3.0}/man/provost.1 +23 -1
- {provost-2.2.0 → provost-2.3.0}/ml/README.md +12 -1
- {provost-2.2.0 → provost-2.3.0}/provost +513 -27
- {provost-2.2.0 → provost-2.3.0}/pyproject.toml +9 -0
- {provost-2.2.0 → provost-2.3.0}/src/provost_data/__init__.py +3 -0
- {provost-2.2.0 → provost-2.3.0}/tests/python/test_launcher.py +11 -0
- provost-2.2.0/VERSION +0 -1
- {provost-2.2.0 → provost-2.3.0}/.gitignore +0 -0
- {provost-2.2.0 → provost-2.3.0}/LICENSE +0 -0
- {provost-2.2.0 → provost-2.3.0}/LICENSES/GPL-3.0-or-later.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/REUSE.toml +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/completions/provost-analyze.bash +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/completions/provost-browse.bash +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/docs/json-schema.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_categorical.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_compare.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_correlation.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_csv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_globals.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_helpers.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_numeric.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_profile.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_quality.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_summary.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/_threshold.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/awk/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/lib/awk/numeric_combined.awk +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/profiles/.keep +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/provost-analyze +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/anscombe.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/bimodal.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/biostats.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/duplicates.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/edge.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/known.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_benford.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_bimodal_seeded.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_categorical.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/known_spearman.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/large_vals.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/missing.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/numeric_edge.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/outliers.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/quoted.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/samples/trees.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/schemas/provost-analyze-output.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/_compute_known_truths.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/bench_large_dataset.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/helpers.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/run_tests.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_benford_alpha.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_color.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_column_overrides.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_compare.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_completions.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_correctness.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_csv_parsing.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_diverse_data.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_empty_input.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_filter_skip_correctness.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_float_cmp.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_html_format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_json_schema.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_known_values_extended.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_list_items.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_mda.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_modes.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_module_contracts.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_new_features.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_numeric_exclusions.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_performance.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_progress.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_sampling.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_summary.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_threshold.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_timeseries.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/analyze/tests/test_top_n.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/completions/provost.bash +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/README.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/hints.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_autotune.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_discovery.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_dispatch.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_globals.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_helpers.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_interactive.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_postprocess.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_score.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_techniques.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/lib/_validate.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/llm/GUIDE.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/llm/sandbox.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/llm/template.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/llm/templates/ip-addr.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/llm/templates/mcstatus.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/align.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/arbiter.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/arbitrate.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/decode.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/features.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/gridnet.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/layout-model.json.gz +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/model/layout.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/provost-extract +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/7z/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/R-version/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/alias-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/abbrev-label.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/asa-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/banner-lines.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/caption-abbrev.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/command-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/comment-header.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/data-gutters.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/df.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/feature-grid.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/footer-empty-cells.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/indented-banner.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/mount.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/offset-cells.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/one-row-units.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/option-states.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/page-headers.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/space-in-cell.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/sparse-matrix.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/tab-banner.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/title-indented.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/utf8-runes.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/utf8-widths.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aligned-columns/w3c-fields.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ansible-inventory-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ansible-version/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/arping/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/arrow-info-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/arrow-map/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/asciigraph/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/aureport/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/banner-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/banner-sections-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/bcc-funccount/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/beegfs/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-agree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-logtriage/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-netmesh/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-reachable/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/during.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/healthy-box.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/resolve.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/binnacle-severity-report/skew.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/biosdecode/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/interfaces.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/blank-line-records/lspci.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-dag/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/group-header.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/group-subcols.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/kv-title.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/box-table/named-border.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/boxed-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/bpftrace/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/bpftrace-map/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/brace-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/bracket-log/dmesg.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/btrfs-filesystem-show/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/bundle-outdated/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/cargo-search/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/cassandra-nodetool-tpstats/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/checking-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/cipher-suites/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/clickhouse-processlist/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-fields/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-fields/nmcli-terse.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-header-members/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-kv-continuation/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colon-pairs/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/network.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/opencl-platforms.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/rpm-qi.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/colons/system-info.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/columnar-specs/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/csv-multiline-cells.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/peer-table-relabel.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/pkg-table-overflow.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/ps-get-package.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/scoop-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/smbclient-ls.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/tab-kv-blocks.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/consistency/virsh-snapshot-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/count-percent-label/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/basic.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/bom.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/employees.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/csv/multiline.csv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/csvlook/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dash-labeled-stats/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dashed-sections/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dbmate-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dc-results/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/decode-dimms/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/decorated-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dep-tree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/describe-report/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/diffstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dns-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dns-records/zonefile.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/all.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/docker-ps/wide.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-analyze/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-info/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-optimize/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-power/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/doe-status/partial.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-kv/leader-before-colon.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dot-leader-row/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dotnet-list-package/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/dotted-kv-tree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/double-colon-fields/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/binary.bin +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/dedup-overlap.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/empty.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/headers-only.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/edge-cases/long-lines.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/elixir-version/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/embedded-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/embedded-table/group-row.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/config.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/equals/properties.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fail2ban-status/sample1.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fdisk/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/first-colon-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/first-word-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/accounting.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/dates-empties.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/equals-rule.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/footer-prompt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/right-aligned.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/sql-footer.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fixed-width/wrapped-header.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/flatpak-remotes/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/mx_doctor.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/mx_status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fleet-host-lines/netmesh_status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fossil-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/fossil-timeline/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/free/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/free/megabytes.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/free/no-swap.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-annex-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-bisect-log/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-branch-vv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/merge.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log/oneline.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log-graph/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-log-stat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/git-worktree-list-porcelain/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/doe.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/iperf.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/mx.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/sed.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/vaultctl.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gnu-version/whyslow.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/go-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/go-mod-why/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/go-struct/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/go-test/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-card-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-list-keys/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/gpg-list-packets/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/grafana-alerts/sample1.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/group-children/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/group-children/long.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/grouped-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/grouped-rows/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/haproxy-vv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/har/basic.har +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/headline-kv-blocks/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/ls-help.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/npm-run.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/rake-T.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/systemctl-help.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/help-columns/wget-help.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/histogram-buckets/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ifstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iftop/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indent-tree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indent-tree/comm-columns.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-colon-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/device-tree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/indented-hierarchy/lsusb.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ini-sections/basic.ini +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/inline-kv/id.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/inline-kv-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iostat-x/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iotop/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-maddr/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-neigh-record/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ip-xfrm-state/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf-pivot/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf-summary/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iperf3-intervals/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iptables-nat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iptables-nvL/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/iwlist-scan/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/jj-log/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/jmap-histo/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/array.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/basic.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/benchmark.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/nested.json +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/node-inspect.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json/node-interfaces.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/json-array/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/basic.jsonl +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/events.jsonl +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/jsonl/logs.jsonl +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/key-value/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/key-value/docker-info-lists.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/keytool-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kubectl-get-all/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-pairs/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/brew-config.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/feature-grid.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/mise-doctor.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/mutt-v.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-report/xdpyinfo.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/kv-under-group/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/labeled-inline-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/labeled-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/lastb/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/layout-model/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ledger-balance/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ledger-balance/multicurrency.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/line-pairs/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/line-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/liquibase-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/llm-template/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/llm-template/nested.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/loginctl-list-seats/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/lscpu-parse/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/lspci-line/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/lspci-tv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/lsusb-v/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mariadb-innodb-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/masscan/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/middot-split/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mix-deps/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mount/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mtr-report/asn.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mtr-report/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/multi-bracket-log/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/multipath-ll/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mx-check/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/mx-summarize/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/name-version-suffix/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nested-colon-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/netstat-s/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nft-list-ruleset/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/network-scan.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap/service-detect.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nmap-sn/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-compactionstats/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-ring/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nodetool-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nslookup_mx/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/nstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/numactl-show/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/numastat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/numeric-lead-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/openmetrics/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/openssl-asn1parse/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/paren-tail-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/parted-print/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/path-line-content/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pcp-pmstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/perf-counters/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/perf-trace/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/php-modules/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-r/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-u/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pidstat-w/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ping/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ping/quiet.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ping-reply/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ping-report/ping.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-cells/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/dash-rules.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pipe-table/footer.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pipx-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pivot-stats/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pkg-config/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pkg-repo-columns/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/plan-actions/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pmap/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pnpm-why/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/powertop/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/dotnet.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/journal-short-iso.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/logback.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/markers.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/nginx-error.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/pylogging-basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/rustc.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prefix-message/spring.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/probe-verdict/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-devices/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-filesystems/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-dev/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-snmp/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-net-tcp/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-pagetypeinfo/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-schedstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/proc-slabinfo/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/process-progress-rows/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/progress-ledger/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prometheus/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/prometheus-query/sample1.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/protobuf-text/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/psql-expanded/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/psql-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/pv-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/quoted-fields/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/rc-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/readelf-sections/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/ifconfig.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-blocks/ipaddr.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/repeated-lead-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/resolvectl-query/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/restic/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/result-blocks/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/rfkill-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/rocm-smi-concise/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/sbt-dependencytree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-name-value/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/arp-a.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/docker-system-df.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/ipcs.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/iptables-chains.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/section-tables/netstat-rn.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/sectioned-fields/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/semanage-boolean/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/semicolon-values/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/smartctl-selftest/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/snmp-output/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ssh-keyscan/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/sshd-t/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/sslscan/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/stat-file/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/subject-field-value/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/super-header-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/swift-version/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/auth.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/daemon.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/syslog/traceback.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/sysstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemctl-status/sample1.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-critical-chain/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-security/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-analyze-time/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-cgls/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/systemd-tmpfiles-cat-config/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tar-listing/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tcpdump-summary/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/terraform-plan-actions/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/text-lines/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/basic.toml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/cargo.toml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/toml/pyproject.toml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/top-batch/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/trailing-table/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tree-view/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/basic.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/benchmark.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/data.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/empty-cells.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/tsv/headerless-repeats.tsv +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/comments-gaps.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/two-col-gap/header-anchored.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/two-space-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/ulimit/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/uname/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/unspaced-colon-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/unzip/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/user-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vagrant-global-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vault-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/version-line/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/benchmark.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/mysql.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vertical-line/psql.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/vnstat/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xfs-info/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/basic.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/pom.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-attributes/svg.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/basic.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/config.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/xml-elements/rss.xml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/basic.yaml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/block-scalars.yaml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/docker-compose.yaml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/yaml/kubernetes.yaml +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/zpool-status/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/samples/zypper-packages/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/cargo-search.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/dotnet-list-package.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-mod-why.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/go-test.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/mix-deps.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/pnpm-why.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/build/sbt-dependencytree.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/cloud/kubectl-get-all.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/container/docker-ps.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/cassandra-nodetool-tpstats.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/clickhouse-processlist.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/mariadb-innodb-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-compactionstats.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-ring.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/database/nodetool-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/alias-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/aligned-columns.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/arrow-info-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/arrow-map.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/asciigraph.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/banner-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/banner-sections-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/block-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/box-dag.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/box-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/boxed-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/bpftrace-map.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/brace-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/bracket-log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/checking-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/cipher-suites.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-fields.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-header-members.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-kv-continuation.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colon-pairs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/colons.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/columnar-specs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/count-percent-label.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dash-labeled-stats.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dashed-sections.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/decorated-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dep-tree.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/describe-report.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/diffstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dot-leader-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dot-leader-row.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/dotted-kv-tree.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/double-colon-fields.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/embedded-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/equals.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/first-colon-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/first-word-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/fixed-width.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/group-children.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/grouped-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/headline-kv-blocks.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/help-columns.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/histogram-buckets.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indent-tree.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indented-colon-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/indented-hierarchy.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/inline-kv-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ip-neigh-record.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/labeled-inline-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/labeled-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ledger-balance.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/line-pairs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/line-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/lspci-line.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/middot-split.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/multi-bracket-log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/name-version-suffix.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/nested-colon-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/numeric-lead-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/paren-tail-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/path-line-content.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/ping-report.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pipe-cells.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pipe-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pkg-repo-columns.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/plan-actions.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/prefix-message.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/probe-verdict.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/process-progress-rows.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/progress-ledger.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/psql-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/pv-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/quoted-fields.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/repeated-lead-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/result-blocks.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/alias-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/arrow-map/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/asciigraph/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/banner-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/brace-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/checking-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/count-percent-label/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dep-tree/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dot-leader-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/dot-leader-kv/leader-before-colon.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/grouped-list/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/indented-colon-groups/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/ledger-balance/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/numeric-lead-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/pipe-cells/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/repeated-lead-records/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/samples/unspaced-colon-kv/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/section-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/section-name-value.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/sectioned-fields.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/semicolon-values.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/subject-field-value.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/super-header-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/syslog.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/text-lines.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/trailing-table.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/two-col-gap.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/two-space-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/unspaced-colon-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/version-line.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/delimited/vertical-line.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/btrfs-filesystem-show.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/fdisk.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/iostat-x.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/parted-print.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/readelf-sections.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/samples/stat-file/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/stat-file.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/xfs-info.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/filesystem/zpool-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/biosdecode.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/decode-dimms.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/lspci-tv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/lsusb-v.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/rocm-smi-concise.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hardware/smartctl-selftest.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/hpc/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/binnacle-agree.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/binnacle-logtriage.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/csvlook.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/dc-results.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/git-log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/gnu-version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/restic.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/misc/terraform-plan-actions.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/arping.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/binnacle-netmesh.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/binnacle-reachable.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/fleet-host-lines.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/haproxy-vv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ifstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ip-maddr.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ip-xfrm-state.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf-pivot.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf-summary.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iperf3-intervals.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iptables-nat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iptables-nvL.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/iwlist-scan.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/masscan.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mtr-report.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mx-check.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/mx-summarize.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/netstat-s.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nft-list-ruleset.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nmap-sn.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nslookup_mx.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/nstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ping.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/proc-net-dev.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/resolvectl-query.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/rfkill-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/samples/proc-net-dev/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/ssh-keyscan.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/sslscan.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/tcpdump-summary.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/network/vnstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/7z.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/bundle-outdated.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/dbmate-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/flatpak-remotes.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/liquibase-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/packages/unzip.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/profiling/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/profiling/perf-counters.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-analyze.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-info.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-optimize.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-power.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/scientific/doe-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/aureport.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/fail2ban-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/gpg-card-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/gpg-list-keys.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/keytool-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/nmap.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/openssl-asn1parse.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/semanage-boolean.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/sshd-t.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/systemd-analyze-security.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/security/vault-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/csv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/dns-records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/exposition-format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/go-struct.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/grafana-alerts.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/grouped-rows.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/har.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/ini-sections.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/inline-kv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/json-array.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/json.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/jsonl.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/key-value.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-pairs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-report.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/kv-under-group.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/llm-template.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/pivot-stats.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/prometheus-query.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/protobuf-text.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/psql-expanded.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/section-tables.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/snmp-output.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/toml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/tree-view.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/tsv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/xml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/structured/yaml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/R-version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ansible-inventory-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ansible-version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/bcc-funccount.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/binnacle-severity-report.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/bpftrace.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/elixir-version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/fossil-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/fossil-timeline.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/free.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-annex-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-bisect-log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-branch-vv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-log-graph.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-log-stat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/git-worktree-list-porcelain.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/gpg-list-packets.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/iftop.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/iotop.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/jj-log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/jmap-histo.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/lastb.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/loginctl-list-seats.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/lscpu-parse.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/multipath-ll.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/numactl-show.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/numastat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pcp-pmstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/perf-trace.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/php-modules.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-r.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-u.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pidstat-w.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pipx-list.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pkg-config.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/pmap.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/powertop.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-devices.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-filesystems.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-net-snmp.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-net-tcp.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-pagetypeinfo.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-schedstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/proc-slabinfo.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/rc-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/samples/uname/basic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/swift-version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/sysstat.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemctl-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-analyze-critical-chain.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-analyze-time.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-cgls.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/systemd-tmpfiles-cat-config.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/top-batch.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/ulimit.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/uname.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/user-groups.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/vagrant-global-status.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/strategies/system/zypper-packages.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/bench_memory.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/bench_strategy_load.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/7z.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/R-version.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/alias-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@abbrev-label.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@asa-report.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@banner-lines.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@caption-abbrev.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@comment-header.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@data-gutters.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@footer-empty-cells.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@indented-banner.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@offset-cells.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@one-row-units.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@option-states.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@page-headers.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@space-in-cell.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@sparse-matrix.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@tab-banner.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@title-indented.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@utf8-runes.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@utf8-widths.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aligned-columns@w3c-fields.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ansible-inventory-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ansible-version.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arping.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arrow-info-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/arrow-map.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/asciigraph.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/aureport.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/banner-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/banner-sections-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bcc-funccount.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-agree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-logtriage.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-netmesh.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-reachable.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/binnacle-severity-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/biosdecode.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/block-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-dag.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@group-header.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@group-subcols.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@kv-title.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/box-table@named-border.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/boxed-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bpftrace-map.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bpftrace.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/brace-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bracket-log.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/btrfs-filesystem-show.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/bundle-outdated.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cargo-search.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cassandra-nodetool-tpstats.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/checking-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/cipher-suites.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/clickhouse-processlist.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-fields.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-fields@nmcli-terse.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-header-members.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-kv-continuation.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colon-pairs.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons@opencl-platforms.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/colons@rpm-qi.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/columnar-specs.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/count-percent-label.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/csv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/csvlook.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dash-labeled-stats.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dashed-sections.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dbmate-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dc-results.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/decode-dimms.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/decorated-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dep-tree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/describe-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/diffstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dns-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dns-records@zonefile.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/docker-ps.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-analyze.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-info.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-optimize.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-power.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/doe-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-kv@leader-before-colon.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dot-leader-row.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dotnet-list-package.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/dotted-kv-tree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/double-colon-fields.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/elixir-version.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/embedded-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/embedded-table@group-row.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/equals.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/exposition-format.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fail2ban-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fdisk.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/first-colon-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/first-word-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@dates-empties.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@equals-rule.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@footer-prompt.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@right-aligned.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@sql-footer.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fixed-width@wrapped-header.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/flatpak-remotes.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fleet-host-lines.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fossil-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/fossil-timeline.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/free.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-annex-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-bisect-log.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-branch-vv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log-graph.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log-stat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-log.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/git-worktree-list-porcelain.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version@sed.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gnu-version@vaultctl.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-mod-why.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-struct.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/go-test.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-card-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-list-keys.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/gpg-list-packets.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grafana-alerts.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/group-children.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/group-children@long.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grouped-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/grouped-rows.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/haproxy-vv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/har.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/headline-kv-blocks.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@ls-help.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@npm-run.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@rake-T.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@systemctl-help.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/help-columns@wget-help.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/histogram-buckets.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ifstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iftop.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indent-tree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indent-tree@comm-columns.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indented-colon-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/indented-hierarchy.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ini-sections.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/inline-kv-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/inline-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iostat-x.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iotop.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-maddr.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-neigh-record.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ip-xfrm-state.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf-pivot.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf-summary.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iperf3-intervals.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iptables-nat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iptables-nvL.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/iwlist-scan.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jj-log.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jmap-histo.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json-array.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json@node-inspect.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/json@node-interfaces.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/jsonl.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/key-value.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/key-value@docker-info-lists.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/keytool-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kubectl-get-all.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-pairs.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@brew-config.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@feature-grid.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@mise-doctor.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@mutt-v.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-report@xdpyinfo.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/kv-under-group.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/labeled-inline-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/labeled-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lastb.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/layout-model.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ledger-balance.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ledger-balance@multicurrency.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/line-pairs.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/line-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/liquibase-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/llm-template.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/llm-template@nested.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/loginctl-list-seats.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lscpu-parse.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lspci-line.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lspci-tv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/lsusb-v.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mariadb-innodb-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/masscan.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/middot-split.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mix-deps.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mtr-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mtr-report@asn.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/multi-bracket-log.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/multipath-ll.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mx-check.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/mx-summarize.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/name-version-suffix.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nested-colon-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/netstat-s.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nft-list-ruleset.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nmap-sn.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nmap.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-compactionstats.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-ring.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nodetool-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nslookup_mx.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/nstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numactl-show.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numastat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/numeric-lead-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/openssl-asn1parse.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/paren-tail-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/parted-print.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/path-line-content.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pcp-pmstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/perf-counters.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/perf-trace.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/php-modules.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-r.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-u.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pidstat-w.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ping-report.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ping.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-cells.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table@dash-rules.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipe-table@footer.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pipx-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pivot-stats.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pkg-config.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pkg-repo-columns.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/plan-actions.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pmap.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pnpm-why.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/powertop.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@dotnet.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@journal-short-iso.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@logback.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@markers.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@nginx-error.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@pylogging-basic.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@rustc.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prefix-message@spring.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/probe-verdict.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-devices.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-filesystems.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-dev.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-snmp.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-net-tcp.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-pagetypeinfo.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-schedstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/proc-slabinfo.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/process-progress-rows.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/progress-ledger.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/prometheus-query.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/protobuf-text.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/psql-expanded.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/psql-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/pv-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/quoted-fields.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rc-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/readelf-sections.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/repeated-lead-records.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/resolvectl-query.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/restic.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/result-blocks.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rfkill-list.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/rocm-smi-concise.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sbt-dependencytree.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-name-value.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@arp-a.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@docker-system-df.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@ipcs.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/section-tables@iptables-chains.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sectioned-fields.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/semanage-boolean.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/semicolon-values.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/smartctl-selftest.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/snmp-output.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ssh-keyscan.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sshd-t.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sslscan.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/stat-file.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/subject-field-value.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/super-header-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/swift-version.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/syslog.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/syslog@traceback.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/sysstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemctl-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-critical-chain.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-security.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-analyze-time.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-cgls.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/systemd-tmpfiles-cat-config.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tcpdump-summary.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/terraform-plan-actions.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/text-lines.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/toml.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/top-batch.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/trailing-table.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tree-view.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv@empty-cells.tsv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/tsv@headerless-repeats.tsv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap@comments-gaps.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-col-gap@header-anchored.txt.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/two-space-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/ulimit.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/uname.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/unspaced-colon-kv.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/unzip.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/user-groups.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vagrant-global-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vault-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/version-line.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vertical-line.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/vnstat.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/xfs-info.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/xml.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/yaml.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/zpool-status.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/golden/zypper-packages.txt +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/helpers.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/run_tests.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_batch_mode.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_batch_summary.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_big_input_paths.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_chain_dataflow.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_consistency.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_coverage.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_critique_fixes.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_cross_strategy.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_dedup_advanced.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_dispatch_oversized_empty_replay.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_edge_cases.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_emit_meta.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_encoding.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_engine_defects.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_error_paths.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_extract_cli.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_field_filter.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_flag_combinations.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_format_claims.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_generic_mode.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_gutter_grid.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_interactive_mode.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_interface.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_malformed.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_merged_strategies.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_multi_mode.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_new_features.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_performance.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_plugin_dir.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_progress.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_provostrc.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_quote_json_glob_sed.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_rank.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_replay.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_search.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_self_validation.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_snapshot_regression.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_aligned_columns.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_beegfs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_block_records.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_colons.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_csv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_dc_results.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_docker_ps.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_equals.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_exposition_format.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_fixed_width.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_free.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_git_log.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_har.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_indented_hierarchy.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_json.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_jsonl.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_key_value.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_kv_pairs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_mount.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_nmap.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_prefix_message.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_protobuf_text.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_syslog.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_tar_listing.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_toml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_tsv.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_vertical_line.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_xml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_strategy_yaml.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_streaming_multiline.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_tools.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_v32_features.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_v34_features.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/test_validation.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tests/verify_strategy_outputs.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tools/CHANGELOG.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tools/new_strategy.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/extract/tools/review_strategy.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_output.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_pager.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_progress.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_rc.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_suggest.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/lib/provost_version.sh +0 -0
- {provost-2.2.0 → provost-2.3.0}/src/provost_data/__main__.py +0 -0
- {provost-2.2.0 → provost-2.3.0}/tests/benchmark/README.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/tests/benchmark/round4/variants/README.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/tests/corpus/README.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/tests/corpus/text-inputs/README.md +0 -0
- {provost-2.2.0 → provost-2.3.0}/transform/melt.sh +0 -0
- {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.
|
|
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]
|