cc-transcript 14.37.0__tar.gz → 14.37.2__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.
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/PKG-INFO +1 -1
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/pyproject.toml +1 -1
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/Cargo.toml +0 -4
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/lib.rs +22 -19
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot.rs +25 -8
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_root_warm.rs +36 -1
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/python.rs +5 -1
- cc_transcript-14.37.0/rust/crates/cli/src/main.rs +0 -4
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/Cargo.lock +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/Cargo.toml +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/LICENSE +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/README.md +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/command.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/context.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/models.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/query.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/render.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/request.schema.json +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_checkpoint.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep_stream.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep_stream_tests.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_index.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_projection.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_stream.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_activity.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_labels.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_ledger.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_ledger_tests.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_projection.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/toolcall.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/tests/sonic_arena_model.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/tests/std_allocation_model.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/py/src/watch.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.37.
|
|
3
|
+
version = "14.37.2" # informational — releases stamp the version from the git tag
|
|
4
4
|
description = "Grep every Claude Code session you've ever run."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "PolyForm-Noncommercial-1.0.0"
|
|
@@ -4,10 +4,6 @@ version = "0.9.0"
|
|
|
4
4
|
edition = "2021"
|
|
5
5
|
publish = false
|
|
6
6
|
|
|
7
|
-
[[bin]]
|
|
8
|
-
name = "cc-transcript"
|
|
9
|
-
path = "src/main.rs"
|
|
10
|
-
|
|
11
7
|
[dependencies]
|
|
12
8
|
cc-transcript-core = { path = "../core", features = ["command", "sqlite"] }
|
|
13
9
|
clap = { version = "4.5", features = ["derive", "env", "string"] }
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
//! The cc-transcript CLI: the clap twin of the retired click tree (cli.py),
|
|
2
|
-
//!
|
|
1
|
+
//! The cc-transcript CLI: the clap twin of the retired click tree (cli.py), run by the
|
|
2
|
+
//! `_native.cli_main` pyfunction.
|
|
3
3
|
|
|
4
4
|
use std::path::PathBuf;
|
|
5
5
|
use std::sync::atomic::{AtomicBool, Ordering};
|
|
6
|
+
use std::sync::OnceLock;
|
|
6
7
|
|
|
7
8
|
use clap::error::ErrorKind as ClapErrorKind;
|
|
8
|
-
use clap::{Args, Parser, Subcommand};
|
|
9
|
+
use clap::{Args, CommandFactory, FromArgMatches, Parser, Subcommand};
|
|
9
10
|
|
|
10
11
|
pub mod commands;
|
|
11
12
|
pub mod output;
|
|
@@ -18,6 +19,15 @@ use output::CliExit;
|
|
|
18
19
|
/// (cli.py watch_ catches KeyboardInterrupt); outside watch it means exit 130.
|
|
19
20
|
pub static WATCH_ACTIVE: AtomicBool = AtomicBool::new(false);
|
|
20
21
|
pub static WATCH_INTERRUPTED: AtomicBool = AtomicBool::new(false);
|
|
22
|
+
|
|
23
|
+
static VERSION: OnceLock<String> = OnceLock::new();
|
|
24
|
+
|
|
25
|
+
fn pkg_version() -> &'static str {
|
|
26
|
+
VERSION
|
|
27
|
+
.get()
|
|
28
|
+
.expect("run records the version before dispatch")
|
|
29
|
+
}
|
|
30
|
+
|
|
21
31
|
pub(crate) static SCAN_CANCELLATION: std::sync::Mutex<
|
|
22
32
|
Option<cc_transcript_core::snapshot::Cancellation>,
|
|
23
33
|
> = std::sync::Mutex::new(None);
|
|
@@ -40,16 +50,6 @@ pub fn install_sigint_handler() {
|
|
|
40
50
|
});
|
|
41
51
|
}
|
|
42
52
|
|
|
43
|
-
fn pkg_version() -> String {
|
|
44
|
-
let pyproject = include_str!("../../../../pyproject.toml");
|
|
45
|
-
pyproject
|
|
46
|
-
.lines()
|
|
47
|
-
.find_map(|line| line.strip_prefix("version = \""))
|
|
48
|
-
.and_then(|rest| rest.strip_suffix('"'))
|
|
49
|
-
.unwrap_or(env!("CARGO_PKG_VERSION"))
|
|
50
|
-
.to_string()
|
|
51
|
-
}
|
|
52
|
-
|
|
53
53
|
const KIND_CHOICES: [&str; 6] = ["user", "assistant", "system", "mode", "other", "attachment"];
|
|
54
54
|
const WHERE_CHOICES: [&str; 3] = ["text", "thinking", "tools"];
|
|
55
55
|
const LIST_PROVIDER_CHOICES: [&str; 3] = ["claude", "codex", "all"];
|
|
@@ -78,7 +78,6 @@ const CORPUS_INCOMPATIBLE: [&str; 15] = [
|
|
|
78
78
|
#[derive(Parser)]
|
|
79
79
|
#[command(
|
|
80
80
|
name = "cc-transcript",
|
|
81
|
-
version = pkg_version(),
|
|
82
81
|
about = "Investigate Claude Code transcripts: list, show, grep, and stats.",
|
|
83
82
|
disable_help_subcommand = true
|
|
84
83
|
)]
|
|
@@ -498,10 +497,14 @@ pub enum CorrectionsCmd {
|
|
|
498
497
|
Sql { statement: String },
|
|
499
498
|
}
|
|
500
499
|
|
|
501
|
-
/// Full-argv entry
|
|
502
|
-
///
|
|
503
|
-
pub fn run(argv: Vec<String
|
|
504
|
-
let
|
|
500
|
+
/// Full-argv entry for `_native.cli_main`: parses, dispatches, and returns the exit
|
|
501
|
+
/// code verbatim. `version` is what `--version` prints.
|
|
502
|
+
pub fn run(argv: Vec<String>, version: String) -> i32 {
|
|
503
|
+
let parsed = Cli::command()
|
|
504
|
+
.version(VERSION.get_or_init(|| version).as_str())
|
|
505
|
+
.try_get_matches_from(&argv)
|
|
506
|
+
.and_then(|matches| Cli::from_arg_matches(&matches));
|
|
507
|
+
let cli = match parsed {
|
|
505
508
|
Ok(cli) => cli,
|
|
506
509
|
Err(err) => {
|
|
507
510
|
let code = match err.kind() {
|
|
@@ -514,7 +517,7 @@ pub fn run(argv: Vec<String>) -> i32 {
|
|
|
514
517
|
};
|
|
515
518
|
let Some(cmd) = cli.cmd else {
|
|
516
519
|
// click: a bare group invocation prints help to stderr and exits 2.
|
|
517
|
-
let mut help =
|
|
520
|
+
let mut help = Cli::command();
|
|
518
521
|
eprint!("{}", help.render_long_help());
|
|
519
522
|
return 2;
|
|
520
523
|
};
|
|
@@ -204,6 +204,10 @@ impl SourceStamp {
|
|
|
204
204
|
self
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
pub fn window_bytes(&self) -> u64 {
|
|
208
|
+
self.size - self.identity.window_base
|
|
209
|
+
}
|
|
210
|
+
|
|
207
211
|
pub fn viewed_as(mut self, pinned: SourceStamp) -> Self {
|
|
208
212
|
self.identity.window_base = pinned.identity.window_base;
|
|
209
213
|
self
|
|
@@ -6765,13 +6769,10 @@ impl NativeStore {
|
|
|
6765
6769
|
return Err(invalid("source must be a regular file"));
|
|
6766
6770
|
}
|
|
6767
6771
|
let stamp = SourceStamp::of(&metadata);
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
|
|
6772
|
-
));
|
|
6773
|
-
}
|
|
6774
|
-
let budget = limits.max_source_read_bytes.min(stamp.size as usize);
|
|
6772
|
+
let budget = limits
|
|
6773
|
+
.max_source_read_bytes
|
|
6774
|
+
.min(self.config.source)
|
|
6775
|
+
.min(stamp.size as usize);
|
|
6775
6776
|
let mut reservation = self.reserve_projection(context, 0)?;
|
|
6776
6777
|
let mut pending: Vec<u8> = Vec::new();
|
|
6777
6778
|
let mut pending_start = stamp.size;
|
|
@@ -6962,7 +6963,7 @@ impl NativeStore {
|
|
|
6962
6963
|
}
|
|
6963
6964
|
let window = tail_bytes(request)?;
|
|
6964
6965
|
let stamp = SourceStamp::of(&metadata).windowed(window);
|
|
6965
|
-
if stamp.
|
|
6966
|
+
if stamp.window_bytes() > self.config.source as u64 {
|
|
6966
6967
|
return Err(SnapshotError::new(
|
|
6967
6968
|
Status::SourceLimit,
|
|
6968
6969
|
"source exceeds owner bound",
|
|
@@ -11875,6 +11876,22 @@ mod tests {
|
|
|
11875
11876
|
);
|
|
11876
11877
|
}
|
|
11877
11878
|
|
|
11879
|
+
#[test]
|
|
11880
|
+
fn tail_reads_the_newest_events_of_a_source_past_the_owner_bound() {
|
|
11881
|
+
let source = Source::new(&users(0..50));
|
|
11882
|
+
let store = NativeStore::new(&json!({"max_read_bytes_per_step":64,"max_source_bytes":users(40..50).len(),"max_retained_bytes":32*1024*1024,"reserved_hook_accounted_bytes":4096})).unwrap();
|
|
11883
|
+
let owner = context("a");
|
|
11884
|
+
let response = store.request(
|
|
11885
|
+
&tail_request(&source.path, 5, 1024 * 1024),
|
|
11886
|
+
&owner,
|
|
11887
|
+
&Cancellation::default(),
|
|
11888
|
+
);
|
|
11889
|
+
assert_eq!(response["status"].as_str(), Some("ok"), "{response:?}");
|
|
11890
|
+
assert_eq!(tail_uuids(&response), ["45", "46", "47", "48", "49"]);
|
|
11891
|
+
let read = response["usage"]["source_bytes_read"].as_u64().unwrap() as usize;
|
|
11892
|
+
assert!(read <= users(40..50).len(), "{read}");
|
|
11893
|
+
}
|
|
11894
|
+
|
|
11878
11895
|
#[test]
|
|
11879
11896
|
fn tail_refuses_codex_sources_and_counts_outside_the_budgets() {
|
|
11880
11897
|
let codex = Source::new(
|
|
@@ -23,7 +23,7 @@ impl NativeStore {
|
|
|
23
23
|
return Err(invalid("root source must be a regular file"));
|
|
24
24
|
}
|
|
25
25
|
let current = SourceStamp::of(&metadata).windowed(tail_bytes(request)?);
|
|
26
|
-
if current.
|
|
26
|
+
if current.window_bytes() > self.config.source as u64 {
|
|
27
27
|
return Err(SnapshotError::new(
|
|
28
28
|
Status::SourceLimit,
|
|
29
29
|
"root source exceeds owner bound",
|
|
@@ -346,6 +346,41 @@ mod root_warm_tests {
|
|
|
346
346
|
std::fs::remove_dir_all(directory).unwrap();
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
+
#[test]
|
|
350
|
+
fn a_trailing_window_of_a_root_past_the_source_bound_warms_and_acquires() {
|
|
351
|
+
let (directory, path) = source(4 * 1024 * 1024);
|
|
352
|
+
let bound = std::fs::metadata(&path).unwrap().len() - 1;
|
|
353
|
+
let store = NativeStore::new(&json!({"max_read_bytes_per_step":256*1024,"max_source_bytes":bound,"max_retained_bytes":128*1024*1024,"reserved_hook_accounted_bytes":4096,"max_leases":16,"reserved_hook_leases":1})).unwrap();
|
|
354
|
+
let context = context("bounded-window");
|
|
355
|
+
let mut request = warm_request(&path, 256 * 1024);
|
|
356
|
+
request.insert("tail_bytes", json!(256 * 1024));
|
|
357
|
+
let mut finished = false;
|
|
358
|
+
for _ in 0..24 {
|
|
359
|
+
let reply = store.request(&request, &context, &Cancellation::default());
|
|
360
|
+
assert_eq!(reply["status"].as_str(), Some("ok"), "{reply:?}");
|
|
361
|
+
if reply["data"]["complete"].as_bool() == Some(true) {
|
|
362
|
+
finished = true;
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
assert!(finished);
|
|
367
|
+
let mut acquire = request.clone();
|
|
368
|
+
acquire.insert("operation", json!("acquire"));
|
|
369
|
+
let acquired = store.request(&acquire, &context, &Cancellation::default());
|
|
370
|
+
assert_eq!(acquired["status"].as_str(), Some("ok"), "{acquired:?}");
|
|
371
|
+
acquire.insert("tail_bytes", json!(null));
|
|
372
|
+
let whole = store.request(&acquire, &context, &Cancellation::default());
|
|
373
|
+
assert_eq!(whole["status"].as_str(), Some("source_limit"), "{whole:?}");
|
|
374
|
+
assert_eq!(whole["reason"].as_str(), Some("source exceeds owner bound"));
|
|
375
|
+
let whole_warm = store.request(
|
|
376
|
+
&warm_request(&path, 256 * 1024),
|
|
377
|
+
&context,
|
|
378
|
+
&Cancellation::default(),
|
|
379
|
+
);
|
|
380
|
+
assert_eq!(whole_warm["status"].as_str(), Some("source_limit"), "{whole_warm:?}");
|
|
381
|
+
std::fs::remove_dir_all(directory).unwrap();
|
|
382
|
+
}
|
|
383
|
+
|
|
349
384
|
#[test]
|
|
350
385
|
fn a_base_advance_supersedes_the_previous_window_pin() {
|
|
351
386
|
let (directory, path) = source(4 * 1024 * 1024);
|
|
@@ -1031,8 +1031,12 @@ fn tool_facts<'py>(
|
|
|
1031
1031
|
#[pyfunction]
|
|
1032
1032
|
fn cli_main(py: Python<'_>) -> PyResult<i32> {
|
|
1033
1033
|
let argv: Vec<String> = py.import("sys")?.getattr("argv")?.extract()?;
|
|
1034
|
+
let version: String = py
|
|
1035
|
+
.import("importlib.metadata")?
|
|
1036
|
+
.call_method1("version", ("cc-transcript",))?
|
|
1037
|
+
.extract()?;
|
|
1034
1038
|
cc_transcript_cli::install_sigint_handler();
|
|
1035
|
-
Ok(py.detach(|| cc_transcript_cli::run(argv)))
|
|
1039
|
+
Ok(py.detach(|| cc_transcript_cli::run(argv, version)))
|
|
1036
1040
|
}
|
|
1037
1041
|
|
|
1038
1042
|
#[pyo3_stub_gen::derive::gen_stub_pyfunction]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/afinn-en-165.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/sentiment/data/domain_overrides.tsv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/config.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/context.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/request.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/cc_transcript/snapshot_schema/response.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/literals/corrections.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/scan_grep_stream_tests.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_codex_append.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_ledger_tests.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_disk.rs
RENAMED
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_prepared_service.rs
RENAMED
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/src/snapshot_regressions.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.37.0 → cc_transcript-14.37.2}/rust/crates/core/tests/std_allocation_model.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|