sunholo 0.144.9__tar.gz → 0.144.11__tar.gz

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 (204) hide show
  1. {sunholo-0.144.9/src/sunholo.egg-info → sunholo-0.144.11}/PKG-INFO +1 -1
  2. {sunholo-0.144.9 → sunholo-0.144.11}/pyproject.toml +1 -1
  3. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/fastapi/vac_routes.py +2 -114
  4. {sunholo-0.144.9 → sunholo-0.144.11/src/sunholo.egg-info}/PKG-INFO +1 -1
  5. {sunholo-0.144.9 → sunholo-0.144.11}/LICENSE.txt +0 -0
  6. {sunholo-0.144.9 → sunholo-0.144.11}/MANIFEST.in +0 -0
  7. {sunholo-0.144.9 → sunholo-0.144.11}/README.md +0 -0
  8. {sunholo-0.144.9 → sunholo-0.144.11}/setup.cfg +0 -0
  9. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/__init__.py +0 -0
  10. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/a2a/__init__.py +0 -0
  11. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/a2a/agent_card.py +0 -0
  12. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/a2a/task_manager.py +0 -0
  13. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/a2a/vac_a2a_agent.py +0 -0
  14. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/__init__.py +0 -0
  15. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/chat_history.py +0 -0
  16. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  17. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/fastapi/__init__.py +0 -0
  18. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/fastapi/base.py +0 -0
  19. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  20. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/flask/__init__.py +0 -0
  21. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/flask/base.py +0 -0
  22. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/flask/vac_routes.py +0 -0
  23. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/langserve.py +0 -0
  24. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/pubsub.py +0 -0
  25. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/route.py +0 -0
  26. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/special_commands.py +0 -0
  27. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/agents/swagger.py +0 -0
  28. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/archive/__init__.py +0 -0
  29. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/archive/archive.py +0 -0
  30. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/auth/__init__.py +0 -0
  31. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/auth/gcloud.py +0 -0
  32. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/auth/refresh.py +0 -0
  33. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/auth/run.py +0 -0
  34. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/azure/__init__.py +0 -0
  35. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/azure/auth.py +0 -0
  36. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/azure/blobs.py +0 -0
  37. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/azure/event_grid.py +0 -0
  38. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/bots/__init__.py +0 -0
  39. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/bots/discord.py +0 -0
  40. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/bots/github_webhook.py +0 -0
  41. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/bots/webapp.py +0 -0
  42. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/__init__.py +0 -0
  43. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/azure.py +0 -0
  44. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/doc_handling.py +0 -0
  45. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/encode_metadata.py +0 -0
  46. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/images.py +0 -0
  47. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/loaders.py +0 -0
  48. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/message_data.py +0 -0
  49. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/pdfs.py +0 -0
  50. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/process_chunker_data.py +0 -0
  51. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/publish.py +0 -0
  52. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/pubsub.py +0 -0
  53. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/chunker/splitter.py +0 -0
  54. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/__init__.py +0 -0
  55. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/chat_vac.py +0 -0
  56. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/cli.py +0 -0
  57. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/cli_init.py +0 -0
  58. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/configs.py +0 -0
  59. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/deploy.py +0 -0
  60. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/embedder.py +0 -0
  61. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/merge_texts.py +0 -0
  62. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/run_proxy.py +0 -0
  63. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/sun_rich.py +0 -0
  64. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/swagger.py +0 -0
  65. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/cli/vertex.py +0 -0
  66. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/components/__init__.py +0 -0
  67. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/components/llm.py +0 -0
  68. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/components/retriever.py +0 -0
  69. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/components/vectorstore.py +0 -0
  70. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/custom_logging.py +0 -0
  71. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/__init__.py +0 -0
  72. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/alloydb.py +0 -0
  73. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/alloydb_client.py +0 -0
  74. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/database.py +0 -0
  75. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/lancedb.py +0 -0
  76. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  77. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  78. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  79. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  80. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  81. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/sql/sb/setup.sql +0 -0
  82. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/static_dbs.py +0 -0
  83. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/database/uuid.py +0 -0
  84. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/__init__.py +0 -0
  85. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  86. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/cli.py +0 -0
  87. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/create_new.py +0 -0
  88. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  89. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  90. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/embedder/__init__.py +0 -0
  91. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/embedder/embed_chunk.py +0 -0
  92. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/embedder/embed_metadata.py +0 -0
  93. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/excel/__init__.py +0 -0
  94. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/excel/plugin.py +0 -0
  95. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/__init__.py +0 -0
  96. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/add_file.py +0 -0
  97. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/download_folder.py +0 -0
  98. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/download_gcs_text.py +0 -0
  99. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/download_url.py +0 -0
  100. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/extract_and_sign.py +0 -0
  101. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/gcs/metadata.py +0 -0
  102. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/__init__.py +0 -0
  103. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/file_handling.py +0 -0
  104. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/genaiv2.py +0 -0
  105. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/images.py +0 -0
  106. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/init.py +0 -0
  107. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/process_funcs_cls.py +0 -0
  108. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/genai/safety.py +0 -0
  109. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/invoke/__init__.py +0 -0
  110. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/invoke/async_class.py +0 -0
  111. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/invoke/direct_vac_func.py +0 -0
  112. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  113. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/langchain_types.py +0 -0
  114. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/langfuse/__init__.py +0 -0
  115. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/langfuse/callback.py +0 -0
  116. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/langfuse/evals.py +0 -0
  117. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/langfuse/prompts.py +0 -0
  118. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/llamaindex/__init__.py +0 -0
  119. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/llamaindex/get_files.py +0 -0
  120. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/llamaindex/import_files.py +0 -0
  121. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  122. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/llamaindex/user_history.py +0 -0
  123. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/lookup/__init__.py +0 -0
  124. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/lookup/model_lookup.yaml +0 -0
  125. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/__init__.py +0 -0
  126. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/cli.py +0 -0
  127. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/cli_fastmcp.py +0 -0
  128. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/extensible_mcp_server.py +0 -0
  129. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/mcp_manager.py +0 -0
  130. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/sse_utils.py +0 -0
  131. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/stdio_http_bridge.py +0 -0
  132. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/vac_mcp_server.py +0 -0
  133. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/vac_mcp_server_fastmcp.py +0 -0
  134. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/mcp/vac_tools.py +0 -0
  135. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/ollama/__init__.py +0 -0
  136. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/ollama/ollama_images.py +0 -0
  137. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/pubsub/__init__.py +0 -0
  138. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/pubsub/process_pubsub.py +0 -0
  139. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  140. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/qna/__init__.py +0 -0
  141. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/qna/parsers.py +0 -0
  142. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/qna/retry.py +0 -0
  143. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/senses/__init__.py +0 -0
  144. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/senses/stream_voice.py +0 -0
  145. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/streaming/__init__.py +0 -0
  146. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/streaming/content_buffer.py +0 -0
  147. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/streaming/langserve.py +0 -0
  148. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/streaming/stream_lookup.py +0 -0
  149. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/streaming/streaming.py +0 -0
  150. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/summarise/__init__.py +0 -0
  151. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/summarise/summarise.py +0 -0
  152. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/__init__.py +0 -0
  153. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/agent_service.py +0 -0
  154. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/app.py +0 -0
  155. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/my_log.py +0 -0
  156. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  157. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  158. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/agent/vac_service.py +0 -0
  159. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/project/__init__.py +0 -0
  160. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/project/app.py +0 -0
  161. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/project/my_log.py +0 -0
  162. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/project/vac_service.py +0 -0
  163. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/system_services/__init__.py +0 -0
  164. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/system_services/app.py +0 -0
  165. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/templates/system_services/my_log.py +0 -0
  166. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/terraform/__init__.py +0 -0
  167. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/terraform/tfvars_editor.py +0 -0
  168. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/tools/__init__.py +0 -0
  169. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/tools/web_browser.py +0 -0
  170. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/__init__.py +0 -0
  171. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/api_key.py +0 -0
  172. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/big_context.py +0 -0
  173. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/config.py +0 -0
  174. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/config_class.py +0 -0
  175. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/config_schema.py +0 -0
  176. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/gcp.py +0 -0
  177. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/gcp_project.py +0 -0
  178. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/mime.py +0 -0
  179. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/parsers.py +0 -0
  180. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/proto_convert.py +0 -0
  181. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/timedelta.py +0 -0
  182. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/user_ids.py +0 -0
  183. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/utils/version.py +0 -0
  184. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/__init__.py +0 -0
  185. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/extensions_call.py +0 -0
  186. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/extensions_class.py +0 -0
  187. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/genai_functions.py +0 -0
  188. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/init.py +0 -0
  189. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/memory_tools.py +0 -0
  190. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/safety.py +0 -0
  191. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  192. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo.egg-info/SOURCES.txt +0 -0
  193. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo.egg-info/dependency_links.txt +0 -0
  194. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo.egg-info/entry_points.txt +0 -0
  195. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo.egg-info/requires.txt +0 -0
  196. {sunholo-0.144.9 → sunholo-0.144.11}/src/sunholo.egg-info/top_level.txt +0 -0
  197. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_async.py +0 -0
  198. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_async_genai2.py +0 -0
  199. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_chat_history.py +0 -0
  200. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_config.py +0 -0
  201. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_genai2.py +0 -0
  202. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_unstructured.py +0 -0
  203. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_vac_routes_fastapi.py +0 -0
  204. {sunholo-0.144.9 → sunholo-0.144.11}/tests/test_vac_routes_mcp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.144.9
