repoburg 1.3.128 → 1.3.129

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 (435) hide show
  1. package/backend/coverage/clover.xml +12003 -0
  2. package/backend/coverage/coverage-final.json +313 -0
  3. package/backend/coverage/lcov-report/base.css +224 -0
  4. package/backend/coverage/lcov-report/block-navigation.js +87 -0
  5. package/backend/coverage/lcov-report/favicon.png +0 -0
  6. package/backend/coverage/lcov-report/index.html +1301 -0
  7. package/backend/coverage/lcov-report/packages/gemini-core/examples/index.html +116 -0
  8. package/backend/coverage/lcov-report/packages/gemini-core/examples/simple.ts.html +445 -0
  9. package/backend/coverage/lcov-report/packages/gemini-core/index.html +116 -0
  10. package/backend/coverage/lcov-report/packages/gemini-core/index.ts.html +127 -0
  11. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/codeAssist.ts.html +193 -0
  12. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/converter.ts.html +832 -0
  13. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/index.html +206 -0
  14. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/oauth-credential-storage.ts.html +469 -0
  15. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/oauth2.ts.html +1705 -0
  16. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/server.ts.html +790 -0
  17. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/setup.ts.html +454 -0
  18. package/backend/coverage/lcov-report/packages/gemini-core/src/code_assist/types.ts.html +685 -0
  19. package/backend/coverage/lcov-report/packages/gemini-core/src/config/config.ts.html +307 -0
  20. package/backend/coverage/lcov-report/packages/gemini-core/src/config/index.html +146 -0
  21. package/backend/coverage/lcov-report/packages/gemini-core/src/config/models.ts.html +151 -0
  22. package/backend/coverage/lcov-report/packages/gemini-core/src/config/storage.ts.html +172 -0
  23. package/backend/coverage/lcov-report/packages/gemini-core/src/core/contentGenerator.ts.html +490 -0
  24. package/backend/coverage/lcov-report/packages/gemini-core/src/core/geminiChat.ts.html +1237 -0
  25. package/backend/coverage/lcov-report/packages/gemini-core/src/core/geminiRequest.ts.html +139 -0
  26. package/backend/coverage/lcov-report/packages/gemini-core/src/core/index.html +176 -0
  27. package/backend/coverage/lcov-report/packages/gemini-core/src/core/prompts.ts.html +409 -0
  28. package/backend/coverage/lcov-report/packages/gemini-core/src/core/tokenLimits.ts.html +181 -0
  29. package/backend/coverage/lcov-report/packages/gemini-core/src/index.html +116 -0
  30. package/backend/coverage/lcov-report/packages/gemini-core/src/index.ts.html +187 -0
  31. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/base-token-storage.ts.html +229 -0
  32. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/file-token-storage.ts.html +634 -0
  33. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.ts.html +373 -0
  34. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/index.html +191 -0
  35. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/index.ts.html +124 -0
  36. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.ts.html +835 -0
  37. package/backend/coverage/lcov-report/packages/gemini-core/src/mcp/token-storage/types.ts.html +211 -0
  38. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/errors.ts.html +421 -0
  39. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/index.html +191 -0
  40. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/partUtils.ts.html +592 -0
  41. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/quotaErrorDetection.ts.html +388 -0
  42. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/retry.ts.html +877 -0
  43. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/session.ts.html +112 -0
  44. package/backend/coverage/lcov-report/packages/gemini-core/src/utils/userAccountManager.ts.html +502 -0
  45. package/backend/coverage/lcov-report/packages/tokenpatch/index.html +161 -0
  46. package/backend/coverage/lcov-report/packages/tokenpatch/index.ts.html +415 -0
  47. package/backend/coverage/lcov-report/packages/tokenpatch/parser.ts.html +139 -0
  48. package/backend/coverage/lcov-report/packages/tokenpatch/patcher.ts.html +1249 -0
  49. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/index.html +131 -0
  50. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/tiktoken-tokenizer.ts.html +187 -0
  51. package/backend/coverage/lcov-report/packages/tokenpatch/strategies/tree-sitter-tokenizer.ts.html +193 -0
  52. package/backend/coverage/lcov-report/packages/tokenpatch/tokens.ts.html +178 -0
  53. package/backend/coverage/lcov-report/prettify.css +1 -0
  54. package/backend/coverage/lcov-report/prettify.js +2 -0
  55. package/backend/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  56. package/backend/coverage/lcov-report/sorter.js +210 -0
  57. package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +1549 -0
  58. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +904 -0
  59. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +175 -0
  60. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +1534 -0
  61. package/backend/coverage/lcov-report/src/ai-actions/index.html +161 -0
  62. package/backend/coverage/lcov-report/src/app.controller.ts.html +151 -0
  63. package/backend/coverage/lcov-report/src/app.module.ts.html +451 -0
  64. package/backend/coverage/lcov-report/src/app.service.ts.html +163 -0
  65. package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +1609 -0
  66. package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +136 -0
  67. package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +2281 -0
  68. package/backend/coverage/lcov-report/src/application-state/dto/index.html +416 -0
  69. package/backend/coverage/lcov-report/src/application-state/dto/set-alibaba-config.dto.ts.html +109 -0
  70. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +118 -0
  71. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.ts.html +109 -0
  72. package/backend/coverage/lcov-report/src/application-state/dto/set-context-token-limit.dto.ts.html +124 -0
  73. package/backend/coverage/lcov-report/src/application-state/dto/set-execution-strategy.dto.ts.html +121 -0
  74. package/backend/coverage/lcov-report/src/application-state/dto/set-followup-token-limit.dto.ts.html +124 -0
  75. package/backend/coverage/lcov-report/src/application-state/dto/set-history-compression-enabled.dto.ts.html +115 -0
  76. package/backend/coverage/lcov-report/src/application-state/dto/set-llm-retry-enabled.dto.ts.html +115 -0
  77. package/backend/coverage/lcov-report/src/application-state/dto/set-llm-retry-max-attempts.dto.ts.html +127 -0
  78. package/backend/coverage/lcov-report/src/application-state/dto/set-manual-llm-enabled.dto.ts.html +118 -0
  79. package/backend/coverage/lcov-report/src/application-state/dto/set-ollama-config.dto.ts.html +109 -0
  80. package/backend/coverage/lcov-report/src/application-state/dto/set-openai-config.dto.ts.html +139 -0
  81. package/backend/coverage/lcov-report/src/application-state/dto/set-openrouter-config.dto.ts.html +109 -0
  82. package/backend/coverage/lcov-report/src/application-state/dto/set-streaming-enabled.dto.ts.html +109 -0
  83. package/backend/coverage/lcov-report/src/application-state/dto/set-syntax-validation-enabled.dto.ts.html +118 -0
  84. package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +124 -0
  85. package/backend/coverage/lcov-report/src/application-state/dto/set-tools-enabled.dto.ts.html +118 -0
  86. package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +109 -0
  87. package/backend/coverage/lcov-report/src/application-state/dto/set-yolo-mode-message.dto.ts.html +124 -0
  88. package/backend/coverage/lcov-report/src/application-state/dto/set-yolo-mode.dto.ts.html +118 -0
  89. package/backend/coverage/lcov-report/src/application-state/dto/set-zai-config.dto.ts.html +109 -0
  90. package/backend/coverage/lcov-report/src/application-state/index.html +146 -0
  91. package/backend/coverage/lcov-report/src/common/cache/cache-invalidation.service.ts.html +1297 -0
  92. package/backend/coverage/lcov-report/src/common/cache/cache-invalidation.subscriber.ts.html +712 -0
  93. package/backend/coverage/lcov-report/src/common/cache/etag-cache.service.ts.html +379 -0
  94. package/backend/coverage/lcov-report/src/common/cache/index.html +146 -0
  95. package/backend/coverage/lcov-report/src/common/common.module.ts.html +121 -0
  96. package/backend/coverage/lcov-report/src/common/index.html +116 -0
  97. package/backend/coverage/lcov-report/src/common/interceptors/etag-cache.interceptor.ts.html +337 -0
  98. package/backend/coverage/lcov-report/src/common/interceptors/index.html +116 -0
  99. package/backend/coverage/lcov-report/src/common/middleware/cache.middleware.ts.html +265 -0
  100. package/backend/coverage/lcov-report/src/common/middleware/index.html +116 -0
  101. package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +118 -0
  102. package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +1501 -0
  103. package/backend/coverage/lcov-report/src/context-generation/index.html +131 -0
  104. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +427 -0
  105. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +142 -0
  106. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +442 -0
  107. package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +211 -0
  108. package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +116 -0
  109. package/backend/coverage/lcov-report/src/context-snippets/index.html +146 -0
  110. package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +724 -0
  111. package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +142 -0
  112. package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +1015 -0
  113. package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +511 -0
  114. package/backend/coverage/lcov-report/src/context-templates/dto/index.html +116 -0
  115. package/backend/coverage/lcov-report/src/context-templates/index.html +146 -0
  116. package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +613 -0
  117. package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +124 -0
  118. package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +211 -0
  119. package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +190 -0
  120. package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +439 -0
  121. package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +205 -0
  122. package/backend/coverage/lcov-report/src/core-entities/custom-variable.entity.ts.html +241 -0
  123. package/backend/coverage/lcov-report/src/core-entities/enums.ts.html +553 -0
  124. package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +208 -0
  125. package/backend/coverage/lcov-report/src/core-entities/index.html +371 -0
  126. package/backend/coverage/lcov-report/src/core-entities/index.ts.html +136 -0
  127. package/backend/coverage/lcov-report/src/core-entities/llm-call-log.entity.ts.html +388 -0
  128. package/backend/coverage/lcov-report/src/core-entities/mcp-config.entity.ts.html +256 -0
  129. package/backend/coverage/lcov-report/src/core-entities/mcp-tool.entity.ts.html +256 -0
  130. package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +181 -0
  131. package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +745 -0
  132. package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +688 -0
  133. package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +349 -0
  134. package/backend/coverage/lcov-report/src/core-entities/tool-hook.entity.ts.html +235 -0
  135. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +442 -0
  136. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +124 -0
  137. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +304 -0
  138. package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +205 -0
  139. package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +116 -0
  140. package/backend/coverage/lcov-report/src/custom-snippets/index.html +146 -0
  141. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.controller.ts.html +463 -0
  142. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.module.ts.html +124 -0
  143. package/backend/coverage/lcov-report/src/custom-variables/custom-variables.service.ts.html +310 -0
  144. package/backend/coverage/lcov-report/src/custom-variables/dto/custom-variable.dto.ts.html +244 -0
  145. package/backend/coverage/lcov-report/src/custom-variables/dto/index.html +116 -0
  146. package/backend/coverage/lcov-report/src/custom-variables/index.html +146 -0
  147. package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +295 -0
  148. package/backend/coverage/lcov-report/src/events/events.module.ts.html +109 -0
  149. package/backend/coverage/lcov-report/src/events/index.html +146 -0
  150. package/backend/coverage/lcov-report/src/events/websocket.events.ts.html +466 -0
  151. package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +130 -0
  152. package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +116 -0
  153. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +130 -0
  154. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +124 -0
  155. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +238 -0
  156. package/backend/coverage/lcov-report/src/execution-logs/index.html +146 -0
  157. package/backend/coverage/lcov-report/src/gemini/gemini-llm.provider.ts.html +553 -0
  158. package/backend/coverage/lcov-report/src/gemini/gemini.module.ts.html +109 -0
  159. package/backend/coverage/lcov-report/src/gemini/index.html +131 -0
  160. package/backend/coverage/lcov-report/src/global-config/dto/index.html +116 -0
  161. package/backend/coverage/lcov-report/src/global-config/dto/update-global-config.dto.ts.html +367 -0
  162. package/backend/coverage/lcov-report/src/global-config/global-config.controller.ts.html +220 -0
  163. package/backend/coverage/lcov-report/src/global-config/global-config.module.ts.html +115 -0
  164. package/backend/coverage/lcov-report/src/global-config/global-config.service.ts.html +397 -0
  165. package/backend/coverage/lcov-report/src/global-config/index.html +146 -0
  166. package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +340 -0
  167. package/backend/coverage/lcov-report/src/index.html +206 -0
  168. package/backend/coverage/lcov-report/src/interactive-chat/chat.module.ts.html +187 -0
  169. package/backend/coverage/lcov-report/src/interactive-chat/chat.service.ts.html +1825 -0
  170. package/backend/coverage/lcov-report/src/interactive-chat/index.html +146 -0
  171. package/backend/coverage/lcov-report/src/interactive-chat/streaming.controller.ts.html +343 -0
  172. package/backend/coverage/lcov-report/src/llm-call-logs/dto/index.html +116 -0
  173. package/backend/coverage/lcov-report/src/llm-call-logs/dto/llm-call-log.dto.ts.html +214 -0
  174. package/backend/coverage/lcov-report/src/llm-call-logs/index.html +146 -0
  175. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.controller.ts.html +634 -0
  176. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.module.ts.html +124 -0
  177. package/backend/coverage/lcov-report/src/llm-call-logs/llm-call-logs.service.ts.html +643 -0
  178. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/apply-diff.handler.ts.html +1090 -0
  179. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/ask-user.handler.ts.html +433 -0
  180. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/create-file.handler.ts.html +757 -0
  181. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/delete-file.handler.ts.html +586 -0
  182. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/discard-messages.handler.ts.html +1153 -0
  183. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/apply-diff.args.dto.ts.html +124 -0
  184. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/ask-user.args.dto.ts.html +103 -0
  185. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/create-file.args.dto.ts.html +124 -0
  186. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/delete-file.args.dto.ts.html +106 -0
  187. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/execute-code.args.dto.ts.html +106 -0
  188. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/final.args.dto.ts.html +118 -0
  189. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/generate-title.args.dto.ts.html +190 -0
  190. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/get-session-history.args.dto.ts.html +196 -0
  191. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/howto.args.dto.ts.html +91 -0
  192. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/index.html +356 -0
  193. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/new-session.args.dto.ts.html +106 -0
  194. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/overwrite-file.args.dto.ts.html +124 -0
  195. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/patch.args.dto.ts.html +124 -0
  196. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/quick-edit.args.dto.ts.html +214 -0
  197. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/request-context.args.dto.ts.html +202 -0
  198. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/run-command.args.dto.ts.html +151 -0
  199. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/sanitizer.decorator.ts.html +181 -0
  200. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/dto/write-todo.args.dto.ts.html +130 -0
  201. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/execute-code.handler.ts.html +631 -0
  202. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/final.handler.ts.html +469 -0
  203. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/generate-title.handler.ts.html +448 -0
  204. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/get-messages.handler.ts.html +1351 -0
  205. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/get-session-history.handler.ts.html +868 -0
  206. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/howto.handler.ts.html +481 -0
  207. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/index.html +416 -0
  208. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/invoke-subagent.handler.ts.html +580 -0
  209. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/list-sub-agents.handler.ts.html +352 -0
  210. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/context-aware.matcher.ts.html +1054 -0
  211. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/exact.matcher.ts.html +331 -0
  212. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/hybrid.matcher.ts.html +403 -0
  213. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/index.html +176 -0
  214. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/index.ts.html +100 -0
  215. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/matchers/normalized.matcher.ts.html +724 -0
  216. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/mcp-tool-action.handler.ts.html +358 -0
  217. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/new-session.handler.ts.html +379 -0
  218. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/overwrite-file.handler.ts.html +838 -0
  219. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/patch.handler.ts.html +1702 -0
  220. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/quick-edit.handler.ts.html +1459 -0
  221. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/request-context.handler.ts.html +679 -0
  222. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/run-command.handler.ts.html +964 -0
  223. package/backend/coverage/lcov-report/src/llm-orchestration/action-handlers/write-todo.handler.ts.html +625 -0
  224. package/backend/coverage/lcov-report/src/llm-orchestration/errors/handler-validation.error.ts.html +103 -0
  225. package/backend/coverage/lcov-report/src/llm-orchestration/errors/index.html +116 -0
  226. package/backend/coverage/lcov-report/src/llm-orchestration/history-compression.service.ts.html +1645 -0
  227. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/follow-up-post-execution.hook.ts.html +238 -0
  228. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/frontend-notification.hook.ts.html +181 -0
  229. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/index.html +161 -0
  230. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/invalid-tool-feedback.hook.ts.html +313 -0
  231. package/backend/coverage/lcov-report/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.ts.html +466 -0
  232. package/backend/coverage/lcov-report/src/llm-orchestration/index.html +176 -0
  233. package/backend/coverage/lcov-report/src/llm-orchestration/llm-orchestration.interfaces.ts.html +319 -0
  234. package/backend/coverage/lcov-report/src/llm-orchestration/llm-orchestration.module.ts.html +706 -0
  235. package/backend/coverage/lcov-report/src/llm-orchestration/llm-turn-processor.service.ts.html +1150 -0
  236. package/backend/coverage/lcov-report/src/llm-orchestration/parser/index.html +131 -0
  237. package/backend/coverage/lcov-report/src/llm-orchestration/parser/llm-output-parser.service.ts.html +658 -0
  238. package/backend/coverage/lcov-report/src/llm-orchestration/parser/parsing.constants.ts.html +127 -0
  239. package/backend/coverage/lcov-report/src/llm-orchestration/tool-schema.service.ts.html +547 -0
  240. package/backend/coverage/lcov-report/src/llm-provider/alibaba-llm.provider.ts.html +1681 -0
  241. package/backend/coverage/lcov-report/src/llm-provider/index.html +236 -0
  242. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.controller.ts.html +187 -0
  243. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.interface.ts.html +361 -0
  244. package/backend/coverage/lcov-report/src/llm-provider/llm-provider.module.ts.html +175 -0
  245. package/backend/coverage/lcov-report/src/llm-provider/ollama-llm.provider.ts.html +1780 -0
  246. package/backend/coverage/lcov-report/src/llm-provider/openai-llm.provider.ts.html +1867 -0
  247. package/backend/coverage/lcov-report/src/llm-provider/openrouter-llm.provider.ts.html +1891 -0
  248. package/backend/coverage/lcov-report/src/llm-provider/proxy-llm.provider.ts.html +304 -0
  249. package/backend/coverage/lcov-report/src/llm-provider/zai-llm.provider.ts.html +1666 -0
  250. package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +131 -0
  251. package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +436 -0
  252. package/backend/coverage/lcov-report/src/llm-responses/dto/sync-conversation.dto.ts.html +319 -0
  253. package/backend/coverage/lcov-report/src/llm-responses/index.html +146 -0
  254. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +283 -0
  255. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +184 -0
  256. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +1474 -0
  257. package/backend/coverage/lcov-report/src/main.ts.html +463 -0
  258. package/backend/coverage/lcov-report/src/mcp/dto/batch-update-mcp-tools.dto.ts.html +145 -0
  259. package/backend/coverage/lcov-report/src/mcp/dto/create-mcp-config.dto.ts.html +127 -0
  260. package/backend/coverage/lcov-report/src/mcp/dto/index.html +146 -0
  261. package/backend/coverage/lcov-report/src/mcp/dto/update-mcp-config.dto.ts.html +112 -0
  262. package/backend/coverage/lcov-report/src/mcp/index.html +146 -0
  263. package/backend/coverage/lcov-report/src/mcp/mcp.controller.ts.html +340 -0
  264. package/backend/coverage/lcov-report/src/mcp/mcp.module.ts.html +124 -0
  265. package/backend/coverage/lcov-report/src/mcp/mcp.service.ts.html +1345 -0
  266. package/backend/coverage/lcov-report/src/message-bus/dto/index.html +116 -0
  267. package/backend/coverage/lcov-report/src/message-bus/dto/submit-message.dto.ts.html +109 -0
  268. package/backend/coverage/lcov-report/src/message-bus/index.html +146 -0
  269. package/backend/coverage/lcov-report/src/message-bus/message-bus.controller.ts.html +148 -0
  270. package/backend/coverage/lcov-report/src/message-bus/message-bus.module.ts.html +115 -0
  271. package/backend/coverage/lcov-report/src/message-bus/message-bus.service.ts.html +151 -0
  272. package/backend/coverage/lcov-report/src/projects/dto/index.html +116 -0
  273. package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +196 -0
  274. package/backend/coverage/lcov-report/src/projects/index.html +146 -0
  275. package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +322 -0
  276. package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +124 -0
  277. package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +235 -0
  278. package/backend/coverage/lcov-report/src/seeding/context-snippet-seeding.service.ts.html +280 -0
  279. package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +439 -0
  280. package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +271 -0
  281. package/backend/coverage/lcov-report/src/seeding/custom-variable-seeding.service.ts.html +271 -0
  282. package/backend/coverage/lcov-report/src/seeding/data/context-snippets/compress.ts.html +172 -0
  283. package/backend/coverage/lcov-report/src/seeding/data/context-snippets/index.html +116 -0
  284. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +157 -0
  285. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +148 -0
  286. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +151 -0
  287. package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +161 -0
  288. package/backend/coverage/lcov-report/src/seeding/data/context-templates/open-pr-command.ts.html +247 -0
  289. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +94 -0
  290. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-for.ts.html +100 -0
  291. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-if.ts.html +97 -0
  292. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/eta-ifelse.ts.html +100 -0
  293. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/everest-playwright-auth.ts.html +304 -0
  294. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +94 -0
  295. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +341 -0
  296. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/it-mcp.ts.html +100 -0
  297. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/it-tools.ts.html +97 -0
  298. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +94 -0
  299. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +94 -0
  300. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +94 -0
  301. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +94 -0
  302. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +94 -0
  303. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +100 -0
  304. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-cmd-output-incl.ts.html +94 -0
  305. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +94 -0
  306. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/default-auto-execute-code.ts.html +94 -0
  307. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/default-plan-mode.ts.html +97 -0
  308. package/backend/coverage/lcov-report/src/seeding/data/custom-variables/index.html +131 -0
  309. package/backend/coverage/lcov-report/src/seeding/data/mcp-configs/default-configs.ts.html +121 -0
  310. package/backend/coverage/lcov-report/src/seeding/data/mcp-configs/index.html +116 -0
  311. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/browser-use.ts.html +115 -0
  312. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/explore-codebase.ts.html +136 -0
  313. package/backend/coverage/lcov-report/src/seeding/data/sub-agents/index.html +131 -0
  314. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/browser-use-agent.ts.html +190 -0
  315. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_native_tool_agent.ts.html +421 -0
  316. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/explore-codebase-agent.ts.html +265 -0
  317. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +161 -0
  318. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/master-agent.ts.html +388 -0
  319. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/eslint-hook.ts.html +265 -0
  320. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/example-hook.ts.html +274 -0
  321. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/index.html +146 -0
  322. package/backend/coverage/lcov-report/src/seeding/data/tool-hooks/readme.ts.html +250 -0
  323. package/backend/coverage/lcov-report/src/seeding/index.html +236 -0
  324. package/backend/coverage/lcov-report/src/seeding/mcp-config-seeding.service.ts.html +193 -0
  325. package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +211 -0
  326. package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +187 -0
  327. package/backend/coverage/lcov-report/src/seeding/sub-agent-seeding.service.ts.html +742 -0
  328. package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +397 -0
  329. package/backend/coverage/lcov-report/src/session-followup/index.html +131 -0
  330. package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +130 -0
  331. package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +718 -0
  332. package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +116 -0
  333. package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +577 -0
  334. package/backend/coverage/lcov-report/src/session-inputs/index.html +176 -0
  335. package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +832 -0
  336. package/backend/coverage/lcov-report/src/session-inputs/session-input.subscriber.ts.html +220 -0
  337. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +685 -0
  338. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +229 -0
  339. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +1981 -0
  340. package/backend/coverage/lcov-report/src/session-transfer/index.html +131 -0
  341. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +160 -0
  342. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +883 -0
  343. package/backend/coverage/lcov-report/src/sessions/dto/index.html +116 -0
  344. package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +769 -0
  345. package/backend/coverage/lcov-report/src/sessions/index.html +146 -0
  346. package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +1306 -0
  347. package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +220 -0
  348. package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +2797 -0
  349. package/backend/coverage/lcov-report/src/sub-agents/dto/create-sub-agent.dto.ts.html +355 -0
  350. package/backend/coverage/lcov-report/src/sub-agents/dto/index.html +131 -0
  351. package/backend/coverage/lcov-report/src/sub-agents/dto/update-sub-agent.dto.ts.html +295 -0
  352. package/backend/coverage/lcov-report/src/sub-agents/index.html +221 -0
  353. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-run.entity.ts.html +463 -0
  354. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runner.service.ts.html +2428 -0
  355. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runs.controller.ts.html +580 -0
  356. package/backend/coverage/lcov-report/src/sub-agents/sub-agent-runs.service.ts.html +550 -0
  357. package/backend/coverage/lcov-report/src/sub-agents/sub-agent.entity.ts.html +475 -0
  358. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.controller.ts.html +373 -0
  359. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.module.ts.html +205 -0
  360. package/backend/coverage/lcov-report/src/sub-agents/sub-agents.service.ts.html +619 -0
  361. package/backend/coverage/lcov-report/src/syntax-validation/index.html +131 -0
  362. package/backend/coverage/lcov-report/src/syntax-validation/syntax-validation.module.ts.html +109 -0
  363. package/backend/coverage/lcov-report/src/syntax-validation/syntax-validation.service.ts.html +724 -0
  364. package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +176 -0
  365. package/backend/coverage/lcov-report/src/system-prompts/dto/set-enabled-mcp-tools.dto.ts.html +157 -0
  366. package/backend/coverage/lcov-report/src/system-prompts/dto/set-enabled-tools.dto.ts.html +148 -0
  367. package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +517 -0
  368. package/backend/coverage/lcov-report/src/system-prompts/dto/toggle-mcp-tool.dto.ts.html +121 -0
  369. package/backend/coverage/lcov-report/src/system-prompts/dto/toggle-tool.dto.ts.html +118 -0
  370. package/backend/coverage/lcov-report/src/system-prompts/index.html +146 -0
  371. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +1060 -0
  372. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +160 -0
  373. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +2254 -0
  374. package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +178 -0
  375. package/backend/coverage/lcov-report/src/tool-hooks/dto/create-tool-hook.dto.ts.html +181 -0
  376. package/backend/coverage/lcov-report/src/tool-hooks/dto/index.html +131 -0
  377. package/backend/coverage/lcov-report/src/tool-hooks/dto/update-tool-hook.dto.ts.html +178 -0
  378. package/backend/coverage/lcov-report/src/tool-hooks/index.html +146 -0
  379. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.controller.ts.html +481 -0
  380. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.module.ts.html +127 -0
  381. package/backend/coverage/lcov-report/src/tool-hooks/tool-hooks.service.ts.html +1222 -0
  382. package/backend/coverage/lcov-report/src/tracing.ts.html +214 -0
  383. package/backend/coverage/lcov-report/src/types/express-multer.d.ts.html +130 -0
  384. package/backend/coverage/lcov-report/src/types/index.html +116 -0
  385. package/backend/coverage/lcov-report/src/utils/ai-format-generator.ts.html +253 -0
  386. package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +310 -0
  387. package/backend/coverage/lcov-report/src/utils/index.html +191 -0
  388. package/backend/coverage/lcov-report/src/utils/index.ts.html +100 -0
  389. package/backend/coverage/lcov-report/src/utils/short-id.ts.html +109 -0
  390. package/backend/coverage/lcov-report/src/utils/spawn-with-kill.ts.html +412 -0
  391. package/backend/coverage/lcov-report/src/utils/trace.decorator.ts.html +223 -0
  392. package/backend/coverage/lcov-report/src/visual-editor/index.html +146 -0
  393. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.controller.ts.html +409 -0
  394. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.dto.ts.html +130 -0
  395. package/backend/coverage/lcov-report/src/visual-editor/visual-editor.module.ts.html +118 -0
  396. package/backend/coverage/lcov-report/src/workspace/dto/file-tree.dto.ts.html +112 -0
  397. package/backend/coverage/lcov-report/src/workspace/dto/index.html +131 -0
  398. package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +193 -0
  399. package/backend/coverage/lcov-report/src/workspace/index.html +146 -0
  400. package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +394 -0
  401. package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +121 -0
  402. package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +1027 -0
  403. package/backend/coverage/lcov.info +20220 -0
  404. package/backend/dist/src/context-templates/context-templates.service.js +0 -3
  405. package/backend/dist/src/context-templates/context-templates.service.js.map +1 -1
  406. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.d.ts +1 -1
  407. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.js +4 -0
  408. package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.js.map +1 -1
  409. package/backend/dist/src/seeding/data/sub-agents/browser-use.d.ts +1 -1
  410. package/backend/dist/src/seeding/data/sub-agents/browser-use.js +1 -1
  411. package/backend/dist/src/seeding/data/sub-agents/browser-use.js.map +1 -1
  412. package/backend/dist/src/seeding/data/system-prompts/browser-use-agent.d.ts +1 -0
  413. package/backend/dist/src/seeding/data/system-prompts/browser-use-agent.js +2 -1
  414. package/backend/dist/src/seeding/data/system-prompts/browser-use-agent.js.map +1 -1
  415. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.d.ts +1 -0
  416. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js +2 -1
  417. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js.map +1 -1
  418. package/backend/dist/src/seeding/data/system-prompts/explore-codebase-agent.d.ts +1 -0
  419. package/backend/dist/src/seeding/data/system-prompts/explore-codebase-agent.js +2 -1
  420. package/backend/dist/src/seeding/data/system-prompts/explore-codebase-agent.js.map +1 -1
  421. package/backend/dist/src/seeding/system-prompt-seeding.service.js +3 -1
  422. package/backend/dist/src/seeding/system-prompt-seeding.service.js.map +1 -1
  423. package/backend/dist/src/sub-agents/sub-agent-run.entity.d.ts +1 -1
  424. package/backend/dist/src/sub-agents/sub-agent-run.entity.js +1 -1
  425. package/backend/dist/src/sub-agents/sub-agent-run.entity.js.map +1 -1
  426. package/backend/dist/src/sub-agents/sub-agent-runner.service.d.ts +1 -0
  427. package/backend/dist/src/sub-agents/sub-agent-runner.service.js +16 -2
  428. package/backend/dist/src/sub-agents/sub-agent-runner.service.js.map +1 -1
  429. package/backend/dist/src/sub-agents/sub-agents.service.js +0 -3
  430. package/backend/dist/src/sub-agents/sub-agents.service.js.map +1 -1
  431. package/backend/dist/src/system-prompts/system-prompts.service.d.ts +2 -1
  432. package/backend/dist/src/system-prompts/system-prompts.service.js +20 -14
  433. package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
  434. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  435. package/package.json +1 -1
