repoburg 1.3.147 → 1.3.149

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 (503) hide show
  1. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.d.ts +1 -1
  2. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.js +0 -3
  3. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.js.map +1 -1
  4. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  5. package/package.json +1 -1
  6. package/.claude/settings.local.json +0 -7
  7. package/.playwright-mcp/console-2026-05-12T09-54-31-560Z.log +0 -13
  8. package/.playwright-mcp/console-2026-05-12T10-04-14-892Z.log +0 -13
  9. package/.playwright-mcp/console-2026-05-12T10-50-32-398Z.log +0 -14
  10. package/.playwright-mcp/console-2026-05-12T12-50-09-889Z.log +0 -13
  11. package/.playwright-mcp/console-2026-05-12T12-58-49-817Z.log +0 -60
  12. package/.playwright-mcp/console-2026-05-13T18-41-50-654Z.log +0 -13
  13. package/.playwright-mcp/console-2026-05-13T18-54-58-000Z.log +0 -13
  14. package/.playwright-mcp/console-2026-05-13T19-13-30-875Z.log +0 -95
  15. package/.playwright-mcp/console-2026-05-13T20-09-13-456Z.log +0 -17
  16. package/.playwright-mcp/console-2026-05-13T20-21-01-662Z.log +0 -13
  17. package/.playwright-mcp/console-2026-05-13T20-22-00-038Z.log +0 -15
  18. package/.playwright-mcp/console-2026-05-13T20-26-26-665Z.log +0 -28
  19. package/.playwright-mcp/console-2026-05-13T20-35-49-544Z.log +0 -26
  20. package/.playwright-mcp/console-2026-05-13T20-38-10-958Z.log +0 -676
  21. package/.playwright-mcp/console-2026-05-14T21-27-06-074Z.log +0 -69
  22. package/.playwright-mcp/console-2026-05-14T22-13-07-470Z.log +0 -101
  23. package/.playwright-mcp/console-2026-05-14T23-58-12-858Z.log +0 -28
  24. package/.playwright-mcp/console-2026-05-15T00-15-00-760Z.log +0 -81
  25. package/.playwright-mcp/page-2026-05-12T09-54-32-920Z.yml +0 -223
  26. package/.playwright-mcp/page-2026-05-12T09-54-42-067Z.yml +0 -190
  27. package/.playwright-mcp/page-2026-05-12T09-55-12-019Z.yml +0 -389
  28. package/.playwright-mcp/page-2026-05-12T09-55-49-065Z.yml +0 -428
  29. package/.playwright-mcp/page-2026-05-12T09-56-06-607Z.yml +0 -389
  30. package/.playwright-mcp/page-2026-05-12T09-56-23-371Z.yml +0 -196
  31. package/.playwright-mcp/page-2026-05-12T09-56-55-792Z.yml +0 -389
  32. package/.playwright-mcp/page-2026-05-12T10-04-15-716Z.yml +0 -164
  33. package/.playwright-mcp/page-2026-05-12T10-04-43-994Z.yml +0 -190
  34. package/.playwright-mcp/page-2026-05-12T10-05-04-616Z.yml +0 -389
  35. package/.playwright-mcp/page-2026-05-12T10-05-27-643Z.yml +0 -428
  36. package/.playwright-mcp/page-2026-05-12T10-05-47-851Z.yml +0 -389
  37. package/.playwright-mcp/page-2026-05-12T10-06-13-429Z.yml +0 -196
  38. package/.playwright-mcp/page-2026-05-12T10-06-58-147Z.yml +0 -389
  39. package/.playwright-mcp/page-2026-05-12T10-08-20-216Z.yml +0 -428
  40. package/.playwright-mcp/page-2026-05-12T10-08-38-177Z.yml +0 -389
  41. package/.playwright-mcp/page-2026-05-12T10-09-01-851Z.yml +0 -196
  42. package/.playwright-mcp/page-2026-05-12T10-09-24-888Z.yml +0 -389
  43. package/.playwright-mcp/page-2026-05-12T10-50-33-049Z.yml +0 -212
  44. package/.playwright-mcp/page-2026-05-12T10-50-48-496Z.yml +0 -196
  45. package/.playwright-mcp/page-2026-05-12T10-51-51-308Z.yml +0 -196
  46. package/.playwright-mcp/page-2026-05-12T10-52-07-379Z.yml +0 -196
  47. package/.playwright-mcp/page-2026-05-12T12-50-10-589Z.yml +0 -143
  48. package/.playwright-mcp/page-2026-05-12T12-50-25-461Z.yml +0 -196
  49. package/.playwright-mcp/page-2026-05-12T12-51-11-190Z.yml +0 -394
  50. package/.playwright-mcp/page-2026-05-12T12-52-21-138Z.yml +0 -524
  51. package/.playwright-mcp/page-2026-05-12T12-53-42-423Z.yml +0 -431
  52. package/.playwright-mcp/page-2026-05-12T12-54-18-549Z.yml +0 -196
  53. package/.playwright-mcp/page-2026-05-12T12-54-26-818Z.yml +0 -390
  54. package/.playwright-mcp/page-2026-05-12T12-55-32-697Z.yml +0 -520
  55. package/.playwright-mcp/page-2026-05-12T12-58-50-450Z.yml +0 -164
  56. package/.playwright-mcp/page-2026-05-12T12-59-12-954Z.yml +0 -196
  57. package/.playwright-mcp/page-2026-05-12T12-59-38-479Z.yml +0 -394
  58. package/.playwright-mcp/page-2026-05-12T13-01-17-580Z.yml +0 -524
  59. package/.playwright-mcp/page-2026-05-12T13-01-58-447Z.yml +0 -271
  60. package/.playwright-mcp/page-2026-05-12T13-03-12-109Z.yml +0 -394
  61. package/.playwright-mcp/page-2026-05-13T18-41-51-436Z.yml +0 -159
  62. package/.playwright-mcp/page-2026-05-13T18-42-27-482Z.yml +0 -4814
  63. package/.playwright-mcp/page-2026-05-13T18-54-58-644Z.yml +0 -154
  64. package/.playwright-mcp/page-2026-05-13T18-56-11-217Z.yml +0 -1560
  65. package/.playwright-mcp/page-2026-05-13T18-56-32-205Z.yml +0 -1560
  66. package/.playwright-mcp/page-2026-05-13T19-13-31-457Z.yml +0 -164
  67. package/.playwright-mcp/page-2026-05-13T19-14-26-248Z.yml +0 -1560
  68. package/.playwright-mcp/page-2026-05-13T19-15-02-355Z.yml +0 -1560
  69. package/.playwright-mcp/page-2026-05-13T20-09-14-478Z.yml +0 -149
  70. package/.playwright-mcp/page-2026-05-13T20-10-49-292Z.yml +0 -4814
  71. package/.playwright-mcp/page-2026-05-13T20-21-02-852Z.yml +0 -143
  72. package/.playwright-mcp/page-2026-05-13T20-22-01-084Z.yml +0 -143
  73. package/.playwright-mcp/page-2026-05-13T20-22-09-334Z.yml +0 -1561
  74. package/.playwright-mcp/page-2026-05-13T20-26-27-690Z.yml +0 -143
  75. package/.playwright-mcp/page-2026-05-13T20-26-53-324Z.yml +0 -1561
  76. package/.playwright-mcp/page-2026-05-13T20-27-35-395Z.yml +0 -1561
  77. package/.playwright-mcp/page-2026-05-13T20-35-50-708Z.yml +0 -149
  78. package/.playwright-mcp/page-2026-05-13T20-37-41-379Z.yml +0 -0
  79. package/.playwright-mcp/page-2026-05-13T20-38-12-049Z.yml +0 -149
  80. package/.playwright-mcp/page-2026-05-13T20-38-19-708Z.yml +0 -1561
  81. package/.playwright-mcp/page-2026-05-14T21-27-07-278Z.yml +0 -164
  82. package/.playwright-mcp/page-2026-05-14T22-13-07-628Z.yml +0 -5
  83. package/.playwright-mcp/page-2026-05-14T22-13-27-676Z.yml +0 -1561
  84. package/.playwright-mcp/page-2026-05-14T23-58-13-064Z.yml +0 -3
  85. package/.playwright-mcp/page-2026-05-14T23-58-33-500Z.yml +0 -1561
  86. package/.playwright-mcp/page-2026-05-15T00-15-00-945Z.yml +0 -3
  87. package/.run/backend _ build.run.xml +0 -12
  88. package/.run/backend _ lint.run.xml +0 -12
  89. package/.run/backend _ test.run.xml +0 -12
  90. package/.run/frontend _ build.run.xml +0 -12
  91. package/.run/frontend _ lint_fix.run.xml +0 -12
  92. package/CODEMAP.md +0 -53
  93. package/backend/.repoburg/hooks/README.md +0 -53
  94. package/backend/.repoburg/hooks/eslint-hook.ts +0 -46
  95. package/backend/.repoburg/hooks/example-hook.ts +0 -62
  96. package/backend/CODEMAP.md +0 -48
  97. package/backend/README.md +0 -3
  98. package/backend/coverage/clover.xml +0 -12003
  99. package/backend/coverage/coverage-final.json +0 -313
  100. package/backend/coverage/lcov-report/base.css +0 -224
  101. package/backend/coverage/lcov-report/block-navigation.js +0 -87
  102. package/backend/coverage/lcov-report/favicon.png +0 -0
  103. package/backend/coverage/lcov-report/index.html +0 -1301
  104. package/backend/coverage/lcov-report/packages/gemini-core/examples/index.html +0 -116
  105. package/backend/coverage/lcov-report/packages/gemini-core/examples/simple.ts.html +0 -445
  106. package/backend/coverage/lcov-report/packages/gemini-core/index.html +0 -116
  107. package/backend/coverage/lcov-report/packages/gemini-core/index.ts.html +0 -127
  108. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/codeAssist.ts.html +0 -193
  109. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/converter.ts.html +0 -832
  110. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/index.html +0 -206
  111. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/oauth-credential-storage.ts.html +0 -469
  112. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/oauth2.ts.html +0 -1705
  113. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/server.ts.html +0 -790
  114. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/setup.ts.html +0 -454
  115. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/types.ts.html +0 -685
  116. package/backend/coverage/lcov-report/packages/gemini-core/src/config/config.ts.html +0 -307
  117. package/backend/coverage/lcov-report/packages/gemini-core/src/config/index.html +0 -146
  118. package/backend/coverage/lcov-report/packages/gemini-core/src/config/models.ts.html +0 -151
  119. package/backend/coverage/lcov-report/packages/gemini-core/src/config/storage.ts.html +0 -172
  120. package/backend/coverage/lcov-report/packages/gemini-core/src/core/contentGenerator.ts.html +0 -490
  121. package/backend/coverage/lcov-report/packages/gemini-core/src/core/geminiChat.ts.html +0 -1237
  122. package/backend/coverage/lcov-report/packages/gemini-core/src/core/geminiRequest.ts.html +0 -139
  123. package/backend/coverage/lcov-report/packages/gemini-core/src/core/index.html +0 -176
  124. package/backend/coverage/lcov-report/packages/gemini-core/src/core/prompts.ts.html +0 -409
  125. package/backend/coverage/lcov-report/packages/gemini-core/src/core/tokenLimits.ts.html +0 -181
  126. package/backend/coverage/lcov-report/packages/gemini-core/src/index.html +0 -116
  127. package/backend/coverage/lcov-report/packages/gemini-core/src/index.ts.html +0 -187
  128. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/base-token-storage.ts.html +0 -229
  129. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/file-token-storage.ts.html +0 -634
  130. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.ts.html +0 -373
  131. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/index.html +0 -191
  132. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/index.ts.html +0 -124
  133. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.ts.html +0 -835
  134. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/types.ts.html +0 -211
  135. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/errors.ts.html +0 -421
  136. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/index.html +0 -191
  137. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/partUtils.ts.html +0 -592
  138. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/quotaErrorDetection.ts.html +0 -388
  139. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/retry.ts.html +0 -877
  140. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/session.ts.html +0 -112
  141. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/userAccountManager.ts.html +0 -502
  142. package/backend/coverage/lcov-report/packages/tokenpatch/index.html +0 -161
  143. package/backend/coverage/lcov-report/packages/tokenpatch/index.ts.html +0 -415
  144. package/backend/coverage/lcov-report/packages/tokenpatch/parser.ts.html +0 -139
  145. package/backend/coverage/lcov-report/packages/tokenpatch/patcher.ts.html +0 -1249
  146. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/index.html +0 -131
  147. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/tiktoken-tokenizer.ts.html +0 -187
  148. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/tree-sitter-tokenizer.ts.html +0 -193
  149. package/backend/coverage/lcov-report/packages/tokenpatch/tokens.ts.html +0 -178
  150. package/backend/coverage/lcov-report/prettify.css +0 -1
  151. package/backend/coverage/lcov-report/prettify.js +0 -2
  152. package/backend/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  153. package/backend/coverage/lcov-report/sorter.js +0 -210
  154. package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +0 -1549
  155. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +0 -904
  156. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +0 -175
  157. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +0 -1534
  158. package/backend/coverage/lcov-report/src/ai-actions/index.html +0 -161
  159. package/backend/coverage/lcov-report/src/app.controller.ts.html +0 -151
  160. package/backend/coverage/lcov-report/src/app.module.ts.html +0 -451
  161. package/backend/coverage/lcov-report/src/app.service.ts.html +0 -163
  162. package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +0 -1609
  163. package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +0 -136
  164. package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +0 -2281
  165. package/backend/coverage/lcov-report/src/application-state/dto/index.html +0 -416
  166. package/backend/coverage/lcov-report/src/application-state/dto/set-alibaba-config.dto.ts.html +0 -109
  167. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +0 -118
  168. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.ts.html +0 -109
  169. package/backend/coverage/lcov-report/src/application-state/dto/set-context-token-limit.dto.ts.html +0 -124
  170. package/backend/coverage/lcov-report/src/application-state/dto/set-execution-strategy.dto.ts.html +0 -121
  171. package/backend/coverage/lcov-report/src/application-state/dto/set-followup-token-limit.dto.ts.html +0 -124
  172. package/backend/coverage/lcov-report/src/application-state/dto/set-history-compression-enabled.dto.ts.html +0 -115
  173. package/backend/coverage/lcov-report/src/application-state/dto/set-llm-retry-enabled.dto.ts.html +0 -115
  174. package/backend/coverage/lcov-report/src/application-state/dto/set-llm-retry-max-attempts.dto.ts.html +0 -127
  175. package/backend/coverage/lcov-report/src/application-state/dto/set-manual-llm-enabled.dto.ts.html +0 -118
  176. package/backend/coverage/lcov-report/src/application-state/dto/set-ollama-config.dto.ts.html +0 -109
  177. package/backend/coverage/lcov-report/src/application-state/dto/set-openai-config.dto.ts.html +0 -139
  178. package/backend/coverage/lcov-report/src/application-state/dto/set-openrouter-config.dto.ts.html +0 -109
  179. package/backend/coverage/lcov-report/src/application-state/dto/set-streaming-enabled.dto.ts.html +0 -109
  180. package/backend/coverage/lcov-report/src/application-state/dto/set-syntax-validation-enabled.dto.ts.html +0 -118
  181. package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +0 -124
  182. package/backend/coverage/lcov-report/src/application-state/dto/set-tools-enabled.dto.ts.html +0 -118
  183. package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +0 -109
  184. package/backend/coverage/lcov-report/src/application-state/dto/set-yolo-mode-message.dto.ts.html +0 -124
  185. package/backend/coverage/lcov-report/src/application-state/dto/set-yolo-mode.dto.ts.html +0 -118
  186. package/backend/coverage/lcov-report/src/application-state/dto/set-zai-config.dto.ts.html +0 -109
  187. package/backend/coverage/lcov-report/src/application-state/index.html +0 -146
  188. package/backend/coverage/lcov-report/src/common/cache/cache-invalidation.service.ts.html +0 -1297
  189. package/backend/coverage/lcov-report/src/common/cache/cache-invalidation.subscriber.ts.html +0 -712
  190. package/backend/coverage/lcov-report/src/common/cache/etag-cache.service.ts.html +0 -379
  191. package/backend/coverage/lcov-report/src/common/cache/index.html +0 -146
  192. package/backend/coverage/lcov-report/src/common/common.module.ts.html +0 -121
  193. package/backend/coverage/lcov-report/src/common/index.html +0 -116
  194. package/backend/coverage/lcov-report/src/common/interceptors/etag-cache.interceptor.ts.html +0 -337
  195. package/backend/coverage/lcov-report/src/common/interceptors/index.html +0 -116
  196. package/backend/coverage/lcov-report/src/common/middleware/cache.middleware.ts.html +0 -265
  197. package/backend/coverage/lcov-report/src/common/middleware/index.html +0 -116
  198. package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +0 -118
  199. package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +0 -1501
  200. package/backend/coverage/lcov-report/src/context-generation/index.html +0 -131
  201. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +0 -427
  202. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +0 -142
  203. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +0 -442
  204. package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +0 -211
  205. package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +0 -116
  206. package/backend/coverage/lcov-report/src/context-snippets/index.html +0 -146
  207. package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +0 -724
  208. package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +0 -142
  209. package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +0 -1015
  210. package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +0 -511
  211. package/backend/coverage/lcov-report/src/context-templates/dto/index.html +0 -116
  212. package/backend/coverage/lcov-report/src/context-templates/index.html +0 -146
  213. package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +0 -613
  214. package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +0 -124
  215. package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +0 -211
  216. package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +0 -190
  217. package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +0 -439
  218. package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +0 -205
  219. package/backend/coverage/lcov-report/src/core-entities/custom-variable.entity.ts.html +0 -241
  220. package/backend/coverage/lcov-report/src/core-entities/enums.ts.html +0 -553
  221. package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +0 -208
  222. package/backend/coverage/lcov-report/src/core-entities/index.html +0 -371
  223. package/backend/coverage/lcov-report/src/core-entities/index.ts.html +0 -136
  224. package/backend/coverage/lcov-report/src/core-entities/llm-call-log.entity.ts.html +0 -388
  225. package/backend/coverage/lcov-report/src/core-entities/mcp-config.entity.ts.html +0 -256
  226. package/backend/coverage/lcov-report/src/core-entities/mcp-tool.entity.ts.html +0 -256
  227. package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +0 -181
  228. package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +0 -745
  229. package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +0 -688
  230. package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +0 -349
  231. package/backend/coverage/lcov-report/src/core-entities/tool-hook.entity.ts.html +0 -235
  232. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +0 -442
  233. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +0 -124
  234. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +0 -304
  235. package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +0 -205
  236. package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +0 -116
  237. package/backend/coverage/lcov-report/src/custom-snippets/index.html +0 -146
  238. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.controller.ts.html +0 -463
  239. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.module.ts.html +0 -124
  240. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.service.ts.html +0 -310
  241. package/backend/coverage/lcov-report/src/custom-variables/dto/custom-variable.dto.ts.html +0 -244
  242. package/backend/coverage/lcov-report/src/custom-variables/dto/index.html +0 -116
  243. package/backend/coverage/lcov-report/src/custom-variables/index.html +0 -146
  244. package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +0 -295
  245. package/backend/coverage/lcov-report/src/events/events.module.ts.html +0 -109
  246. package/backend/coverage/lcov-report/src/events/index.html +0 -146
  247. package/backend/coverage/lcov-report/src/events/websocket.events.ts.html +0 -466
  248. package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +0 -130
  249. package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +0 -116
  250. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +0 -130
  251. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +0 -124
  252. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +0 -238
  253. package/backend/coverage/lcov-report/src/execution-logs/index.html +0 -146
  254. package/backend/coverage/lcov-report/src/gemini/gemini-llm.provider.ts.html +0 -553
  255. package/backend/coverage/lcov-report/src/gemini/gemini.module.ts.html +0 -109
  256. package/backend/coverage/lcov-report/src/gemini/index.html +0 -131
  257. package/backend/coverage/lcov-report/src/global-config/dto/index.html +0 -116
  258. package/backend/coverage/lcov-report/src/global-config/dto/update-global-config.dto.ts.html +0 -367
  259. package/backend/coverage/lcov-report/src/global-config/global-config.controller.ts.html +0 -220
  260. package/backend/coverage/lcov-report/src/global-config/global-config.module.ts.html +0 -115
  261. package/backend/coverage/lcov-report/src/global-config/global-config.service.ts.html +0 -397
  262. package/backend/coverage/lcov-report/src/global-config/index.html +0 -146
  263. package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +0 -340
  264. package/backend/coverage/lcov-report/src/index.html +0 -206
  265. package/backend/coverage/lcov-report/src/interactive-chat/chat.module.ts.html +0 -187
  266. package/backend/coverage/lcov-report/src/interactive-chat/chat.service.ts.html +0 -1825
  267. package/backend/coverage/lcov-report/src/interactive-chat/index.html +0 -146
  268. package/backend/coverage/lcov-report/src/interactive-chat/streaming.controller.ts.html +0 -343
  269. package/backend/coverage/lcov-report/src/llm-call-logs/dto/index.html +0 -116
  270. package/backend/coverage/lcov-report/src/llm-call-logs/dto/llm-call-log.dto.ts.html +0 -214
  271. package/backend/coverage/lcov-report/src/llm-call-logs/index.html +0 -146
  272. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.controller.ts.html +0 -634
  273. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.module.ts.html +0 -124
  274. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.service.ts.html +0 -643
  275. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/apply-diff.handler.ts.html +0 -1090
  276. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/ask-user.handler.ts.html +0 -433
  277. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/create-file.handler.ts.html +0 -757
  278. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/delete-file.handler.ts.html +0 -586
  279. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/discard-messages.handler.ts.html +0 -1153
  280. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/apply-diff.args.dto.ts.html +0 -124
  281. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/ask-user.args.dto.ts.html +0 -103
  282. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/create-file.args.dto.ts.html +0 -124
  283. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/delete-file.args.dto.ts.html +0 -106
  284. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/execute-code.args.dto.ts.html +0 -106
  285. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/final.args.dto.ts.html +0 -118
  286. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/generate-title.args.dto.ts.html +0 -190
  287. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/get-session-history.args.dto.ts.html +0 -196
  288. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/howto.args.dto.ts.html +0 -91
  289. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/index.html +0 -356
  290. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/new-session.args.dto.ts.html +0 -106
  291. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/overwrite-file.args.dto.ts.html +0 -124
  292. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/patch.args.dto.ts.html +0 -124
  293. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/quick-edit.args.dto.ts.html +0 -214
  294. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/request-context.args.dto.ts.html +0 -202
  295. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/run-command.args.dto.ts.html +0 -151
  296. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/sanitizer.decorator.ts.html +0 -181
  297. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/write-todo.args.dto.ts.html +0 -130
  298. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/execute-code.handler.ts.html +0 -631
  299. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/final.handler.ts.html +0 -469
  300. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/generate-title.handler.ts.html +0 -448
  301. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/get-messages.handler.ts.html +0 -1351
  302. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/get-session-history.handler.ts.html +0 -868
  303. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/howto.handler.ts.html +0 -481
  304. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/index.html +0 -416
  305. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/invoke-subagent.handler.ts.html +0 -580
  306. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/list-sub-agents.handler.ts.html +0 -352
  307. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/context-aware.matcher.ts.html +0 -1054
  308. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/exact.matcher.ts.html +0 -331
  309. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/hybrid.matcher.ts.html +0 -403
  310. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/index.html +0 -176
  311. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/index.ts.html +0 -100
  312. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/normalized.matcher.ts.html +0 -724
  313. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/mcp-tool-action.handler.ts.html +0 -358
  314. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/new-session.handler.ts.html +0 -379
  315. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/overwrite-file.handler.ts.html +0 -838
  316. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/patch.handler.ts.html +0 -1702
  317. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/quick-edit.handler.ts.html +0 -1459
  318. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/request-context.handler.ts.html +0 -679
  319. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/run-command.handler.ts.html +0 -964
  320. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/write-todo.handler.ts.html +0 -625
  321. package/backend/coverage/lcov-report/src/llm-orchestration/errors/handler-validation.error.ts.html +0 -103
  322. package/backend/coverage/lcov-report/src/llm-orchestration/errors/index.html +0 -116
  323. package/backend/coverage/lcov-report/src/llm-orchestration/history-compression.service.ts.html +0 -1645
  324. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/follow-up-post-execution.hook.ts.html +0 -238
  325. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/frontend-notification.hook.ts.html +0 -181
  326. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/index.html +0 -161
  327. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/invalid-tool-feedback.hook.ts.html +0 -313
  328. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.ts.html +0 -466
  329. package/backend/coverage/lcov-report/src/llm-orchestration/index.html +0 -176
  330. package/backend/coverage/lcov-report/src/llm-orchestration/llm-orchestration.interfaces.ts.html +0 -319
  331. package/backend/coverage/lcov-report/src/llm-orchestration/llm-orchestration.module.ts.html +0 -706
  332. package/backend/coverage/lcov-report/src/llm-orchestration/llm-turn-processor.service.ts.html +0 -1150
  333. package/backend/coverage/lcov-report/src/llm-orchestration/parser/index.html +0 -131
  334. package/backend/coverage/lcov-report/src/llm-orchestration/parser/llm-output-parser.service.ts.html +0 -658
  335. package/backend/coverage/lcov-report/src/llm-orchestration/parser/parsing.constants.ts.html +0 -127
  336. package/backend/coverage/lcov-report/src/llm-orchestration/tool-schema.service.ts.html +0 -547
  337. package/backend/coverage/lcov-report/src/llm-provider/alibaba-llm.provider.ts.html +0 -1681
  338. package/backend/coverage/lcov-report/src/llm-provider/index.html +0 -236
  339. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.controller.ts.html +0 -187
  340. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.interface.ts.html +0 -361
  341. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.module.ts.html +0 -175
  342. package/backend/coverage/lcov-report/src/llm-provider/ollama-llm.provider.ts.html +0 -1780
  343. package/backend/coverage/lcov-report/src/llm-provider/openai-llm.provider.ts.html +0 -1867
  344. package/backend/coverage/lcov-report/src/llm-provider/openrouter-llm.provider.ts.html +0 -1891
  345. package/backend/coverage/lcov-report/src/llm-provider/proxy-llm.provider.ts.html +0 -304
  346. package/backend/coverage/lcov-report/src/llm-provider/zai-llm.provider.ts.html +0 -1666
  347. package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +0 -131
  348. package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +0 -436
  349. package/backend/coverage/lcov-report/src/llm-responses/dto/sync-conversation.dto.ts.html +0 -319
  350. package/backend/coverage/lcov-report/src/llm-responses/index.html +0 -146
  351. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +0 -283
  352. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +0 -184
  353. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +0 -1474
  354. package/backend/coverage/lcov-report/src/main.ts.html +0 -463
  355. package/backend/coverage/lcov-report/src/mcp/dto/batch-update-mcp-tools.dto.ts.html +0 -145
  356. package/backend/coverage/lcov-report/src/mcp/dto/create-mcp-config.dto.ts.html +0 -127
  357. package/backend/coverage/lcov-report/src/mcp/dto/index.html +0 -146
  358. package/backend/coverage/lcov-report/src/mcp/dto/update-mcp-config.dto.ts.html +0 -112
  359. package/backend/coverage/lcov-report/src/mcp/index.html +0 -146
  360. package/backend/coverage/lcov-report/src/mcp/mcp.controller.ts.html +0 -340
  361. package/backend/coverage/lcov-report/src/mcp/mcp.module.ts.html +0 -124
  362. package/backend/coverage/lcov-report/src/mcp/mcp.service.ts.html +0 -1345
  363. package/backend/coverage/lcov-report/src/message-bus/dto/index.html +0 -116
  364. package/backend/coverage/lcov-report/src/message-bus/dto/submit-message.dto.ts.html +0 -109
  365. package/backend/coverage/lcov-report/src/message-bus/index.html +0 -146
  366. package/backend/coverage/lcov-report/src/message-bus/message-bus.controller.ts.html +0 -148
  367. package/backend/coverage/lcov-report/src/message-bus/message-bus.module.ts.html +0 -115
  368. package/backend/coverage/lcov-report/src/message-bus/message-bus.service.ts.html +0 -151
  369. package/backend/coverage/lcov-report/src/projects/dto/index.html +0 -116
  370. package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +0 -196
  371. package/backend/coverage/lcov-report/src/projects/index.html +0 -146
  372. package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +0 -322
  373. package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +0 -124
  374. package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +0 -235
  375. package/backend/coverage/lcov-report/src/seeding/context-snippet-seeding.service.ts.html +0 -280
  376. package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +0 -439
  377. package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +0 -271
  378. package/backend/coverage/lcov-report/src/seeding/custom-variable-seeding.service.ts.html +0 -271
  379. package/backend/coverage/lcov-report/src/seeding/data/context-snippets/compress.ts.html +0 -172
  380. package/backend/coverage/lcov-report/src/seeding/data/context-snippets/index.html +0 -116
  381. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +0 -157
  382. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +0 -148
  383. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +0 -151
  384. package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +0 -161
  385. package/backend/coverage/lcov-report/src/seeding/data/context-templates/open-pr-command.ts.html +0 -247
  386. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +0 -94
  387. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-for.ts.html +0 -100
  388. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-if.ts.html +0 -97
  389. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-ifelse.ts.html +0 -100
  390. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/everest-playwright-auth.ts.html +0 -304
  391. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +0 -94
  392. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +0 -341
  393. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/it-mcp.ts.html +0 -100
  394. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/it-tools.ts.html +0 -97
  395. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +0 -94
  396. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +0 -94
  397. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +0 -94
  398. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +0 -94
  399. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +0 -94
  400. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +0 -100
  401. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-cmd-output-incl.ts.html +0 -94
  402. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +0 -94
  403. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/default-auto-execute-code.ts.html +0 -94
  404. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/default-plan-mode.ts.html +0 -97
  405. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/index.html +0 -131
  406. package/backend/coverage/lcov-report/src/seeding/data/mcp-configs/default-configs.ts.html +0 -121
  407. package/backend/coverage/lcov-report/src/seeding/data/mcp-configs/index.html +0 -116
  408. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/browser-use.ts.html +0 -115
  409. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/explore-codebase.ts.html +0 -136
  410. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/index.html +0 -131
  411. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/browser-use-agent.ts.html +0 -190
  412. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_native_tool_agent.ts.html +0 -421
  413. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/explore-codebase-agent.ts.html +0 -265
  414. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +0 -161
  415. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/master-agent.ts.html +0 -388
  416. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/eslint-hook.ts.html +0 -265
  417. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/example-hook.ts.html +0 -274
  418. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/index.html +0 -146
  419. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/readme.ts.html +0 -250
  420. package/backend/coverage/lcov-report/src/seeding/index.html +0 -236
  421. package/backend/coverage/lcov-report/src/seeding/mcp-config-seeding.service.ts.html +0 -193
  422. package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +0 -211
  423. package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +0 -187
  424. package/backend/coverage/lcov-report/src/seeding/sub-agent-seeding.service.ts.html +0 -742
  425. package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +0 -397
  426. package/backend/coverage/lcov-report/src/session-followup/index.html +0 -131
  427. package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +0 -130
  428. package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +0 -718
  429. package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +0 -116
  430. package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +0 -577
  431. package/backend/coverage/lcov-report/src/session-inputs/index.html +0 -176
  432. package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +0 -832
  433. package/backend/coverage/lcov-report/src/session-inputs/session-input.subscriber.ts.html +0 -220
  434. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +0 -685
  435. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +0 -229
  436. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +0 -1981
  437. package/backend/coverage/lcov-report/src/session-transfer/index.html +0 -131
  438. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +0 -160
  439. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +0 -883
  440. package/backend/coverage/lcov-report/src/sessions/dto/index.html +0 -116
  441. package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +0 -769
  442. package/backend/coverage/lcov-report/src/sessions/index.html +0 -146
  443. package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +0 -1306
  444. package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +0 -220
  445. package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +0 -2797
  446. package/backend/coverage/lcov-report/src/sub-agents/dto/create-sub-agent.dto.ts.html +0 -355
  447. package/backend/coverage/lcov-report/src/sub-agents/dto/index.html +0 -131
  448. package/backend/coverage/lcov-report/src/sub-agents/dto/update-sub-agent.dto.ts.html +0 -295
  449. package/backend/coverage/lcov-report/src/sub-agents/index.html +0 -221
  450. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-run.entity.ts.html +0 -463
  451. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runner.service.ts.html +0 -2428
  452. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runs.controller.ts.html +0 -580
  453. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runs.service.ts.html +0 -550
  454. package/backend/coverage/lcov-report/src/sub-agents/sub-agent.entity.ts.html +0 -475
  455. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.controller.ts.html +0 -373
  456. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.module.ts.html +0 -205
  457. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.service.ts.html +0 -619
  458. package/backend/coverage/lcov-report/src/syntax-validation/index.html +0 -131
  459. package/backend/coverage/lcov-report/src/syntax-validation/syntax-validation.module.ts.html +0 -109
  460. package/backend/coverage/lcov-report/src/syntax-validation/syntax-validation.service.ts.html +0 -724
  461. package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +0 -176
  462. package/backend/coverage/lcov-report/src/system-prompts/dto/set-enabled-mcp-tools.dto.ts.html +0 -157
  463. package/backend/coverage/lcov-report/src/system-prompts/dto/set-enabled-tools.dto.ts.html +0 -148
  464. package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +0 -517
  465. package/backend/coverage/lcov-report/src/system-prompts/dto/toggle-mcp-tool.dto.ts.html +0 -121
  466. package/backend/coverage/lcov-report/src/system-prompts/dto/toggle-tool.dto.ts.html +0 -118
  467. package/backend/coverage/lcov-report/src/system-prompts/index.html +0 -146
  468. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +0 -1060
  469. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +0 -160
  470. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +0 -2254
  471. package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +0 -178
  472. package/backend/coverage/lcov-report/src/tool-hooks/dto/create-tool-hook.dto.ts.html +0 -181
  473. package/backend/coverage/lcov-report/src/tool-hooks/dto/index.html +0 -131
  474. package/backend/coverage/lcov-report/src/tool-hooks/dto/update-tool-hook.dto.ts.html +0 -178
  475. package/backend/coverage/lcov-report/src/tool-hooks/index.html +0 -146
  476. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.controller.ts.html +0 -481
  477. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.module.ts.html +0 -127
  478. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.service.ts.html +0 -1222
  479. package/backend/coverage/lcov-report/src/tracing.ts.html +0 -214
  480. package/backend/coverage/lcov-report/src/types/express-multer.d.ts.html +0 -130
  481. package/backend/coverage/lcov-report/src/types/index.html +0 -116
  482. package/backend/coverage/lcov-report/src/utils/ai-format-generator.ts.html +0 -253
  483. package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +0 -310
  484. package/backend/coverage/lcov-report/src/utils/index.html +0 -191
  485. package/backend/coverage/lcov-report/src/utils/index.ts.html +0 -100
  486. package/backend/coverage/lcov-report/src/utils/short-id.ts.html +0 -109
  487. package/backend/coverage/lcov-report/src/utils/spawn-with-kill.ts.html +0 -412
  488. package/backend/coverage/lcov-report/src/utils/trace.decorator.ts.html +0 -223
  489. package/backend/coverage/lcov-report/src/visual-editor/index.html +0 -146
  490. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.controller.ts.html +0 -409
  491. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.dto.ts.html +0 -130
  492. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.module.ts.html +0 -118
  493. package/backend/coverage/lcov-report/src/workspace/dto/file-tree.dto.ts.html +0 -112
  494. package/backend/coverage/lcov-report/src/workspace/dto/index.html +0 -131
  495. package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +0 -193
  496. package/backend/coverage/lcov-report/src/workspace/index.html +0 -146
  497. package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +0 -394
  498. package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +0 -121
  499. package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +0 -1027
  500. package/backend/coverage/lcov.info +0 -20220
  501. package/backend/packages/tokenpatch/CODEMAP.md +0 -25
  502. package/daemon/CODEMAP.md +0 -23
  503. package/visual-editor-proxy/CODEMAP.md +0 -21
