cc-transcript 14.1.1__tar.gz → 14.4.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 (152) hide show
  1. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/PKG-INFO +1 -1
  2. cc_transcript-14.4.0/cc_transcript/__init__.py +275 -0
  3. cc_transcript-14.4.0/cc_transcript/__init__.pyi +500 -0
  4. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/_native.pyi +170 -112
  5. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/activity.py +58 -53
  6. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/command.py +0 -11
  7. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/extract/correct.py +1 -1
  8. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/filterspec.py +0 -47
  9. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/heartbeats.py +4 -20
  10. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/judge/__init__.py +0 -1
  11. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/judge/similar.py +55 -73
  12. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/judge/verdicts.py +10 -296
  13. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/ledger.py +12 -8
  14. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/literals.py +0 -6
  15. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/__init__.py +9 -15
  16. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/spec.py +30 -108
  17. cc_transcript-14.4.0/cc_transcript/mining/store.py +489 -0
  18. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/models.py +0 -37
  19. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/parser.py +30 -0
  20. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/query.py +0 -5
  21. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/render.py +14 -55
  22. cc_transcript-14.4.0/cc_transcript/synthetic.py +219 -0
  23. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/tools.py +27 -66
  24. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/pyproject.toml +1 -2
  25. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/Cargo.toml +5 -4
  26. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/activity.rs +223 -18
  27. cc_transcript-14.4.0/rust/crates/core/src/codex/mod.rs +10 -0
  28. cc_transcript-14.4.0/rust/crates/core/src/codex/parse.rs +1270 -0
  29. cc_transcript-14.4.0/rust/crates/core/src/codex/protocol.rs +129 -0
  30. cc_transcript-14.4.0/rust/crates/core/src/codex/types.rs +260 -0
  31. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/context.rs +3 -1
  32. cc_transcript-14.4.0/rust/crates/core/src/corrections.rs +382 -0
  33. cc_transcript-14.4.0/rust/crates/core/src/feedback.rs +1155 -0
  34. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/lib.rs +5 -0
  35. cc_transcript-14.4.0/rust/crates/core/src/literals/feedback.rs +13 -0
  36. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/literals/mod.rs +1 -0
  37. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/notifications.rs +0 -8
  38. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/query.rs +2 -11
  39. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/render.rs +1 -1
  40. cc_transcript-14.4.0/rust/crates/core/src/sqlite.rs +578 -0
  41. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/toolcall.rs +228 -19
  42. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/types.rs +4 -4
  43. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/value.rs +0 -15
  44. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/bin/stub_gen.rs +6 -0
  45. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/corrections.rs +5 -94
  46. cc_transcript-14.4.0/rust/crates/py/src/feedback.rs +321 -0
  47. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/lib.rs +2 -0
  48. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/mining.rs +3 -3
  49. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/python.rs +61 -93
  50. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/render.rs +54 -1
  51. cc_transcript-14.4.0/rust/crates/py/src/sqlite.rs +159 -0
  52. cc_transcript-14.4.0/rust/crates/py/src/toolcall.rs +18 -0
  53. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/blocks.rs +2 -2
  54. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/toolcall.rs +110 -10
  55. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/toolresult.rs +1 -2
  56. cc_transcript-14.1.1/cc_transcript/__init__.py +0 -857
  57. cc_transcript-14.1.1/cc_transcript/mining/filterspec.py +0 -116
  58. cc_transcript-14.1.1/cc_transcript/mining/store.py +0 -200
  59. cc_transcript-14.1.1/cc_transcript/store.py +0 -155
  60. cc_transcript-14.1.1/rust/crates/core/src/corrections.rs +0 -774
  61. cc_transcript-14.1.1/rust/crates/py/src/toolcall.rs +0 -316
  62. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/Cargo.lock +0 -0
  63. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/Cargo.toml +0 -0
  64. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/LICENSE +0 -0
  65. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/README.md +0 -0
  66. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/activity_probe.py +0 -0
  67. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/builders.py +0 -0
  68. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/context.py +0 -0
  69. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/corrections.py +0 -0
  70. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/cost.py +0 -0
  71. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/decisions.py +0 -0
  72. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/discovery.py +0 -0
  73. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/disktruth.py +0 -0
  74. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/evidence.py +0 -0
  75. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/extract/__init__.py +0 -0
  76. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/facts.py +0 -0
  77. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/ids.py +0 -0
  78. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/judge/llm.py +0 -0
  79. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/candidates.py +0 -0
  80. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/confidence.py +0 -0
  81. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/engine.py +0 -0
  82. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/formats.py +0 -0
  83. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/sampling.py +0 -0
  84. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/signals.py +0 -0
  85. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/mining/sourcekind.py +0 -0
  86. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/nlp.py +0 -0
  87. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/notifications.py +0 -0
  88. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/py.typed +0 -0
  89. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/__init__.py +0 -0
  90. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/buckets.py +0 -0
  91. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/data/afinn-en-165.tsv +0 -0
  92. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/data/domain_overrides.tsv +0 -0
  93. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/data/en-ewt.udpipe +0 -0
  94. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/engine.py +0 -0
  95. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/lexicon.py +0 -0
  96. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/sentiment/scorespec.py +0 -0
  97. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/cc_transcript/watch.py +0 -0
  98. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/Cargo.toml +0 -0
  99. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/corrections.rs +0 -0
  100. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/digest.rs +0 -0
  101. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/facts.rs +0 -0
  102. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/grep.rs +0 -0
  103. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/list.rs +0 -0
  104. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/mod.rs +0 -0
  105. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/scratchpad.rs +0 -0
  106. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/show.rs +0 -0
  107. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/slice.rs +0 -0
  108. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/stats.rs +0 -0
  109. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/commands/watch.rs +0 -0
  110. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/lib.rs +0 -0
  111. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/main.rs +0 -0
  112. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/output.rs +0 -0
  113. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/cli/src/target.rs +0 -0
  114. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/benches/parse.rs +0 -0
  115. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/benches/render.rs +0 -0
  116. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/benches/toolcall.rs +0 -0
  117. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/buckets.rs +0 -0
  118. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/command.rs +0 -0
  119. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/cost.rs +0 -0
  120. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/discovery.rs +0 -0
  121. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/facts.rs +0 -0
  122. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/filter.rs +0 -0
  123. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/ids.rs +0 -0
  124. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/literals/command.rs +0 -0
  125. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/literals/corrections.rs +0 -0
  126. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/literals/mining.rs +0 -0
  127. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/literals/protocol.rs +0 -0
  128. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/parse.rs +0 -0
  129. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/protocol.rs +0 -0
  130. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/pystr.rs +0 -0
  131. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/core/src/watch.rs +0 -0
  132. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/Cargo.toml +0 -0
  133. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/build.rs +0 -0
  134. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/data/command_prefix_pins.tsv +0 -0
  135. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/command.rs +0 -0
  136. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/context.rs +0 -0
  137. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/discovery.rs +0 -0
  138. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/lexicon.rs +0 -0
  139. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/nlp.rs +0 -0
  140. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/score.rs +0 -0
  141. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/attachment.rs +0 -0
  142. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/command.rs +0 -0
  143. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/convert.rs +0 -0
  144. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/dunder.rs +0 -0
  145. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/events.rs +0 -0
  146. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/meta.rs +0 -0
  147. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/mod.rs +0 -0
  148. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/print.rs +0 -0
  149. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/store.rs +0 -0
  150. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/system.rs +0 -0
  151. {cc_transcript-14.1.1 → cc_transcript-14.4.0}/rust/crates/py/src/views/transcript.rs +0 -0
  152. {cc_transcript-14.1.1 → cc_transcript-14.4.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.1.1
3
+ Version: 14.4.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -0,0 +1,275 @@
1
+ """The cc-family session-activity platform.
2
+
3
+ One spine: parse Claude Code transcript JSONL into typed events, lift them
4
+ into a :class:`~cc_transcript.activity.SessionActivity` of turns, tool calls,
5
+ and edits — and every higher capability (context windows, evidence harvest,
6
+ queries, the decision ledger, LLM judging) is a pure function or thin store
7
+ over that spine.
8
+
9
+ Parsing is native: :func:`parse` turns one source into a
10
+ :class:`~cc_transcript.models.Transcript` view and :func:`stream` fans a batch
11
+ of paths across the native parse pool, with ``drop`` specs applied before any
12
+ Python object materializes.
13
+
14
+ The package root is lazy (PEP 562): importing ``cc_transcript.ids`` pulls the
15
+ standard library only, so a hook's digest-only hot path pays nothing for the
16
+ parser extension or any heavy dependency.
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ from importlib import import_module
22
+
23
+ EXPORTS: dict[str, str] = {
24
+ name: module
25
+ for module, names in {
26
+ "cc_transcript.ids": (
27
+ "EventRef",
28
+ "EventUuid",
29
+ "SessionId",
30
+ "ToolDigest",
31
+ "ToolUseId",
32
+ "canonical_json",
33
+ "tool_digest",
34
+ ),
35
+ "cc_transcript.tools": (
36
+ "TOOL_ALIASES",
37
+ "AskUserQuestionResult",
38
+ "BashCall",
39
+ "BashResult",
40
+ "EditCall",
41
+ "EditResult",
42
+ "EditSpan",
43
+ "ExitPlanModeCall",
44
+ "GlobCall",
45
+ "GrepCall",
46
+ "Hunk",
47
+ "MultiEditCall",
48
+ "NotebookEditCall",
49
+ "OtherCall",
50
+ "OtherResult",
51
+ "QuestionAnnotation",
52
+ "ReadCall",
53
+ "ReadResult",
54
+ "SkillCall",
55
+ "SkillResult",
56
+ "SpanEditCall",
57
+ "TaskCall",
58
+ "TaskCreateCall",
59
+ "TaskLaunchResult",
60
+ "TaskResult",
61
+ "TaskUpdateCall",
62
+ "TextResult",
63
+ "ToolCall",
64
+ "ToolCallBase",
65
+ "ToolInputError",
66
+ "ToolResult",
67
+ "ToolResultBase",
68
+ "ToolResultError",
69
+ "WorkflowCall",
70
+ "WriteCall",
71
+ "WriteResult",
72
+ "expand_tool_names",
73
+ "file_path_of",
74
+ "hunks_of",
75
+ "matches_names",
76
+ "mcp_access",
77
+ "mcp_parts",
78
+ "parse_tool_call",
79
+ "parse_tool_result",
80
+ "register_mcp_tool",
81
+ "tool_name_matches",
82
+ "unregister_mcp_tool",
83
+ ),
84
+ "cc_transcript.command": (
85
+ "Command",
86
+ "CommandLine",
87
+ "CommandLineQuery",
88
+ "Occurrence",
89
+ "Redirect",
90
+ "command_prefixes",
91
+ "parse_command_line",
92
+ ),
93
+ "cc_transcript.models": (
94
+ "ApiError",
95
+ "AssistantEvent",
96
+ "AsyncHookResponse",
97
+ "AttachmentDetail",
98
+ "AttachmentEvent",
99
+ "Attribution",
100
+ "CacheCreation",
101
+ "CcVersion",
102
+ "CompactBoundary",
103
+ "ContentBlock",
104
+ "EntryMeta",
105
+ "EventList",
106
+ "FallbackBlock",
107
+ "HookAdditionalContext",
108
+ "HookBlockingError",
109
+ "HookCancelled",
110
+ "HookInfo",
111
+ "HookNonBlockingError",
112
+ "HookSuccess",
113
+ "InitInfo",
114
+ "McpServer",
115
+ "ModelRefusalFallback",
116
+ "ModeEvent",
117
+ "ModelUsage",
118
+ "OtherAttachment",
119
+ "OtherBlock",
120
+ "OtherEvent",
121
+ "OtherSystemDetail",
122
+ "Plugin",
123
+ "PreservedMessages",
124
+ "PreservedSegment",
125
+ "PrintMessage",
126
+ "PrintResult",
127
+ "Question",
128
+ "QueuedCommand",
129
+ "ServerToolUse",
130
+ "StopHookSummary",
131
+ "SystemDetail",
132
+ "SystemEvent",
133
+ "TextBlock",
134
+ "ThinkingBlock",
135
+ "ToolResultBlock",
136
+ "ToolUseBlock",
137
+ "Transcript",
138
+ "TranscriptEvent",
139
+ "TurnDuration",
140
+ "Usage",
141
+ "UserEvent",
142
+ "thinking_chars",
143
+ "tool_uses",
144
+ ),
145
+ "cc_transcript.parser": (
146
+ "parse",
147
+ "parse_event",
148
+ "parse_events",
149
+ "parse_events_from_bytes",
150
+ "parse_print_result",
151
+ "stream",
152
+ ),
153
+ "cc_transcript.synthetic": (
154
+ "assistant_line",
155
+ "meta_fields",
156
+ "mode_line",
157
+ "other_line",
158
+ "synthetic_assistant_event",
159
+ "synthetic_user_event",
160
+ "system_line",
161
+ "text_block",
162
+ "thinking_block",
163
+ "tool_result",
164
+ "tool_use",
165
+ "user_line",
166
+ ),
167
+ "cc_transcript.cost": (
168
+ "PRICING",
169
+ "CostBreakdown",
170
+ "ModelPricing",
171
+ "cost_of",
172
+ "cost_of_assistant",
173
+ "resolve_pricing",
174
+ ),
175
+ "cc_transcript.discovery": (
176
+ "CLAUDE_PROJECTS_DIR",
177
+ "TranscriptExpiredError",
178
+ "discover",
179
+ "find_in",
180
+ "resolve",
181
+ "subagent_paths",
182
+ ),
183
+ "cc_transcript.activity": (
184
+ "Edit",
185
+ "SessionActivity",
186
+ "ToolUse",
187
+ "Turn",
188
+ "UserClassifier",
189
+ "hunk_overlap",
190
+ "native_user_classifier",
191
+ "result_index",
192
+ ),
193
+ "cc_transcript.facts": (
194
+ "ToolFact",
195
+ "command_prefix_counts",
196
+ "mcp_summary",
197
+ "tool_facts",
198
+ ),
199
+ "cc_transcript.evidence": (
200
+ "CandidatePair",
201
+ "GitFix",
202
+ "git_corrections",
203
+ "harvest_pairs",
204
+ "match_corrections",
205
+ "record_harvest",
206
+ ),
207
+ "cc_transcript.corrections": (
208
+ "CORRECTIONS_DDL",
209
+ "Correction",
210
+ "CorrectionLog",
211
+ "Origin",
212
+ ),
213
+ "cc_transcript.context": (
214
+ "ContextWindow",
215
+ "Fidelity",
216
+ "HydratedWindow",
217
+ "SchemaError",
218
+ "TurnRef",
219
+ "capture_window",
220
+ ),
221
+ "cc_transcript.render": ("Budget", "render_session", "render_tool_call", "render_turn"),
222
+ "cc_transcript.notifications": ("Notifications",),
223
+ "cc_transcript.query": ("FileRef", "Session", "SubagentIndex", "SubagentSession", "ToolCallQuery"),
224
+ "cc_transcript.decisions": ("DECISIONS_DDL", "Action", "Decision", "DecisionLog"),
225
+ "cc_transcript.disktruth": (
226
+ "AttributionRange",
227
+ "DiskTruth",
228
+ "FileAttribution",
229
+ "TreeTurn",
230
+ "export_activity",
231
+ "load_export",
232
+ ),
233
+ "cc_transcript.filterspec": (
234
+ "ASSISTANTS",
235
+ "JUNK_USER_MESSAGE_RE",
236
+ "RESUME_PHRASE_SET",
237
+ "STRUCTURAL_NOISE_RE",
238
+ "TRIVIAL_ACK_SET",
239
+ "USERS",
240
+ "FilterSpec",
241
+ "annotate_spec",
242
+ "apply_spec",
243
+ "keep",
244
+ "labels_for",
245
+ ),
246
+ "cc_transcript.builders": (
247
+ "NOISE_SPEC",
248
+ "build_spec",
249
+ "drop_compacted",
250
+ "drop_empty",
251
+ "drop_entrypoints",
252
+ "drop_junk",
253
+ "drop_meta_flag",
254
+ "drop_phrases",
255
+ "drop_short",
256
+ "drop_sidechain",
257
+ "drop_synthetic",
258
+ "keep_only",
259
+ ),
260
+ "cc_transcript.watch": ("WatchEvent", "Watcher"),
261
+ }.items()
262
+ for name in names
263
+ }
264
+
265
+ __all__ = sorted(EXPORTS)
266
+
267
+
268
+ def __getattr__(name: str) -> object:
269
+ if module := EXPORTS.get(name):
270
+ return getattr(import_module(module), name)
271
+ raise AttributeError(f"module 'cc_transcript' has no attribute {name!r}")
272
+
273
+
274
+ def __dir__() -> list[str]:
275
+ return sorted(EXPORTS)