cc-transcript 14.40.1__tar.gz → 14.42.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/PKG-INFO +1 -1
  2. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshot_schema/config.schema.json +15 -0
  3. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshot_schema/request.schema.json +115 -8
  4. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshot_schema/response.schema.json +45 -0
  5. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/pyproject.toml +1 -1
  6. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot.rs +92 -6
  7. cc_transcript-14.42.0/rust/crates/core/src/snapshot_prepared_disk.rs +3403 -0
  8. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_prepared_service.rs +229 -5
  9. cc_transcript-14.42.0/rust/crates/core/src/snapshot_regressions.rs +1324 -0
  10. cc_transcript-14.40.1/rust/crates/core/src/snapshot_prepared_disk.rs +0 -1908
  11. cc_transcript-14.40.1/rust/crates/core/src/snapshot_regressions.rs +0 -505
  12. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/Cargo.lock +0 -0
  13. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/Cargo.toml +0 -0
  14. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/LICENSE +0 -0
  15. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/README.md +0 -0
  16. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/__init__.py +0 -0
  17. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/__init__.pyi +0 -0
  18. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/_native.pyi +0 -0
  19. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/activity.py +0 -0
  20. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/activity_probe.py +0 -0
  21. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/builders.py +0 -0
  22. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/codex.py +0 -0
  23. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/command.py +0 -0
  24. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/context.py +0 -0
  25. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/corrections.py +0 -0
  26. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/cost.py +0 -0
  27. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/decision_store.py +0 -0
  28. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/decisions.py +0 -0
  29. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/discovery.py +0 -0
  30. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/disktruth.py +0 -0
  31. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/evidence.py +0 -0
  32. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/extract/__init__.py +0 -0
  33. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/extract/correct.py +0 -0
  34. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/facts.py +0 -0
  35. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/filterspec.py +0 -0
  36. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/heartbeats.py +0 -0
  37. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/ids.py +0 -0
  38. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/judge/__init__.py +0 -0
  39. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/judge/llm.py +0 -0
  40. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/judge/similar.py +0 -0
  41. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/judge/verdicts.py +0 -0
  42. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/ledger.py +0 -0
  43. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/literals.py +0 -0
  44. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/__init__.py +0 -0
  45. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/candidates.py +0 -0
  46. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/confidence.py +0 -0
  47. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/engine.py +0 -0
  48. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/formats.py +0 -0
  49. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/sampling.py +0 -0
  50. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/signals.py +0 -0
  51. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/sourcekind.py +0 -0
  52. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/spec.py +0 -0
  53. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/mining/store.py +0 -0
  54. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/models.py +0 -0
  55. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/nlp.py +0 -0
  56. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/notifications.py +0 -0
  57. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/parser.py +0 -0
  58. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/py.typed +0 -0
  59. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/query.py +0 -0
  60. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/render.py +0 -0
  61. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/__init__.py +0 -0
  62. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/buckets.py +0 -0
  63. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
  64. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
  65. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
  66. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/engine.py +0 -0
  67. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/lexicon.py +0 -0
  68. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/sentiment/scorespec.py +0 -0
  69. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshot_schema/context.schema.json +0 -0
  70. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshot_schema/tool_registry.schema.json +0 -0
  71. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/snapshots.py +0 -0
  72. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/synthetic.py +0 -0
  73. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/tools.py +0 -0
  74. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/cc_transcript/watch.py +0 -0
  75. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/Cargo.toml +0 -0
  76. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/blame.rs +0 -0
  77. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/corpus.rs +0 -0
  78. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/corrections.rs +0 -0
  79. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/digest.rs +0 -0
  80. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/facts.rs +0 -0
  81. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/grep.rs +0 -0
  82. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/list.rs +0 -0
  83. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/mod.rs +0 -0
  84. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
  85. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/show.rs +0 -0
  86. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/slice.rs +0 -0
  87. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/stats.rs +0 -0
  88. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/commands/watch.rs +0 -0
  89. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/lib.rs +0 -0
  90. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/output.rs +0 -0
  91. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/target.rs +0 -0
  92. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/cli/src/timearg.rs +0 -0
  93. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/Cargo.toml +0 -0
  94. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/benches/parse.rs +0 -0
  95. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/benches/render.rs +0 -0
  96. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/benches/toolcall.rs +0 -0
  97. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/activity.rs +0 -0
  98. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/actor.rs +0 -0
  99. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/blame.rs +0 -0
  100. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/buckets.rs +0 -0
  101. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/discovery.rs +0 -0
  102. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/lower.rs +0 -0
  103. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/mod.rs +0 -0
  104. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/parse.rs +0 -0
  105. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/probe.rs +0 -0
  106. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/protocol.rs +0 -0
  107. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/codex/types.rs +0 -0
  108. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/command.rs +0 -0
  109. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/context.rs +0 -0
  110. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/corrections.rs +0 -0
  111. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/cost.rs +0 -0
  112. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/discovery.rs +0 -0
  113. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/facts.rs +0 -0
  114. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/feedback.rs +0 -0
  115. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/filter.rs +0 -0
  116. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/gateway.rs +0 -0
  117. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/ids.rs +0 -0
  118. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/judge.rs +0 -0
  119. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/lib.rs +0 -0
  120. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/command.rs +0 -0
  121. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/corrections.rs +0 -0
  122. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/feedback.rs +0 -0
  123. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/mining.rs +0 -0
  124. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/mod.rs +0 -0
  125. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/literals/protocol.rs +0 -0
  126. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/notifications.rs +0 -0
  127. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/parse.rs +0 -0
  128. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/protocol.rs +0 -0
  129. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/pystr.rs +0 -0
  130. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/query.rs +0 -0
  131. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/render.rs +0 -0
  132. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/rng.rs +0 -0
  133. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan.rs +0 -0
  134. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_checkpoint.rs +0 -0
  135. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_grep.rs +0 -0
  136. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_grep_stream.rs +0 -0
  137. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_grep_stream_tests.rs +0 -0
  138. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_index.rs +0 -0
  139. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_projection.rs +0 -0
  140. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_regressions.rs +0 -0
  141. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/scan_stream.rs +0 -0
  142. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/schema.rs +0 -0
  143. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_activity.rs +0 -0
  144. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_codec.rs +0 -0
  145. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_codex_append.rs +0 -0
  146. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_labels.rs +0 -0
  147. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_ledger.rs +0 -0
  148. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_ledger_tests.rs +0 -0
  149. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_memory.rs +0 -0
  150. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_owned.rs +0 -0
  151. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_prepared.rs +0 -0
  152. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_projection.rs +0 -0
  153. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_root_warm.rs +0 -0
  154. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/snapshot_text.rs +0 -0
  155. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/sqlite.rs +0 -0
  156. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/toolcall.rs +0 -0
  157. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/types.rs +0 -0
  158. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/value.rs +0 -0
  159. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/src/watch.rs +0 -0
  160. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/tests/sonic_arena_model.rs +0 -0
  161. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/core/tests/std_allocation_model.rs +0 -0
  162. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/Cargo.toml +0 -0
  163. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/build.rs +0 -0
  164. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
  165. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/actor_bridge.rs +0 -0
  166. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/bin/stub_gen.rs +0 -0
  167. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/codex.rs +0 -0
  168. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/command.rs +0 -0
  169. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/context.rs +0 -0
  170. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/corrections.rs +0 -0
  171. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/discovery.rs +0 -0
  172. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/feedback.rs +0 -0
  173. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/judge.rs +0 -0
  174. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/lexicon.rs +0 -0
  175. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/lib.rs +0 -0
  176. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/mining.rs +0 -0
  177. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/nlp.rs +0 -0
  178. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/python.rs +0 -0
  179. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/render.rs +0 -0
  180. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/score.rs +0 -0
  181. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/snapshot_decode.rs +0 -0
  182. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/snapshots.rs +0 -0
  183. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/sqlite.rs +0 -0
  184. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/toolcall.rs +0 -0
  185. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/attachment.rs +0 -0
  186. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/blocks.rs +0 -0
  187. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/command.rs +0 -0
  188. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/convert.rs +0 -0
  189. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/dunder.rs +0 -0
  190. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/events.rs +0 -0
  191. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/meta.rs +0 -0
  192. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/mod.rs +0 -0
  193. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/print.rs +0 -0
  194. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/store.rs +0 -0
  195. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/system.rs +0 -0
  196. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/toolcall.rs +0 -0
  197. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/toolresult.rs +0 -0
  198. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/views/transcript.rs +0 -0
  199. {cc_transcript-14.40.1 → cc_transcript-14.42.0}/rust/crates/py/src/watch.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cc-transcript
