@sentry/warden 0.8.0 → 0.10.0

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 (144) hide show
  1. package/README.md +4 -0
  2. package/conductor.json +8 -0
  3. package/dist/cli/fix.d.ts +3 -1
  4. package/dist/cli/fix.d.ts.map +1 -1
  5. package/dist/cli/fix.js +91 -59
  6. package/dist/cli/fix.js.map +1 -1
  7. package/dist/cli/main.d.ts.map +1 -1
  8. package/dist/cli/main.js +37 -9
  9. package/dist/cli/main.js.map +1 -1
  10. package/dist/cli/output/formatters.d.ts.map +1 -1
  11. package/dist/cli/output/formatters.js +3 -8
  12. package/dist/cli/output/formatters.js.map +1 -1
  13. package/dist/cli/output/ink-runner.d.ts +6 -17
  14. package/dist/cli/output/ink-runner.d.ts.map +1 -1
  15. package/dist/cli/output/ink-runner.js +124 -115
  16. package/dist/cli/output/ink-runner.js.map +1 -1
  17. package/dist/cli/output/jsonl.d.ts +7 -1
  18. package/dist/cli/output/jsonl.d.ts.map +1 -1
  19. package/dist/cli/output/jsonl.js +4 -1
  20. package/dist/cli/output/jsonl.js.map +1 -1
  21. package/dist/cli/output/reporter.d.ts +7 -3
  22. package/dist/cli/output/reporter.d.ts.map +1 -1
  23. package/dist/cli/output/reporter.js +15 -1
  24. package/dist/cli/output/reporter.js.map +1 -1
  25. package/dist/cli/output/tasks.d.ts +10 -1
  26. package/dist/cli/output/tasks.d.ts.map +1 -1
  27. package/dist/cli/output/tasks.js +127 -28
  28. package/dist/cli/output/tasks.js.map +1 -1
  29. package/dist/cli/terminal.d.ts +7 -1
  30. package/dist/cli/terminal.d.ts.map +1 -1
  31. package/dist/cli/terminal.js +31 -9
  32. package/dist/cli/terminal.js.map +1 -1
  33. package/dist/config/schema.d.ts +0 -1
  34. package/dist/config/schema.d.ts.map +1 -1
  35. package/dist/config/schema.js +1 -2
  36. package/dist/config/schema.js.map +1 -1
  37. package/dist/evals/index.d.ts +22 -0
  38. package/dist/evals/index.d.ts.map +1 -0
  39. package/dist/evals/index.js +92 -0
  40. package/dist/evals/index.js.map +1 -0
  41. package/dist/evals/judge.d.ts +12 -0
  42. package/dist/evals/judge.d.ts.map +1 -0
  43. package/dist/evals/judge.js +171 -0
  44. package/dist/evals/judge.js.map +1 -0
  45. package/dist/evals/runner.d.ts +18 -0
  46. package/dist/evals/runner.d.ts.map +1 -0
  47. package/dist/evals/runner.js +133 -0
  48. package/dist/evals/runner.js.map +1 -0
  49. package/dist/{examples → evals}/setup.d.ts.map +1 -1
  50. package/dist/evals/setup.js.map +1 -0
  51. package/dist/evals/types.d.ts +166 -0
  52. package/dist/evals/types.d.ts.map +1 -0
  53. package/dist/evals/types.js +134 -0
  54. package/dist/evals/types.js.map +1 -0
  55. package/dist/output/dedup.d.ts.map +1 -1
  56. package/dist/output/dedup.js +29 -57
  57. package/dist/output/dedup.js.map +1 -1
  58. package/dist/output/github-checks.d.ts.map +1 -1
  59. package/dist/output/github-checks.js +38 -10
  60. package/dist/output/github-checks.js.map +1 -1
  61. package/dist/output/renderer.d.ts.map +1 -1
  62. package/dist/output/renderer.js +16 -1
  63. package/dist/output/renderer.js.map +1 -1
  64. package/dist/output/stale.d.ts +1 -0
  65. package/dist/output/stale.d.ts.map +1 -1
  66. package/dist/output/stale.js +14 -8
  67. package/dist/output/stale.js.map +1 -1
  68. package/dist/sdk/analyze.d.ts +11 -0
  69. package/dist/sdk/analyze.d.ts.map +1 -1
  70. package/dist/sdk/analyze.js +185 -27
  71. package/dist/sdk/analyze.js.map +1 -1
  72. package/dist/sdk/extract.d.ts +55 -1
  73. package/dist/sdk/extract.d.ts.map +1 -1
  74. package/dist/sdk/extract.js +222 -32
  75. package/dist/sdk/extract.js.map +1 -1
  76. package/dist/sdk/haiku.d.ts +20 -0
  77. package/dist/sdk/haiku.d.ts.map +1 -1
  78. package/dist/sdk/haiku.js +159 -77
  79. package/dist/sdk/haiku.js.map +1 -1
  80. package/dist/sdk/model-pricing.json +6 -12
  81. package/dist/sdk/pricing.d.ts +5 -0
  82. package/dist/sdk/pricing.d.ts.map +1 -1
  83. package/dist/sdk/pricing.js +11 -2
  84. package/dist/sdk/pricing.js.map +1 -1
  85. package/dist/sdk/prompt.d.ts.map +1 -1
  86. package/dist/sdk/prompt.js +4 -1
  87. package/dist/sdk/prompt.js.map +1 -1
  88. package/dist/sdk/runner.d.ts +2 -2
  89. package/dist/sdk/runner.d.ts.map +1 -1
  90. package/dist/sdk/runner.js +1 -1
  91. package/dist/sdk/runner.js.map +1 -1
  92. package/dist/sdk/types.d.ts +9 -3
  93. package/dist/sdk/types.d.ts.map +1 -1
  94. package/dist/sdk/types.js +1 -1
  95. package/dist/sdk/types.js.map +1 -1
  96. package/dist/sdk/usage.d.ts +5 -0
  97. package/dist/sdk/usage.d.ts.map +1 -1
  98. package/dist/sdk/usage.js +11 -3
  99. package/dist/sdk/usage.js.map +1 -1
  100. package/dist/sentry.d.ts +15 -0
  101. package/dist/sentry.d.ts.map +1 -1
  102. package/dist/sentry.js +40 -1
  103. package/dist/sentry.js.map +1 -1
  104. package/dist/triggers/matcher.d.ts +2 -2
  105. package/dist/triggers/matcher.d.ts.map +1 -1
  106. package/dist/triggers/matcher.js +10 -8
  107. package/dist/triggers/matcher.js.map +1 -1
  108. package/dist/types/index.d.ts +19 -0
  109. package/dist/types/index.d.ts.map +1 -1
  110. package/dist/types/index.js +25 -0
  111. package/dist/types/index.js.map +1 -1
  112. package/dist/utils/async.d.ts +14 -0
  113. package/dist/utils/async.d.ts.map +1 -1
  114. package/dist/utils/async.js +33 -0
  115. package/dist/utils/async.js.map +1 -1
  116. package/dist/utils/index.d.ts +1 -1
  117. package/dist/utils/index.d.ts.map +1 -1
  118. package/dist/utils/index.js +1 -1
  119. package/dist/utils/index.js.map +1 -1
  120. package/evals/README.md +154 -0
  121. package/evals/bug-detection.yaml +56 -0
  122. package/evals/fixtures/ignores-style-issues/utils.ts +48 -0
  123. package/evals/fixtures/missing-await/cache.ts +45 -0
  124. package/evals/fixtures/null-property-access/handler.ts +36 -0
  125. package/evals/fixtures/off-by-one/paginator.ts +38 -0
  126. package/evals/fixtures/sql-injection/api.ts +59 -0
  127. package/evals/fixtures/stale-closure/counter.tsx +33 -0
  128. package/evals/fixtures/wrong-comparison/validator.ts +52 -0
  129. package/evals/fixtures/xss-reflected/server.ts +55 -0
  130. package/evals/precision.yaml +15 -0
  131. package/evals/security-scanning.yaml +24 -0
  132. package/evals/skills/bug-detection.md +33 -0
  133. package/evals/skills/precision.md +18 -0
  134. package/evals/skills/security-scanning.md +32 -0
  135. package/package.json +4 -2
  136. package/plugins/warden/skills/warden/references/config-schema.md +4 -2
  137. package/plugins/warden/skills/warden/references/configuration.md +2 -2
  138. package/dist/examples/index.d.ts +0 -50
  139. package/dist/examples/index.d.ts.map +0 -1
  140. package/dist/examples/index.js +0 -104
  141. package/dist/examples/index.js.map +0 -1
  142. package/dist/examples/setup.js.map +0 -1
  143. /package/dist/{examples → evals}/setup.d.ts +0 -0
  144. /package/dist/{examples → evals}/setup.js +0 -0