3
+ Version: 0.144.11
4
4
  Summary: AI DevOps - a package to help deploy GenAI to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.144.9"
7
+ version = "0.144.11"
8
8
  description = "AI DevOps - a package to help deploy GenAI to the Cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -720,9 +720,7 @@ class VACRoutesFastAPI:
720
720
  log.error(f"Failed to mount MCP server: {e}")
721
721
  raise RuntimeError(f"MCP server initialization failed: {e}") from e
722
722
 
723
- # MCP debug endpoint - add if we have a MCP server instance
724
- if self.vac_mcp_server:
725
- self.app.get("/debug/mcp")(self.handle_mcp_debug)
723
+ # MCP debug endpoint removed to avoid complications with MCP mounting
726
724
 
727
725
  # A2A agent endpoints
728
726
  if self.enable_a2a_agent:
@@ -1515,114 +1513,4 @@ class VACRoutesFastAPI:
1515
1513
  return self.vac_mcp_server.list_resources()
1516
1514
  return []
1517
1515
 
1518
- async def handle_mcp_debug(self):
1519
- """
1520
- Debug endpoint to check MCP server status and list tools.
1521
-
1522
- Returns:
1523
- JSON with MCP server status, tools list, and diagnostic information
1524
- """
1525
- import json
1526
-
1527
- has_mcp = self.vac_mcp_server is not None
1528
- mcp_tools = []
1529
- mcp_response = None
1530
-
1531
- # Try to call the MCP endpoint the same way clients do
1532
- if has_mcp:
1533
- try:
1534
- # Make internal request to MCP server to get tools
1535
- import httpx
1536
-
1537
- # Get the base URL from the current request
1538
- from fastapi import Request
1539
- from starlette.requests import Request as StarletteRequest
1540
-
1541
- # Try common ports since we don't have request context
1542
- ports_to_try = [8000, 8001, 8080, 3000, 1956]
1543
- successful_response = None
1544
-
1545
- for port in ports_to_try:
1546
- try:
1547
- base_url = f"http://localhost:{port}"
1548
- async with httpx.AsyncClient(timeout=2.0) as client:
1549
- response = await client.post(
1550
- f"{base_url}/mcp/mcp",
1551
- json={
1552
- "jsonrpc": "2.0",
1553
- "id": 1,
1554
- "method": "tools/list"
1555
- },
1556
- headers={
1557
- "Content-Type": "application/json",
1558
- "Accept": "application/json, text/event-stream"
1559
- }
1560
- )
1561
-
1562
- if response.status_code == 200:
1563
- successful_response = response
1564
- break # Found working port
1565
- except (httpx.ConnectError, httpx.TimeoutException):
1566
- continue # Try next port
1567
- except Exception:
1568
- continue # Try next port
1569
-
1570
- if successful_response:
1571
- # Parse SSE (Server-Sent Events) response
1572
- text = successful_response.text
1573
- for line in text.split('\n'):
1574
- if line.startswith('data: '):
1575
- # Extract JSON from the data line
1576
- json_str = line[6:] # Remove 'data: ' prefix
1577
- try:
1578
- mcp_response = json.loads(json_str)
1579
- if "result" in mcp_response and "tools" in mcp_response["result"]:
1580
- for tool in mcp_response["result"]["tools"]:
1581
- mcp_tools.append({
1582
- "name": tool.get("name"),
1583
- "description": tool.get("description", "No description")[:100] + "..." if len(tool.get("description", "")) > 100 else tool.get("description", "No description")
1584
- })
1585
- break # We found the data we need
1586
- except json.JSONDecodeError:
1587
- continue
1588
- else:
1589
- mcp_response = {
1590
- "error": "Could not connect to MCP server on any common port",
1591
- "ports_tried": ports_to_try
1592
- }
1593
-
1594
- except Exception as e:
1595
- log.error(f"Error calling MCP endpoint in debug: {e}")
1596
- mcp_response = {"error": str(e)}
1597
-
1598
- # Fallback: try to get tools from internal MCP server state
1599
- try:
1600
- # Get tools from the FastMCP server directly
1601
- if hasattr(self.vac_mcp_server, 'server'):
1602
- mcp_server = self.vac_mcp_server.server
1603
- if hasattr(mcp_server, '_tools'):
1604
- for tool_name, tool_func in mcp_server._tools.items():
1605
- mcp_tools.append({
1606
- "name": tool_name,
1607
- "description": getattr(tool_func, '__doc__', 'No description') or 'No description'
1608
- })
1609
- except Exception as inner_e:
1610
- log.error(f"Error getting MCP tools from internal state: {inner_e}")
1611
-
1612
- # Check for pending tools that haven't been registered yet
1613
- pending_tools = len(self._custom_mcp_tools) if hasattr(self, '_custom_mcp_tools') else 0
1614
-
1615
- return {
1616
- "mcp_enabled": has_mcp,
1617
- "has_mcp_server": has_mcp,
1618
- "mcp_tools_count": len(mcp_tools),
1619
- "mcp_tools": [tool["name"] for tool in mcp_tools] if mcp_tools else [],
1620
- "tool_details": mcp_tools,
1621
- "pending_tools": pending_tools,
1622
- "message": f"MCP server is available at /mcp endpoint with {len(mcp_tools)} tools" if has_mcp and mcp_tools else "MCP server is available at /mcp endpoint" if has_mcp else "MCP server not configured",
1623
- "debug_info": {
1624
- "mcp_server_type": type(self.vac_mcp_server).__name__ if self.vac_mcp_server else None,
1625
- "has_custom_tools": len(self._custom_mcp_tools) > 0 if hasattr(self, '_custom_mcp_tools') else False,
1626
- "has_custom_resources": len(self._custom_mcp_resources) > 0 if hasattr(self, '_custom_mcp_resources') else False
1627
- }
1628
- }
1516
+ # handle_mcp_debug method removed - /debug/mcp endpoint no longer supported
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.144.9
3
+ Version: 0.144.11
4
4
  Summary: AI DevOps - a package to help deploy GenAI to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
File without changes
File without changes
File without changes
File without changes