@sentry/warden 0.7.0 → 0.9.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 (44) hide show
  1. package/dist/cli/commands/init.d.ts.map +1 -1
  2. package/dist/cli/commands/init.js +4 -1
  3. package/dist/cli/commands/init.js.map +1 -1
  4. package/dist/cli/main.d.ts.map +1 -1
  5. package/dist/cli/main.js +10 -1
  6. package/dist/cli/main.js.map +1 -1
  7. package/dist/cli/output/formatters.d.ts.map +1 -1
  8. package/dist/cli/output/formatters.js +3 -8
  9. package/dist/cli/output/formatters.js.map +1 -1
  10. package/dist/config/schema.js +1 -1
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/output/github-checks.d.ts.map +1 -1
  13. package/dist/output/github-checks.js +1 -2
  14. package/dist/output/github-checks.js.map +1 -1
  15. package/dist/output/renderer.js +1 -1
  16. package/dist/output/renderer.js.map +1 -1
  17. package/dist/output/types.d.ts +1 -1
  18. package/dist/output/types.d.ts.map +1 -1
  19. package/dist/sdk/analyze.d.ts.map +1 -1
  20. package/dist/sdk/analyze.js +100 -11
  21. package/dist/sdk/analyze.js.map +1 -1
  22. package/dist/sdk/extract.d.ts +1 -1
  23. package/dist/sdk/extract.d.ts.map +1 -1
  24. package/dist/sdk/extract.js +48 -31
  25. package/dist/sdk/extract.js.map +1 -1
  26. package/dist/sdk/haiku.d.ts +20 -0
  27. package/dist/sdk/haiku.d.ts.map +1 -1
  28. package/dist/sdk/haiku.js +159 -77
  29. package/dist/sdk/haiku.js.map +1 -1
  30. package/dist/sdk/pricing.d.ts +5 -0
  31. package/dist/sdk/pricing.d.ts.map +1 -1
  32. package/dist/sdk/pricing.js +11 -2
  33. package/dist/sdk/pricing.js.map +1 -1
  34. package/dist/sdk/usage.d.ts +5 -0
  35. package/dist/sdk/usage.d.ts.map +1 -1
  36. package/dist/sdk/usage.js +11 -3
  37. package/dist/sdk/usage.js.map +1 -1
  38. package/dist/triggers/matcher.d.ts +2 -2
  39. package/dist/triggers/matcher.d.ts.map +1 -1
  40. package/dist/triggers/matcher.js +10 -8
  41. package/dist/triggers/matcher.js.map +1 -1
  42. package/package.json +1 -1
  43. package/plugins/warden/skills/warden/references/config-schema.md +4 -2
  44. package/plugins/warden/skills/warden/references/configuration.md +2 -2
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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"}
@@ -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"}
@@ -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"}
package/dist/sdk/usage.js CHANGED
@@ -1,12 +1,20 @@
1
1
  /**
2
2
  * Extract usage stats from an SDK result message.
3
+ *
4
+ * The Anthropic API reports `input_tokens` as only the non-cached portion.
5
+ * We normalize so that `inputTokens` is the *total* input tokens
6
+ * (non-cached + cache_read + cache_creation), with the cache fields
7
+ * being subsets of that total.
3
8
  */
