@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
@@ -1,104 +0,0 @@
1
- import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { z } from 'zod';
4
- import { SeveritySchema } from '../types/index.js';
5
- /**
6
- * Schema for expected findings in _meta.json
7
- */
8
- export const ExpectedFindingSchema = z.object({
9
- severity: SeveritySchema,
10
- pattern: z.string(),
11
- file: z.string().optional(),
12
- });
13
- /**
14
- * Schema for _meta.json files
15
- */
16
- export const ExampleMetaSchema = z.object({
17
- skill: z.string(),
18
- description: z.string(),
19
- expected: z.array(ExpectedFindingSchema),
20
- });
21
- /**
22
- * Get the default examples directory path.
23
- */
24
- function getExamplesDir() {
25
- // This file is at src/examples/index.ts, so we need to go up to repo root
26
- return join(import.meta.dirname, '..', '..', 'examples');
27
- }
28
- /**
29
- * Discover all examples with _meta.json files.
30
- * Returns an array of absolute paths to example directories.
31
- */
32
- export function discoverExamples(baseDir) {
33
- const examplesDir = baseDir ?? getExamplesDir();
34
- const examples = [];
35
- if (!existsSync(examplesDir)) {
36
- return examples;
37
- }
38
- // Recursively find directories containing _meta.json
39
- function scanDir(dir) {
40
- const entries = readdirSync(dir);
41
- for (const entry of entries) {
42
- const entryPath = join(dir, entry);
43
- const stat = statSync(entryPath);
44
- if (stat.isDirectory()) {
45
- const metaPath = join(entryPath, '_meta.json');
46
- if (existsSync(metaPath)) {
47
- examples.push(entryPath);
48
- }
49
- // Continue scanning subdirectories
50
- scanDir(entryPath);
51
- }
52
- }
53
- }
54
- scanDir(examplesDir);
55
- return examples;
56
- }
57
- /**
58
- * Load and validate a _meta.json file from an example directory.
59
- */
60
- export function loadExample(dir) {
61
- const metaPath = join(dir, '_meta.json');
62
- if (!existsSync(metaPath)) {
63
- throw new Error(`No _meta.json found in ${dir}`);
64
- }
65
- let content;
66
- try {
67
- content = readFileSync(metaPath, 'utf-8');
68
- }
69
- catch (error) {
70
- throw new Error(`Failed to read ${metaPath}: ${error}`);
71
- }
72
- let parsed;
73
- try {
74
- parsed = JSON.parse(content);
75
- }
76
- catch (error) {
77
- throw new Error(`Failed to parse ${metaPath}: ${error}`);
78
- }
79
- const validated = ExampleMetaSchema.safeParse(parsed);
80
- if (!validated.success) {
81
- const issues = validated.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join(', ');
82
- throw new Error(`Invalid _meta.json in ${dir}: ${issues}`);
83
- }
84
- return validated.data;
85
- }
86
- /**
87
- * Get all source files in an example directory (excludes _meta.json).
88
- * Returns relative paths suitable for use with buildFileEventContext.
89
- */
90
- export function getExampleFiles(dir) {
91
- const files = [];
92
- const entries = readdirSync(dir);
93
- for (const entry of entries) {
94
- if (entry === '_meta.json')
95
- continue;
96
- const entryPath = join(dir, entry);
97
- const stat = statSync(entryPath);
98
- if (stat.isFile()) {
99
- files.push(entryPath);
100
- }
101
- }
102
- return files;
103
- }
104
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/examples/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEhD;;;;;;GAMG;AACH,SAAS,WAAW;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC"}
File without changes
File without changes