cc-transcript 14.32.1__tar.gz → 14.33.1__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.32.1 → cc_transcript-14.33.1}/PKG-INFO +1 -1
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/request.schema.json +6 -1
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/pyproject.toml +1 -1
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot.rs +58 -3
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_projection.rs +34 -7
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/toolcall.rs +39 -19
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/Cargo.lock +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/Cargo.toml +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/LICENSE +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/README.md +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/command.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/context.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/models.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/query.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/render.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/Cargo.toml +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/lib.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/main.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_activity.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_labels.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/python.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/py/src/watch.rs +0 -0
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/request.schema.json
RENAMED
|
@@ -2006,6 +2006,10 @@
|
|
|
2006
2006
|
"title": "Origin",
|
|
2007
2007
|
"type": "string"
|
|
2008
2008
|
},
|
|
2009
|
+
"thinking": {
|
|
2010
|
+
"title": "Thinking",
|
|
2011
|
+
"type": "boolean"
|
|
2012
|
+
},
|
|
2009
2013
|
"window": {
|
|
2010
2014
|
"anyOf": [
|
|
2011
2015
|
{
|
|
@@ -2024,7 +2028,8 @@
|
|
|
2024
2028
|
"required": [
|
|
2025
2029
|
"kind",
|
|
2026
2030
|
"window",
|
|
2027
|
-
"origin"
|
|
2031
|
+
"origin",
|
|
2032
|
+
"thinking"
|
|
2028
2033
|
],
|
|
2029
2034
|
"title": "SignalTexts",
|
|
2030
2035
|
"type": "object"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.
|
|
3
|
+
version = "14.33.1" # 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"
|
|
@@ -1325,14 +1325,24 @@ impl NativeStore {
|
|
|
1325
1325
|
context: &Value,
|
|
1326
1326
|
) -> Result<String, SnapshotError> {
|
|
1327
1327
|
self.authority(context, None)?;
|
|
1328
|
+
let definitions =
|
|
1329
|
+
crate::toolcall::ToolRegistrySnapshot::specs_from_json(specs).map_err(invalid)?;
|
|
1330
|
+
let fingerprint = crate::toolcall::ToolRegistrySnapshot::fingerprint_of(&definitions);
|
|
1331
|
+
if self
|
|
1332
|
+
.state
|
|
1333
|
+
.lock()
|
|
1334
|
+
.expect("snapshot state")
|
|
1335
|
+
.registries
|
|
1336
|
+
.contains_key(&fingerprint)
|
|
1337
|
+
{
|
|
1338
|
+
return Ok(fingerprint);
|
|
1339
|
+
}
|
|
1328
1340
|
let charge = crate::snapshot_memory::value_charge(specs);
|
|
1329
1341
|
let reserve = (charge.owned_capacity_bytes + charge.opaque_dom_accounted_bytes)
|
|
1330
1342
|
.saturating_mul(4)
|
|
1331
1343
|
.saturating_add(64 * 1024);
|
|
1332
1344
|
let mut reservation = self.reserve_projection(context, reserve)?;
|
|
1333
|
-
let registry =
|
|
1334
|
-
crate::toolcall::ToolRegistrySnapshot::from_specs_json(specs).map_err(invalid)?;
|
|
1335
|
-
let fingerprint = registry.fingerprint().to_owned();
|
|
1345
|
+
let registry = crate::toolcall::ToolRegistrySnapshot::from_specs(definitions);
|
|
1336
1346
|
let allocations = registry.accounted_allocations();
|
|
1337
1347
|
let bytes = allocations.iter().map(|(_, bytes)| *bytes).sum::<usize>()
|
|
1338
1348
|
+ allocations.capacity() * size_of::<(usize, usize)>()
|
|
@@ -11384,4 +11394,49 @@ mod tests {
|
|
|
11384
11394
|
));
|
|
11385
11395
|
assert_eq!(state.transient_bytes, 0);
|
|
11386
11396
|
}
|
|
11397
|
+
|
|
11398
|
+
#[test]
|
|
11399
|
+
fn reregistering_an_interned_registry_reserves_nothing() {
|
|
11400
|
+
let store = NativeStore::new(
|
|
11401
|
+
&json!({"max_retained_bytes":8*1024*1024,"reserved_hook_accounted_bytes":8*1024*1024}),
|
|
11402
|
+
)
|
|
11403
|
+
.unwrap();
|
|
11404
|
+
let hook = context("owner");
|
|
11405
|
+
let mut review = hook.clone();
|
|
11406
|
+
review.insert("admission", json!("review"));
|
|
11407
|
+
let other_uid = json!({"claimant":"owner","admission":"hook","authority":{"kind":"user","effective_uid":"0"},"registry_generation":hook["registry_generation"]});
|
|
11408
|
+
let specs = json!([{"name":"fetch","behaves_like":"Read","span_edit":null}]);
|
|
11409
|
+
let reordered = json!([{"span_edit":null,"behaves_like":"Read","name":"fetch"}]);
|
|
11410
|
+
let fingerprint = store.register_tool_registry(&specs, &hook).unwrap();
|
|
11411
|
+
let registered = store.state.lock().unwrap().registries.len();
|
|
11412
|
+
let first = Arc::clone(&store.state.lock().unwrap().registries[&fingerprint].snapshot);
|
|
11413
|
+
assert_eq!(
|
|
11414
|
+
store.register_tool_registry(&reordered, &review).unwrap(),
|
|
11415
|
+
fingerprint
|
|
11416
|
+
);
|
|
11417
|
+
assert_eq!(
|
|
11418
|
+
store
|
|
11419
|
+
.register_tool_registry(&specs, &other_uid)
|
|
11420
|
+
.unwrap_err()
|
|
11421
|
+
.status,
|
|
11422
|
+
Status::PermissionDenied
|
|
11423
|
+
);
|
|
11424
|
+
assert_eq!(
|
|
11425
|
+
store
|
|
11426
|
+
.register_tool_registry(
|
|
11427
|
+
&json!([{"name":"","behaves_like":"Read","span_edit":null}]),
|
|
11428
|
+
&hook
|
|
11429
|
+
)
|
|
11430
|
+
.unwrap_err()
|
|
11431
|
+
.status,
|
|
11432
|
+
Status::InvalidRequest
|
|
11433
|
+
);
|
|
11434
|
+
let state = store.state.lock().unwrap();
|
|
11435
|
+
assert_eq!(state.registries.len(), registered);
|
|
11436
|
+
assert!(Arc::ptr_eq(
|
|
11437
|
+
&first,
|
|
11438
|
+
&state.registries[&fingerprint].snapshot
|
|
11439
|
+
));
|
|
11440
|
+
assert_eq!(state.transient_bytes, 0);
|
|
11441
|
+
}
|
|
11387
11442
|
}
|
|
@@ -1160,6 +1160,7 @@ fn signal_event<'a>(
|
|
|
1160
1160
|
work: &mut Work<'a, '_>,
|
|
1161
1161
|
index: usize,
|
|
1162
1162
|
origin: &str,
|
|
1163
|
+
thinking: bool,
|
|
1163
1164
|
) -> Result<Vec<Vec<&'a str>>, SnapshotError> {
|
|
1164
1165
|
work.charge_range(index..index + 1)?;
|
|
1165
1166
|
let event = work.snapshot.entry(index);
|
|
@@ -1193,7 +1194,7 @@ fn signal_event<'a>(
|
|
|
1193
1194
|
for (ordinal, block) in event.blocks().iter().enumerate() {
|
|
1194
1195
|
work.cancel.check(work.limits.deadline_unix_ms)?;
|
|
1195
1196
|
match block {
|
|
1196
|
-
ContentBlock::Thinking(text) if !text.is_empty() => plans.push(vec![text]),
|
|
1197
|
+
ContentBlock::Thinking(text) if thinking && !text.is_empty() => plans.push(vec![text]),
|
|
1197
1198
|
ContentBlock::ToolUse(tool) => {
|
|
1198
1199
|
let call = work
|
|
1199
1200
|
.snapshot
|
|
@@ -1258,6 +1259,9 @@ fn signal_query(
|
|
|
1258
1259
|
if !["any", "assistant"].contains(&origin) {
|
|
1259
1260
|
return Err(invalid("invalid signal origin"));
|
|
1260
1261
|
}
|
|
1262
|
+
let thinking = field(query, "thinking")?
|
|
1263
|
+
.as_bool()
|
|
1264
|
+
.ok_or_else(|| invalid("thinking must be boolean"))?;
|
|
1261
1265
|
let window = field(query, "window")?;
|
|
1262
1266
|
let mut plans = Vec::new();
|
|
1263
1267
|
if window.as_str() == Some("current_turn") {
|
|
@@ -1272,7 +1276,7 @@ fn signal_query(
|
|
|
1272
1276
|
.max(work.snapshot.activity.turn_bounds(turn).unwrap().start);
|
|
1273
1277
|
}
|
|
1274
1278
|
for index in range {
|
|
1275
|
-
plans.extend(signal_event(work, index, origin)?);
|
|
1279
|
+
plans.extend(signal_event(work, index, origin, thinking)?);
|
|
1276
1280
|
}
|
|
1277
1281
|
} else {
|
|
1278
1282
|
let count = count(query, "window")?;
|
|
@@ -1282,7 +1286,7 @@ fn signal_query(
|
|
|
1282
1286
|
if length >= count {
|
|
1283
1287
|
break;
|
|
1284
1288
|
}
|
|
1285
|
-
let texts = signal_event(work, index, origin)?;
|
|
1289
|
+
let texts = signal_event(work, index, origin, thinking)?;
|
|
1286
1290
|
length += texts.len();
|
|
1287
1291
|
events.push(texts);
|
|
1288
1292
|
}
|
|
@@ -2973,7 +2977,7 @@ mod tests {
|
|
|
2973
2977
|
let all = run(
|
|
2974
2978
|
&snap,
|
|
2975
2979
|
&request(
|
|
2976
|
-
json!({"kind":"signal_texts","window":"current_turn","origin":"any"}),
|
|
2980
|
+
json!({"kind":"signal_texts","window":"current_turn","origin":"any","thinking":true}),
|
|
2977
2981
|
json!([]),
|
|
2978
2982
|
),
|
|
2979
2983
|
);
|
|
@@ -2998,7 +3002,7 @@ mod tests {
|
|
|
2998
3002
|
let last = run(
|
|
2999
3003
|
&snap,
|
|
3000
3004
|
&request(
|
|
3001
|
-
json!({"kind":"signal_texts","window":3,"origin":"assistant"}),
|
|
3005
|
+
json!({"kind":"signal_texts","window":3,"origin":"assistant","thinking":true}),
|
|
3002
3006
|
json!([]),
|
|
3003
3007
|
),
|
|
3004
3008
|
);
|
|
@@ -3009,6 +3013,29 @@ mod tests {
|
|
|
3009
3013
|
.map(|value| value.as_str().unwrap())
|
|
3010
3014
|
.collect();
|
|
3011
3015
|
assert_eq!(actual, ["finding failure", "second", "todo subject"]);
|
|
3016
|
+
let prose = run(
|
|
3017
|
+
&snap,
|
|
3018
|
+
&request(
|
|
3019
|
+
json!({"kind":"signal_texts","window":"current_turn","origin":"assistant","thinking":false}),
|
|
3020
|
+
json!([]),
|
|
3021
|
+
),
|
|
3022
|
+
);
|
|
3023
|
+
let actual: Vec<_> = prose.data["values"]
|
|
3024
|
+
.as_array()
|
|
3025
|
+
.unwrap()
|
|
3026
|
+
.iter()
|
|
3027
|
+
.map(|value| value.as_str().unwrap())
|
|
3028
|
+
.collect();
|
|
3029
|
+
assert_eq!(
|
|
3030
|
+
actual,
|
|
3031
|
+
[
|
|
3032
|
+
"visible",
|
|
3033
|
+
"task details",
|
|
3034
|
+
"finding failure",
|
|
3035
|
+
"second",
|
|
3036
|
+
"todo subject"
|
|
3037
|
+
]
|
|
3038
|
+
);
|
|
3012
3039
|
}
|
|
3013
3040
|
|
|
3014
3041
|
#[test]
|
|
@@ -3025,7 +3052,7 @@ mod tests {
|
|
|
3025
3052
|
let result = run(
|
|
3026
3053
|
&snap,
|
|
3027
3054
|
&request(
|
|
3028
|
-
json!({"kind":"signal_texts","window":10,"origin":"any"}),
|
|
3055
|
+
json!({"kind":"signal_texts","window":10,"origin":"any","thinking":true}),
|
|
3029
3056
|
json!([]),
|
|
3030
3057
|
),
|
|
3031
3058
|
);
|
|
@@ -3039,7 +3066,7 @@ mod tests {
|
|
|
3039
3066
|
let zero = run(
|
|
3040
3067
|
&snap,
|
|
3041
3068
|
&request(
|
|
3042
|
-
json!({"kind":"signal_texts","window":0,"origin":"any"}),
|
|
3069
|
+
json!({"kind":"signal_texts","window":0,"origin":"any","thinking":true}),
|
|
3043
3070
|
json!([]),
|
|
3044
3071
|
),
|
|
3045
3072
|
);
|
|
@@ -127,15 +127,21 @@ pub struct ToolRegistrySnapshot {
|
|
|
127
127
|
|
|
128
128
|
impl ToolRegistrySnapshot {
|
|
129
129
|
pub fn from_specs(specs: HashMap<String, McpToolSpec>) -> Arc<Self> {
|
|
130
|
-
let
|
|
130
|
+
let fingerprint = Self::fingerprint_of(&specs);
|
|
131
|
+
Arc::new(Self { specs, fingerprint })
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
pub fn fingerprint_of(specs: &HashMap<String, McpToolSpec>) -> String {
|
|
135
|
+
let value = sonic_rs::to_value(specs).expect("tool registry serialization");
|
|
131
136
|
let canonical = crate::ids::canonical_json(&value).expect("tool registry canonicalization");
|
|
132
|
-
|
|
133
|
-
specs,
|
|
134
|
-
fingerprint: format!("{:x}", Sha256::digest(canonical.as_bytes())),
|
|
135
|
-
})
|
|
137
|
+
format!("{:x}", Sha256::digest(canonical.as_bytes()))
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
pub fn from_specs_json(value: &Value) -> Result<Arc<Self>, String> {
|
|
141
|
+
Ok(Self::from_specs(Self::specs_from_json(value)?))
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
pub fn specs_from_json(value: &Value) -> Result<HashMap<String, McpToolSpec>, String> {
|
|
139
145
|
let definitions = value
|
|
140
146
|
.as_array()
|
|
141
147
|
.ok_or_else(|| "tool registry definitions must be a list".to_string())?;
|
|
@@ -163,20 +169,18 @@ impl ToolRegistrySnapshot {
|
|
|
163
169
|
}
|
|
164
170
|
let definitions: Vec<ToolRegistryDefinition> =
|
|
165
171
|
sonic_rs::from_value(value).map_err(|error| error.to_string())?;
|
|
166
|
-
Ok(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
.collect(),
|
|
179
|
-
))
|
|
172
|
+
Ok(definitions
|
|
173
|
+
.into_iter()
|
|
174
|
+
.map(|definition| {
|
|
175
|
+
(
|
|
176
|
+
definition.name,
|
|
177
|
+
McpToolSpec {
|
|
178
|
+
behaves_like: definition.behaves_like,
|
|
179
|
+
span_edit: definition.span_edit,
|
|
180
|
+
},
|
|
181
|
+
)
|
|
182
|
+
})
|
|
183
|
+
.collect())
|
|
180
184
|
}
|
|
181
185
|
|
|
182
186
|
pub fn capture_scoped() -> Option<Arc<Self>> {
|
|
@@ -2396,6 +2400,22 @@ mod tests {
|
|
|
2396
2400
|
assert_eq!(first.fingerprint(), reordered.fingerprint());
|
|
2397
2401
|
assert_ne!(first.fingerprint(), changed.fingerprint());
|
|
2398
2402
|
assert_eq!(first.fingerprint().len(), 64);
|
|
2403
|
+
for (raw, constructed) in [
|
|
2404
|
+
(
|
|
2405
|
+
r#"[{"name":"reader","behaves_like":"Read","span_edit":null},{"name":"writer","behaves_like":"Edit","span_edit":{"path":"file","content":"body","delete":null}}]"#,
|
|
2406
|
+
&first,
|
|
2407
|
+
),
|
|
2408
|
+
(
|
|
2409
|
+
r#"[{"name":"reader","behaves_like":"Read","span_edit":null},{"name":"writer","behaves_like":"Edit","span_edit":{"path":"file","content":"changed","delete":null}}]"#,
|
|
2410
|
+
&changed,
|
|
2411
|
+
),
|
|
2412
|
+
] {
|
|
2413
|
+
let specs = ToolRegistrySnapshot::specs_from_json(&obj(raw)).unwrap();
|
|
2414
|
+
assert_eq!(
|
|
2415
|
+
ToolRegistrySnapshot::fingerprint_of(&specs),
|
|
2416
|
+
constructed.fingerprint()
|
|
2417
|
+
);
|
|
2418
|
+
}
|
|
2399
2419
|
assert_eq!(
|
|
2400
2420
|
ToolRegistrySnapshot::from_specs_json(&obj("[]"))
|
|
2401
2421
|
.unwrap()
|
|
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.32.1 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/afinn-en-165.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/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.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/config.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/context.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/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
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_codex_append.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_disk.rs
RENAMED
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_service.rs
RENAMED
|
File without changes
|
{cc_transcript-14.32.1 → cc_transcript-14.33.1}/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
|
|
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
|