solace-agent-mesh 0.2.4__py3-none-any.whl → 1.0.2__py3-none-any.whl

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.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (521) hide show
  1. solace_agent_mesh/__init__.py +5 -0
  2. solace_agent_mesh/agent/adk/adk_llm.txt +93 -0
  3. solace_agent_mesh/agent/adk/app_llm_agent.py +26 -0
  4. solace_agent_mesh/agent/adk/callbacks.py +1716 -0
  5. solace_agent_mesh/agent/adk/filesystem_artifact_service.py +381 -0
  6. solace_agent_mesh/agent/adk/invocation_monitor.py +295 -0
  7. solace_agent_mesh/agent/adk/models/lite_llm.py +872 -0
  8. solace_agent_mesh/agent/adk/models/models_llm.txt +94 -0
  9. solace_agent_mesh/agent/adk/runner.py +357 -0
  10. solace_agent_mesh/agent/adk/services.py +240 -0
  11. solace_agent_mesh/agent/adk/setup.py +751 -0
  12. solace_agent_mesh/agent/adk/stream_parser.py +214 -0
  13. solace_agent_mesh/agent/adk/tool_wrapper.py +139 -0
  14. solace_agent_mesh/agent/agent_llm.txt +41 -0
  15. solace_agent_mesh/agent/protocol/event_handlers.py +1444 -0
  16. solace_agent_mesh/agent/protocol/protocol_llm.txt +21 -0
  17. solace_agent_mesh/agent/sac/app.py +640 -0
  18. solace_agent_mesh/agent/sac/component.py +3496 -0
  19. solace_agent_mesh/agent/sac/patch_adk.py +111 -0
  20. solace_agent_mesh/agent/sac/sac_llm.txt +105 -0
  21. solace_agent_mesh/agent/sac/task_execution_context.py +185 -0
  22. solace_agent_mesh/agent/testing/__init__.py +3 -0
  23. solace_agent_mesh/agent/testing/debug_utils.py +135 -0
  24. solace_agent_mesh/agent/testing/testing_llm.txt +90 -0
  25. solace_agent_mesh/agent/tools/__init__.py +14 -0
  26. solace_agent_mesh/agent/tools/audio_tools.py +1622 -0
  27. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +1954 -0
  28. solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +238 -0
  29. solace_agent_mesh/agent/tools/general_agent_tools.py +571 -0
  30. solace_agent_mesh/agent/tools/image_tools.py +1184 -0
  31. solace_agent_mesh/agent/tools/peer_agent_tool.py +290 -0
  32. solace_agent_mesh/agent/tools/registry.py +36 -0
  33. solace_agent_mesh/agent/tools/test_tools.py +135 -0
  34. solace_agent_mesh/agent/tools/tool_definition.py +45 -0
  35. solace_agent_mesh/agent/tools/tools_llm.txt +104 -0
  36. solace_agent_mesh/agent/tools/web_tools.py +381 -0
  37. solace_agent_mesh/agent/utils/artifact_helpers.py +927 -0
  38. solace_agent_mesh/agent/utils/config_parser.py +47 -0
  39. solace_agent_mesh/agent/utils/context_helpers.py +60 -0
  40. solace_agent_mesh/agent/utils/utils_llm.txt +153 -0
  41. solace_agent_mesh/assets/docs/404.html +16 -0
  42. solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css +1 -0
  43. solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
  44. solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png +0 -0
  45. solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png +0 -0
  46. solace_agent_mesh/assets/docs/assets/js/04989206.674a8007.js +1 -0
  47. solace_agent_mesh/assets/docs/assets/js/0e682baa.79f0ab22.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/1523c6b4.91c7bc01.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
  54. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
  55. solace_agent_mesh/assets/docs/assets/js/166ab619.7d97ccaf.js +1 -0
  56. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +2 -0
  57. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt +7 -0
  58. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.a8c5ce5a.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/21ceee5f.614fa8dd.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/2334.622a6395.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/3624.b524e433.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/3d406171.f722eaf5.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.36090198.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/442a8107.5ba94b65.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/4c2787c2.66ee00e9.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/55f47984.c484bf96.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/5b4258a4.bda20761.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
  87. solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
  88. solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
  89. solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
  90. solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
  91. solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js +1 -0
  92. solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
  93. solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
  94. solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
  95. solace_agent_mesh/assets/docs/assets/js/768e31b0.a12673db.js +1 -0
  96. solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
  97. solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
  98. solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
  99. solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +1 -0
  100. solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
  101. solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
  102. solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
  103. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js +2 -0
  104. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js.LICENSE.txt +61 -0
  105. solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
  106. solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js +1 -0
  107. solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
  108. solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
  109. solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
  110. solace_agent_mesh/assets/docs/assets/js/945fb41e.74d728aa.js +1 -0
  111. solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
  112. solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
  113. solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +1 -0
  114. solace_agent_mesh/assets/docs/assets/js/a3a92b25.26ca071f.js +1 -0
  115. solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
  116. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +1 -0
  117. solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
  118. solace_agent_mesh/assets/docs/assets/js/aba87c2f.d3e2dcc3.js +1 -0
  119. solace_agent_mesh/assets/docs/assets/js/ae4415af.8e279b5d.js +1 -0
  120. solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +1 -0
  121. solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js +1 -0
  122. solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +1 -0
  123. solace_agent_mesh/assets/docs/assets/js/c2c06897.63b76e9e.js +1 -0
  124. solace_agent_mesh/assets/docs/assets/js/cc969b05.954186d4.js +1 -0
  125. solace_agent_mesh/assets/docs/assets/js/cd3d4052.ca6eed8c.js +1 -0
  126. solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js +1 -0
  127. solace_agent_mesh/assets/docs/assets/js/cee5d587.f5b73ca1.js +1 -0
  128. solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +1 -0
  129. solace_agent_mesh/assets/docs/assets/js/f897a61a.f8c53b0f.js +1 -0
  130. solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js +1 -0
  131. solace_agent_mesh/assets/docs/assets/js/main.c6286d7c.js +2 -0
  132. solace_agent_mesh/assets/docs/assets/js/main.c6286d7c.js.LICENSE.txt +81 -0
  133. solace_agent_mesh/assets/docs/assets/js/runtime~main.d5133813.js +1 -0
  134. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +128 -0
  135. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +91 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +201 -0
  137. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +91 -0
  138. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +55 -0
  139. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +82 -0
  140. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +77 -0
  141. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +48 -0
  142. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +54 -0
  143. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +17 -0
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +45 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +76 -0
  146. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +150 -0
  147. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +54 -0
  148. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +267 -0
  149. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +136 -0
  150. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +116 -0
  151. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +80 -0
  152. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +164 -0
  153. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +57 -0
  154. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +72 -0
  155. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +102 -0
  156. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +99 -0
  157. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +90 -0
  158. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +107 -0
  159. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +152 -0
  160. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +103 -0
  161. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +170 -0
  162. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +200 -0
  163. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +54 -0
  164. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +69 -0
  165. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +59 -0
  166. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
  167. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
  168. solace_agent_mesh/assets/docs/img/logo.png +0 -0
  169. solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
  170. solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
  171. solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
  172. solace_agent_mesh/assets/docs/lunr-index-1754075282978.json +1 -0
  173. solace_agent_mesh/assets/docs/lunr-index.json +1 -0
  174. solace_agent_mesh/assets/docs/search-doc-1754075282978.json +1 -0
  175. solace_agent_mesh/assets/docs/search-doc.json +1 -0
  176. solace_agent_mesh/assets/docs/sitemap.xml +1 -0
  177. solace_agent_mesh/cli/__init__.py +1 -1
  178. solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
  179. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
  180. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +659 -0
  181. solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
  182. solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +93 -0
  183. solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +118 -0
  184. solace_agent_mesh/cli/commands/docs_cmd.py +57 -0
  185. solace_agent_mesh/cli/commands/eval_cmd.py +64 -0
  186. solace_agent_mesh/cli/commands/init_cmd/__init__.py +404 -0
  187. solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
  188. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
  189. solace_agent_mesh/cli/commands/init_cmd/env_step.py +205 -0
  190. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
  191. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +407 -0
  192. solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
  193. solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +110 -0
  194. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +183 -0
  195. solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +18 -0
  196. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +372 -0
  197. solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
  198. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +139 -0
  199. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +309 -0
  200. solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +175 -0
  201. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
  202. solace_agent_mesh/cli/commands/run_cmd.py +158 -0
  203. solace_agent_mesh/cli/main.py +17 -294
  204. solace_agent_mesh/cli/utils.py +135 -204
  205. solace_agent_mesh/client/webui/frontend/static/assets/authCallback-DvlO62me.js +1 -0
  206. solace_agent_mesh/client/webui/frontend/static/assets/client-bp6u3qVZ.js +49 -0
  207. solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
  208. solace_agent_mesh/client/webui/frontend/static/assets/main-D11Lmy9p.css +1 -0
  209. solace_agent_mesh/client/webui/frontend/static/assets/main-Gfk3BYn5.js +663 -0
  210. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +14 -0
  211. solace_agent_mesh/client/webui/frontend/static/index.html +15 -0
  212. solace_agent_mesh/common/__init__.py +1 -0
  213. solace_agent_mesh/common/a2a_protocol.py +564 -0
  214. solace_agent_mesh/common/agent_registry.py +42 -0
  215. solace_agent_mesh/common/client/__init__.py +4 -0
  216. solace_agent_mesh/common/client/card_resolver.py +21 -0
  217. solace_agent_mesh/common/client/client.py +85 -0
  218. solace_agent_mesh/common/client/client_llm.txt +133 -0
  219. solace_agent_mesh/common/common_llm.txt +144 -0
  220. solace_agent_mesh/common/constants.py +1 -14
  221. solace_agent_mesh/common/middleware/__init__.py +12 -0
  222. solace_agent_mesh/common/middleware/config_resolver.py +130 -0
  223. solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
  224. solace_agent_mesh/common/middleware/registry.py +125 -0
  225. solace_agent_mesh/common/server/__init__.py +4 -0
  226. solace_agent_mesh/common/server/server.py +122 -0
  227. solace_agent_mesh/common/server/server_llm.txt +169 -0
  228. solace_agent_mesh/common/server/task_manager.py +291 -0
  229. solace_agent_mesh/common/server/utils.py +28 -0
  230. solace_agent_mesh/common/services/__init__.py +4 -0
  231. solace_agent_mesh/common/services/employee_service.py +162 -0
  232. solace_agent_mesh/common/services/identity_service.py +129 -0
  233. solace_agent_mesh/common/services/providers/__init__.py +4 -0
  234. solace_agent_mesh/common/services/providers/local_file_identity_service.py +148 -0
  235. solace_agent_mesh/common/services/providers/providers_llm.txt +113 -0
  236. solace_agent_mesh/common/services/services_llm.txt +132 -0
  237. solace_agent_mesh/common/types.py +411 -0
  238. solace_agent_mesh/common/utils/__init__.py +7 -0
  239. solace_agent_mesh/common/utils/asyncio_macos_fix.py +86 -0
  240. solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
  241. solace_agent_mesh/common/utils/embeds/constants.py +55 -0
  242. solace_agent_mesh/common/utils/embeds/converter.py +452 -0
  243. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +124 -0
  244. solace_agent_mesh/common/utils/embeds/evaluators.py +394 -0
  245. solace_agent_mesh/common/utils/embeds/modifiers.py +816 -0
  246. solace_agent_mesh/common/utils/embeds/resolver.py +865 -0
  247. solace_agent_mesh/common/utils/embeds/types.py +14 -0
  248. solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
  249. solace_agent_mesh/common/utils/initializer.py +51 -0
  250. solace_agent_mesh/common/utils/log_formatters.py +44 -0
  251. solace_agent_mesh/common/utils/mime_helpers.py +106 -0
  252. solace_agent_mesh/common/utils/push_notification_auth.py +134 -0
  253. solace_agent_mesh/common/utils/utils_llm.txt +67 -0
  254. solace_agent_mesh/config_portal/backend/common.py +66 -24
  255. solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +24 -0
  256. solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
  257. solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +164 -0
  258. solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +521 -0
  259. solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +217 -0
  260. solace_agent_mesh/config_portal/backend/server.py +551 -181
  261. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-_7yox_eh.js +48 -0
  262. solace_agent_mesh/config_portal/frontend/static/client/assets/components-B7lKcHVY.js +140 -0
  263. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-DX1misIU.js → entry.client-CEumGClk.js} +3 -3
  264. solace_agent_mesh/config_portal/frontend/static/client/assets/index-DSo1AH_7.js +68 -0
  265. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-e5c3acfe.js +1 -0
  266. solace_agent_mesh/config_portal/frontend/static/client/assets/{root-BApq5dPK.js → root-C4XmHinv.js} +2 -2
  267. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +1 -0
  268. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  269. solace_agent_mesh/core_a2a/__init__.py +1 -0
  270. solace_agent_mesh/core_a2a/core_a2a_llm.txt +88 -0
  271. solace_agent_mesh/core_a2a/service.py +331 -0
  272. solace_agent_mesh/evaluation/config_loader.py +657 -0
  273. solace_agent_mesh/evaluation/evaluator.py +667 -0
  274. solace_agent_mesh/evaluation/message_organizer.py +568 -0
  275. solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
  276. solace_agent_mesh/evaluation/report/chart_section.html +141 -0
  277. solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
  278. solace_agent_mesh/evaluation/report/modal.html +59 -0
  279. solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
  280. solace_agent_mesh/evaluation/report/modal_script.js +296 -0
  281. solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
  282. solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
  283. solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
  284. solace_agent_mesh/evaluation/report/templates/header.html +340 -0
  285. solace_agent_mesh/evaluation/report_data_processor.py +972 -0
  286. solace_agent_mesh/evaluation/report_generator.py +613 -0
  287. solace_agent_mesh/evaluation/run.py +613 -0
  288. solace_agent_mesh/evaluation/subscriber.py +872 -0
  289. solace_agent_mesh/evaluation/summary_builder.py +775 -0
  290. solace_agent_mesh/evaluation/test_case_loader.py +714 -0
  291. solace_agent_mesh/gateway/base/__init__.py +1 -0
  292. solace_agent_mesh/gateway/base/app.py +266 -0
  293. solace_agent_mesh/gateway/base/base_llm.txt +119 -0
  294. solace_agent_mesh/gateway/base/component.py +1542 -0
  295. solace_agent_mesh/gateway/base/task_context.py +74 -0
  296. solace_agent_mesh/gateway/gateway_llm.txt +125 -0
  297. solace_agent_mesh/gateway/http_sse/app.py +190 -0
  298. solace_agent_mesh/gateway/http_sse/component.py +1602 -0
  299. solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
  300. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +65 -0
  301. solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +108 -0
  302. solace_agent_mesh/gateway/http_sse/dependencies.py +316 -0
  303. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +63 -0
  304. solace_agent_mesh/gateway/http_sse/main.py +442 -0
  305. solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
  306. solace_agent_mesh/gateway/http_sse/routers/agents.py +41 -0
  307. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +827 -0
  308. solace_agent_mesh/gateway/http_sse/routers/auth.py +212 -0
  309. solace_agent_mesh/gateway/http_sse/routers/config.py +55 -0
  310. solace_agent_mesh/gateway/http_sse/routers/people.py +69 -0
  311. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +37 -0
  312. solace_agent_mesh/gateway/http_sse/routers/sessions.py +80 -0
  313. solace_agent_mesh/gateway/http_sse/routers/sse.py +138 -0
  314. solace_agent_mesh/gateway/http_sse/routers/tasks.py +294 -0
  315. solace_agent_mesh/gateway/http_sse/routers/users.py +59 -0
  316. solace_agent_mesh/gateway/http_sse/routers/visualization.py +1131 -0
  317. solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
  318. solace_agent_mesh/gateway/http_sse/services/agent_service.py +69 -0
  319. solace_agent_mesh/gateway/http_sse/services/people_service.py +158 -0
  320. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +179 -0
  321. solace_agent_mesh/gateway/http_sse/services/task_service.py +121 -0
  322. solace_agent_mesh/gateway/http_sse/session_manager.py +187 -0
  323. solace_agent_mesh/gateway/http_sse/sse_manager.py +328 -0
  324. solace_agent_mesh/llm.txt +228 -0
  325. solace_agent_mesh/llm_detail.txt +2835 -0
  326. solace_agent_mesh/templates/agent_template.yaml +53 -0
  327. solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
  328. solace_agent_mesh/templates/gateway_app_template.py +73 -0
  329. solace_agent_mesh/templates/gateway_component_template.py +431 -0
  330. solace_agent_mesh/templates/gateway_config_template.yaml +43 -0
  331. solace_agent_mesh/templates/logging_config_template.ini +64 -0
  332. solace_agent_mesh/templates/main_orchestrator.yaml +55 -0
  333. solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
  334. solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
  335. solace_agent_mesh/templates/plugin_custom_template.py +10 -0
  336. solace_agent_mesh/templates/plugin_gateway_config_template.yaml +63 -0
  337. solace_agent_mesh/templates/plugin_pyproject_template.toml +33 -0
  338. solace_agent_mesh/templates/plugin_readme_template.md +34 -0
  339. solace_agent_mesh/templates/plugin_tools_template.py +224 -0
  340. solace_agent_mesh/templates/shared_config.yaml +66 -0
  341. solace_agent_mesh/templates/templates_llm.txt +147 -0
  342. solace_agent_mesh/templates/webui.yaml +53 -0
  343. solace_agent_mesh-1.0.2.dist-info/METADATA +432 -0
  344. solace_agent_mesh-1.0.2.dist-info/RECORD +361 -0
  345. solace_agent_mesh-1.0.2.dist-info/entry_points.txt +3 -0
  346. {solace_agent_mesh-0.2.4.dist-info → solace_agent_mesh-1.0.2.dist-info}/licenses/LICENSE +1 -1
  347. solace_agent_mesh/agents/base_agent_component.py +0 -256
  348. solace_agent_mesh/agents/global/actions/agent_state_change.py +0 -54
  349. solace_agent_mesh/agents/global/actions/clear_history.py +0 -32
  350. solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +0 -160
  351. solace_agent_mesh/agents/global/actions/create_file.py +0 -70
  352. solace_agent_mesh/agents/global/actions/error_action.py +0 -45
  353. solace_agent_mesh/agents/global/actions/plantuml_diagram.py +0 -163
  354. solace_agent_mesh/agents/global/actions/plotly_graph.py +0 -152
  355. solace_agent_mesh/agents/global/actions/retrieve_file.py +0 -51
  356. solace_agent_mesh/agents/global/global_agent_component.py +0 -38
  357. solace_agent_mesh/agents/image_processing/actions/create_image.py +0 -75
  358. solace_agent_mesh/agents/image_processing/actions/describe_image.py +0 -115
  359. solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +0 -23
  360. solace_agent_mesh/agents/slack/__init__.py +0 -1
  361. solace_agent_mesh/agents/slack/actions/__init__.py +0 -1
  362. solace_agent_mesh/agents/slack/actions/post_message.py +0 -177
  363. solace_agent_mesh/agents/slack/slack_agent_component.py +0 -59
  364. solace_agent_mesh/agents/web_request/actions/do_image_search.py +0 -84
  365. solace_agent_mesh/agents/web_request/actions/do_news_search.py +0 -47
  366. solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +0 -34
  367. solace_agent_mesh/agents/web_request/actions/do_web_request.py +0 -135
  368. solace_agent_mesh/agents/web_request/actions/download_file.py +0 -69
  369. solace_agent_mesh/agents/web_request/web_request_agent_component.py +0 -33
  370. solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css +0 -1
  371. solace_agent_mesh/assets/web-visualizer/assets/index-DnDr1pnu.js +0 -109
  372. solace_agent_mesh/assets/web-visualizer/index.html +0 -14
  373. solace_agent_mesh/assets/web-visualizer/vite.svg +0 -1
  374. solace_agent_mesh/cli/commands/add/__init__.py +0 -3
  375. solace_agent_mesh/cli/commands/add/add.py +0 -88
  376. solace_agent_mesh/cli/commands/add/agent.py +0 -110
  377. solace_agent_mesh/cli/commands/add/copy_from_plugin.py +0 -92
  378. solace_agent_mesh/cli/commands/add/gateway.py +0 -374
  379. solace_agent_mesh/cli/commands/build.py +0 -670
  380. solace_agent_mesh/cli/commands/chat/__init__.py +0 -3
  381. solace_agent_mesh/cli/commands/chat/chat.py +0 -361
  382. solace_agent_mesh/cli/commands/config.py +0 -29
  383. solace_agent_mesh/cli/commands/init/__init__.py +0 -3
  384. solace_agent_mesh/cli/commands/init/ai_provider_step.py +0 -93
  385. solace_agent_mesh/cli/commands/init/broker_step.py +0 -99
  386. solace_agent_mesh/cli/commands/init/builtin_agent_step.py +0 -83
  387. solace_agent_mesh/cli/commands/init/check_if_already_done.py +0 -13
  388. solace_agent_mesh/cli/commands/init/create_config_file_step.py +0 -65
  389. solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +0 -147
  390. solace_agent_mesh/cli/commands/init/file_service_step.py +0 -73
  391. solace_agent_mesh/cli/commands/init/init.py +0 -92
  392. solace_agent_mesh/cli/commands/init/project_structure_step.py +0 -16
  393. solace_agent_mesh/cli/commands/init/web_init_step.py +0 -32
  394. solace_agent_mesh/cli/commands/plugin/__init__.py +0 -3
  395. solace_agent_mesh/cli/commands/plugin/add.py +0 -100
  396. solace_agent_mesh/cli/commands/plugin/build.py +0 -268
  397. solace_agent_mesh/cli/commands/plugin/create.py +0 -117
  398. solace_agent_mesh/cli/commands/plugin/plugin.py +0 -124
  399. solace_agent_mesh/cli/commands/plugin/remove.py +0 -73
  400. solace_agent_mesh/cli/commands/run.py +0 -68
  401. solace_agent_mesh/cli/commands/visualizer.py +0 -138
  402. solace_agent_mesh/cli/config.py +0 -85
  403. solace_agent_mesh/common/action.py +0 -91
  404. solace_agent_mesh/common/action_list.py +0 -37
  405. solace_agent_mesh/common/action_response.py +0 -340
  406. solace_agent_mesh/common/mysql_database.py +0 -40
  407. solace_agent_mesh/common/postgres_database.py +0 -85
  408. solace_agent_mesh/common/prompt_templates.py +0 -28
  409. solace_agent_mesh/common/stimulus_utils.py +0 -152
  410. solace_agent_mesh/common/time.py +0 -24
  411. solace_agent_mesh/common/utils.py +0 -712
  412. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-a-zJ6rLx.js +0 -46
  413. solace_agent_mesh/config_portal/frontend/static/client/assets/components-ZIfdTbrV.js +0 -191
  414. solace_agent_mesh/config_portal/frontend/static/client/assets/index-BJHAE5s4.js +0 -17
  415. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-44c41103.js +0 -1
  416. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DX4gQ516.css +0 -1
  417. solace_agent_mesh/configs/agent_global.yaml +0 -74
  418. solace_agent_mesh/configs/agent_image_processing.yaml +0 -82
  419. solace_agent_mesh/configs/agent_slack.yaml +0 -64
  420. solace_agent_mesh/configs/agent_web_request.yaml +0 -75
  421. solace_agent_mesh/configs/conversation_to_file.yaml +0 -56
  422. solace_agent_mesh/configs/error_catcher.yaml +0 -56
  423. solace_agent_mesh/configs/monitor.yaml +0 -0
  424. solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +0 -109
  425. solace_agent_mesh/configs/monitor_user_feedback.yaml +0 -58
  426. solace_agent_mesh/configs/orchestrator.yaml +0 -241
  427. solace_agent_mesh/configs/service_embedding.yaml +0 -81
  428. solace_agent_mesh/configs/service_llm.yaml +0 -265
  429. solace_agent_mesh/configs/visualize_websocket.yaml +0 -55
  430. solace_agent_mesh/gateway/components/gateway_base.py +0 -47
  431. solace_agent_mesh/gateway/components/gateway_input.py +0 -278
  432. solace_agent_mesh/gateway/components/gateway_output.py +0 -298
  433. solace_agent_mesh/gateway/identity/bamboohr_identity.py +0 -18
  434. solace_agent_mesh/gateway/identity/identity_base.py +0 -10
  435. solace_agent_mesh/gateway/identity/identity_provider.py +0 -60
  436. solace_agent_mesh/gateway/identity/no_identity.py +0 -9
  437. solace_agent_mesh/gateway/identity/passthru_identity.py +0 -9
  438. solace_agent_mesh/monitors/base_monitor_component.py +0 -26
  439. solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +0 -75
  440. solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +0 -560
  441. solace_agent_mesh/orchestrator/__init__.py +0 -0
  442. solace_agent_mesh/orchestrator/action_manager.py +0 -237
  443. solace_agent_mesh/orchestrator/components/__init__.py +0 -0
  444. solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +0 -58
  445. solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +0 -179
  446. solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +0 -107
  447. solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +0 -527
  448. solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +0 -260
  449. solace_agent_mesh/orchestrator/orchestrator_main.py +0 -172
  450. solace_agent_mesh/orchestrator/orchestrator_prompt.py +0 -539
  451. solace_agent_mesh/services/__init__.py +0 -0
  452. solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +0 -56
  453. solace_agent_mesh/services/bamboo_hr_service/__init__.py +0 -3
  454. solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +0 -182
  455. solace_agent_mesh/services/common/__init__.py +0 -4
  456. solace_agent_mesh/services/common/auto_expiry.py +0 -45
  457. solace_agent_mesh/services/common/singleton.py +0 -18
  458. solace_agent_mesh/services/file_service/__init__.py +0 -14
  459. solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
  460. solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +0 -149
  461. solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +0 -162
  462. solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +0 -64
  463. solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +0 -106
  464. solace_agent_mesh/services/file_service/file_service.py +0 -437
  465. solace_agent_mesh/services/file_service/file_service_constants.py +0 -54
  466. solace_agent_mesh/services/file_service/file_transformations.py +0 -141
  467. solace_agent_mesh/services/file_service/file_utils.py +0 -324
  468. solace_agent_mesh/services/file_service/transformers/__init__.py +0 -5
  469. solace_agent_mesh/services/history_service/__init__.py +0 -3
  470. solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
  471. solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +0 -54
  472. solace_agent_mesh/services/history_service/history_providers/file_history_provider.py +0 -74
  473. solace_agent_mesh/services/history_service/history_providers/index.py +0 -40
  474. solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +0 -33
  475. solace_agent_mesh/services/history_service/history_providers/mongodb_history_provider.py +0 -66
  476. solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +0 -66
  477. solace_agent_mesh/services/history_service/history_providers/sql_history_provider.py +0 -93
  478. solace_agent_mesh/services/history_service/history_service.py +0 -413
  479. solace_agent_mesh/services/history_service/long_term_memory/__init__.py +0 -0
  480. solace_agent_mesh/services/history_service/long_term_memory/long_term_memory.py +0 -399
  481. solace_agent_mesh/services/llm_service/components/llm_request_component.py +0 -340
  482. solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +0 -152
  483. solace_agent_mesh/services/middleware_service/__init__.py +0 -0
  484. solace_agent_mesh/services/middleware_service/middleware_service.py +0 -20
  485. solace_agent_mesh/templates/action.py +0 -38
  486. solace_agent_mesh/templates/agent.py +0 -29
  487. solace_agent_mesh/templates/agent.yaml +0 -70
  488. solace_agent_mesh/templates/gateway-config-template.yaml +0 -6
  489. solace_agent_mesh/templates/gateway-default-config.yaml +0 -28
  490. solace_agent_mesh/templates/gateway-flows.yaml +0 -78
  491. solace_agent_mesh/templates/gateway-header.yaml +0 -16
  492. solace_agent_mesh/templates/gateway_base.py +0 -15
  493. solace_agent_mesh/templates/gateway_input.py +0 -98
  494. solace_agent_mesh/templates/gateway_output.py +0 -71
  495. solace_agent_mesh/templates/plugin-gateway-default-config.yaml +0 -29
  496. solace_agent_mesh/templates/plugin-pyproject.toml +0 -30
  497. solace_agent_mesh/templates/rest-api-default-config.yaml +0 -31
  498. solace_agent_mesh/templates/rest-api-flows.yaml +0 -81
  499. solace_agent_mesh/templates/slack-default-config.yaml +0 -16
  500. solace_agent_mesh/templates/slack-flows.yaml +0 -81
  501. solace_agent_mesh/templates/solace-agent-mesh-default.yaml +0 -86
  502. solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +0 -8
  503. solace_agent_mesh/templates/web-default-config.yaml +0 -10
  504. solace_agent_mesh/templates/web-flows.yaml +0 -76
  505. solace_agent_mesh/tools/__init__.py +0 -0
  506. solace_agent_mesh/tools/components/__init__.py +0 -0
  507. solace_agent_mesh/tools/components/conversation_formatter.py +0 -111
  508. solace_agent_mesh/tools/components/file_resolver_component.py +0 -58
  509. solace_agent_mesh/tools/config/runtime_config.py +0 -26
  510. solace_agent_mesh-0.2.4.dist-info/METADATA +0 -176
  511. solace_agent_mesh-0.2.4.dist-info/RECORD +0 -193
  512. solace_agent_mesh-0.2.4.dist-info/entry_points.txt +0 -3
  513. /solace_agent_mesh/{agents → agent}/__init__.py +0 -0
  514. /solace_agent_mesh/{agents/global → agent/adk}/__init__.py +0 -0
  515. /solace_agent_mesh/{agents/global/actions → agent/protocol}/__init__.py +0 -0
  516. /solace_agent_mesh/{agents/image_processing → agent/sac}/__init__.py +0 -0
  517. /solace_agent_mesh/{agents/image_processing/actions → agent/utils}/__init__.py +0 -0
  518. /solace_agent_mesh/{agents/web_request → config_portal/backend/plugin_catalog}/__init__.py +0 -0
  519. /solace_agent_mesh/{agents/web_request/actions → evaluation}/__init__.py +0 -0
  520. /solace_agent_mesh/gateway/{components → http_sse}/__init__.py +0 -0
  521. {solace_agent_mesh-0.2.4.dist-info → solace_agent_mesh-1.0.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,141 @@
1
+ <div class="section">
2
+ <h2>📈 Performance Results</h2>
3
+ <div class="chart-container" style="position: relative; height: 500px; margin: 20px 0;">
4
+ <canvas id="performanceChart"></canvas>
5
+ </div>
6
+
7
+ <!-- Model Execution Times -->
8
+ <div class="execution-times-section" style="margin-top: 30px;">
9
+ <h3 style="color: #1f2937; margin-bottom: 15px; font-size: 1.2rem;">Model Execution Times</h3>
10
+ <div class="execution-times-grid" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px;">
11
+ {model_execution_times}
12
+ </div>
13
+ </div>
14
+
15
+ </div>
16
+
17
+ <!-- Chart.js Library -->
18
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
19
+
20
+ <!-- Chart Data and Configuration -->
21
+ <script>
22
+ // Chart data from backend
23
+ const CATEGORIES_DATA = {categories_data};
24
+ const CHART_DATASETS_DATA = {chart_datasets_data};
25
+
26
+ // Chart.js configuration for benchmark report - Grouped Bar Chart
27
+ const ctx = document.getElementById('performanceChart').getContext('2d');
28
+ const chart = new Chart(ctx, {
29
+ type: 'bar',
30
+ data: {
31
+ labels: CATEGORIES_DATA,
32
+ datasets: CHART_DATASETS_DATA
33
+ },
34
+ options: {
35
+ responsive: true,
36
+ maintainAspectRatio: false,
37
+ interaction: {
38
+ mode: 'index',
39
+ intersect: false,
40
+ },
41
+ plugins: {
42
+ title: {
43
+ display: true,
44
+ text: 'LLM Evaluation Scores by Category',
45
+ font: {
46
+ size: 20,
47
+ weight: 'bold'
48
+ },
49
+ color: '#000000',
50
+ padding: {
51
+ top: 10,
52
+ bottom: 30
53
+ }
54
+ },
55
+ legend: {
56
+ display: true,
57
+ position: 'top',
58
+ labels: {
59
+ color: '#000000',
60
+ padding: 20,
61
+ usePointStyle: true,
62
+ font: {
63
+ size: 12
64
+ }
65
+ }
66
+ },
67
+ tooltip: {
68
+ backgroundColor: 'rgba(0, 0, 0, 0.8)',
69
+ titleColor: '#ffffff',
70
+ bodyColor: '#ffffff',
71
+ borderColor: '#ffffff',
72
+ borderWidth: 1,
73
+ callbacks: {
74
+ label: function(context) {
75
+ const score = context.parsed.y;
76
+ const percentage = (score * 100).toFixed(1);
77
+ return `${context.dataset.label}: ${score.toFixed(3)} (${percentage}%)`;
78
+ }
79
+ }
80
+ }
81
+ },
82
+ scales: {
83
+ y: {
84
+ beginAtZero: true,
85
+ max: 1.0,
86
+ title: {
87
+ display: true,
88
+ text: 'Average LLM Evaluation Score',
89
+ color: '#000000',
90
+ font: {
91
+ size: 16,
92
+ weight: 'bold'
93
+ }
94
+ },
95
+ ticks: {
96
+ stepSize: 0.1,
97
+ color: '#000000',
98
+ font: {
99
+ size: 12
100
+ },
101
+ callback: function(value) {
102
+ return value.toFixed(1);
103
+ }
104
+ },
105
+ grid: {
106
+ color: 'rgba(0, 0, 0, 0.1)',
107
+ lineWidth: 1
108
+ }
109
+ },
110
+ x: {
111
+ title: {
112
+ display: true,
113
+ text: 'Task Categories',
114
+ color: '#000000',
115
+ font: {
116
+ size: 16,
117
+ weight: 'bold'
118
+ }
119
+ },
120
+ ticks: {
121
+ color: '#000000',
122
+ font: {
123
+ size: 12,
124
+ weight: 'bold'
125
+ }
126
+ },
127
+ grid: {
128
+ display: false
129
+ }
130
+ }
131
+ },
132
+ elements: {
133
+ bar: {
134
+ borderWidth: 1,
135
+ borderRadius: 4,
136
+ borderSkipped: false
137
+ }
138
+ }
139
+ }
140
+ });
141
+ </script>
@@ -0,0 +1,28 @@
1
+ <div class="section">
2
+ <h2>📋 Detailed Test Breakdown</h2>
3
+ <div class="breakdown-container">
4
+ {{BREAKDOWN_CONTENT}}
5
+ </div>
6
+ </div>
7
+
8
+ <script>
9
+ // JavaScript for category dropdown functionality
10
+ document.addEventListener('DOMContentLoaded', function() {
11
+ const categoryHeaders = document.querySelectorAll('.category-header');
12
+
13
+ categoryHeaders.forEach(header => {
14
+ header.addEventListener('click', function() {
15
+ const content = this.nextElementSibling;
16
+ const toggle = this.querySelector('.category-toggle');
17
+
18
+ if (content.classList.contains('active')) {
19
+ content.classList.remove('active');
20
+ toggle.textContent = '▶';
21
+ } else {
22
+ content.classList.add('active');
23
+ toggle.textContent = '▼';
24
+ }
25
+ });
26
+ });
27
+ });
28
+ </script>
@@ -0,0 +1,59 @@
1
+ <!-- Modal for test details -->
2
+ <div id="testModal" class="modal">
3
+ <div class="modal-content">
4
+ <div class="modal-header">
5
+ <h2 class="modal-title" id="modalTitle">Test Details</h2>
6
+ <button class="modal-close" onclick="closeModal()">&times;</button>
7
+ </div>
8
+ <div class="modal-description" id="modalDescription"></div>
9
+ <div class="modal-charts">
10
+ <div class="modal-chart-container">
11
+ <div class="modal-chart-header">
12
+ <div class="modal-chart-title">Response Scores by Model</div>
13
+ <button class="chart-toggle-btn" onclick="toggleChart('response')">Show Quartiles</button>
14
+ </div>
15
+ <div class="chart-flip-container" id="responseChartContainer">
16
+ <div class="chart-face chart-front">
17
+ <canvas id="responseChart"></canvas>
18
+ </div>
19
+ <div class="chart-face chart-back">
20
+ <canvas id="responseQuartileChart"></canvas>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <div class="modal-chart-container">
25
+ <div class="modal-chart-header">
26
+ <div class="modal-chart-title">Tool Scores by Model</div>
27
+ <button class="chart-toggle-btn" onclick="toggleChart('tool')">Show Quartiles</button>
28
+ </div>
29
+ <div class="chart-flip-container" id="toolChartContainer">
30
+ <div class="chart-face chart-front">
31
+ <canvas id="toolChart"></canvas>
32
+ </div>
33
+ <div class="chart-face chart-back">
34
+ <canvas id="toolQuartileChart"></canvas>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <div class="modal-runs-section">
40
+ <div class="runs-section-header">
41
+ <h3 class="runs-section-title">Individual Run Details</h3>
42
+ <div class="runs-controls">
43
+ <div class="runs-filter">
44
+ <label for="modelFilter">Filter by Model:</label>
45
+ <select id="modelFilter" onchange="filterRuns()">
46
+ <option value="all">All Models</option>
47
+ </select>
48
+ </div>
49
+ <div class="runs-count">
50
+ <span id="runsCount">Showing all runs</span>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div id="runsContainer" class="runs-container">
55
+ <!-- Individual runs will be populated here -->
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
@@ -0,0 +1,411 @@
1
+ // Chart creation functions for modal
2
+
3
+ function createResponseChart(testData) {
4
+ const ctx = document.getElementById('responseChart').getContext('2d');
5
+
6
+ const models = Object.keys(testData.model_scores);
7
+ const responseScores = models.map(model => testData.model_scores[model]);
8
+
9
+ responseChart = new Chart(ctx, {
10
+ type: 'bar',
11
+ data: {
12
+ labels: models.map(model => model),
13
+ datasets: [{
14
+ label: 'Response Score',
15
+ data: responseScores,
16
+ backgroundColor: responseScores.map(score => getScoreColor(score)),
17
+ borderColor: responseScores.map(score => getScoreColor(score)),
18
+ borderWidth: 1
19
+ }]
20
+ },
21
+ options: {
22
+ responsive: true,
23
+ maintainAspectRatio: false,
24
+ scales: {
25
+ y: {
26
+ beginAtZero: true,
27
+ max: 1,
28
+ ticks: {
29
+ color: '#000',
30
+ font: {
31
+ size: 12,
32
+ weight: 'bold'
33
+ }
34
+ }
35
+ },
36
+ x: {
37
+ ticks: {
38
+ color: '#000',
39
+ font: {
40
+ size: 10,
41
+ weight: 'normal'
42
+ }
43
+ }
44
+ }
45
+ },
46
+ plugins: {
47
+ legend: {
48
+ display: false
49
+ }
50
+ }
51
+ }
52
+ });
53
+ }
54
+
55
+ function createToolChart(testData) {
56
+ const ctx = document.getElementById('toolChart').getContext('2d');
57
+
58
+ const models = Object.keys(testData.model_scores);
59
+ const toolScores = models.map(model => {
60
+ // Use actual tool scores if available, otherwise generate mock data
61
+ if (testData.tool_scores && testData.tool_scores[model] !== undefined) {
62
+ return testData.tool_scores[model];
63
+ } else {
64
+ // Generate mock tool scores based on response scores with some variation
65
+ const responseScore = testData.model_scores[model];
66
+ return Math.max(0, Math.min(1, responseScore + (Math.random() - 0.5) * 0.3));
67
+ }
68
+ });
69
+
70
+ toolChart = new Chart(ctx, {
71
+ type: 'bar',
72
+ data: {
73
+ labels: models.map(model => model),
74
+ datasets: [{
75
+ label: 'Tool Score',
76
+ data: toolScores,
77
+ backgroundColor: toolScores.map(score => getScoreColor(score)),
78
+ borderColor: toolScores.map(score => getScoreColor(score)),
79
+ borderWidth: 1
80
+ }]
81
+ },
82
+ options: {
83
+ responsive: true,
84
+ maintainAspectRatio: false,
85
+ scales: {
86
+ y: {
87
+ beginAtZero: true,
88
+ max: 1,
89
+ ticks: {
90
+ color: '#000',
91
+ font: {
92
+ size: 12,
93
+ weight: 'bold'
94
+ }
95
+ }
96
+ },
97
+ x: {
98
+ ticks: {
99
+ color: '#000',
100
+ font: {
101
+ size: 10,
102
+ weight: 'normal'
103
+ }
104
+ }
105
+ }
106
+ },
107
+ plugins: {
108
+ legend: {
109
+ display: false
110
+ }
111
+ }
112
+ }
113
+ });
114
+ }
115
+
116
+ function createResponseQuartileChart(testData) {
117
+ const ctx = document.getElementById('responseQuartileChart').getContext('2d');
118
+
119
+ const models = Object.keys(testData.model_scores);
120
+ const responseScores = models.map(model => testData.model_scores[model]);
121
+
122
+ // Create custom boxplot data
123
+ const boxplotData = models.map((model, index) => {
124
+ // Check if we have individual run data for this model
125
+ const individualRuns = testData.individual_runs && testData.individual_runs[model];
126
+
127
+ if (individualRuns && individualRuns.length > 1) {
128
+ // Use actual individual run data to calculate real quartiles
129
+ const scores = individualRuns.map(run => run.response_score).sort((a, b) => a - b);
130
+ const quartileData = calculateActualQuartiles(scores);
131
+
132
+ return {
133
+ x: index,
134
+ min: quartileData.min,
135
+ q1: quartileData.q1,
136
+ median: quartileData.median,
137
+ q3: quartileData.q3,
138
+ max: quartileData.max,
139
+ outliers: quartileData.outliers
140
+ };
141
+ } else {
142
+ // Single data point - show as a line (all values the same)
143
+ const score = testData.model_scores[model];
144
+ return {
145
+ x: index,
146
+ min: score,
147
+ q1: score,
148
+ median: score,
149
+ q3: score,
150
+ max: score,
151
+ outliers: []
152
+ };
153
+ }
154
+ });
155
+
156
+ responseQuartileChart = new Chart(ctx, {
157
+ type: 'boxplot',
158
+ data: {
159
+ labels: models,
160
+ datasets: [{
161
+ label: 'Response Score Distribution',
162
+ data: boxplotData,
163
+ backgroundColor: responseScores.map(score => getScoreColor(score) + '80'),
164
+ borderColor: responseScores.map(score => getScoreColor(score)),
165
+ borderWidth: 2,
166
+ outlierColor: '#999999',
167
+ outlierRadius: 3
168
+ }]
169
+ },
170
+ options: {
171
+ responsive: true,
172
+ maintainAspectRatio: false,
173
+ scales: {
174
+ y: {
175
+ beginAtZero: true,
176
+ max: 1,
177
+ ticks: {
178
+ color: '#000',
179
+ font: {
180
+ size: 12,
181
+ weight: 'bold'
182
+ }
183
+ }
184
+ },
185
+ x: {
186
+ ticks: {
187
+ color: '#000',
188
+ font: {
189
+ size: 10,
190
+ weight: 'normal'
191
+ }
192
+ }
193
+ }
194
+ },
195
+ plugins: {
196
+ legend: {
197
+ display: false
198
+ },
199
+ tooltip: {
200
+ callbacks: {
201
+ label: function(context) {
202
+ const data = context.parsed;
203
+ if (data.min === data.max) {
204
+ return `Single value: ${data.min.toFixed(3)}`;
205
+ }
206
+ return [
207
+ `Min: ${data.min.toFixed(3)}`,
208
+ `Q1: ${data.q1.toFixed(3)}`,
209
+ `Median: ${data.median.toFixed(3)}`,
210
+ `Q3: ${data.q3.toFixed(3)}`,
211
+ `Max: ${data.max.toFixed(3)}`
212
+ ];
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
218
+ });
219
+ }
220
+
221
+ function createToolQuartileChart(testData) {
222
+ const ctx = document.getElementById('toolQuartileChart').getContext('2d');
223
+
224
+ const models = Object.keys(testData.model_scores);
225
+ const toolScores = models.map(model => {
226
+ if (testData.tool_scores && testData.tool_scores[model] !== undefined) {
227
+ return testData.tool_scores[model];
228
+ } else {
229
+ const responseScore = testData.model_scores[model];
230
+ return Math.max(0, Math.min(1, responseScore + (Math.random() - 0.5) * 0.3));
231
+ }
232
+ });
233
+
234
+ // Create custom boxplot data
235
+ const boxplotData = models.map((model, index) => {
236
+ // Check if we have individual run data for this model
237
+ const individualRuns = testData.individual_runs && testData.individual_runs[model];
238
+
239
+ if (individualRuns && individualRuns.length > 1) {
240
+ // Use actual individual run data to calculate real quartiles
241
+ const scores = individualRuns.map(run => run.tool_score).sort((a, b) => a - b);
242
+ const quartileData = calculateActualQuartiles(scores);
243
+
244
+ return {
245
+ x: index,
246
+ min: quartileData.min,
247
+ q1: quartileData.q1,
248
+ median: quartileData.median,
249
+ q3: quartileData.q3,
250
+ max: quartileData.max,
251
+ outliers: quartileData.outliers
252
+ };
253
+ } else {
254
+ // Single data point - show as a line (all values the same)
255
+ const score = toolScores[index];
256
+ return {
257
+ x: index,
258
+ min: score,
259
+ q1: score,
260
+ median: score,
261
+ q3: score,
262
+ max: score,
263
+ outliers: []
264
+ };
265
+ }
266
+ });
267
+
268
+ toolQuartileChart = new Chart(ctx, {
269
+ type: 'boxplot',
270
+ data: {
271
+ labels: models,
272
+ datasets: [{
273
+ label: 'Tool Score Distribution',
274
+ data: boxplotData,
275
+ backgroundColor: toolScores.map(score => getScoreColor(score) + '80'),
276
+ borderColor: toolScores.map(score => getScoreColor(score)),
277
+ borderWidth: 2,
278
+ outlierColor: '#999999',
279
+ outlierRadius: 3
280
+ }]
281
+ },
282
+ options: {
283
+ responsive: true,
284
+ maintainAspectRatio: false,
285
+ scales: {
286
+ y: {
287
+ beginAtZero: true,
288
+ max: 1,
289
+ ticks: {
290
+ color: '#000',
291
+ font: {
292
+ size: 12,
293
+ weight: 'bold'
294
+ }
295
+ }
296
+ },
297
+ x: {
298
+ ticks: {
299
+ color: '#000',
300
+ font: {
301
+ size: 10,
302
+ weight: 'normal'
303
+ }
304
+ }
305
+ }
306
+ },
307
+ plugins: {
308
+ legend: {
309
+ display: false
310
+ },
311
+ tooltip: {
312
+ callbacks: {
313
+ label: function(context) {
314
+ const data = context.parsed;
315
+ if (data.min === data.max) {
316
+ return `Single value: ${data.min.toFixed(3)}`;
317
+ }
318
+ return [
319
+ `Min: ${data.min.toFixed(3)}`,
320
+ `Q1: ${data.q1.toFixed(3)}`,
321
+ `Median: ${data.median.toFixed(3)}`,
322
+ `Q3: ${data.q3.toFixed(3)}`,
323
+ `Max: ${data.max.toFixed(3)}`
324
+ ];
325
+ }
326
+ }
327
+ }
328
+ }
329
+ }
330
+ });
331
+ }
332
+
333
+ function calculateActualQuartiles(sortedScores) {
334
+ const n = sortedScores.length;
335
+
336
+ if (n === 0) {
337
+ return { min: 0, q1: 0, median: 0, q3: 0, max: 0, outliers: [] };
338
+ }
339
+
340
+ if (n === 1) {
341
+ const value = sortedScores[0];
342
+ return { min: value, q1: value, median: value, q3: value, max: value, outliers: [] };
343
+ }
344
+
345
+ // Calculate quartiles using the standard method
346
+ const min = sortedScores[0];
347
+ const max = sortedScores[n - 1];
348
+
349
+ // Calculate median (Q2)
350
+ let median;
351
+ if (n % 2 === 0) {
352
+ median = (sortedScores[n / 2 - 1] + sortedScores[n / 2]) / 2;
353
+ } else {
354
+ median = sortedScores[Math.floor(n / 2)];
355
+ }
356
+
357
+ // Calculate Q1 (first quartile)
358
+ const q1Index = Math.floor(n / 4);
359
+ let q1;
360
+ if (n % 4 === 0) {
361
+ q1 = (sortedScores[q1Index - 1] + sortedScores[q1Index]) / 2;
362
+ } else {
363
+ q1 = sortedScores[q1Index];
364
+ }
365
+
366
+ // Calculate Q3 (third quartile)
367
+ const q3Index = Math.floor(3 * n / 4);
368
+ let q3;
369
+ if (n % 4 === 0) {
370
+ q3 = (sortedScores[q3Index - 1] + sortedScores[q3Index]) / 2;
371
+ } else {
372
+ q3 = sortedScores[q3Index];
373
+ }
374
+
375
+ // For now, we'll not calculate outliers to keep it simple
376
+ // In a full implementation, outliers would be values outside 1.5 * IQR from Q1/Q3
377
+
378
+ return {
379
+ min: min,
380
+ q1: q1,
381
+ median: median,
382
+ q3: q3,
383
+ max: max,
384
+ outliers: []
385
+ };
386
+ }
387
+
388
+ function getScoreColor(score) {
389
+ if (score >= 0.7) {
390
+ return '#27ae60'; // Green
391
+ } else if (score >= 0.4) {
392
+ return '#f39c12'; // Orange
393
+ } else {
394
+ return '#e74c3c'; // Red
395
+ }
396
+ }
397
+
398
+ // Close modal when clicking outside of it
399
+ window.onclick = function(event) {
400
+ const modal = document.getElementById('testModal');
401
+ if (event.target === modal) {
402
+ closeModal();
403
+ }
404
+ }
405
+
406
+ // Close modal with Escape key
407
+ document.addEventListener('keydown', function(event) {
408
+ if (event.key === 'Escape') {
409
+ closeModal();
410
+ }
411
+ });