@@ -1,1351 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/llm-orchestration/action-handlers/get-messages.handler.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/llm-orchestration/action-handlers</a> get-messages.handler.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">89.02% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>146/164</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">60.31% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>76/126</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>13/13</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">90.06% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>136/151</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span>
489
- <span class="cline-any cline-yes">8x</span>
490
- <span class="cline-any cline-yes">8x</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">8x</span>
497
- <span class="cline-any cline-yes">8x</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">8x</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">8x</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-yes">8x</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-yes">8x</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">8x</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-yes">26x</span>
514
- <span class="cline-any cline-yes">26x</span>
515
- <span class="cline-any cline-yes">26x</span>
516
- <span class="cline-any cline-yes">1x</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">15x</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-yes">5x</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-yes">1x</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-no">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-no">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">2x</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">1x</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-yes">1x</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">1x</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">1x</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-yes">1x</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-no">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-yes">1x</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">1x</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-yes">1x</span>
567
- <span class="cline-any cline-yes">1x</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-no">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">8x</span>
578
- <span class="cline-any cline-yes">45x</span>
579
- <span class="cline-any cline-yes">45x</span>
580
- <span class="cline-any cline-yes">3x</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">45x</span>
583
- <span class="cline-any cline-yes">4x</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">45x</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-yes">8x</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">32x</span>
598
- <span class="cline-any cline-yes">32x</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-yes">32x</span>
601
- <span class="cline-any cline-yes">46x</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">46x</span>
604
- <span class="cline-any cline-yes">10x</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">10x</span>
609
- <span class="cline-any cline-yes">36x</span>
610
- <span class="cline-any cline-yes">27x</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-yes">27x</span>
616
- <span class="cline-any cline-yes">1x</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">27x</span>
620
- <span class="cline-any cline-yes">2x</span>
621
- <span class="cline-any cline-yes">2x</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-yes">27x</span>
628
- <span class="cline-any cline-yes">27x</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">27x</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-yes">2x</span>
634
- <span class="cline-any cline-yes">2x</span>
635
- <span class="cline-any cline-yes">2x</span>
636
- <span class="cline-any cline-yes">2x</span>
637
- <span class="cline-any cline-yes">2x</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">2x</span>
643
- <span class="cline-any cline-yes">2x</span>
644
- <span class="cline-any cline-yes">2x</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-yes">2x</span>
647
- <span class="cline-any cline-yes">2x</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-yes">2x</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-yes">2x</span>
653
- <span class="cline-any cline-yes">1x</span>
654
- <span class="cline-any cline-yes">1x</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-yes">1x</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-yes">2x</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-yes">2x</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-yes">32x</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-yes">8x</span>
677
- <span class="cline-any cline-yes">35x</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">35x</span>
682
- <span class="cline-any cline-yes">35x</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-yes">1x</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-yes">3x</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-yes">33x</span>
739
- <span class="cline-any cline-yes">33x</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-yes">32x</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-yes">32x</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-yes">32x</span>
752
- <span class="cline-any cline-yes">32x</span>
753
- <span class="cline-any cline-yes">39x</span>
754
- <span class="cline-any cline-yes">39x</span>
755
- <span class="cline-any cline-yes">39x</span>
756
- <span class="cline-any cline-yes">39x</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">32x</span>
762
- <span class="cline-any cline-yes">32x</span>
763
- <span class="cline-any cline-yes">32x</span>
764
- <span class="cline-any cline-yes">38x</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-yes">17x</span>
770
- <span class="cline-any cline-yes">17x</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-yes">32x</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">17x</span>
778
- <span class="cline-any cline-yes">17x</span>
779
- <span class="cline-any cline-yes">25x</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-yes">17x</span>
782
- <span class="cline-any cline-yes">5x</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-yes">32x</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-yes">46x</span>
790
- <span class="cline-any cline-yes">19x</span>
791
- <span class="cline-any cline-yes">27x</span>
792
- <span class="cline-any cline-yes">14x</span>
793
- <span class="cline-any cline-yes">1x</span>
794
- <span class="cline-any cline-yes">15x</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-yes">14x</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-yes">13x</span>
800
- <span class="cline-any cline-yes">1x</span>
801
- <span class="cline-any cline-yes">12x</span>
802
- <span class="cline-any cline-yes">1x</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-yes">11x</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-yes">46x</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-yes">46x</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-yes">32x</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-yes">32x</span>
830
- <span class="cline-any cline-yes">32x</span>
831
- <span class="cline-any cline-yes">32x</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-yes">32x</span>
834
- <span class="cline-any cline-yes">46x</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-yes">46x</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-yes">4x</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-yes">4x</span>
846
- <span class="cline-any cline-yes">4x</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-yes">46x</span>
850
- <span class="cline-any cline-yes">34x</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-yes">46x</span>
854
- <span class="cline-any cline-yes">46x</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-yes">32x</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-yes">30x</span>
861
- <span class="cline-any cline-yes">30x</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-yes">32x</span>
872
- <span class="cline-any cline-yes">4x</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-yes">32x</span>
876
- <span class="cline-any cline-yes">46x</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-yes">32x</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-yes">1x</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Injectable } from '@nestjs/common';
911
- import { InjectRepository } from '@nestjs/typeorm';
912
- import { Repository } from 'typeorm';
913
- import { ActionHandler } from './action-handler.interface';
914
- import {
915
- ActionExecutionResult,
916
- PlanExecutionContext,
917
- } from '../llm-orchestration.interfaces';
918
- import { SessionInput, AIAction } from '../../core-entities';
919
- import { HistoryCompressionService } from '../history-compression.service';
920
- import { LlmContent } from '../../llm-provider/llm-provider.interface';
921
- import { toShortId } from '../../utils';
922
- &nbsp;
923
- const PREVIEW_MAX_LENGTH = 120;
924
- &nbsp;
925
- /** Default chars-per-token ratio used when no input_token_count is available. */
926
- export const DEFAULT_CHARS_PER_TOKEN = 4;
927
- &nbsp;
928
- /** Target token count for context after discarding. */
929
- export const CONTEXT_TARGET_TOKENS = 50000;
930
- &nbsp;
931
- /** Minimum token count — never discard below this. */
932
- export const CONTEXT_FLOOR_TOKENS = 30000;
933
- &nbsp;
934
- function truncate(text: string, maxLen: number = PREVIEW_MAX_LENGTH): string {
935
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!text) <span class="cstat-no" title="statement not covered" >return '';</span>
936
- const cleaned = text.replace(/\n/g, ' ').trim();
937
- if (cleaned.length &lt;= maxLen) return cleaned;
938
- return cleaned.slice(0, maxLen - 3) + '...';
939
- }
940
- &nbsp;
941
- function buildActionPreview(action: AIAction): string {
942
- switch (action.action_type) {
943
- case 'create_file':
944
- return `create_file: ${action.file_path || <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>`;
945
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'overwrite_file':</span>
946
- <span class="cstat-no" title="statement not covered" > return `overwrite_file: ${action.file_path || ''}`;</span>
947
- case 'delete_file':
948
- return `delete_file: ${action.file_path || <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>`;
949
- <span class="branch-3 cbranch-no" title="branch not covered" > case 'patch':</span>
950
- <span class="cstat-no" title="statement not covered" > return `patch: ${action.file_path || ''}`;</span>
951
- <span class="branch-4 cbranch-no" title="branch not covered" > case 'quick_edit':</span>
952
- <span class="cstat-no" title="statement not covered" > return `quick_edit: ${action.file_path || ''}`;</span>
953
- <span class="branch-5 cbranch-no" title="branch not covered" > case 'apply_diff':</span>
954
- <span class="cstat-no" title="statement not covered" > return `apply_diff: ${action.file_path || ''}`;</span>
955
- case 'run_command':
956
- return `run_command: ${truncate(action.command_string || <span class="branch-1 cbranch-no" title="branch not covered" >'')</span>}`;
957
- case 'request_context':
958
- return `request_context: ${truncate(action.files || <span class="branch-1 cbranch-no" title="branch not covered" >action.folders </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >'')</span>}`;
959
- case 'execute_code':
960
- return `execute_code: ${truncate(action.command_string || <span class="branch-1 cbranch-no" title="branch not covered" >'')</span>}`;
961
- <span class="branch-9 cbranch-no" title="branch not covered" > case 'invoke_subagent':</span>
962
- <span class="cstat-no" title="statement not covered" > return `invoke_subagent: ${truncate(action.arguments || '')}`;</span>
963
- case 'list_sub_agents':
964
- return 'list_sub_agents';
965
- <span class="branch-11 cbranch-no" title="branch not covered" > case 'new_session':</span>
966
- <span class="cstat-no" title="statement not covered" > return `new_session: ${truncate(action.handover_string || '')}`;</span>
967
- case 'get_session_history':
968
- return 'get_session_history';
969
- case 'generate_title':
970
- return 'generate_title';
971
- <span class="branch-14 cbranch-no" title="branch not covered" > case 'ask_user':</span>
972
- <span class="cstat-no" title="statement not covered" > return `ask_user: ${truncate(action.plain || '')}`;</span>
973
- <span class="branch-15 cbranch-no" title="branch not covered" > case 'write_todo':</span>
974
- <span class="cstat-no" title="statement not covered" > return `write_todo: ${action.file_path || ''}`;</span>
975
- <span class="branch-16 cbranch-no" title="branch not covered" > case 'howto':</span>
976
- <span class="cstat-no" title="statement not covered" > return 'howto';</span>
977
- <span class="branch-17 cbranch-no" title="branch not covered" > case 'get_messages':</span>
978
- <span class="cstat-no" title="statement not covered" > return 'get_messages';</span>
979
- <span class="branch-18 cbranch-no" title="branch not covered" > case 'discard_messages':</span>
980
- <span class="cstat-no" title="statement not covered" > return 'discard_messages';</span>
981
- case 'final':
982
- <span class="missing-if-branch" title="if path not taken" >I</span>if (action.selections) {
983
- <span class="cstat-no" title="statement not covered" > return `final: user selection`;</span>
984
- }
985
- return `final: ${truncate(action.plain || <span class="branch-1 cbranch-no" title="branch not covered" >'')</span>}`;
986
- default:
987
- // Handle MCP tool names with double underscore (serverName__toolName)
988
- if (action.action_type.includes('__')) {
989
- return action.action_type;
990
- }
991
- <span class="cstat-no" title="statement not covered" > return `${action.action_type}: ${truncate(action.file_path || action.command_string || action.plain || '')}`;</span>
992
- }
993
- }
994
- &nbsp;
995
- /**
996
- * Computes the character size of a compressed history turn as it would be
997
- * serialized by LLM providers.
998
- */
999
- export function computeTurnCharSize(turn: LlmContent): number {
1000
- let size = turn.parts.map((p) =&gt; p.text).join('').length;
1001
- if (turn.thoughts) {
1002
- size += turn.thoughts.length;
1003
- }
1004
- if (turn.tool_calls) {
1005
- size += JSON.stringify(turn.tool_calls).length;
1006
- }
1007
- return size;
1008
- }
1009
- &nbsp;
1010
- /**
1011
- * Reconstructs chat history from SessionInputs, mirroring the logic in
1012
- * chat.service.ts:getHistory(). Returns the history and a parallel array
1013
- * mapping each turn index to the index of its source SessionInput.
1014
- */
1015
- export function buildHistory(inputs: SessionInput[]): {
1016
- history: LlmContent[];
1017
- turnToInputIndex: number[];
1018
- } {
1019
- const history: LlmContent[] = [];
1020
- const turnToInputIndex: number[] = [];
1021
- &nbsp;
1022
- for (let inputIdx = 0; inputIdx &lt; inputs.length; inputIdx++) {
1023
- const input = inputs[inputIdx];
1024
- &nbsp;
1025
- if (input.role === 'user' &amp;&amp; input.generated_context_string) {
1026
- history.push({
1027
- role: 'user',
1028
- parts: [{ text: input.generated_context_string }],
1029
- });
1030
- turnToInputIndex.push(inputIdx);
1031
- } else if (input.role === 'model') {
1032
- const content: LlmContent = {
1033
- role: 'model',
1034
- parts: [{ text: input.raw_llm_response || '' }],
1035
- };
1036
- &nbsp;
1037
- if (input.thoughts) {
1038
- content.thoughts = input.thoughts;
1039
- }
1040
- &nbsp;
1041
- if (input.tool_calls) {
1042
- try {
1043
- content.tool_calls = JSON.parse(input.tool_calls);
1044
- } catch (_e) {
1045
- // Skip malformed tool_calls
1046
- }
1047
- }
1048
- &nbsp;
1049
- history.push(content);
1050
- turnToInputIndex.push(inputIdx);
1051
- &nbsp;
1052
- // Add tool result turns for each tool_call
1053
- if (content.tool_calls &amp;&amp; content.tool_calls.length &gt; 0) {
1054
- // Build map of tool_call_id -&gt; action for O(1) lookup
1055
- const actionsByToolCallId = new Map&lt;string, AIAction&gt;();
1056
- if (input.aiActions) {
1057
- for (const action of input.aiActions) {
1058
- if (action.tool_call_id) {
1059
- actionsByToolCallId.set(action.tool_call_id, action);
1060
- }
1061
- }
1062
- }
1063
- &nbsp;
1064
- for (const toolCall of content.tool_calls) {
1065
- const action = actionsByToolCallId.get(toolCall.id);
1066
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!action) <span class="cstat-no" title="statement not covered" >continue;</span>
1067
- &nbsp;
1068
- const output = action.executionLogs?.[0]?.output || <span class="branch-1 cbranch-no" title="branch not covered" >'';</span>
1069
- const errorMessage = action.executionLogs?.[0]?.error_message || '';
1070
- &nbsp;
1071
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!output &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!errorMessage)</span> <span class="cstat-no" title="statement not covered" >continue;</span>
1072
- &nbsp;
1073
- let toolResult: string;
1074
- if (output &amp;&amp; errorMessage) {
1075
- toolResult = `${output}\n\nError: ${errorMessage}`;
1076
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (errorMessage) {
1077
- <span class="cstat-no" title="statement not covered" > toolResult = `Error: ${errorMessage}`;</span>
1078
- } else {
1079
- toolResult = output;
1080
- }
1081
- &nbsp;
1082
- history.push({
1083
- role: 'tool',
1084
- tool_call_id: toolCall.id,
1085
- tool_name: action.action_type,
1086
- parts: [{ text: toolResult }],
1087
- });
1088
- turnToInputIndex.push(inputIdx);
1089
- }
1090
- }
1091
- }
1092
- }
1093
- &nbsp;
1094
- return { history, turnToInputIndex };
1095
- }
1096
- &nbsp;
1097
- @Injectable()
1098
- export class GetMessagesHandler implements ActionHandler {
1099
- readonly toolName = 'get_messages';
1100
- &nbsp;
1101
- constructor(
1102
- @InjectRepository(SessionInput)
1103
- private readonly sessionInputsRepository: Repository&lt;SessionInput&gt;,
1104
- private readonly historyCompressionService: HistoryCompressionService,
1105
- ) {}
1106
- &nbsp;
1107
- getMetadata() {
1108
- return {
1109
- name: this.toolName,
1110
- description:
1111
- 'Get a summary of non-discarded messages in the current session, grouped by topic. Returns groups with labels, message counts, estimated tokens, and per-message details. Use this to identify completed work to discard from context.',
1112
- arguments: [],
1113
- };
1114
- }
1115
- &nbsp;
1116
- getDefinition(): string {
1117
- return `## get_messages
1118
- &nbsp;
1119
- Get a summary of non-discarded messages in the current session, organized into logical groups. Returns groups with topic labels, message counts, estimated tokens, and individual message details. Use this to identify messages to discard from the LLM context window.
1120
- &nbsp;
1121
- ### Parameters:
1122
- No parameters required. Uses the current session context.
1123
- &nbsp;
1124
- ### Returns:
1125
- JSON object with:
1126
- - \`total_est_tokens\`: Sum of all estimated token counts across all messages
1127
- - \`target_tokens\`: Target token count after discarding (${CONTEXT_TARGET_TOKENS}). Discard until near this value.
1128
- - \`floor_tokens\`: Minimum token count (${CONTEXT_FLOOR_TOKENS}). **Never discard below this value.**
1129
- - \`groups\`: Array of logical groups, each with:
1130
- - \`label\`: Topic label derived from the first user message in the group (e.g., "Fix auth bug", "Explore database schema")
1131
- - \`label_suffix\`: " (ongoing)" for the most recent group, empty otherwise
1132
- - \`message_count\`: Number of messages in this group
1133
- - \`est_tokens\`: Total estimated tokens for this group
1134
- - \`messages\`: Array of message summaries, each with:
1135
- - \`short_id\`: Compact ID (first 3 + last 2 chars of UUID, e.g. "a1b90") — use this with \`discard_messages\`
1136
- - \`role\`: "user" or "model"
1137
- - \`preview\`: brief description (user prompt text or tool name + args)
1138
- - \`est_tokens\`: estimated token count for this message
1139
- &nbsp;
1140
- ### Token Estimation:
1141
- Token counts are estimated by:
1142
- 1. Reconstructing chat history from session inputs (same format sent to LLM)
1143
- 2. Applying history compression (redacting older file contents)
1144
- 3. Computing \`char_size\` from compressed history for each message
1145
- 4. Deriving a \`char/token ratio\` from the last model input with a known \`input_token_count\` (cumulative tokens)
1146
- 5. Using a fallback ratio of 4 chars/token if no token count is available
1147
- 6. \`est_tokens = round(char_size / ratio)\`
1148
- &nbsp;
1149
- ### Example:
1150
- \`\`\`typescript
1151
- tool: get_messages
1152
- args: {}
1153
- \`\`\``;
1154
- }
1155
- &nbsp;
1156
- async execute(
1157
- _args: Record&lt;string, any&gt;,
1158
- context: PlanExecutionContext,
1159
- ): Promise&lt;ActionExecutionResult&gt; {
1160
- try {
1161
- const inputs = await this.sessionInputsRepository.find({
1162
- where: { session: { id: context.session_id }, is_discarded: false },
1163
- relations: ['aiActions', 'aiActions.executionLogs'],
1164
- order: { sequence_number: 'ASC' },
1165
- });
1166
- &nbsp;
1167
- // Build history and compress it (same as what the LLM actually receives)
1168
- const { history, turnToInputIndex } = buildHistory(inputs);
1169
- const compressedHistory =
1170
- await this.historyCompressionService.compress(history);
1171
- &nbsp;
1172
- // Compute compressed char_size per SessionInput
1173
- const compressedCharSizes = new Array&lt;number&gt;(inputs.length).fill(0);
1174
- for (let i = 0; i &lt; compressedHistory.length; i++) {
1175
- const turnCharSize = computeTurnCharSize(compressedHistory[i]);
1176
- const inputIdx = turnToInputIndex[i];
1177
- if (inputIdx &gt;= 0 &amp;&amp; inputIdx &lt; inputs.length) {
1178
- compressedCharSizes[inputIdx] += turnCharSize;
1179
- }
1180
- }
1181
- &nbsp;
1182
- // Derive char/token ratio from last model input with input_token_count
1183
- let ratio = DEFAULT_CHARS_PER_TOKEN;
1184
- let ratioInputIndex = -1;
1185
- for (let i = inputs.length - 1; i &gt;= 0; i--) {
1186
- if (
1187
- inputs[i].role === 'model' &amp;&amp;
1188
- inputs[i].input_token_count != null &amp;&amp;
1189
- inputs[i].input_token_count &gt; 0
1190
- ) {
1191
- ratioInputIndex = i;
1192
- break;
1193
- }
1194
- }
1195
- &nbsp;
1196
- if (ratioInputIndex &gt;= 0) {
1197
- // input_token_count is cumulative (total tokens of entire conversation)
1198
- // Sum all compressed char_sizes up to and including that input
1199
- let cumulativeChars = 0;
1200
- for (let i = 0; i &lt;= ratioInputIndex; i++) {
1201
- cumulativeChars += compressedCharSizes[i];
1202
- }
1203
- if (cumulativeChars &gt; 0) {
1204
- ratio = cumulativeChars / inputs[ratioInputIndex].input_token_count!;
1205
- }
1206
- }
1207
- &nbsp;
1208
- const summaries = inputs.map((input, index) =&gt; {
1209
- let preview: string;
1210
- &nbsp;
1211
- if (input.role === 'user') {
1212
- preview = truncate(input.user_prompt || <span class="branch-1 cbranch-no" title="branch not covered" >'')</span>;
1213
- } else if (input.aiActions &amp;&amp; input.aiActions.length &gt; 0) {
1214
- preview = input.aiActions
1215
- .sort((a, b) =&gt; a.order_of_execution - b.order_of_execution)
1216
- .map((a) =&gt; buildActionPreview(a))
1217
- .join(', ');
1218
- <span class="missing-if-branch" title="if path not taken" >I</span>if (preview.length &gt; PREVIEW_MAX_LENGTH) {
1219
- <span class="cstat-no" title="statement not covered" > preview = preview.slice(0, PREVIEW_MAX_LENGTH - 3) + '...';</span>
1220
- }
1221
- } else if (input.error_message) {
1222
- preview = `error: ${truncate(input.error_message)}`;
1223
- } else if (input.llm_response_explanation) {
1224
- preview = truncate(input.llm_response_explanation);
1225
- } else {
1226
- preview = '(empty response)';
1227
- }
1228
- &nbsp;
1229
- const estTokens =
1230
- compressedCharSizes[index] &gt; 0
1231
- ? Math.round(compressedCharSizes[index] / ratio)
1232
- : 0;
1233
- &nbsp;
1234
- return {
1235
- short_id: toShortId(input.id),
1236
- role: input.role || <span class="branch-1 cbranch-no" title="branch not covered" >'user',</span>
1237
- preview,
1238
- est_tokens: estTokens,
1239
- };
1240
- });
1241
- &nbsp;
1242
- // Group messages by topic (user message starts a new group)
1243
- const groups: Array&lt;{
1244
- label: string;
1245
- label_suffix: string;
1246
- message_count: number;
1247
- est_tokens: number;
1248
- messages: typeof summaries;
1249
- }&gt; = [];
1250
- &nbsp;
1251
- let currentGroup: (typeof summaries)[number][] = [];
1252
- let currentLabel = '';
1253
- let currentGroupTokens = 0;
1254
- &nbsp;
1255
- for (let i = 0; i &lt; summaries.length; i++) {
1256
- const summary = summaries[i];
1257
- &nbsp;
1258
- if (summary.role === 'user' &amp;&amp; currentGroup.length &gt; 0) {
1259
- // Close current group
1260
- groups.push({
1261
- label: currentLabel,
1262
- label_suffix: '',
1263
- message_count: currentGroup.length,
1264
- est_tokens: currentGroupTokens,
1265
- messages: currentGroup,
1266
- });
1267
- currentGroup = [];
1268
- currentGroupTokens = 0;
1269
- }
1270
- &nbsp;
1271
- if (summary.role === 'user' || currentGroup.length === 0) {
1272
- currentLabel = summary.preview || <span class="branch-1 cbranch-no" title="branch not covered" >'User message';</span>
1273
- }
1274
- &nbsp;
1275
- currentGroup.push(summary);
1276
- currentGroupTokens += summary.est_tokens;
1277
- }
1278
- &nbsp;
1279
- // Push last group
1280
- if (currentGroup.length &gt; 0) {
1281
- // Mark the most recent group as ongoing
1282
- const isOngoing = true; // last group is always the current one
1283
- groups.push({
1284
- label: currentLabel,
1285
- label_suffix: isOngoing ? ' (ongoing)' : <span class="branch-1 cbranch-no" title="branch not covered" >'',</span>
1286
- message_count: currentGroup.length,
1287
- est_tokens: currentGroupTokens,
1288
- messages: currentGroup,
1289
- });
1290
- }
1291
- &nbsp;
1292
- // For all but the last group, label_suffix is empty
1293
- for (let i = 0; i &lt; groups.length - 1; i++) {
1294
- groups[i].label_suffix = '';
1295
- }
1296
- &nbsp;
1297
- const totalEstTokens = summaries.reduce(
1298
- (sum, s) =&gt; sum + s.est_tokens,
1299
- 0,
1300
- );
1301
- &nbsp;
1302
- return {
1303
- status: 'SUCCESS',
1304
- summary: `${summaries.length} messages in ${groups.length} groups, ~${totalEstTokens} est tokens`,
1305
- execution_log: {
1306
- output: JSON.stringify(
1307
- {
1308
- total_est_tokens: totalEstTokens,
1309
- target_tokens: CONTEXT_TARGET_TOKENS,
1310
- floor_tokens: CONTEXT_FLOOR_TOKENS,
1311
- groups,
1312
- },
1313
- null,
1314
- 2,
1315
- ),
1316
- },
1317
- persisted_args: {},
1318
- };
1319
- } catch (error) {
1320
- return {
1321
- status: 'FAILURE',
1322
- summary: 'Failed to get messages',
1323
- error_message: error.message,
1324
- execution_log: {
1325
- output: '',
1326
- error_message: error.message,
1327
- },
1328
- };
1329
- }
1330
- }
1331
- }
1332
- &nbsp;</pre></td></tr></table></pre>
1333
-
1334
- <div class='push'></div><!-- for sticky footer -->
1335
- </div><!-- /wrapper -->
1336
- <div class='footer quiet pad2 space-top1 center small'>
1337
- Code coverage generated by
1338
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1339
- at 2026-05-09T01:03:45.353Z
1340
- </div>
1341
- <script src="../../../prettify.js"></script>
1342
- <script>
1343
- window.onload = function () {
1344
- prettyPrint();
1345
- };
1346
- </script>
1347
- <script src="../../../sorter.js"></script>
1348
- <script src="../../../block-navigation.js"></script>
1349
- </body>
1350
- </html>
1351
-