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.
Files changed (191) hide show
  1. package/backend/.env +3 -1
  2. package/backend/coverage/clover.xml +2409 -2355
  3. package/backend/coverage/coverage-final.json +99 -96
  4. package/backend/coverage/lcov-report/index.html +356 -341
  5. package/backend/coverage/lcov-report/src/action-execution/action-execution.module.ts.html +12 -12
  6. package/backend/coverage/lcov-report/src/action-execution/action-execution.service.ts.html +140 -62
  7. package/backend/coverage/lcov-report/src/action-execution/index.html +28 -28
  8. package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +188 -188
  9. package/backend/coverage/lcov-report/src/ai-actions/ai-action-creation.service.ts.html +284 -236
  10. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +109 -109
  11. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +28 -28
  12. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +193 -193
  13. package/backend/coverage/lcov-report/src/ai-actions/index.html +61 -61
  14. package/backend/coverage/lcov-report/src/app.controller.ts.html +24 -24
  15. package/backend/coverage/lcov-report/src/app.module.ts.html +68 -65
  16. package/backend/coverage/lcov-report/src/app.service.ts.html +46 -13
  17. package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +87 -33
  18. package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +18 -18
  19. package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +113 -68
  20. package/backend/coverage/lcov-report/src/application-state/dto/index.html +42 -27
  21. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +12 -12
  22. package/backend/coverage/lcov-report/src/application-state/dto/set-orchestration-timeout.dto.ts.html +103 -0
  23. package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +12 -12
  24. package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +12 -12
  25. package/backend/coverage/lcov-report/src/application-state/index.html +37 -37
  26. package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +16 -16
  27. package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +222 -222
  28. package/backend/coverage/lcov-report/src/context-generation/index.html +28 -28
  29. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +31 -31
  30. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +20 -20
  31. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +26 -26
  32. package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +28 -28
  33. package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +13 -13
  34. package/backend/coverage/lcov-report/src/context-snippets/index.html +31 -31
  35. package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +45 -45
  36. package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +20 -20
  37. package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +87 -84
  38. package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +48 -48
  39. package/backend/coverage/lcov-report/src/context-templates/dto/index.html +13 -13
  40. package/backend/coverage/lcov-report/src/context-templates/index.html +36 -36
  41. package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +48 -48
  42. package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +14 -14
  43. package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +22 -22
  44. package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +18 -18
  45. package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +52 -52
  46. package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +20 -20
  47. package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +26 -26
  48. package/backend/coverage/lcov-report/src/core-entities/index.html +112 -112
  49. package/backend/coverage/lcov-report/src/core-entities/index.ts.html +28 -28
  50. package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +24 -24
  51. package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +59 -50
  52. package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +56 -56
  53. package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +28 -28
  54. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +30 -30
  55. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +18 -18
  56. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +20 -20
  57. package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +28 -28
  58. package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +13 -13
  59. package/backend/coverage/lcov-report/src/custom-snippets/index.html +32 -32
  60. package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +46 -46
  61. package/backend/coverage/lcov-report/src/events/events.module.ts.html +12 -12
  62. package/backend/coverage/lcov-report/src/events/index.html +28 -28
  63. package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +1 -1
  64. package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +1 -1
  65. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +18 -18
  66. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +18 -18
  67. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +32 -32
  68. package/backend/coverage/lcov-report/src/execution-logs/index.html +33 -33
  69. package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +55 -55
  70. package/backend/coverage/lcov-report/src/index.html +44 -44
  71. package/backend/coverage/lcov-report/src/llm-response-parser/dto/ai-action.dto.ts.html +67 -67
  72. package/backend/coverage/lcov-report/src/llm-response-parser/dto/index.html +21 -21
  73. package/backend/coverage/lcov-report/src/llm-response-parser/errors/index.html +17 -17
  74. package/backend/coverage/lcov-report/src/llm-response-parser/errors/parsing.error.ts.html +19 -19
  75. package/backend/coverage/lcov-report/src/llm-response-parser/index.html +35 -35
  76. package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.module.ts.html +12 -12
  77. package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.service.ts.html +208 -208
  78. package/backend/coverage/lcov-report/src/llm-response-parser/parsing.constants.ts.html +38 -38
  79. package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +21 -21
  80. package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +28 -28
  81. package/backend/coverage/lcov-report/src/llm-responses/index.html +38 -38
  82. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +24 -24
  83. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +38 -35
  84. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +107 -86
  85. package/backend/coverage/lcov-report/src/main.ts.html +1 -1
  86. package/backend/coverage/lcov-report/src/orchestration/dto/index.html +13 -13
  87. package/backend/coverage/lcov-report/src/orchestration/dto/orchestration.dto.ts.html +30 -45
  88. package/backend/coverage/lcov-report/src/orchestration/index.html +74 -74
  89. package/backend/coverage/lcov-report/src/orchestration/orchestration-fs.service.ts.html +245 -128
  90. package/backend/coverage/lcov-report/src/orchestration/orchestration-parser.service.ts.html +32 -200
  91. package/backend/coverage/lcov-report/src/orchestration/orchestration.controller.ts.html +72 -102
  92. package/backend/coverage/lcov-report/src/orchestration/orchestration.module.ts.html +35 -38
  93. package/backend/coverage/lcov-report/src/orchestration/orchestration.service.ts.html +317 -425
  94. package/backend/coverage/lcov-report/src/orchestration/orchestration.types.ts.html +41 -35
  95. package/backend/coverage/lcov-report/src/projects/dto/index.html +13 -13
  96. package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +20 -20
  97. package/backend/coverage/lcov-report/src/projects/index.html +32 -32
  98. package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +28 -28
  99. package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +18 -18
  100. package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +20 -20
  101. package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +22 -22
  102. package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +21 -21
  103. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +1 -1
  104. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +1 -1
  105. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +1 -1
  106. package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +1 -1
  107. package/backend/coverage/lcov-report/src/seeding/data/context-templates/pm-context.ts.html +1 -1
  108. package/backend/coverage/lcov-report/src/seeding/data/context-templates/pr-description.ts.html +1 -1
  109. package/backend/coverage/lcov-report/src/seeding/data/context-templates/sample_focused-tree.ts.html +1 -1
  110. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +1 -1
  111. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +1 -1
  112. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +1 -1
  113. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +1 -1
  114. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +1 -1
  115. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +1 -1
  116. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +1 -1
  117. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +1 -1
  118. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +1 -1
  119. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +1 -1
  120. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/codebase-explorer.ts.html +1 -1
  121. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.ts.html +8 -2
  122. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +3 -3
  123. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/packup.ts.html +1 -1
  124. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/refactor-split.ts.html +244 -0
  125. package/backend/coverage/lcov-report/src/seeding/index.html +47 -47
  126. package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +24 -24
  127. package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +27 -27
  128. package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +21 -21
  129. package/backend/coverage/lcov-report/src/session-followup/index.html +28 -28
  130. package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +22 -22
  131. package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +44 -41
  132. package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +13 -13
  133. package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +40 -28
  134. package/backend/coverage/lcov-report/src/session-inputs/index.html +50 -50
  135. package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +168 -156
  136. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +36 -36
  137. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +40 -37
  138. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +242 -236
  139. package/backend/coverage/lcov-report/src/session-transfer/index.html +22 -22
  140. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +16 -16
  141. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +30 -30
  142. package/backend/coverage/lcov-report/src/sessions/dto/index.html +21 -21
  143. package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +54 -54
  144. package/backend/coverage/lcov-report/src/sessions/index.html +39 -39
  145. package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +55 -55
  146. package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +30 -30
  147. package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +120 -120
  148. package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +19 -19
  149. package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +38 -29
  150. package/backend/coverage/lcov-report/src/system-prompts/index.html +37 -37
  151. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +34 -34
  152. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +20 -20
  153. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +62 -62
  154. package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +1 -1
  155. package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +310 -0
  156. package/backend/coverage/lcov-report/src/utils/index.html +131 -0
  157. package/backend/coverage/lcov-report/src/utils/index.ts.html +88 -0
  158. package/backend/coverage/lcov-report/src/workspace/dto/index.html +13 -13
  159. package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +24 -24
  160. package/backend/coverage/lcov-report/src/workspace/index.html +37 -37
  161. package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +26 -26
  162. package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +16 -16
  163. package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +259 -214
  164. package/backend/coverage/lcov.info +3284 -3186
  165. package/backend/dist/action-execution/action-execution.service.d.ts +2 -0
  166. package/backend/dist/action-execution/action-execution.service.js +31 -13
  167. package/backend/dist/action-execution/action-execution.service.js.map +1 -1
  168. package/backend/dist/context-generation/context-generation.service.d.ts +3 -3
  169. package/backend/dist/context-generation/context-generation.service.js.map +1 -1
  170. package/backend/dist/orchestration/orchestration.service.js +1 -0
  171. package/backend/dist/orchestration/orchestration.service.js.map +1 -1
  172. package/backend/dist/session-inputs/dto/session-input.dto.d.ts +1 -0
  173. package/backend/dist/session-inputs/dto/session-input.dto.js +5 -0
  174. package/backend/dist/session-inputs/dto/session-input.dto.js.map +1 -1
  175. package/backend/dist/session-inputs/session-input-context.service.js +12 -8
  176. package/backend/dist/session-inputs/session-input-context.service.js.map +1 -1
  177. package/backend/dist/session-inputs/session-inputs.service.js +2 -1
  178. package/backend/dist/session-inputs/session-inputs.service.js.map +1 -1
  179. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  180. package/backend/dist/utils/fuzzy-search.d.ts +1 -0
  181. package/backend/dist/utils/fuzzy-search.js +54 -0
  182. package/backend/dist/utils/fuzzy-search.js.map +1 -0
  183. package/backend/dist/utils/index.d.ts +1 -0
  184. package/backend/dist/utils/index.js +18 -0
  185. package/backend/dist/utils/index.js.map +1 -0
  186. package/backend/dist/workspace/workspace.service.d.ts +2 -1
  187. package/backend/dist/workspace/workspace.service.js +53 -85
  188. package/backend/dist/workspace/workspace.service.js.map +1 -1
  189. package/backend/package.json +1 -1
  190. package/package.json +1 -1
  191. package/orchestration-test.txt +0 -3
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/9</span>
28
+ <span class='fraction'>9/9</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/7</span>
49
+ <span class='fraction'>7/7</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 low'></div>
64
+ <div class='status-line high'></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>
@@ -80,12 +80,12 @@
80
80
  <a name='L15'></a><a href='#L15'>15</a>
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
84
- <span class="cline-any cline-no">&nbsp;</span>
85
- <span class="cline-any cline-no">&nbsp;</span>
86
- <span class="cline-any cline-no">&nbsp;</span>
87
- <span class="cline-any cline-no">&nbsp;</span>
88
- <span class="cline-any cline-no">&nbsp;</span>
83
+ <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
84
+ <span class="cline-any cline-yes">6x</span>
85
+ <span class="cline-any cline-yes">6x</span>
86
+ <span class="cline-any cline-yes">6x</span>
87
+ <span class="cline-any cline-yes">6x</span>
88
+ <span class="cline-any cline-yes">6x</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span>
91
91
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -96,13 +96,13 @@
96
96
  <span class="cline-any cline-neutral">&nbsp;</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
