sunholo 0.143.10__tar.gz → 0.143.12__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 (195) hide show
  1. {sunholo-0.143.10/src/sunholo.egg-info → sunholo-0.143.12}/PKG-INFO +2 -1
  2. {sunholo-0.143.10 → sunholo-0.143.12}/README.md +1 -0
  3. {sunholo-0.143.10 → sunholo-0.143.12}/pyproject.toml +1 -1
  4. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/flask/vac_routes.py +66 -7
  5. {sunholo-0.143.10 → sunholo-0.143.12/src/sunholo.egg-info}/PKG-INFO +2 -1
  6. {sunholo-0.143.10 → sunholo-0.143.12}/LICENSE.txt +0 -0
  7. {sunholo-0.143.10 → sunholo-0.143.12}/MANIFEST.in +0 -0
  8. {sunholo-0.143.10 → sunholo-0.143.12}/setup.cfg +0 -0
  9. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/__init__.py +0 -0
  10. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/a2a/__init__.py +0 -0
  11. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/a2a/agent_card.py +0 -0
  12. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/a2a/task_manager.py +0 -0
  13. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/a2a/vac_a2a_agent.py +0 -0
  14. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/__init__.py +0 -0
  15. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/chat_history.py +0 -0
  16. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  17. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/fastapi/__init__.py +0 -0
  18. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/fastapi/base.py +0 -0
  19. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  20. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/flask/__init__.py +0 -0
  21. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/flask/base.py +0 -0
  22. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/route.py +0 -0
  25. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/auth/gcloud.py +0 -0
  31. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/auth/refresh.py +0 -0
  32. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/auth/run.py +0 -0
  33. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/azure/__init__.py +0 -0
  34. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/azure/auth.py +0 -0
  35. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/azure/blobs.py +0 -0
  36. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/azure/event_grid.py +0 -0
  37. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/bots/__init__.py +0 -0
  38. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/bots/discord.py +0 -0
  39. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/bots/github_webhook.py +0 -0
  40. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/bots/webapp.py +0 -0
  41. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/__init__.py +0 -0
  42. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/azure.py +0 -0
  43. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/doc_handling.py +0 -0
  44. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/encode_metadata.py +0 -0
  45. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/images.py +0 -0
  46. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/loaders.py +0 -0
  47. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/message_data.py +0 -0
  48. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/pdfs.py +0 -0
  49. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/process_chunker_data.py +0 -0
  50. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/publish.py +0 -0
  51. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/pubsub.py +0 -0
  52. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/chunker/splitter.py +0 -0
  53. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/__init__.py +0 -0
  54. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/chat_vac.py +0 -0
  55. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/cli.py +0 -0
  56. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/cli_init.py +0 -0
  57. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/configs.py +0 -0
  58. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/deploy.py +0 -0
  59. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/embedder.py +0 -0
  60. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/merge_texts.py +0 -0
  61. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/run_proxy.py +0 -0
  62. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/sun_rich.py +0 -0
  63. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/swagger.py +0 -0
  64. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/cli/vertex.py +0 -0
  65. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/components/__init__.py +0 -0
  66. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/components/llm.py +0 -0
  67. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/components/retriever.py +0 -0
  68. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/components/vectorstore.py +0 -0
  69. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/custom_logging.py +0 -0
  70. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/__init__.py +0 -0
  71. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/alloydb.py +0 -0
  72. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/alloydb_client.py +0 -0
  73. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/database.py +0 -0
  74. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/lancedb.py +0 -0
  75. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  76. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  77. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  78. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  79. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  80. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/sql/sb/setup.sql +0 -0
  81. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/static_dbs.py +0 -0
  82. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/database/uuid.py +0 -0
  83. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/__init__.py +0 -0
  84. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  85. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/cli.py +0 -0
  86. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/create_new.py +0 -0
  87. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  88. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  89. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/embedder/__init__.py +0 -0
  90. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/embedder/embed_chunk.py +0 -0
  91. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/embedder/embed_metadata.py +0 -0
  92. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/excel/__init__.py +0 -0
  93. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/excel/plugin.py +0 -0
  94. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/__init__.py +0 -0
  95. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/add_file.py +0 -0
  96. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/download_folder.py +0 -0
  97. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/download_gcs_text.py +0 -0
  98. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/download_url.py +0 -0
  99. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/extract_and_sign.py +0 -0
  100. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/gcs/metadata.py +0 -0
  101. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/__init__.py +0 -0
  102. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/file_handling.py +0 -0
  103. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/genaiv2.py +0 -0
  104. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/images.py +0 -0
  105. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/init.py +0 -0
  106. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/process_funcs_cls.py +0 -0
  107. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/genai/safety.py +0 -0
  108. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/invoke/__init__.py +0 -0
  109. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/invoke/async_class.py +0 -0
  110. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/invoke/direct_vac_func.py +0 -0
  111. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  112. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/langchain_types.py +0 -0
  113. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/langfuse/__init__.py +0 -0
  114. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/langfuse/callback.py +0 -0
  115. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/langfuse/evals.py +0 -0
  116. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/langfuse/prompts.py +0 -0
  117. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/llamaindex/__init__.py +0 -0
  118. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/llamaindex/get_files.py +0 -0
  119. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/llamaindex/import_files.py +0 -0
  120. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  121. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/llamaindex/user_history.py +0 -0
  122. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/lookup/__init__.py +0 -0
  123. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/lookup/model_lookup.yaml +0 -0
  124. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/mcp/__init__.py +0 -0
  125. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/mcp/cli.py +0 -0
  126. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/mcp/mcp_manager.py +0 -0
  127. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/mcp/vac_mcp_server.py +0 -0
  128. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/ollama/__init__.py +0 -0
  129. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/ollama/ollama_images.py +0 -0
  130. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/pubsub/__init__.py +0 -0
  131. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/pubsub/process_pubsub.py +0 -0
  132. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  133. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/qna/__init__.py +0 -0
  134. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/qna/parsers.py +0 -0
  135. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/qna/retry.py +0 -0
  136. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/senses/__init__.py +0 -0
  137. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/senses/stream_voice.py +0 -0
  138. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/streaming/__init__.py +0 -0
  139. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/streaming/content_buffer.py +0 -0
  140. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/streaming/langserve.py +0 -0
  141. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/streaming/stream_lookup.py +0 -0
  142. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/streaming/streaming.py +0 -0
  143. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/summarise/__init__.py +0 -0
  144. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/summarise/summarise.py +0 -0
  145. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/__init__.py +0 -0
  146. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/agent_service.py +0 -0
  147. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/app.py +0 -0
  148. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/my_log.py +0 -0
  149. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  150. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  151. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/agent/vac_service.py +0 -0
  152. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/project/__init__.py +0 -0
  153. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/project/app.py +0 -0
  154. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/project/my_log.py +0 -0
  155. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/project/vac_service.py +0 -0
  156. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/system_services/__init__.py +0 -0
  157. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/system_services/app.py +0 -0
  158. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/templates/system_services/my_log.py +0 -0
  159. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/terraform/__init__.py +0 -0
  160. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/terraform/tfvars_editor.py +0 -0
  161. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/tools/__init__.py +0 -0
  162. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/tools/web_browser.py +0 -0
  163. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/__init__.py +0 -0
  164. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/api_key.py +0 -0
  165. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/big_context.py +0 -0
  166. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/config.py +0 -0
  167. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/config_class.py +0 -0
  168. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/config_schema.py +0 -0
  169. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/gcp.py +0 -0
  170. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/gcp_project.py +0 -0
  171. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/mime.py +0 -0
  172. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/parsers.py +0 -0
  173. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/proto_convert.py +0 -0
  174. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/timedelta.py +0 -0
  175. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/user_ids.py +0 -0
  176. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/utils/version.py +0 -0
  177. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/__init__.py +0 -0
  178. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/extensions_call.py +0 -0
  179. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/extensions_class.py +0 -0
  180. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/genai_functions.py +0 -0
  181. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/init.py +0 -0
  182. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/memory_tools.py +0 -0
  183. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/safety.py +0 -0
  184. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  185. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo.egg-info/SOURCES.txt +0 -0
  186. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo.egg-info/dependency_links.txt +0 -0
  187. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo.egg-info/entry_points.txt +0 -0
  188. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo.egg-info/requires.txt +0 -0
  189. {sunholo-0.143.10 → sunholo-0.143.12}/src/sunholo.egg-info/top_level.txt +0 -0
  190. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_async.py +0 -0
  191. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_async_genai2.py +0 -0
  192. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_chat_history.py +0 -0
  193. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_config.py +0 -0
  194. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_genai2.py +0 -0
  195. {sunholo-0.143.10 → sunholo-0.143.12}/tests/test_unstructured.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.143.10
