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,1060 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/system-prompts/system-prompts.controller.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/system-prompts</a> system-prompts.controller.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">67.64% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>46/68</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">50% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>4/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">31.81% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>7/22</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">66.66% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>44/66</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 medium'></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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-yes">7x</span>
405
+ <span class="cline-any cline-yes">7x</span>
406
+ <span class="cline-any cline-yes">7x</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-yes">7x</span>
413
+ <span class="cline-any cline-yes">7x</span>
414
+ <span class="cline-any cline-yes">7x</span>
415
+ <span class="cline-any cline-yes">7x</span>
416
+ <span class="cline-any cline-yes">7x</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-yes">7x</span>
421
+ <span class="cline-any cline-yes">18x</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-yes">7x</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-no">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-yes">7x</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-yes">7x</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-yes">7x</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-yes">7x</span>
473
+ <span class="cline-any cline-yes">2x</span>
474
+ <span class="cline-any cline-yes">2x</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-yes">7x</span>
485
+ <span class="cline-any cline-no">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-yes">7x</span>
498
+ <span class="cline-any cline-no">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</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">7x</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-no">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</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">7x</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-yes">7x</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-no">&nbsp;</span>
537
+ <span class="cline-any cline-no">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-yes">7x</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-no">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-no">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-no">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-yes">7x</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-no">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-yes">7x</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-yes">2x</span>
586
+ <span class="cline-any cline-yes">2x</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-neutral">&nbsp;</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-yes">7x</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-yes">2x</span>
600
+ <span class="cline-any cline-yes">2x</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">7x</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-yes">3x</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-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-yes">3x</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-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-yes">3x</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-yes">7x</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-yes">7x</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-no">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-yes">7x</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-yes">3x</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-yes">7x</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-no">&nbsp;</span>
682
+ <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</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-yes">7x</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-no">&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-yes">7x</span>
713
+ <span class="cline-any cline-no">&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></td><td class="text"><pre class="prettyprint lang-js">import {
717
+ Controller,
718
+ Get,
719
+ Post,
720
+ Body,
721
+ Param,
722
+ Put,
723
+ Delete,
724
+ ParseUUIDPipe,
725
+ HttpCode,
726
+ HttpStatus,
727
+ Patch,
728
+ } from '@nestjs/common';
729
+ import { ApiTags, ApiOperation, ApiResponse, ApiParam } from '@nestjs/swagger';
730
+ import { SystemPromptsService } from './system-prompts.service';
731
+ import {
732
+ CreateSystemPromptDto,
733
+ PreviewSystemPromptDto,
734
+ PreviewSystemPromptResponseDto,
735
+ UpdateSystemPromptDto,
736
+ } from './dto/system-prompt.dto';
737
+ import { SetEnabledToolsDto } from './dto/set-enabled-tools.dto';
738
+ import { ToggleToolDto } from './dto/toggle-tool.dto';
739
+ import { SetEnabledMcpToolsDto } from './dto/set-enabled-mcp-tools.dto';
740
+ import { ToggleMcpToolDto } from './dto/toggle-mcp-tool.dto';
741
+ import { SystemPrompt } from '../core-entities';
742
+ &nbsp;
743
+ @ApiTags('system-prompts')
744
+ @Controller('system-prompts')
745
+ export class SystemPromptsController {
746
+ constructor(private readonly systemPromptsService: SystemPromptsService) {}
747
+ &nbsp;
748
+ @Post()
749
+ @ApiOperation({ summary: 'Create a new system prompt' })
750
+ @ApiResponse({
751
+ status: 201,
752
+ description: 'System prompt created',
753
+ type: SystemPrompt,
754
+ })
755
+ <span class="fstat-no" title="function not covered" > async </span>create(
756
+ @Body() createSystemPromptDto: CreateSystemPromptDto,
757
+ ): Promise&lt;SystemPrompt&gt; {
758
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.create(createSystemPromptDto);</span>
759
+ }
760
+ &nbsp;
761
+ @Post('preview')
762
+ @HttpCode(HttpStatus.OK)
763
+ @ApiOperation({
764
+ summary: 'Preview rendered system prompt (inject tool definitions)',
765
+ })
766
+ @ApiResponse({
767
+ status: 200,
768
+ description: 'Rendered prompt',
769
+ type: PreviewSystemPromptResponseDto,
770
+ })
771
+ <span class="fstat-no" title="function not covered" > async </span>preview(
772
+ @Body() previewDto: PreviewSystemPromptDto,
773
+ ): Promise&lt;PreviewSystemPromptResponseDto&gt; {
774
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.preview(previewDto);</span>
775
+ }
776
+ &nbsp;
777
+ @Get('tools')
778
+ @ApiOperation({ summary: 'Get names of tools enabled for current session' })
779
+ @ApiResponse({ status: 200, description: 'List of enabled tool names' })
780
+ <span class="fstat-no" title="function not covered" > async </span>getToolNames(): Promise&lt;string[]&gt; {
781
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.getToolNames();</span>
782
+ }
783
+ &nbsp;
784
+ @Get('all-tools')
785
+ @ApiOperation({ summary: 'Get all available tool names' })
786
+ @ApiResponse({ status: 200, description: 'List of all tool names' })
787
+ <span class="fstat-no" title="function not covered" > async </span>getAllToolNames(): Promise&lt;{ tools: string[] }&gt; {
788
+ const tools = <span class="cstat-no" title="statement not covered" >this.systemPromptsService.getAllToolNames();</span>
789
+ <span class="cstat-no" title="statement not covered" > return { tools };</span>
790
+ }
791
+ &nbsp;
792
+ @Get('all-mcp-tools')
793
+ @ApiOperation({
794
+ summary: 'Get all available MCP tool names (serverName__toolName format)',
795
+ })
796
+ @ApiResponse({ status: 200, description: 'List of available MCP tool names' })
797
+ async getAllMcpToolNames(): Promise&lt;{ mcpTools: string[] }&gt; {
798
+ const mcpTools = await this.systemPromptsService.getAllMcpToolNames();
799
+ return { mcpTools };
800
+ }
801
+ &nbsp;
802
+ @Get()
803
+ @ApiOperation({ summary: 'List all system prompts' })
804
+ @ApiResponse({
805
+ status: 200,
806
+ description: 'List of system prompts',
807
+ type: [SystemPrompt],
808
+ })
809
+ <span class="fstat-no" title="function not covered" > async </span>findAll(): Promise&lt;SystemPrompt[]&gt; {
810
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.findAll();</span>
811
+ }
812
+ &nbsp;
813
+ @Get(':id')
814
+ @ApiOperation({ summary: 'Get a system prompt by ID' })
815
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
816
+ @ApiResponse({
817
+ status: 200,
818
+ description: 'System prompt found',
819
+ type: SystemPrompt,
820
+ })
821
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
822
+ <span class="fstat-no" title="function not covered" > async </span>findOne(@Param('id', ParseUUIDPipe) id: string): Promise&lt;SystemPrompt&gt; {
823
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.findOne(id);</span>
824
+ }
825
+ &nbsp;
826
+ @Get(':id/raw')
827
+ @ApiOperation({ summary: 'Get raw system prompt content (unrendered)' })
828
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
829
+ @ApiResponse({
830
+ status: 200,
831
+ description: 'Raw system prompt',
832
+ type: SystemPrompt,
833
+ })
834
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
835
+ <span class="fstat-no" title="function not covered" > async </span>findOneRaw(
836
+ @Param('id', ParseUUIDPipe) id: string,
837
+ ): Promise&lt;SystemPrompt&gt; {
838
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.findOneRaw(id);</span>
839
+ }
840
+ &nbsp;
841
+ @Get(':id/enabled-tools')
842
+ @ApiOperation({ summary: 'Get enabled tools for a system prompt' })
843
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
844
+ @ApiResponse({ status: 200, description: 'Enabled tools list or "all"' })
845
+ <span class="fstat-no" title="function not covered" > async </span>getEnabledTools(
846
+ @Param('id', ParseUUIDPipe) id: string,
847
+ ): Promise&lt;{ enabledTools: string[] | 'all' }&gt; {
848
+ const enabledTools = <span class="cstat-no" title="statement not covered" >await this.systemPromptsService.getEnabledTools(id);</span>
849
+ <span class="cstat-no" title="statement not covered" > return { enabledTools };</span>
850
+ }
851
+ &nbsp;
852
+ @Get(':id/tools-for-prompt')
853
+ @ApiOperation({
854
+ summary: 'Get tool definitions formatted for prompt injection',
855
+ })
856
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
857
+ @ApiResponse({ status: 200, description: 'Tool definitions for prompt' })
858
+ <span class="fstat-no" title="function not covered" > async </span>getToolsForPrompt(
859
+ @Param('id', ParseUUIDPipe) id: string,
860
+ ): Promise&lt;{ tools: string[] }&gt; {
861
+ const tools = <span class="cstat-no" title="statement not covered" >await this.systemPromptsService.getToolsForPrompt(id);</span>
862
+ <span class="cstat-no" title="statement not covered" > return { tools };</span>
863
+ }
864
+ &nbsp;
865
+ @Patch(':id/enabled-tools')
866
+ @ApiOperation({ summary: 'Set enabled tools for a system prompt' })
867
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
868
+ @ApiResponse({ status: 200, description: 'Enabled tools updated' })
869
+ <span class="fstat-no" title="function not covered" > async </span>setEnabledTools(
870
+ @Param('id', ParseUUIDPipe) id: string,
871
+ @Body() dto: SetEnabledToolsDto,
872
+ ): Promise&lt;{ enabledTools: string[] | 'all' }&gt; {
873
+ const enabledTools =
874
+ <span class="cstat-no" title="statement not covered" > dto.enabledTools !== undefined</span>
875
+ ? dto.enabledTools
876
+ : dto.enabledToolsArray || 'all';
877
+ &nbsp;
878
+ const updated = <span class="cstat-no" title="statement not covered" >await this.systemPromptsService.setEnabledTools(</span>
879
+ id,
880
+ enabledTools,
881
+ );
882
+ <span class="cstat-no" title="statement not covered" > return { enabledTools: updated.enabledTools };</span>
883
+ }
884
+ &nbsp;
885
+ @Patch(':id/toggle-tool')
886
+ @ApiOperation({ summary: 'Toggle a single tool on/off' })
887
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
888
+ @ApiResponse({ status: 200, description: 'Tool toggled' })
889
+ <span class="fstat-no" title="function not covered" > async </span>toggleTool(
890
+ @Param('id', ParseUUIDPipe) id: string,
891
+ @Body() dto: ToggleToolDto,
892
+ ): Promise&lt;{ enabledTools: string[] | 'all' }&gt; {
893
+ const updated = <span class="cstat-no" title="statement not covered" >await this.systemPromptsService.toggleTool(</span>
894
+ id,
895
+ dto.toolName,
896
+ );
897
+ <span class="cstat-no" title="statement not covered" > return { enabledTools: updated.enabledTools };</span>
898
+ }
899
+ &nbsp;
900
+ @Get(':id/enabled-mcp-tools')
901
+ @ApiOperation({
902
+ summary: 'Get enabled MCP tools for a system prompt',
903
+ })
904
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
905
+ @ApiResponse({ status: 200, description: 'Enabled MCP tools list or "all"' })
906
+ async getEnabledMcpTools(
907
+ @Param('id', ParseUUIDPipe) id: string,
908
+ ): Promise&lt;{ enabledMcpTools: string[] | 'all' }&gt; {
909
+ const enabledMcpTools =
910
+ await this.systemPromptsService.getEnabledMcpTools(id);
911
+ return { enabledMcpTools };
912
+ }
913
+ &nbsp;
914
+ @Get(':id/mcp-tools-for-prompt')
915
+ @ApiOperation({
916
+ summary:
917
+ 'Get MCP tool names that should be sent to LLM for a system prompt (considers both global and prompt-level settings)',
918
+ })
919
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
920
+ @ApiResponse({ status: 200, description: 'Resolved MCP tool names' })
921
+ async getMcpToolsForPrompt(
922
+ @Param('id', ParseUUIDPipe) id: string,
923
+ ): Promise&lt;{ mcpTools: string[] }&gt; {
924
+ const mcpTools = await this.systemPromptsService.getMcpToolsForPrompt(id);
925
+ return { mcpTools };
926
+ }
927
+ &nbsp;
928
+ @Patch(':id/enabled-mcp-tools')
929
+ @ApiOperation({ summary: 'Set enabled MCP tools for a system prompt' })
930
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
931
+ @ApiResponse({ status: 200, description: 'Enabled MCP tools updated' })
932
+ async setEnabledMcpTools(
933
+ @Param('id', ParseUUIDPipe) id: string,
934
+ @Body() dto: SetEnabledMcpToolsDto,
935
+ ): Promise&lt;{ enabledMcpTools: string[] | 'all' }&gt; {
936
+ const enabledMcpTools =
937
+ dto.enabledMcpTools !== undefined
938
+ ? dto.enabledMcpTools
939
+ : dto.enabledMcpToolsArray || 'all';
940
+ &nbsp;
941
+ const updated = await this.systemPromptsService.setEnabledMcpTools(
942
+ id,
943
+ enabledMcpTools,
944
+ );
945
+ return { enabledMcpTools: updated.enabledMcpTools };
946
+ }
947
+ &nbsp;
948
+ @Patch(':id/toggle-mcp-tool')
949
+ @ApiOperation({
950
+ summary: 'Toggle a single MCP tool on/off for a system prompt',
951
+ })
952
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
953
+ @ApiResponse({ status: 200, description: 'MCP tool toggled' })
954
+ async toggleMcpTool(
955
+ @Param('id', ParseUUIDPipe) id: string,
956
+ @Body() dto: ToggleMcpToolDto,
957
+ ): Promise&lt;{ enabledMcpTools: string[] | 'all' }&gt; {
958
+ const updated = await this.systemPromptsService.toggleMcpTool(
959
+ id,
960
+ dto.mcpToolName,
961
+ );
962
+ return { enabledMcpTools: updated.enabledMcpTools };
963
+ }
964
+ &nbsp;
965
+ @Put(':id')
966
+ @ApiOperation({ summary: 'Update a system prompt' })
967
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
968
+ @ApiResponse({
969
+ status: 200,
970
+ description: 'System prompt updated',
971
+ type: SystemPrompt,
972
+ })
973
+ @ApiResponse({ status: 403, description: 'Cannot modify built-in prompt' })
974
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
975
+ <span class="fstat-no" title="function not covered" > async </span>update(
976
+ @Param('id', ParseUUIDPipe) id: string,
977
+ @Body() updateSystemPromptDto: UpdateSystemPromptDto,
978
+ ): Promise&lt;SystemPrompt&gt; {
979
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.update(id, updateSystemPromptDto);</span>
980
+ }
981
+ &nbsp;
982
+ @Post(':id/set-default')
983
+ @HttpCode(HttpStatus.OK)
984
+ @ApiOperation({ summary: 'Set this prompt as the default' })
985
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
986
+ @ApiResponse({
987
+ status: 200,
988
+ description: 'Set as default',
989
+ type: SystemPrompt,
990
+ })
991
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
992
+ async setDefault(
993
+ @Param('id', ParseUUIDPipe) id: string,
994
+ ): Promise&lt;SystemPrompt&gt; {
995
+ return this.systemPromptsService.setDefault(id);
996
+ }
997
+ &nbsp;
998
+ @Post(':id/push-to-studio')
999
+ @HttpCode(HttpStatus.OK)
1000
+ @ApiOperation({ summary: 'Push system prompt to AI Studio' })
1001
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
1002
+ @ApiResponse({ status: 200, description: 'Pushed to studio' })
1003
+ <span class="fstat-no" title="function not covered" > async </span>pushToStudio(
1004
+ @Param('id', ParseUUIDPipe) id: string,
1005
+ ): Promise&lt;{ success: boolean }&gt; {
1006
+ <span class="cstat-no" title="statement not covered" > await this.systemPromptsService.pushToStudio(id);</span>
1007
+ <span class="cstat-no" title="statement not covered" > return { success: true };</span>
1008
+ }
1009
+ &nbsp;
1010
+ @Post(':id/duplicate')
1011
+ @HttpCode(HttpStatus.CREATED)
1012
+ @ApiOperation({ summary: 'Duplicate a system prompt' })
1013
+ @ApiParam({
1014
+ name: 'id',
1015
+ description: 'System prompt UUID to duplicate',
1016
+ format: 'uuid',
1017
+ })
1018
+ @ApiResponse({
1019
+ status: 201,
1020
+ description: 'System prompt duplicated',
1021
+ type: SystemPrompt,
1022
+ })
1023
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
1024
+ <span class="fstat-no" title="function not covered" > async </span>duplicate(
1025
+ @Param('id', ParseUUIDPipe) id: string,
1026
+ ): Promise&lt;SystemPrompt&gt; {
1027
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.duplicate(id);</span>
1028
+ }
1029
+ &nbsp;
1030
+ @Delete(':id')
1031
+ @HttpCode(HttpStatus.NO_CONTENT)
1032
+ @ApiOperation({ summary: 'Delete a system prompt' })
1033
+ @ApiParam({ name: 'id', description: 'System prompt UUID', format: 'uuid' })
1034
+ @ApiResponse({ status: 204, description: 'System prompt deleted' })
1035
+ @ApiResponse({ status: 403, description: 'Cannot delete built-in prompt' })
1036
+ @ApiResponse({ status: 404, description: 'System prompt not found' })
1037
+ <span class="fstat-no" title="function not covered" > async </span>remove(@Param('id', ParseUUIDPipe) id: string): Promise&lt;void&gt; {
1038
+ <span class="cstat-no" title="statement not covered" > return this.systemPromptsService.remove(id);</span>
1039
+ }
1040
+ }
1041
+ &nbsp;</pre></td></tr></table></pre>
1042
+
1043
+ <div class='push'></div><!-- for sticky footer -->
1044
+ </div><!-- /wrapper -->
1045
+ <div class='footer quiet pad2 space-top1 center small'>
1046
+ Code coverage generated by
1047
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1048
+ at 2026-05-09T01:03:45.353Z
1049
+ </div>
1050
+ <script src="../../prettify.js"></script>
1051
+ <script>
1052
+ window.onload = function () {
1053
+ prettyPrint();
1054
+ };
1055
+ </script>
1056
+ <script src="../../sorter.js"></script>
1057
+ <script src="../../block-navigation.js"></script>
1058
+ </body>
1059
+ </html>
1060
+