@tracemarketplace/shared 0.0.9 → 0.0.11

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 (86) hide show
  1. package/dist/extractor-claude-code.test.js +53 -0
  2. package/dist/extractor-claude-code.test.js.map +1 -1
  3. package/dist/extractor-codex.test.js +5 -0
  4. package/dist/extractor-codex.test.js.map +1 -1
  5. package/dist/extractors/claude-code.d.ts.map +1 -1
  6. package/dist/extractors/claude-code.js +4 -4
  7. package/dist/extractors/claude-code.js.map +1 -1
  8. package/dist/extractors/codex.d.ts.map +1 -1
  9. package/dist/extractors/codex.js +2 -0
  10. package/dist/extractors/codex.js.map +1 -1
  11. package/dist/extractors/common.d.ts +1 -2
  12. package/dist/extractors/common.d.ts.map +1 -1
  13. package/dist/extractors/common.js +2 -37
  14. package/dist/extractors/common.js.map +1 -1
  15. package/dist/extractors/common.test.d.ts +2 -0
  16. package/dist/extractors/common.test.d.ts.map +1 -0
  17. package/dist/extractors/common.test.js +17 -0
  18. package/dist/extractors/common.test.js.map +1 -0
  19. package/dist/extractors/cursor.d.ts.map +1 -1
  20. package/dist/extractors/cursor.js +8 -0
  21. package/dist/extractors/cursor.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/redact.d.ts.map +1 -1
  27. package/dist/redact.js +3 -1
  28. package/dist/redact.js.map +1 -1
  29. package/dist/redact.test.js +9 -0
  30. package/dist/redact.test.js.map +1 -1
  31. package/dist/scoring.d.ts +5 -3
  32. package/dist/scoring.d.ts.map +1 -1
  33. package/dist/scoring.fixtures.test.d.ts +2 -0
  34. package/dist/scoring.fixtures.test.d.ts.map +1 -0
  35. package/dist/scoring.fixtures.test.js +47 -0
  36. package/dist/scoring.fixtures.test.js.map +1 -0
  37. package/dist/scoring.js +381 -62
  38. package/dist/scoring.js.map +1 -1
  39. package/dist/scoring.test.js +125 -26
  40. package/dist/scoring.test.js.map +1 -1
  41. package/dist/tool-normalization.d.ts +66 -0
  42. package/dist/tool-normalization.d.ts.map +1 -0
  43. package/dist/tool-normalization.generated.d.ts +181 -0
  44. package/dist/tool-normalization.generated.d.ts.map +1 -0
  45. package/dist/tool-normalization.generated.js +261 -0
  46. package/dist/tool-normalization.generated.js.map +1 -0
  47. package/dist/tool-normalization.js +463 -0
  48. package/dist/tool-normalization.js.map +1 -0
  49. package/dist/tool-normalization.test.d.ts +2 -0
  50. package/dist/tool-normalization.test.d.ts.map +1 -0
  51. package/dist/tool-normalization.test.js +188 -0
  52. package/dist/tool-normalization.test.js.map +1 -0
  53. package/dist/turn-actors.d.ts +1 -0
  54. package/dist/turn-actors.d.ts.map +1 -1
  55. package/dist/turn-actors.js.map +1 -1
  56. package/dist/types.d.ts +38 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/validators.d.ts +23 -6
  59. package/dist/validators.d.ts.map +1 -1
  60. package/dist/validators.js +4 -0
  61. package/dist/validators.js.map +1 -1
  62. package/dist/validators.test.js +7 -0
  63. package/dist/validators.test.js.map +1 -1
  64. package/package.json +5 -6
  65. package/scripts/generate-tool-normalization.mjs +16 -0
  66. package/src/extractor-claude-code.test.ts +59 -0
  67. package/src/extractor-codex.test.ts +5 -0
  68. package/src/extractors/claude-code.ts +8 -4
  69. package/src/extractors/codex.ts +2 -0
  70. package/src/extractors/common.test.ts +21 -0
  71. package/src/extractors/common.ts +15 -49
  72. package/src/extractors/cursor.ts +9 -0
  73. package/src/index.ts +1 -0
  74. package/src/redact.test.ts +9 -0
  75. package/src/redact.ts +3 -1
  76. package/src/scoring.fixtures.test.ts +71 -0
  77. package/src/scoring.test.ts +151 -26
  78. package/src/scoring.ts +582 -84
  79. package/src/tool-normalization.generated.ts +262 -0
  80. package/src/tool-normalization.spec.json +205 -0
  81. package/src/tool-normalization.test.ts +221 -0
  82. package/src/tool-normalization.ts +670 -0
  83. package/src/turn-actors.ts +2 -0
  84. package/src/types.ts +50 -0
  85. package/src/validators.test.ts +8 -0
  86. package/src/validators.ts +8 -0