3
+ Version: 0.143.12
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
@@ -288,6 +288,7 @@ sunholo deploy my-agent
288
288
 
289
289
  - **Web Frameworks**: Flask and FastAPI templates
290
290
  - **AI Frameworks**: LangChain and LlamaIndex integration
291
+ - **MCP Integration**: Model Context Protocol server and client support
291
292
  - **Observability**: Langfuse for tracing and monitoring
292
293
  - **API Standards**: OpenAI-compatible endpoints
293
294
 
@@ -99,6 +99,7 @@ sunholo deploy my-agent
99
99
 
100
100
  - **Web Frameworks**: Flask and FastAPI templates
101
101
  - **AI Frameworks**: LangChain and LlamaIndex integration
102
+ - **MCP Integration**: Model Context Protocol server and client support
102
103
  - **Observability**: Langfuse for tracing and monitoring
103
104
  - **API Standards**: OpenAI-compatible endpoints
104
105
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.143.10"
7
+ version = "0.143.12"
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"
@@ -1036,14 +1036,68 @@ if __name__ == "__main__":
1036
1036
 
1037
1037
  try:
1038
1038
  # Handle different MCP methods
1039
- if method == "tools/list":
1040
- # Get the server and call list_tools handler
1041
- server = self.vac_mcp_server.get_server()
1042
- tools = await server._request_handlers["tools/list"]()
1039
+ if method == "initialize":
1040
+ # Handle MCP protocol initialization
1041
+ protocol_version = params.get("protocolVersion", "2025-06-18")
1042
+ capabilities = params.get("capabilities", {})
1043
+ client_info = params.get("clientInfo", {})
1044
+
1045
+ log.info(f"MCP client initializing: {client_info} with protocol version: {protocol_version}")
1046
+
1047
+ return {
1048
+ "jsonrpc": "2.0",
1049
+ "result": {
1050
+ "protocolVersion": "2025-06-18",
1051
+ "capabilities": {
1052
+ "tools": {}
1053
+ },
1054
+ "serverInfo": {
1055
+ "name": "sunholo-vac-server",
1056
+ "version": sunholo_version()
1057
+ }
1058
+ },
1059
+ "id": request_id
1060
+ }
1061
+
1062
+ elif method == "tools/list":
1063
+ # Create mock tools list based on VACMCPServer capabilities
1064
+ tools = [
1065
+ {
1066
+ "name": "vac_stream",
1067
+ "description": "Stream responses from a Sunholo VAC (Virtual Agent Computer)",
1068
+ "inputSchema": {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "vector_name": {"type": "string", "description": "Name of the VAC to interact with"},
1072
+ "user_input": {"type": "string", "description": "The user's question or input"},
1073
+ "chat_history": {"type": "array", "description": "Previous conversation history", "default": []},
1074
+ "stream_wait_time": {"type": "number", "description": "Time to wait between stream chunks", "default": 7},
1075
+ "stream_timeout": {"type": "number", "description": "Maximum time to wait for response", "default": 120}
1076
+ },
1077
+ "required": ["vector_name", "user_input"]
1078
+ }
1079
+ }
1080
+ ]
1081
+
1082
+ # Add vac_query tool if interpreter is available
1083
+ if self.vac_mcp_server.vac_interpreter:
1084
+ tools.append({
1085
+ "name": "vac_query",
1086
+ "description": "Query a Sunholo VAC (non-streaming)",
1087
+ "inputSchema": {
1088
+ "type": "object",
1089
+ "properties": {
1090
+ "vector_name": {"type": "string", "description": "Name of the VAC to interact with"},
1091
+ "user_input": {"type": "string", "description": "The user's question or input"},
1092
+ "chat_history": {"type": "array", "description": "Previous conversation history", "default": []}
1093
+ },
1094
+ "required": ["vector_name", "user_input"]
1095
+ }
1096
+ })
1043
1097
 