4
9
  export function extractUsage(result) {
10
+ const rawInput = result.usage['input_tokens'];
11
+ const cacheRead = result.usage['cache_read_input_tokens'] ?? 0;
12
+ const cacheCreation = result.usage['cache_creation_input_tokens'] ?? 0;
5
13
  return {
6
- inputTokens: result.usage['input_tokens'],
14
+ inputTokens: rawInput + cacheRead + cacheCreation,
7
15
  outputTokens: result.usage['output_tokens'],
8
- cacheReadInputTokens: result.usage['cache_read_input_tokens'] ?? 0,
9
- cacheCreationInputTokens: result.usage['cache_creation_input_tokens'] ?? 0,
16
+ cacheReadInputTokens: cacheRead,
17
+ cacheCreationInputTokens: cacheCreation,
10
18
  costUSD: result.total_cost_usd,
11
19
  };
12
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/sdk/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/sdk/usage.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,8 @@ export declare function filterContextByPaths(context: EventContext, filters: {
23
23
  *
24
24
  * Trigger types:
25
25
  * - '*' (wildcard): matches all environments, skips event/action checks
26
- * - 'local': matches only when environment is 'local'
27
- * - 'pull_request': matches when environment is 'github' and event is pull_request
26
+ * - 'local': matches only when environment is 'local' (local-only skills)
27
+ * - 'pull_request': matches in 'github' (with event/action checks) and 'local' (path filters only)
28
28
  * - 'schedule': matches when event is schedule
29
29
  */
30
30
  export declare function matchTrigger(trigger: ResolvedTrigger, context: EventContext, environment?: TriggerType | 'github'): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/triggers/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhG,gDAAgD;AAChD,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AA8CD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAsCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD,YAAY,CAkCd;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,YAAY,EACrB,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,GACnC,OAAO,CAoCT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAIlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAI7F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/triggers/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhG,gDAAgD;AAChD,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AA8CD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAsCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD,YAAY,CAkCd;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,YAAY,EACrB,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,GACnC,OAAO,CAqCT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAIlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAI7F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAMhF"}
@@ -113,8 +113,8 @@ export function filterContextByPaths(context, filters) {
113
113
  *
114
114
  * Trigger types:
115
115
  * - '*' (wildcard): matches all environments, skips event/action checks
116
- * - 'local': matches only when environment is 'local'
117
- * - 'pull_request': matches when environment is 'github' and event is pull_request
116
+ * - 'local': matches only when environment is 'local' (local-only skills)
117
+ * - 'pull_request': matches in 'github' (with event/action checks) and 'local' (path filters only)
118
118
  * - 'schedule': matches when event is schedule
119
119
  */
120
120
  export function matchTrigger(trigger, context, environment) {
@@ -131,13 +131,15 @@ export function matchTrigger(trigger, context, environment) {
131
131
  }
132
132
  if (trigger.type === 'pull_request') {
133
133
  if (environment === 'local') {
134
- return false;
135
- }
136
- if (context.eventType !== 'pull_request') {
137
- return false;
134
+ // Local mode runs all skills — skip event/action checks, fall through to path filters
138
135
  }
139
- if (!trigger.actions?.includes(context.action)) {
140
- return false;
136
+ else {
137
+ if (context.eventType !== 'pull_request') {
138
+ return false;
139
+ }
140
+ if (!trigger.actions?.includes(context.action)) {
141
+ return false;
142
+ }
141
143
  }
142
144
  }
143
145
  if (trigger.type === 'schedule') {
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/triggers/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/triggers/matcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/warden",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Event-driven agent that reacts to GitHub events and executes skills via Claude Code SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -69,8 +69,10 @@ fixBranchPrefix = "security-fix" # Branch name prefix
69
69
 
70
70
  **Trigger types:**
71
71
  - `pull_request` - Triggers on PR events
72
- - `local` - Triggers on local CLI runs
73
- - `schedule` - Triggers on cron schedule (GitHub Action)
72
+ - `local` - Local CLI only (will not run in CI)
73
+ - `schedule` - Cron schedule (GitHub Action only)
74
+
75
+ All skills run locally regardless of trigger type. Skills with no triggers run everywhere (wildcard). Use `type = "local"` for skills that should *only* run locally.
74
76
 
75
77
  **Actions (for pull_request):**
76
78
  - `opened`, `synchronize`, `reopened`, `closed`
@@ -21,7 +21,7 @@ actions = ["opened", "synchronize"]
21
21
 
22
22
  ## Skill Configuration
23
23
 
24
- Skills define what to analyze and when. Each skill requires a name and at least one trigger:
24
+ Skills define what to analyze and when. Each skill requires a name. Triggers are optional skills with no triggers run everywhere (PR, local, schedule). All skills run locally regardless of trigger type.
25
25
 
26
26
  ```toml
27
27
  [[skills]]
@@ -36,7 +36,7 @@ type = "pull_request"
36
36
  actions = ["opened", "synchronize"]
37
37
  ```
38
38
 
39
- **Trigger types:** `pull_request`, `local`, `schedule`
39
+ **Trigger types:** `pull_request`, `local` (local-only), `schedule` (CI-only)
40
40
 
41
41
  **Actions (pull_request):** `opened`, `synchronize`, `reopened`, `closed`
42
42