@@ -0,0 +1,188 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { extractFailureExchanges, getNormalizedToolHierarchy, isFileMutationTool, listNormalizedToolsByFamily, normalizeTraceForEvaluation, normalizeToolUse, TRACE_NORMALIZATION_VERSION, tokenizeBashCommand, } from "./tool-normalization.js";
3
+ function makeTrace(turns) {
4
+ return {
5
+ trace_id: "test-id",
6
+ schema_version: "1.0",
7
+ source_tool: "codex_cli",
8
+ source_session_id: "session-abc",
9
+ source_version: null,
10
+ submitted_by: "user1",
11
+ submitted_at: "2024-01-01T00:00:00Z",
12
+ extracted_at: "2024-01-01T00:00:00Z",
13
+ git_branch: null,
14
+ cwd_hash: null,
15
+ working_language: null,
16
+ started_at: "2024-01-01T00:00:00Z",
17
+ ended_at: "2024-01-01T00:01:00Z",
18
+ turns,
19
+ turn_count: turns.length,
20
+ tool_call_count: turns.flatMap((turn) => turn.content).filter((block) => block.type === "tool_use")
21
+ .length,
22
+ has_tool_calls: true,
23
+ has_thinking_blocks: false,
24
+ has_file_changes: false,
25
+ has_shell_commands: false,
26
+ total_input_tokens: null,
27
+ total_output_tokens: null,
28
+ total_cache_read_tokens: null,
29
+ content_fidelity: "full",
30
+ env_state: null,
31
+ score: null,
32
+ raw_r2_key: "",
33
+ normalized_r2_key: "",
34
+ };
35
+ }
36
+ function makeTurn(role, content) {
37
+ return {
38
+ turn_id: Math.random().toString(36).slice(2),
39
+ parent_turn_id: null,
40
+ role,
41
+ timestamp: null,
42
+ content,
43
+ model: null,
44
+ usage: null,
45
+ source_metadata: {},
46
+ };
47
+ }
48
+ describe("tool hierarchy", () => {
49
+ it("normalizes namespaced shell tools into a single hierarchy", () => {
50
+ const normalized = getNormalizedToolHierarchy("functions.exec_command");
51
+ expect(normalized).toMatchObject({
52
+ normalizedToolId: "shell.command",
53
+ family: "shell",
54
+ kind: "command",
55
+ token_prefix: "Bash",
56
+ });
57
+ });
58
+ it("lists canonical file tools from the shared hierarchy", () => {
59
+ expect(listNormalizedToolsByFamily("file").map((tool) => tool.normalizedToolId)).toEqual([
60
+ "file.read",
61
+ "file.write",
62
+ "file.edit",
63
+ "file.multi_edit",
64
+ ]);
65
+ });
66
+ });
67
+ describe("tokenizeBashCommand", () => {
68
+ it("treats read-shaped and write-shaped shell commands differently", () => {
69
+ expect(tokenizeBashCommand("sed -n '1,40p' src/server.ts", 0)).toBe("Bash:fs_read:pass");
70
+ expect(tokenizeBashCommand("sed -i '' 's/old/new/' src/server.ts", 0)).toBe("Bash:fs_write:pass");
71
+ expect(tokenizeBashCommand("sort -o tmp/out.txt src/server.ts", 0)).toBe("Bash:text_filter_write:sort:pass");
72
+ });
73
+ });
74
+ describe("normalizeToolUse", () => {
75
+ it("drops empty write_stdin polls", () => {
76
+ const normalized = normalizeToolUse({
77
+ type: "tool_use",
78
+ tool_call_id: "stdin-1",
79
+ tool_name: "functions.write_stdin",
80
+ tool_input: { session_id: 1234, chars: "", yield_time_ms: 1000 },
81
+ }, null);
82
+ expect(normalized).toBeNull();
83
+ });
84
+ it("classifies file mutation tools through the shared hierarchy", () => {
85
+ expect(isFileMutationTool("Edit", { path: "src/server.ts" })).toBe(true);
86
+ expect(isFileMutationTool("functions.exec_command", {
87
+ cmd: "awk 'NF' src/server.ts > tmp/server.filtered.ts",
88
+ })).toBe(true);
89
+ });
90
+ });
91
+ describe("extractFailureExchanges", () => {
92
+ it("treats clean ctrl-c write_stdin flows as canceled exchanges", () => {
93
+ const turns = [
94
+ makeTurn("user", [{ type: "text", text: "Run the watch command, then stop it." }]),
95
+ makeTurn("assistant", [
96
+ {
97
+ type: "tool_use",
98
+ tool_call_id: "exec-1",
99
+ tool_name: "functions.exec_command",
100
+ tool_input: { cmd: "vitest --watch", tty: true },
101
+ },
102
+ {
103
+ type: "tool_result",
104
+ tool_call_id: "exec-1",
105
+ is_error: false,
106
+ result_content: "Process running with session ID 4242",
107
+ exit_code: null,
108
+ },
109
+ {
110
+ type: "tool_use",
111
+ tool_call_id: "stdin-1",
112
+ tool_name: "functions.write_stdin",
113
+ tool_input: { session_id: 4242, chars: "\u0003", yield_time_ms: 1000 },
114
+ },
115
+ {
116
+ type: "tool_result",
117
+ tool_call_id: "stdin-1",
118
+ is_error: true,
119
+ result_content: "Process exited with code 130\n^C",
120
+ exit_code: 130,
121
+ },
122
+ ]),
123
+ ];
124
+ expect(extractFailureExchanges(makeTrace(turns))).toEqual([
125
+ {
126
+ toolTokens: ["Bash:test:pass", "Bash:pty_control:interrupt:fail"],
127
+ hasError: false,
128
+ outcome: "canceled",
129
+ },
130
+ ]);
131
+ });
132
+ });
133
+ describe("normalizeTraceForEvaluation", () => {
134
+ it("builds a persisted exchange artifact with actions and versioning", () => {
135
+ const turns = [
136
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
137
+ {
138
+ ...makeTurn("assistant", [
139
+ {
140
+ type: "tool_use",
141
+ tool_call_id: "exec-1",
142
+ tool_name: "functions.exec_command",
143
+ tool_input: { cmd: "pnpm test" },
144
+ },
145
+ {
146
+ type: "tool_result",
147
+ tool_call_id: "exec-1",
148
+ is_error: false,
149
+ result_content: "ok",
150
+ exit_code: 0,
151
+ },
152
+ ]),
153
+ usage: {
154
+ input_tokens: 10,
155
+ output_tokens: 42,
156
+ cache_read_input_tokens: null,
157
+ cache_creation_input_tokens: null,
158
+ reasoning_tokens: null,
159
+ },
160
+ },
161
+ ];
162
+ expect(normalizeTraceForEvaluation(makeTrace(turns))).toEqual({
163
+ version: TRACE_NORMALIZATION_VERSION,
164
+ exchanges: [
165
+ {
166
+ exchangeIndex: 0,
167
+ actions: [
168
+ {
169
+ toolCallId: "exec-1",
170
+ rawToolName: "functions.exec_command",
171
+ normalizedToolId: "shell.command",
172
+ family: "shell",
173
+ kind: "command",
174
+ token: "Bash:build:pass",
175
+ exitCode: 0,
176
+ },
177
+ ],
178
+ toolTokens: ["Bash:build:pass"],
179
+ hasError: false,
180
+ outcome: "success",
181
+ prevOutcome: null,
182
+ tokenCount: 42,
183
+ },
184
+ ],
185
+ });
186
+ });
187
+ });
188
+ //# sourceMappingURL=tool-normalization.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-normalization.test.js","sourceRoot":"","sources":["../src/tool-normalization.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Turn, TurnActor } from "./types.js";
2
+ export type { TurnActor } from "./types.js";
2
3
  export declare function deriveTurnActors(turns: Turn[]): Record<string, TurnActor>;
