repoburg 1.0.54 → 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 +3 -1
- 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 +3 -3
- 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 +12 -8
- 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.d.ts +1 -0
- package/backend/dist/utils/fuzzy-search.js +54 -0
- package/backend/dist/utils/fuzzy-search.js.map +1 -0
- package/backend/dist/utils/index.d.ts +1 -0
- package/backend/dist/utils/index.js +18 -0
- package/backend/dist/utils/index.js.map +1 -0
- package/backend/dist/workspace/workspace.service.d.ts +2 -1
- package/backend/dist/workspace/workspace.service.js +53 -85
- package/backend/dist/workspace/workspace.service.js.map +1 -1
- package/backend/package.json +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">72.84% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>110/151</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">68.96% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>40/58</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">69.23% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>9/13</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">72.48% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>108/149</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>
|
|
@@ -573,7 +573,9 @@
|
|
|
573
573
|
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
574
|
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
575
|
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
-
<a name='L511'></a><a href='#L511'>511</a
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span>
|
|
577
579
|
<span class="cline-any cline-neutral"> </span>
|
|
578
580
|
<span class="cline-any cline-neutral"> </span>
|
|
579
581
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -581,9 +583,9 @@
|
|
|
581
583
|
<span class="cline-any cline-neutral"> </span>
|
|
582
584
|
<span class="cline-any cline-neutral"> </span>
|
|
583
585
|
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-
|
|
585
|
-
<span class="cline-any cline-
|
|
586
|
-
<span class="cline-any cline-
|
|
586
|
+
<span class="cline-any cline-yes">8x</span>
|
|
587
|
+
<span class="cline-any cline-yes">8x</span>
|
|
588
|
+
<span class="cline-any cline-yes">8x</span>
|
|
587
589
|
<span class="cline-any cline-neutral"> </span>
|
|
588
590
|
<span class="cline-any cline-neutral"> </span>
|
|
589
591
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -594,77 +596,77 @@
|
|
|
594
596
|
<span class="cline-any cline-neutral"> </span>
|
|
595
597
|
<span class="cline-any cline-neutral"> </span>
|
|
596
598
|
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-
|
|
599
|
+
<span class="cline-any cline-yes">8x</span>
|
|
598
600
|
<span class="cline-any cline-neutral"> </span>
|
|
599
601
|
<span class="cline-any cline-neutral"> </span>
|
|
600
602
|
<span class="cline-any cline-neutral"> </span>
|
|
601
|
-
<span class="cline-any cline-
|
|
602
|
-
<span class="cline-any cline-
|
|
603
|
+
<span class="cline-any cline-yes">8x</span>
|
|
604
|
+
<span class="cline-any cline-yes">8x</span>
|
|
603
605
|
<span class="cline-any cline-neutral"> </span>
|
|
604
606
|
<span class="cline-any cline-neutral"> </span>
|
|
605
607
|
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-
|
|
607
|
-
<span class="cline-any cline-
|
|
608
|
-
<span class="cline-any cline-
|
|
609
|
-
<span class="cline-any cline-
|
|
608
|
+
<span class="cline-any cline-yes">8x</span>
|
|
609
|
+
<span class="cline-any cline-yes">8x</span>
|
|
610
|
+
<span class="cline-any cline-yes">8x</span>
|
|
611
|
+
<span class="cline-any cline-yes">8x</span>
|
|
610
612
|
<span class="cline-any cline-neutral"> </span>
|
|
611
613
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-
|
|
613
|
-
<span class="cline-any cline-
|
|
614
|
+
<span class="cline-any cline-yes">8x</span>
|
|
615
|
+
<span class="cline-any cline-yes">16x</span>
|
|
614
616
|
<span class="cline-any cline-neutral"> </span>
|
|
615
617
|
<span class="cline-any cline-neutral"> </span>
|
|
616
618
|
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-
|
|
619
|
+
<span class="cline-any cline-yes">16x</span>
|
|
618
620
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-
|
|
621
|
+
<span class="cline-any cline-yes">16x</span>
|
|
620
622
|
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-
|
|
622
|
-
<span class="cline-any cline-
|
|
623
|
-
<span class="cline-any cline-
|
|
624
|
-
<span class="cline-any cline-
|
|
625
|
-
<span class="cline-any cline-
|
|
626
|
-
<span class="cline-any cline-
|
|
627
|
-
<span class="cline-any cline-
|
|
628
|
-
<span class="cline-any cline-
|
|
623
|
+
<span class="cline-any cline-yes">16x</span>
|
|
624
|
+
<span class="cline-any cline-yes">16x</span>
|
|
625
|
+
<span class="cline-any cline-yes">16x</span>
|
|
626
|
+
<span class="cline-any cline-yes">16x</span>
|
|
627
|
+
<span class="cline-any cline-yes">16x</span>
|
|
628
|
+
<span class="cline-any cline-yes">16x</span>
|
|
629
|
+
<span class="cline-any cline-yes">16x</span>
|
|
630
|
+
<span class="cline-any cline-yes">16x</span>
|
|
629
631
|
<span class="cline-any cline-neutral"> </span>
|
|
630
632
|
<span class="cline-any cline-neutral"> </span>
|
|
631
633
|
<span class="cline-any cline-neutral"> </span>
|
|
632
634
|
<span class="cline-any cline-neutral"> </span>
|
|
633
635
|
<span class="cline-any cline-neutral"> </span>
|
|
634
636
|
<span class="cline-any cline-neutral"> </span>
|
|
635
|
-
<span class="cline-any cline-
|
|
636
|
-
<span class="cline-any cline-
|
|
637
|
+
<span class="cline-any cline-yes">9x</span>
|
|
638
|
+
<span class="cline-any cline-yes">9x</span>
|
|
637
639
|
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-
|
|
639
|
-
<span class="cline-any cline-
|
|
640
|
+
<span class="cline-any cline-yes">9x</span>
|
|
641
|
+
<span class="cline-any cline-yes">1x</span>
|
|
640
642
|
<span class="cline-any cline-neutral"> </span>
|
|
641
643
|
<span class="cline-any cline-neutral"> </span>
|
|
642
644
|
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-
|
|
644
|
-
<span class="cline-any cline-
|
|
645
|
+
<span class="cline-any cline-yes">1x</span>
|
|
646
|
+
<span class="cline-any cline-yes">1x</span>
|
|
645
647
|
<span class="cline-any cline-neutral"> </span>
|
|
646
648
|
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-
|
|
649
|
+
<span class="cline-any cline-yes">1x</span>
|
|
648
650
|
<span class="cline-any cline-neutral"> </span>
|
|
649
651
|
<span class="cline-any cline-neutral"> </span>
|
|
650
652
|
<span class="cline-any cline-neutral"> </span>
|
|
651
653
|
<span class="cline-any cline-neutral"> </span>
|
|
652
654
|
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-
|
|
655
|
+
<span class="cline-any cline-yes">1x</span>
|
|
654
656
|
<span class="cline-any cline-neutral"> </span>
|
|
655
|
-
<span class="cline-any cline-
|
|
657
|
+
<span class="cline-any cline-yes">1x</span>
|
|
656
658
|
<span class="cline-any cline-neutral"> </span>
|
|
657
659
|
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-
|
|
660
|
+
<span class="cline-any cline-yes">8x</span>
|
|
659
661
|
<span class="cline-any cline-neutral"> </span>
|
|
660
662
|
<span class="cline-any cline-neutral"> </span>
|
|
661
663
|
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-
|
|
663
|
-
<span class="cline-any cline-
|
|
664
|
+
<span class="cline-any cline-yes">19x</span>
|
|
665
|
+
<span class="cline-any cline-yes">17x</span>
|
|
664
666
|
<span class="cline-any cline-neutral"> </span>
|
|
665
667
|
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-
|
|
667
|
-
<span class="cline-any cline-
|
|
668
|
+
<span class="cline-any cline-yes">2x</span>
|
|
669
|
+
<span class="cline-any cline-yes">2x</span>
|
|
668
670
|
<span class="cline-any cline-neutral"> </span>
|
|
669
671
|
<span class="cline-any cline-neutral"> </span>
|
|
670
672
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -672,7 +674,7 @@
|
|
|
672
674
|
<span class="cline-any cline-no"> </span>
|
|
673
675
|
<span class="cline-any cline-neutral"> </span>
|
|
674
676
|
<span class="cline-any cline-neutral"> </span>
|
|
675
|
-
<span class="cline-any cline-
|
|
677
|
+
<span class="cline-any cline-yes">2x</span>
|
|
676
678
|
<span class="cline-any cline-neutral"> </span>
|
|
677
679
|
<span class="cline-any cline-neutral"> </span>
|
|
678
680
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -680,20 +682,20 @@
|
|
|
680
682
|
<span class="cline-any cline-neutral"> </span>
|
|
681
683
|
<span class="cline-any cline-neutral"> </span>
|
|
682
684
|
<span class="cline-any cline-neutral"> </span>
|
|
683
|
-
<span class="cline-any cline-
|
|
684
|
-
<span class="cline-any cline-
|
|
685
|
+
<span class="cline-any cline-yes">2x</span>
|
|
686
|
+
<span class="cline-any cline-yes">2x</span>
|
|
685
687
|
<span class="cline-any cline-neutral"> </span>
|
|
686
688
|
<span class="cline-any cline-neutral"> </span>
|
|
687
|
-
<span class="cline-any cline-
|
|
689
|
+
<span class="cline-any cline-yes">2x</span>
|
|
688
690
|
<span class="cline-any cline-no"> </span>
|
|
689
691
|
<span class="cline-any cline-neutral"> </span>
|
|
690
692
|
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-
|
|
693
|
+
<span class="cline-any cline-yes">2x</span>
|
|
692
694
|
<span class="cline-any cline-neutral"> </span>
|
|
693
695
|
<span class="cline-any cline-neutral"> </span>
|
|
694
696
|
<span class="cline-any cline-neutral"> </span>
|
|
695
697
|
<span class="cline-any cline-neutral"> </span>
|
|
696
|
-
<span class="cline-any cline-
|
|
698
|
+
<span class="cline-any cline-yes">2x</span>
|
|
697
699
|
<span class="cline-any cline-neutral"> </span>
|
|
698
700
|
<span class="cline-any cline-neutral"> </span>
|
|
699
701
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -705,7 +707,7 @@
|
|
|
705
707
|
<span class="cline-any cline-neutral"> </span>
|
|
706
708
|
<span class="cline-any cline-neutral"> </span>
|
|
707
709
|
<span class="cline-any cline-neutral"> </span>
|
|
708
|
-
<span class="cline-any cline-
|
|
710
|
+
<span class="cline-any cline-yes">10x</span>
|
|
709
711
|
<span class="cline-any cline-neutral"> </span>
|
|
710
712
|
<span class="cline-any cline-neutral"> </span>
|
|
711
713
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -717,20 +719,20 @@
|
|
|
717
719
|
<span class="cline-any cline-neutral"> </span>
|
|
718
720
|
<span class="cline-any cline-neutral"> </span>
|
|
719
721
|
<span class="cline-any cline-neutral"> </span>
|
|
720
|
-
<span class="cline-any cline-
|
|
721
|
-
<span class="cline-any cline-
|
|
722
|
+
<span class="cline-any cline-yes">10x</span>
|
|
723
|
+
<span class="cline-any cline-yes">1x</span>
|
|
722
724
|
<span class="cline-any cline-neutral"> </span>
|
|
723
725
|
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-
|
|
725
|
-
<span class="cline-any cline-
|
|
726
|
-
<span class="cline-any cline-
|
|
726
|
+
<span class="cline-any cline-yes">9x</span>
|
|
727
|
+
<span class="cline-any cline-yes">9x</span>
|
|
728
|
+
<span class="cline-any cline-yes">9x</span>
|
|
727
729
|
<span class="cline-any cline-neutral"> </span>
|
|
728
|
-
<span class="cline-any cline-
|
|
730
|
+
<span class="cline-any cline-yes">9x</span>
|
|
729
731
|
<span class="cline-any cline-neutral"> </span>
|
|
730
732
|
<span class="cline-any cline-neutral"> </span>
|
|
731
733
|
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-
|
|
733
|
-
<span class="cline-any cline-
|
|
734
|
+
<span class="cline-any cline-yes">9x</span>
|
|
735
|
+
<span class="cline-any cline-yes">9x</span>
|
|
734
736
|
<span class="cline-any cline-no"> </span>
|
|
735
737
|
<span class="cline-any cline-neutral"> </span>
|
|
736
738
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -742,17 +744,17 @@
|
|
|
742
744
|
<span class="cline-any cline-neutral"> </span>
|
|
743
745
|
<span class="cline-any cline-neutral"> </span>
|
|
744
746
|
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-
|
|
747
|
+
<span class="cline-any cline-yes">9x</span>
|
|
746
748
|
<span class="cline-any cline-neutral"> </span>
|
|
747
749
|
<span class="cline-any cline-neutral"> </span>
|
|
748
|
-
<span class="cline-any cline-
|
|
750
|
+
<span class="cline-any cline-yes">9x</span>
|
|
749
751
|
<span class="cline-any cline-neutral"> </span>
|
|
750
752
|
<span class="cline-any cline-neutral"> </span>
|
|
751
753
|
<span class="cline-any cline-neutral"> </span>
|
|
752
754
|
<span class="cline-any cline-neutral"> </span>
|
|
753
755
|
<span class="cline-any cline-neutral"> </span>
|
|
754
756
|
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-
|
|
757
|
+
<span class="cline-any cline-yes">9x</span>
|
|
756
758
|
<span class="cline-any cline-neutral"> </span>
|
|
757
759
|
<span class="cline-any cline-neutral"> </span>
|
|
758
760
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -761,34 +763,34 @@
|
|
|
761
763
|
<span class="cline-any cline-neutral"> </span>
|
|
762
764
|
<span class="cline-any cline-neutral"> </span>
|
|
763
765
|
<span class="cline-any cline-neutral"> </span>
|
|
764
|
-
<span class="cline-any cline-no"> </span>
|
|
765
766
|
<span class="cline-any cline-neutral"> </span>
|
|
767
|
+
<span class="cline-any cline-yes">9x</span>
|
|
766
768
|
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-no"> </span>
|
|
768
769
|
<span class="cline-any cline-neutral"> </span>
|
|
770
|
+
<span class="cline-any cline-yes">9x</span>
|
|
769
771
|
<span class="cline-any cline-neutral"> </span>
|
|
770
|
-
<span class="cline-any cline-no"> </span>
|
|
771
|
-
<span class="cline-any cline-no"> </span>
|
|
772
772
|
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-yes">9x</span>
|
|
774
|
+
<span class="cline-any cline-yes">5x</span>
|
|
773
775
|
<span class="cline-any cline-neutral"> </span>
|
|
774
776
|
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-no"> </span>
|
|
776
|
-
<span class="cline-any cline-no"> </span>
|
|
777
777
|
<span class="cline-any cline-neutral"> </span>
|
|
778
|
+
<span class="cline-any cline-yes">4x</span>
|
|
779
|
+
<span class="cline-any cline-yes">2x</span>
|
|
778
780
|
<span class="cline-any cline-neutral"> </span>
|
|
779
|
-
<span class="cline-any cline-no"> </span>
|
|
780
781
|
<span class="cline-any cline-neutral"> </span>
|
|
781
|
-
<span class="cline-any cline-
|
|
782
|
+
<span class="cline-any cline-yes">2x</span>
|
|
782
783
|
<span class="cline-any cline-neutral"> </span>
|
|
784
|
+
<span class="cline-any cline-yes">1x</span>
|
|
783
785
|
<span class="cline-any cline-neutral"> </span>
|
|
784
786
|
<span class="cline-any cline-neutral"> </span>
|
|
785
|
-
<span class="cline-any cline-no"> </span>
|
|
786
787
|
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-yes">1x</span>
|
|
787
789
|
<span class="cline-any cline-neutral"> </span>
|
|
788
790
|
<span class="cline-any cline-neutral"> </span>
|
|
789
791
|
<span class="cline-any cline-neutral"> </span>
|
|
790
|
-
<span class="cline-any cline-no"> </span>
|
|
791
792
|
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-yes">7x</span>
|
|
792
794
|
<span class="cline-any cline-neutral"> </span>
|
|
793
795
|
<span class="cline-any cline-neutral"> </span>
|
|
794
796
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -797,23 +799,24 @@
|
|
|
797
799
|
<span class="cline-any cline-neutral"> </span>
|
|
798
800
|
<span class="cline-any cline-neutral"> </span>
|
|
799
801
|
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-yes">7x</span>
|
|
801
804
|
<span class="cline-any cline-no"> </span>
|
|
802
805
|
<span class="cline-any cline-neutral"> </span>
|
|
803
806
|
<span class="cline-any cline-neutral"> </span>
|
|
804
807
|
<span class="cline-any cline-neutral"> </span>
|
|
805
808
|
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-
|
|
809
|
+
<span class="cline-any cline-yes">7x</span>
|
|
807
810
|
<span class="cline-any cline-neutral"> </span>
|
|
808
811
|
<span class="cline-any cline-neutral"> </span>
|
|
809
812
|
<span class="cline-any cline-neutral"> </span>
|
|
810
813
|
<span class="cline-any cline-neutral"> </span>
|
|
811
814
|
<span class="cline-any cline-neutral"> </span>
|
|
812
815
|
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-
|
|
816
|
+
<span class="cline-any cline-yes">12x</span>
|
|
814
817
|
<span class="cline-any cline-neutral"> </span>
|
|
815
818
|
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-
|
|
819
|
+
<span class="cline-any cline-yes">12x</span>
|
|
817
820
|
<span class="cline-any cline-neutral"> </span>
|
|
818
821
|
<span class="cline-any cline-neutral"> </span>
|
|
819
822
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -825,42 +828,42 @@
|
|
|
825
828
|
<span class="cline-any cline-neutral"> </span>
|
|
826
829
|
<span class="cline-any cline-neutral"> </span>
|
|
827
830
|
<span class="cline-any cline-neutral"> </span>
|
|
828
|
-
<span class="cline-any cline-
|
|
829
|
-
<span class="cline-any cline-
|
|
831
|
+
<span class="cline-any cline-yes">12x</span>
|
|
832
|
+
<span class="cline-any cline-yes">1x</span>
|
|
830
833
|
<span class="cline-any cline-neutral"> </span>
|
|
831
834
|
<span class="cline-any cline-neutral"> </span>
|
|
832
|
-
<span class="cline-any cline-
|
|
833
|
-
<span class="cline-any cline-
|
|
834
|
-
<span class="cline-any cline-
|
|
835
|
+
<span class="cline-any cline-yes">11x</span>
|
|
836
|
+
<span class="cline-any cline-yes">11x</span>
|
|
837
|
+
<span class="cline-any cline-yes">11x</span>
|
|
835
838
|
<span class="cline-any cline-neutral"> </span>
|
|
836
|
-
<span class="cline-any cline-
|
|
839
|
+
<span class="cline-any cline-yes">11x</span>
|
|
837
840
|
<span class="cline-any cline-neutral"> </span>
|
|
838
841
|
<span class="cline-any cline-neutral"> </span>
|
|
839
842
|
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-
|
|
841
|
-
<span class="cline-any cline-
|
|
842
|
-
<span class="cline-any cline-
|
|
843
|
+
<span class="cline-any cline-yes">11x</span>
|
|
844
|
+
<span class="cline-any cline-yes">11x</span>
|
|
845
|
+
<span class="cline-any cline-yes">4x</span>
|
|
843
846
|
<span class="cline-any cline-neutral"> </span>
|
|
844
847
|
<span class="cline-any cline-neutral"> </span>
|
|
845
|
-
<span class="cline-any cline-
|
|
846
|
-
<span class="cline-any cline-
|
|
848
|
+
<span class="cline-any cline-yes">4x</span>
|
|
849
|
+
<span class="cline-any cline-yes">1x</span>
|
|
847
850
|
<span class="cline-any cline-neutral"> </span>
|
|
848
851
|
<span class="cline-any cline-neutral"> </span>
|
|
849
852
|
<span class="cline-any cline-neutral"> </span>
|
|
850
853
|
<span class="cline-any cline-neutral"> </span>
|
|
851
854
|
<span class="cline-any cline-neutral"> </span>
|
|
852
855
|
<span class="cline-any cline-neutral"> </span>
|
|
853
|
-
<span class="cline-any cline-
|
|
856
|
+
<span class="cline-any cline-yes">10x</span>
|
|
854
857
|
<span class="cline-any cline-neutral"> </span>
|
|
855
858
|
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-
|
|
859
|
+
<span class="cline-any cline-yes">10x</span>
|
|
857
860
|
<span class="cline-any cline-neutral"> </span>
|
|
858
861
|
<span class="cline-any cline-neutral"> </span>
|
|
859
862
|
<span class="cline-any cline-neutral"> </span>
|
|
860
863
|
<span class="cline-any cline-neutral"> </span>
|
|
861
864
|
<span class="cline-any cline-neutral"> </span>
|
|
862
865
|
<span class="cline-any cline-neutral"> </span>
|
|
863
|
-
<span class="cline-any cline-
|
|
866
|
+
<span class="cline-any cline-yes">10x</span>
|
|
864
867
|
<span class="cline-any cline-neutral"> </span>
|
|
865
868
|
<span class="cline-any cline-neutral"> </span>
|
|
866
869
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -872,17 +875,17 @@
|
|
|
872
875
|
<span class="cline-any cline-neutral"> </span>
|
|
873
876
|
<span class="cline-any cline-neutral"> </span>
|
|
874
877
|
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-
|
|
876
|
-
<span class="cline-any cline-
|
|
878
|
+
<span class="cline-any cline-yes">10x</span>
|
|
879
|
+
<span class="cline-any cline-yes">10x</span>
|
|
877
880
|
<span class="cline-any cline-neutral"> </span>
|
|
878
881
|
<span class="cline-any cline-neutral"> </span>
|
|
879
882
|
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-
|
|
883
|
+
<span class="cline-any cline-yes">10x</span>
|
|
881
884
|
<span class="cline-any cline-neutral"> </span>
|
|
882
885
|
<span class="cline-any cline-neutral"> </span>
|
|
883
|
-
<span class="cline-any cline-
|
|
886
|
+
<span class="cline-any cline-yes">10x</span>
|
|
884
887
|
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-
|
|
888
|
+
<span class="cline-any cline-yes">10x</span>
|
|
886
889
|
<span class="cline-any cline-neutral"> </span>
|
|
887
890
|
<span class="cline-any cline-neutral"> </span>
|
|
888
891
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -893,45 +896,45 @@
|
|
|
893
896
|
<span class="cline-any cline-neutral"> </span>
|
|
894
897
|
<span class="cline-any cline-neutral"> </span>
|
|
895
898
|
<span class="cline-any cline-neutral"> </span>
|
|
896
|
-
<span class="cline-any cline-
|
|
899
|
+
<span class="cline-any cline-yes">11x</span>
|
|
897
900
|
<span class="cline-any cline-neutral"> </span>
|
|
898
901
|
<span class="cline-any cline-neutral"> </span>
|
|
899
902
|
<span class="cline-any cline-neutral"> </span>
|
|
900
|
-
<span class="cline-any cline-
|
|
903
|
+
<span class="cline-any cline-yes">11x</span>
|
|
901
904
|
<span class="cline-any cline-neutral"> </span>
|
|
902
905
|
<span class="cline-any cline-neutral"> </span>
|
|
903
906
|
<span class="cline-any cline-neutral"> </span>
|
|
904
|
-
<span class="cline-any cline-
|
|
905
|
-
<span class="cline-any cline-
|
|
907
|
+
<span class="cline-any cline-yes">11x</span>
|
|
908
|
+
<span class="cline-any cline-yes">2x</span>
|
|
906
909
|
<span class="cline-any cline-neutral"> </span>
|
|
907
910
|
<span class="cline-any cline-neutral"> </span>
|
|
908
911
|
<span class="cline-any cline-neutral"> </span>
|
|
909
|
-
<span class="cline-any cline-
|
|
912
|
+
<span class="cline-any cline-yes">9x</span>
|
|
910
913
|
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-
|
|
914
|
+
<span class="cline-any cline-yes">9x</span>
|
|
912
915
|
<span class="cline-any cline-neutral"> </span>
|
|
913
|
-
<span class="cline-any cline-
|
|
916
|
+
<span class="cline-any cline-yes">9x</span>
|
|
914
917
|
<span class="cline-any cline-neutral"> </span>
|
|
915
918
|
<span class="cline-any cline-neutral"> </span>
|
|
916
919
|
<span class="cline-any cline-neutral"> </span>
|
|
917
|
-
<span class="cline-any cline-
|
|
920
|
+
<span class="cline-any cline-yes">9x</span>
|
|
918
921
|
<span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-
|
|
920
|
-
<span class="cline-any cline-
|
|
922
|
+
<span class="cline-any cline-yes">9x</span>
|
|
923
|
+
<span class="cline-any cline-yes">9x</span>
|
|
921
924
|
<span class="cline-any cline-neutral"> </span>
|
|
922
925
|
<span class="cline-any cline-neutral"> </span>
|
|
923
926
|
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-
|
|
925
|
-
<span class="cline-any cline-
|
|
927
|
+
<span class="cline-any cline-yes">9x</span>
|
|
928
|
+
<span class="cline-any cline-yes">4x</span>
|
|
926
929
|
<span class="cline-any cline-neutral"> </span>
|
|
927
930
|
<span class="cline-any cline-neutral"> </span>
|
|
928
931
|
<span class="cline-any cline-neutral"> </span>
|
|
929
|
-
<span class="cline-any cline-
|
|
930
|
-
<span class="cline-any cline-
|
|
932
|
+
<span class="cline-any cline-yes">5x</span>
|
|
933
|
+
<span class="cline-any cline-yes">2x</span>
|
|
931
934
|
<span class="cline-any cline-neutral"> </span>
|
|
932
935
|
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-
|
|
934
|
-
<span class="cline-any cline-
|
|
936
|
+
<span class="cline-any cline-yes">3x</span>
|
|
937
|
+
<span class="cline-any cline-yes">3x</span>
|
|
935
938
|
<span class="cline-any cline-neutral"> </span>
|
|
936
939
|
<span class="cline-any cline-neutral"> </span>
|
|
937
940
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -940,7 +943,7 @@
|
|
|
940
943
|
<span class="cline-any cline-neutral"> </span>
|
|
941
944
|
<span class="cline-any cline-neutral"> </span>
|
|
942
945
|
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-
|
|
946
|
+
<span class="cline-any cline-yes">8x</span>
|
|
944
947
|
<span class="cline-any cline-neutral"> </span>
|
|
945
948
|
<span class="cline-any cline-neutral"> </span>
|
|
946
949
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -950,15 +953,15 @@
|
|
|
950
953
|
<span class="cline-any cline-neutral"> </span>
|
|
951
954
|
<span class="cline-any cline-neutral"> </span>
|
|
952
955
|
<span class="cline-any cline-neutral"> </span>
|
|
953
|
-
<span class="cline-any cline-
|
|
956
|
+
<span class="cline-any cline-yes">8x</span>
|
|
954
957
|
<span class="cline-any cline-no"> </span>
|
|
955
958
|
<span class="cline-any cline-neutral"> </span>
|
|
956
959
|
<span class="cline-any cline-neutral"> </span>
|
|
957
960
|
<span class="cline-any cline-neutral"> </span>
|
|
958
|
-
<span class="cline-any cline-
|
|
961
|
+
<span class="cline-any cline-yes">8x</span>
|
|
959
962
|
<span class="cline-any cline-neutral"> </span>
|
|
960
963
|
<span class="cline-any cline-neutral"> </span>
|
|
961
|
-
<span class="cline-any cline-
|
|
964
|
+
<span class="cline-any cline-yes">8x</span>
|
|
962
965
|
<span class="cline-any cline-neutral"> </span>
|
|
963
966
|
<span class="cline-any cline-neutral"> </span>
|
|
964
967
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1083,7 +1086,8 @@
|
|
|
1083
1086
|
<span class="cline-any cline-neutral"> </span>
|
|
1084
1087
|
<span class="cline-any cline-neutral"> </span>
|
|
1085
1088
|
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
-
<span class="cline-any cline-neutral"> </span
|
|
1089
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1090
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
1087
1091
|
Injectable,
|
|
1088
1092
|
NotFoundException,
|
|
1089
1093
|
BadRequestException,
|
|
@@ -1091,9 +1095,9 @@
|
|
|
1091
1095
|
forwardRef,
|
|
1092
1096
|
Inject,
|
|
1093
1097
|
} from '@nestjs/common';
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1098
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
1099
|
+
import { Repository } from 'typeorm';
|
|
1100
|
+
import {
|
|
1097
1101
|
Session,
|
|
1098
1102
|
SessionInput,
|
|
1099
1103
|
ContextTemplate,
|
|
@@ -1104,77 +1108,77 @@ import {
|
|
|
1104
1108
|
PrepareLlmInputResponseDto,
|
|
1105
1109
|
SubmitLlmOutputDto,
|
|
1106
1110
|
} from './dto/session-input.dto';
|
|
1107
|
-
|
|
1111
|
+
import {
|
|
1108
1112
|
AIActionsService,
|
|
1109
1113
|
AIActionStatus,
|
|
1110
1114
|
} from '../ai-actions/ai-actions.service';
|
|
1111
|
-
|
|
1112
|
-
|
|
1115
|
+
import { SystemPromptsService } from '../system-prompts/system-prompts.service';
|
|
1116
|
+
import {
|
|
1113
1117
|
TITLE_END_TAG,
|
|
1114
1118
|
TITLE_START_TAG,
|
|
1115
1119
|
} from '../llm-response-parser/parsing.constants';
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
+
import { AIActionCreationService } from '../ai-actions/ai-action-creation.service';
|
|
1121
|
+
import { SessionInputContextService } from './session-input-context.service';
|
|
1122
|
+
import { ApplicationStateService } from '../application-state/application-state.service';
|
|
1123
|
+
import { OrchestrationService } from '../orchestration/orchestration.service';
|
|
1120
1124
|
|
|
1121
1125
|
@Injectable()
|
|
1122
|
-
export class
|
|
1123
|
-
private readonly
|
|
1126
|
+
export class SessionInputsService {
|
|
1127
|
+
private readonly logger = new Logger(SessionInputsService.name);
|
|
1124
1128
|
|
|
1125
|
-
|
|
1129
|
+
constructor(
|
|
1126
1130
|
@InjectRepository(Session)
|
|
1127
|
-
private
|
|
1131
|
+
private sessionsRepository: Repository<Session>,
|
|
1128
1132
|
@InjectRepository(SessionInput)
|
|
1129
|
-
private
|
|
1133
|
+
private sessionInputsRepository: Repository<SessionInput>,
|
|
1130
1134
|
@InjectRepository(ContextTemplate)
|
|
1131
|
-
private
|
|
1132
|
-
private readonly
|
|
1133
|
-
private readonly
|
|
1134
|
-
private readonly
|
|
1135
|
-
private readonly
|
|
1136
|
-
private readonly
|
|
1137
|
-
@Inject(forwardRef(
|
|
1138
|
-
private readonly
|
|
1135
|
+
private contextTemplatesRepository: Repository<ContextTemplate>,
|
|
1136
|
+
private readonly aiActionsService: AIActionsService,
|
|
1137
|
+
private readonly aiActionCreationService: AIActionCreationService,
|
|
1138
|
+
private readonly systemPromptsService: SystemPromptsService,
|
|
1139
|
+
private readonly sessionInputContextService: SessionInputContextService,
|
|
1140
|
+
private readonly applicationStateService: ApplicationStateService,
|
|
1141
|
+
@Inject(forwardRef(() => OrchestrationService))
|
|
1142
|
+
private readonly orchestrationService: OrchestrationService,
|
|
1139
1143
|
) {}
|
|
1140
1144
|
|
|
1141
|
-
private
|
|
1145
|
+
private async extractAndUpdateSessionTitle(
|
|
1142
1146
|
sessionId: string,
|
|
1143
1147
|
rawResponse: string,
|
|
1144
1148
|
): Promise<string> {
|
|
1145
|
-
const startIndex =
|
|
1146
|
-
const endIndex =
|
|
1149
|
+
const startIndex = rawResponse.indexOf(TITLE_START_TAG);
|
|
1150
|
+
const endIndex = rawResponse.indexOf(TITLE_END_TAG);
|
|
1147
1151
|
|
|
1148
|
-
|
|
1149
|
-
const title =
|
|
1152
|
+
if (startIndex !== -1 && endIndex !== -1 && endIndex > startIndex) {
|
|
1153
|
+
const title = rawResponse
|
|
1150
1154
|
.substring(startIndex + TITLE_START_TAG.length, endIndex)
|
|
1151
1155
|
.trim();
|
|
1152
1156
|
|
|
1153
|
-
|
|
1154
|
-
|
|
1157
|
+
if (title) {
|
|
1158
|
+
this.logger.log(
|
|
1155
1159
|
`Extracted session title: "${title}" for session ID ${sessionId}`,
|
|
1156
1160
|
);
|
|
1157
|
-
|
|
1161
|
+
await this.sessionsRepository.update(sessionId, {
|
|
1158
1162
|
session_title: title,
|
|
1159
1163
|
});
|
|
1160
1164
|
}
|
|
1161
1165
|
|
|
1162
1166
|
const cleanedResponse =
|
|
1163
|
-
|
|
1167
|
+
rawResponse.substring(0, startIndex) +
|
|
1164
1168
|
rawResponse.substring(endIndex + TITLE_END_TAG.length);
|
|
1165
|
-
|
|
1169
|
+
return cleanedResponse.trim();
|
|
1166
1170
|
}
|
|
1167
1171
|
|
|
1168
|
-
|
|
1172
|
+
return rawResponse;
|
|
1169
1173
|
}
|
|
1170
1174
|
|
|
1171
|
-
private
|
|
1172
|
-
|
|
1173
|
-
|
|
1175
|
+
private generatePreviousActionsSummary(session: Session): string {
|
|
1176
|
+
if (!session.sessionInputs || session.sessionInputs.length === 0) {
|
|
1177
|
+
return '';
|
|
1174
1178
|
}
|
|
1175
1179
|
|
|
1176
|
-
const lastInput =
|
|
1177
|
-
|
|
1180
|
+
const lastInput = session.sessionInputs[session.sessionInputs.length - 1];
|
|
1181
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
1178
1182
|
!lastInput ||
|
|
1179
1183
|
!lastInput.aiActions ||
|
|
1180
1184
|
lastInput.aiActions.length === 0
|
|
@@ -1182,7 +1186,7 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1182
1186
|
<span class="cstat-no" title="statement not covered" > return '';</span>
|
|
1183
1187
|
}
|
|
1184
1188
|
|
|
1185
|
-
const finalStatuses: string[] =
|
|
1189
|
+
const finalStatuses: string[] = [
|
|
1186
1190
|
AIActionStatus.REJECTED_BEFORE_APPLY,
|
|
1187
1191
|
AIActionStatus.CONFIRMED_KEPT,
|
|
1188
1192
|
AIActionStatus.CONFIRMED_REVERTED,
|
|
@@ -1190,32 +1194,32 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1190
1194
|
AIActionStatus.REVERT_FAILED,
|
|
1191
1195
|
];
|
|
1192
1196
|
|
|
1193
|
-
const finalActions =
|
|
1194
|
-
|
|
1197
|
+
const finalActions = lastInput.aiActions.filter((action: AIAction) =>
|
|
1198
|
+
finalStatuses.includes(action.status),
|
|
1195
1199
|
);
|
|
1196
1200
|
|
|
1197
|
-
|
|
1201
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (finalActions.length === 0) {
|
|
1198
1202
|
<span class="cstat-no" title="statement not covered" > return '';</span>
|
|
1199
1203
|
}
|
|
1200
1204
|
|
|
1201
|
-
|
|
1205
|
+
return (
|
|
1202
1206
|
'Summary of previous actions:\n' +
|
|
1203
1207
|
finalActions
|
|
1204
1208
|
.map(
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
action.file_path || action.command_string
|
|
1209
|
+
(action) =>
|
|
1210
|
+
`- ${action.action_type}(${
|
|
1211
|
+
action.file_path || <span class="branch-1 cbranch-no" title="branch not covered" >action.command_string </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >'N/A'</span>
|
|
1208
1212
|
}): ${action.status}`,
|
|
1209
1213
|
)
|
|
1210
1214
|
.join('\n')
|
|
1211
1215
|
);
|
|
1212
1216
|
}
|
|
1213
1217
|
|
|
1214
|
-
|
|
1218
|
+
async create(
|
|
1215
1219
|
sessionId: string,
|
|
1216
1220
|
createSessionInputDto: CreateSessionInputDto,
|
|
1217
1221
|
): Promise<SessionInput> {
|
|
1218
|
-
const session =
|
|
1222
|
+
const session = await this.sessionsRepository.findOne({
|
|
1219
1223
|
where: { id: sessionId },
|
|
1220
1224
|
relations: ['systemPrompt', 'sessionInputs', 'sessionInputs.aiActions'],
|
|
1221
1225
|
order: {
|
|
@@ -1227,20 +1231,20 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1227
1231
|
},
|
|
1228
1232
|
},
|
|
1229
1233
|
});
|
|
1230
|
-
|
|
1231
|
-
|
|
1234
|
+
if (!session) {
|
|
1235
|
+
throw new NotFoundException(`Session with ID "${sessionId}" not found`);
|
|
1232
1236
|
}
|
|
1233
1237
|
|
|
1234
|
-
let activeSystemPrompt =
|
|
1235
|
-
|
|
1236
|
-
|
|
1238
|
+
let activeSystemPrompt = session.systemPrompt;
|
|
1239
|
+
if (!activeSystemPrompt) {
|
|
1240
|
+
activeSystemPrompt = await this.systemPromptsService.findDefault();
|
|
1237
1241
|
}
|
|
1238
|
-
const systemPromptContent =
|
|
1242
|
+
const systemPromptContent = activeSystemPrompt
|
|
1239
1243
|
? activeSystemPrompt.prompt_content
|
|
1240
1244
|
: '';
|
|
1241
1245
|
|
|
1242
|
-
let contextTemplate: ContextTemplate | null =
|
|
1243
|
-
|
|
1246
|
+
let contextTemplate: ContextTemplate | null = null;
|
|
1247
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (createSessionInputDto.context_template_id) {
|
|
1244
1248
|
<span class="cstat-no" title="statement not covered" > contextTemplate = await this.contextTemplatesRepository.findOneBy({</span>
|
|
1245
1249
|
id: createSessionInputDto.context_template_id,
|
|
1246
1250
|
});
|
|
@@ -1252,52 +1256,53 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1252
1256
|
}
|
|
1253
1257
|
|
|
1254
1258
|
const previous_actions_summary =
|
|
1255
|
-
|
|
1259
|
+
this.generatePreviousActionsSummary(session);
|
|
1256
1260
|
|
|
1257
1261
|
const generated_context_string =
|
|
1258
|
-
|
|
1262
|
+
await this.sessionInputContextService.generateContext(
|
|
1259
1263
|
createSessionInputDto,
|
|
1260
1264
|
contextTemplate,
|
|
1261
1265
|
systemPromptContent,
|
|
1262
1266
|
previous_actions_summary,
|
|
1263
1267
|
);
|
|
1264
1268
|
|
|
1265
|
-
const newSessionInputEntity =
|
|
1269
|
+
const newSessionInputEntity = this.sessionInputsRepository.create({
|
|
1266
1270
|
...createSessionInputDto,
|
|
1267
1271
|
session: session,
|
|
1268
1272
|
contextTemplate: contextTemplate,
|
|
1269
1273
|
generated_context_string: generated_context_string,
|
|
1270
1274
|
raw_llm_response:
|
|
1275
|
+
createSessionInputDto.raw_llm_response ||
|
|
1271
1276
|
'This response is generated for a non-manual flow and is not intended to be user-facing.',
|
|
1272
1277
|
});
|
|
1273
1278
|
|
|
1274
|
-
const savedSessionInput =
|
|
1279
|
+
const savedSessionInput = await this.sessionInputsRepository.save(
|
|
1275
1280
|
newSessionInputEntity,
|
|
1276
1281
|
);
|
|
1277
|
-
|
|
1282
|
+
await this.applicationStateService.setActiveSessionId(sessionId);
|
|
1278
1283
|
|
|
1279
1284
|
// Process AI Actions based on execution strategy
|
|
1280
|
-
|
|
1281
|
-
|
|
1285
|
+
if (createSessionInputDto.execution_strategy === 'review_first') {
|
|
1286
|
+
await this.aiActionCreationService.createActionsFromLlmResponse(
|
|
1282
1287
|
savedSessionInput,
|
|
1283
1288
|
AIActionStatus.PROPOSED,
|
|
1284
1289
|
);
|
|
1285
|
-
} else
|
|
1286
|
-
|
|
1290
|
+
} else if (createSessionInputDto.execution_strategy === 'apply_revert') {
|
|
1291
|
+
await this.aiActionCreationService.createAndTentativelyApplyActions(
|
|
1287
1292
|
savedSessionInput,
|
|
1288
1293
|
);
|
|
1289
|
-
} else
|
|
1294
|
+
} else if (createSessionInputDto.execution_strategy === 'auto_apply') {
|
|
1290
1295
|
// This path is used by the orchestration engine. It will throw on failure.
|
|
1291
|
-
|
|
1296
|
+
await this.aiActionCreationService.createAndAutoApplyActions(
|
|
1292
1297
|
savedSessionInput,
|
|
1293
1298
|
);
|
|
1294
1299
|
} else {
|
|
1295
|
-
|
|
1300
|
+
throw new BadRequestException(
|
|
1296
1301
|
`Unsupported execution_strategy: ${createSessionInputDto.execution_strategy}`,
|
|
1297
1302
|
);
|
|
1298
1303
|
}
|
|
1299
1304
|
|
|
1300
|
-
const populatedSessionInput =
|
|
1305
|
+
const populatedSessionInput = await this.sessionInputsRepository.findOne({
|
|
1301
1306
|
where: { id: savedSessionInput.id },
|
|
1302
1307
|
relations: ['contextTemplate', 'aiActions', 'aiActions.executionLogs'],
|
|
1303
1308
|
order: {
|
|
@@ -1307,23 +1312,23 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1307
1312
|
},
|
|
1308
1313
|
});
|
|
1309
1314
|
|
|
1310
|
-
|
|
1315
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!populatedSessionInput) {
|
|
1311
1316
|
<span class="cstat-no" title="statement not covered" > throw new NotFoundException(</span>
|
|
1312
1317
|
`Failed to retrieve session input with ID "${savedSessionInput.id}" after creating/processing actions.`,
|
|
1313
1318
|
);
|
|
1314
1319
|
}
|
|
1315
1320
|
|
|
1316
|
-
|
|
1321
|
+
return populatedSessionInput;
|
|
1317
1322
|
}
|
|
1318
1323
|
|
|
1319
|
-
|
|
1324
|
+
async prepareLlmInput(
|
|
1320
1325
|
sessionId: string,
|
|
1321
1326
|
createDto: CreateSessionInputDto,
|
|
1322
1327
|
): Promise<PrepareLlmInputResponseDto> {
|
|
1323
|
-
|
|
1328
|
+
this.logger.log(
|
|
1324
1329
|
`Preparing LLM input for session ${sessionId} with strategy ${createDto.execution_strategy}`,
|
|
1325
1330
|
);
|
|
1326
|
-
const session =
|
|
1331
|
+
const session = await this.sessionsRepository.findOne({
|
|
1327
1332
|
where: { id: sessionId },
|
|
1328
1333
|
relations: ['systemPrompt', 'sessionInputs', 'sessionInputs.aiActions'],
|
|
1329
1334
|
order: {
|
|
@@ -1335,42 +1340,42 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1335
1340
|
},
|
|
1336
1341
|
},
|
|
1337
1342
|
});
|
|
1338
|
-
|
|
1339
|
-
|
|
1343
|
+
if (!session) {
|
|
1344
|
+
throw new NotFoundException(`Session with ID "${sessionId}" not found`);
|
|
1340
1345
|
}
|
|
1341
1346
|
|
|
1342
|
-
let activeSystemPrompt =
|
|
1343
|
-
|
|
1344
|
-
|
|
1347
|
+
let activeSystemPrompt = session.systemPrompt;
|
|
1348
|
+
if (!activeSystemPrompt) {
|
|
1349
|
+
activeSystemPrompt = await this.systemPromptsService.findDefault();
|
|
1345
1350
|
}
|
|
1346
|
-
const systemPromptContent =
|
|
1351
|
+
const systemPromptContent = activeSystemPrompt
|
|
1347
1352
|
? activeSystemPrompt.prompt_content
|
|
1348
1353
|
: '';
|
|
1349
1354
|
|
|
1350
|
-
let contextTemplate: ContextTemplate | null =
|
|
1351
|
-
|
|
1352
|
-
|
|
1355
|
+
let contextTemplate: ContextTemplate | null = null;
|
|
1356
|
+
if (createDto.context_template_id) {
|
|
1357
|
+
contextTemplate = await this.contextTemplatesRepository.findOneBy({
|
|
1353
1358
|
id: createDto.context_template_id,
|
|
1354
1359
|
});
|
|
1355
|
-
|
|
1356
|
-
|
|
1360
|
+
if (!contextTemplate) {
|
|
1361
|
+
throw new NotFoundException(
|
|
1357
1362
|
`ContextTemplate with ID "${createDto.context_template_id}" not found`,
|
|
1358
1363
|
);
|
|
1359
1364
|
}
|
|
1360
1365
|
}
|
|
1361
1366
|
|
|
1362
1367
|
const previous_actions_summary =
|
|
1363
|
-
|
|
1368
|
+
this.generatePreviousActionsSummary(session);
|
|
1364
1369
|
|
|
1365
1370
|
const generated_context_string =
|
|
1366
|
-
|
|
1371
|
+
await this.sessionInputContextService.generateContext(
|
|
1367
1372
|
createDto,
|
|
1368
1373
|
contextTemplate,
|
|
1369
1374
|
systemPromptContent,
|
|
1370
1375
|
previous_actions_summary,
|
|
1371
1376
|
);
|
|
1372
1377
|
|
|
1373
|
-
const newSessionInput =
|
|
1378
|
+
const newSessionInput = this.sessionInputsRepository.create({
|
|
1374
1379
|
session: { id: sessionId },
|
|
1375
1380
|
user_prompt: createDto.user_prompt,
|
|
1376
1381
|
context_template_id: createDto.context_template_id || null,
|
|
@@ -1382,75 +1387,75 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1382
1387
|
});
|
|
1383
1388
|
|
|
1384
1389
|
const savedSessionInput =
|
|
1385
|
-
|
|
1386
|
-
|
|
1390
|
+
await this.sessionInputsRepository.save(newSessionInput);
|
|
1391
|
+
this.logger.log(
|
|
1387
1392
|
`Created SessionInput ${savedSessionInput.id} for manual LLM flow preparation.`,
|
|
1388
1393
|
);
|
|
1389
1394
|
|
|
1390
|
-
|
|
1395
|
+
await this.applicationStateService.setActiveSessionId(sessionId);
|
|
1391
1396
|
|
|
1392
1397
|
// If an orchestration is running, update its state.
|
|
1393
|
-
|
|
1398
|
+
this.orchestrationService.onPromptPrepared(savedSessionInput.id);
|
|
1394
1399
|
|
|
1395
|
-
|
|
1400
|
+
return {
|
|
1396
1401
|
input_id: savedSessionInput.id,
|
|
1397
1402
|
llm_input_string: generated_context_string,
|
|
1398
1403
|
};
|
|
1399
1404
|
}
|
|
1400
1405
|
|
|
1401
|
-
|
|
1406
|
+
async submitLlmOutput(
|
|
1402
1407
|
sessionId: string,
|
|
1403
1408
|
inputId: string,
|
|
1404
1409
|
submitDto: SubmitLlmOutputDto,
|
|
1405
1410
|
): Promise<SessionInput> {
|
|
1406
|
-
|
|
1411
|
+
this.logger.log(
|
|
1407
1412
|
`Submitting LLM output for SessionInput ${inputId} in Session ${sessionId}.`,
|
|
1408
1413
|
);
|
|
1409
1414
|
|
|
1410
|
-
const sessionInput =
|
|
1415
|
+
const sessionInput = await this.sessionInputsRepository.findOne({
|
|
1411
1416
|
where: { id: inputId, session_id: sessionId },
|
|
1412
1417
|
});
|
|
1413
1418
|
|
|
1414
|
-
|
|
1415
|
-
|
|
1419
|
+
if (!sessionInput) {
|
|
1420
|
+
throw new NotFoundException(
|
|
1416
1421
|
`SessionInput with ID "${inputId}" not found in Session "${sessionId}".`,
|
|
1417
1422
|
);
|
|
1418
1423
|
}
|
|
1419
|
-
|
|
1424
|
+
await this.applicationStateService.setActiveSessionId(sessionId);
|
|
1420
1425
|
|
|
1421
|
-
|
|
1426
|
+
await this.aiActionsService.deleteAllByInputId(inputId);
|
|
1422
1427
|
|
|
1423
|
-
const cleanedLlmResponse =
|
|
1428
|
+
const cleanedLlmResponse = await this.extractAndUpdateSessionTitle(
|
|
1424
1429
|
sessionId,
|
|
1425
1430
|
submitDto.raw_llm_response,
|
|
1426
1431
|
);
|
|
1427
|
-
|
|
1432
|
+
sessionInput.raw_llm_response = cleanedLlmResponse;
|
|
1428
1433
|
const updatedSessionInput =
|
|
1429
|
-
|
|
1430
|
-
|
|
1434
|
+
await this.sessionInputsRepository.save(sessionInput);
|
|
1435
|
+
this.logger.log(
|
|
1431
1436
|
`Updated SessionInput ${updatedSessionInput.id} with raw_llm_response.`,
|
|
1432
1437
|
);
|
|
1433
1438
|
|
|
1434
|
-
|
|
1435
|
-
|
|
1439
|
+
if (updatedSessionInput.execution_strategy === 'review_first') {
|
|
1440
|
+
await this.aiActionCreationService.createActionsFromLlmResponse(
|
|
1436
1441
|
updatedSessionInput,
|
|
1437
1442
|
AIActionStatus.PROPOSED,
|
|
1438
1443
|
);
|
|
1439
|
-
} else
|
|
1440
|
-
|
|
1444
|
+
} else if (updatedSessionInput.execution_strategy === 'apply_revert') {
|
|
1445
|
+
await this.aiActionCreationService.createAndTentativelyApplyActions(
|
|
1441
1446
|
updatedSessionInput,
|
|
1442
1447
|
);
|
|
1443
|
-
} else
|
|
1444
|
-
|
|
1448
|
+
} else if (updatedSessionInput.execution_strategy === 'auto_apply') {
|
|
1449
|
+
await this.aiActionCreationService.createAndAutoApplyActions(
|
|
1445
1450
|
updatedSessionInput,
|
|
1446
1451
|
);
|
|
1447
|
-
} else {
|
|
1452
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
1448
1453
|
<span class="cstat-no" title="statement not covered" > throw new BadRequestException(</span>
|
|
1449
1454
|
`Unsupported execution_strategy: ${updatedSessionInput.execution_strategy}`,
|
|
1450
1455
|
);
|
|
1451
1456
|
}
|
|
1452
1457
|
|
|
1453
|
-
const populatedSessionInput =
|
|
1458
|
+
const populatedSessionInput = await this.sessionInputsRepository.findOne({
|
|
1454
1459
|
where: { id: updatedSessionInput.id },
|
|
1455
1460
|
relations: ['contextTemplate', 'aiActions', 'aiActions.executionLogs'],
|
|
1456
1461
|
order: {
|
|
@@ -1460,15 +1465,15 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1460
1465
|
},
|
|
1461
1466
|
});
|
|
1462
1467
|
|
|
1463
|
-
|
|
1468
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!populatedSessionInput) {
|
|
1464
1469
|
<span class="cstat-no" title="statement not covered" > throw new NotFoundException(</span>
|
|
1465
1470
|
`Failed to retrieve session input with ID "${updatedSessionInput.id}" after processing LLM output.`,
|
|
1466
1471
|
);
|
|
1467
1472
|
}
|
|
1468
|
-
|
|
1473
|
+
this.logger.log(
|
|
1469
1474
|
`LLM output processed for SessionInput ${populatedSessionInput.id}, ${populatedSessionInput.aiActions.length} actions generated/processed.`,
|
|
1470
1475
|
);
|
|
1471
|
-
|
|
1476
|
+
return populatedSessionInput;
|
|
1472
1477
|
}
|
|
1473
1478
|
|
|
1474
1479
|
<span class="fstat-no" title="function not covered" > async </span>createFromRawLlmResponse(
|
|
@@ -1593,14 +1598,15 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
|
|
|
1593
1598
|
`Deleted SessionInput ${inputId} from Session ${sessionId}.`,
|
|
1594
1599
|
);
|
|
1595
1600
|
}
|
|
1596
|
-
}
|
|
1601
|
+
}
|
|
1602
|
+
</pre></td></tr></table></pre>
|
|
1597
1603
|
|
|
1598
1604
|
<div class='push'></div><!-- for sticky footer -->
|
|
1599
1605
|
</div><!-- /wrapper -->
|
|
1600
1606
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1601
1607
|
Code coverage generated by
|
|
1602
1608
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1603
|
-
at 2025-
|
|
1609
|
+
at 2025-09-12T19:21:55.945Z
|
|
1604
1610
|
</div>
|
|
1605
1611
|
<script src="../../prettify.js"></script>
|
|
1606
1612
|
<script>
|