3
- Version: 14.40.1
3
+ Version: 14.42.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -129,6 +129,21 @@
129
129
  "title": "Max Source Bytes",
130
130
  "type": "integer"
131
131
  },
132
+ "prepared_fact_producer": {
133
+ "anyOf": [
134
+ {
135
+ "maxLength": 256,
136
+ "minLength": 1,
137
+ "type": "string"
138
+ },
139
+ {
140
+ "type": "null"
141
+ }
142
+ ],
143
+ "default": null,
144
+ "description": "Exact identity of the build that produces prepared facts. Null keeps prepared facts private to this store and deletes them when it closes. A string lets this store adopt validated prepared facts left by earlier stores that named the same producer with the same max_source_bytes and max_entry_bytes, and leaves its own facts in place for the next one. Change it with every build whose fact extraction or in-memory fact layout could differ.",
145
+ "title": "Prepared Fact Producer"
146
+ },
132
147
  "reserved_hook_accounted_bytes": {
133
148
  "default": 536870912,
134
149
  "exclusiveMinimum": 0,
@@ -1143,6 +1143,40 @@
1143
1143
  "title": "PreparedErrorPredicate",
1144
1144
  "type": "object"
1145
1145
  },
1146
+ "PreparedGlobPredicate": {
1147
+ "additionalProperties": false,
1148
+ "properties": {
1149
+ "kind": {
1150
+ "enum": [
1151
+ "has_edit_to",
1152
+ "has_read_glob"
1153
+ ],
1154
+ "title": "Kind",
1155
+ "type": "string"
1156
+ },
1157
+ "subagents": {
1158
+ "const": true,
1159
+ "title": "Subagents",
1160
+ "type": "boolean"
1161
+ },
1162
+ "values": {
1163
+ "items": {
1164
+ "maxLength": 1048576,
1165
+ "type": "string"
1166
+ },
1167
+ "maxItems": 256,
1168
+ "title": "Values",
1169
+ "type": "array"
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "kind",
1174
+ "values",
1175
+ "subagents"
1176
+ ],
1177
+ "title": "PreparedGlobPredicate",
1178
+ "type": "object"
1179
+ },
1146
1180
  "PreparedInputs": {
1147
1181
  "additionalProperties": false,
1148
1182
  "properties": {
@@ -1170,10 +1204,8 @@
1170
1204
  "kind": {
1171
1205
  "enum": [
1172
1206
  "has_command",
1173
- "has_edit_to",
1174
1207
  "has_skill",
1175
- "has_skill_suffix",
1176
- "has_read_glob"
1208
+ "has_skill_suffix"
1177
1209
  ],
1178
1210
  "title": "Kind",
1179
1211
  "type": "string"
@@ -1239,14 +1271,40 @@
1239
1271
  "title": "PreparedOverridePredicate",
1240
1272
  "type": "object"
1241
1273
  },
1274
+ "PreparedRegexPredicate": {
1275
+ "additionalProperties": false,
1276
+ "properties": {
1277
+ "kind": {
1278
+ "const": "has_command_regex",
1279
+ "title": "Kind",
1280
+ "type": "string"
1281
+ },
1282
+ "pattern": {
1283
+ "maxLength": 1048576,
1284
+ "title": "Pattern",
1285
+ "type": "string"
1286
+ },
1287
+ "subagents": {
1288
+ "const": true,
1289
+ "title": "Subagents",
1290
+ "type": "boolean"
1291
+ }
1292
+ },
1293
+ "required": [
1294
+ "kind",
1295
+ "pattern",
1296
+ "subagents"
1297
+ ],
1298
+ "title": "PreparedRegexPredicate",
1299
+ "type": "object"
1300
+ },
1242
1301
  "PreparedToolPredicate": {
1243
1302
  "additionalProperties": false,
1244
1303
  "properties": {
1245
1304
  "kind": {
1246
1305
  "enum": [
1247
1306
  "has_tool",
1248
- "has_read",
1249
- "has_command_regex"
1307
+ "has_read"
1250
1308
  ],
1251
1309
  "title": "Kind",
1252
1310
  "type": "string"
@@ -1404,6 +1462,49 @@
1404
1462
  "limits": {
1405
1463
  "$ref": "#/$defs/Limits"
1406
1464
  },
1465
+ "observers": {
1466
+ "anyOf": [
1467
+ {
1468
+ "items": {
1469
+ "discriminator": {
1470
+ "mapping": {
1471
+ "has_command": "#/$defs/PreparedListPredicate",
1472
+ "has_edit": "#/$defs/PreparedErrorPredicate",
1473
+ "has_error": "#/$defs/PreparedErrorPredicate",
1474
+ "has_override": "#/$defs/PreparedOverridePredicate",
1475
+ "has_read": "#/$defs/PreparedToolPredicate",
1476
+ "has_skill": "#/$defs/PreparedListPredicate",
1477
+ "has_skill_suffix": "#/$defs/PreparedListPredicate",
1478
+ "has_tool": "#/$defs/PreparedToolPredicate"
1479
+ },
1480
+ "propertyName": "kind"
1481
+ },
1482
+ "oneOf": [
1483
+ {
1484
+ "$ref": "#/$defs/PreparedToolPredicate"
1485
+ },
1486
+ {
1487
+ "$ref": "#/$defs/PreparedListPredicate"
1488
+ },
1489
+ {
1490
+ "$ref": "#/$defs/PreparedOverridePredicate"
1491
+ },
1492
+ {
1493
+ "$ref": "#/$defs/PreparedErrorPredicate"
1494
+ }
1495
+ ]
1496
+ },
1497
+ "maxItems": 32,
1498
+ "minItems": 1,
1499
+ "type": "array"
1500
+ },
1501
+ {
1502
+ "type": "null"
1503
+ }
1504
+ ],
1505
+ "default": null,
1506
+ "title": "Observers"
1507
+ },
1407
1508
  "operation": {
1408
1509
  "const": "query_graph",
1409
1510
  "title": "Operation",
@@ -1414,13 +1515,13 @@
1414
1515
  "mapping": {
1415
1516
  "deep_predicate_inputs": "#/$defs/PreparedInputs",
1416
1517
  "has_command": "#/$defs/PreparedListPredicate",
1417
- "has_command_regex": "#/$defs/PreparedToolPredicate",
1518
+ "has_command_regex": "#/$defs/PreparedRegexPredicate",
1418
1519
  "has_edit": "#/$defs/PreparedErrorPredicate",
1419
- "has_edit_to": "#/$defs/PreparedListPredicate",
1520
+ "has_edit_to": "#/$defs/PreparedGlobPredicate",
1420
1521
  "has_error": "#/$defs/PreparedErrorPredicate",
1421
1522
  "has_override": "#/$defs/PreparedOverridePredicate",
1422
1523
  "has_read": "#/$defs/PreparedToolPredicate",
1423
- "has_read_glob": "#/$defs/PreparedListPredicate",
1524
+ "has_read_glob": "#/$defs/PreparedGlobPredicate",
1424
1525
  "has_skill": "#/$defs/PreparedListPredicate",
1425
1526
  "has_skill_suffix": "#/$defs/PreparedListPredicate",
1426
1527
  "has_tool": "#/$defs/PreparedToolPredicate"
@@ -1434,9 +1535,15 @@
1434
1535
  {
1435
1536
  "$ref": "#/$defs/PreparedToolPredicate"
1436
1537
  },
1538
+ {
1539
+ "$ref": "#/$defs/PreparedRegexPredicate"
1540
+ },
1437
1541
  {
1438
1542
  "$ref": "#/$defs/PreparedListPredicate"
1439
1543
  },
1544
+ {
1545
+ "$ref": "#/$defs/PreparedGlobPredicate"
1546
+ },
1440
1547
  {
1441
1548
  "$ref": "#/$defs/PreparedOverridePredicate"
1442
1549
  },
@@ -89,6 +89,7 @@
89
89
  "hydrated": "#/$defs/Hydrated",
90
90
  "loading": "#/$defs/Loading",
91
91
  "located": "#/$defs/Located",
92
+ "observed_scalar": "#/$defs/ObservedScalarResult",
92
93
  "prepared_graph": "#/$defs/PreparedGraphResult",
93
94
  "records": "#/$defs/RecordsResult",
94
95
  "released": "#/$defs/Released",
@@ -143,6 +144,9 @@
143
144
  {
144
145
  "$ref": "#/$defs/ScalarResult"
145
146
  },
147
+ {
148
+ "$ref": "#/$defs/ObservedScalarResult"
149
+ },
146
150
  {
147
151
  "$ref": "#/$defs/StringsResult"
148
152
  },
@@ -732,6 +736,7 @@
732
736
  "hydrated": "#/$defs/Hydrated",
733
737
  "loading": "#/$defs/Loading",
734
738
  "located": "#/$defs/Located",
739
+ "observed_scalar": "#/$defs/ObservedScalarResult",
735
740
  "prepared_graph": "#/$defs/PreparedGraphResult",
736
741
  "records": "#/$defs/RecordsResult",
737
742
  "released": "#/$defs/Released",
@@ -786,6 +791,9 @@
786
791
  {
787
792
  "$ref": "#/$defs/ScalarResult"
788
793
  },
794
+ {
795
+ "$ref": "#/$defs/ObservedScalarResult"
796
+ },
789
797
  {
790
798
  "$ref": "#/$defs/StringsResult"
791
799
  },
@@ -945,6 +953,43 @@
945
953
  "title": "Location",
946
954
  "type": "object"
947
955
  },
956
+ "ObservedScalarResult": {
957
+ "additionalProperties": false,
958
+ "properties": {
959
+ "kind": {
960
+ "const": "observed_scalar",
961
+ "title": "Kind",
962
+ "type": "string"
963
+ },
964
+ "observers": {
965
+ "items": {
966
+ "anyOf": [
967
+ {
968
+ "type": "boolean"
969
+ },
970
+ {
971
+ "type": "null"
972
+ }
973
+ ]
974
+ },
975
+ "maxItems": 32,
976
+ "minItems": 1,
977
+ "title": "Observers",
978
+ "type": "array"
979
+ },
980
+ "value": {
981
+ "title": "Value",
982
+ "type": "boolean"
983
+ }
984
+ },
985
+ "required": [
986
+ "kind",
987
+ "value",
988
+ "observers"
989
+ ],
990
+ "title": "ObservedScalarResult",
991
+ "type": "object"
992
+ },
948
993
  "PreparedGraphResult": {
949
994
  "additionalProperties": false,
950
995
  "properties": {
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cc-transcript"
3
- version = "14.40.1" # informational — releases stamp the version from the git tag
3
+ version = "14.42.0" # 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"
@@ -1018,6 +1018,7 @@ struct PreparedQueryCursor {
1018
1018
  query: Value,
1019
1019
  pending: Option<PendingPreparedSource>,
1020
1020
  input_records: Option<VecDeque<String>>,
1021
+ observers: Observers,
1021
1022
  next: usize,
1022
1023
  page_output_bytes: usize,
1023
1024
  remaining: WorkLimits,
@@ -1684,6 +1685,7 @@ impl Charge<String> for PreparedQueryCursor {
1684
1685
  records.capacity() * size_of::<String>()
1685
1686
  + records.iter().map(String::capacity).sum::<usize>()
1686
1687
  })
1688
+ + self.observers.charge()
1687
1689
  }
1688
1690
  }
1689
1691
 
@@ -3127,18 +3129,30 @@ impl NativeStore {
3127
3129
  );
3128
3130
  }
3129
3131
  }
3130
- if number(&Self::gauges(&mut state), "retained_total_accounted_bytes")? > config.retained {
3132
+ let footprint = number(&Self::gauges(&mut state), "retained_total_accounted_bytes")?;
3133
+ if footprint > config.retained {
3131
3134
  return Err(invalid("retained cap below startup footprint"));
3132
3135
  }
3133
3136
  #[cfg(test)]
3134
3137
  let audits = Arc::clone(&state.audits);
3138
+ let prepared_disk = crate::snapshot_prepared_disk::PreparedDiskCache::new(
3139
+ &owner_epoch,
3140
+ get("max_prepared_disk_bytes", 2 * 1024 * 1024 * 1024),
3141
+ &crate::snapshot_prepared_disk::FactOrigin {
3142
+ producer: value.get("prepared_fact_producer").and_then(Value::as_str),
3143
+ max_source_bytes: config.source,
3144
+ max_entry_bytes: config.entry,
3145
+ },
3146
+ config
3147
+ .retained
3148
+ .saturating_sub(config.hook_bytes)
3149
+ .saturating_sub(footprint),
3150
+ work.clone(),
3151
+ )?;
3152
+ state.prepared_disk_index_bytes = prepared_disk.index_bytes();
3135
3153
  Ok(Self {
3136
3154
  config,
3137
- prepared_disk: crate::snapshot_prepared_disk::PreparedDiskCache::new(
3138
- &owner_epoch,
3139
- get("max_prepared_disk_bytes", 2 * 1024 * 1024 * 1024),
3140
- work.clone(),
3141
- )?,
3155
+ prepared_disk,
3142
3156
  owner_epoch,
3143
3157
  default_registry,
3144
3158
  seed,
@@ -5062,6 +5076,13 @@ impl NativeStore {
5062
5076
  query,
5063
5077
  pending,
5064
5078
  input_records,
5079
+ observers:
5080
+ Observers {
5081
+ declared: _,
5082
+ allowance: _,
5083
+ witnessed: _,
5084
+ pending: observing,
5085
+ },
5065
5086
  next: _,
5066
5087
  page_output_bytes: _,
5067
5088
  remaining: _,
@@ -5084,6 +5105,11 @@ impl NativeStore {
5084
5105
  records.capacity() * size_of::<String>()
5085
5106
  + records.iter().map(String::capacity).sum::<usize>()
5086
5107
  })
5108
+ + observing.capacity() * size_of::<(usize, Value)>()
5109
+ + observing
5110
+ .iter()
5111
+ .map(|(_, query)| value_bytes(query))
5112
+ .sum::<usize>()
5087
5113
  }
5088
5114
 
5089
5115
  #[cfg(test)]
@@ -13157,6 +13183,66 @@ mod tests {
13157
13183
  assert!(after[1] > before[1]);
13158
13184
  }
13159
13185
 
13186
+ #[test]
13187
+ fn restarted_owner_reuses_prepared_facts_for_unchanged_sources() {
13188
+ let namespace = std::fs::canonicalize(std::env::temp_dir())
13189
+ .unwrap()
13190
+ .join(format!(
13191
+ "cc-transcript-prepared-reuse-{}-{}",
13192
+ std::process::id(),
13193
+ now_ms()
13194
+ ));
13195
+ crate::snapshot_prepared_disk::REUSE_NAMESPACE_OVERRIDE
13196
+ .with(|path| *path.borrow_mut() = Some(namespace.clone()));
13197
+ let tool = r#"{"type":"assistant","uuid":"tool","sessionId":"s","timestamp":"2026-01-02T03:04:06Z","message":{"model":"test","content":[{"type":"tool_use","id":"read","name":"Read","input":{"file_path":"/tmp/changed"}}]}}"#;
13198
+ let source = Source::new(&format!("{}\n", user("root")));
13199
+ let changed = source.directory.join("changed.jsonl");
13200
+ let stable = source.directory.join("stable.jsonl");
13201
+ std::fs::write(&changed, format!("{}\n", user("before"))).unwrap();
13202
+ std::fs::write(&stable, format!("{}\n", user("stable"))).unwrap();
13203
+ let config = json!({"prepared_fact_producer":"restart-test"});
13204
+ let owner = context("a");
13205
+ let serve = |store: &NativeStore| {
13206
+ let root = finish(
13207
+ store,
13208
+ store.request(&acquire(&source.path), &owner, &Cancellation::default()),
13209
+ &owner,
13210
+ );
13211
+ let template = acquire(&source.path);
13212
+ let prepare = json!({"schema":SCHEMA,"id":"prepare","operation":"prepare_graph","view":{"handle":handle(&root),"classifier":{"id":"native","version":"1"},"selectors":[],"attachments":[]},"thread_ids":[],"roots":[],"direct_paths":[stable.to_string_lossy().as_ref(),changed.to_string_lossy().as_ref()],"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]});
13213
+ let graph = finish(
13214
+ store,
13215
+ store.request(&prepare, &owner, &Cancellation::default()),
13216
+ &owner,
13217
+ );
13218
+ assert_eq!(graph["status"].as_str(), Some("ok"), "{graph:?}");
13219
+ let answer = finish_prepared(
13220
+ store,
13221
+ store.request(&json!({"schema":SCHEMA,"id":"query","operation":"query_graph","handle":graph["data"]["handle"],"selectors":[],"query":{"kind":"has_tool","pattern":"Read","subagents":true},"deadline_unix_ms":template["deadline_unix_ms"],"limits":template["limits"]}), &owner, &Cancellation::default()),
13222
+ &owner,
13223
+ );
13224
+ assert_eq!(answer["status"].as_str(), Some("ok"), "{answer:?}");
13225
+ answer["data"]["value"].as_bool()
13226
+ };
13227
+ let first = NativeStore::new(&config).unwrap();
13228
+ assert_eq!(serve(&first), Some(false));
13229
+ let built = first.prepared_disk.stats().writes;
13230
+ drop(first);
13231
+ std::fs::write(&changed, format!("{}\n{tool}\n", user("after"))).unwrap();
13232
+ let restarted = NativeStore::new(&config).unwrap();
13233
+ assert_eq!(serve(&restarted), Some(true));
13234
+ let rebuilt = restarted.prepared_disk.stats().writes;
13235
+ assert!(
13236
+ rebuilt >= 1 && rebuilt < built,
13237
+ "the restarted owner wrote {rebuilt} facts where the first wrote {built}"
13238
+ );
13239
+ restarted.assert_conserved();
13240
+ drop(restarted);
13241
+ crate::snapshot_prepared_disk::REUSE_NAMESPACE_OVERRIDE
13242
+ .with(|path| *path.borrow_mut() = None);
13243
+ std::fs::remove_dir_all(namespace).unwrap();
13244
+ }
13245
+
13160
13246
  #[test]
13161
13247
  fn prepared_negative_rechecks_sidechain_membership() {
13162
13248
  let source = Source::new(&format!("{}\n", user("root")));