cc-transcript 14.33.0__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.33.0 → cc_transcript-14.33.1}/PKG-INFO +1 -1
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/pyproject.toml +1 -1
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot.rs +58 -3
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/toolcall.rs +39 -19
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/Cargo.lock +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/Cargo.toml +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/LICENSE +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/README.md +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/__init__.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/__init__.pyi +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/_native.pyi +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/activity.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/activity_probe.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/builders.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/codex.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/command.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/context.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/corrections.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/cost.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/decision_store.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/decisions.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/discovery.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/disktruth.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/evidence.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/extract/__init__.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/extract/correct.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/facts.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/filterspec.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/heartbeats.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/ids.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/judge/__init__.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/judge/llm.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/judge/similar.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/judge/verdicts.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/ledger.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/literals.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/__init__.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/candidates.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/confidence.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/engine.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/formats.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/sampling.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/signals.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/sourcekind.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/spec.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/mining/store.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/models.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/nlp.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/notifications.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/parser.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/py.typed +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/query.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/render.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/__init__.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/buckets.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/engine.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/lexicon.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/scorespec.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/config.schema.json +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/context.schema.json +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/request.schema.json +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/response.schema.json +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshots.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/synthetic.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/tools.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/watch.py +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/Cargo.toml +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/blame.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/corpus.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/corrections.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/digest.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/facts.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/grep.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/list.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/mod.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/show.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/slice.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/stats.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/commands/watch.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/lib.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/main.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/output.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/target.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/cli/src/timearg.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/Cargo.toml +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/benches/parse.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/benches/render.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/benches/toolcall.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/activity.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/actor.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/blame.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/buckets.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/discovery.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/lower.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/mod.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/parse.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/probe.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/protocol.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/codex/types.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/command.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/context.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/corrections.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/cost.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/discovery.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/facts.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/feedback.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/filter.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/gateway.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/ids.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/judge.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/lib.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/command.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/corrections.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/feedback.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/mining.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/mod.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/literals/protocol.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/notifications.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/parse.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/protocol.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/pystr.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/query.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/render.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/rng.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/scan.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/scan_grep.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/scan_regressions.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/schema.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_activity.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_codec.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_labels.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_memory.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_owned.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_disk.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_service.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_projection.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_regressions.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_text.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/sqlite.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/types.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/value.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/watch.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/Cargo.toml +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/build.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/actor_bridge.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/bin/stub_gen.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/codex.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/command.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/context.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/corrections.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/discovery.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/feedback.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/judge.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/lexicon.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/lib.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/mining.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/nlp.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/python.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/render.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/score.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/snapshot_decode.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/snapshots.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/sqlite.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/toolcall.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/attachment.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/blocks.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/command.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/convert.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/dunder.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/events.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/meta.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/mod.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/print.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/store.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/system.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/toolcall.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/toolresult.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/views/transcript.rs +0 -0
- {cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/py/src/watch.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cc-transcript"
|
|
3
|
-
version = "14.33.
|
|
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
|
}
|
|
@@ -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.33.0 → cc_transcript-14.33.1}/cc_transcript/sentiment/data/afinn-en-165.tsv
RENAMED
|
File without changes
|
{cc_transcript-14.33.0 → 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.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/config.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/context.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.33.0 → cc_transcript-14.33.1}/cc_transcript/snapshot_schema/request.schema.json
RENAMED
|
File without changes
|
{cc_transcript-14.33.0 → 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.33.0 → 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.33.0 → 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.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_disk.rs
RENAMED
|
File without changes
|
{cc_transcript-14.33.0 → cc_transcript-14.33.1}/rust/crates/core/src/snapshot_prepared_service.rs
RENAMED
|
File without changes
|
|
File without changes
|
{cc_transcript-14.33.0 → 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
|