@sentry/warden 0.31.0 → 0.32.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.
- package/.oxlintrc.json +4 -3
- package/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/dist/output/renderer.js +3 -3
- package/dist/output/renderer.js.map +1 -1
- package/dist/sdk/analyze.js +1 -0
- package/dist/sdk/analyze.js.map +1 -1
- package/dist/sdk/prompt-sections.d.ts +2 -0
- package/dist/sdk/prompt-sections.d.ts.map +1 -1
- package/dist/sdk/prompt-sections.js +8 -2
- package/dist/sdk/prompt-sections.js.map +1 -1
- package/dist/sdk/prompt.d.ts.map +1 -1
- package/dist/sdk/prompt.js +8 -6
- package/dist/sdk/prompt.js.map +1 -1
- package/dist/sdk/verify.d.ts.map +1 -1
- package/dist/sdk/verify.js +5 -1
- package/dist/sdk/verify.js.map +1 -1
- package/package.json +16 -8
- package/src/builtin-skills/code-review/SKILL.md +1 -1
- package/src/builtin-skills/security-review/SKILL.md +1 -1
- package/test-results.junit.xml +2330 -2297
- package/.cursor/mcp.json +0 -7
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -446
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/src/action/checks/index.html +0 -116
- package/coverage/lcov-report/src/action/checks/manager.ts.html +0 -499
- package/coverage/lcov-report/src/action/error-reporting.ts.html +0 -181
- package/coverage/lcov-report/src/action/fix-evaluation/github.ts.html +0 -508
- package/coverage/lcov-report/src/action/fix-evaluation/index.html +0 -161
- package/coverage/lcov-report/src/action/fix-evaluation/index.ts.html +0 -1243
- package/coverage/lcov-report/src/action/fix-evaluation/judge.ts.html +0 -817
- package/coverage/lcov-report/src/action/fix-evaluation/types.ts.html +0 -274
- package/coverage/lcov-report/src/action/index.html +0 -161
- package/coverage/lcov-report/src/action/inputs.ts.html +0 -529
- package/coverage/lcov-report/src/action/pi-ncc-compat.ts.html +0 -292
- package/coverage/lcov-report/src/action/review/coordination.ts.html +0 -208
- package/coverage/lcov-report/src/action/review/index.html +0 -131
- package/coverage/lcov-report/src/action/review/poster.ts.html +0 -1051
- package/coverage/lcov-report/src/action/review-state.ts.html +0 -280
- package/coverage/lcov-report/src/action/triggers/executor.ts.html +0 -856
- package/coverage/lcov-report/src/action/triggers/index.html +0 -116
- package/coverage/lcov-report/src/action/workflow/base.ts.html +0 -1135
- package/coverage/lcov-report/src/action/workflow/index.html +0 -146
- package/coverage/lcov-report/src/action/workflow/pr-workflow.ts.html +0 -2713
- package/coverage/lcov-report/src/action/workflow/schedule.ts.html +0 -1027
- package/coverage/lcov-report/src/cli/args.ts.html +0 -1657
- package/coverage/lcov-report/src/cli/commands/add.ts.html +0 -1567
- package/coverage/lcov-report/src/cli/commands/build.ts.html +0 -1618
- package/coverage/lcov-report/src/cli/commands/index.html +0 -191
- package/coverage/lcov-report/src/cli/commands/init.ts.html +0 -1357
- package/coverage/lcov-report/src/cli/commands/runs.ts.html +0 -2560
- package/coverage/lcov-report/src/cli/commands/setup-app/browser.ts.html +0 -214
- package/coverage/lcov-report/src/cli/commands/setup-app/credentials.ts.html +0 -220
- package/coverage/lcov-report/src/cli/commands/setup-app/index.html +0 -161
- package/coverage/lcov-report/src/cli/commands/setup-app/manifest.ts.html +0 -235
- package/coverage/lcov-report/src/cli/commands/setup-app/server.ts.html +0 -601
- package/coverage/lcov-report/src/cli/commands/setup-app.ts.html +0 -571
- package/coverage/lcov-report/src/cli/commands/sync.ts.html +0 -475
- package/coverage/lcov-report/src/cli/context.ts.html +0 -532
- package/coverage/lcov-report/src/cli/diff-apply.ts.html +0 -334
- package/coverage/lcov-report/src/cli/files.ts.html +0 -904
- package/coverage/lcov-report/src/cli/fix.ts.html +0 -1060
- package/coverage/lcov-report/src/cli/git.ts.html +0 -1201
- package/coverage/lcov-report/src/cli/help.ts.html +0 -1696
- package/coverage/lcov-report/src/cli/index.html +0 -281
- package/coverage/lcov-report/src/cli/input.ts.html +0 -397
- package/coverage/lcov-report/src/cli/log-cleanup.ts.html +0 -337
- package/coverage/lcov-report/src/cli/main.ts.html +0 -5107
- package/coverage/lcov-report/src/cli/output/box.ts.html +0 -790
- package/coverage/lcov-report/src/cli/output/formatters.ts.html +0 -1099
- package/coverage/lcov-report/src/cli/output/icons.ts.html +0 -142
- package/coverage/lcov-report/src/cli/output/index.html +0 -281
- package/coverage/lcov-report/src/cli/output/index.ts.html +0 -295
- package/coverage/lcov-report/src/cli/output/ink-runner.tsx.html +0 -1597
- package/coverage/lcov-report/src/cli/output/jsonl-schema-gen.ts.html +0 -355
- package/coverage/lcov-report/src/cli/output/jsonl.ts.html +0 -2137
- package/coverage/lcov-report/src/cli/output/live-status.tsx.html +0 -916
- package/coverage/lcov-report/src/cli/output/reporter.ts.html +0 -1630
- package/coverage/lcov-report/src/cli/output/tasks.ts.html +0 -3193
- package/coverage/lcov-report/src/cli/output/tty.ts.html +0 -310
- package/coverage/lcov-report/src/cli/output/verbosity.ts.html +0 -181
- package/coverage/lcov-report/src/cli/signals.ts.html +0 -199
- package/coverage/lcov-report/src/cli/terminal.ts.html +0 -1060
- package/coverage/lcov-report/src/config/index.html +0 -161
- package/coverage/lcov-report/src/config/index.ts.html +0 -94
- package/coverage/lcov-report/src/config/loader.ts.html +0 -1753
- package/coverage/lcov-report/src/config/schema.ts.html +0 -910
- package/coverage/lcov-report/src/config/writer.ts.html +0 -538
- package/coverage/lcov-report/src/diff/apply.ts.html +0 -241
- package/coverage/lcov-report/src/diff/classify.ts.html +0 -361
- package/coverage/lcov-report/src/diff/coalesce.ts.html +0 -1123
- package/coverage/lcov-report/src/diff/context.ts.html +0 -952
- package/coverage/lcov-report/src/diff/index.html +0 -191
- package/coverage/lcov-report/src/diff/index.ts.html +0 -100
- package/coverage/lcov-report/src/diff/parser.ts.html +0 -532
- package/coverage/lcov-report/src/evals/harness.ts.html +0 -700
- package/coverage/lcov-report/src/evals/index.html +0 -221
- package/coverage/lcov-report/src/evals/index.ts.html +0 -955
- package/coverage/lcov-report/src/evals/names.ts.html +0 -121
- package/coverage/lcov-report/src/evals/runner.ts.html +0 -664
- package/coverage/lcov-report/src/evals/scaffold.ts.html +0 -970
- package/coverage/lcov-report/src/evals/types.ts.html +0 -661
- package/coverage/lcov-report/src/evals/usage.ts.html +0 -178
- package/coverage/lcov-report/src/evals/verify.ts.html +0 -1054
- package/coverage/lcov-report/src/event/context.ts.html +0 -490
- package/coverage/lcov-report/src/event/index.html +0 -116
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/output/dedup.ts.html +0 -2950
- package/coverage/lcov-report/src/output/github-checks.ts.html +0 -1579
- package/coverage/lcov-report/src/output/index.html +0 -161
- package/coverage/lcov-report/src/output/renderer.ts.html +0 -988
- package/coverage/lcov-report/src/output/stale.ts.html +0 -640
- package/coverage/lcov-report/src/sdk/analyze.ts.html +0 -3010
- package/coverage/lcov-report/src/sdk/auth.ts.html +0 -217
- package/coverage/lcov-report/src/sdk/circuit-breaker.ts.html +0 -304
- package/coverage/lcov-report/src/sdk/errors.ts.html +0 -658
- package/coverage/lcov-report/src/sdk/extract.ts.html +0 -1810
- package/coverage/lcov-report/src/sdk/fix-quality.ts.html +0 -841
- package/coverage/lcov-report/src/sdk/haiku.ts.html +0 -1456
- package/coverage/lcov-report/src/sdk/index.html +0 -416
- package/coverage/lcov-report/src/sdk/json-output.ts.html +0 -508
- package/coverage/lcov-report/src/sdk/model-pricing.json.html +0 -499
- package/coverage/lcov-report/src/sdk/otel.ts.html +0 -433
- package/coverage/lcov-report/src/sdk/post-process.ts.html +0 -412
- package/coverage/lcov-report/src/sdk/prepare.ts.html +0 -400
- package/coverage/lcov-report/src/sdk/pricing.ts.html +0 -778
- package/coverage/lcov-report/src/sdk/prompt-sections.ts.html +0 -595
- package/coverage/lcov-report/src/sdk/prompt.ts.html +0 -451
- package/coverage/lcov-report/src/sdk/report-files.ts.html +0 -166
- package/coverage/lcov-report/src/sdk/retry.ts.html +0 -202
- package/coverage/lcov-report/src/sdk/runner.ts.html +0 -400
- package/coverage/lcov-report/src/sdk/runtimes/claude.ts.html +0 -1693
- package/coverage/lcov-report/src/sdk/runtimes/index.html +0 -176
- package/coverage/lcov-report/src/sdk/runtimes/index.ts.html +0 -244
- package/coverage/lcov-report/src/sdk/runtimes/model-selectors.ts.html +0 -328
- package/coverage/lcov-report/src/sdk/runtimes/pi.ts.html +0 -2104
- package/coverage/lcov-report/src/sdk/runtimes/types.ts.html +0 -508
- package/coverage/lcov-report/src/sdk/types.ts.html +0 -730
- package/coverage/lcov-report/src/sdk/usage.ts.html +0 -502
- package/coverage/lcov-report/src/sdk/verify.ts.html +0 -1027
- package/coverage/lcov-report/src/sentry.ts.html +0 -994
- package/coverage/lcov-report/src/skill-builder/agentic.ts.html +0 -1063
- package/coverage/lcov-report/src/skill-builder/authoring-provider.ts.html +0 -334
- package/coverage/lcov-report/src/skill-builder/definition.ts.html +0 -748
- package/coverage/lcov-report/src/skill-builder/index.html +0 -236
- package/coverage/lcov-report/src/skill-builder/outline-contract.ts.html +0 -400
- package/coverage/lcov-report/src/skill-builder/outline-state.ts.html +0 -382
- package/coverage/lcov-report/src/skill-builder/outline.ts.html +0 -1402
- package/coverage/lcov-report/src/skill-builder/skill-contract.ts.html +0 -382
- package/coverage/lcov-report/src/skill-builder/skill-prompts.ts.html +0 -1180
- package/coverage/lcov-report/src/skill-builder/skill.ts.html +0 -2398
- package/coverage/lcov-report/src/skills/index.html +0 -131
- package/coverage/lcov-report/src/skills/loader.ts.html +0 -1693
- package/coverage/lcov-report/src/skills/remote.ts.html +0 -1909
- package/coverage/lcov-report/src/triggers/index.html +0 -116
- package/coverage/lcov-report/src/triggers/matcher.ts.html +0 -841
- package/coverage/lcov-report/src/types/index.html +0 -116
- package/coverage/lcov-report/src/types/index.ts.html +0 -1240
- package/coverage/lcov-report/src/utils/async.ts.html +0 -331
- package/coverage/lcov-report/src/utils/exec.ts.html +0 -496
- package/coverage/lcov-report/src/utils/index.html +0 -176
- package/coverage/lcov-report/src/utils/index.ts.html +0 -313
- package/coverage/lcov-report/src/utils/path.ts.html +0 -202
- package/coverage/lcov-report/src/utils/version.ts.html +0 -136
- package/coverage/lcov.info +0 -19134
|
@@ -1,451 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/sdk/prompt.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/sdk</a> prompt.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">100% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>11/11</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>4/4</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/4</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>9/9</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-neutral"> </span>
|
|
207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-yes">21x</span>
|
|
211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
213
|
-
<span class="cline-any cline-neutral"> </span>
|
|
214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-neutral"> </span>
|
|
231
|
-
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
249
|
-
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-neutral"> </span>
|
|
251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
273
|
-
<span class="cline-any cline-yes">21x</span>
|
|
274
|
-
<span class="cline-any cline-yes">21x</span>
|
|
275
|
-
<span class="cline-any cline-yes">18x</span>
|
|
276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">6x</span>
|
|
279
|
-
<span class="cline-any cline-yes">8x</span>
|
|
280
|
-
<span class="cline-any cline-yes">5x</span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">21x</span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">14x</span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { existsSync } from 'node:fs';
|
|
311
|
-
import { join } from 'node:path';
|
|
312
|
-
import type { SkillDefinition } from '../config/schema.js';
|
|
313
|
-
import { formatHunkForAnalysis, type HunkWithContext } from '../diff/index.js';
|
|
314
|
-
import {
|
|
315
|
-
buildChangedFilesSection,
|
|
316
|
-
buildJsonOutputSection,
|
|
317
|
-
buildPullRequestContextSection,
|
|
318
|
-
joinPromptSections,
|
|
319
|
-
type PromptPRContext,
|
|
320
|
-
} from './prompt-sections.js';
|
|
321
|
-
|
|
322
|
-
export type PRPromptContext = PromptPRContext;
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Builds the system prompt for hunk-based analysis.
|
|
326
|
-
*
|
|
327
|
-
* Future enhancement: Could have the agent output a structured `contextAssessment`
|
|
328
|
-
* (applicationType, trustBoundaries, filesChecked) to cache across hunks, allow
|
|
329
|
-
* user overrides, or build analytics. Not implemented since we don't consume it yet.
|
|
330
|
-
*/
|
|
331
|
-
export function buildHunkSystemPrompt(skill: SkillDefinition): string {
|
|
332
|
-
const sections = [
|
|
333
|
-
`<role>
|
|
334
|
-
You are a code analysis agent for Warden. You evaluate code changes against specific skill criteria and report findings ONLY when the code violates or conflicts with those criteria. You do not perform general code review or report issues outside the skill's scope.
|
|
335
|
-
</role>`,
|
|
336
|
-
|
|
337
|
-
`<verification>
|
|
338
|
-
Before reporting a finding:
|
|
339
|
-
1. Read the relevant source code to understand the full context
|
|
340
|
-
2. Trace through the code path — follow imports, base classes, and indirect references, not just the immediate file
|
|
341
|
-
3. Verify your assumptions — confirm the issue exists, don't infer from incomplete information
|
|
342
|
-
4. Ensure the finding references lines within the hunk being analyzed
|
|
343
|
-
5. Document your verification in the 'verification' field of each finding
|
|
344
|
-
</verification>`,
|
|
345
|
-
|
|
346
|
-
`<skill_instructions>
|
|
347
|
-
The following defines the ONLY criteria you should evaluate. Do not report findings outside this scope:
|
|
348
|
-
|
|
349
|
-
${skill.prompt}
|
|
350
|
-
</skill_instructions>`,
|
|
351
|
-
|
|
352
|
-
buildJsonOutputSection(`
|
|
353
|
-
Example response format:
|
|
354
|
-
{"findings": [{"id": "example-1", "severity": "medium", "confidence": "high", "title": "Issue title", "description": "Description", "location": {"path": "file.ts", "startLine": 10}}]}
|
|
355
|
-
|
|
356
|
-
Full schema:
|
|
357
|
-
{
|
|
358
|
-
"findings": [
|
|
359
|
-
{
|
|
360
|
-
"id": "unique-identifier",
|
|
361
|
-
"severity": "high|medium|low",
|
|
362
|
-
"confidence": "high|medium|low",
|
|
363
|
-
"title": "Short, specific title naming the broken behavior or risk (e.g. 'wasFailFastAborted never detects fail-fast abort')",
|
|
364
|
-
"description": "Visible inline PR comment. Use one short, direct sentence whenever possible; two only if needed for the fix or impact.",
|
|
365
|
-
"location": {
|
|
366
|
-
"path": "path/to/file.ts",
|
|
367
|
-
"startLine": 10,
|
|
368
|
-
"endLine": 15
|
|
369
|
-
},
|
|
370
|
-
"verification": "Required. Detailed evidence for the collapsible verification block: files/functions checked, trigger conditions, expected vs actual behavior, and why mitigations do not apply.",
|
|
371
|
-
"suggestedFix": {
|
|
372
|
-
"description": "How to fix this issue",
|
|
373
|
-
"diff": "unified diff format"
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
]
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
Requirements:
|
|
380
|
-
- Return valid JSON starting with {"findings":
|
|
381
|
-
- "findings" array can be empty if no issues found
|
|
382
|
-
- "location.path" is auto-filled from context - just provide startLine (and optionally endLine). Omit location entirely for general findings not about a specific line.
|
|
383
|
-
- "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.
|
|
384
|
-
- "confidence" reflects how certain you are this is a real issue given the codebase context
|
|
385
|
-
- "suggestedFix" is optional - only include when you can provide a complete, correct fix **to the file being analyzed**. Omit suggestedFix if:
|
|
386
|
-
- The fix would be incomplete or you're uncertain about the correct solution
|
|
387
|
-
- The fix requires changes to a different file or a new file (briefly name the fix in the description field instead)
|
|
388
|
-
- "description" is rendered directly in GitHub inline comments. Keep it brief and actionable, usually one sentence.
|
|
389
|
-
- Put proof, trace notes, checked files, and expected/actual breakdowns in "verification", not "description".
|
|
390
|
-
- Do not include severity, confidence, finding ID, skill name, or generic review framing in "description".
|
|
391
|
-
- 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.
|
|
392
|
-
`),
|
|
393
|
-
];
|
|
394
|
-
|
|
395
|
-
const { rootDir } = skill;
|
|
396
|
-
if (rootDir) {
|
|
397
|
-
const resourceDirs = ['scripts', 'references', 'assets'].filter((dir) =>
|
|
398
|
-
existsSync(join(rootDir, dir))
|
|
399
|
-
);
|
|
400
|
-
if (resourceDirs.length > 0) {
|
|
401
|
-
const dirList = resourceDirs.map((d) => `${d}/`).join(', ');
|
|
402
|
-
sections.push(`<skill_resources>
|
|
403
|
-
This skill is located at: ${rootDir}
|
|
404
|
-
You can read files from ${dirList} subdirectories using the Read tool with the full path.
|
|
405
|
-
</skill_resources>`);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
return sections.join('\n\n');
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/**
|
|
413
|
-
* Builds the user prompt for a single hunk.
|
|
414
|
-
*/
|
|
415
|
-
export function buildHunkUserPrompt(
|
|
416
|
-
skill: SkillDefinition,
|
|
417
|
-
hunkCtx: HunkWithContext,
|
|
418
|
-
prContext?: PRPromptContext
|
|
419
|
-
): string {
|
|
420
|
-
return joinPromptSections([
|
|
421
|
-
`<task>
|
|
422
|
-
Analyze this code change according to the "${skill.name}" skill criteria.
|
|
423
|
-
</task>`,
|
|
424
|
-
buildPullRequestContextSection(prContext),
|
|
425
|
-
buildChangedFilesSection(prContext, hunkCtx.filename),
|
|
426
|
-
formatHunkForAnalysis(hunkCtx),
|
|
427
|
-
`<scope_reminder>
|
|
428
|
-
Only report findings that are explicitly covered by the skill instructions. Do not report general code quality issues, bugs, or improvements unless the skill specifically asks for them. Return an empty findings array if no issues match the skill's criteria.
|
|
429
|
-
</scope_reminder>`,
|
|
430
|
-
]);
|
|
431
|
-
}
|
|
432
|
-
</pre></td></tr></table></pre>
|
|
433
|
-
|
|
434
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
435
|
-
</div><!-- /wrapper -->
|
|
436
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
437
|
-
Code coverage generated by
|
|
438
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
439
|
-
at 2026-05-17T04:35:52.381Z
|
|
440
|
-
</div>
|
|
441
|
-
<script src="../../prettify.js"></script>
|
|
442
|
-
<script>
|
|
443
|
-
window.onload = function () {
|
|
444
|
-
prettyPrint();
|
|
445
|
-
};
|
|
446
|
-
</script>
|
|
447
|
-
<script src="../../sorter.js"></script>
|
|
448
|
-
<script src="../../block-navigation.js"></script>
|
|
449
|
-
</body>
|
|
450
|
-
</html>
|
|
451
|
-
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/sdk/report-files.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/sdk</a> report-files.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">85.71% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>6/7</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>4/4</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">80% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/5</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>4/4</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
94
|
-
<span class="cline-any cline-neutral"> </span>
|
|
95
|
-
<span class="cline-any cline-neutral"> </span>
|
|
96
|
-
<span class="cline-any cline-neutral"> </span>
|
|
97
|
-
<span class="cline-any cline-neutral"> </span>
|
|
98
|
-
<span class="cline-any cline-neutral"> </span>
|
|
99
|
-
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
101
|
-
<span class="cline-any cline-neutral"> </span>
|
|
102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
104
|
-
<span class="cline-any cline-neutral"> </span>
|
|
105
|
-
<span class="cline-any cline-yes">4x</span>
|
|
106
|
-
<span class="cline-any cline-yes">2x</span>
|
|
107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
111
|
-
<span class="cline-any cline-neutral"> </span>
|
|
112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-yes">9x</span>
|
|
114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
115
|
-
<span class="cline-any cline-yes">4x</span>
|
|
116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
117
|
-
<span class="cline-any cline-neutral"> </span>
|
|
118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
119
|
-
<span class="cline-any cline-neutral"> </span>
|
|
120
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { FileReport, Finding, UsageStats } from '../types/index.js';
|
|
121
|
-
|
|
122
|
-
export interface FileReportInput {
|
|
123
|
-
filename: string;
|
|
124
|
-
durationMs?: number;
|
|
125
|
-
usage?: UsageStats;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Return whether a final finding should be counted against a file.
|
|
130
|
-
*/
|
|
131
|
-
export function findingAppliesToFile(finding: Finding, filename: string): boolean {
|
|
132
|
-
if (finding.location?.path === filename) return true;
|
|
133
|
-
return finding.additionalLocations?.some(<span class="fstat-no" title="function not covered" >(l</span>ocation) => <span class="cstat-no" title="statement not covered" >location.path === filename)</span> ?? false;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Count final findings per file while preserving timing and usage metadata.
|
|
138
|
-
*/
|
|
139
|
-
export function buildFileReports(files: FileReportInput[], findings: Finding[]): FileReport[] {
|
|
140
|
-
return files.map((file) => ({
|
|
141
|
-
filename: file.filename,
|
|
142
|
-
findings: findings.filter((finding) => findingAppliesToFile(finding, file.filename)).length,
|
|
143
|
-
durationMs: file.durationMs,
|
|
144
|
-
usage: file.usage,
|
|
145
|
-
}));
|
|
146
|
-
}
|
|
147
|
-
</pre></td></tr></table></pre>
|
|
148
|
-
|
|
149
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
150
|
-
</div><!-- /wrapper -->
|
|
151
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
152
|
-
Code coverage generated by
|
|
153
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
154
|
-
at 2026-05-17T04:35:52.381Z
|
|
155
|
-
</div>
|
|
156
|
-
<script src="../../prettify.js"></script>
|
|
157
|
-
<script>
|
|
158
|
-
window.onload = function () {
|
|
159
|
-
prettyPrint();
|
|
160
|
-
};
|
|
161
|
-
</script>
|
|
162
|
-
<script src="../../sorter.js"></script>
|
|
163
|
-
<script src="../../block-navigation.js"></script>
|
|
164
|
-
</body>
|
|
165
|
-
</html>
|
|
166
|
-
|