repoburg 1.0.55 → 1.0.57
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/backend/.env +1 -0
- package/backend/coverage/clover.xml +2409 -2355
- package/backend/coverage/coverage-final.json +99 -96
- package/backend/coverage/lcov-report/index.html +356 -341
- package/backend/coverage/lcov-report/src/action-execution/action-execution.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/action-execution/action-execution.service.ts.html +140 -62
- package/backend/coverage/lcov-report/src/action-execution/index.html +28 -28
- package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +188 -188
- package/backend/coverage/lcov-report/src/ai-actions/ai-action-creation.service.ts.html +284 -236
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +109 -109
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +28 -28
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +193 -193
- package/backend/coverage/lcov-report/src/ai-actions/index.html +61 -61
- package/backend/coverage/lcov-report/src/app.controller.ts.html +24 -24
- package/backend/coverage/lcov-report/src/app.module.ts.html +68 -65
- package/backend/coverage/lcov-report/src/app.service.ts.html +46 -13
- package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +87 -33
- package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +113 -68
- package/backend/coverage/lcov-report/src/application-state/dto/index.html +42 -27
- package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/dto/set-orchestration-timeout.dto.ts.html +103 -0
- package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/index.html +37 -37
- package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +222 -222
- package/backend/coverage/lcov-report/src/context-generation/index.html +28 -28
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +31 -31
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +26 -26
- package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/context-snippets/index.html +31 -31
- package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +45 -45
- package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +87 -84
- package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +48 -48
- package/backend/coverage/lcov-report/src/context-templates/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/context-templates/index.html +36 -36
- package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +48 -48
- package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +14 -14
- package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +22 -22
- package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +18 -18
- package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +52 -52
- package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +20 -20
- package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +26 -26
- package/backend/coverage/lcov-report/src/core-entities/index.html +112 -112
- package/backend/coverage/lcov-report/src/core-entities/index.ts.html +28 -28
- package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +24 -24
- package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +59 -50
- package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +56 -56
- package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +28 -28
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +30 -30
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +20 -20
- package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/custom-snippets/index.html +32 -32
- package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +46 -46
- package/backend/coverage/lcov-report/src/events/events.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/events/index.html +28 -28
- package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +1 -1
- package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +1 -1
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +18 -18
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +32 -32
- package/backend/coverage/lcov-report/src/execution-logs/index.html +33 -33
- package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +55 -55
- package/backend/coverage/lcov-report/src/index.html +44 -44
- package/backend/coverage/lcov-report/src/llm-response-parser/dto/ai-action.dto.ts.html +67 -67
- package/backend/coverage/lcov-report/src/llm-response-parser/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/llm-response-parser/errors/index.html +17 -17
- package/backend/coverage/lcov-report/src/llm-response-parser/errors/parsing.error.ts.html +19 -19
- package/backend/coverage/lcov-report/src/llm-response-parser/index.html +35 -35
- package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.service.ts.html +208 -208
- package/backend/coverage/lcov-report/src/llm-response-parser/parsing.constants.ts.html +38 -38
- package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/llm-responses/index.html +38 -38
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +24 -24
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +38 -35
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +107 -86
- package/backend/coverage/lcov-report/src/main.ts.html +1 -1
- package/backend/coverage/lcov-report/src/orchestration/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/orchestration/dto/orchestration.dto.ts.html +30 -45
- package/backend/coverage/lcov-report/src/orchestration/index.html +74 -74
- package/backend/coverage/lcov-report/src/orchestration/orchestration-fs.service.ts.html +245 -128
- package/backend/coverage/lcov-report/src/orchestration/orchestration-parser.service.ts.html +32 -200
- package/backend/coverage/lcov-report/src/orchestration/orchestration.controller.ts.html +72 -102
- package/backend/coverage/lcov-report/src/orchestration/orchestration.module.ts.html +35 -38
- package/backend/coverage/lcov-report/src/orchestration/orchestration.service.ts.html +317 -425
- package/backend/coverage/lcov-report/src/orchestration/orchestration.types.ts.html +41 -35
- package/backend/coverage/lcov-report/src/projects/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +20 -20
- package/backend/coverage/lcov-report/src/projects/index.html +32 -32
- package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +28 -28
- package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +20 -20
- package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +22 -22
- package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +21 -21
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/pm-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/pr-description.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/sample_focused-tree.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/codebase-explorer.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.ts.html +8 -2
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +3 -3
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/packup.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/refactor-split.ts.html +244 -0
- package/backend/coverage/lcov-report/src/seeding/index.html +47 -47
- package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +24 -24
- package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +27 -27
- package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +21 -21
- package/backend/coverage/lcov-report/src/session-followup/index.html +28 -28
- package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +22 -22
- package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +44 -41
- package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +40 -28
- package/backend/coverage/lcov-report/src/session-inputs/index.html +50 -50
- package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +168 -156
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +36 -36
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +40 -37
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +242 -236
- package/backend/coverage/lcov-report/src/session-transfer/index.html +22 -22
- package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +30 -30
- package/backend/coverage/lcov-report/src/sessions/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +54 -54
- package/backend/coverage/lcov-report/src/sessions/index.html +39 -39
- package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +55 -55
- package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +30 -30
- package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +120 -120
- package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +19 -19
- package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +38 -29
- package/backend/coverage/lcov-report/src/system-prompts/index.html +37 -37
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +34 -34
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +62 -62
- package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +1 -1
- package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +310 -0
- package/backend/coverage/lcov-report/src/utils/index.html +131 -0
- package/backend/coverage/lcov-report/src/utils/index.ts.html +88 -0
- package/backend/coverage/lcov-report/src/workspace/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +24 -24
- package/backend/coverage/lcov-report/src/workspace/index.html +37 -37
- package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +26 -26
- package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +259 -214
- package/backend/coverage/lcov.info +3284 -3186
- package/backend/dist/action-execution/action-execution.service.d.ts +2 -0
- package/backend/dist/action-execution/action-execution.service.js +31 -13
- package/backend/dist/action-execution/action-execution.service.js.map +1 -1
- package/backend/dist/context-generation/context-generation.service.d.ts +2 -2
- package/backend/dist/context-generation/context-generation.service.js.map +1 -1
- package/backend/dist/orchestration/orchestration.service.js +1 -0
- package/backend/dist/orchestration/orchestration.service.js.map +1 -1
- package/backend/dist/session-inputs/dto/session-input.dto.d.ts +1 -0
- package/backend/dist/session-inputs/dto/session-input.dto.js +5 -0
- package/backend/dist/session-inputs/dto/session-input.dto.js.map +1 -1
- package/backend/dist/session-inputs/session-input-context.service.js +4 -5
- package/backend/dist/session-inputs/session-input-context.service.js.map +1 -1
- package/backend/dist/session-inputs/session-inputs.service.js +2 -1
- package/backend/dist/session-inputs/session-inputs.service.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/dist/utils/fuzzy-search.js +13 -4
- package/backend/dist/utils/fuzzy-search.js.map +1 -1
- package/backend/dist/workspace/workspace.service.d.ts +1 -0
- package/backend/dist/workspace/workspace.service.js +14 -3
- package/backend/dist/workspace/workspace.service.js.map +1 -1
- package/package.json +1 -1
- package/orchestration-test.txt +0 -3
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">68.42% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>26/38</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>5/5</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">66.66% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>24/36</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -152,23 +152,23 @@
|
|
|
152
152
|
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
153
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
154
|
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
156
|
-
<span class="cline-any cline-
|
|
157
|
-
<span class="cline-any cline-
|
|
158
|
-
<span class="cline-any cline-
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span>
|
|
156
|
+
<span class="cline-any cline-yes">8x</span>
|
|
157
|
+
<span class="cline-any cline-yes">8x</span>
|
|
158
|
+
<span class="cline-any cline-yes">8x</span>
|
|
159
159
|
<span class="cline-any cline-neutral"> </span>
|
|
160
160
|
<span class="cline-any cline-neutral"> </span>
|
|
161
161
|
<span class="cline-any cline-neutral"> </span>
|
|
162
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-
|
|
163
|
+
<span class="cline-any cline-yes">8x</span>
|
|
164
164
|
<span class="cline-any cline-neutral"> </span>
|
|
165
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
|
-
<span class="cline-any cline-
|
|
166
|
+
<span class="cline-any cline-yes">8x</span>
|
|
167
167
|
<span class="cline-any cline-neutral"> </span>
|
|
168
168
|
<span class="cline-any cline-neutral"> </span>
|
|
169
|
-
<span class="cline-any cline-
|
|
170
|
-
<span class="cline-any cline-
|
|
171
|
-
<span class="cline-any cline-
|
|
169
|
+
<span class="cline-any cline-yes">6x</span>
|
|
170
|
+
<span class="cline-any cline-yes">6x</span>
|
|
171
|
+
<span class="cline-any cline-yes">6x</span>
|
|
172
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
173
|
<span class="cline-any cline-neutral"> </span>
|
|
174
174
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -183,15 +183,15 @@
|
|
|
183
183
|
<span class="cline-any cline-neutral"> </span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
185
|
<span class="cline-any cline-neutral"> </span>
|
|
186
|
-
<span class="cline-any cline-
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-
|
|
186
|
+
<span class="cline-any cline-yes">3x</span>
|
|
187
|
+
<span class="cline-any cline-yes">3x</span>
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
189
189
|
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-
|
|
190
|
+
<span class="cline-any cline-yes">2x</span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
192
192
|
<span class="cline-any cline-neutral"> </span>
|
|
193
193
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-
|
|
194
|
+
<span class="cline-any cline-yes">14x</span>
|
|
195
195
|
<span class="cline-any cline-neutral"> </span>
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
197
197
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -213,25 +213,25 @@
|
|
|
213
213
|
<span class="cline-any cline-neutral"> </span>
|
|
214
214
|
<span class="cline-any cline-neutral"> </span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-
|
|
216
|
+
<span class="cline-any cline-yes">3x</span>
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-
|
|
219
|
-
<span class="cline-any cline-
|
|
218
|
+
<span class="cline-any cline-yes">2x</span>
|
|
219
|
+
<span class="cline-any cline-yes">2x</span>
|
|
220
220
|
<span class="cline-any cline-neutral"> </span>
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
222
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-
|
|
224
|
-
<span class="cline-any cline-
|
|
225
|
-
<span class="cline-any cline-
|
|
223
|
+
<span class="cline-any cline-yes">2x</span>
|
|
224
|
+
<span class="cline-any cline-yes">1x</span>
|
|
225
|
+
<span class="cline-any cline-yes">1x</span>
|
|
226
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
227
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-
|
|
229
|
-
<span class="cline-any cline-
|
|
230
|
-
<span class="cline-any cline-
|
|
228
|
+
<span class="cline-any cline-yes">2x</span>
|
|
229
|
+
<span class="cline-any cline-yes">2x</span>
|
|
230
|
+
<span class="cline-any cline-yes">2x</span>
|
|
231
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
233
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-
|
|
234
|
+
<span class="cline-any cline-yes">2x</span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
236
236
|
<span class="cline-any cline-neutral"> </span>
|
|
237
237
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -241,23 +241,23 @@
|
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
242
|
<span class="cline-any cline-neutral"> </span>
|
|
243
243
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
244
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Injectable, NotFoundException } from '@nestjs/common';
|
|
245
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
246
|
+
import { Repository, DataSource } from 'typeorm';
|
|
247
|
+
import { SystemPrompt } from '../core-entities';
|
|
248
248
|
import {
|
|
249
249
|
CreateSystemPromptDto,
|
|
250
250
|
UpdateSystemPromptDto,
|
|
251
251
|
} from './dto/system-prompt.dto';
|
|
252
|
-
|
|
252
|
+
import { EventsGateway } from '../events/events.gateway';
|
|
253
253
|
|
|
254
254
|
@Injectable()
|
|
255
|
-
export
|
|
256
|
-
|
|
255
|
+
export class SystemPromptsService {
|
|
256
|
+
constructor(
|
|
257
257
|
@InjectRepository(SystemPrompt)
|
|
258
|
-
private
|
|
259
|
-
private
|
|
260
|
-
private readonly
|
|
258
|
+
private systemPromptsRepository: Repository<SystemPrompt>,
|
|
259
|
+
private dataSource: DataSource,
|
|
260
|
+
private readonly eventsGateway: EventsGateway,
|
|
261
261
|
) {}
|
|
262
262
|
|
|
263
263
|
<span class="fstat-no" title="function not covered" > async </span>create(
|
|
@@ -271,16 +271,16 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
|
|
|
271
271
|
<span class="cstat-no" title="statement not covered" > return this.systemPromptsRepository.find({ order: { prompt_name: 'ASC' } });</span>
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
|
|
275
|
-
const prompt =
|
|
276
|
-
|
|
277
|
-
|
|
274
|
+
async findOne(id: string): Promise<SystemPrompt> {
|
|
275
|
+
const prompt = await this.systemPromptsRepository.findOneBy({ id });
|
|
276
|
+
if (!prompt) {
|
|
277
|
+
throw new NotFoundException(`SystemPrompt with ID "${id}" not found`);
|
|
278
278
|
}
|
|
279
|
-
|
|
279
|
+
return prompt;
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
async findDefault(): Promise<SystemPrompt | null> {
|
|
283
|
+
return this.systemPromptsRepository.findOneBy({ is_default: true });
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
<span class="fstat-no" title="function not covered" > async </span>update(
|
|
@@ -301,26 +301,26 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
|
|
|
301
301
|
<span class="cstat-no" title="statement not covered" > await this.systemPromptsRepository.remove(prompt);</span>
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
|
|
305
|
-
const newDefaultPrompt =
|
|
304
|
+
async setDefault(id: string): Promise<SystemPrompt> {
|
|
305
|
+
const newDefaultPrompt = await this.findOne(id);
|
|
306
306
|
|
|
307
|
-
|
|
308
|
-
const currentDefault =
|
|
307
|
+
await this.dataSource.transaction(async (manager) => {
|
|
308
|
+
const currentDefault = await manager.findOneBy(SystemPrompt, {
|
|
309
309
|
is_default: true,
|
|
310
310
|
});
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
312
|
+
if (currentDefault && currentDefault.id !== newDefaultPrompt.id) {
|
|
313
|
+
currentDefault.is_default = false;
|
|
314
|
+
await manager.save(currentDefault);
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
317
|
+
if (!newDefaultPrompt.is_default) {
|
|
318
|
+
newDefaultPrompt.is_default = true;
|
|
319
|
+
await manager.save(newDefaultPrompt);
|
|
320
320
|
}
|
|
321
321
|
});
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
return newDefaultPrompt;
|
|
324
324
|
}
|
|
325
325
|
|
|
326
326
|
<span class="fstat-no" title="function not covered" > async </span>pushToStudio(id: string): Promise<void> {
|
|
@@ -337,7 +337,7 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
|
|
|
337
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
338
338
|
Code coverage generated by
|
|
339
339
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
340
|
-
at 2025-
|
|
340
|
+
at 2025-09-12T19:21:55.945Z
|
|
341
341
|
</div>
|
|
342
342
|
<script src="../../prettify.js"></script>
|
|
343
343
|
<script>
|
|
@@ -163,7 +163,7 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
|
|
|
163
163
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
164
164
|
Code coverage generated by
|
|
165
165
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
166
|
-
at 2025-
|
|
166
|
+
at 2025-09-12T19:21:55.945Z
|
|
167
167
|
</div>
|
|
168
168
|
<script src="../prettify.js"></script>
|
|
169
169
|
<script>
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/utils/fuzzy-search.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/utils</a> fuzzy-search.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">94.44% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>34/36</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">91.66% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>11/12</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'>5/5</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">94.11% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>32/34</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
|
|
142
|
+
<span class="cline-any cline-yes">6x</span>
|
|
143
|
+
<span class="cline-any cline-no"> </span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
146
|
+
<span class="cline-any cline-yes">6x</span>
|
|
147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
148
|
+
<span class="cline-any cline-yes">6x</span>
|
|
149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-yes">20x</span>
|
|
151
|
+
<span class="cline-any cline-yes">20x</span>
|
|
152
|
+
<span class="cline-any cline-yes">20x</span>
|
|
153
|
+
<span class="cline-any cline-yes">20x</span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-yes">20x</span>
|
|
156
|
+
<span class="cline-any cline-yes">45x</span>
|
|
157
|
+
<span class="cline-any cline-yes">45x</span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-yes">45x</span>
|
|
160
|
+
<span class="cline-any cline-yes">10x</span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-yes">35x</span>
|
|
165
|
+
<span class="cline-any cline-yes">14x</span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-yes">35x</span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
|
+
<span class="cline-any cline-yes">10x</span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-yes">35x</span>
|
|
179
|
+
<span class="cline-any cline-yes">32x</span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-yes">35x</span>
|
|
184
|
+
<span class="cline-any cline-yes">24x</span>
|
|
185
|
+
<span class="cline-any cline-yes">24x</span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-yes">11x</span>
|
|
188
|
+
<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-yes">35x</span>
|
|
192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-yes">35x</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-yes">10x</span>
|
|
198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
199
|
+
<span class="cline-any cline-yes">10x</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-yes">20x</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-yes">6x</span>
|
|
208
|
+
<span class="cline-any cline-yes">7x</span>
|
|
209
|
+
<span class="cline-any cline-yes">7x</span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-no"> </span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">10x</span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export function fuzzySearch(query: string, items: string[]): string[] {
|
|
217
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!query) {
|
|
218
|
+
<span class="cstat-no" title="statement not covered" > return items;</span>
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const lowerCaseQuery = query.toLowerCase();
|
|
222
|
+
|
|
223
|
+
const rankedItems = items
|
|
224
|
+
.map((item, index) => {
|
|
225
|
+
const lowerCaseItem = item.toLowerCase();
|
|
226
|
+
let score = 0;
|
|
227
|
+
let consecutiveMatches = 0;
|
|
228
|
+
let lastMatchIndex = -1;
|
|
229
|
+
|
|
230
|
+
for (let i = 0; i < lowerCaseQuery.length; i++) {
|
|
231
|
+
const char = lowerCaseQuery[i];
|
|
232
|
+
const foundIndex = lowerCaseItem.indexOf(char, lastMatchIndex + 1);
|
|
233
|
+
|
|
234
|
+
if (foundIndex === -1) {
|
|
235
|
+
return null; // Doesn't match
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Bonus if the first query char was matched very early
|
|
239
|
+
if (i === 0) {
|
|
240
|
+
score += Math.max(10, 50 - foundIndex);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Score bonus for being at the start of a word (separator or camelCase)
|
|
244
|
+
if (
|
|
245
|
+
foundIndex === 0 ||
|
|
246
|
+
['/', '\\', '_', '-', '.'].includes(lowerCaseItem[foundIndex - 1]) ||
|
|
247
|
+
(/[a-z]/.test(item[foundIndex - 1]) && /[A-Z]/.test(item[foundIndex]))
|
|
248
|
+
) {
|
|
249
|
+
score += 15;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// Score bonus for matching case
|
|
253
|
+
if (item[foundIndex] === query[i]) {
|
|
254
|
+
score += 5;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Score bonus for consecutive matches
|
|
258
|
+
if (lastMatchIndex === foundIndex - 1) {
|
|
259
|
+
consecutiveMatches++;
|
|
260
|
+
score += 20 * consecutiveMatches;
|
|
261
|
+
} else {
|
|
262
|
+
consecutiveMatches = 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Penalty for distance between matches
|
|
266
|
+
score -= foundIndex - (lastMatchIndex + 1);
|
|
267
|
+
|
|
268
|
+
lastMatchIndex = foundIndex;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// Add a small penalty based on item length to favor shorter matches
|
|
272
|
+
score -= item.length * 0.1;
|
|
273
|
+
|
|
274
|
+
return { item, score, index };
|
|
275
|
+
})
|
|
276
|
+
.filter(
|
|
277
|
+
(result): result is { item: string; score: number; index: number } =>
|
|
278
|
+
result !== null,
|
|
279
|
+
);
|
|
280
|
+
|
|
281
|
+
// Sort by score descending, then by original index ascending for stability
|
|
282
|
+
rankedItems.sort((a, b) => {
|
|
283
|
+
if (a.score !== b.score) {
|
|
284
|
+
return b.score - a.score;
|
|
285
|
+
}
|
|
286
|
+
<span class="cstat-no" title="statement not covered" > return a.index - b.index;</span>
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
return rankedItems.map((result) => result.item);
|
|
290
|
+
}
|
|
291
|
+
</pre></td></tr></table></pre>
|
|
292
|
+
|
|
293
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
294
|
+
</div><!-- /wrapper -->
|
|
295
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
296
|
+
Code coverage generated by
|
|
297
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
298
|
+
at 2025-09-12T19:21:55.945Z
|
|
299
|
+
</div>
|
|
300
|
+
<script src="../../prettify.js"></script>
|
|
301
|
+
<script>
|
|
302
|
+
window.onload = function () {
|
|
303
|
+
prettyPrint();
|
|
304
|
+
};
|
|
305
|
+
</script>
|
|
306
|
+
<script src="../../sorter.js"></script>
|
|
307
|
+
<script src="../../block-navigation.js"></script>
|
|
308
|
+
</body>
|
|
309
|
+
</html>
|
|
310
|
+
|