- <span class="cline-any cline-no">&nbsp;</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { Module } from '@nestjs/common';</span>
101
- <span class="cstat-no" title="statement not covered" >import { TypeOrmModule } from '@nestjs/typeorm';</span>
102
- <span class="cstat-no" title="statement not covered" >import { ContextTemplate } from '../core-entities';</span>
103
- <span class="cstat-no" title="statement not covered" >import { ContextTemplatesService } from './context-templates.service';</span>
104
- <span class="cstat-no" title="statement not covered" >import { ContextTemplatesController } from './context-templates.controller';</span>
105
- <span class="cstat-no" title="statement not covered" >import { ContextGenerationModule } from '../context-generation/context-generation.module';</span>
99
+ <span class="cline-any cline-yes">6x</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Module } from '@nestjs/common';
101
+ import { TypeOrmModule } from '@nestjs/typeorm';
102
+ import { ContextTemplate } from '../core-entities';
103
+ import { ContextTemplatesService } from './context-templates.service';
104
+ import { ContextTemplatesController } from './context-templates.controller';
105
+ import { ContextGenerationModule } from '../context-generation/context-generation.module';
106
106
  &nbsp;
107
107
  @Module({
108
108
  imports: [
@@ -113,7 +113,7 @@
113
113
  providers: [ContextTemplatesService],
114
114
  exports: [ContextTemplatesService],
115
115
  })
116
- export <span class="cstat-no" title="statement not covered" >class <span class="cstat-no" title="statement not covered" ><span class="cstat-no" title="statement not covered" >ContextTemplatesModule </span>{}</span></span>
116
+ export class ContextTemplatesModule {}
117
117
  &nbsp;</pre></td></tr></table></pre>
118
118
 
119
119
  <div class='push'></div><!-- for sticky footer -->
@@ -121,7 +121,7 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
124
- at 2025-07-30T23:37:05.373Z
124
+ at 2025-09-12T19:21:55.945Z
125
125
  </div>
126
126
  <script src="../../prettify.js"></script>
127
127
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">44.04% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/84</span>
28
+ <span class='fraction'>37/84</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">39.13% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/23</span>
35
+ <span class='fraction'>9/23</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">30% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/20</span>
42
+ <span class='fraction'>6/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">42.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/82</span>
49
+ <span class='fraction'>35/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -312,28 +312,29 @@
312
312
  <a name='L247'></a><a href='#L247'>247</a>
313
313
  <a name='L248'></a><a href='#L248'>248</a>
314
314
  <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
317
+ <span class="cline-any cline-yes">6x</span>
318
+ <span class="cline-any cline-yes">6x</span>
319
+ <span class="cline-any cline-yes">6x</span>
319
320
  <span class="cline-any cline-neutral">&nbsp;</span>
320
321
  <span class="cline-any cline-neutral">&nbsp;</span>
321
322
  <span class="cline-any cline-neutral">&nbsp;</span>
322
323
  <span class="cline-any cline-neutral">&nbsp;</span>
323
324
  <span class="cline-any cline-neutral">&nbsp;</span>
324
325
  <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-no">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-yes">6x</span>
327
+ <span class="cline-any cline-yes">6x</span>
327
328
  <span class="cline-any cline-neutral">&nbsp;</span>
328
329
  <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-no">&nbsp;</span>
330
+ <span class="cline-any cline-yes">6x</span>
331
+ <span class="cline-any cline-yes">6x</span>
331
332
  <span class="cline-any cline-neutral">&nbsp;</span>
332
333
  <span class="cline-any cline-neutral">&nbsp;</span>
333
334
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-no">&nbsp;</span>
335
- <span class="cline-any cline-no">&nbsp;</span>
336
- <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-yes">6x</span>
336
+ <span class="cline-any cline-yes">6x</span>
337
+ <span class="cline-any cline-yes">6x</span>
337
338
  <span class="cline-any cline-neutral">&nbsp;</span>
338
339
  <span class="cline-any cline-neutral">&nbsp;</span>
339
340
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -357,11 +358,11 @@
357
358
  <span class="cline-any cline-neutral">&nbsp;</span>
358
359
  <span class="cline-any cline-neutral">&nbsp;</span>
359
360
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-no">&nbsp;</span>
361
- <span class="cline-any cline-no">&nbsp;</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-yes">6x</span>
362
+ <span class="cline-any cline-yes">6x</span>
363
+ <span class="cline-any cline-yes">2x</span>
363
364
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-yes">4x</span>
365
366
  <span class="cline-any cline-neutral">&nbsp;</span>
366
367
  <span class="cline-any cline-neutral">&nbsp;</span>
367
368
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -497,47 +498,47 @@
497
498
  <span class="cline-any cline-neutral">&nbsp;</span>
498
499
  <span class="cline-any cline-neutral">&nbsp;</span>
499
500
  <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
501
+ <span class="cline-any cline-yes">3x</span>
501
502
  <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
503
+ <span class="cline-any cline-yes">2x</span>
504
+ <span class="cline-any cline-yes">2x</span>
504
505
  <span class="cline-any cline-neutral">&nbsp;</span>
505
506
  <span class="cline-any cline-neutral">&nbsp;</span>
506
507
  <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-no">&nbsp;</span>
508
+ <span class="cline-any cline-yes">2x</span>
509
+ <span class="cline-any cline-yes">1x</span>
510
+ <span class="cline-any cline-yes">1x</span>
510
511
  <span class="cline-any cline-neutral">&nbsp;</span>
511
512
  <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
- <span class="cline-any cline-no">&nbsp;</span>
514
- <span class="cline-any cline-no">&nbsp;</span>
513
+ <span class="cline-any cline-yes">2x</span>
514
+ <span class="cline-any cline-yes">2x</span>
515
+ <span class="cline-any cline-yes">2x</span>
515
516
  <span class="cline-any cline-neutral">&nbsp;</span>
516
517
  <span class="cline-any cline-neutral">&nbsp;</span>
517
518
  <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-no">&nbsp;</span>
519
+ <span class="cline-any cline-yes">2x</span>
519
520
  <span class="cline-any cline-neutral">&nbsp;</span>
520
521
  <span class="cline-any cline-neutral">&nbsp;</span>
521
522
  <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
+ <span class="cline-any cline-yes">3x</span>
523
524
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-no">&nbsp;</span>
525
+ <span class="cline-any cline-yes">2x</span>
526
+ <span class="cline-any cline-yes">2x</span>
526
527
  <span class="cline-any cline-neutral">&nbsp;</span>
527
528
  <span class="cline-any cline-neutral">&nbsp;</span>
528
529
  <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-no">&nbsp;</span>
530
- <span class="cline-any cline-no">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
530
+ <span class="cline-any cline-yes">2x</span>
531
+ <span class="cline-any cline-yes">1x</span>
532
+ <span class="cline-any cline-yes">1x</span>
532
533
  <span class="cline-any cline-neutral">&nbsp;</span>
533
534
  <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-no">&nbsp;</span>
535
- <span class="cline-any cline-no">&nbsp;</span>
536
- <span class="cline-any cline-no">&nbsp;</span>
535
+ <span class="cline-any cline-yes">2x</span>
536
+ <span class="cline-any cline-yes">2x</span>
537
+ <span class="cline-any cline-yes">2x</span>
537
538
  <span class="cline-any cline-neutral">&nbsp;</span>
538
539
  <span class="cline-any cline-neutral">&nbsp;</span>
539
540
  <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
+ <span class="cline-any cline-yes">2x</span>
541
542
  <span class="cline-any cline-neutral">&nbsp;</span>
542
543
  <span class="cline-any cline-neutral">&nbsp;</span>
543
544
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -561,28 +562,29 @@
561
562
  <span class="cline-any cline-neutral">&nbsp;</span>
562
563
  <span class="cline-any cline-no">&nbsp;</span>
563
564
  <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { Injectable, Logger, NotFoundException } from '@nestjs/common';</span>
565
- <span class="cstat-no" title="statement not covered" >import { InjectRepository } from '@nestjs/typeorm';</span>
566
- <span class="cstat-no" title="statement not covered" >import { Repository, DataSource, FindOptionsWhere } from 'typeorm';</span>
567
- <span class="cstat-no" title="statement not covered" >import { ContextTemplate, TemplateType } from '../core-entities';</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Injectable, Logger, NotFoundException } from '@nestjs/common';
567
+ import { InjectRepository } from '@nestjs/typeorm';
568
+ import { Repository, DataSource, FindOptionsWhere } from 'typeorm';
569
+ import { ContextTemplate, TemplateType } from '../core-entities';
568
570
  import {
569
571
  CreateContextTemplateDto,
570
572
  PreviewContextTemplateDto,
571
573
  PreviewContextTemplateResponseDto,
572
574
  UpdateContextTemplateDto,
573
575
  } from './dto/context-template.dto';