1044
1098
  return {
1045
1099
  "jsonrpc": "2.0",
1046
- "result": {"tools": [tool.model_dump() for tool in tools]},
1100
+ "result": {"tools": tools},
1047
1101
  "id": request_id
1048
1102
  }
1049
1103
 
@@ -1055,8 +1109,13 @@ if __name__ == "__main__":
1055
1109
  if not tool_name:
1056
1110
  raise ValueError("Missing tool name")
1057
1111
 
1058
- server = self.vac_mcp_server.get_server()
1059
- result = await server._request_handlers["tools/call"](tool_name, arguments)
1112
+ # Call the appropriate handler method
1113
+ if tool_name == "vac_stream":
1114
+ result = await self.vac_mcp_server._handle_vac_stream(arguments)
1115
+ elif tool_name == "vac_query" and self.vac_mcp_server.vac_interpreter:
1116
+ result = await self.vac_mcp_server._handle_vac_query(arguments)
1117
+ else:
1118
+ raise ValueError(f"Unknown tool: {tool_name}")
1060
1119
 
1061
1120
  return {
1062
1121
  "jsonrpc": "2.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.143.10
3
+ Version: 0.143.12
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
@@ -288,6 +288,7 @@ sunholo deploy my-agent
288
288
 
289
289
  - **Web Frameworks**: Flask and FastAPI templates
290
290
  - **AI Frameworks**: LangChain and LlamaIndex integration
291
+ - **MCP Integration**: Model Context Protocol server and client support
291
292
  - **Observability**: Langfuse for tracing and monitoring
292
293
  - **API Standards**: OpenAI-compatible endpoints
293
294
 
File without changes
File without changes
File without changes