package/dist/sdk/haiku.js CHANGED
@@ -1,9 +1,33 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
+ import { Sentry } from '../sentry.js';
2
3
  import { apiUsageToStats } from './pricing.js';
3
4
  import { aggregateUsage, emptyUsage } from './usage.js';
4
- const HAIKU_MODEL = 'claude-haiku-4-5';
5
+ export const HAIKU_MODEL = 'claude-haiku-4-5';
5
6
  const DEFAULT_TIMEOUT_MS = 30_000;
6
7
  const DEFAULT_MAX_TOKENS = 4096;
8
+ /**
9
+ * Set standard gen_ai response attributes on a Sentry span.
10
+ *
11
+ * Follows the same token accounting as analyze.ts: gen_ai.usage.input_tokens
12
+ * is the total (non-cached + cache_read + cache_creation), with cache fields
13
+ * as subsets.
14
+ */
15
+ export function setGenAiResponseAttrs(span, usage, stopReason, responseText) {
16
+ const cacheRead = usage.cache_read_input_tokens ?? 0;
17
+ const cacheWrite = usage.cache_creation_input_tokens ?? 0;
18
+ const totalInput = usage.input_tokens + cacheRead + cacheWrite;
19
+ span.setAttribute('gen_ai.usage.input_tokens', totalInput);
20
+ span.setAttribute('gen_ai.usage.output_tokens', usage.output_tokens);
21
+ span.setAttribute('gen_ai.usage.input_tokens.cached', cacheRead);
22
+ span.setAttribute('gen_ai.usage.input_tokens.cache_write', cacheWrite);
23
+ span.setAttribute('gen_ai.usage.total_tokens', totalInput + usage.output_tokens);
24
+ if (stopReason) {
25
+ span.setAttribute('gen_ai.response.finish_reasons', [stopReason]);
26
+ }
27
+ if (responseText !== undefined) {
28
+ span.setAttribute('gen_ai.response.text', JSON.stringify([responseText]));
29
+ }
30
+ }
7
31
  /**
8
32
  * Strip markdown code fences from text.
9
33
  */