574
- <span class="cstat-no" title="statement not covered" >import { ContextGenerationService } from '../context-generation/context-generation.service';</span>
575
- <span class="cstat-no" title="statement not covered" >import { countTokens } from 'gpt-tokenizer';</span>
576
+ import { ContextGenerationService } from '../context-generation/context-generation.service';
577
+ import { countTokens } from 'gpt-tokenizer';
576
578
  &nbsp;
577
579
  @Injectable()
578
- export class <span class="cstat-no" title="statement not covered" ><span class="cstat-no" title="statement not covered" >ContextTemplatesService<span class="cstat-no" title="statement not covered" > </span>{</span></span>
579
- private readonly <span class="cstat-no" title="statement not covered" >logger = new Logger(ContextTemplatesService.name);</span>
580
+ export class ContextTemplatesService {
581
+ private readonly logger = new Logger(ContextTemplatesService.name);
580
582
  &nbsp;
581
- <span class="fstat-no" title="function not covered" > constructor(</span>
583
+ constructor(
582
584
  @InjectRepository(ContextTemplate)
583
- private <span class="cstat-no" title="statement not covered" >contextTemplatesRepository: R</span>epository&lt;ContextTemplate&gt;,
584
- private <span class="cstat-no" title="statement not covered" >dataSource: D</span>ataSource,
585
- private readonly <span class="cstat-no" title="statement not covered" >contextGenerationService: C</span>ontextGenerationService,
585
+ private contextTemplatesRepository: Repository&lt;ContextTemplate&gt;,
586
+ private dataSource: DataSource,
587
+ private readonly contextGenerationService: ContextGenerationService,
586
588
  ) {}
587
589
  &nbsp;
588
590
  <span class="fstat-no" title="function not covered" > async </span>create(
@@ -605,12 +607,12 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
605
607
  });
606
608
  }
607
609
  &nbsp;
608
- <span class="fstat-no" title="function not covered" > async </span>findOne(id: string): Promise&lt;ContextTemplate&gt; {
609
- const template = <span class="cstat-no" title="statement not covered" >await this.contextTemplatesRepository.findOneBy({ id });</span>
610
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!template) {</span>
611
- <span class="cstat-no" title="statement not covered" > throw new NotFoundException(`ContextTemplate with ID "${id}" not found`);</span>
610
+ async findOne(id: string): Promise&lt;ContextTemplate&gt; {
611
+ const template = await this.contextTemplatesRepository.findOneBy({ id });
612
+ if (!template) {
613
+ throw new NotFoundException(`ContextTemplate with ID "${id}" not found`);
612
614
  }
613
- <span class="cstat-no" title="statement not covered" > return template;</span>
615
+ return template;
614
616
  }
615
617
  &nbsp;
616
618
  <span class="fstat-no" title="function not covered" > async </span>findByName(name: string): Promise&lt;ContextTemplate | null&gt; {
@@ -745,48 +747,48 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
745
747
  };
746
748
  }
747
749
  &nbsp;
748
- <span class="fstat-no" title="function not covered" > async </span>setDefaultInitial(id: string): Promise&lt;ContextTemplate&gt; {
749
- const newDefault = <span class="cstat-no" title="statement not covered" >await this.findOne(id);</span>
750
+ async setDefaultInitial(id: string): Promise&lt;ContextTemplate&gt; {
751
+ const newDefault = await this.findOne(id);
750
752
  &nbsp;
751
- <span class="cstat-no" title="statement not covered" > await this.dataSource.transaction(<span class="fstat-no" title="function not covered" >async </span>(manager) =&gt; {</span>
752
- const currentDefault = <span class="cstat-no" title="statement not covered" >await manager.findOneBy(ContextTemplate, {</span>
753
+ await this.dataSource.transaction(async (manager) =&gt; {
754
+ const currentDefault = await manager.findOneBy(ContextTemplate, {
753
755
  is_default_initial: true,
754
756
  });
755
757
  &nbsp;
756
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (currentDefault &amp;&amp; currentDefault.id !== newDefault.id) {</span>
757
- <span class="cstat-no" title="statement not covered" > currentDefault.is_default_initial = false;</span>
758
- <span class="cstat-no" title="statement not covered" > await manager.save(currentDefault);</span>
758
+ if (currentDefault &amp;&amp; currentDefault.id !== newDefault.id) {
759
+ currentDefault.is_default_initial = false;
760
+ await manager.save(currentDefault);
759
761
  }
760
762
  &nbsp;
761
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!newDefault.is_default_initial) {</span>
762
- <span class="cstat-no" title="statement not covered" > newDefault.is_default_initial = true;</span>
763
- <span class="cstat-no" title="statement not covered" > await manager.save(newDefault);</span>
763
+ if (!newDefault.is_default_initial) {
764
+ newDefault.is_default_initial = true;
765
+ await manager.save(newDefault);
764
766
  }
765
767
  });
766
768
  &nbsp;
767
- <span class="cstat-no" title="statement not covered" > return newDefault;</span>
769
+ return newDefault;
768
770
  }
769
771
  &nbsp;
770
- <span class="fstat-no" title="function not covered" > async </span>setDefaultFollowup(id: string): Promise&lt;ContextTemplate&gt; {
771
- const newDefault = <span class="cstat-no" title="statement not covered" >await this.findOne(id);</span>
772
+ async setDefaultFollowup(id: string): Promise&lt;ContextTemplate&gt; {
773
+ const newDefault = await this.findOne(id);
772
774
  &nbsp;
773
- <span class="cstat-no" title="statement not covered" > await this.dataSource.transaction(<span class="fstat-no" title="function not covered" >async </span>(manager) =&gt; {</span>
774
- const currentDefault = <span class="cstat-no" title="statement not covered" >await manager.findOneBy(ContextTemplate, {</span>
775
+ await this.dataSource.transaction(async (manager) =&gt; {
776
+ const currentDefault = await manager.findOneBy(ContextTemplate, {
775
777
  is_default_followup: true,
776
778
  });
777
779
  &nbsp;
778
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (currentDefault &amp;&amp; currentDefault.id !== newDefault.id) {</span>
779
- <span class="cstat-no" title="statement not covered" > currentDefault.is_default_followup = false;</span>
780
- <span class="cstat-no" title="statement not covered" > await manager.save(currentDefault);</span>
780
+ if (currentDefault &amp;&amp; currentDefault.id !== newDefault.id) {
781
+ currentDefault.is_default_followup = false;
782
+ await manager.save(currentDefault);
781
783
  }
782
784
  &nbsp;
783
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!newDefault.is_default_followup) {</span>
784
- <span class="cstat-no" title="statement not covered" > newDefault.is_default_followup = true;</span>
785
- <span class="cstat-no" title="statement not covered" > await manager.save(newDefault);</span>
785
+ if (!newDefault.is_default_followup) {
786
+ newDefault.is_default_followup = true;
787
+ await manager.save(newDefault);
786
788
  }
787
789
  });
788
790
  &nbsp;
789
- <span class="cstat-no" title="statement not covered" > return newDefault;</span>
791
+ return newDefault;
790
792
  }
791
793
  &nbsp;
792
794
  <span class="fstat-no" title="function not covered" > async </span>setDefaultCondensed(id: string): Promise&lt;ContextTemplate&gt; {
@@ -810,14 +812,15 @@ export class <span class="cstat-no" title="statement not covered" ><span class="
810
812
  &nbsp;
811
813
  <span class="cstat-no" title="statement not covered" > return newDefault;</span>
812
814
  }
813
- }</pre></td></tr></table></pre>
815
+ }
816
+ &nbsp;</pre></td></tr></table></pre>
814
817
 
815
818
  <div class='push'></div><!-- for sticky footer -->
816
819
  </div><!-- /wrapper -->
817
820
  <div class='footer quiet pad2 space-top1 center small'>
818
821
  Code coverage generated by
819
822
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
820
- at 2025-07-30T23:37:05.373Z
823
+ at 2025-09-12T19:21:55.945Z
821
824
  </div>
822
825
  <script src="../../prettify.js"></script>
823
826
  <script>