sunholo 0.144.12__tar.gz → 0.145.1__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.
- {sunholo-0.144.12/src/sunholo.egg-info → sunholo-0.145.1}/PKG-INFO +2 -2
- {sunholo-0.144.12 → sunholo-0.145.1}/pyproject.toml +3 -3
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/fastapi/vac_routes.py +12 -4
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/invoke/__init__.py +1 -1
- sunholo-0.145.1/src/sunholo/invoke/async_task_runner.py +619 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/vac_mcp_server_fastmcp.py +13 -3
- {sunholo-0.144.12 → sunholo-0.145.1/src/sunholo.egg-info}/PKG-INFO +2 -2
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo.egg-info/SOURCES.txt +3 -3
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo.egg-info/requires.txt +1 -0
- sunholo-0.145.1/tests/test_async_task_runner.py +355 -0
- sunholo-0.144.12/tests/test_vac_routes_fastapi.py +0 -226
- sunholo-0.144.12/tests/test_vac_routes_mcp.py +0 -398
- {sunholo-0.144.12 → sunholo-0.145.1}/LICENSE.txt +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/MANIFEST.in +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/README.md +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/setup.cfg +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/a2a/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/a2a/agent_card.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/a2a/task_manager.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/a2a/vac_a2a_agent.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/flask/vac_routes.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/langserve.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/route.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/agents/swagger.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/archive/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/archive/archive.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/auth/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/auth/refresh.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/auth/run.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/azure/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/azure/auth.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/azure/blobs.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/bots/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/bots/discord.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/bots/webapp.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/azure.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/images.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/publish.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/cli.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/configs.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/deploy.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/embedder.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/swagger.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/cli/vertex.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/components/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/components/llm.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/components/retriever.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/custom_logging.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/alloydb.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/database.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/lancedb.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/database/uuid.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/cli.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/embedder/embed_metadata.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/excel/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/excel/plugin.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/download_gcs_text.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/extract_and_sign.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/file_handling.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/genaiv2.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/images.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/init.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/process_funcs_cls.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/genai/safety.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/invoke/async_class.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/langchain_types.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/langfuse/evals.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/cli.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/cli_fastmcp.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/extensible_mcp_server.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/mcp_manager.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/sse_utils.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/stdio_http_bridge.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/vac_mcp_server.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/mcp/vac_tools.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/ollama/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/ollama/ollama_images.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/qna/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/qna/parsers.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/qna/retry.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/senses/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/senses/stream_voice.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/agent_service.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/app.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/my_log.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/tools/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/agent/vac_service.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/project/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/project/app.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/project/my_log.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/project/vac_service.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/system_services/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/system_services/app.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/templates/system_services/my_log.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/terraform/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/terraform/tfvars_editor.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/tools/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/api_key.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/big_context.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/config.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/config_class.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/gcp.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/mime.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/parsers.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/proto_convert.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/utils/version.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/init.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/safety.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/src/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_async.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_async_genai2.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_chat_history.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_config.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_genai2.py +0 -0
- {sunholo-0.144.12 → sunholo-0.145.1}/tests/test_unstructured.py +0 -0
@@ -1,11 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sunholo
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.145.1
|
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
|
7
7
|
Project-URL: Homepage, https://github.com/sunholo-data/sunholo-py
|
8
|
-
Project-URL: Download, https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.118.0.tar.gz
|
9
8
|
Keywords: llms,devops,google_cloud_platform
|
10
9
|
Classifier: Development Status :: 3 - Alpha
|
11
10
|
Classifier: Intended Audience :: Developers
|
@@ -107,6 +106,7 @@ Requires-Dist: azure-storage-blob; extra == "azure"
|
|
107
106
|
Provides-Extra: cli
|
108
107
|
Requires-Dist: jsonschema>=4.21.1; extra == "cli"
|
109
108
|
Requires-Dist: rich; extra == "cli"
|
109
|
+
Requires-Dist: fastmcp; extra == "cli"
|
110
110
|
Provides-Extra: database
|
111
111
|
Requires-Dist: asyncpg; extra == "database"
|
112
112
|
Requires-Dist: supabase; extra == "database"
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "sunholo"
|
7
|
-
version = "0.
|
7
|
+
version = "0.145.1"
|
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"
|
@@ -33,7 +33,6 @@ dependencies = [
|
|
33
33
|
|
34
34
|
[project.urls]
|
35
35
|
Homepage = "https://github.com/sunholo-data/sunholo-py"
|
36
|
-
Download = "https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.118.0.tar.gz"
|
37
36
|
|
38
37
|
[project.scripts]
|
39
38
|
sunholo = "sunholo.cli.cli:main"
|
@@ -140,7 +139,8 @@ azure = [
|
|
140
139
|
]
|
141
140
|
cli = [
|
142
141
|
"jsonschema>=4.21.1",
|
143
|
-
"rich"
|
142
|
+
"rich",
|
143
|
+
"fastmcp"
|
144
144
|
]
|
145
145
|
database = [
|
146
146
|
"asyncpg",
|
@@ -395,11 +395,14 @@ class VACRoutesFastAPI:
|
|
395
395
|
## MCP Server Integration
|
396
396
|
|
397
397
|
When VACMCPServer is available, the following happens automatically:
|
398
|
-
1. MCP server is mounted at /mcp endpoint
|
398
|
+
1. MCP server is mounted at /mcp/mcp endpoint (NOTE: /mcp/mcp not /mcp!)
|
399
399
|
2. Built-in VAC tools are automatically registered:
|
400
400
|
- vac_stream, vac_query, list_available_vacs, get_vac_info
|
401
401
|
3. You can add custom MCP tools using add_mcp_tool()
|
402
|
-
4. Claude Desktop/Code can connect to http://your-server/mcp
|
402
|
+
4. Claude Desktop/Code can connect to http://your-server/mcp/mcp
|
403
|
+
|
404
|
+
IMPORTANT: The endpoint is /mcp/mcp to avoid the MCP app intercepting other routes.
|
405
|
+
DO NOT change the mounting point to "" (root) as it will break other FastAPI routes!
|
403
406
|
|
404
407
|
## Complete Example
|
405
408
|
|
@@ -696,8 +699,13 @@ class VACRoutesFastAPI:
|
|
696
699
|
# so we can't easily check if it's configured. The error will be
|
697
700
|
# caught below if lifespan is missing.
|
698
701
|
|
699
|
-
# Mount at /mcp/mcp
|
700
|
-
#
|
702
|
+
# CRITICAL: Mount at /mcp/mcp (NOT at root "")
|
703
|
+
# - The MCP app from get_http_app() has path="" configured
|
704
|
+
# - Mounting at "/mcp/mcp" creates the /mcp/mcp endpoint
|
705
|
+
# - This prevents the MCP app from intercepting other routes like /info, /test
|
706
|
+
#
|
707
|
+
# DO NOT mount at "" (root) - it will break all other FastAPI routes!
|
708
|
+
# The endpoint will be available at /mcp/mcp as expected by Claude Code
|
701
709
|
self.app.mount("/mcp/mcp", mcp_app)
|
702
710
|
log.info("✅ MCP server mounted at /mcp/mcp endpoint")
|
703
711
|
|