3
4
  //# sourceMappingURL=turn-actors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-actors.d.ts","sourceRoot":"","sources":["../src/turn-actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiBlD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAqDzE"}
1
+ {"version":3,"file":"turn-actors.d.ts","sourceRoot":"","sources":["../src/turn-actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiB5C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAqDzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"turn-actors.js","sourceRoot":"","sources":["../src/turn-actors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-actors.js","sourceRoot":"","sources":["../src/turn-actors.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export type SourceTool = "claude_code" | "codex_cli" | "cursor";
2
- export type FailureMode = "tool_call_failure" | "repeated_tool_calls" | "context_limit_approached" | "catastrophic_failure" | "graceful_recovery" | "unexpected_capability" | "wrong_tool_sequence" | "no_failure";
2
+ export type JsonPrimitive = string | number | boolean | null;
3
+ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
4
+ export interface JsonObject {
5
+ [key: string]: JsonValue;
6
+ }
7
+ export type FailureMode = "tool_call_failure" | "repeated_failing_root_cause" | "repeated_tool_calls" | "context_limit_approached" | "catastrophic_failure" | "graceful_recovery" | "unexpected_capability" | "wrong_tool_sequence" | "no_failure";
8
+ export type QualityTier = "bronze" | "silver" | "gold";
3
9
  export interface TokenUsage {
4
10
  input_tokens: number;
5
11
  output_tokens: number;
@@ -50,6 +56,34 @@ export interface EnvState {
50
56
  open_files_in_editor: string[] | null;
51
57
  extraction_method: "passive" | "active";
52
58
  }
59
+ export type TraceScoreComponentSource = "trace" | "normalization" | "label" | "judge" | "corpus";
60
+ export interface TraceScoreComponent {
61
+ key: string;
62
+ label: string;
63
+ score: number;
64
+ weight: number;
65
+ source: TraceScoreComponentSource;
66
+ available: boolean;
67
+ reason: string;
68
+ evidence: JsonValue | null;
69
+ }
70
+ export interface TraceScoreBreakdown {
71
+ aggregation: "weighted_average";
72
+ component_count: number;
73
+ available_weight: number;
74
+ total_weight: number;
75
+ components: TraceScoreComponent[];
76
+ }
77
+ export interface TraceScoreContext {
78
+ failure_modes_override?: FailureMode[];
79
+ anomaly_score?: number | null;
80
+ workflow_shape?: string | null;
81
+ length_bucket?: string | null;
82
+ tool_density?: string | null;
83
+ failure_judge_verdict?: string | null;
84
+ failure_judge_agreement?: string | null;
85
+ failure_judge_confidence?: number | null;
86
+ }
53
87
  export interface TraceScore {
54
88
  completeness: "complete" | "incomplete" | "malformed";
55
89
  failure_modes: FailureMode[];
@@ -58,6 +92,7 @@ export interface TraceScore {
58
92
  content_fidelity: "full" | "chat_only";
59
93
  total: number;
60
94
  payout_cents: number;
95
+ breakdown: TraceScoreBreakdown;
61
96
  failure_taxonomy_label: string | null;
62
97
  failure_taxonomy_explanation: string | null;
63
98
  rarity_score: number | null;
@@ -99,6 +134,8 @@ export interface NormalizedTrace {
99
134
  content_fidelity: "full" | "chat_only";
100
135
  env_state: EnvState | null;
101
136
  score: TraceScore | null;
137
+ raw_json?: JsonValue | null;
138
+ raw_json_format?: string | null;
102
139
  raw_r2_key: string;
103
140
  normalized_r2_key: string;
104
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import type { JsonValue } from "./types.js";
2
3
  export declare const NormalizedTraceSchema: z.ZodObject<{
3
4
  trace_id: z.ZodOptional<z.ZodString>;
4
5
  schema_version: z.ZodOptional<z.ZodString>;
@@ -31,6 +32,8 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
31
32
  content_fidelity: z.ZodOptional<z.ZodEnum<["full", "chat_only"]>>;
32
33
  env_state: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
33
34
  score: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
35
+ raw_json: z.ZodOptional<z.ZodNullable<z.ZodType<JsonValue, z.ZodTypeDef, JsonValue>>>;
36
+ raw_json_format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
37
  raw_r2_key: z.ZodOptional<z.ZodString>;
35
38
  normalized_r2_key: z.ZodOptional<z.ZodString>;
36
39
  }, "strip", z.ZodTypeAny, {
@@ -38,6 +41,7 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
38
41
  source_session_id: string;
39
42
  chunk_index: number;
40
43
  chunk_start_turn: number;
44
+ git_branch?: string | null | undefined;
41
45
  trace_id?: string | undefined;
42
46
  schema_version?: string | undefined;
43
47
  chunk_complete?: boolean | undefined;
@@ -47,7 +51,6 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
47
51
  submitted_by?: string | undefined;
48
52
  submitted_at?: string | undefined;
49
53
  extracted_at?: string | undefined;
50
- git_branch?: string | null | undefined;
51
54
  cwd_hash?: string | null | undefined;
52
55
  working_language?: string | null | undefined;
53
56
  started_at?: string | undefined;
@@ -65,11 +68,14 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
65
68
  content_fidelity?: "full" | "chat_only" | undefined;
66
69
  env_state?: any;
67
70
  score?: any;
71
+ raw_json?: JsonValue | undefined;
72
+ raw_json_format?: string | null | undefined;
68
73
  raw_r2_key?: string | undefined;
69
74
  normalized_r2_key?: string | undefined;
70
75
  }, {
71
76
  source_tool: "claude_code" | "codex_cli" | "cursor";
72
77
  source_session_id: string;
78
+ git_branch?: string | null | undefined;
73
79
  trace_id?: string | undefined;
74
80
  schema_version?: string | undefined;
75
81
  chunk_index?: number | undefined;
@@ -81,7 +87,6 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
81
87
  submitted_by?: string | undefined;
82
88
  submitted_at?: string | undefined;
83
89
  extracted_at?: string | undefined;
84
- git_branch?: string | null | undefined;
85
90
  cwd_hash?: string | null | undefined;
86
91
  working_language?: string | null | undefined;
87
92
  started_at?: string | undefined;
@@ -99,6 +104,8 @@ export declare const NormalizedTraceSchema: z.ZodObject<{
99
104
  content_fidelity?: "full" | "chat_only" | undefined;
100
105
  env_state?: any;
101
106
  score?: any;
107
+ raw_json?: JsonValue | undefined;
108
+ raw_json_format?: string | null | undefined;
102
109
  raw_r2_key?: string | undefined;
103
110
  normalized_r2_key?: string | undefined;
104
111
  }>;
@@ -136,6 +143,8 @@ export declare const BatchSubmitSchema: z.ZodObject<{
136
143
  content_fidelity: z.ZodOptional<z.ZodEnum<["full", "chat_only"]>>;
137
144
  env_state: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
138
145
  score: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
146
+ raw_json: z.ZodOptional<z.ZodNullable<z.ZodType<JsonValue, z.ZodTypeDef, JsonValue>>>;
147
+ raw_json_format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
139
148
  raw_r2_key: z.ZodOptional<z.ZodString>;
140
149
  normalized_r2_key: z.ZodOptional<z.ZodString>;
141
150
  }, "strip", z.ZodTypeAny, {
@@ -143,6 +152,7 @@ export declare const BatchSubmitSchema: z.ZodObject<{
143
152
  source_session_id: string;
144
153
  chunk_index: number;
145
154
  chunk_start_turn: number;
155
+ git_branch?: string | null | undefined;
146
156
  trace_id?: string | undefined;
147
157
  schema_version?: string | undefined;
148
158
  chunk_complete?: boolean | undefined;
@@ -152,7 +162,6 @@ export declare const BatchSubmitSchema: z.ZodObject<{
152
162
  submitted_by?: string | undefined;
153
163
  submitted_at?: string | undefined;
154
164
  extracted_at?: string | undefined;
155
- git_branch?: string | null | undefined;
156
165
  cwd_hash?: string | null | undefined;
157
166
  working_language?: string | null | undefined;
158
167
  started_at?: string | undefined;
@@ -170,11 +179,14 @@ export declare const BatchSubmitSchema: z.ZodObject<{
170
179
  content_fidelity?: "full" | "chat_only" | undefined;
171
180
  env_state?: any;
172
181
  score?: any;
182
+ raw_json?: JsonValue | undefined;
183
+ raw_json_format?: string | null | undefined;
173
184
  raw_r2_key?: string | undefined;
174
185
  normalized_r2_key?: string | undefined;
175
186
  }, {
176
187
  source_tool: "claude_code" | "codex_cli" | "cursor";
177
188
  source_session_id: string;
189
+ git_branch?: string | null | undefined;
178
190
  trace_id?: string | undefined;
179
191
  schema_version?: string | undefined;
180
192
  chunk_index?: number | undefined;
@@ -186,7 +198,6 @@ export declare const BatchSubmitSchema: z.ZodObject<{
186
198
  submitted_by?: string | undefined;
187
199
  submitted_at?: string | undefined;
188
200
  extracted_at?: string | undefined;
189
- git_branch?: string | null | undefined;
190
201
  cwd_hash?: string | null | undefined;
191
202
  working_language?: string | null | undefined;
192
203
  started_at?: string | undefined;
@@ -204,6 +215,8 @@ export declare const BatchSubmitSchema: z.ZodObject<{
204
215
  content_fidelity?: "full" | "chat_only" | undefined;
205
216
  env_state?: any;
206
217
  score?: any;
218
+ raw_json?: JsonValue | undefined;
219
+ raw_json_format?: string | null | undefined;
207
220
  raw_r2_key?: string | undefined;
208
221
  normalized_r2_key?: string | undefined;
209
222
  }>, "many">;
@@ -214,6 +227,7 @@ export declare const BatchSubmitSchema: z.ZodObject<{
214
227
  source_session_id: string;
215
228
  chunk_index: number;
216
229
  chunk_start_turn: number;
230
+ git_branch?: string | null | undefined;
217
231
  trace_id?: string | undefined;
218
232
  schema_version?: string | undefined;
219
233
  chunk_complete?: boolean | undefined;
@@ -223,7 +237,6 @@ export declare const BatchSubmitSchema: z.ZodObject<{
223
237
  submitted_by?: string | undefined;
224
238
  submitted_at?: string | undefined;
225
239
  extracted_at?: string | undefined;
226
- git_branch?: string | null | undefined;
227
240
  cwd_hash?: string | null | undefined;
228
241
  working_language?: string | null | undefined;
229
242
  started_at?: string | undefined;
@@ -241,6 +254,8 @@ export declare const BatchSubmitSchema: z.ZodObject<{
241
254
  content_fidelity?: "full" | "chat_only" | undefined;
242
255
  env_state?: any;
243
256
  score?: any;
257
+ raw_json?: JsonValue | undefined;
258
+ raw_json_format?: string | null | undefined;
244
259
  raw_r2_key?: string | undefined;
245
260
  normalized_r2_key?: string | undefined;
246
261
  }[];
@@ -249,6 +264,7 @@ export declare const BatchSubmitSchema: z.ZodObject<{
249
264
  traces: {
250
265
  source_tool: "claude_code" | "codex_cli" | "cursor";
251
266
  source_session_id: string;
267
+ git_branch?: string | null | undefined;
252
268
  trace_id?: string | undefined;
253
269
  schema_version?: string | undefined;
254
270
  chunk_index?: number | undefined;
@@ -260,7 +276,6 @@ export declare const BatchSubmitSchema: z.ZodObject<{
260
276
  submitted_by?: string | undefined;
261
277
  submitted_at?: string | undefined;
262
278
  extracted_at?: string | undefined;
263
- git_branch?: string | null | undefined;
264
279
  cwd_hash?: string | null | undefined;
265
280
  working_language?: string | null | undefined;
266
281
  started_at?: string | undefined;
@@ -278,6 +293,8 @@ export declare const BatchSubmitSchema: z.ZodObject<{
278
293
  content_fidelity?: "full" | "chat_only" | undefined;
279
294
  env_state?: any;
280
295
  score?: any;
296
+ raw_json?: JsonValue | undefined;
297
+ raw_json_format?: string | null | undefined;
281
298
  raw_r2_key?: string | undefined;
282
299
  normalized_r2_key?: string | undefined;
283
300
  }[];
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkChC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoChC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ const JsonLiteralSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
3
+ const JsonValueSchema = z.lazy(() => z.union([JsonLiteralSchema, z.array(JsonValueSchema), z.record(JsonValueSchema)]));
2
4
  export const NormalizedTraceSchema = z.object({
3
5
  trace_id: z.string().optional(),
4
6
  schema_version: z.string().optional(),
@@ -31,6 +33,8 @@ export const NormalizedTraceSchema = z.object({
31
33
  content_fidelity: z.enum(["full", "chat_only"]).optional(),
32
34
  env_state: z.any().nullable().optional(),
33
35
  score: z.any().nullable().optional(),
36
+ raw_json: JsonValueSchema.nullable().optional(),
37
+ raw_json_format: z.string().nullable().optional(),
34
38
  raw_r2_key: z.string().optional(),
35
39
  normalized_r2_key: z.string().optional(),
36
40
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC1D,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3C,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvE,CAAC,CAAC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,13 @@ describe("NormalizedTraceSchema", () => {
28
28
  const result = NormalizedTraceSchema.safeParse(makeTrace({ turn_count: -1 }));
29
29
  expect(result.success).toBe(false);
30
30
  });
31
+ it("accepts raw_json payloads", () => {
32
+ const result = NormalizedTraceSchema.safeParse(makeTrace({
33
+ raw_json: { events: [{ type: "session_meta" }] },
34
+ raw_json_format: "codex_cli.jsonl",
35
+ }));
36
+ expect(result.success).toBe(true);
37
+ });
31
38
  });
32
39
  describe("BatchSubmitSchema", () => {
33
40
  it("valid batch → success", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.test.js","sourceRoot":"","sources":["../src/validators.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.test.js","sourceRoot":"","sources":["../src/validators.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracemarketplace/shared",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -27,10 +27,10 @@
27
27
  }
28
28
  },
29
29
  "scripts": {
30
- "build": "tsc",
31
- "typecheck": "tsc --noEmit",
32
- "test": "vitest run",
33
- "test:watch": "vitest"
30
+ "build": "node ./scripts/generate-tool-normalization.mjs && tsc",
31
+ "typecheck": "node ./scripts/generate-tool-normalization.mjs && tsc --noEmit",
32
+ "test": "node ./scripts/generate-tool-normalization.mjs && vitest run",
33
+ "test:watch": "node ./scripts/generate-tool-normalization.mjs && vitest"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/better-sqlite3": "^7.6.0",
@@ -40,7 +40,6 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "better-sqlite3": "^12.8.0",
43
- "fzstd": "^0.1.1",
44
43
  "zod": "^3.22.0"
45
44
  }
46
45
  }
@@ -0,0 +1,16 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ const scriptDir = dirname(fileURLToPath(import.meta.url));
6
+ const specPath = resolve(scriptDir, "../src/tool-normalization.spec.json");
7
+ const outputPath = resolve(scriptDir, "../src/tool-normalization.generated.ts");
8
+
9
+ const spec = JSON.parse(readFileSync(specPath, "utf8"));
10
+ const generated = `// This file is generated from tool-normalization.spec.json. Do not edit directly.
11
+ export const toolNormalizationSpec = ${JSON.stringify(spec, null, 2)} as const;
12
+
13
+ export type ToolNormalizationSpec = typeof toolNormalizationSpec;
14
+ `;
15
+
16
+ writeFileSync(outputPath, generated);
@@ -323,4 +323,63 @@ describe("extractClaudeCode", () => {
323
323
  "tool",
324
324
  ]);
325
325
  });
326
+
327
+ it("skips signature-only thinking blocks without plaintext", async () => {
328
+ const hiddenThinkingFixturePath = join(tmpdir(), "tracemp-extractor-hidden-thinking-test.jsonl");
329
+ writeFileSync(
330
+ hiddenThinkingFixturePath,
331
+ [
332
+ {
333
+ type: "user",
334
+ uuid: "u1",
335
+ parentUuid: null,
336
+ timestamp: "2024-01-01T00:00:00.000Z",
337
+ message: { role: "user", content: "Check the route" },
338
+ },
339
+ {
340
+ type: "assistant",
341
+ uuid: "a1",
342
+ parentUuid: "u1",
343
+ timestamp: "2024-01-01T00:00:01.000Z",
344
+ message: {
345
+ role: "assistant",
346
+ model: "claude-sonnet-4-6",
347
+ content: [{ type: "thinking", thinking: "", signature: "sig-123" }],
348
+ usage: {
349
+ input_tokens: 2,
350
+ cache_creation_input_tokens: 10,
351
+ cache_read_input_tokens: 5,
352
+ output_tokens: 8,
353
+ },
354
+ },
355
+ },
356
+ {
357
+ type: "assistant",
358
+ uuid: "a2",
359
+ parentUuid: "a1",
360
+ timestamp: "2024-01-01T00:00:02.000Z",
361
+ message: {
362
+ role: "assistant",
363
+ model: "claude-sonnet-4-6",
364
+ content: [{ type: "text", text: "I found the route." }],
365
+ usage: {
366
+ input_tokens: 2,
367
+ cache_creation_input_tokens: 10,
368
+ cache_read_input_tokens: 5,
369
+ output_tokens: 12,
370
+ },
371
+ },
372
+ },
373
+ ].map((line) => JSON.stringify(line)).join("\n") + "\n",
374
+ );
375
+
376
+ const trace = await extractClaudeCode(hiddenThinkingFixturePath, "test@test.com");
377
+
378
+ expect(trace.turn_count).toBe(2);
379
+ expect(trace.has_thinking_blocks).toBe(false);
380
+ expect(trace.turns[1].content).toEqual([
381
+ { type: "text", text: "I found the route." },
382
+ ]);
383
+ expect(trace.turns[1].usage?.output_tokens).toBe(20);
384
+ });
326
385
  });