@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
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from "vitest";
2
- import { detectFailureModes, checkCompleteness, scoreTrace } from "./scoring.js";
2
+ import { detectFailureModes, checkCompleteness, deriveQualityTier, scoreTrace } from "./scoring.js";
3
3
  function makeTrace(overrides = {}) {
4
4
  return {
5
5
  trace_id: "test-id",
@@ -45,30 +45,49 @@ function makeTurn(role, content) {
45
45
  source_metadata: {},
46
46
  };
47
47
  }
48
+ function makeToolUse(tool_call_id, tool_name, tool_input) {
49
+ return { type: "tool_use", tool_call_id, tool_name, tool_input };
50
+ }
51
+ function makeToolResult(tool_call_id, is_error, result_content, exit_code) {
52
+ return { type: "tool_result", tool_call_id, is_error, result_content, exit_code };
53
+ }
48
54
  describe("detectFailureModes", () => {
49
55
  it("empty turns → no_failure", () => {
50
56
  const result = detectFailureModes(makeTrace({ turns: [] }));
51
57
  expect(result).toEqual(["no_failure"]);
52
58
  });
53
- it("tool_result with is_error → tool_call_failure", () => {
59
+ it("failed exchange → tool_call_failure", () => {
54
60
  const turns = [
55
- makeTurn("user", [{ type: "tool_result", tool_call_id: "t1", is_error: true, result_content: "err", exit_code: 1 }]),
61
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
62
+ makeTurn("assistant", [
63
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
64
+ makeToolResult("t1", true, "test failure", 1),
65
+ ]),
56
66
  ];
57
67
  const result = detectFailureModes(makeTrace({ turns }));
58
68
  expect(result).toContain("tool_call_failure");
59
69
  });
60
- it("same tool consecutive repeated_tool_calls", () => {
61
- const toolUse = (n) => ({
62
- type: "tool_use",
63
- tool_call_id: `t${n}`,
64
- tool_name: "bash",
65
- tool_input: {},
66
- });
70
+ it("repeated failing root cause across three exchanges is detected", () => {
67
71
  const turns = [
68
- makeTurn("assistant", [toolUse(1), toolUse(2), toolUse(3)]),
72
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
73
+ makeTurn("assistant", [
74
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
75
+ makeToolResult("t1", true, "FAIL src/app.test.ts\nTypeError: config is undefined", 1),
76
+ ]),
77
+ makeTurn("user", [{ type: "text", text: "Try again with a focused rerun." }]),
78
+ makeTurn("assistant", [
79
+ makeToolUse("t2", "functions.exec_command", { cmd: "pnpm test --runInBand" }),
80
+ makeToolResult("t2", true, "FAIL src/app.test.ts\nTypeError: config is undefined", 1),
81
+ ]),
82
+ makeTurn("user", [{ type: "text", text: "One more focused attempt." }]),
83
+ makeTurn("assistant", [
84
+ makeToolUse("t3", "functions.exec_command", { cmd: "vitest src/app.test.ts" }),
85
+ makeToolResult("t3", true, "FAIL src/app.test.ts\nTypeError: config is undefined", 1),
86
+ ]),
69
87
  ];
70
88
  const result = detectFailureModes(makeTrace({ turns }));
71
- expect(result).toContain("repeated_tool_calls");
89
+ expect(result).toContain("repeated_failing_root_cause");
90
+ expect(result).toContain("catastrophic_failure");
72
91
  });
73
92
  it("context window text → context_limit_approached", () => {
74
93
  const turns = [
@@ -77,23 +96,33 @@ describe("detectFailureModes", () => {
77
96
  const result = detectFailureModes(makeTrace({ turns }));
78
97
  expect(result).toContain("context_limit_approached");
79
98
  });
80
- it("final turns all errors → catastrophic_failure", () => {
81
- const errResult = { type: "tool_result", tool_call_id: "t1", is_error: true, result_content: "fail", exit_code: 1 };
99
+ it("final failed exchange → catastrophic_failure", () => {
82
100
  const turns = [
83
- makeTurn("user", [errResult]),
84
- makeTurn("user", [errResult]),
101
+ makeTurn("user", [{ type: "text", text: "Run the failing command." }]),
102
+ makeTurn("assistant", [
103
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
104
+ makeToolResult("t1", true, "fail", 1),
105
+ ]),
85
106
  ];
86
107
  const result = detectFailureModes(makeTrace({ turns }));
87
108
  expect(result).toContain("catastrophic_failure");
88
109
  });
89
- it("tool errors + later recovery text → graceful_recovery", () => {
90
- const errResult = { type: "tool_result", tool_call_id: "t1", is_error: true, result_content: "fail", exit_code: 1 };
110
+ it("failed exchange followed by successful exchange → graceful_recovery", () => {
91
111
  const turns = [
92
- makeTurn("user", [errResult]),
93
- makeTurn("assistant", [{ type: "text", text: "Let me try a different approach instead." }]),
112
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
113
+ makeTurn("assistant", [
114
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
115
+ makeToolResult("t1", true, "fail", 1),
116
+ ]),
117
+ makeTurn("user", [{ type: "text", text: "Try a safer command." }]),
118
+ makeTurn("assistant", [
119
+ makeToolUse("t2", "functions.exec_command", { cmd: "pnpm test --runInBand" }),
120
+ makeToolResult("t2", false, "ok", 0),
121
+ ]),
94
122
  ];
95
123
  const result = detectFailureModes(makeTrace({ turns }));
96
124
  expect(result).toContain("graceful_recovery");
125
+ expect(result).toContain("tool_call_failure");
97
126
  });
98
127
  });
99
128
  describe("checkCompleteness", () => {
@@ -121,13 +150,21 @@ describe("scoreTrace", () => {
121
150
  const score = scoreTrace(makeTrace({ turns: [], content_fidelity: "chat_only" }));
122
151
  expect(score.completeness).toBe("malformed");
123
152
  expect(score.payout_cents).toBeLessThan(100);
153
+ expect(score.breakdown.component_count).toBeGreaterThan(0);
124
154
  });
125
155
  it("graceful_recovery + tool_call_failure → bonuses stack", () => {
126
156
  const baseScore = scoreTrace(makeTrace({ turns: [], content_fidelity: "full" }));
127
- const errResult = { type: "tool_result", tool_call_id: "t1", is_error: true, result_content: "fail", exit_code: 1 };
128
157
  const turns = [
129
- makeTurn("user", [errResult]),
130
- makeTurn("assistant", [{ type: "text", text: "Let me try a different approach instead." }]),
158
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
159
+ makeTurn("assistant", [
160
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
161
+ makeToolResult("t1", true, "fail", 1),
162
+ ]),
163
+ makeTurn("user", [{ type: "text", text: "Try again." }]),
164
+ makeTurn("assistant", [
165
+ makeToolUse("t2", "functions.exec_command", { cmd: "pnpm test --runInBand" }),
166
+ makeToolResult("t2", false, "ok", 0),
167
+ ]),
131
168
  ];
132
169
  const bonusScore = scoreTrace(makeTrace({ turns, content_fidelity: "full" }));
133
170
  expect(bonusScore.payout_cents).toBeGreaterThan(baseScore.payout_cents);
@@ -135,10 +172,17 @@ describe("scoreTrace", () => {
135
172
  expect(bonusScore.failure_modes).toContain("tool_call_failure");
136
173
  });
137
174
  it("total clamps to [0, 1]", () => {
138
- const errResult = { type: "tool_result", tool_call_id: "t1", is_error: true, result_content: "fail", exit_code: 1 };
139
175
  const turns = [
140
- makeTurn("user", [errResult]),
141
- makeTurn("assistant", [{ type: "text", text: "Let me try a different approach instead." }]),
176
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
177
+ makeTurn("assistant", [
178
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
179
+ makeToolResult("t1", true, "fail", 1),
180
+ ]),
181
+ makeTurn("user", [{ type: "text", text: "Try again." }]),
182
+ makeTurn("assistant", [
183
+ makeToolUse("t2", "functions.exec_command", { cmd: "pnpm test --runInBand" }),
184
+ makeToolResult("t2", false, "ok", 0),
185
+ ]),
142
186
  ];
143
187
  const score = scoreTrace(makeTrace({ turns, content_fidelity: "full", total_input_tokens: 1000000, total_output_tokens: 1000000 }));
144
188
  expect(score.total).toBeGreaterThanOrEqual(0);
@@ -153,5 +197,60 @@ describe("scoreTrace", () => {
153
197
  const expected = Math.min(500, Math.round(score.total * 500));
154
198
  expect(score.payout_cents).toBe(expected);
155
199
  });
200
+ it("uses async label and novelty context when provided", () => {
201
+ const turns = [
202
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
203
+ makeTurn("assistant", [
204
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
205
+ makeToolResult("t1", true, "fail", 1),
206
+ ]),
207
+ makeTurn("user", [{ type: "text", text: "Try again with a fix." }]),
208
+ makeTurn("assistant", [
209
+ makeToolUse("t2", "functions.exec_command", { cmd: "pnpm test --runInBand" }),
210
+ makeToolResult("t2", false, "ok", 0),
211
+ ]),
212
+ ];
213
+ const baseScore = scoreTrace(makeTrace({ turns, content_fidelity: "full" }));
214
+ const enrichedScore = scoreTrace(makeTrace({ turns, content_fidelity: "full" }), undefined, {
215
+ anomaly_score: 2.4,
216
+ workflow_shape: "shell_and_editor",
217
+ length_bucket: "medium",
218
+ tool_density: "medium",
219
+ failure_judge_verdict: "confirmed_failure",
220
+ failure_judge_agreement: "agree",
221
+ failure_judge_confidence: 0.94,
222
+ });
223
+ expect(enrichedScore.total).toBeGreaterThan(baseScore.total);
224
+ expect(enrichedScore.breakdown.components.some((component) => component.key === "novelty")).toBe(true);
225
+ expect(enrichedScore.breakdown.components.some((component) => component.key === "failure_judge")).toBe(true);
226
+ });
227
+ it("respects failure mode overrides from downstream labels", () => {
228
+ const turns = [
229
+ makeTurn("user", [{ type: "text", text: "Run the tests." }]),
230
+ makeTurn("assistant", [
231
+ makeToolUse("t1", "functions.exec_command", { cmd: "pnpm test" }),
232
+ makeToolResult("t1", true, "fail", 1),
233
+ ]),
234
+ ];
235
+ const baseScore = scoreTrace(makeTrace({ turns, content_fidelity: "full" }));
236
+ const overriddenScore = scoreTrace(makeTrace({ turns, content_fidelity: "full" }), undefined, {
237
+ failure_modes_override: ["no_failure"],
238
+ failure_judge_verdict: "false_positive",
239
+ failure_judge_agreement: "disagree",
240
+ failure_judge_confidence: 0.9,
241
+ });
242
+ expect(baseScore.failure_modes).toContain("tool_call_failure");
243
+ expect(overriddenScore.failure_modes).toEqual(["no_failure"]);
244
+ expect(overriddenScore.total).toBeLessThan(baseScore.total);
245
+ });
246
+ });
247
+ describe("deriveQualityTier", () => {
248
+ it("applies the new score band thresholds", () => {
249
+ expect(deriveQualityTier(0.2)).toBe("bronze");
250
+ expect(deriveQualityTier(0.63)).toBe("bronze");
251
+ expect(deriveQualityTier(0.64)).toBe("silver");
252
+ expect(deriveQualityTier(0.81)).toBe("silver");
253
+ expect(deriveQualityTier(0.82)).toBe("gold");
254
+ });
156
255
  });
157
256
  //# sourceMappingURL=scoring.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.test.js","sourceRoot":"","sources":["../src/scoring.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoring.test.js","sourceRoot":"","sources":["../src/scoring.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { ContentBlock, NormalizedTrace } from "./types.js";
2
+ import { toolNormalizationSpec } from "./tool-normalization.generated.js";
3
+ type ToolDescriptorMap = typeof toolNormalizationSpec.normalized_tools;
4
+ export type NormalizedToolId = keyof ToolDescriptorMap;
5
+ export type NormalizedToolFamily = "shell" | "file";
6
+ export type NormalizedToolDescriptor = {
7
+ family: NormalizedToolFamily;
8
+ kind: string;
9
+ aliases: readonly string[];
10
+ token_prefix: string;
11
+ mutates_file: boolean;
12
+ };
13
+ export type NormalizedToolIdentifier = NormalizedToolId | "tool.generic";
14
+ export type FailureExchangeOutcome = "success" | "failure" | "success_after_retry" | "canceled";
15
+ export declare const TRACE_NORMALIZATION_VERSION = "evaluation-normalization-v1";
16
+ export type ResolvedNormalizedTool = NormalizedToolDescriptor & {
17
+ normalizedToolId: NormalizedToolId;
18
+ };
19
+ export interface NormalizedToolUse {
20
+ toolCallId: string;
21
+ rawToolName: string;
22
+ normalizedToolId: NormalizedToolIdentifier;
23
+ family: NormalizedToolFamily | "generic";
24
+ kind: string;
25
+ token: string;
26
+ exitCode: number | null;
27
+ }
28
+ export interface FailureExchange {
29
+ toolTokens: string[];
30
+ hasError: boolean;
31
+ outcome: FailureExchangeOutcome;
32
+ }
33
+ export interface TraceNormalizationExchange {
34
+ exchangeIndex: number;
35
+ actions: NormalizedToolUse[];
36
+ toolTokens: string[];
37
+ hasError: boolean;
38
+ outcome: FailureExchangeOutcome;
39
+ prevOutcome: FailureExchangeOutcome | null;
40
+ tokenCount: number;
41
+ }
42
+ export interface TraceNormalization {
43
+ version: string;
44
+ exchanges: TraceNormalizationExchange[];
45
+ }
46
+ type ToolUseBlock = Extract<ContentBlock, {
47
+ type: "tool_use";
48
+ }>;
49
+ export declare function normalizeToolName(toolName: string): string;
50
+ export declare function toolNameMatches(toolName: string, candidate: string): boolean;
51
+ export declare function getNormalizedToolHierarchy(toolName: string): ResolvedNormalizedTool | null;
52
+ export declare function listNormalizedToolsByFamily(family: NormalizedToolFamily): ResolvedNormalizedTool[];
53
+ export declare function isShellToolName(toolName: string): boolean;
54
+ export declare function isWriteStdinToolName(toolName: string): boolean;
55
+ export declare function extractShellCommand(toolInput: Record<string, unknown>): string | null;
56
+ export declare function hasShellWriteRedirect(command: string): boolean;
57
+ export declare function isWriteShapedShellCommand(command: string): boolean;
58
+ export declare function isFileMutationTool(toolName: string, toolInput: Record<string, unknown>): boolean;
59
+ export declare function tokenizeWriteStdinChars(chars: string, exitCode: number | null | undefined): string;
60
+ export declare function tokenizeBashCommand(command: string, exitCode: number | null | undefined): string;
61
+ export declare function tokenizeFileTool(toolName: string, rawPath: string): string;
62
+ export declare function normalizeToolUse(block: ToolUseBlock, exitCode: number | null | undefined): NormalizedToolUse | null;
63
+ export declare function extractFailureExchanges(trace: NormalizedTrace): FailureExchange[];
64
+ export declare function normalizeTraceForEvaluation(trace: NormalizedTrace): TraceNormalization;
65
+ export {};
66
+ //# sourceMappingURL=tool-normalization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-normalization.d.ts","sourceRoot":"","sources":["../src/tool-normalization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAW1E,KAAK,iBAAiB,GAAG,OAAO,qBAAqB,CAAC,gBAAgB,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC;AACvD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AACzE,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,SAAS,GACT,qBAAqB,GACrB,UAAU,CAAC;AACf,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG;IAC9D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,WAAW,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,0BAA0B,EAAE,CAAC;CACzC;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAUhE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,IAAI,CAQ/B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,GAC3B,sBAAsB,EAAE,CAI1B;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,GAAG,IAAI,CAkBf;AA4GD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAgD9D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiBlE;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAkBT;AA8CD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAYR;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAoCR;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB1E;AAcD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,iBAAiB,GAAG,IAAI,CA0D1B;AA2BD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,CAMjF;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyGpB"}
@@ -0,0 +1,181 @@
1
+ export declare const toolNormalizationSpec: {
2
+ readonly schema_version: 1;
3
+ readonly normalized_tools: {
4
+ readonly "shell.command": {
5
+ readonly family: "shell";
6
+ readonly kind: "command";
7
+ readonly aliases: readonly ["exec_command", "bash", "bash_command", "run_shell_command", "shell"];
8
+ readonly token_prefix: "Bash";
9
+ readonly mutates_file: false;
10
+ };
11
+ readonly "shell.stdin": {
12
+ readonly family: "shell";
13
+ readonly kind: "stdin";
14
+ readonly aliases: readonly ["write_stdin"];
15
+ readonly token_prefix: "Bash";
16
+ readonly mutates_file: false;
17
+ };
18
+ readonly "file.read": {
19
+ readonly family: "file";
20
+ readonly kind: "read";
21
+ readonly aliases: readonly ["read", "read_file", "grep", "list_directory"];
22
+ readonly token_prefix: "Read";
23
+ readonly mutates_file: false;
24
+ };
25
+ readonly "file.write": {
26
+ readonly family: "file";
27
+ readonly kind: "write";
28
+ readonly aliases: readonly ["write", "write_file", "create_file"];
29
+ readonly token_prefix: "Write";
30
+ readonly mutates_file: true;
31
+ };
32
+ readonly "file.edit": {
33
+ readonly family: "file";
34
+ readonly kind: "edit";
35
+ readonly aliases: readonly ["edit", "edit_file", "replace"];
36
+ readonly token_prefix: "Edit";
37
+ readonly mutates_file: true;
38
+ };
39
+ readonly "file.multi_edit": {
40
+ readonly family: "file";
41
+ readonly kind: "multi_edit";
42
+ readonly aliases: readonly ["multiedit"];
43
+ readonly token_prefix: "MultiEdit";
44
+ readonly mutates_file: true;
45
+ };
46
+ };
47
+ readonly shell: {
48
+ readonly dangerous_verbs: readonly ["sudo", "su", "doas", "chmod", "chown", "dd", "shred"];
49
+ readonly text_filter_tokens: {
50
+ readonly awk: "text_filter:awk";
51
+ readonly cut: "text_filter:cut";
52
+ readonly sort: "text_filter:sort";
53
+ };
54
+ readonly text_filter_write_verbs: readonly ["awk", "cut", "sort"];
55
+ readonly verb_categories: {
56
+ readonly npm: "build";
57
+ readonly pnpm: "build";
58
+ readonly yarn: "build";
59
+ readonly bun: "build";
60
+ readonly npx: "build";
61
+ readonly cargo: "build";
62
+ readonly rustup: "build";
63
+ readonly pip: "build";
64
+ readonly pip3: "build";
65
+ readonly uv: "build";
66
+ readonly poetry: "build";
67
+ readonly pipenv: "build";
68
+ readonly conda: "build";
69
+ readonly make: "build";
70
+ readonly cmake: "build";
71
+ readonly ninja: "build";
72
+ readonly go: "build";
73
+ readonly gradle: "build";
74
+ readonly mvn: "build";
75
+ readonly bazel: "build";
76
+ readonly tsc: "build";
77
+ readonly vite: "build";
78
+ readonly webpack: "build";
79
+ readonly pytest: "test";
80
+ readonly jest: "test";
81
+ readonly vitest: "test";
82
+ readonly mocha: "test";
83
+ readonly rspec: "test";
84
+ readonly phpunit: "test";
85
+ readonly "cargo-test": "test";
86
+ readonly git: "vcs";
87
+ readonly gh: "vcs";
88
+ readonly svn: "vcs";
89
+ readonly curl: "network";
90
+ readonly wget: "network";
91
+ readonly ssh: "network";
92
+ readonly scp: "network";
93
+ readonly rsync: "network";
94
+ readonly nc: "network";
95
+ readonly netcat: "network";
96
+ readonly ncat: "network";
97
+ readonly sftp: "network";
98
+ readonly ftp: "network";
99
+ readonly cat: "fs_read";
100
+ readonly head: "fs_read";
101
+ readonly tail: "fs_read";
102
+ readonly less: "fs_read";
103
+ readonly ls: "fs_read";
104
+ readonly find: "fs_read";
105
+ readonly locate: "fs_read";
106
+ readonly grep: "fs_read";
107
+ readonly rg: "fs_read";
108
+ readonly ag: "fs_read";
109
+ readonly ack: "fs_read";
110
+ readonly wc: "fs_read";
111
+ readonly stat: "fs_read";
112
+ readonly file: "fs_read";
113
+ readonly du: "fs_read";
114
+ readonly diff: "fs_read";
115
+ readonly od: "fs_read";
116
+ readonly nl: "fs_read";
117
+ readonly which: "fs_read";
118
+ readonly xxd: "fs_read";
119
+ readonly rm: "fs_write";
120
+ readonly cp: "fs_write";
121
+ readonly mv: "fs_write";
122
+ readonly mkdir: "fs_write";
123
+ readonly touch: "fs_write";
124
+ readonly ln: "fs_write";
125
+ readonly tar: "fs_write";
126
+ readonly zip: "fs_write";
127
+ readonly unzip: "fs_write";
128
+ readonly python: "run";
129
+ readonly python3: "run";
130
+ readonly node: "run";
131
+ readonly ruby: "run";
132
+ readonly php: "run";
133
+ readonly perl: "run";
134
+ readonly bash: "run";
135
+ readonly sh: "run";
136
+ readonly zsh: "run";
137
+ readonly fish: "run";
138
+ readonly deno: "run";
139
+ readonly r: "run";
140
+ readonly rscript: "run";
141
+ readonly kill: "process";
142
+ readonly pkill: "process";
143
+ readonly killall: "process";
144
+ readonly ps: "process";
145
+ readonly top: "process";
146
+ readonly htop: "process";
147
+ readonly lsof: "process";
148
+ readonly sleep: "process";
149
+ readonly export: "env";
150
+ readonly unset: "env";
151
+ readonly env: "env";
152
+ readonly source: "env";
153
+ readonly printenv: "env";
154
+ readonly set: "env";
155
+ readonly apt: "sysadmin";
156
+ readonly "apt-get": "sysadmin";
157
+ readonly brew: "sysadmin";
158
+ readonly yum: "sysadmin";
159
+ readonly dnf: "sysadmin";
160
+ readonly pacman: "sysadmin";
161
+ readonly snap: "sysadmin";
162
+ readonly eval: "shell_meta";
163
+ readonly exec: "shell_meta";
164
+ readonly xargs: "shell_meta";
165
+ readonly cd: "shell_meta";
166
+ readonly pwd: "shell_meta";
167
+ readonly echo: "shell_meta";
168
+ readonly if: "shell_meta";
169
+ };
170
+ };
171
+ readonly file: {
172
+ readonly extra_mutation_aliases: readonly ["apply_patch", "write_file", "create_file", "delete_file", "rename_file", "move_file", "file_change"];
173
+ readonly sensitive_path_signals: readonly [".ssh", ".aws", "id_rsa", "credentials", ".env", "secrets", "token", "password", "private_key"];
174
+ readonly system_prefixes: readonly ["/etc/", "/usr/", "/var/", "/sys/", "/proc/", "/boot/", "/root/"];
175
+ readonly config_exts: readonly [".env", ".yaml", ".yml", ".toml", ".ini", ".cfg"];
176
+ readonly config_names: readonly ["config", "settings", "configuration"];
177
+ };
178
+ readonly tool_result_metadata_prefixes: readonly ["Command:", "Chunk ID:", "Wall time:", "Process exited with code", "Process running with session ID", "Original token count:", "Output:"];
179
+ };
180
+ export type ToolNormalizationSpec = typeof toolNormalizationSpec;
181
+ //# sourceMappingURL=tool-normalization.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-normalization.generated.d.ts","sourceRoot":"","sources":["../src/tool-normalization.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkQxB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}