@@ -77,44 +101,58 @@ function inferPrefill(schema) {
77
101
  */
78
102
  export async function callHaiku(options) {
79
103
  const { apiKey, prompt, schema, maxTokens = DEFAULT_MAX_TOKENS, timeout = DEFAULT_TIMEOUT_MS } = options;
80
- const client = new Anthropic({ apiKey, timeout });
81
- const prefill = inferPrefill(schema);
82
- const messages = [
83
- { role: 'user', content: prompt },
84
- ];
85
- if (prefill) {
86
- messages.push({ role: 'assistant', content: prefill });
87
- }
88
- try {
89
- const response = await client.messages.create({
90
- model: HAIKU_MODEL,
91
- max_tokens: maxTokens,
92
- messages,
93
- });
94
- const usage = apiUsageToStats(HAIKU_MODEL, response.usage);
95
- const content = response.content[0];
96
- if (!content || content.type !== 'text') {
97
- return { success: false, error: 'Empty response from model', usage };
98
- }
99
- let fullText = content.text;
104
+ return Sentry.startSpan({
105
+ op: 'gen_ai.chat',
106
+ name: `chat ${HAIKU_MODEL}`,
107
+ attributes: {
108
+ 'gen_ai.operation.name': 'chat',
109
+ 'gen_ai.provider.name': 'anthropic',
110
+ 'gen_ai.request.model': HAIKU_MODEL,
111
+ 'gen_ai.request.max_tokens': maxTokens,
112
+ },
113
+ }, async (span) => {
114
+ const client = new Anthropic({ apiKey, timeout });
115
+ const prefill = inferPrefill(schema);
116
+ const messages = [
117
+ { role: 'user', content: prompt },
118
+ ];
100
119
  if (prefill) {
101
- fullText = prefill + fullText;
120
+ messages.push({ role: 'assistant', content: prefill });
102
121
  }
103
- const jsonStr = extractJson(fullText);
104
- if (!jsonStr) {
105
- return { success: false, error: 'No JSON found in response', usage };
122
+ span.setAttribute('gen_ai.request.messages', JSON.stringify(messages));
123
+ try {
124
+ const response = await client.messages.create({
125
+ model: HAIKU_MODEL,
126
+ max_tokens: maxTokens,
127
+ messages,
128
+ });
129
+ const usage = apiUsageToStats(HAIKU_MODEL, response.usage);
130
+ const content = response.content[0];
131
+ if (!content || content.type !== 'text') {
132
+ setGenAiResponseAttrs(span, response.usage, response.stop_reason);
133
+ return { success: false, error: 'Empty response from model', usage };
134
+ }
135
+ let fullText = content.text;
136
+ if (prefill) {
137
+ fullText = prefill + fullText;
138
+ }
139
+ setGenAiResponseAttrs(span, response.usage, response.stop_reason, fullText);
140
+ const jsonStr = extractJson(fullText);
141
+ if (!jsonStr) {
142
+ return { success: false, error: 'No JSON found in response', usage };
143
+ }
144
+ const parsed = JSON.parse(jsonStr);
145
+ const validated = schema.safeParse(parsed);
146
+ if (!validated.success) {
147
+ return { success: false, error: `Validation failed: ${validated.error.message}`, usage };
148
+ }
149
+ return { success: true, data: validated.data, usage };
106
150
  }
107
- const parsed = JSON.parse(jsonStr);
108
- const validated = schema.safeParse(parsed);
109
- if (!validated.success) {
110
- return { success: false, error: `Validation failed: ${validated.error.message}`, usage };
151
+ catch (error) {
152
+ const message = error instanceof Error ? error.message : String(error);
153
+ return { success: false, error: message, usage: emptyUsage() };
111
154
  }
112
- return { success: true, data: validated.data, usage };
113
- }
114
- catch (error) {
115
- const message = error instanceof Error ? error.message : String(error);
116
- return { success: false, error: message, usage: emptyUsage() };
117
- }
155
+ });
118
156
  }
119
157
  /**
120
158
  * Multi-turn Haiku call with tool use loop.
@@ -123,55 +161,98 @@ export async function callHaiku(options) {
123
161
  */
124
162
  export async function callHaikuWithTools(options) {
125
163
  const { apiKey, prompt, schema, tools, executeTool, maxTokens = DEFAULT_MAX_TOKENS, maxIterations = 5, timeout = DEFAULT_TIMEOUT_MS, } = options;
126
- const client = new Anthropic({ apiKey, timeout });
127
- // No prefill for tool-use loops: prefill biases the model to output JSON
128
- // immediately instead of calling tools to gather information first.
129
- const messages = [
130
- { role: 'user', content: prompt },
131
- ];
132
- const usages = [];
133
- for (let iteration = 0; iteration < maxIterations; iteration++) {
134
- let response;
135
- try {
136
- response = await client.messages.create({
137
- model: HAIKU_MODEL,
138
- max_tokens: maxTokens,
139
- messages,
140
- tools,
141
- });
164
+ return Sentry.startSpan({
165
+ op: 'gen_ai.chat',
166
+ name: `chat ${HAIKU_MODEL}`,
167
+ attributes: {
168
+ 'gen_ai.operation.name': 'chat',
169
+ 'gen_ai.provider.name': 'anthropic',
170
+ 'gen_ai.request.model': HAIKU_MODEL,
171
+ 'gen_ai.request.max_tokens': maxTokens,
172
+ },
173
+ }, async (span) => {
174
+ const client = new Anthropic({ apiKey, timeout });
175
+ // No prefill for tool-use loops: prefill biases the model to output JSON
176
+ // immediately instead of calling tools to gather information first.
177
+ const messages = [
178
+ { role: 'user', content: prompt },
179
+ ];
180
+ span.setAttribute('gen_ai.request.messages', JSON.stringify(messages));
181
+ const usages = [];
182
+ // Accumulate raw API usage across iterations so setGenAiResponseAttrs
183
+ // can compute totals consistently (input_tokens + cache subsets).
184
+ const cumulativeUsage = {
185
+ input_tokens: 0,
186
+ output_tokens: 0,
187
+ cache_read_input_tokens: 0,
188
+ cache_creation_input_tokens: 0,
189
+ };
190
+ function setFinalSpanAttrs(stopReason, responseText) {
191
+ setGenAiResponseAttrs(span, cumulativeUsage, stopReason, responseText);
142
192
  }
143
- catch (error) {
144
- const message = error instanceof Error ? error.message : String(error);
145
- return { success: false, error: message, usage: usages.length > 0 ? aggregateUsage(usages) : emptyUsage() };
193
+ function currentUsage() {
194
+ return usages.length > 0 ? aggregateUsage(usages) : emptyUsage();
146
195
  }
147
- usages.push(apiUsageToStats(HAIKU_MODEL, response.usage));
148
- // Handle tool use
149
- if (response.stop_reason === 'tool_use') {
150
- const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
151
- if (toolUseBlocks.length === 0) {
152
- return { success: false, error: 'Tool use indicated but no tool calls found', usage: aggregateUsage(usages) };
196
+ for (let iteration = 0; iteration < maxIterations; iteration++) {
197
+ let response;
198
+ try {
199
+ response = await client.messages.create({
200
+ model: HAIKU_MODEL,
201
+ max_tokens: maxTokens,
202
+ messages,
203
+ tools,
204
+ });
153
205
  }
154
- const toolResults = [];
155
- for (const block of toolUseBlocks) {
156
- try {
157
- const result = await executeTool(block.name, block.input);
158
- toolResults.push({ type: 'tool_result', tool_use_id: block.id, content: result });
206
+ catch (error) {
207
+ const message = error instanceof Error ? error.message : String(error);
208
+ return { success: false, error: message, usage: currentUsage() };
209
+ }
210
+ usages.push(apiUsageToStats(HAIKU_MODEL, response.usage));
211
+ cumulativeUsage.input_tokens += response.usage.input_tokens;
212
+ cumulativeUsage.output_tokens += response.usage.output_tokens;
213
+ cumulativeUsage.cache_read_input_tokens += response.usage.cache_read_input_tokens ?? 0;
214
+ cumulativeUsage.cache_creation_input_tokens += response.usage.cache_creation_input_tokens ?? 0;
215
+ // Handle tool use
216
+ if (response.stop_reason === 'tool_use') {
217
+ const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
218
+ if (toolUseBlocks.length === 0) {
219
+ return { success: false, error: 'Tool use indicated but no tool calls found', usage: aggregateUsage(usages) };
159
220
  }
160
- catch (error) {
161
- const errMsg = error instanceof Error ? error.message : String(error);
162
- toolResults.push({ type: 'tool_result', tool_use_id: block.id, content: errMsg, is_error: true });
221
+ const toolResults = [];
222
+ for (const block of toolUseBlocks) {
223
+ await Sentry.startSpan({
224
+ op: 'gen_ai.execute_tool',
225
+ name: `execute_tool ${block.name}`,
226
+ attributes: {
227
+ 'gen_ai.operation.name': 'execute_tool',
228
+ 'gen_ai.tool.name': block.name,
229
+ },
230
+ }, async () => {
231
+ try {
232
+ const result = await executeTool(block.name, block.input);
233
+ toolResults.push({ type: 'tool_result', tool_use_id: block.id, content: result });
234
+ }
235
+ catch (error) {
236
+ const errMsg = error instanceof Error ? error.message : String(error);
237
+ toolResults.push({ type: 'tool_result', tool_use_id: block.id, content: errMsg, is_error: true });
238
+ }
239
+ });
163
240
  }
241
+ messages.push({ role: 'assistant', content: response.content });
242
+ messages.push({ role: 'user', content: toolResults });
243
+ continue;
244
+ }
245
+ // Final response - extract text and set span attributes
246
+ if (response.stop_reason !== 'end_turn' && response.stop_reason !== 'max_tokens') {
247
+ setFinalSpanAttrs(response.stop_reason);
248
+ return { success: false, error: `Unexpected stop reason: ${response.stop_reason}`, usage: aggregateUsage(usages) };
164
249
  }
165
- messages.push({ role: 'assistant', content: response.content });
166
- messages.push({ role: 'user', content: toolResults });
167
- continue;
168
- }
169
- // Final response - extract JSON verdict
170
- if (response.stop_reason === 'end_turn' || response.stop_reason === 'max_tokens') {
171
250
  const textBlock = response.content.find((b) => b.type === 'text');
172
251
  if (!textBlock) {
252
+ setFinalSpanAttrs(response.stop_reason);
173
253
  return { success: false, error: 'No text in final response', usage: aggregateUsage(usages) };
174
254
  }
255
+ setFinalSpanAttrs(response.stop_reason, textBlock.text);
175
256
  const jsonStr = extractJson(textBlock.text);
176
257
  if (!jsonStr) {
177
258
  return { success: false, error: 'No JSON found in response', usage: aggregateUsage(usages) };
@@ -183,8 +264,9 @@ export async function callHaikuWithTools(options) {
183
264
  }
184
265
  return { success: true, data: validated.data, usage: aggregateUsage(usages) };
185
266
  }
186
- return { success: false, error: `Unexpected stop reason: ${response.stop_reason}`, usage: aggregateUsage(usages) };
187
- }
188
- return { success: false, error: 'Max tool iterations exceeded', usage: aggregateUsage(usages) };
267
+ // Max iterations exceeded - still record usage on span
268
+ setFinalSpanAttrs();
269
+ return { success: false, error: 'Max tool iterations exceeded', usage: aggregateUsage(usages) };
270
+ });
189
271
  }
190
272
  //# sourceMappingURL=haiku.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"haiku.js","sourceRoot":"","sources":["../../src/sdk/haiku.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"haiku.js","sourceRoot":"","sources":["../../src/sdk/haiku.ts"],"names":[],"mappings":"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"}
@@ -47,18 +47,6 @@
47
47
  "cacheReadPerMTok": 0.1,
48
48
  "cacheWritePerMTok": 1.25
49
49
  },
50
- "claude-instant-1": {
51
- "inputPerMTok": 1.63,
52
- "outputPerMTok": 55.1,
53
- "cacheReadPerMTok": 0,
54
- "cacheWritePerMTok": 0
55
- },
56
- "claude-instant-1.2": {
57
- "inputPerMTok": 1.63,
58
- "outputPerMTok": 5.51,
59
- "cacheReadPerMTok": 0,
60
- "cacheWritePerMTok": 0
61
- },
62
50
  "claude-opus-4-0": {
63
51
  "inputPerMTok": 15,
64
52
  "outputPerMTok": 75,
@@ -95,6 +83,12 @@
95
83
  "cacheReadPerMTok": 0.3,
96
84
  "cacheWritePerMTok": 3.75
97
85
  },
86
+ "claude-sonnet-4-6": {
87
+ "inputPerMTok": 3,
88
+ "outputPerMTok": 15,
89
+ "cacheReadPerMTok": 0.3,
90
+ "cacheWritePerMTok": 3.75
91
+ },
98
92
  "claude-v1": {
99
93
  "inputPerMTok": 8,
100
94
  "outputPerMTok": 24,
@@ -11,6 +11,11 @@ interface ApiUsage {
11
11
  /**
12
12
  * Convert Anthropic API usage to our UsageStats format.
13
13
  * Calculates cost from token counts using model pricing.
14
+ *
15
+ * The Anthropic API reports `input_tokens` as only the non-cached portion.
16
+ * We normalize so that `inputTokens` is the *total* input tokens
17
+ * (non-cached + cache_read + cache_creation), with the cache fields
18
+ * being subsets of that total.
14
19
  */
15
20
  export declare function apiUsageToStats(model: string, usage: ApiUsage): UsageStats;
16
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA+BpD;;GAEG;AACH,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,2BAA2B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,UAAU,CAwB1E"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA+BpD;;GAEG;AACH,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,2BAA2B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,UAAU,CA6B1E"}
@@ -15,17 +15,26 @@ const MODEL_PRICING = Object.fromEntries(Object.entries(rawPricing).map(([id, p]
15
15
  /**
16
16
  * Convert Anthropic API usage to our UsageStats format.
17
17
  * Calculates cost from token counts using model pricing.
18
+ *
19
+ * The Anthropic API reports `input_tokens` as only the non-cached portion.
20
+ * We normalize so that `inputTokens` is the *total* input tokens
21
+ * (non-cached + cache_read + cache_creation), with the cache fields
22
+ * being subsets of that total.
18
23
  */
19
24
  export function apiUsageToStats(model, usage) {
20
25
  const pricing = MODEL_PRICING[model];
21
- const inputTokens = usage.input_tokens;
22
26
  const outputTokens = usage.output_tokens;
23
27
  const cacheReadInputTokens = usage.cache_read_input_tokens ?? 0;
24
28
  const cacheCreationInputTokens = usage.cache_creation_input_tokens ?? 0;
29
+ // inputTokens is the total: raw API input_tokens + cache subsets.
30
+ const inputTokens = usage.input_tokens + cacheReadInputTokens + cacheCreationInputTokens;
31
+ // Cost: deduct cache subsets from total to get the non-cached portion,
32
+ // then charge each category at its respective rate.
25
33
  let costUSD = 0;
26
34
  if (pricing) {
35
+ const freshInputTokens = inputTokens - cacheReadInputTokens - cacheCreationInputTokens;
27
36
  costUSD =
28
- inputTokens * pricing.inputPerToken +
37
+ freshInputTokens * pricing.inputPerToken +
29
38
  outputTokens * pricing.outputPerToken +
30
39
  cacheReadInputTokens * pricing.cacheReadPerToken +
31
40
  cacheCreationInputTokens * pricing.cacheCreationPerToken;
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAcpE;;;GAGG;AACH,MAAM,aAAa,GAAiC,MAAM,CAAC,WAAW,CACpE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1C,EAAE;IACF;QACE,aAAa,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS;QACzC,cAAc,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS;QAC3C,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,GAAG,SAAS;QACjD,qBAAqB,EAAE,CAAC,CAAC,iBAAiB,GAAG,SAAS;KACvD;CACF,CAAC,CACH,CAAC;AAYF;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAe;IAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;IACvC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IACzC,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;IAChE,MAAM,wBAAwB,GAAG,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;IAExE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,WAAW,GAAG,OAAO,CAAC,aAAa;gBACnC,YAAY,GAAG,OAAO,CAAC,cAAc;gBACrC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB;gBAChD,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,WAAW;QACX,YAAY;QACZ,oBAAoB;QACpB,wBAAwB;QACxB,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAcpE;;;GAGG;AACH,MAAM,aAAa,GAAiC,MAAM,CAAC,WAAW,CACpE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1C,EAAE;IACF;QACE,aAAa,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS;QACzC,cAAc,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS;QAC3C,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,GAAG,SAAS;QACjD,qBAAqB,EAAE,CAAC,CAAC,iBAAiB,GAAG,SAAS;KACvD;CACF,CAAC,CACH,CAAC;AAYF;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAe;IAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IACzC,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;IAChE,MAAM,wBAAwB,GAAG,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;IAExE,kEAAkE;IAClE,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;IAEzF,uEAAuE;IACvE,oDAAoD;IACpD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,gBAAgB,GAAG,WAAW,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;QACvF,OAAO;YACL,gBAAgB,GAAG,OAAO,CAAC,aAAa;gBACxC,YAAY,GAAG,OAAO,CAAC,cAAc;gBACrC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB;gBAChD,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,WAAW;QACX,YAAY;QACZ,oBAAoB;QACpB,wBAAwB;QACxB,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/sdk/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA0EpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,eAAe,GAC1B,MAAM,CAkCR"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/sdk/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA6EpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,eAAe,GAC1B,MAAM,CAkCR"}
@@ -17,6 +17,8 @@ You are a code analysis agent for Warden. You evaluate code changes against spec
17
17
  You have access to these tools to gather context:
18
18
  - **Read**: Check related files to understand context
19
19
  - **Grep**: Search for patterns to trace data flow or find related code
20
+
21
+ Use these tools to gather context that helps you evaluate changes within the hunk. All findings must still reference lines within the hunk being analyzed.
20
22
  </tools>`,
21
23
  `<skill_instructions>
22
24
  The following defines the ONLY criteria you should evaluate. Do not report findings outside this scope:
@@ -55,12 +57,13 @@ Requirements:
55
57
  - Return ONLY valid JSON starting with {"findings":
56
58
  - "findings" array can be empty if no issues found
57
59
  - "location.path" is auto-filled from context - just provide startLine (and optionally endLine). Omit location entirely for general findings not about a specific line.
60
+ - "location.startLine" MUST be within the hunk line range (shown in the "## Hunk" header). If the issue originates in surrounding code, anchor to the nearest changed line in the hunk and note the actual location in the description.
58
61
  - "confidence" reflects how certain you are this is a real issue given the codebase context
59
62
  - "suggestedFix" is optional - only include when you can provide a complete, correct fix **to the file being analyzed**. Omit suggestedFix if:
60
63
  - The fix would be incomplete or you're uncertain about the correct solution
61
64
  - The fix requires changes to a different file or a new file (describe the fix in the description field instead)
62
65
  - Keep descriptions SHORT (1-2 sentences max) - avoid lengthy explanations
63
- - Be concise - focus only on the changes shown
66
+ - Focus your analysis on the code changes in the hunk. Surrounding context and tool results are for understanding only -- all findings must reference lines within the hunk range.
64
67
  </output_format>`,
65
68
  ];
66
69
  const { rootDir } = skill;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/sdk/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,kBAAkB,CAAC;AAkB/E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,MAAM,QAAQ,GAAG;QACf;;QAEI;QAEJ;;;;SAIK;QAEL;;;EAGF,KAAK,CAAC,MAAM;sBACQ;QAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCa;KACd,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACtE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC;4BACQ,OAAO;0BACT,OAAO;mBACd,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAsB,EACtB,OAAwB,EACxB,SAA2B;IAE3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,8CAA8C,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;IAE3F,yDAAyD;IACzD,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,SAAS,GAAG,uCAAuC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,+DAA+D;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa;gBAChD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK;gBAChD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACnB,SAAS,IAAI,yBAAyB,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,kEAAkE;IAClE,MAAM,UAAU,GAAG,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;;EAEhB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,CACX,8QAA8Q,CAC/Q,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/sdk/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,kBAAkB,CAAC;AAkB/E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,MAAM,QAAQ,GAAG;QACf;;QAEI;QAEJ;;;;;;SAMK;QAEL;;;EAGF,KAAK,CAAC,MAAM;sBACQ;QAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCa;KACd,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACtE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC;4BACQ,OAAO;0BACT,OAAO;mBACd,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAsB,EACtB,OAAwB,EACxB,SAA2B;IAE3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,8CAA8C,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;IAE3F,yDAAyD;IACzD,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,SAAS,GAAG,uCAAuC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,+DAA+D;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa;gBAChD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK;gBAChD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACnB,SAAS,IAAI,yBAAyB,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,kEAAkE;IAClE,MAAM,UAAU,GAAG,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;;EAEhB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,CACX,8QAA8Q,CAC/Q,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -18,8 +18,8 @@ export { apiUsageToStats } from './pricing.js';
18
18
  export { buildHunkSystemPrompt, buildHunkUserPrompt } from './prompt.js';
19
19
  export type { PRPromptContext } from './prompt.js';
20
20
  export { buildHunkSystemPrompt as buildSystemPrompt } from './prompt.js';
21
- export { extractFindingsJson, extractBalancedJson, extractFindingsWithLLM, truncateForLLMFallback, deduplicateFindings, validateFindings, generateShortId, } from './extract.js';
22
- export type { ExtractFindingsResult } from './extract.js';
21
+ export { extractFindingsJson, extractBalancedJson, extractFindingsWithLLM, truncateForLLMFallback, deduplicateFindings, mergeGroupLocations, applyMergeGroups, mergeCrossLocationFindings, validateFindings, generateShortId, } from './extract.js';
22
+ export type { ExtractFindingsResult, MergeResult } from './extract.js';
23
23
  export { prepareFiles } from './prepare.js';
24
24
  export { analyzeFile, runSkill, generateSummary } from './analyze.js';
25
25
  export type { AuxiliaryUsageEntry, SkillRunnerCallbacks, SkillRunnerOptions, PreparedFile, PrepareFilesOptions, PrepareFilesResult, FileAnalysisCallbacks, FileAnalysisResult, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/sdk/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAGjJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGtE,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/sdk/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAGjJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGtE,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -24,7 +24,7 @@ export { buildHunkSystemPrompt, buildHunkUserPrompt } from './prompt.js';
24
24
  // Legacy export for backwards compatibility
25
25
  export { buildHunkSystemPrompt as buildSystemPrompt } from './prompt.js';
26
26
  // Re-export extraction utilities
27
- export { extractFindingsJson, extractBalancedJson, extractFindingsWithLLM, truncateForLLMFallback, deduplicateFindings, validateFindings, generateShortId, } from './extract.js';
27
+ export { extractFindingsJson, extractBalancedJson, extractFindingsWithLLM, truncateForLLMFallback, deduplicateFindings, mergeGroupLocations, applyMergeGroups, mergeCrossLocationFindings, validateFindings, generateShortId, } from './extract.js';
28
28
  // Re-export file preparation
29
29
  export { prepareFiles } from './prepare.js';
30
30
  // Re-export analysis functions
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/sdk/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEjJ,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1G,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,gDAAgD;AAChD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEzE,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEzE,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,+BAA+B;AAC/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/sdk/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEjJ,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1G,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,gDAAgD;AAChD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEzE,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEzE,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,+BAA+B;AAC/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -6,7 +6,7 @@ export interface AuxiliaryUsageEntry {
6
6
  agent: string;
7
7
  usage: UsageStats;
8
8
  }
9
- /** Default concurrency for file-level parallel processing */
9
+ /** Default concurrency for file-level parallel processing (standalone SDK usage only) */
10
10
  export declare const DEFAULT_FILE_CONCURRENCY = 5;
11
11
  /** Threshold in characters above which to warn about large prompts (~25k tokens) */
12
12
  export declare const LARGE_PROMPT_THRESHOLD_CHARS = 100000;
@@ -33,7 +33,7 @@ export interface SkillRunnerCallbacks {
33
33
  skillStartTime?: number;
34
34
  onFileStart?: (file: string, index: number, total: number) => void;
35
35
  onHunkStart?: (file: string, hunkNum: number, totalHunks: number, lineRange: string) => void;
36
- onHunkComplete?: (file: string, hunkNum: number, findings: Finding[]) => void;
36
+ onHunkComplete?: (file: string, hunkNum: number, findings: Finding[], usage: UsageStats) => void;
37
37
  onFileComplete?: (file: string, index: number, total: number) => void;
38
38
  /** Called when a prompt exceeds the large prompt threshold */
39
39
  onLargePrompt?: (file: string, lineRange: string, chars: number, estimatedTokens: number) => void;
@@ -45,6 +45,8 @@ export interface SkillRunnerCallbacks {
45
45
  onExtractionFailure?: (file: string, lineRange: string, error: string, preview: string) => void;
46
46
  /** Called with extraction result details (debug mode) */
47
47
  onExtractionResult?: (file: string, lineRange: string, findingsCount: number, method: 'regex' | 'llm' | 'none') => void;
48
+ /** Called when hunk analysis fails (SDK error, API error, abort) */
49
+ onHunkFailed?: (file: string, lineRange: string, error: string) => void;
48
50
  }
49
51
  export interface SkillRunnerOptions {
50
52
  apiKey?: string;
@@ -101,7 +103,7 @@ export interface PrepareFilesResult {
101
103
  export interface FileAnalysisCallbacks {
102
104
  skillStartTime?: number;
103
105
  onHunkStart?: (hunkNum: number, totalHunks: number, lineRange: string) => void;
104
- onHunkComplete?: (hunkNum: number, findings: Finding[]) => void;
106
+ onHunkComplete?: (hunkNum: number, findings: Finding[], usage: UsageStats) => void;
105
107
  /** Called when a prompt exceeds the large prompt threshold */
106
108
  onLargePrompt?: (lineRange: string, chars: number, estimatedTokens: number) => void;
107
109
  /** Called with prompt size info in debug mode */
@@ -112,6 +114,8 @@ export interface FileAnalysisCallbacks {
112
114
  onExtractionFailure?: (lineRange: string, error: string, preview: string) => void;
113
115
  /** Called with extraction result details (debug mode) */
114
116
  onExtractionResult?: (lineRange: string, findingsCount: number, method: 'regex' | 'llm' | 'none') => void;
117
+ /** Called when hunk analysis fails (SDK error, API error, abort) */
118
+ onHunkFailed?: (lineRange: string, error: string) => void;
115
119
  }
116
120
  /**
117
121
  * Result from analyzing a single file.
@@ -138,5 +142,7 @@ export interface HunkAnalysisCallbacks {
138
142
  onExtractionFailure?: (lineRange: string, error: string, preview: string) => void;
139
143
  /** Called with extraction result details (debug mode) */
140
144
  onExtractionResult?: (lineRange: string, findingsCount: number, method: 'regex' | 'llm' | 'none') => void;
145
+ /** Called when hunk analysis fails (SDK error, API error, abort) */
146
+ onHunkFailed?: (lineRange: string, error: string) => void;
141
147
  }
142
148
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,oFAAoF;AACpF,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAEnD,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7F,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACjG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAClG,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9I,yDAAyD;IACzD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzH,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChG,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IACxH,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,kDAAkD;IAClD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,qDAAqD;IACrD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,uDAAuD;IACvD,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnF,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAChI,yDAAyD;IACzD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3G,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1G,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAChI,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3G,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1G,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D"}
package/dist/sdk/types.js CHANGED
@@ -1,4 +1,4 @@
1
- /** Default concurrency for file-level parallel processing */
1
+ /** Default concurrency for file-level parallel processing (standalone SDK usage only) */
2
2
  export const DEFAULT_FILE_CONCURRENCY = 5;
3
3
  /** Threshold in characters above which to warn about large prompts (~25k tokens) */
4
4
  export const LARGE_PROMPT_THRESHOLD_CHARS = 100000;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAUA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAUA,yFAAyF;AACzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC"}
@@ -3,6 +3,11 @@ import type { UsageStats, AuxiliaryUsageMap } from '../types/index.js';
3
3
  import type { AuxiliaryUsageEntry } from './types.js';
4
4
  /**
5
5
  * Extract usage stats from an SDK result message.
6
+ *
7
+ * The Anthropic API reports `input_tokens` as only the non-cached portion.
8
+ * We normalize so that `inputTokens` is the *total* input tokens
9
+ * (non-cached + cache_read + cache_creation), with the cache fields
10
+ * being subsets of that total.
6
11
  */
7
12
  export declare function extractUsage(result: SDKResultMessage): UsageStats;
8
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/sdk/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAQjE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAQvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,iBAAiB,GAAG,SAAS,CAoB/B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,iBAAiB,GAAG,SAAS,EAChC,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAC/B,iBAAiB,GAAG,SAAS,CAa/B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/sdk/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAWjE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAQvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,iBAAiB,GAAG,SAAS,CAoB/B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,iBAAiB,GAAG,SAAS,EAChC,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAC/B,iBAAiB,GAAG,SAAS,CAa/B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD"}