@@ -0,0 +1,412 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/utils/spawn-with-kill.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> spawn-with-kill.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">97.22% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>35/36</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">60% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/5</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'>9/9</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>35/35</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-yes">40x</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-yes">40x</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-yes">12x</span>
210
+ <span class="cline-any cline-yes">12x</span>
211
+ <span class="cline-any cline-yes">12x</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-yes">12x</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-yes">12x</span>
220
+ <span class="cline-any cline-yes">12x</span>
221
+ <span class="cline-any cline-yes">12x</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">12x</span>
224
+ <span class="cline-any cline-yes">12x</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-yes">12x</span>
227
+ <span class="cline-any cline-yes">7x</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">12x</span>
231
+ <span class="cline-any cline-yes">3x</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-yes">12x</span>
235
+ <span class="cline-any cline-yes">12x</span>
236
+ <span class="cline-any cline-yes">12x</span>
237
+ <span class="cline-any cline-yes">12x</span>
238
+ <span class="cline-any cline-yes">12x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-yes">12x</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-yes">12x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-yes">12x</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-yes">12x</span>
252
+ <span class="cline-any cline-yes">4x</span>
253
+ <span class="cline-any cline-yes">4x</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-yes">4x</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-yes">4x</span>
262
+ <span class="cline-any cline-yes">1x</span>
263
+ <span class="cline-any cline-yes">1x</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-yes">12x</span>
272
+ <span class="cline-any cline-yes">12x</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-yes">12x</span>
277
+ <span class="cline-any cline-yes">1x</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { spawn, ChildProcess } from 'child_process';
285
+ &nbsp;
286
+ export interface ExecWithKillResult {
287
+ stdout: string;
288
+ stderr: string;
289
+ /** True if the process was killed due to timeout */
290
+ killed: boolean;
291
+ /** Process exit code (null if killed by signal) */
292
+ exitCode: number | null;
293
+ }
294
+ &nbsp;
295
+ export interface ExecWithKillOptions {
296
+ cwd: string;
297
+ timeout: number;
298
+ /** Grace period in ms after SIGTERM before sending SIGKILL (default: 5000) */
299
+ sigkillGraceMs?: number;
300
+ }
301
+ &nbsp;
302
+ const DEFAULT_SIGKILL_GRACE_MS = 5000;
303
+ &nbsp;
304
+ /**
305
+ * Executes a command using `spawn` with `detached: true` so the child becomes
306
+ * a new process-group leader. On timeout, kills the **entire process group**
307
+ * via `process.kill(-pid, 'SIGTERM')`, then falls back to SIGKILL after a
308
+ * grace period if the group is still alive.
309
+ *
310
+ * @param command The shell command string to execute
311
+ * @param options Execution options (cwd, timeout, sigkillGraceMs)
312
+ * @returns Promise resolving to `{ stdout, stderr, killed, exitCode }`
313
+ */
314
+ export function execWithProcessGroupKill(
315
+ command: string,
316
+ options: ExecWithKillOptions,
317
+ ): Promise&lt;ExecWithKillResult&gt; {
318
+ return new Promise((resolve) =&gt; {
319
+ const shell = process.env.SHELL || <span class="branch-1 cbranch-no" title="branch not covered" >'/bin/bash';</span>
320
+ const sigkillGraceMs = options.sigkillGraceMs ?? DEFAULT_SIGKILL_GRACE_MS;
321
+ &nbsp;
322
+ const childProcess: ChildProcess = spawn(shell, ['-c', command], {
323
+ cwd: options.cwd,
324
+ detached: true, // child becomes new session/process-group leader
325
+ stdio: ['pipe', 'pipe', 'pipe'],
326
+ });
327
+ &nbsp;
328
+ let killed = false;
329
+ let resolved = false;
330
+ let extraStderr = '';
331
+ &nbsp;
332
+ const stdoutChunks: Buffer[] = [];
333
+ const stderrChunks: Buffer[] = [];
334
+ &nbsp;
335
+ childProcess.stdout?.on('data', (chunk: Buffer) =&gt; {
336
+ stdoutChunks.push(chunk);
337
+ });
338
+ &nbsp;
339
+ childProcess.stderr?.on('data', (chunk: Buffer) =&gt; {
340
+ stderrChunks.push(chunk);
341
+ });
342
+ &nbsp;
343
+ const doResolve = (exitCode: number | null) =&gt; {
344
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (resolved) <span class="cstat-no" title="statement not covered" >return;</span>
345
+ resolved = true;
346
+ clearTimeout(timeoutTimer);
347
+ clearTimeout(sigkillTimer);
348
+ &nbsp;
349
+ // Concatenate buffered chunks
350
+ const stdout = Buffer.concat(stdoutChunks).toString('utf-8');
351
+ const stderr =
352
+ Buffer.concat(stderrChunks).toString('utf-8') + extraStderr;
353
+ &nbsp;
354
+ resolve({ stdout, stderr, killed, exitCode });
355
+ };
356
+ &nbsp;
357
+ // Timeout handler
358
+ let sigkillTimer: ReturnType&lt;typeof setTimeout&gt;;
359
+ &nbsp;
360
+ const timeoutTimer = setTimeout(() =&gt; {
361
+ killed = true;
362
+ try {
363
+ // Kill entire process group (negative PID)
364
+ process.kill(-childProcess.pid!, 'SIGTERM');
365
+ } catch {
366
+ // Process may have already exited
367
+ }
368
+ &nbsp;
369
+ // Schedule SIGKILL fallback
370
+ sigkillTimer = setTimeout(() =&gt; {
371
+ try {
372
+ process.kill(-childProcess.pid!, 'SIGKILL');
373
+ } catch {
374
+ // Process already dead
375
+ }
376
+ }, sigkillGraceMs);
377
+ }, options.timeout);
378
+ &nbsp;
379
+ // Handle process exit
380
+ childProcess.on('close', (code) =&gt; {
381
+ doResolve(code);
382
+ });
383
+ &nbsp;
384
+ // Handle spawn errors (e.g., command not found)
385
+ childProcess.on('error', (err) =&gt; {
386
+ extraStderr += `\nSpawn error: ${err.message}`;
387
+ // If there's no close event coming (e.g. ENOENT), resolve now
388
+ // Spawn errors on 'error' are followed by 'close' in Node &gt;= 16
389
+ // but we resolve on close, so just append the error info
390
+ });
391
+ });
392
+ }
393
+ &nbsp;</pre></td></tr></table></pre>
394
+
395
+ <div class='push'></div><!-- for sticky footer -->
396
+ </div><!-- /wrapper -->
397
+ <div class='footer quiet pad2 space-top1 center small'>
398
+ Code coverage generated by
399
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
400
+ at 2026-05-09T01:03:45.353Z
401
+ </div>
402
+ <script src="../../prettify.js"></script>
403
+ <script>
404
+ window.onload = function () {
405
+ prettyPrint();
406
+ };
407
+ </script>
408
+ <script src="../../sorter.js"></script>
409
+ <script src="../../block-navigation.js"></script>
410
+ </body>
411
+ </html>
412
+
@@ -0,0 +1,223 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/utils/trace.decorator.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> trace.decorator.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>15/15</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/4</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>15/15</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-yes">41x</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">41x</span>
124
+ <span class="cline-any cline-yes">827x</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-yes">827x</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-yes">827x</span>
133
+ <span class="cline-any cline-yes">375x</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-yes">375x</span>
137
+ <span class="cline-any cline-yes">375x</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-yes">375x</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-yes">51x</span>
143
+ <span class="cline-any cline-yes">51x</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-yes">51x</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-yes">375x</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-yes">827x</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { trace, SpanStatusCode } from '@opentelemetry/api';
159
+ &nbsp;
160
+ // Get a tracer instance. In a real application, you might use a dependency
161
+ // injection system for this, but a singleton instance is fine for this use case.
162
+ const tracer = trace.getTracer('repoburg-backend');
163
+ &nbsp;
164
+ /**
165
+ * A method decorator that automatically wraps the decorated method in an
166
+ * OpenTelemetry span. The span will be named using the pattern
167
+ * "ClassName#methodName".
168
+ */
169
+ export function Trace() {
170
+ return function (
171
+ target: any,
172
+ propertyKey: string,
173
+ descriptor: PropertyDescriptor,
174
+ ) {
175
+ const originalMethod = descriptor.value;
176
+ &nbsp;
177
+ // Redefine the method with our tracing wrapper
178
+ descriptor.value = function (...args: any[]) {
179
+ const spanName = `${target.constructor.name}#${propertyKey}`;
180
+ &nbsp;
181
+ // tracer.startActiveSpan automatically handles timing, errors, and ending the span.
182
+ return tracer.startActiveSpan(spanName, async (span) =&gt; {
183
+ try {
184
+ // Call the original method with its arguments, preserving the 'this' context
185
+ return await originalMethod.apply(this, args);
186
+ } catch (error) {
187
+ // Record the exception on the span and re-throw it
188
+ span.recordException(error);
189
+ span.setStatus({
190
+ code: SpanStatusCode.ERROR,
191
+ message: error.message,
192
+ });
193
+ throw error;
194
+ } finally {
195
+ // End the span when the method is complete
196
+ span.end();
197
+ }
198
+ });
199
+ };
200
+ &nbsp;
201
+ return descriptor;
202
+ };
203
+ }
204
+ &nbsp;</pre></td></tr></table></pre>
205
+
206
+ <div class='push'></div><!-- for sticky footer -->
207
+ </div><!-- /wrapper -->
208
+ <div class='footer quiet pad2 space-top1 center small'>
209
+ Code coverage generated by
210
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
+ at 2026-05-09T01:03:45.353Z
212
+ </div>
213
+ <script src="../../prettify.js"></script>
214
+ <script>
215
+ window.onload = function () {
216
+ prettyPrint();
217
+ };
218
+ </script>
219
+ <script src="../../sorter.js"></script>
220
+ <script src="../../block-navigation.js"></script>
221
+ </body>
222
+ </html>
223
+